
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int sqlite3_step(sqlite3_stmt *pStmt)

{
  byte *pbVar1;
  byte *pbVar2;
  int iVar3;
  sqlite3_stmt sVar4;
  u8 uVar5;
  ushort uVar6;
  sqlite3 *db;
  sqlite3 *psVar7;
  CollSeq *pCVar8;
  Btree *p;
  Wal *pWVar9;
  undefined4 *puVar10;
  uint uVar11;
  int *piVar12;
  undefined *xDel;
  byte bVar13;
  int iVar14;
  uchar *z;
  int *piVar15;
  int iVar16;
  int iVar17;
  char *pcVar18;
  byte *pbVar19;
  int iVar20;
  undefined4 uVar21;
  byte *pbVar22;
  int *piVar23;
  u32 uVar24;
  uint uVar25;
  byte *pbVar26;
  int iVar27;
  sqlite3 *psVar28;
  sqlite3_stmt *psVar29;
  Vdbe *pVVar30;
  uint uVar31;
  Mem *p_00;
  int in_GS_OFFSET;
  bool bVar32;
  bool bVar33;
  byte bVar34;
  i64 in_stack_fffffea4;
  Mem *local_148;
  int local_144;
  uint local_13c;
  int local_138;
  StrAccum x;
  Vdbe tmp;
  
  bVar34 = 0;
  iVar3 = *(int *)(in_GS_OFFSET + 0x14);
  iVar14 = vdbeSafetyNotNull((Vdbe *)pStmt);
  if (iVar14 == 0) {
    db = *(sqlite3 **)pStmt;
    sqlite3_mutex_enter(db->mutex);
    xDel = PTR_sqlite3_free_000ddfe0;
    pStmt[0x8d] = (sqlite3_stmt)0x0;
    local_138 = 0x33;
LAB_0008da88:
    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {
      sqlite3_reset(pStmt);
    }
    psVar28 = *(sqlite3 **)pStmt;
    if (psVar28->mallocFailed != '\0') {
      *(undefined4 *)(pStmt + 0x28) = 7;
      uVar31 = 7;
      goto LAB_0008dc24;
    }
    sVar4 = pStmt[0x8e];
    if (*(int *)(pStmt + 0x24) < 0) {
      if (((byte)sVar4 & 3) == 0) {
        if (psVar28->nVdbeActive == 0) {
          (psVar28->u1).isInterrupted = 0;
        }
        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&
           (*(int *)(pStmt + 0xb4) != 0)) {
          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));
        }
        sVar4 = pStmt[0x8e];
        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;
        if (-1 < (char)sVar4) {
          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;
        }
        if (((byte)pStmt[0x8f] & 1) != 0) {
          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;
        }
        *(undefined4 *)(pStmt + 0x24) = 0;
        goto LAB_0008dac4;
      }
      *(undefined4 *)(pStmt + 0x28) = 0x11;
      uVar31 = 1;
      if ((char)pStmt[0x8c] < '\0') {
        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);
      }
      goto LAB_0008dcc7;
    }
LAB_0008dac4:
    if (((byte)sVar4 & 0xc) == 0) {
      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;
      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);
      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;
      if (uVar31 == 100) goto LAB_0008dc84;
      if ((-1 < *(int *)(pStmt + 0x84)) &&
         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {
        invokeProfileCallback(psVar28,(Vdbe *)pStmt);
      }
      if (uVar31 != 0x65) goto LAB_0008e15c;
LAB_0008e0ef:
      uVar5 = psVar28->autoCommit;
joined_r0x0008e0f7:
      if (uVar5 == '\0') {
        local_148 = *(Mem **)(pStmt + 0x28);
        uVar31 = 0x65;
        bVar32 = local_148 == (Mem *)0xc0a;
      }
      else {
        local_148 = (Mem *)0x0;
        if (psVar28->nDb < 1) {
          *(undefined4 *)(pStmt + 0x28) = 0;
          bVar32 = false;
          uVar31 = 0x65;
        }
        else {
          iVar14 = 0;
          local_148 = (Mem *)0x0;
          do {
            p = psVar28->aDb[iVar14].pBt;
            if (p != (Btree *)0x0) {
              if (p->sharable == '\0') {
                pWVar9 = p->pBt->pPager->pWal;
                if (pWVar9 != (Wal *)0x0) {
                  uVar24 = pWVar9->iCallback;
                  pWVar9->iCallback = 0;
                  goto LAB_0008e221;
                }
              }
              else {
                sqlite3BtreeEnter(p);
                pWVar9 = p->pBt->pPager->pWal;
                if (pWVar9 == (Wal *)0x0) {
                  if (p->sharable != '\0') {
                    piVar23 = &p->wantToLock;
                    *piVar23 = *piVar23 + -1;
                    if (*piVar23 == 0) {
                      sqlite3BtreeLeave(p);
                    }
                  }
                }
                else {
                  uVar5 = p->sharable;
                  uVar24 = pWVar9->iCallback;
                  pWVar9->iCallback = 0;
                  if (uVar5 != '\0') {
                    piVar23 = &p->wantToLock;
                    *piVar23 = *piVar23 + -1;
                    if (*piVar23 == 0) {
                      sqlite3BtreeLeave(p);
                    }
                  }
LAB_0008e221:
                  if (((0 < (int)uVar24) &&
                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))
                     && (local_148 == (Mem *)0x0)) {
                    local_148 = (Mem *)(*psVar28->xWalCallback)
                                                 (psVar28->pWalArg,psVar28,
                                                  psVar28->aDb[iVar14].zDbSName,uVar24);
                  }
                }
              }
            }
            iVar14 = iVar14 + 1;
          } while (iVar14 < psVar28->nDb);
          bVar32 = local_148 == (Mem *)0xc0a;
          *(Mem **)(pStmt + 0x28) = local_148;
          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;
        }
      }
      goto LAB_0008dc90;
    }
    iVar14 = *(int *)(pStmt + 0x54);
    psVar7 = *(sqlite3 **)pStmt;
    local_13c = 1;
    p_00 = (Mem *)(iVar14 + 0x28);
    if (((byte)sVar4 & 0xc) != 4) {
      local_13c = (uint)psVar7->flags >> 0x18 & 1;
    }
    if (p_00 != (Mem *)0x0) {
      releaseMemArray(p_00,8);
    }
    *(undefined4 *)(pStmt + 0x74) = 0;
    if (*(int *)(pStmt + 0x28) == 7) {
      uVar31._0_1_ = psVar7->temp_store;
      uVar31._1_1_ = psVar7->mallocFailed;
      uVar31._2_1_ = psVar7->bBenignMalloc;
      uVar31._3_1_ = psVar7->dfltLockMode;
      if ((uVar31 & 0xffff00) == 0) {
        sqlite3OomFault(psVar7);
      }
      goto LAB_0008e141;
    }
    sVar4 = pStmt[0x8e];
    local_144 = *(int *)(pStmt + 0x68);
    if (local_13c == 0) {
      local_148 = (Mem *)0x0;
      piVar23 = (int *)0x0;
    }
    else {
      iVar20 = *(int *)(pStmt + 0x54);
      local_148 = (Mem *)(iVar20 + 0x168);
      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {
        local_13c = 0;
        piVar23 = (int *)0x0;
      }
      else {
        piVar23 = *(int **)(iVar20 + 0x178);
        local_13c = *(uint *)(iVar20 + 0x174) >> 2;
        if (local_13c != 0) {
          piVar15 = piVar23;
          do {
            iVar20 = *piVar15;
            piVar15 = piVar15 + 1;
            local_144 = local_144 + *(int *)(iVar20 + 4);
          } while (piVar23 + local_13c != piVar15);
        }
      }
    }
    iVar20 = *(int *)(pStmt + 0x24);
    do {
      iVar27 = iVar20 + 1;
      if (local_144 <= iVar20) {
        *(undefined4 *)(pStmt + 0x28) = 0;
        *(int *)(pStmt + 0x24) = iVar27;
        if ((*(int *)(pStmt + 0x84) < 1) &&
           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;
        invokeProfileCallback(psVar28,(Vdbe *)pStmt);
        uVar5 = psVar28->autoCommit;
        goto joined_r0x0008e0f7;
      }
      if (iVar20 < *(int *)(pStmt + 0x68)) {
        iVar17 = *(int *)(pStmt + 100);
        iVar16 = iVar20;
      }
      else {
        piVar15 = (int *)*piVar23;
        iVar16 = iVar20 - *(int *)(pStmt + 0x68);
        iVar20 = piVar15[1];
        piVar12 = piVar23;
        if (iVar20 <= iVar16) {
          do {
            piVar15 = (int *)piVar12[1];
            iVar16 = iVar16 - iVar20;
            iVar20 = piVar15[1];
            piVar12 = piVar12 + 1;
          } while (iVar20 <= iVar16);
        }
        iVar17 = *piVar15;
      }
      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);
      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {
        if ((int)local_13c < 1) {
          if (local_13c == 0) {
LAB_0008e044:
            iVar20 = (local_13c + 1) * 4;
            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));
            *(int *)(pStmt + 0x28) = iVar17;
            if (iVar17 != 0) {
              iVar14 = *(int *)(pStmt + 0x84);
              *(int *)(pStmt + 0x24) = iVar27;
              if (iVar14 < 0) goto LAB_0008e157;
              goto joined_r0x0008e183;
            }
            piVar23 = (int *)local_148->z;
            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);
            local_148->flags = local_148->flags & 0x3e40 | 0x10;
            local_148->n = iVar20;
            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);
            local_13c = local_13c + 1;
          }
        }
        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {
          uVar31 = 0;
          do {
            uVar31 = uVar31 + 1;
            if (local_13c == uVar31) goto LAB_0008e044;
          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));
        }
      }
    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&
            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));
    *(int *)(pStmt + 0x24) = iVar27;
    if ((psVar7->u1).isInterrupted != 0) {
      *(undefined4 *)(pStmt + 0x28) = 9;
      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");
      goto LAB_0008e141;
    }
    x.db = (sqlite3 *)0x0;
    x.zText = (char *)0x0;
    x.nAlloc = 0;
    x.mxAlloc = 1000000000;
    x.nChar = 0;
    x.accError = '\0';
    x.printfFlags = '\0';
    switch(pbVar2[1]) {
    case 0xef:
    case 0xfb:
      goto _L33039;
    case 0xf0:
      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);
      goto LAB_0008e672;
    case 0xf1:
      piVar23 = *(int **)(pbVar2 + 0x10);
      iVar20 = *piVar23;
      if (iVar20 != 0) {
        iVar27 = 1;
        do {
          uVar21 = 0x5b;
          if (iVar27 != 1) {
            uVar21 = 0x2c;
          }
          piVar15 = piVar23 + iVar27;
          iVar27 = iVar27 + 1;
          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);
        } while (iVar27 != iVar20 + 1);
      }
      pcVar18 = "]";
      goto LAB_0008e812;
    case 0xf2:
      uVar21 = **(undefined4 **)(pbVar2 + 0x10);
      pcVar18 = "%lld";
      break;
    case 0xf3:
      uVar21 = **(undefined4 **)(pbVar2 + 0x10);
      pcVar18 = "%.16g";
      break;
    case 0xf4:
      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);
      pcVar18 = "vtab:%p";
      break;
    case 0xf5:
      puVar10 = *(undefined4 **)(pbVar2 + 0x10);
      uVar6 = *(ushort *)(puVar10 + 2);
      if ((uVar6 & 2) != 0) {
        pcVar18 = (char *)puVar10[4];
        goto LAB_0008e3c2;
      }
      if ((uVar6 & 0x24) == 0) {
        if ((uVar6 & 8) == 0) {
          pcVar18 = "(blob)";
          if ((uVar6 & 1) != 0) {
            pcVar18 = "NULL";
          }
          goto LAB_0008e59b;
        }
        uVar21 = *puVar10;
        pcVar18 = "%.16g";
      }
      else {
        uVar21 = *puVar10;
        pcVar18 = "%lld";
      }
      break;
    default:
      pcVar18 = *(char **)(pbVar2 + 0x10);
      goto LAB_0008e3c2;
    case 0xf7:
      iVar20 = *(int *)(pbVar2 + 0x10);
      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));
      if (*(short *)(iVar20 + 6) != 0) {
        iVar27 = 0;
        pbVar1 = (byte *)0xab03d;
        do {
          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);
          bVar32 = false;
          bVar33 = puVar10 == (undefined4 *)0x0;
          pbVar19 = pbVar1;
          if (!bVar33) {
            pbVar19 = (byte *)*puVar10;
            iVar17 = 7;
            pbVar26 = pbVar19;
            pbVar22 = (byte *)"BINARY";
            do {
              if (iVar17 == 0) break;
              iVar17 = iVar17 + -1;
              bVar32 = *pbVar26 < *pbVar22;
              bVar33 = *pbVar26 == *pbVar22;
              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;
              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;
            } while (bVar33);
            if ((!bVar32 && !bVar33) == bVar32) {
              pbVar19 = &DAT_000aa643;
            }
          }
          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);
          pbVar26 = &DAT_000aadef;
          if ((bVar13 & 2) == 0) {
            pbVar26 = pbVar1;
          }
          pbVar22 = &DAT_000aa247;
          if ((bVar13 & 1) == 0) {
            pbVar22 = pbVar1;
          }
          iVar27 = iVar27 + 1;
          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);
        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));
      }
      pcVar18 = ")";
LAB_0008e812:
      sqlite3_str_append(&x,pcVar18,1);
      bVar13 = x.accError & 7;
      goto LAB_0008e5c0;
    case 0xf8:
      iVar20 = *(int *)(pbVar2 + 0x10);
LAB_0008e672:
      uVar21 = *(undefined4 *)(iVar20 + 0x20);
      pcVar18 = "%s(%d)";
      break;
    case 0xfa:
      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);
LAB_0008e3c2:
      if (pcVar18 != (char *)0x0) {
LAB_0008e59b:
        sqlite3_str_appendall(&x,pcVar18);
        bVar13 = x.accError & 7;
        goto LAB_0008e5c0;
      }
_L33039:
      goto LAB_0008e3d0;
    case 0xfc:
      pcVar18 = "program";
      goto LAB_0008e59b;
    case 0xfd:
      uVar21 = *(undefined4 *)(pbVar2 + 0x10);
      pcVar18 = "%d";
      break;
    case 0xfe:
      uVar21 = **(undefined4 **)(pbVar2 + 0x10);
      pcVar18 = "%.18s-%s";
    }
    sqlite3_str_appendf(&x,pcVar18,uVar21);
    bVar13 = x.accError & 7;
LAB_0008e5c0:
    if ((bVar13 != 0) &&
       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,
       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,
       (uVar25 & 0xffff00) == 0)) {
      sqlite3OomFault(psVar7);
    }
LAB_0008e3d0:
    pcVar18 = sqlite3StrAccumFinish(&x);
    if (((byte)pStmt[0x8e] & 0xc) == 8) {
      iVar20 = *(int *)(pbVar2 + 4);
      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {
        *(int *)(iVar14 + 0x28) = iVar20;
        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;
        *(undefined2 *)(iVar14 + 0x30) = 4;
      }
      else {
        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);
      }
      iVar20 = *(int *)(pbVar2 + 8);
      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {
        *(int *)(iVar14 + 0x50) = iVar20;
        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;
        *(undefined2 *)(iVar14 + 0x58) = 4;
      }
      else {
        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);
      }
      iVar20 = *(int *)(pbVar2 + 0xc);
      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {
        *(int *)(iVar14 + 0x78) = iVar20;
        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;
        *(undefined2 *)(iVar14 + 0x80) = 4;
      }
      else {
        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);
      }
      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);
      *(undefined2 *)(pStmt + 0x88) = 4;
    }
    else {
      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {
        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;
        *(int *)(iVar14 + 0x28) = iVar16;
        *(undefined2 *)(iVar14 + 0x30) = 4;
      }
      else {
        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);
      }
      sqlite3VdbeMemSetStr
                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',
                 (_func_void_void_ptr *)0x0);
      iVar20 = *(int *)(pbVar2 + 4);
      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {
        *(int *)(iVar14 + 0x78) = iVar20;
        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;
        *(undefined2 *)(iVar14 + 0x80) = 4;
      }
      else {
        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);
      }
      iVar20 = *(int *)(pbVar2 + 8);
      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {
        *(int *)(iVar14 + 0xa0) = iVar20;
        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;
        *(undefined2 *)(iVar14 + 0xa8) = 4;
      }
      else {
        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);
      }
      iVar20 = *(int *)(pbVar2 + 0xc);
      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {
        *(int *)(iVar14 + 200) = iVar20;
        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;
        *(undefined2 *)(iVar14 + 0xd0) = 4;
      }
      else {
        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);
      }
      uVar6 = *(ushort *)(pbVar2 + 2);
      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {
        *(undefined4 *)(iVar14 + 0x11c) = 0;
        *(uint *)(iVar14 + 0x118) = (uint)uVar6;
        *(undefined2 *)(iVar14 + 0x120) = 4;
      }
      else {
        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);
      }
      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {
        *(undefined2 *)(iVar14 + 0x148) = 1;
      }
      else {
        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));
      }
      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);
      *(undefined2 *)(pStmt + 0x88) = 8;
    }
    *(Mem **)(pStmt + 0x74) = p_00;
    if (psVar7->mallocFailed == '\0') {
      *(undefined4 *)(pStmt + 0x28) = 0;
      local_148 = (Mem *)0x0;
      bVar32 = false;
      uVar31 = 100;
    }
    else {
      *(undefined4 *)(pStmt + 0x28) = 7;
LAB_0008e141:
      iVar14 = *(int *)(pStmt + 0x84);
      if (-1 < iVar14) {
joined_r0x0008e183:
        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {
          invokeProfileCallback(psVar28,(Vdbe *)pStmt);
        }
      }
LAB_0008e157:
      uVar31 = 1;
LAB_0008e15c:
      if ((char)pStmt[0x8c] < '\0') {
        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);
      }
LAB_0008dc84:
      local_148 = *(Mem **)(pStmt + 0x28);
      bVar32 = local_148 == (Mem *)0xc0a;
    }
LAB_0008dc90:
    psVar28->errCode = uVar31;
    psVar7 = *(sqlite3 **)pStmt;
    if ((psVar7->mallocFailed != '\0') || (bVar32)) {
      uVar25 = apiOomError(psVar7);
    }
    else {
      uVar25 = (uint)local_148 & psVar7->errMask;
    }
    if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {
      uVar31 = 7;
    }
LAB_0008dcc7:
    uVar31 = uVar31 & psVar28->errMask;
    if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;
    iVar14 = *(int *)(pStmt + 0x24);
    pcVar18 = sqlite3_sql(pStmt);
    psVar28 = *(sqlite3 **)pStmt;
    uVar31 = sqlite3LockAndPrepare
                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x
                        ,(char **)0x0);
    if (uVar31 == 0) {
      psVar28 = x.db;
      pVVar30 = &tmp;
      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {
        pVVar30->db = (sqlite3 *)psVar28->pVfs;
        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);
        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);
      }
      psVar29 = pStmt;
      psVar28 = x.db;
      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {
        psVar28->pVfs = *(sqlite3_vfs **)psVar29;
        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;
        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);
      }
      pVVar30 = &tmp;
      psVar29 = pStmt;
      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {
        *(sqlite3 **)psVar29 = pVVar30->db;
        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);
        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;
      }
      pCVar8 = (x.db)->pDfltColl;
      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);
      *(CollSeq **)(pStmt + 8) = pCVar8;
      pVVar30 = (x.db)->pVdbe;
      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);
      *(Vdbe **)(pStmt + 4) = pVVar30;
      iVar20 = (x.db)->nVdbeExec;
      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);
      *(int *)(pStmt + 0xb4) = iVar20;
      *(void **)(pStmt + 200) = (x.db)->pTraceArg;
      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);
      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;
      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;
      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;
      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;
      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;
      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;
      iVar20 = (x.db)->nVdbeWrite;
      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;
      *(int *)(pStmt + 0xb0) = iVar20;
      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);
      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;
      sqlite3VdbeFinalize((Vdbe *)x.db);
      sqlite3_reset(pStmt);
      if (-1 < iVar14) {
        pStmt[0x8d] = (sqlite3_stmt)0x1;
      }
      goto LAB_0008da88;
    }
    if ((uVar31 == 7) &&
       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,
       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,
       (uVar11 & 0xffff00) == 0)) {
      sqlite3OomFault(psVar28);
    }
    z = sqlite3_value_text(db->pErr);
    if (*(void **)(pStmt + 0x78) != (void *)0x0) {
      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));
    }
    if (db->mallocFailed == '\0') {
      pcVar18 = sqlite3DbStrDup(db,(char *)z);
      *(char **)(pStmt + 0x78) = pcVar18;
      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {
        uVar31 = uVar31 & db->errMask;
      }
      else {
        uVar31 = apiOomError(db);
      }
      *(uint *)(pStmt + 0x28) = uVar31;
    }
    else {
      *(undefined4 *)(pStmt + 0x78) = 0;
      *(undefined4 *)(pStmt + 0x28) = 7;
      uVar31 = 7;
    }
LAB_0008dc24:
    sqlite3_mutex_leave(db->mutex);
  }
  else {
    uVar31 = sqlite3MisuseError(0x1471f);
  }
  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail_local();
  }
  return uVar31;
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint sqlite3_step(int *param_1)

{
  byte *pbVar1;
  char *pcVar2;
  char cVar3;
  ushort uVar4;
  int iVar5;
  undefined4 *puVar6;
  int *piVar7;
  undefined *puVar8;
  byte bVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  char *pcVar15;
  byte *pbVar16;
  int iVar17;
  undefined4 uVar18;
  int iVar19;
  byte *pbVar20;
  int *piVar21;
  byte *pbVar22;
  int iVar23;
  uint uVar24;
  int in_GS_OFFSET;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  uint local_148;
  int local_144;
  uint local_13c;
  int local_138;
  int *local_10c;
  undefined4 local_108;
  undefined4 local_104;
  undefined4 local_100;
  undefined4 local_fc;
  undefined2 local_f8;
  int local_f4 [53];
  int local_20;
  undefined4 uStack_14;
  
  bVar27 = 0;
  uStack_14 = 0x8da19;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar10 = FUN_0003bbd0();
  if (iVar10 == 0) {
    iVar10 = *param_1;
    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));
    puVar8 = PTR_sqlite3_free_000ddfe0;
    *(undefined1 *)((int)param_1 + 0x8d) = 0;
    local_138 = 0x33;
LAB_0008da88:
    if (param_1[5] != 0x2df20da3) {
      sqlite3_reset(param_1);
    }
    iVar14 = *param_1;
    if (*(char *)(iVar14 + 0x4d) != '\0') {
      param_1[10] = 7;
      uVar24 = 7;
      goto LAB_0008dc24;
    }
    bVar9 = *(byte *)((int)param_1 + 0x8e);
    if (param_1[9] < 0) {
      if ((bVar9 & 3) == 0) {
        if (*(int *)(iVar14 + 0xa8) == 0) {
          *(undefined4 *)(iVar14 + 0x108) = 0;
        }
        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&
           (param_1[0x2d] != 0)) {
          FUN_0001d9a0();
        }
        bVar9 = *(byte *)((int)param_1 + 0x8e);
        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;
        if (-1 < (char)bVar9) {
          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;
        }
        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {
          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;
        }
        param_1[9] = 0;
        goto LAB_0008dac4;
      }
      param_1[10] = 0x11;
      uVar24 = 1;
      if ((char)param_1[0x23] < '\0') {
        uVar24 = FUN_000488a0();
      }
      goto LAB_0008dcc7;
    }
LAB_0008dac4:
    if ((bVar9 & 0xc) == 0) {
      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;
      uVar24 = FUN_00083fd0();
      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;
      if (uVar24 == 100) goto LAB_0008dc84;
      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {
        FUN_0001f8e0();
      }
      if (uVar24 != 0x65) goto LAB_0008e15c;
LAB_0008e0ef:
      cVar3 = *(char *)(iVar14 + 0x4b);
joined_r0x0008e0f7:
      if (cVar3 == '\0') {
        local_148 = param_1[10];
        uVar24 = 0x65;
        bVar25 = local_148 == 0xc0a;
      }
      else {
        local_148 = 0;
        if (*(int *)(iVar14 + 0x14) < 1) {
          param_1[10] = 0;
          bVar25 = false;
          uVar24 = 0x65;
        }
        else {
          iVar17 = 0;
          local_148 = 0;
          do {
            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);
            if (iVar5 != 0) {
              if (*(char *)(iVar5 + 9) == '\0') {
                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);
                if (iVar5 != 0) {
                  iVar13 = *(int *)(iVar5 + 0xc);
                  *(undefined4 *)(iVar5 + 0xc) = 0;
                  goto LAB_0008e221;
                }
              }
              else {
                FUN_00027820();
                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);
                if (iVar23 == 0) {
                  if (*(char *)(iVar5 + 9) != '\0') {
                    piVar21 = (int *)(iVar5 + 0xc);
                    *piVar21 = *piVar21 + -1;
                    if (*piVar21 == 0) {
                      FUN_000278b0();
                    }
                  }
                }
                else {
                  cVar3 = *(char *)(iVar5 + 9);
                  iVar13 = *(int *)(iVar23 + 0xc);
                  *(undefined4 *)(iVar23 + 0xc) = 0;
                  if (cVar3 != '\0') {
                    piVar21 = (int *)(iVar5 + 0xc);
                    *piVar21 = *piVar21 + -1;
                    if (*piVar21 == 0) {
                      FUN_000278b0();
                    }
                  }
LAB_0008e221:
                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&
                     (local_148 == 0)) {
                    local_148 = (**(code **)(iVar14 + 0xf0))
                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,
                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),
                                           iVar13);
                  }
                }
              }
            }
            iVar17 = iVar17 + 1;
          } while (iVar17 < *(int *)(iVar14 + 0x14));
          bVar25 = local_148 == 0xc0a;
          param_1[10] = local_148;
          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;
        }
      }
      goto LAB_0008dc90;
    }
    iVar17 = param_1[0x15];
    iVar5 = *param_1;
    local_13c = 1;
    if ((bVar9 & 0xc) != 4) {
      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;
    }
    if (iVar17 + 0x28 != 0) {
      FUN_000284b0();
    }
    param_1[0x1d] = 0;
    if (param_1[10] == 7) {
      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {
        FUN_0002e050();
      }
      goto LAB_0008e141;
    }
    bVar9 = *(byte *)((int)param_1 + 0x8e);
    local_144 = param_1[0x1a];
    if (local_13c == 0) {
      local_148 = 0;
      piVar21 = (int *)0x0;
    }
    else {
      iVar13 = param_1[0x15];
      local_148 = iVar13 + 0x168;
      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {
        local_13c = 0;
        piVar21 = (int *)0x0;
      }
      else {
        piVar21 = *(int **)(iVar13 + 0x178);
        local_13c = *(uint *)(iVar13 + 0x174) >> 2;
        if (local_13c != 0) {
          piVar11 = piVar21;
          do {
            iVar13 = *piVar11;
            piVar11 = piVar11 + 1;
            local_144 = local_144 + *(int *)(iVar13 + 4);
          } while (piVar21 + local_13c != piVar11);
        }
      }
    }
    iVar13 = param_1[9];
    do {
      iVar23 = iVar13 + 1;
      if (local_144 <= iVar13) {
        param_1[10] = 0;
        param_1[9] = iVar23;
        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;
        FUN_0001f8e0();
        cVar3 = *(char *)(iVar14 + 0x4b);
        goto joined_r0x0008e0f7;
      }
      if (iVar13 < param_1[0x1a]) {
        iVar19 = param_1[0x19];
        iVar12 = iVar13;
      }
      else {
        piVar11 = (int *)*piVar21;
        iVar12 = iVar13 - param_1[0x1a];
        iVar13 = piVar11[1];
        piVar7 = piVar21;
        if (iVar13 <= iVar12) {
          do {
            piVar11 = (int *)piVar7[1];
            iVar12 = iVar12 - iVar13;
            iVar13 = piVar11[1];
            piVar7 = piVar7 + 1;
          } while (iVar13 <= iVar12);
        }
        iVar19 = *piVar11;
      }
      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);
      if ((local_148 != 0) && (pcVar2[1] == -4)) {
        if ((int)local_13c < 1) {
          if (local_13c == 0) {
LAB_0008e044:
            iVar13 = FUN_000307e0();
            param_1[10] = iVar13;
            if (iVar13 != 0) {
              iVar17 = param_1[0x21];
              param_1[9] = iVar23;
              if (iVar17 < 0) goto LAB_0008e157;
              goto joined_r0x0008e183;
            }
            piVar21 = *(int **)(local_148 + 0x10);
            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);
            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;
            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;
            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);
            local_13c = local_13c + 1;
          }
        }
        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {
          uVar24 = 0;
          do {
            uVar24 = uVar24 + 1;
            if (local_13c == uVar24) goto LAB_0008e044;
          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));
        }
      }
    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&
            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));
    param_1[9] = iVar23;
    if (*(int *)(iVar5 + 0x108) != 0) {
      param_1[10] = 9;
      FUN_0003e960(param_1,"interrupted");
      goto LAB_0008e141;
    }
    local_10c = (int *)0x0;
    local_108 = 0;
    local_104 = 0;
    local_100 = 1000000000;
    local_fc = 0;
    local_f8 = 0;
    switch(pcVar2[1]) {
    case -0x11:
    case -5:
      goto code_r0x0008e3ca;
    case -0x10:
      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);
      goto code_r0x0008e672;
    case -0xf:
      piVar21 = *(int **)(pcVar2 + 0x10);
      iVar13 = *piVar21;
      if (iVar13 != 0) {
        iVar23 = 1;
        do {
          uVar18 = 0x5b;
          if (iVar23 != 1) {
            uVar18 = 0x2c;
          }
          piVar11 = piVar21 + iVar23;
          iVar23 = iVar23 + 1;
          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);
        } while (iVar23 != iVar13 + 1);
      }
      pcVar15 = "]";
      goto code_r0x0008e812;
    case -0xe:
      uVar18 = **(undefined4 **)(pcVar2 + 0x10);
      pcVar15 = "%lld";
      break;
    case -0xd:
      uVar18 = **(undefined4 **)(pcVar2 + 0x10);
      pcVar15 = "%.16g";
      break;
    case -0xc:
      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);
      pcVar15 = "vtab:%p";
      break;
    case -0xb:
      puVar6 = *(undefined4 **)(pcVar2 + 0x10);
      uVar4 = *(ushort *)(puVar6 + 2);
      if ((uVar4 & 2) != 0) {
        pcVar15 = (char *)puVar6[4];
        goto LAB_0008e3c2;
      }
      if ((uVar4 & 0x24) == 0) {
        if ((uVar4 & 8) == 0) {
          pcVar15 = "(blob)";
          if ((uVar4 & 1) != 0) {
            pcVar15 = "NULL";
          }
          goto LAB_0008e59b;
        }
        uVar18 = *puVar6;
        pcVar15 = "%.16g";
      }
      else {
        uVar18 = *puVar6;
        pcVar15 = "%lld";
      }
      break;
    default:
      pcVar15 = *(char **)(pcVar2 + 0x10);
      goto LAB_0008e3c2;
    case -9:
      iVar13 = *(int *)(pcVar2 + 0x10);
      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));
      if (*(short *)(iVar13 + 6) != 0) {
        iVar23 = 0;
        pbVar1 = (byte *)0xab03d;
        do {
          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);
          bVar25 = false;
          bVar26 = puVar6 == (undefined4 *)0x0;
          pbVar16 = pbVar1;
          if (!bVar26) {
            pbVar16 = (byte *)*puVar6;
            iVar19 = 7;
            pbVar22 = pbVar16;
            pbVar20 = (byte *)"BINARY";
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar25 = *pbVar22 < *pbVar20;
              bVar26 = *pbVar22 == *pbVar20;
              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
            } while (bVar26);
            if ((!bVar25 && !bVar26) == bVar25) {
              pbVar16 = &UNK_000aa643;
            }
          }
          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);
          pbVar22 = &UNK_000aadef;
          if ((bVar9 & 2) == 0) {
            pbVar22 = pbVar1;
          }
          pbVar20 = &DAT_000aa247;
          if ((bVar9 & 1) == 0) {
            pbVar20 = pbVar1;
          }
          iVar23 = iVar23 + 1;
          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);
        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));
      }
      pcVar15 = ")";
code_r0x0008e812:
      sqlite3_str_append(&local_10c,pcVar15,1);
      bVar9 = (byte)local_f8 & 7;
      goto code_r0x0008e5c0;
    case -8:
      iVar13 = *(int *)(pcVar2 + 0x10);
code_r0x0008e672:
      uVar18 = *(undefined4 *)(iVar13 + 0x20);
      pcVar15 = "%s(%d)";
      break;
    case -6:
      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);
LAB_0008e3c2:
      if (pcVar15 != (char *)0x0) {
LAB_0008e59b:
        sqlite3_str_appendall(&local_10c,pcVar15);
        bVar9 = (byte)local_f8 & 7;
        goto code_r0x0008e5c0;
      }
code_r0x0008e3ca:
      goto LAB_0008e3d0;
    case -4:
      pcVar15 = "program";
      goto LAB_0008e59b;
    case -3:
      uVar18 = *(undefined4 *)(pcVar2 + 0x10);
      pcVar15 = "%d";
      break;
    case -2:
      uVar18 = **(undefined4 **)(pcVar2 + 0x10);
      pcVar15 = "%.18s-%s";
    }
    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);
    bVar9 = (byte)local_f8 & 7;
code_r0x0008e5c0:
    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {
      FUN_0002e050();
    }
LAB_0008e3d0:
    FUN_0002e520();
    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {
      iVar13 = *(int *)(pcVar2 + 4);
      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x28) = iVar13;
        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x30) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 8);
      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x50) = iVar13;
        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x58) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 0xc);
      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x78) = iVar13;
        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x80) = 4;
      }
      else {
        FUN_00024920();
      }
      FUN_000484d0(1,puVar8);
      *(undefined2 *)(param_1 + 0x22) = 4;
    }
    else {
      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;
        *(int *)(iVar17 + 0x28) = iVar12;
        *(undefined2 *)(iVar17 + 0x30) = 4;
      }
      else {
        FUN_00024920();
      }
      FUN_000484d0(1,0);
      iVar13 = *(int *)(pcVar2 + 4);
      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x78) = iVar13;
        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x80) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 8);
      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {
        *(int *)(iVar17 + 0xa0) = iVar13;
        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0xa8) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 0xc);
      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {
        *(int *)(iVar17 + 200) = iVar13;
        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0xd0) = 4;
      }
      else {
        FUN_00024920();
      }
      uVar4 = *(ushort *)(pcVar2 + 2);
      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {
        *(undefined4 *)(iVar17 + 0x11c) = 0;
        *(uint *)(iVar17 + 0x118) = (uint)uVar4;
        *(undefined2 *)(iVar17 + 0x120) = 4;
      }
      else {
        FUN_00024920();
      }
      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {
        *(undefined2 *)(iVar17 + 0x148) = 1;
      }
      else {
        FUN_000248e0();
      }
      FUN_000484d0(1,puVar8);
      *(undefined2 *)(param_1 + 0x22) = 8;
    }
    param_1[0x1d] = iVar17 + 0x28;
    if (*(char *)(iVar5 + 0x4d) == '\0') {
      param_1[10] = 0;
      local_148 = 0;
      bVar25 = false;
      uVar24 = 100;
    }
    else {
      param_1[10] = 7;
LAB_0008e141:
      iVar17 = param_1[0x21];
      if (-1 < iVar17) {
joined_r0x0008e183:
        if ((0 < iVar17) || (param_1[0x20] != 0)) {
          FUN_0001f8e0();
        }
      }
LAB_0008e157:
      uVar24 = 1;
LAB_0008e15c:
      if ((char)param_1[0x23] < '\0') {
        uVar24 = FUN_000488a0();
      }
LAB_0008dc84:
      local_148 = param_1[10];
      bVar25 = local_148 == 0xc0a;
    }
LAB_0008dc90:
    *(uint *)(iVar14 + 0x3c) = uVar24;
    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {
      local_148 = FUN_00031c90();
    }
    else {
      local_148 = local_148 & *(uint *)(*param_1 + 0x40);
    }
    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {
      uVar24 = 7;
    }
LAB_0008dcc7:
    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);
    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;
    iVar14 = param_1[9];
    sqlite3_sql(param_1);
    iVar17 = *param_1;
    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);
    if (uVar24 == 0) {
      piVar21 = local_10c;
      piVar11 = local_f4;
      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {
        *piVar11 = *piVar21;
        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;
        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;
      }
      piVar21 = param_1;
      piVar11 = local_10c;
      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {
        *piVar11 = *piVar21;
        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;
        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;
      }
      piVar21 = local_f4;
      piVar11 = param_1;
      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {
        *piVar11 = *piVar21;
        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;
        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;
      }
      iVar17 = local_10c[2];
      local_10c[2] = param_1[2];
      param_1[2] = iVar17;
      iVar17 = local_10c[1];
      local_10c[1] = param_1[1];
      param_1[1] = iVar17;
      iVar17 = local_10c[0x2d];
      local_10c[0x2d] = param_1[0x2d];
      param_1[0x2d] = iVar17;
      param_1[0x32] = local_10c[0x32];
      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];
      param_1[0x26] = local_10c[0x26];
      param_1[0x27] = local_10c[0x27];
      param_1[0x28] = local_10c[0x28];
      param_1[0x29] = local_10c[0x29];
      param_1[0x2a] = local_10c[0x2a];
      param_1[0x2b] = local_10c[0x2b];
      iVar17 = local_10c[0x2c];
      param_1[0x2b] = param_1[0x2b] + 1;
      param_1[0x2c] = iVar17;
      FUN_00024cd0();
      local_10c[10] = 0;
      FUN_0006fe50();
      sqlite3_reset(param_1);
      if (-1 < iVar14) {
        *(undefined1 *)((int)param_1 + 0x8d) = 1;
      }
      goto LAB_0008da88;
    }
    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {
      FUN_0002e050();
    }
    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));
    if (param_1[0x1e] != 0) {
      FUN_00024720();
    }
    if (*(char *)(iVar10 + 0x4d) == '\0') {
      iVar14 = FUN_0002eba0();
      param_1[0x1e] = iVar14;
      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {
        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);
      }
      else {
        uVar24 = FUN_00031c90();
      }
      param_1[10] = uVar24;
    }
    else {
      param_1[0x1e] = 0;
      param_1[10] = 7;
      uVar24 = 7;
    }
LAB_0008dc24:
    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));
  }
  else {
    uVar24 = FUN_000380c0();
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000a9ea0();
  }
  return uVar24;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
CALL 0x000a94f3
ADD EAX,0x505e7
SUB ESP,0x14c
MOV EBP,dword ptr [ESP + 0x160]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x13c],EAX
XOR EAX,EAX
MOV EAX,EBP
CALL 0x0003bbd0
TEST EAX,EAX
JNZ 0x0008e118
MOV EAX,dword ptr [EBP]
SUB ESP,0xc
MOV dword ptr [ESP + 0x34],EAX
PUSH dword ptr [EAX + 0xc]
MOV EDI,dword ptr [ESP + 0x20]
MOV EBX,EDI
CALL 0x000168d0
MOV EAX,dword ptr [EDI + 0xffffffe0]
ADD ESP,0x10
MOV byte ptr [EBP + 0x8d],0x0
MOV dword ptr [ESP + 0x24],0x33
MOV dword ptr [ESP + 0x3c],EAX
MOV dword ptr [ESP + 0x40],EAX
LEA ESI,[ESI]
CMP dword ptr [EBP + 0x14],0x2df20da3
JZ 0x0008daa1
SUB ESP,0xc
PUSH EBP
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x000163e0
ADD ESP,0x10
MOV EAX,dword ptr [EBP]
CMP byte ptr [EAX + 0x4d],0x0
MOV dword ptr [ESP + 0xc],EAX
JNZ 0x0008dc18
MOV EDI,dword ptr [EBP + 0x24]
MOVZX EAX,byte ptr [EBP + 0x8e]
TEST EDI,EDI
JS 0x0008dea0
AND EAX,0xc
JZ 0x0008dc60
MOV EDI,dword ptr [EBP + 0x54]
MOV EDX,dword ptr [EBP]
MOV dword ptr [ESP + 0x20],0x1
MOV dword ptr [ESP + 0x2c],EDI
ADD EDI,0x28
CMP AL,0x4
MOV dword ptr [ESP + 0x34],EDX
MOV dword ptr [ESP + 0x30],EDI
JZ 0x0008daff
MOV EAX,dword ptr [EDX + 0x1c]
MOV EDX,dword ptr [EDX + 0x20]
SHRD EAX,EDX,0x18
AND EAX,0x1
MOV dword ptr [ESP + 0x20],EAX
MOV EAX,dword ptr [ESP + 0x30]
TEST EAX,EAX
JZ 0x0008db11
MOV EDX,0x8
CALL 0x000284b0
CMP dword ptr [EBP + 0x28],0x7
MOV dword ptr [EBP + 0x74],0x0
JZ 0x0008e130
MOVZX EAX,byte ptr [EBP + 0x8e]
MOV EDI,dword ptr [EBP + 0x68]
AND EAX,0xc
MOV byte ptr [ESP + 0x1c],AL
MOV EAX,dword ptr [ESP + 0x20]
TEST EAX,EAX
JNZ 0x0008df78
MOV dword ptr [ESP + 0x14],0x0
XOR EDX,EDX
MOV EAX,dword ptr [EBP + 0x24]
MOV dword ptr [ESP + 0x18],EDI
CMP EAX,dword ptr [ESP + 0x18]
LEA EDI,[EAX + 0x1]
JGE 0x0008e1b0
MOV ECX,dword ptr [EBP + 0x68]
CMP EAX,ECX
JGE 0x0008dfd8
MOV ECX,dword ptr [EBP + 0x64]
MOV EBX,EAX
LEA EAX,[EBX + EBX*0x4]
LEA ESI,[ECX + EAX*0x4]
MOV EAX,dword ptr [ESP + 0x14]
TEST EAX,EAX
JZ 0x0008db85
CMP byte ptr [ESI + 0x1],0xfc
JZ 0x0008e008
CMP byte ptr [ESP + 0x1c],0x8
JNZ 0x0008dba0
MOVZX ECX,byte ptr [ESI]
CMP CL,0xae
JZ 0x0008dba0
CMP CL,0x3e
MOV EAX,EDI
JNZ 0x0008db50
CMP EDI,0x1
JLE 0x0008db50
MOV EAX,dword ptr [ESP + 0x34]
MOV dword ptr [ESP + 0x18],EBX
MOV dword ptr [ESP + 0x14],ESI
MOV dword ptr [EBP + 0x24],EDI
MOV EAX,dword ptr [EAX + 0x108]
TEST EAX,EAX
JNZ 0x0008e340
MOV EAX,dword ptr [ESP + 0x14]
XOR ECX,ECX
MOVZX EAX,byte ptr [EAX + 0x1]
MOV dword ptr [ESP + 0x50],0x0
MOV dword ptr [ESP + 0x54],0x0
MOV dword ptr [ESP + 0x58],0x0
MOV dword ptr [ESP + 0x5c],0x3b9aca00
MOV dword ptr [ESP + 0x60],0x0
MOV word ptr [ESP + 0x64],CX
ADD EAX,0x11
CMP AL,0xf
JA 0x0008e86d
MOV EDI,dword ptr [ESP + 0x10]
MOVZX EAX,AL
MOV ESI,dword ptr [EDI + EAX*0x4 + 0xfffd26bc]
ADD ESI,EDI
JMP ESI
MOV dword ptr [EBP + 0x28],0x7
MOV ESI,0x7
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x34]
PUSH dword ptr [EAX + 0xc]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00016830
ADD ESP,0x10
MOV EDI,dword ptr [ESP + 0x13c]
XOR EDI,dword ptr GS:[0x14]
MOV EAX,ESI
JNZ 0x0008ea2f
ADD ESP,0x14c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDI,dword ptr [ESP + 0xc]
MOV EAX,EBP
ADD dword ptr [EDI + 0xb4],0x1
CALL 0x00083fd0
SUB dword ptr [EDI + 0xb4],0x1
CMP EAX,0x64
MOV ESI,EAX
JNZ 0x0008e0d0
MOV EBX,dword ptr [EBP + 0x28]
CMP EBX,0xc0a
SETZ DL
MOV EAX,dword ptr [ESP + 0xc]
MOV dword ptr [EAX + 0x3c],ESI
MOV EAX,dword ptr [EBP]
CMP byte ptr [EAX + 0x4d],0x0
JNZ 0x0008de90
TEST DL,DL
JNZ 0x0008de90
AND EBX,dword ptr [EAX + 0x40]
MOV EAX,EBX
CMP EAX,0x7
JNZ 0x0008dcc7
CMP byte ptr [EBP + 0x8c],0x0
MOV dword ptr [EBP + 0x28],0x7
CMOVS ESI,EAX
MOV EAX,dword ptr [ESP + 0xc]
AND ESI,dword ptr [EAX + 0x40]
CMP ESI,0x11
JNZ 0x0008dc24
SUB dword ptr [ESP + 0x24],0x1
JZ 0x0008dc24
MOV EAX,dword ptr [EBP + 0x24]
SUB ESP,0xc
MOV dword ptr [ESP + 0x18],EAX
PUSH EBP
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00016360
MOV EBX,dword ptr [EBP]
PUSH 0x0
MOV ECX,0xffffffff
LEA EDX,[ESP + 0x64]
PUSH EDX
PUSH EBP
MOVZX EDX,byte ptr [EBP + 0x8c]
PUSH EDX
MOV EDX,EAX
MOV EAX,EBX
CALL 0x000a0930
ADD ESP,0x20
TEST EAX,EAX
JZ 0x0008dd80
CMP EAX,0x7
MOV ESI,EAX
JZ 0x0008ded0
SUB ESP,0xc
MOV EAX,dword ptr [ESP + 0x34]
PUSH dword ptr [EAX + 0x104]
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x00016b50
MOV EDX,dword ptr [EBP + 0x78]
ADD ESP,0x10
MOV EBX,EAX
TEST EDX,EDX
JZ 0x0008dd58
MOV EAX,dword ptr [ESP + 0x28]
CALL 0x00024720
LEA ESI,[ESI]
MOV EAX,dword ptr [ESP + 0x28]
CMP byte ptr [EAX + 0x4d],0x0
JZ 0x0008e2e4
MOV dword ptr [EBP + 0x78],0x0
MOV dword ptr [EBP + 0x28],0x7
MOV ESI,0x7
JMP 0x0008dc24
MOV EAX,dword ptr [ESP + 0x50]
LEA EDI,[ESP + 0x68]
MOV ECX,0x35
MOV ESI,EAX
MOVSD.REP ES:EDI,ESI
MOV EDI,EAX
MOV ECX,0x35
MOV ESI,EBP
MOVSD.REP ES:EDI,ESI
LEA ESI,[ESP + 0x68]
MOV ECX,0x35
MOV EDI,EBP
MOVSD.REP ES:EDI,ESI
MOV EDX,dword ptr [EAX + 0x8]
MOV ECX,dword ptr [EBP + 0x8]
MOV dword ptr [EAX + 0x8],ECX
MOV dword ptr [EBP + 0x8],EDX
MOV ECX,dword ptr [EBP + 0x4]
MOV EDX,dword ptr [EAX + 0x4]
MOV dword ptr [EAX + 0x4],ECX
MOV dword ptr [EBP + 0x4],EDX
MOV ECX,dword ptr [EBP + 0xb4]
MOV EDX,dword ptr [EAX + 0xb4]
MOV dword ptr [EAX + 0xb4],ECX
MOV dword ptr [EBP + 0xb4],EDX
MOV EDX,dword ptr [EAX + 0xc8]
MOV dword ptr [EBP + 0xc8],EDX
MOVZX EDX,byte ptr [EAX + 0x8c]
MOV byte ptr [EBP + 0x8c],DL
MOV EBX,dword ptr [EAX + 0x98]
MOV EDX,EBP
MOV dword ptr [EBP + 0x98],EBX
MOV EBX,dword ptr [EAX + 0x9c]
MOV dword ptr [EBP + 0x9c],EBX
MOV EBX,dword ptr [EAX + 0xa0]
MOV dword ptr [EBP + 0xa0],EBX
MOV EBX,dword ptr [EAX + 0xa4]
MOV dword ptr [EBP + 0xa4],EBX
MOV EBX,dword ptr [EAX + 0xa8]
MOV dword ptr [EBP + 0xa8],EBX
MOV EBX,dword ptr [EAX + 0xac]
MOV dword ptr [EBP + 0xac],EBX
MOV ECX,dword ptr [EAX + 0xb0]
ADD dword ptr [EBP + 0xac],0x1
MOV dword ptr [EBP + 0xb0],ECX
CALL 0x00024cd0
MOV EAX,dword ptr [ESP + 0x50]
MOV dword ptr [EAX + 0x28],0x0
CALL 0x0006fe50
SUB ESP,0xc
PUSH EBP
MOV EBX,dword ptr [ESP + 0x20]
CALL 0x000163e0
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0xc]
TEST EAX,EAX
JS 0x0008da88
MOV byte ptr [EBP + 0x8d],0x1
JMP 0x0008da88
CALL 0x00031c90
JMP 0x0008dcb1
TEST AL,0x3
JZ 0x0008def0
CMP byte ptr [EBP + 0x8c],0x0
MOV dword ptr [EBP + 0x28],0x11
MOV ESI,0x1
JNS 0x0008dcc7
MOV EAX,EBP
CALL 0x000488a0
MOV ESI,EAX
JMP 0x0008dcc7
TEST dword ptr [EBX + 0x4c],0xffff00
JNZ 0x0008dd29
MOV EAX,EBX
CALL 0x0002e050
JMP 0x0008dd29
MOV EAX,dword ptr [ESP + 0xc]
MOV ESI,dword ptr [EAX + 0xa8]
TEST ESI,ESI
JZ 0x0008e1a0
MOV EAX,dword ptr [ESP + 0xc]
TEST byte ptr [EAX + 0x54],0x82
JNZ 0x0008df50
MOVZX EAX,byte ptr [EBP + 0x8e]
MOV EDI,dword ptr [ESP + 0xc]
ADD dword ptr [EDI + 0xa8],0x1
TEST AL,AL
JS 0x0008df29
ADD dword ptr [EDI + 0xb0],0x1
TEST byte ptr [EBP + 0x8f],0x1
JZ 0x0008df3d
MOV EDI,dword ptr [ESP + 0xc]
ADD dword ptr [EDI + 0xac],0x1
MOV dword ptr [EBP + 0x24],0x0
JMP 0x0008dac4
CMP byte ptr [EAX + 0xa1],0x0
JNZ 0x0008df0c
MOV EBX,dword ptr [EBP + 0xb4]
TEST EBX,EBX
JZ 0x0008df0c
MOV EAX,dword ptr [EAX]
LEA EDX,[EBP + 0x80]
CALL 0x0001d9a0
JMP 0x0008df0c
MOV EAX,dword ptr [EBP + 0x54]
MOV EDX,EAX
ADD EDX,0x168
MOV dword ptr [ESP + 0x14],EDX
JZ 0x0008e190
TEST byte ptr [EAX + 0x170],0x10
JZ 0x0008e190
MOV ESI,dword ptr [EAX + 0x174]
MOV EDX,dword ptr [EAX + 0x178]
SHR ESI,0x2
TEST ESI,ESI
MOV dword ptr [ESP + 0x20],ESI
JZ 0x0008db49
LEA EBX,[EDX + ESI*0x4]
MOV EAX,EDX
LEA ESI,[ESI]
MOV ECX,dword ptr [EAX]
ADD EAX,0x4
ADD EDI,dword ptr [ECX + 0x4]
CMP EBX,EAX
JNZ 0x0008dfc0
JMP 0x0008db49
MOV ESI,dword ptr [EDX]
SUB EAX,ECX
MOV EBX,EAX
MOV EAX,dword ptr [ESI + 0x4]
CMP EBX,EAX
JL 0x0008dffe
LEA ECX,[EDX + 0x4]
NOP
LEA ESI,[ESI]
MOV ESI,dword ptr [ECX]
SUB EBX,EAX
ADD ECX,0x4
MOV EAX,dword ptr [ESI + 0x4]
CMP EAX,EBX
JLE 0x0008dff0
MOV ECX,dword ptr [ESI]
JMP 0x0008db6d
CMP dword ptr [ESP + 0x20],0x0
JLE 0x0008e38d
MOV ECX,dword ptr [ESI + 0x10]
CMP ECX,dword ptr [EDX]
JZ 0x0008db85
MOV dword ptr [ESP + 0x38],EBX
XOR EAX,EAX
MOV EBX,dword ptr [ESP + 0x20]
JMP 0x0008e039
CMP dword ptr [EDX + EAX*0x4],ECX
JZ 0x0008e0c0
ADD EAX,0x1
CMP EBX,EAX
JNZ 0x0008e030
MOV EBX,dword ptr [ESP + 0x38]
MOV EDX,dword ptr [ESP + 0x20]
XOR ECX,ECX
LEA EAX,[EDX + 0x1]
MOV dword ptr [ESP + 0x38],EAX
SHL EAX,0x2
TEST EDX,EDX
MOV dword ptr [ESP + 0x20],EAX
MOV EDX,EAX
MOV EAX,dword ptr [ESP + 0x14]
SETNZ CL
CALL 0x000307e0
TEST EAX,EAX
MOV dword ptr [EBP + 0x28],EAX
JNZ 0x0008e177
MOV ECX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [ESI + 0x10]
MOV EDX,dword ptr [ECX + 0x10]
MOV ECX,dword ptr [ESP + 0x20]
MOV dword ptr [EDX + ECX*0x1 + -0x4],EAX
MOV ECX,dword ptr [ESP + 0x14]
MOVZX EAX,word ptr [ECX + 0x8]
MOV word ptr [ESP + 0x44],AX
AND AX,0x3e40
OR EAX,0x10
MOV word ptr [ECX + 0x8],AX
MOV EAX,dword ptr [ESP + 0x20]
MOV dword ptr [ECX + 0xc],EAX
MOV EAX,dword ptr [ESI + 0x10]
MOV EAX,dword ptr [EAX + 0x4]
ADD dword ptr [ESP + 0x18],EAX
MOV EAX,dword ptr [ESP + 0x38]
MOV dword ptr [ESP + 0x20],EAX
JMP 0x0008db85
MOV EBX,dword ptr [ESP + 0x38]
JMP 0x0008db85
CMP dword ptr [EBP + 0x84],0x0
JL 0x0008e0ea
JLE 0x0008e2ba
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,EBP
CALL 0x0001f8e0
CMP ESI,0x65
JNZ 0x0008e15c
MOV EAX,dword ptr [ESP + 0xc]
CMP byte ptr [EAX + 0x4b],0x0
JNZ 0x0008e1e0
MOV EBX,dword ptr [EBP + 0x28]
MOV ESI,0x65
CMP EBX,0xc0a
SETZ DL
JMP 0x0008dc90
MOV EAX,0x1471f
CALL 0x000380c0
MOV ESI,EAX
JMP 0x0008dc3a
MOV EAX,dword ptr [ESP + 0x34]
TEST dword ptr [EAX + 0x4c],0xffff00
JZ 0x0008e363
CMP dword ptr [EBP + 0x84],0x0
JL 0x0008e157
JLE 0x0008e185
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,EBP
CALL 0x0001f8e0
MOV ESI,0x1
CMP byte ptr [EBP + 0x8c],0x0
JNS 0x0008dc84
MOV EAX,EBP
CALL 0x000488a0
MOV ESI,EAX
JMP 0x0008dc84
CMP dword ptr [EBP + 0x84],0x0
MOV dword ptr [EBP + 0x24],EDI
JL 0x0008e157
JG 0x0008e14c
CMP dword ptr [EBP + 0x80],0x0
JBE 0x0008e157
JMP 0x0008e14c
MOV dword ptr [ESP + 0x20],0x0
XOR EDX,EDX
JMP 0x0008db49
MOV dword ptr [EAX + 0x108],0x0
JMP 0x0008df02
CMP dword ptr [EBP + 0x84],0x0
MOV dword ptr [EBP + 0x28],0x0
MOV dword ptr [EBP + 0x24],EDI
JLE 0x0008e2cc
MOV EAX,dword ptr [ESP + 0xc]
MOV EDX,EBP
CALL 0x0001f8e0
MOV EAX,dword ptr [ESP + 0xc]
CMP byte ptr [EAX + 0x4b],0x0
JZ 0x0008e0fd
MOV EAX,dword ptr [ESP + 0xc]
XOR EBX,EBX
XOR ECX,ECX
MOV ESI,dword ptr [EAX + 0x14]
TEST ESI,ESI
JLE 0x0008e9aa
MOV EDI,dword ptr [ESP + 0xc]
MOV ESI,ECX
MOV dword ptr [ESP + 0x14],EBX
MOV dword ptr [ESP + 0x18],EBP
JMP 0x0008e25a
MOV EAX,dword ptr [EBX + 0x4]
MOV EAX,dword ptr [EAX]
MOV EAX,dword ptr [EAX + 0xd4]
TEST EAX,EAX
JZ 0x0008e24e
MOV EDX,dword ptr [EAX + 0xc]
MOV dword ptr [EAX + 0xc],0x0
TEST EDX,EDX
JLE 0x0008e24e
MOV EAX,dword ptr [EDI + 0xf0]
TEST EAX,EAX
JZ 0x0008e24e
MOV ECX,dword ptr [ESP + 0x14]
TEST ECX,ECX
JNZ 0x0008e24e
PUSH EDX
MOV EDX,dword ptr [EDI + 0x10]
PUSH dword ptr [EDX + EBP*0x1]
PUSH EDI
PUSH dword ptr [EDI + 0xf4]
CALL EAX
MOV dword ptr [ESP + 0x24],EAX
ADD ESP,0x10
ADD ESI,0x1
CMP ESI,dword ptr [EDI + 0x14]
JGE 0x0008e315
MOV EAX,dword ptr [EDI + 0x10]
MOV EBP,ESI
SHL EBP,0x4
MOV EBX,dword ptr [EAX + EBP*0x1 + 0x4]
TEST EBX,EBX
JZ 0x0008e24e
CMP byte ptr [EBX + 0x9],0x0
JZ 0x0008e208
MOV EAX,EBX
CALL 0x00027820
MOV EAX,dword ptr [EBX + 0x4]
MOV EAX,dword ptr [EAX]
MOV ECX,dword ptr [EAX + 0xd4]
TEST ECX,ECX
JZ 0x0008e36d
MOVZX EAX,byte ptr [EBX + 0x9]
MOV EDX,dword ptr [ECX + 0xc]
MOV dword ptr [ECX + 0xc],0x0
TEST AL,AL
JZ 0x0008e221
SUB dword ptr [EBX + 0xc],0x1
JNZ 0x0008e221
MOV EAX,EBX
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x000278b0
MOV EDX,dword ptr [ESP + 0x1c]
JMP 0x0008e221
CMP dword ptr [EBP + 0x80],0x0
JBE 0x0008e0ea
JMP 0x0008e0df
JL 0x0008e0ef
CMP dword ptr [EBP + 0x80],0x0
JBE 0x0008e0ef
JMP 0x0008e1c7
MOV EDI,EAX
MOV EDX,EBX
CALL 0x0002eba0
MOV dword ptr [EBP + 0x78],EAX
CMP byte ptr [EDI + 0x4d],0x0
MOV EAX,dword ptr [ESP + 0x28]
JNZ 0x0008e3a0
CMP ESI,0xc0a
JZ 0x0008e3a0
AND ESI,dword ptr [EAX + 0x40]
MOV dword ptr [EBP + 0x28],ESI
JMP 0x0008dc24
MOV EBX,dword ptr [ESP + 0x14]
MOV EBP,dword ptr [ESP + 0x18]
CMP EBX,0xc0a
MOV dword ptr [EBP + 0x28],EBX
SETZ DL
CMP EBX,0x1
SBB ESI,ESI
AND ESI,0x64
ADD ESI,0x1
JMP 0x0008dc90
SUB ESP,0x8
MOV dword ptr [EBP + 0x28],0x9
MOV EAX,dword ptr [ESP + 0x18]
LEA EAX,[EAX + 0xfffcce01]
PUSH EAX
PUSH EBP
CALL 0x0003e960
ADD ESP,0x10
JMP 0x0008e141
CALL 0x0002e050
JMP 0x0008e141
CMP byte ptr [EBX + 0x9],0x0
JZ 0x0008e24e
SUB dword ptr [EBX + 0xc],0x1
JNZ 0x0008e24e
MOV EAX,EBX
CALL 0x000278b0
JMP 0x0008e24e
JNZ 0x0008db85
JMP 0x0008e044
CALL 0x00031c90
MOV ESI,EAX
JMP 0x0008e30d
TEST EAX,EAX
JNZ 0x0008e59b
LEA EDX,[ESP + 0x50]
NOP
MOV EAX,EDX
CALL 0x0002e520
MOV EBX,EAX
MOVZX EAX,byte ptr [EBP + 0x8e]
AND EAX,0xc
CMP AL,0x8
JZ 0x0008e879
MOV EDX,dword ptr [ESP + 0x18]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [EAX + 0x30],0x2400
JNZ 0x0008e971
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EAX + 0x2c],ECX
MOV ECX,0x4
MOV dword ptr [EAX + 0x28],EDX
MOV word ptr [EAX + 0x30],CX
MOV EDI,dword ptr [ESP + 0x14]
MOV ESI,dword ptr [ESP + 0x10]
SUB ESP,0x8
MOV ECX,0xffffffff
MOVZX EAX,byte ptr [EDI]
MOV EDX,dword ptr [ESI + EAX*0x4 + 0xffffed00]
MOV ESI,dword ptr [ESP + 0x34]
PUSH 0x0
PUSH 0x1
LEA EAX,[ESI + 0x50]
CALL 0x000484d0
MOV EDX,dword ptr [EDI + 0x4]
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [ESI + 0x80],0x2400
JNZ 0x0008e98e
MOV dword ptr [EAX + 0x78],EDX
MOV EDX,0x4
MOV dword ptr [EAX + 0x7c],ECX
MOV word ptr [EAX + 0x80],DX
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [EAX + 0xa8],0x2400
JNZ 0x0008e97f
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,0x4
MOV dword ptr [EAX + 0xa0],EDX
MOV dword ptr [EAX + 0xa4],ECX
MOV word ptr [EAX + 0xa8],DI
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [EAX + 0xd0],0x2400
JNZ 0x0008e962
MOV EAX,dword ptr [ESP + 0x2c]
MOV ESI,0x4
MOV dword ptr [EAX + 0xc8],EDX
MOV dword ptr [EAX + 0xcc],ECX
MOV word ptr [EAX + 0xd0],SI
MOV EAX,dword ptr [ESP + 0x14]
XOR ECX,ECX
MOVZX EDX,word ptr [EAX + 0x2]
MOV EAX,dword ptr [ESP + 0x2c]
TEST word ptr [EAX + 0x120],0x2400
JNZ 0x0008e953
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EAX + 0x11c],ECX
MOV ECX,0x4
MOV dword ptr [EAX + 0x118],EDX
MOV word ptr [EAX + 0x120],CX
MOV EAX,dword ptr [ESP + 0x2c]
TEST word ptr [EAX + 0x148],0x2400
JNZ 0x0008e99b
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDX,0x1
MOV word ptr [EAX + 0x148],DX
MOV EAX,dword ptr [ESP + 0x2c]
SUB ESP,0x8
MOV ECX,0xffffffff
PUSH dword ptr [ESP + 0x44]
PUSH 0x1
MOV EDX,EBX
MOV EDI,0x8
ADD EAX,0xf0
CALL 0x000484d0
MOV word ptr [EBP + 0x88],DI
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x30]
MOV dword ptr [EBP + 0x74],EAX
MOV EAX,dword ptr [ESP + 0x34]
CMP byte ptr [EAX + 0x4d],0x0
JZ 0x0008e93e
MOV dword ptr [EBP + 0x28],0x7
JMP 0x0008e141
SUB ESP,0x8
PUSH EAX
LEA EDX,[ESP + 0x5c]
PUSH EDX
MOV EBX,dword ptr [ESP + 0x20]
MOV dword ptr [ESP + 0x2c],EDX
CALL 0x00016c40
MOVZX EAX,byte ptr [ESP + 0x74]
ADD ESP,0x10
MOV EDX,dword ptr [ESP + 0x1c]
AND EAX,0x7
TEST AL,AL
JZ 0x0008e3d0
MOV EAX,dword ptr [ESP + 0x34]
TEST dword ptr [EAX + 0x4c],0xffff00
JNZ 0x0008e3d0
MOV dword ptr [ESP + 0x1c],EDX
CALL 0x0002e050
MOV EDX,dword ptr [ESP + 0x1c]
JMP 0x0008e3d0
MOV EAX,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x10]
JMP 0x0008e3c2
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x4]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [EAX + 0x30],0x2400
JNZ 0x0008e9d7
MOV EAX,dword ptr [ESP + 0x2c]
MOV dword ptr [EAX + 0x28],EDX
MOV EDX,0x4
MOV dword ptr [EAX + 0x2c],ECX
MOV word ptr [EAX + 0x30],DX
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0x8]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [EAX + 0x58],0x2400
JNZ 0x0008e9ca
MOV EAX,dword ptr [ESP + 0x2c]
MOV EDI,0x4
MOV dword ptr [EAX + 0x50],EDX
MOV dword ptr [EAX + 0x54],ECX
MOV word ptr [EAX + 0x58],DI
MOV EAX,dword ptr [ESP + 0x14]
MOV EDX,dword ptr [EAX + 0xc]
MOV EAX,dword ptr [ESP + 0x2c]
MOV ECX,EDX
SAR ECX,0x1f
TEST word ptr [EAX + 0x80],0x2400
JNZ 0x0008e9bd
MOV EAX,dword ptr [ESP + 0x2c]
MOV ESI,0x4
MOV dword ptr [EAX + 0x78],EDX
MOV dword ptr [EAX + 0x7c],ECX
MOV word ptr [EAX + 0x80],SI
MOV EAX,dword ptr [ESP + 0x2c]
SUB ESP,0x8
MOV EDX,EBX
PUSH dword ptr [ESP + 0x48]
PUSH 0x1
MOV ECX,0xffffffff
MOV EBX,0x4
ADD EAX,0xa0
CALL 0x000484d0
MOV word ptr [EBP + 0x88],BX
ADD ESP,0x10
JMP 0x0008e570
MOV dword ptr [EBP + 0x28],0x0
XOR EBX,EBX
XOR EDX,EDX
MOV ESI,0x64
JMP 0x0008dc90
ADD EAX,0x118
CALL 0x00024920
JMP 0x0008e520
ADD EAX,0xc8
CALL 0x00024920
JMP 0x0008e4e7
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x00024920
JMP 0x0008e417
ADD EAX,0xa0
CALL 0x00024920
JMP 0x0008e4ac
ADD EAX,0x78
CALL 0x00024920
JMP 0x0008e471
ADD EAX,0x140
CALL 0x000248e0
JMP 0x0008e543
MOV dword ptr [EBP + 0x28],0x0
XOR EDX,EDX
MOV ESI,0x65
JMP 0x0008dc90
ADD EAX,0x78
CALL 0x00024920
JMP 0x0008e90c
ADD EAX,0x50
CALL 0x00024920
JMP 0x0008e8d7
MOV EAX,dword ptr [ESP + 0x30]
CALL 0x00024920
JMP 0x0008e8a8
CALL 0x000a9ea0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nuint sqlite3_step(int *param_1)\n\n{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return uVar24;\n}\n\n" comment (function_definition "uint sqlite3_step(int *param_1)\n\n{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return uVar24;\n}" type_identifier (function_declarator "sqlite3_step(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }\n  return uVar24;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "uint local_148;" type_identifier identifier ;) (declaration "int local_144;" primitive_type identifier ;) (declaration "uint local_13c;" type_identifier identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "int *local_10c;" primitive_type (pointer_declarator "*local_10c" * identifier) ;) (declaration "undefined4 local_108;" type_identifier identifier ;) (declaration "undefined4 local_104;" type_identifier identifier ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "undefined4 local_fc;" type_identifier identifier ;) (declaration "undefined2 local_f8;" type_identifier identifier ;) (declaration "int local_f4 [53];" primitive_type (array_declarator "local_f4 [53]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x8da19;" (assignment_expression "uStack_14 = 0x8da19" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = FUN_0003bbd0();" (assignment_expression "iVar10 = FUN_0003bbd0()" identifier = (call_expression "FUN_0003bbd0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }" { (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));" (call_expression "sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar10 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "puVar8 = PTR_sqlite3_free_000ddfe0;" (assignment_expression "puVar8 = PTR_sqlite3_free_000ddfe0" identifier = identifier) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x8d) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x8d) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x8d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x8d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8d)" ( (binary_expression "(int)param_1 + 0x8d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_138 = 0x33;" (assignment_expression "local_138 = 0x33" identifier = number_literal) ;) (labeled_statement "LAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }" statement_identifier : (if_statement "if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }" if (parenthesized_expression "(param_1[5] != 0x2df20da3)" ( (binary_expression "param_1[5] != 0x2df20da3" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      sqlite3_reset(param_1);\n    }" { (expression_statement "sqlite3_reset(param_1);" (call_expression "sqlite3_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }))) (expression_statement "iVar14 = *param_1;" (assignment_expression "iVar14 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar14 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar14 + 0x4d)" * (cast_expression "(char *)(iVar14 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4d)" ( (binary_expression "iVar14 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }" { (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0008dc24;" goto statement_identifier ;) })) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }" if (parenthesized_expression "(param_1[9] < 0)" ( (binary_expression "param_1[9] < 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }" { (if_statement "if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }" if (parenthesized_expression "((bVar9 & 3) == 0)" ( (binary_expression "(bVar9 & 3) == 0" (parenthesized_expression "(bVar9 & 3)" ( (binary_expression "bVar9 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }" { (if_statement "if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }" if (parenthesized_expression "(*(int *)(iVar14 + 0xa8) == 0)" ( (binary_expression "*(int *)(iVar14 + 0xa8) == 0" (pointer_expression "*(int *)(iVar14 + 0xa8)" * (cast_expression "(int *)(iVar14 + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }" { (expression_statement "*(undefined4 *)(iVar14 + 0x108) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x108) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x108)" * (cast_expression "(undefined4 *)(iVar14 + 0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x108)" ( (binary_expression "iVar14 + 0x108" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }" if (parenthesized_expression "((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0))" ( (binary_expression "(((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)" (parenthesized_expression "(((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0'))" ( (binary_expression "((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')" (parenthesized_expression "((*(byte *)(iVar14 + 0x54) & 0x82) != 0)" ( (binary_expression "(*(byte *)(iVar14 + 0x54) & 0x82) != 0" (parenthesized_expression "(*(byte *)(iVar14 + 0x54) & 0x82)" ( (binary_expression "*(byte *)(iVar14 + 0x54) & 0x82" (pointer_expression "*(byte *)(iVar14 + 0x54)" * (cast_expression "(byte *)(iVar14 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x54)" ( (binary_expression "iVar14 + 0x54" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar14 + 0xa1) == '\0')" ( (binary_expression "*(char *)(iVar14 + 0xa1) == '\0'" (pointer_expression "*(char *)(iVar14 + 0xa1)" * (cast_expression "(char *)(iVar14 + 0xa1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa1)" ( (binary_expression "iVar14 + 0xa1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[0x2d] != 0)" ( (binary_expression "param_1[0x2d] != 0" (subscript_expression "param_1[0x2d]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          FUN_0001d9a0();\n        }" { (expression_statement "FUN_0001d9a0();" (call_expression "FUN_0001d9a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;" (assignment_expression "*(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1" (pointer_expression "*(int *)(iVar14 + 0xa8)" * (cast_expression "(int *)(iVar14 + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xa8) + 1" (pointer_expression "*(int *)(iVar14 + 0xa8)" * (cast_expression "(int *)(iVar14 + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }" if (parenthesized_expression "(-1 < (char)bVar9)" ( (binary_expression "-1 < (char)bVar9" number_literal < (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }" { (expression_statement "*(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;" (assignment_expression "*(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1" (pointer_expression "*(int *)(iVar14 + 0xb0)" * (cast_expression "(int *)(iVar14 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb0)" ( (binary_expression "iVar14 + 0xb0" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xb0) + 1" (pointer_expression "*(int *)(iVar14 + 0xb0)" * (cast_expression "(int *)(iVar14 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb0)" ( (binary_expression "iVar14 + 0xb0" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x8f) & 1) != 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x8f) & 1) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x8f) & 1)" ( (binary_expression "*(byte *)((int)param_1 + 0x8f) & 1" (pointer_expression "*(byte *)((int)param_1 + 0x8f)" * (cast_expression "(byte *)((int)param_1 + 0x8f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8f)" ( (binary_expression "(int)param_1 + 0x8f" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }" { (expression_statement "*(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;" (assignment_expression "*(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1" (pointer_expression "*(int *)(iVar14 + 0xac)" * (cast_expression "(int *)(iVar14 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xac)" ( (binary_expression "iVar14 + 0xac" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xac) + 1" (pointer_expression "*(int *)(iVar14 + 0xac)" * (cast_expression "(int *)(iVar14 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xac)" ( (binary_expression "iVar14 + 0xac" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0008dac4;" goto statement_identifier ;) })) (expression_statement "param_1[10] = 0x11;" (assignment_expression "param_1[10] = 0x11" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (if_statement "if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" if (parenthesized_expression "((char)param_1[0x23] < '\0')" ( (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar24 = FUN_000488a0();\n      }" { (expression_statement "uVar24 = FUN_000488a0();" (assignment_expression "uVar24 = FUN_000488a0()" identifier = (call_expression "FUN_000488a0()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_0008dcc7;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" statement_identifier : (if_statement "if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" if (parenthesized_expression "((bVar9 & 0xc) == 0)" ( (binary_expression "(bVar9 & 0xc) == 0" (parenthesized_expression "(bVar9 & 0xc)" ( (binary_expression "bVar9 & 0xc" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" { (expression_statement "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;" (assignment_expression "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xb4) + 1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar24 = FUN_00083fd0();" (assignment_expression "uVar24 = FUN_00083fd0()" identifier = (call_expression "FUN_00083fd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;" (assignment_expression "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xb4) + -1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (uVar24 == 100) goto LAB_0008dc84;" if (parenthesized_expression "(uVar24 == 100)" ( (binary_expression "uVar24 == 100" identifier == number_literal) )) (goto_statement "goto LAB_0008dc84;" goto statement_identifier ;)) (if_statement "if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }" if (parenthesized_expression "((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0))))" ( (binary_expression "(-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))" (parenthesized_expression "(-1 < param_1[0x21])" ( (binary_expression "-1 < param_1[0x21]" number_literal < (subscript_expression "param_1[0x21]" identifier [ number_literal ])) )) && (parenthesized_expression "((0 < param_1[0x21] || (param_1[0x20] != 0)))" ( (parenthesized_expression "(0 < param_1[0x21] || (param_1[0x20] != 0))" ( (binary_expression "0 < param_1[0x21] || (param_1[0x20] != 0)" (binary_expression "0 < param_1[0x21]" number_literal < (subscript_expression "param_1[0x21]" identifier [ number_literal ])) || (parenthesized_expression "(param_1[0x20] != 0)" ( (binary_expression "param_1[0x20] != 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n        FUN_0001f8e0();\n      }" { (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (uVar24 != 0x65) goto LAB_0008e15c;" if (parenthesized_expression "(uVar24 != 0x65)" ( (binary_expression "uVar24 != 0x65" identifier != number_literal) )) (goto_statement "goto LAB_0008e15c;" goto statement_identifier ;)) (labeled_statement "LAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);" statement_identifier : (expression_statement "cVar3 = *(char *)(iVar14 + 0x4b);" (assignment_expression "cVar3 = *(char *)(iVar14 + 0x4b)" identifier = (pointer_expression "*(char *)(iVar14 + 0x4b)" * (cast_expression "(char *)(iVar14 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4b)" ( (binary_expression "iVar14 + 0x4b" identifier + number_literal) ))))) ;)) (labeled_statement "joined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" statement_identifier : (if_statement "if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }" { (expression_statement "local_148 = param_1[10];" (assignment_expression "local_148 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = 0x65;" (assignment_expression "uVar24 = 0x65" identifier = number_literal) ;) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" identifier = (binary_expression "local_148 == 0xc0a" identifier == number_literal)) ;) }) (else_clause "else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" else (compound_statement "{\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" { (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" if (parenthesized_expression "(*(int *)(iVar14 + 0x14) < 1)" ( (binary_expression "*(int *)(iVar14 + 0x14) < 1" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "uVar24 = 0x65;" (assignment_expression "uVar24 = 0x65" identifier = number_literal) ;) }) (else_clause "else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" else (compound_statement "{\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));" do (compound_statement "{\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          }" { (expression_statement "iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" ( (binary_expression "*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10" (binary_expression "*(int *)(iVar14 + 0x10) + 4" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar17 * 0x10" identifier * number_literal)) ))))) ;) (if_statement "if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }" { (if_statement "if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" if (parenthesized_expression "(*(char *)(iVar5 + 9) == '\0')" ( (binary_expression "*(char *)(iVar5 + 9) == '\0'" (pointer_expression "*(char *)(iVar5 + 9)" * (cast_expression "(char *)(iVar5 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 9)" ( (binary_expression "iVar5 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }" { (expression_statement "iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);" (assignment_expression "iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4)" identifier = (pointer_expression "*(int *)(**(int **)(iVar5 + 4) + 0xd4)" * (cast_expression "(int *)(**(int **)(iVar5 + 4) + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 4) + 0xd4)" ( (binary_expression "**(int **)(iVar5 + 4) + 0xd4" (pointer_expression "**(int **)(iVar5 + 4)" * (pointer_expression "*(int **)(iVar5 + 4)" * (cast_expression "(int **)(iVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }" { (expression_statement "iVar13 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0008e221;" goto statement_identifier ;) })) }) (else_clause "else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" else (compound_statement "{\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" { (expression_statement "FUN_00027820();" (call_expression "FUN_00027820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);" (assignment_expression "iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4)" identifier = (pointer_expression "*(int *)(**(int **)(iVar5 + 4) + 0xd4)" * (cast_expression "(int *)(**(int **)(iVar5 + 4) + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 4) + 0xd4)" ( (binary_expression "**(int **)(iVar5 + 4) + 0xd4" (pointer_expression "**(int **)(iVar5 + 4)" * (pointer_expression "*(int **)(iVar5 + 4)" * (cast_expression "(int **)(iVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }" { (if_statement "if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" if (parenthesized_expression "(*(char *)(iVar5 + 9) != '\0')" ( (binary_expression "*(char *)(iVar5 + 9) != '\0'" (pointer_expression "*(char *)(iVar5 + 9)" * (cast_expression "(char *)(iVar5 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 9)" ( (binary_expression "iVar5 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" { (expression_statement "piVar21 = (int *)(iVar5 + 0xc);" (assignment_expression "piVar21 = (int *)(iVar5 + 0xc)" identifier = (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = *piVar21 + -1;" (assignment_expression "*piVar21 = *piVar21 + -1" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + -1" (pointer_expression "*piVar21" * identifier) + number_literal)) ;) (if_statement "if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }" if (parenthesized_expression "(*piVar21 == 0)" ( (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" * identifier) == number_literal) )) (compound_statement "{\n                      FUN_000278b0();\n                    }" { (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" identifier (argument_list "()" ( ))) ;) })) })) }) (else_clause "else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" else (compound_statement "{\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" { (expression_statement "cVar3 = *(char *)(iVar5 + 9);" (assignment_expression "cVar3 = *(char *)(iVar5 + 9)" identifier = (pointer_expression "*(char *)(iVar5 + 9)" * (cast_expression "(char *)(iVar5 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 9)" ( (binary_expression "iVar5 + 9" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(iVar23 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar23 + 0xc)" identifier = (pointer_expression "*(int *)(iVar23 + 0xc)" * (cast_expression "(int *)(iVar23 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc)" ( (binary_expression "iVar23 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar23 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar23 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar23 + 0xc)" * (cast_expression "(undefined4 *)(iVar23 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc)" ( (binary_expression "iVar23 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" { (expression_statement "piVar21 = (int *)(iVar5 + 0xc);" (assignment_expression "piVar21 = (int *)(iVar5 + 0xc)" identifier = (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = *piVar21 + -1;" (assignment_expression "*piVar21 = *piVar21 + -1" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + -1" (pointer_expression "*piVar21" * identifier) + number_literal)) ;) (if_statement "if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }" if (parenthesized_expression "(*piVar21 == 0)" ( (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" * identifier) == number_literal) )) (compound_statement "{\n                      FUN_000278b0();\n                    }" { (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" identifier (argument_list "()" ( ))) ;) })) })) (labeled_statement "LAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" statement_identifier : (if_statement "if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" if (parenthesized_expression "(((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0))" ( (binary_expression "((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)" (parenthesized_expression "((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0))" ( (binary_expression "(0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)" (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) && (parenthesized_expression "(*(code **)(iVar14 + 0xf0) != (code *)0x0)" ( (binary_expression "*(code **)(iVar14 + 0xf0) != (code *)0x0" (pointer_expression "*(code **)(iVar14 + 0xf0)" * (cast_expression "(code **)(iVar14 + 0xf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0xf0)" ( (binary_expression "iVar14 + 0xf0" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(local_148 == 0)" ( (binary_expression "local_148 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" { (expression_statement "local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);" (assignment_expression "local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" identifier = (call_expression "(**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" (parenthesized_expression "(**(code **)(iVar14 + 0xf0))" ( (pointer_expression "**(code **)(iVar14 + 0xf0)" * (pointer_expression "*(code **)(iVar14 + 0xf0)" * (cast_expression "(code **)(iVar14 + 0xf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0xf0)" ( (binary_expression "iVar14 + 0xf0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" ( (pointer_expression "*(undefined4 *)(iVar14 + 0xf4)" * (cast_expression "(undefined4 *)(iVar14 + 0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xf4)" ( (binary_expression "iVar14 + 0xf4" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" * (cast_expression "(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" ( (binary_expression "*(int *)(iVar14 + 0x10) + iVar17 * 0x10" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar17 * 0x10" identifier * number_literal)) )))) , identifier )))) ;) }))) }))) }))) })) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < *(int *)(iVar14 + 0x14))" ( (binary_expression "iVar17 < *(int *)(iVar14 + 0x14)" identifier < (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) )) ;) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" identifier = (binary_expression "local_148 == 0xc0a" identifier == number_literal)) ;) (expression_statement "param_1[10] = local_148;" (assignment_expression "param_1[10] = local_148" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar24 = (-(uint)(local_148 == 0) & 100) + 1;" (assignment_expression "uVar24 = (-(uint)(local_148 == 0) & 100) + 1" identifier = (binary_expression "(-(uint)(local_148 == 0) & 100) + 1" (parenthesized_expression "(-(uint)(local_148 == 0) & 100)" ( (binary_expression "-(uint)(local_148 == 0) & 100" (unary_expression "-(uint)(local_148 == 0)" - (call_expression "(uint)(local_148 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_148 == 0)" ( (binary_expression "local_148 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) })))) (goto_statement "goto LAB_0008dc90;" goto statement_identifier ;) }))) (expression_statement "iVar17 = param_1[0x15];" (assignment_expression "iVar17 = param_1[0x15]" identifier = (subscript_expression "param_1[0x15]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = *param_1;" (assignment_expression "iVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_13c = 1;" (assignment_expression "local_13c = 1" identifier = number_literal) ;) (if_statement "if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }" if (parenthesized_expression "((bVar9 & 0xc) != 4)" ( (binary_expression "(bVar9 & 0xc) != 4" (parenthesized_expression "(bVar9 & 0xc)" ( (binary_expression "bVar9 & 0xc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }" { (expression_statement "local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;" (assignment_expression "local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1" identifier = (binary_expression "*(uint *)(iVar5 + 0x1c) >> 0x18 & 1" (binary_expression "*(uint *)(iVar5 + 0x1c) >> 0x18" (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) })) (if_statement "if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }" if (parenthesized_expression "(iVar17 + 0x28 != 0)" ( (binary_expression "iVar17 + 0x28 != 0" (binary_expression "iVar17 + 0x28" identifier + number_literal) != number_literal) )) (compound_statement "{\n      FUN_000284b0();\n    }" { (expression_statement "FUN_000284b0();" (call_expression "FUN_000284b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "param_1[0x1d] = 0;" (assignment_expression "param_1[0x1d] = 0" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }" if (parenthesized_expression "(param_1[10] == 7)" ( (binary_expression "param_1[10] == 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }" { (if_statement "if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }" if (parenthesized_expression "((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar5 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_0002e050();\n      }" { (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008e141;" goto statement_identifier ;) })) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_144 = param_1[0x1a];" (assignment_expression "local_144 = param_1[0x1a]" identifier = (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" if (parenthesized_expression "(local_13c == 0)" ( (binary_expression "local_13c == 0" identifier == number_literal) )) (compound_statement "{\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }" { (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = (int *)0x0;" (assignment_expression "piVar21 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" else (compound_statement "{\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" { (expression_statement "iVar13 = param_1[0x15];" (assignment_expression "iVar13 = param_1[0x15]" identifier = (subscript_expression "param_1[0x15]" identifier [ number_literal ])) ;) (expression_statement "local_148 = iVar13 + 0x168;" (assignment_expression "local_148 = iVar13 + 0x168" identifier = (binary_expression "iVar13 + 0x168" identifier + number_literal)) ;) (if_statement "if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" if (parenthesized_expression "((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0))" ( (binary_expression "(local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)" (parenthesized_expression "(local_148 == 0)" ( (binary_expression "local_148 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(iVar13 + 0x170) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 0x170) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0x170) & 0x10)" ( (binary_expression "*(byte *)(iVar13 + 0x170) & 0x10" (pointer_expression "*(byte *)(iVar13 + 0x170)" * (cast_expression "(byte *)(iVar13 + 0x170)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x170)" ( (binary_expression "iVar13 + 0x170" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }" { (expression_statement "local_13c = 0;" (assignment_expression "local_13c = 0" identifier = number_literal) ;) (expression_statement "piVar21 = (int *)0x0;" (assignment_expression "piVar21 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" else (compound_statement "{\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" { (expression_statement "piVar21 = *(int **)(iVar13 + 0x178);" (assignment_expression "piVar21 = *(int **)(iVar13 + 0x178)" identifier = (pointer_expression "*(int **)(iVar13 + 0x178)" * (cast_expression "(int **)(iVar13 + 0x178)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x178)" ( (binary_expression "iVar13 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "local_13c = *(uint *)(iVar13 + 0x174) >> 2;" (assignment_expression "local_13c = *(uint *)(iVar13 + 0x174) >> 2" identifier = (binary_expression "*(uint *)(iVar13 + 0x174) >> 2" (pointer_expression "*(uint *)(iVar13 + 0x174)" * (cast_expression "(uint *)(iVar13 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x174)" ( (binary_expression "iVar13 + 0x174" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }" if (parenthesized_expression "(local_13c != 0)" ( (binary_expression "local_13c != 0" identifier != number_literal) )) (compound_statement "{\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }" { (expression_statement "piVar11 = piVar21;" (assignment_expression "piVar11 = piVar21" identifier = identifier) ;) (do_statement "do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);" do (compound_statement "{\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          }" { (expression_statement "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_144 = local_144 + *(int *)(iVar13 + 4);" (assignment_expression "local_144 = local_144 + *(int *)(iVar13 + 4)" identifier = (binary_expression "local_144 + *(int *)(iVar13 + 4)" identifier + (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(piVar21 + local_13c != piVar11)" ( (binary_expression "piVar21 + local_13c != piVar11" (binary_expression "piVar21 + local_13c" identifier + identifier) != identifier) )) ;) })) }))) }))) (expression_statement "iVar13 = param_1[9];" (assignment_expression "iVar13 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (do_statement "do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));" do (compound_statement "{\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    }" { (expression_statement "iVar23 = iVar13 + 1;" (assignment_expression "iVar23 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }" if (parenthesized_expression "(local_144 <= iVar13)" ( (binary_expression "local_144 <= iVar13" identifier <= identifier) )) (compound_statement "{\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;" if (parenthesized_expression "((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0))))" ( (binary_expression "(param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))" (parenthesized_expression "(param_1[0x21] < 1)" ( (binary_expression "param_1[0x21] < 1" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) < number_literal) )) && (parenthesized_expression "((param_1[0x21] < 0 || (param_1[0x20] == 0)))" ( (parenthesized_expression "(param_1[0x21] < 0 || (param_1[0x20] == 0))" ( (binary_expression "param_1[0x21] < 0 || (param_1[0x20] == 0)" (binary_expression "param_1[0x21] < 0" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) < number_literal) || (parenthesized_expression "(param_1[0x20] == 0)" ( (binary_expression "param_1[0x20] == 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0008e0ef;" goto statement_identifier ;)) (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar3 = *(char *)(iVar14 + 0x4b);" (assignment_expression "cVar3 = *(char *)(iVar14 + 0x4b)" identifier = (pointer_expression "*(char *)(iVar14 + 0x4b)" * (cast_expression "(char *)(iVar14 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4b)" ( (binary_expression "iVar14 + 0x4b" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0008e0f7;" goto statement_identifier ;) })) (if_statement "if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" if (parenthesized_expression "(iVar13 < param_1[0x1a])" ( (binary_expression "iVar13 < param_1[0x1a]" identifier < (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }" { (expression_statement "iVar19 = param_1[0x19];" (assignment_expression "iVar19 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = iVar13;" (assignment_expression "iVar12 = iVar13" identifier = identifier) ;) }) (else_clause "else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" else (compound_statement "{\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" { (expression_statement "piVar11 = (int *)*piVar21;" (assignment_expression "piVar11 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "iVar12 = iVar13 - param_1[0x1a];" (assignment_expression "iVar12 = iVar13 - param_1[0x1a]" identifier = (binary_expression "iVar13 - param_1[0x1a]" identifier - (subscript_expression "param_1[0x1a]" identifier [ number_literal ]))) ;) (expression_statement "iVar13 = piVar11[1];" (assignment_expression "iVar13 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = piVar21;" (assignment_expression "piVar7 = piVar21" identifier = identifier) ;) (if_statement "if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }" if (parenthesized_expression "(iVar13 <= iVar12)" ( (binary_expression "iVar13 <= iVar12" identifier <= identifier) )) (compound_statement "{\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }" { (do_statement "do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);" do (compound_statement "{\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          }" { (expression_statement "piVar11 = (int *)piVar7[1];" (assignment_expression "piVar11 = (int *)piVar7[1]" identifier = (cast_expression "(int *)piVar7[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar12 = iVar12 - iVar13;" (assignment_expression "iVar12 = iVar12 - iVar13" identifier = (binary_expression "iVar12 - iVar13" identifier - identifier)) ;) (expression_statement "iVar13 = piVar11[1];" (assignment_expression "iVar13 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 <= iVar12)" ( (binary_expression "iVar13 <= iVar12" identifier <= identifier) )) ;) })) (expression_statement "iVar19 = *piVar11;" (assignment_expression "iVar19 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) }))) (expression_statement "pcVar2 = (char *)(iVar19 + iVar12 * 0x14);" (assignment_expression "pcVar2 = (char *)(iVar19 + iVar12 * 0x14)" identifier = (cast_expression "(char *)(iVar19 + iVar12 * 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar12 * 0x14)" ( (binary_expression "iVar19 + iVar12 * 0x14" identifier + (binary_expression "iVar12 * 0x14" identifier * number_literal)) )))) ;) (if_statement "if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }" if (parenthesized_expression "((local_148 != 0) && (pcVar2[1] == -4))" ( (binary_expression "(local_148 != 0) && (pcVar2[1] == -4)" (parenthesized_expression "(local_148 != 0)" ( (binary_expression "local_148 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar2[1] == -4)" ( (binary_expression "pcVar2[1] == -4" (subscript_expression "pcVar2[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }" { (if_statement "if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" if (parenthesized_expression "((int)local_13c < 1)" ( (binary_expression "(int)local_13c < 1" (cast_expression "(int)local_13c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }" { (if_statement "if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" if (parenthesized_expression "(local_13c == 0)" ( (binary_expression "local_13c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" { (labeled_statement "LAB_0008e044:\n            iVar13 = FUN_000307e0();" statement_identifier : (expression_statement "iVar13 = FUN_000307e0();" (assignment_expression "iVar13 = FUN_000307e0()" identifier = (call_expression "FUN_000307e0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "param_1[10] = iVar13;" (assignment_expression "param_1[10] = iVar13" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" { (expression_statement "iVar17 = param_1[0x21];" (assignment_expression "iVar17 = param_1[0x21]" identifier = (subscript_expression "param_1[0x21]" identifier [ number_literal ])) ;) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar17 < 0) goto LAB_0008e157;" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0008e157;" goto statement_identifier ;)) (goto_statement "goto joined_r0x0008e183;" goto statement_identifier ;) })) (expression_statement "piVar21 = *(int **)(local_148 + 0x10);" (assignment_expression "piVar21 = *(int **)(local_148 + 0x10)" identifier = (pointer_expression "*(int **)(local_148 + 0x10)" * (cast_expression "(int **)(local_148 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 0x10)" ( (binary_expression "local_148 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar21[local_13c] = *(int *)(pcVar2 + 0x10);" (assignment_expression "piVar21[local_13c] = *(int *)(pcVar2 + 0x10)" (subscript_expression "piVar21[local_13c]" identifier [ identifier ]) = (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;" (assignment_expression "*(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10" (pointer_expression "*(ushort *)(local_148 + 8)" * (cast_expression "(ushort *)(local_148 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_148 + 8) & 0x3e40 | 0x10" (binary_expression "*(ushort *)(local_148 + 8) & 0x3e40" (pointer_expression "*(ushort *)(local_148 + 8)" * (cast_expression "(ushort *)(local_148 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;" (assignment_expression "*(uint *)(local_148 + 0xc) = (local_13c + 1) * 4" (pointer_expression "*(uint *)(local_148 + 0xc)" * (cast_expression "(uint *)(local_148 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_148 + 0xc)" ( (binary_expression "local_148 + 0xc" identifier + number_literal) )))) = (binary_expression "(local_13c + 1) * 4" (parenthesized_expression "(local_13c + 1)" ( (binary_expression "local_13c + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);" (assignment_expression "local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4)" identifier = (binary_expression "local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar2 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pcVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar2 + 0x10) + 4" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_13c = local_13c + 1;" (assignment_expression "local_13c = local_13c + 1" identifier = (binary_expression "local_13c + 1" identifier + number_literal)) ;) })) }) (else_clause "else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" else (if_statement "if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" if (parenthesized_expression "(*(int *)(pcVar2 + 0x10) != *piVar21)" ( (binary_expression "*(int *)(pcVar2 + 0x10) != *piVar21" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) != (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));" do (compound_statement "{\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          }" { (expression_statement "uVar24 = uVar24 + 1;" (assignment_expression "uVar24 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (if_statement "if (local_13c == uVar24) goto LAB_0008e044;" if (parenthesized_expression "(local_13c == uVar24)" ( (binary_expression "local_13c == uVar24" identifier == identifier) )) (goto_statement "goto LAB_0008e044;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar21[uVar24] != *(int *)(pcVar2 + 0x10))" ( (binary_expression "piVar21[uVar24] != *(int *)(pcVar2 + 0x10)" (subscript_expression "piVar21[uVar24]" identifier [ identifier ]) != (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) )) ;) })))) })) }) while (parenthesized_expression "((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))))" ( (binary_expression "(((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)))" (parenthesized_expression "(((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52))" ( (binary_expression "((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)" (parenthesized_expression "((bVar9 & 0xc) == 8)" ( (binary_expression "(bVar9 & 0xc) == 8" (parenthesized_expression "(bVar9 & 0xc)" ( (binary_expression "bVar9 & 0xc" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(*pcVar2 != -0x52)" ( (binary_expression "*pcVar2 != -0x52" (pointer_expression "*pcVar2" * identifier) != number_literal) ))) )) && (parenthesized_expression "((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)))" ( (parenthesized_expression "(iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))" ( (comma_expression "iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)" (assignment_expression "iVar13 = iVar23" identifier = identifier) , (binary_expression "*pcVar2 != '>' || (iVar23 < 2)" (binary_expression "*pcVar2 != '>'" (pointer_expression "*pcVar2" * identifier) != (char_literal "'>'" ' character ')) || (parenthesized_expression "(iVar23 < 2)" ( (binary_expression "iVar23 < 2" identifier < number_literal) )))) )) ))) )) ;) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x108) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x108) != 0" (pointer_expression "*(int *)(iVar5 + 0x108)" * (cast_expression "(int *)(iVar5 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x108)" ( (binary_expression "iVar5 + 0x108" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }" { (expression_statement "param_1[10] = 9;" (assignment_expression "param_1[10] = 9" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0003e960(param_1,"interrupted");" (call_expression "FUN_0003e960(param_1,"interrupted")" identifier (argument_list "(param_1,"interrupted")" ( identifier , (string_literal ""interrupted"" " string_content ") ))) ;) (goto_statement "goto LAB_0008e141;" goto statement_identifier ;) })) (expression_statement "local_10c = (int *)0x0;" (assignment_expression "local_10c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 1000000000;" (assignment_expression "local_100 = 1000000000" identifier = number_literal) ;) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" identifier = number_literal) ;) (switch_statement "switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }" switch (parenthesized_expression "(pcVar2[1])" ( (subscript_expression "pcVar2[1]" identifier [ number_literal ]) )) (compound_statement "{\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }" { (case_statement "case -0x11:" case number_literal :) (case_statement "case -5:\n      goto code_r0x0008e3ca;" case number_literal : (goto_statement "goto code_r0x0008e3ca;" goto statement_identifier ;)) (case_statement "case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;" case number_literal : (expression_statement "iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);" (assignment_expression "iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(pcVar2 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pcVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar2 + 0x10) + 4" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto code_r0x0008e672;" goto statement_identifier ;)) (case_statement "case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;" case number_literal : (expression_statement "piVar21 = *(int **)(pcVar2 + 0x10);" (assignment_expression "piVar21 = *(int **)(pcVar2 + 0x10)" identifier = (pointer_expression "*(int **)(pcVar2 + 0x10)" * (cast_expression "(int **)(pcVar2 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *piVar21;" (assignment_expression "iVar13 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (if_statement "if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }" { (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" identifier = number_literal) ;) (do_statement "do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);" do (compound_statement "{\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        }" { (expression_statement "uVar18 = 0x5b;" (assignment_expression "uVar18 = 0x5b" identifier = number_literal) ;) (if_statement "if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }" if (parenthesized_expression "(iVar23 != 1)" ( (binary_expression "iVar23 != 1" identifier != number_literal) )) (compound_statement "{\n            uVar18 = 0x2c;\n          }" { (expression_statement "uVar18 = 0x2c;" (assignment_expression "uVar18 = 0x2c" identifier = number_literal) ;) })) (expression_statement "piVar11 = piVar21 + iVar23;" (assignment_expression "piVar11 = piVar21 + iVar23" identifier = (binary_expression "piVar21 + iVar23" identifier + identifier)) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11)" identifier (argument_list "(&local_10c,&UNK_000aae32,uVar18,*piVar11)" ( (pointer_expression "&local_10c" & identifier) , (pointer_expression "&UNK_000aae32" & identifier) , identifier , (pointer_expression "*piVar11" * identifier) ))) ;) }) while (parenthesized_expression "(iVar23 != iVar13 + 1)" ( (binary_expression "iVar23 != iVar13 + 1" identifier != (binary_expression "iVar13 + 1" identifier + number_literal)) )) ;) })) (expression_statement "pcVar15 = "]";" (assignment_expression "pcVar15 = "]"" identifier = (string_literal ""]"" " string_content ")) ;) (goto_statement "goto code_r0x0008e812;" goto statement_identifier ;)) (case_statement "case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;" case number_literal : (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = "%lld";" (assignment_expression "pcVar15 = "%lld"" identifier = (string_literal ""%lld"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;" case number_literal : (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = "%.16g";" (assignment_expression "pcVar15 = "%.16g"" identifier = (string_literal ""%.16g"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;" case number_literal : (expression_statement "uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);" (assignment_expression "uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" * (cast_expression "(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 8)" ( (binary_expression "*(int *)(pcVar2 + 0x10) + 8" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar15 = "vtab:%p";" (assignment_expression "pcVar15 = "vtab:%p"" identifier = (string_literal ""vtab:%p"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;" case number_literal : (expression_statement "puVar6 = *(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(ushort *)(puVar6 + 2);" (assignment_expression "uVar4 = *(ushort *)(puVar6 + 2)" identifier = (pointer_expression "*(ushort *)(puVar6 + 2)" * (cast_expression "(ushort *)(puVar6 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 2)" ( (binary_expression "puVar6 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }" if (parenthesized_expression "((uVar4 & 2) != 0)" ( (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }" { (expression_statement "pcVar15 = (char *)puVar6[4];" (assignment_expression "pcVar15 = (char *)puVar6[4]" identifier = (cast_expression "(char *)puVar6[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0008e3c2;" goto statement_identifier ;) })) (if_statement "if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" if (parenthesized_expression "((uVar4 & 0x24) == 0)" ( (binary_expression "(uVar4 & 0x24) == 0" (parenthesized_expression "(uVar4 & 0x24)" ( (binary_expression "uVar4 & 0x24" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }" { (if_statement "if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" if (parenthesized_expression "((uVar4 & 8) == 0)" ( (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" { (expression_statement "pcVar15 = "(blob)";" (assignment_expression "pcVar15 = "(blob)"" identifier = (string_literal ""(blob)"" " string_content ")) ;) (if_statement "if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }" if (parenthesized_expression "((uVar4 & 1) != 0)" ( (binary_expression "(uVar4 & 1) != 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            pcVar15 = "NULL";\n          }" { (expression_statement "pcVar15 = "NULL";" (assignment_expression "pcVar15 = "NULL"" identifier = (string_literal ""NULL"" " string_content ")) ;) })) (goto_statement "goto LAB_0008e59b;" goto statement_identifier ;) })) (expression_statement "uVar18 = *puVar6;" (assignment_expression "uVar18 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "pcVar15 = "%.16g";" (assignment_expression "pcVar15 = "%.16g"" identifier = (string_literal ""%.16g"" " string_content ")) ;) }) (else_clause "else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" else (compound_statement "{\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" { (expression_statement "uVar18 = *puVar6;" (assignment_expression "uVar18 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "pcVar15 = "%lld";" (assignment_expression "pcVar15 = "%lld"" identifier = (string_literal ""%lld"" " string_content ")) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;" default : (expression_statement "pcVar15 = *(char **)(pcVar2 + 0x10);" (assignment_expression "pcVar15 = *(char **)(pcVar2 + 0x10)" identifier = (pointer_expression "*(char **)(pcVar2 + 0x10)" * (cast_expression "(char **)(pcVar2 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0008e3c2;" goto statement_identifier ;)) (case_statement "case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;" case number_literal : (expression_statement "iVar13 = *(int *)(pcVar2 + 0x10);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6))" identifier (argument_list "(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6))" ( (pointer_expression "&local_10c" & identifier) , (pointer_expression "&UNK_000aae0d" & identifier) , (pointer_expression "*(undefined2 *)(iVar13 + 6)" * (cast_expression "(undefined2 *)(iVar13 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 6)" ( (binary_expression "iVar13 + 6" identifier + number_literal) )))) ))) ;) (if_statement "if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }" if (parenthesized_expression "(*(short *)(iVar13 + 6) != 0)" ( (binary_expression "*(short *)(iVar13 + 6) != 0" (pointer_expression "*(short *)(iVar13 + 6)" * (cast_expression "(short *)(iVar13 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 6)" ( (binary_expression "iVar13 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pbVar1 = (byte *)0xab03d;" (assignment_expression "pbVar1 = (byte *)0xab03d" identifier = (cast_expression "(byte *)0xab03d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));" do (compound_statement "{\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        }" { (expression_statement "puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);" (assignment_expression "puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" * (cast_expression "(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x14 + iVar23 * 4)" ( (binary_expression "iVar13 + 0x14 + iVar23 * 4" (binary_expression "iVar13 + 0x14" identifier + number_literal) + (binary_expression "iVar23 * 4" identifier * number_literal)) ))))) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar26 = puVar6 == (undefined4 *)0x0;" (assignment_expression "bVar26 = puVar6 == (undefined4 *)0x0" identifier = (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar16 = pbVar1;" (assignment_expression "pbVar16 = pbVar1" identifier = identifier) ;) (if_statement "if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }" { (expression_statement "pbVar16 = (byte *)*puVar6;" (assignment_expression "pbVar16 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"BINARY";" (assignment_expression "pbVar20 = (byte *)"BINARY"" identifier = (cast_expression "(byte *)"BINARY"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""BINARY"" " string_content "))) ;) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);" do (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar22 < *pbVar20;" (assignment_expression "bVar25 = *pbVar22 < *pbVar20" identifier = (binary_expression "*pbVar22 < *pbVar20" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar26 = *pbVar22 == *pbVar20;" (assignment_expression "bVar26 = *pbVar22 == *pbVar20" identifier = (binary_expression "*pbVar22 == *pbVar20" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }" if (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" ( (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n              pbVar16 = &UNK_000aa643;\n            }" { (expression_statement "pbVar16 = &UNK_000aa643;" (assignment_expression "pbVar16 = &UNK_000aa643" identifier = (pointer_expression "&UNK_000aa643" & identifier)) ;) })) })) (expression_statement "bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);" (assignment_expression "bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" * (cast_expression "(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 0x10) + iVar23)" ( (binary_expression "*(int *)(iVar13 + 0x10) + iVar23" (pointer_expression "*(int *)(iVar13 + 0x10)" * (cast_expression "(int *)(iVar13 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "pbVar22 = &UNK_000aadef;" (assignment_expression "pbVar22 = &UNK_000aadef" identifier = (pointer_expression "&UNK_000aadef" & identifier)) ;) (if_statement "if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }" if (parenthesized_expression "((bVar9 & 2) == 0)" ( (binary_expression "(bVar9 & 2) == 0" (parenthesized_expression "(bVar9 & 2)" ( (binary_expression "bVar9 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar22 = pbVar1;\n          }" { (expression_statement "pbVar22 = pbVar1;" (assignment_expression "pbVar22 = pbVar1" identifier = identifier) ;) })) (expression_statement "pbVar20 = &DAT_000aa247;" (assignment_expression "pbVar20 = &DAT_000aa247" identifier = (pointer_expression "&DAT_000aa247" & identifier)) ;) (if_statement "if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }" if (parenthesized_expression "((bVar9 & 1) == 0)" ( (binary_expression "(bVar9 & 1) == 0" (parenthesized_expression "(bVar9 & 1)" ( (binary_expression "bVar9 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar20 = pbVar1;\n          }" { (expression_statement "pbVar20 = pbVar1;" (assignment_expression "pbVar20 = pbVar1" identifier = identifier) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16)" identifier (argument_list "(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16)" ( (pointer_expression "&local_10c" & identifier) , (pointer_expression "&UNK_000aae12" & identifier) , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar23 < (int)(uint)*(ushort *)(iVar13 + 6))" ( (binary_expression "iVar23 < (int)(uint)*(ushort *)(iVar13 + 6)" identifier < (binary_expression "(int)(uint)*(ushort *)(iVar13 + 6)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar13 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 6)" ( (binary_expression "iVar13 + 6" identifier + number_literal) ))))) )) ;) })) (expression_statement "pcVar15 = ")";" (assignment_expression "pcVar15 = ")"" identifier = (string_literal "")"" " string_content ")) ;) (labeled_statement "code_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);" statement_identifier : (expression_statement "sqlite3_str_append(&local_10c,pcVar15,1);" (call_expression "sqlite3_str_append(&local_10c,pcVar15,1)" identifier (argument_list "(&local_10c,pcVar15,1)" ( (pointer_expression "&local_10c" & identifier) , identifier , number_literal ))) ;)) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" identifier = (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (goto_statement "goto code_r0x0008e5c0;" goto statement_identifier ;)) (case_statement "case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;" case number_literal : (expression_statement "iVar13 = *(int *)(pcVar2 + 0x10);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);" statement_identifier : (expression_statement "uVar18 = *(undefined4 *)(iVar13 + 0x20);" (assignment_expression "uVar18 = *(undefined4 *)(iVar13 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 0x20)" * (cast_expression "(undefined4 *)(iVar13 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) ))))) ;)) (expression_statement "pcVar15 = "%s(%d)";" (assignment_expression "pcVar15 = "%s(%d)"" identifier = (string_literal ""%s(%d)"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;" case number_literal : (expression_statement "pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))))) ;) (labeled_statement "LAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" statement_identifier : (if_statement "if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" { (labeled_statement "LAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);" statement_identifier : (expression_statement "sqlite3_str_appendall(&local_10c,pcVar15);" (call_expression "sqlite3_str_appendall(&local_10c,pcVar15)" identifier (argument_list "(&local_10c,pcVar15)" ( (pointer_expression "&local_10c" & identifier) , identifier ))) ;)) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" identifier = (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (goto_statement "goto code_r0x0008e5c0;" goto statement_identifier ;) }))) (labeled_statement "code_r0x0008e3ca:\n      goto LAB_0008e3d0;" statement_identifier : (goto_statement "goto LAB_0008e3d0;" goto statement_identifier ;))) (case_statement "case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;" case number_literal : (expression_statement "pcVar15 = "program";" (assignment_expression "pcVar15 = "program"" identifier = (string_literal ""program"" " string_content ")) ;) (goto_statement "goto LAB_0008e59b;" goto statement_identifier ;)) (case_statement "case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;" case number_literal : (expression_statement "uVar18 = *(undefined4 *)(pcVar2 + 0x10);" (assignment_expression "uVar18 = *(undefined4 *)(pcVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(pcVar2 + 0x10)" * (cast_expression "(undefined4 *)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = "%d";" (assignment_expression "pcVar15 = "%d"" identifier = (string_literal ""%d"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";" case number_literal : (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = "%.18s-%s";" (assignment_expression "pcVar15 = "%.18s-%s"" identifier = (string_literal ""%.18s-%s"" " string_content ")) ;)) })) (expression_statement "sqlite3_str_appendf(&local_10c,pcVar15,uVar18);" (call_expression "sqlite3_str_appendf(&local_10c,pcVar15,uVar18)" identifier (argument_list "(&local_10c,pcVar15,uVar18)" ( (pointer_expression "&local_10c" & identifier) , identifier , identifier ))) ;) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" identifier = (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (labeled_statement "code_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" statement_identifier : (if_statement "if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" if (parenthesized_expression "((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0))" ( (binary_expression "(bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar5 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      FUN_0002e050();\n    }" { (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_0008e3d0:\n    FUN_0002e520();" statement_identifier : (expression_statement "FUN_0002e520();" (call_expression "FUN_0002e520()" identifier (argument_list "()" ( ))) ;)) (if_statement "if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8)" ( (binary_expression "(*(byte *)((int)param_1 + 0x8e) & 0xc) == 8" (parenthesized_expression "(*(byte *)((int)param_1 + 0x8e) & 0xc)" ( (binary_expression "*(byte *)((int)param_1 + 0x8e) & 0xc" (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }" { (expression_statement "iVar13 = *(int *)(pcVar2 + 4);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 4)" identifier = (pointer_expression "*(int *)(pcVar2 + 4)" * (cast_expression "(int *)(pcVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 4)" ( (binary_expression "pcVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x30)" * (cast_expression "(ushort *)(iVar17 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x28) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x28) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x28)" * (cast_expression "(int *)(iVar17 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x28)" ( (binary_expression "iVar17 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x2c)" * (cast_expression "(int *)(iVar17 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2c)" ( (binary_expression "iVar17 + 0x2c" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x30)" * (cast_expression "(undefined2 *)(iVar17 + 0x30)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 8);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 8)" identifier = (pointer_expression "*(int *)(pcVar2 + 8)" * (cast_expression "(int *)(pcVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 8)" ( (binary_expression "pcVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x58) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x58) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x58) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x58)" * (cast_expression "(ushort *)(iVar17 + 0x58)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x58)" ( (binary_expression "iVar17 + 0x58" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x50) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x50) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x50)" * (cast_expression "(int *)(iVar17 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x50)" ( (binary_expression "iVar17 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x54) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x54)" * (cast_expression "(int *)(iVar17 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x54)" ( (binary_expression "iVar17 + 0x54" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x58) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x58) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x58)" * (cast_expression "(undefined2 *)(iVar17 + 0x58)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x58)" ( (binary_expression "iVar17 + 0x58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 0xc);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0xc)" identifier = (pointer_expression "*(int *)(pcVar2 + 0xc)" * (cast_expression "(int *)(pcVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xc)" ( (binary_expression "pcVar2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x80)" * (cast_expression "(ushort *)(iVar17 + 0x80)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x78) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x78) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x78)" * (cast_expression "(int *)(iVar17 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x78)" ( (binary_expression "iVar17 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x7c)" * (cast_expression "(int *)(iVar17 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x7c)" ( (binary_expression "iVar17 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x80)" * (cast_expression "(undefined2 *)(iVar17 + 0x80)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_000484d0(1,puVar8);" (call_expression "FUN_000484d0(1,puVar8)" identifier (argument_list "(1,puVar8)" ( number_literal , identifier ))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x22) = 4;" (assignment_expression "*(undefined2 *)(param_1 + 0x22) = 4" (pointer_expression "*(undefined2 *)(param_1 + 0x22)" * (cast_expression "(undefined2 *)(param_1 + 0x22)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" else (compound_statement "{\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" { (if_statement "if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x30)" * (cast_expression "(ushort *)(iVar17 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x2c)" * (cast_expression "(int *)(iVar17 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2c)" ( (binary_expression "iVar17 + 0x2c" identifier + number_literal) )))) = (binary_expression "iVar12 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(int *)(iVar17 + 0x28) = iVar12;" (assignment_expression "*(int *)(iVar17 + 0x28) = iVar12" (pointer_expression "*(int *)(iVar17 + 0x28)" * (cast_expression "(int *)(iVar17 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x28)" ( (binary_expression "iVar17 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x30)" * (cast_expression "(undefined2 *)(iVar17 + 0x30)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_000484d0(1,0);" (call_expression "FUN_000484d0(1,0)" identifier (argument_list "(1,0)" ( number_literal , number_literal ))) ;) (expression_statement "iVar13 = *(int *)(pcVar2 + 4);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 4)" identifier = (pointer_expression "*(int *)(pcVar2 + 4)" * (cast_expression "(int *)(pcVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 4)" ( (binary_expression "pcVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x80)" * (cast_expression "(ushort *)(iVar17 + 0x80)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x78) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x78) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x78)" * (cast_expression "(int *)(iVar17 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x78)" ( (binary_expression "iVar17 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x7c)" * (cast_expression "(int *)(iVar17 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x7c)" ( (binary_expression "iVar17 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x80)" * (cast_expression "(undefined2 *)(iVar17 + 0x80)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 8);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 8)" identifier = (pointer_expression "*(int *)(pcVar2 + 8)" * (cast_expression "(int *)(pcVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 8)" ( (binary_expression "pcVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0xa8) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0xa8) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0xa8)" * (cast_expression "(ushort *)(iVar17 + 0xa8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa8)" ( (binary_expression "iVar17 + 0xa8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0xa0) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0xa0) = iVar13" (pointer_expression "*(int *)(iVar17 + 0xa0)" * (cast_expression "(int *)(iVar17 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa0)" ( (binary_expression "iVar17 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0xa4)" * (cast_expression "(int *)(iVar17 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa4)" ( (binary_expression "iVar17 + 0xa4" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0xa8) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0xa8) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0xa8)" * (cast_expression "(undefined2 *)(iVar17 + 0xa8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa8)" ( (binary_expression "iVar17 + 0xa8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 0xc);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0xc)" identifier = (pointer_expression "*(int *)(pcVar2 + 0xc)" * (cast_expression "(int *)(pcVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xc)" ( (binary_expression "pcVar2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0xd0) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0xd0) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0xd0)" * (cast_expression "(ushort *)(iVar17 + 0xd0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xd0)" ( (binary_expression "iVar17 + 0xd0" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 200) = iVar13;" (assignment_expression "*(int *)(iVar17 + 200) = iVar13" (pointer_expression "*(int *)(iVar17 + 200)" * (cast_expression "(int *)(iVar17 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 200)" ( (binary_expression "iVar17 + 200" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0xcc)" * (cast_expression "(int *)(iVar17 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xcc)" ( (binary_expression "iVar17 + 0xcc" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0xd0) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0xd0) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0xd0)" * (cast_expression "(undefined2 *)(iVar17 + 0xd0)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xd0)" ( (binary_expression "iVar17 + 0xd0" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar4 = *(ushort *)(pcVar2 + 2);" (assignment_expression "uVar4 = *(ushort *)(pcVar2 + 2)" identifier = (pointer_expression "*(ushort *)(pcVar2 + 2)" * (cast_expression "(ushort *)(pcVar2 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 2)" ( (binary_expression "pcVar2 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x120) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x120) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x120) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x120)" * (cast_expression "(ushort *)(iVar17 + 0x120)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x120)" ( (binary_expression "iVar17 + 0x120" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }" { (expression_statement "*(undefined4 *)(iVar17 + 0x11c) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x11c) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x11c)" * (cast_expression "(undefined4 *)(iVar17 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x11c)" ( (binary_expression "iVar17 + 0x11c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar17 + 0x118) = (uint)uVar4;" (assignment_expression "*(uint *)(iVar17 + 0x118) = (uint)uVar4" (pointer_expression "*(uint *)(iVar17 + 0x118)" * (cast_expression "(uint *)(iVar17 + 0x118)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x118)" ( (binary_expression "iVar17 + 0x118" identifier + number_literal) )))) = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x120) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x120) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x120)" * (cast_expression "(undefined2 *)(iVar17 + 0x120)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x120)" ( (binary_expression "iVar17 + 0x120" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x148) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x148) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x148) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x148)" * (cast_expression "(ushort *)(iVar17 + 0x148)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x148)" ( (binary_expression "iVar17 + 0x148" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }" { (expression_statement "*(undefined2 *)(iVar17 + 0x148) = 1;" (assignment_expression "*(undefined2 *)(iVar17 + 0x148) = 1" (pointer_expression "*(undefined2 *)(iVar17 + 0x148)" * (cast_expression "(undefined2 *)(iVar17 + 0x148)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x148)" ( (binary_expression "iVar17 + 0x148" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_000248e0();\n      }" else (compound_statement "{\n        FUN_000248e0();\n      }" { (expression_statement "FUN_000248e0();" (call_expression "FUN_000248e0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_000484d0(1,puVar8);" (call_expression "FUN_000484d0(1,puVar8)" identifier (argument_list "(1,puVar8)" ( number_literal , identifier ))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x22) = 8;" (assignment_expression "*(undefined2 *)(param_1 + 0x22) = 8" (pointer_expression "*(undefined2 *)(param_1 + 0x22)" * (cast_expression "(undefined2 *)(param_1 + 0x22)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "param_1[0x1d] = iVar17 + 0x28;" (assignment_expression "param_1[0x1d] = iVar17 + 0x28" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (binary_expression "iVar17 + 0x28" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" if (parenthesized_expression "(*(char *)(iVar5 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x4d)" * (cast_expression "(char *)(iVar5 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4d)" ( (binary_expression "iVar5 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "uVar24 = 100;" (assignment_expression "uVar24 = 100" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" else (compound_statement "{\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" { (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0008e141:\n      iVar17 = param_1[0x21];" statement_identifier : (expression_statement "iVar17 = param_1[0x21];" (assignment_expression "iVar17 = param_1[0x21]" identifier = (subscript_expression "param_1[0x21]" identifier [ number_literal ])) ;)) (if_statement "if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }" if (parenthesized_expression "(-1 < iVar17)" ( (binary_expression "-1 < iVar17" number_literal < identifier) )) (compound_statement "{\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }" { (labeled_statement "joined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }" statement_identifier : (if_statement "if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }" if (parenthesized_expression "((0 < iVar17) || (param_1[0x20] != 0))" ( (binary_expression "(0 < iVar17) || (param_1[0x20] != 0)" (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) || (parenthesized_expression "(param_1[0x20] != 0)" ( (binary_expression "param_1[0x20] != 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          FUN_0001f8e0();\n        }" { (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" identifier (argument_list "()" ( ))) ;) }))) })) (labeled_statement "LAB_0008e157:\n      uVar24 = 1;" statement_identifier : (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" statement_identifier : (if_statement "if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" if (parenthesized_expression "((char)param_1[0x23] < '\0')" ( (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar24 = FUN_000488a0();\n      }" { (expression_statement "uVar24 = FUN_000488a0();" (assignment_expression "uVar24 = FUN_000488a0()" identifier = (call_expression "FUN_000488a0()" identifier (argument_list "()" ( )))) ;) }))) (labeled_statement "LAB_0008dc84:\n      local_148 = param_1[10];" statement_identifier : (expression_statement "local_148 = param_1[10];" (assignment_expression "local_148 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;)) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" identifier = (binary_expression "local_148 == 0xc0a" identifier == number_literal)) ;) }))) (labeled_statement "LAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;" statement_identifier : (expression_statement "*(uint *)(iVar14 + 0x3c) = uVar24;" (assignment_expression "*(uint *)(iVar14 + 0x3c) = uVar24" (pointer_expression "*(uint *)(iVar14 + 0x3c)" * (cast_expression "(uint *)(iVar14 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) )))) = identifier) ;)) (if_statement "if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" if (parenthesized_expression "((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25))" ( (binary_expression "(*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)" (parenthesized_expression "(*(char *)(*param_1 + 0x4d) != '\0')" ( (binary_expression "*(char *)(*param_1 + 0x4d) != '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" * (cast_expression "(char *)(*param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4d)" ( (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar25)" ( identifier ))) )) (compound_statement "{\n      local_148 = FUN_00031c90();\n    }" { (expression_statement "local_148 = FUN_00031c90();" (assignment_expression "local_148 = FUN_00031c90()" identifier = (call_expression "FUN_00031c90()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" else (compound_statement "{\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" { (expression_statement "local_148 = local_148 & *(uint *)(*param_1 + 0x40);" (assignment_expression "local_148 = local_148 & *(uint *)(*param_1 + 0x40)" identifier = (binary_expression "local_148 & *(uint *)(*param_1 + 0x40)" identifier & (pointer_expression "*(uint *)(*param_1 + 0x40)" * (cast_expression "(uint *)(*param_1 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x40)" ( (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" * identifier) + number_literal) )))))) ;) }))) (if_statement "if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }" if (parenthesized_expression "((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0'))" ( (binary_expression "(local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')" (parenthesized_expression "(local_148 == 7)" ( (binary_expression "local_148 == 7" identifier == number_literal) )) && (parenthesized_expression "(param_1[10] = 7, (char)param_1[0x23] < '\0')" ( (comma_expression "param_1[10] = 7, (char)param_1[0x23] < '\0'" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) , (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      uVar24 = 7;\n    }" { (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" identifier = number_literal) ;) })) (labeled_statement "LAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);" statement_identifier : (expression_statement "uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);" (assignment_expression "uVar24 = uVar24 & *(uint *)(iVar14 + 0x40)" identifier = (binary_expression "uVar24 & *(uint *)(iVar14 + 0x40)" identifier & (pointer_expression "*(uint *)(iVar14 + 0x40)" * (cast_expression "(uint *)(iVar14 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))))) ;)) (if_statement "if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;" if (parenthesized_expression "((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0))" ( (binary_expression "(uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)" (parenthesized_expression "(uVar24 != 0x11)" ( (binary_expression "uVar24 != 0x11" identifier != number_literal) )) || (parenthesized_expression "(local_138 = local_138 + -1, local_138 == 0)" ( (comma_expression "local_138 = local_138 + -1, local_138 == 0" (assignment_expression "local_138 = local_138 + -1" identifier = (binary_expression "local_138 + -1" identifier + number_literal)) , (binary_expression "local_138 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0008dc24;" goto statement_identifier ;)) (expression_statement "iVar14 = param_1[9];" (assignment_expression "iVar14 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "sqlite3_sql(param_1);" (call_expression "sqlite3_sql(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar17 = *param_1;" (assignment_expression "iVar17 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);" (assignment_expression "uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0)" identifier = (call_expression "FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0)" identifier (argument_list "((char)param_1[0x23],param_1,&local_10c,0)" ( (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) , identifier , (pointer_expression "&local_10c" & identifier) , number_literal )))) ;) (if_statement "if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }" if (parenthesized_expression "(uVar24 == 0)" ( (binary_expression "uVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }" { (expression_statement "piVar21 = local_10c;" (assignment_expression "piVar21 = local_10c" identifier = identifier) ;) (expression_statement "piVar11 = local_f4;" (assignment_expression "piVar11 = local_f4" identifier = identifier) ;) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" for ( (assignment_expression "iVar17 = 0x35" identifier = number_literal) ; (binary_expression "iVar17 != 0" identifier != number_literal) ; (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar21 = param_1;" (assignment_expression "piVar21 = param_1" identifier = identifier) ;) (expression_statement "piVar11 = local_10c;" (assignment_expression "piVar11 = local_10c" identifier = identifier) ;) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" for ( (assignment_expression "iVar17 = 0x35" identifier = number_literal) ; (binary_expression "iVar17 != 0" identifier != number_literal) ; (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar21 = local_f4;" (assignment_expression "piVar21 = local_f4" identifier = identifier) ;) (expression_statement "piVar11 = param_1;" (assignment_expression "piVar11 = param_1" identifier = identifier) ;) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" for ( (assignment_expression "iVar17 = 0x35" identifier = number_literal) ; (binary_expression "iVar17 != 0" identifier != number_literal) ; (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "iVar17 = local_10c[2];" (assignment_expression "iVar17 = local_10c[2]" identifier = (subscript_expression "local_10c[2]" identifier [ number_literal ])) ;) (expression_statement "local_10c[2] = param_1[2];" (assignment_expression "local_10c[2] = param_1[2]" (subscript_expression "local_10c[2]" identifier [ number_literal ]) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = iVar17;" (assignment_expression "param_1[2] = iVar17" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = local_10c[1];" (assignment_expression "iVar17 = local_10c[1]" identifier = (subscript_expression "local_10c[1]" identifier [ number_literal ])) ;) (expression_statement "local_10c[1] = param_1[1];" (assignment_expression "local_10c[1] = param_1[1]" (subscript_expression "local_10c[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = iVar17;" (assignment_expression "param_1[1] = iVar17" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = local_10c[0x2d];" (assignment_expression "iVar17 = local_10c[0x2d]" identifier = (subscript_expression "local_10c[0x2d]" identifier [ number_literal ])) ;) (expression_statement "local_10c[0x2d] = param_1[0x2d];" (assignment_expression "local_10c[0x2d] = param_1[0x2d]" (subscript_expression "local_10c[0x2d]" identifier [ number_literal ]) = (subscript_expression "param_1[0x2d]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2d] = iVar17;" (assignment_expression "param_1[0x2d] = iVar17" (subscript_expression "param_1[0x2d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x32] = local_10c[0x32];" (assignment_expression "param_1[0x32] = local_10c[0x32]" (subscript_expression "param_1[0x32]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x32]" identifier [ number_literal ])) ;) (expression_statement "*(char *)(param_1 + 0x23) = (char)local_10c[0x23];" (assignment_expression "*(char *)(param_1 + 0x23) = (char)local_10c[0x23]" (pointer_expression "*(char *)(param_1 + 0x23)" * (cast_expression "(char *)(param_1 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x23)" ( (binary_expression "param_1 + 0x23" identifier + number_literal) )))) = (cast_expression "(char)local_10c[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_10c[0x23]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x26] = local_10c[0x26];" (assignment_expression "param_1[0x26] = local_10c[0x26]" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x26]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x27] = local_10c[0x27];" (assignment_expression "param_1[0x27] = local_10c[0x27]" (subscript_expression "param_1[0x27]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x27]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x28] = local_10c[0x28];" (assignment_expression "param_1[0x28] = local_10c[0x28]" (subscript_expression "param_1[0x28]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x28]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x29] = local_10c[0x29];" (assignment_expression "param_1[0x29] = local_10c[0x29]" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x29]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2a] = local_10c[0x2a];" (assignment_expression "param_1[0x2a] = local_10c[0x2a]" (subscript_expression "param_1[0x2a]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x2a]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2b] = local_10c[0x2b];" (assignment_expression "param_1[0x2b] = local_10c[0x2b]" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x2b]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = local_10c[0x2c];" (assignment_expression "iVar17 = local_10c[0x2c]" identifier = (subscript_expression "local_10c[0x2c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2b] = param_1[0x2b] + 1;" (assignment_expression "param_1[0x2b] = param_1[0x2b] + 1" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) = (binary_expression "param_1[0x2b] + 1" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0x2c] = iVar17;" (assignment_expression "param_1[0x2c] = iVar17" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00024cd0();" (call_expression "FUN_00024cd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_10c[10] = 0;" (assignment_expression "local_10c[10] = 0" (subscript_expression "local_10c[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0006fe50();" (call_expression "FUN_0006fe50()" identifier (argument_list "()" ( ))) ;) (expression_statement "sqlite3_reset(param_1);" (call_expression "sqlite3_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }" if (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) (compound_statement "{\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }" { (expression_statement "*(undefined1 *)((int)param_1 + 0x8d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x8d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x8d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x8d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8d)" ( (binary_expression "(int)param_1 + 0x8d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0008da88;" goto statement_identifier ;) })) (if_statement "if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" if (parenthesized_expression "((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0))" ( (binary_expression "(uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "(uVar24 == 7)" ( (binary_expression "uVar24 == 7" identifier == number_literal) )) && (parenthesized_expression "((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar17 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar17 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar17 + 0x4c)" * (cast_expression "(uint *)(iVar17 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4c)" ( (binary_expression "iVar17 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      FUN_0002e050();\n    }" { (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));" (call_expression "sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104))" identifier (argument_list "(*(undefined4 *)(iVar10 + 0x104))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0x104)" * (cast_expression "(undefined4 *)(iVar10 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x104)" ( (binary_expression "iVar10 + 0x104" identifier + number_literal) )))) ))) ;) (if_statement "if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }" if (parenthesized_expression "(param_1[0x1e] != 0)" ( (binary_expression "param_1[0x1e] != 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00024720();\n    }" { (expression_statement "FUN_00024720();" (call_expression "FUN_00024720()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" if (parenthesized_expression "(*(char *)(iVar10 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar10 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar10 + 0x4d)" * (cast_expression "(char *)(iVar10 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4d)" ( (binary_expression "iVar10 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }" { (expression_statement "iVar14 = FUN_0002eba0();" (assignment_expression "iVar14 = FUN_0002eba0()" identifier = (call_expression "FUN_0002eba0()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1[0x1e] = iVar14;" (assignment_expression "param_1[0x1e] = iVar14" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }" if (parenthesized_expression "((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a))" ( (binary_expression "(*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)" (parenthesized_expression "(*(char *)(iVar10 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar10 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar10 + 0x4d)" * (cast_expression "(char *)(iVar10 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4d)" ( (binary_expression "iVar10 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar24 != 0xc0a)" ( (binary_expression "uVar24 != 0xc0a" identifier != number_literal) ))) )) (compound_statement "{\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }" { (expression_statement "uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);" (assignment_expression "uVar24 = uVar24 & *(uint *)(iVar10 + 0x40)" identifier = (binary_expression "uVar24 & *(uint *)(iVar10 + 0x40)" identifier & (pointer_expression "*(uint *)(iVar10 + 0x40)" * (cast_expression "(uint *)(iVar10 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))))) ;) }) (else_clause "else {\n        uVar24 = FUN_00031c90();\n      }" else (compound_statement "{\n        uVar24 = FUN_00031c90();\n      }" { (expression_statement "uVar24 = FUN_00031c90();" (assignment_expression "uVar24 = FUN_00031c90()" identifier = (call_expression "FUN_00031c90()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "param_1[10] = uVar24;" (assignment_expression "param_1[10] = uVar24" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" else (compound_statement "{\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" { (expression_statement "param_1[0x1e] = 0;" (assignment_expression "param_1[0x1e] = 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" identifier = number_literal) ;) }))) (labeled_statement "LAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));" statement_identifier : (expression_statement "sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));" (call_expression "sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar10 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ))) ;)) }) (else_clause "else {\n    uVar24 = FUN_000380c0();\n  }" else (compound_statement "{\n    uVar24 = FUN_000380c0();\n  }" { (expression_statement "uVar24 = FUN_000380c0();" (assignment_expression "uVar24 = FUN_000380c0()" identifier = (call_expression "FUN_000380c0()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    FUN_000a9ea0();\n  }" { comment (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar24;" return identifier ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nint sqlite3_step(sqlite3_stmt *pStmt)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  int iVar3;\n  sqlite3_stmt sVar4;\n  u8 uVar5;\n  ushort uVar6;\n  sqlite3 *db;\n  sqlite3 *psVar7;\n  CollSeq *pCVar8;\n  Btree *p;\n  Wal *pWVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *xDel;\n  byte bVar13;\n  int iVar14;\n  uchar *z;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  char *pcVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 uVar21;\n  byte *pbVar22;\n  int *piVar23;\n  u32 uVar24;\n  uint uVar25;\n  byte *pbVar26;\n  int iVar27;\n  sqlite3 *psVar28;\n  sqlite3_stmt *psVar29;\n  Vdbe *pVVar30;\n  uint uVar31;\n  Mem *p_00;\n  int in_GS_OFFSET;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  i64 in_stack_fffffea4;\n  Mem *local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  StrAccum x;\n  Vdbe tmp;\n  \n  bVar34 = 0;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar14 = vdbeSafetyNotNull((Vdbe *)pStmt);\n  if (iVar14 == 0) {\n    db = *(sqlite3 **)pStmt;\n    sqlite3_mutex_enter(db->mutex);\n    xDel = PTR_sqlite3_free_000ddfe0;\n    pStmt[0x8d] = (sqlite3_stmt)0x0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }\n    psVar28 = *(sqlite3 **)pStmt;\n    if (psVar28->mallocFailed != '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }\n    sVar4 = pStmt[0x8e];\n    if (*(int *)(pStmt + 0x24) < 0) {\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar14 = *(int *)(pStmt + 0x54);\n    psVar7 = *(sqlite3 **)pStmt;\n    local_13c = 1;\n    p_00 = (Mem *)(iVar14 + 0x28);\n    if (((byte)sVar4 & 0xc) != 4) {\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }\n    if (p_00 != (Mem *)0x0) {\n      releaseMemArray(p_00,8);\n    }\n    *(undefined4 *)(pStmt + 0x74) = 0;\n    if (*(int *)(pStmt + 0x28) == 7) {\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }\n    sVar4 = pStmt[0x8e];\n    local_144 = *(int *)(pStmt + 0x68);\n    if (local_13c == 0) {\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }\n    else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }\n    iVar20 = *(int *)(pStmt + 0x24);\n    do {\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));\n    *(int *)(pStmt + 0x24) = iVar27;\n    if ((psVar7->u1).isInterrupted != 0) {\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }\n    x.db = (sqlite3 *)0x0;\n    x.zText = (char *)0x0;\n    x.nAlloc = 0;\n    x.mxAlloc = 1000000000;\n    x.nChar = 0;\n    x.accError = '\0';\n    x.printfFlags = '\0';\n    switch(pbVar2[1]) {\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&x,pcVar18,uVar21);\n    bVar13 = x.accError & 7;\nLAB_0008e5c0:\n    if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }\nLAB_0008e3d0:\n    pcVar18 = sqlite3StrAccumFinish(&x);\n    if (((byte)pStmt[0x8e] & 0xc) == 8) {\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }\n    *(Mem **)(pStmt + 0x74) = p_00;\n    if (psVar7->mallocFailed == '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }\nLAB_0008dc90:\n    psVar28->errCode = uVar31;\n    psVar7 = *(sqlite3 **)pStmt;\n    if ((psVar7->mallocFailed != '\0') || (bVar32)) {\n      uVar25 = apiOomError(psVar7);\n    }\n    else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }\n    if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {\n      uVar31 = 7;\n    }\nLAB_0008dcc7:\n    uVar31 = uVar31 & psVar28->errMask;\n    if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = *(int *)(pStmt + 0x24);\n    pcVar18 = sqlite3_sql(pStmt);\n    psVar28 = *(sqlite3 **)pStmt;\n    uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0);\n    if (uVar31 == 0) {\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar28);\n    }\n    z = sqlite3_value_text(db->pErr);\n    if (*(void **)(pStmt + 0x78) != (void *)0x0) {\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }\n    if (db->mallocFailed == '\0') {\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(db->mutex);\n  }\n  else {\n    uVar31 = sqlite3MisuseError(0x1471f);\n  }\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar31;\n}\n\n" comment (function_definition "int sqlite3_step(sqlite3_stmt *pStmt)\n\n{\n  byte *pbVar1;\n  byte *pbVar2;\n  int iVar3;\n  sqlite3_stmt sVar4;\n  u8 uVar5;\n  ushort uVar6;\n  sqlite3 *db;\n  sqlite3 *psVar7;\n  CollSeq *pCVar8;\n  Btree *p;\n  Wal *pWVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *xDel;\n  byte bVar13;\n  int iVar14;\n  uchar *z;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  char *pcVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 uVar21;\n  byte *pbVar22;\n  int *piVar23;\n  u32 uVar24;\n  uint uVar25;\n  byte *pbVar26;\n  int iVar27;\n  sqlite3 *psVar28;\n  sqlite3_stmt *psVar29;\n  Vdbe *pVVar30;\n  uint uVar31;\n  Mem *p_00;\n  int in_GS_OFFSET;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  i64 in_stack_fffffea4;\n  Mem *local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  StrAccum x;\n  Vdbe tmp;\n  \n  bVar34 = 0;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar14 = vdbeSafetyNotNull((Vdbe *)pStmt);\n  if (iVar14 == 0) {\n    db = *(sqlite3 **)pStmt;\n    sqlite3_mutex_enter(db->mutex);\n    xDel = PTR_sqlite3_free_000ddfe0;\n    pStmt[0x8d] = (sqlite3_stmt)0x0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }\n    psVar28 = *(sqlite3 **)pStmt;\n    if (psVar28->mallocFailed != '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }\n    sVar4 = pStmt[0x8e];\n    if (*(int *)(pStmt + 0x24) < 0) {\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar14 = *(int *)(pStmt + 0x54);\n    psVar7 = *(sqlite3 **)pStmt;\n    local_13c = 1;\n    p_00 = (Mem *)(iVar14 + 0x28);\n    if (((byte)sVar4 & 0xc) != 4) {\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }\n    if (p_00 != (Mem *)0x0) {\n      releaseMemArray(p_00,8);\n    }\n    *(undefined4 *)(pStmt + 0x74) = 0;\n    if (*(int *)(pStmt + 0x28) == 7) {\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }\n    sVar4 = pStmt[0x8e];\n    local_144 = *(int *)(pStmt + 0x68);\n    if (local_13c == 0) {\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }\n    else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }\n    iVar20 = *(int *)(pStmt + 0x24);\n    do {\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));\n    *(int *)(pStmt + 0x24) = iVar27;\n    if ((psVar7->u1).isInterrupted != 0) {\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }\n    x.db = (sqlite3 *)0x0;\n    x.zText = (char *)0x0;\n    x.nAlloc = 0;\n    x.mxAlloc = 1000000000;\n    x.nChar = 0;\n    x.accError = '\0';\n    x.printfFlags = '\0';\n    switch(pbVar2[1]) {\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&x,pcVar18,uVar21);\n    bVar13 = x.accError & 7;\nLAB_0008e5c0:\n    if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }\nLAB_0008e3d0:\n    pcVar18 = sqlite3StrAccumFinish(&x);\n    if (((byte)pStmt[0x8e] & 0xc) == 8) {\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }\n    *(Mem **)(pStmt + 0x74) = p_00;\n    if (psVar7->mallocFailed == '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }\nLAB_0008dc90:\n    psVar28->errCode = uVar31;\n    psVar7 = *(sqlite3 **)pStmt;\n    if ((psVar7->mallocFailed != '\0') || (bVar32)) {\n      uVar25 = apiOomError(psVar7);\n    }\n    else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }\n    if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {\n      uVar31 = 7;\n    }\nLAB_0008dcc7:\n    uVar31 = uVar31 & psVar28->errMask;\n    if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = *(int *)(pStmt + 0x24);\n    pcVar18 = sqlite3_sql(pStmt);\n    psVar28 = *(sqlite3 **)pStmt;\n    uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0);\n    if (uVar31 == 0) {\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar28);\n    }\n    z = sqlite3_value_text(db->pErr);\n    if (*(void **)(pStmt + 0x78) != (void *)0x0) {\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }\n    if (db->mallocFailed == '\0') {\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(db->mutex);\n  }\n  else {\n    uVar31 = sqlite3MisuseError(0x1471f);\n  }\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar31;\n}" primitive_type (function_declarator "sqlite3_step(sqlite3_stmt *pStmt)" identifier (parameter_list "(sqlite3_stmt *pStmt)" ( (parameter_declaration "sqlite3_stmt *pStmt" type_identifier (pointer_declarator "*pStmt" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  byte *pbVar2;\n  int iVar3;\n  sqlite3_stmt sVar4;\n  u8 uVar5;\n  ushort uVar6;\n  sqlite3 *db;\n  sqlite3 *psVar7;\n  CollSeq *pCVar8;\n  Btree *p;\n  Wal *pWVar9;\n  undefined4 *puVar10;\n  uint uVar11;\n  int *piVar12;\n  undefined *xDel;\n  byte bVar13;\n  int iVar14;\n  uchar *z;\n  int *piVar15;\n  int iVar16;\n  int iVar17;\n  char *pcVar18;\n  byte *pbVar19;\n  int iVar20;\n  undefined4 uVar21;\n  byte *pbVar22;\n  int *piVar23;\n  u32 uVar24;\n  uint uVar25;\n  byte *pbVar26;\n  int iVar27;\n  sqlite3 *psVar28;\n  sqlite3_stmt *psVar29;\n  Vdbe *pVVar30;\n  uint uVar31;\n  Mem *p_00;\n  int in_GS_OFFSET;\n  bool bVar32;\n  bool bVar33;\n  byte bVar34;\n  i64 in_stack_fffffea4;\n  Mem *local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  StrAccum x;\n  Vdbe tmp;\n  \n  bVar34 = 0;\n  iVar3 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar14 = vdbeSafetyNotNull((Vdbe *)pStmt);\n  if (iVar14 == 0) {\n    db = *(sqlite3 **)pStmt;\n    sqlite3_mutex_enter(db->mutex);\n    xDel = PTR_sqlite3_free_000ddfe0;\n    pStmt[0x8d] = (sqlite3_stmt)0x0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }\n    psVar28 = *(sqlite3 **)pStmt;\n    if (psVar28->mallocFailed != '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }\n    sVar4 = pStmt[0x8e];\n    if (*(int *)(pStmt + 0x24) < 0) {\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar14 = *(int *)(pStmt + 0x54);\n    psVar7 = *(sqlite3 **)pStmt;\n    local_13c = 1;\n    p_00 = (Mem *)(iVar14 + 0x28);\n    if (((byte)sVar4 & 0xc) != 4) {\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }\n    if (p_00 != (Mem *)0x0) {\n      releaseMemArray(p_00,8);\n    }\n    *(undefined4 *)(pStmt + 0x74) = 0;\n    if (*(int *)(pStmt + 0x28) == 7) {\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }\n    sVar4 = pStmt[0x8e];\n    local_144 = *(int *)(pStmt + 0x68);\n    if (local_13c == 0) {\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }\n    else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }\n    iVar20 = *(int *)(pStmt + 0x24);\n    do {\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));\n    *(int *)(pStmt + 0x24) = iVar27;\n    if ((psVar7->u1).isInterrupted != 0) {\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }\n    x.db = (sqlite3 *)0x0;\n    x.zText = (char *)0x0;\n    x.nAlloc = 0;\n    x.mxAlloc = 1000000000;\n    x.nChar = 0;\n    x.accError = '\0';\n    x.printfFlags = '\0';\n    switch(pbVar2[1]) {\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&x,pcVar18,uVar21);\n    bVar13 = x.accError & 7;\nLAB_0008e5c0:\n    if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }\nLAB_0008e3d0:\n    pcVar18 = sqlite3StrAccumFinish(&x);\n    if (((byte)pStmt[0x8e] & 0xc) == 8) {\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }\n    *(Mem **)(pStmt + 0x74) = p_00;\n    if (psVar7->mallocFailed == '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }\nLAB_0008dc90:\n    psVar28->errCode = uVar31;\n    psVar7 = *(sqlite3 **)pStmt;\n    if ((psVar7->mallocFailed != '\0') || (bVar32)) {\n      uVar25 = apiOomError(psVar7);\n    }\n    else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }\n    if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {\n      uVar31 = 7;\n    }\nLAB_0008dcc7:\n    uVar31 = uVar31 & psVar28->errMask;\n    if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = *(int *)(pStmt + 0x24);\n    pcVar18 = sqlite3_sql(pStmt);\n    psVar28 = *(sqlite3 **)pStmt;\n    uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0);\n    if (uVar31 == 0) {\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar28);\n    }\n    z = sqlite3_value_text(db->pErr);\n    if (*(void **)(pStmt + 0x78) != (void *)0x0) {\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }\n    if (db->mallocFailed == '\0') {\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(db->mutex);\n  }\n  else {\n    uVar31 = sqlite3MisuseError(0x1471f);\n  }\n  if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }\n  return uVar31;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "sqlite3_stmt sVar4;" type_identifier identifier ;) (declaration "u8 uVar5;" type_identifier identifier ;) (declaration "ushort uVar6;" type_identifier identifier ;) (declaration "sqlite3 *db;" type_identifier (pointer_declarator "*db" * identifier) ;) (declaration "sqlite3 *psVar7;" type_identifier (pointer_declarator "*psVar7" * identifier) ;) (declaration "CollSeq *pCVar8;" type_identifier (pointer_declarator "*pCVar8" * identifier) ;) (declaration "Btree *p;" type_identifier (pointer_declarator "*p" * identifier) ;) (declaration "Wal *pWVar9;" type_identifier (pointer_declarator "*pWVar9" * identifier) ;) (declaration "undefined4 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "undefined *xDel;" type_identifier (pointer_declarator "*xDel" * identifier) ;) (declaration "byte bVar13;" type_identifier identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uchar *z;" type_identifier (pointer_declarator "*z" * identifier) ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "byte *pbVar19;" type_identifier (pointer_declarator "*pbVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined4 uVar21;" type_identifier identifier ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int *piVar23;" primitive_type (pointer_declarator "*piVar23" * identifier) ;) (declaration "u32 uVar24;" type_identifier identifier ;) (declaration "uint uVar25;" type_identifier identifier ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "sqlite3 *psVar28;" type_identifier (pointer_declarator "*psVar28" * identifier) ;) (declaration "sqlite3_stmt *psVar29;" type_identifier (pointer_declarator "*psVar29" * identifier) ;) (declaration "Vdbe *pVVar30;" type_identifier (pointer_declarator "*pVVar30" * identifier) ;) (declaration "uint uVar31;" type_identifier identifier ;) (declaration "Mem *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar32;" primitive_type identifier ;) (declaration "bool bVar33;" primitive_type identifier ;) (declaration "byte bVar34;" type_identifier identifier ;) (declaration "i64 in_stack_fffffea4;" type_identifier identifier ;) (declaration "Mem *local_148;" type_identifier (pointer_declarator "*local_148" * identifier) ;) (declaration "int local_144;" primitive_type identifier ;) (declaration "uint local_13c;" type_identifier identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "StrAccum x;" type_identifier identifier ;) (declaration "Vdbe tmp;" type_identifier identifier ;) (expression_statement "bVar34 = 0;" (assignment_expression "bVar34 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar3 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar14 = vdbeSafetyNotNull((Vdbe *)pStmt);" (assignment_expression "iVar14 = vdbeSafetyNotNull((Vdbe *)pStmt)" identifier = (call_expression "vdbeSafetyNotNull((Vdbe *)pStmt)" identifier (argument_list "((Vdbe *)pStmt)" ( (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (iVar14 == 0) {\n    db = *(sqlite3 **)pStmt;\n    sqlite3_mutex_enter(db->mutex);\n    xDel = PTR_sqlite3_free_000ddfe0;\n    pStmt[0x8d] = (sqlite3_stmt)0x0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }\n    psVar28 = *(sqlite3 **)pStmt;\n    if (psVar28->mallocFailed != '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }\n    sVar4 = pStmt[0x8e];\n    if (*(int *)(pStmt + 0x24) < 0) {\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar14 = *(int *)(pStmt + 0x54);\n    psVar7 = *(sqlite3 **)pStmt;\n    local_13c = 1;\n    p_00 = (Mem *)(iVar14 + 0x28);\n    if (((byte)sVar4 & 0xc) != 4) {\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }\n    if (p_00 != (Mem *)0x0) {\n      releaseMemArray(p_00,8);\n    }\n    *(undefined4 *)(pStmt + 0x74) = 0;\n    if (*(int *)(pStmt + 0x28) == 7) {\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }\n    sVar4 = pStmt[0x8e];\n    local_144 = *(int *)(pStmt + 0x68);\n    if (local_13c == 0) {\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }\n    else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }\n    iVar20 = *(int *)(pStmt + 0x24);\n    do {\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));\n    *(int *)(pStmt + 0x24) = iVar27;\n    if ((psVar7->u1).isInterrupted != 0) {\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }\n    x.db = (sqlite3 *)0x0;\n    x.zText = (char *)0x0;\n    x.nAlloc = 0;\n    x.mxAlloc = 1000000000;\n    x.nChar = 0;\n    x.accError = '\0';\n    x.printfFlags = '\0';\n    switch(pbVar2[1]) {\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&x,pcVar18,uVar21);\n    bVar13 = x.accError & 7;\nLAB_0008e5c0:\n    if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }\nLAB_0008e3d0:\n    pcVar18 = sqlite3StrAccumFinish(&x);\n    if (((byte)pStmt[0x8e] & 0xc) == 8) {\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }\n    *(Mem **)(pStmt + 0x74) = p_00;\n    if (psVar7->mallocFailed == '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }\nLAB_0008dc90:\n    psVar28->errCode = uVar31;\n    psVar7 = *(sqlite3 **)pStmt;\n    if ((psVar7->mallocFailed != '\0') || (bVar32)) {\n      uVar25 = apiOomError(psVar7);\n    }\n    else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }\n    if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {\n      uVar31 = 7;\n    }\nLAB_0008dcc7:\n    uVar31 = uVar31 & psVar28->errMask;\n    if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = *(int *)(pStmt + 0x24);\n    pcVar18 = sqlite3_sql(pStmt);\n    psVar28 = *(sqlite3 **)pStmt;\n    uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0);\n    if (uVar31 == 0) {\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar28);\n    }\n    z = sqlite3_value_text(db->pErr);\n    if (*(void **)(pStmt + 0x78) != (void *)0x0) {\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }\n    if (db->mallocFailed == '\0') {\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(db->mutex);\n  }\n  else {\n    uVar31 = sqlite3MisuseError(0x1471f);\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\n    db = *(sqlite3 **)pStmt;\n    sqlite3_mutex_enter(db->mutex);\n    xDel = PTR_sqlite3_free_000ddfe0;\n    pStmt[0x8d] = (sqlite3_stmt)0x0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }\n    psVar28 = *(sqlite3 **)pStmt;\n    if (psVar28->mallocFailed != '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }\n    sVar4 = pStmt[0x8e];\n    if (*(int *)(pStmt + 0x24) < 0) {\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar14 = *(int *)(pStmt + 0x54);\n    psVar7 = *(sqlite3 **)pStmt;\n    local_13c = 1;\n    p_00 = (Mem *)(iVar14 + 0x28);\n    if (((byte)sVar4 & 0xc) != 4) {\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }\n    if (p_00 != (Mem *)0x0) {\n      releaseMemArray(p_00,8);\n    }\n    *(undefined4 *)(pStmt + 0x74) = 0;\n    if (*(int *)(pStmt + 0x28) == 7) {\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }\n    sVar4 = pStmt[0x8e];\n    local_144 = *(int *)(pStmt + 0x68);\n    if (local_13c == 0) {\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }\n    else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }\n    iVar20 = *(int *)(pStmt + 0x24);\n    do {\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));\n    *(int *)(pStmt + 0x24) = iVar27;\n    if ((psVar7->u1).isInterrupted != 0) {\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }\n    x.db = (sqlite3 *)0x0;\n    x.zText = (char *)0x0;\n    x.nAlloc = 0;\n    x.mxAlloc = 1000000000;\n    x.nChar = 0;\n    x.accError = '\0';\n    x.printfFlags = '\0';\n    switch(pbVar2[1]) {\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&x,pcVar18,uVar21);\n    bVar13 = x.accError & 7;\nLAB_0008e5c0:\n    if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }\nLAB_0008e3d0:\n    pcVar18 = sqlite3StrAccumFinish(&x);\n    if (((byte)pStmt[0x8e] & 0xc) == 8) {\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }\n    *(Mem **)(pStmt + 0x74) = p_00;\n    if (psVar7->mallocFailed == '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }\nLAB_0008dc90:\n    psVar28->errCode = uVar31;\n    psVar7 = *(sqlite3 **)pStmt;\n    if ((psVar7->mallocFailed != '\0') || (bVar32)) {\n      uVar25 = apiOomError(psVar7);\n    }\n    else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }\n    if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {\n      uVar31 = 7;\n    }\nLAB_0008dcc7:\n    uVar31 = uVar31 & psVar28->errMask;\n    if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = *(int *)(pStmt + 0x24);\n    pcVar18 = sqlite3_sql(pStmt);\n    psVar28 = *(sqlite3 **)pStmt;\n    uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0);\n    if (uVar31 == 0) {\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar28);\n    }\n    z = sqlite3_value_text(db->pErr);\n    if (*(void **)(pStmt + 0x78) != (void *)0x0) {\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }\n    if (db->mallocFailed == '\0') {\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(db->mutex);\n  }" { (expression_statement "db = *(sqlite3 **)pStmt;" (assignment_expression "db = *(sqlite3 **)pStmt" identifier = (pointer_expression "*(sqlite3 **)pStmt" * (cast_expression "(sqlite3 **)pStmt" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "sqlite3_mutex_enter(db->mutex);" (call_expression "sqlite3_mutex_enter(db->mutex)" identifier (argument_list "(db->mutex)" ( (field_expression "db->mutex" identifier -> field_identifier) ))) ;) (expression_statement "xDel = PTR_sqlite3_free_000ddfe0;" (assignment_expression "xDel = PTR_sqlite3_free_000ddfe0" identifier = identifier) ;) (expression_statement "pStmt[0x8d] = (sqlite3_stmt)0x0;" (assignment_expression "pStmt[0x8d] = (sqlite3_stmt)0x0" (subscript_expression "pStmt[0x8d]" identifier [ number_literal ]) = (cast_expression "(sqlite3_stmt)0x0" ( (type_descriptor "sqlite3_stmt" type_identifier) ) number_literal)) ;) (expression_statement "local_138 = 0x33;" (assignment_expression "local_138 = 0x33" identifier = number_literal) ;) (labeled_statement "LAB_0008da88:\n    if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }" statement_identifier : (if_statement "if (*(int *)(pStmt + 0x14) != 0x2df20da3) {\n      sqlite3_reset(pStmt);\n    }" if (parenthesized_expression "(*(int *)(pStmt + 0x14) != 0x2df20da3)" ( (binary_expression "*(int *)(pStmt + 0x14) != 0x2df20da3" (pointer_expression "*(int *)(pStmt + 0x14)" * (cast_expression "(int *)(pStmt + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x14)" ( (binary_expression "pStmt + 0x14" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      sqlite3_reset(pStmt);\n    }" { (expression_statement "sqlite3_reset(pStmt);" (call_expression "sqlite3_reset(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) }))) (expression_statement "psVar28 = *(sqlite3 **)pStmt;" (assignment_expression "psVar28 = *(sqlite3 **)pStmt" identifier = (pointer_expression "*(sqlite3 **)pStmt" * (cast_expression "(sqlite3 **)pStmt" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (psVar28->mallocFailed != '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }" if (parenthesized_expression "(psVar28->mallocFailed != '\0')" ( (binary_expression "psVar28->mallocFailed != '\0'" (field_expression "psVar28->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n      goto LAB_0008dc24;\n    }" { (expression_statement "*(undefined4 *)(pStmt + 0x28) = 7;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 7" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar31 = 7;" (assignment_expression "uVar31 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0008dc24;" goto statement_identifier ;) })) (expression_statement "sVar4 = pStmt[0x8e];" (assignment_expression "sVar4 = pStmt[0x8e]" identifier = (subscript_expression "pStmt[0x8e]" identifier [ number_literal ])) ;) (if_statement "if (*(int *)(pStmt + 0x24) < 0) {\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }" if (parenthesized_expression "(*(int *)(pStmt + 0x24) < 0)" ( (binary_expression "*(int *)(pStmt + 0x24) < 0" (pointer_expression "*(int *)(pStmt + 0x24)" * (cast_expression "(int *)(pStmt + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n      if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }\n      *(undefined4 *)(pStmt + 0x28) = 0x11;\n      uVar31 = 1;\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\n      goto LAB_0008dcc7;\n    }" { (if_statement "if (((byte)sVar4 & 3) == 0) {\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }" if (parenthesized_expression "(((byte)sVar4 & 3) == 0)" ( (binary_expression "((byte)sVar4 & 3) == 0" (parenthesized_expression "((byte)sVar4 & 3)" ( (binary_expression "(byte)sVar4 & 3" (cast_expression "(byte)sVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }\n        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }\n        sVar4 = pStmt[0x8e];\n        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;\n        if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }\n        if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }\n        *(undefined4 *)(pStmt + 0x24) = 0;\n        goto LAB_0008dac4;\n      }" { (if_statement "if (psVar28->nVdbeActive == 0) {\n          (psVar28->u1).isInterrupted = 0;\n        }" if (parenthesized_expression "(psVar28->nVdbeActive == 0)" ( (binary_expression "psVar28->nVdbeActive == 0" (field_expression "psVar28->nVdbeActive" identifier -> field_identifier) == number_literal) )) (compound_statement "{\n          (psVar28->u1).isInterrupted = 0;\n        }" { (expression_statement "(psVar28->u1).isInterrupted = 0;" (assignment_expression "(psVar28->u1).isInterrupted = 0" (field_expression "(psVar28->u1).isInterrupted" (parenthesized_expression "(psVar28->u1)" ( (field_expression "psVar28->u1" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (if_statement "if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)) {\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }" if (parenthesized_expression "((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0))" ( (binary_expression "(((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&\n           (*(int *)(pStmt + 0xb4) != 0)" (parenthesized_expression "(((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0'))" ( (binary_expression "((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')" (parenthesized_expression "((psVar28->mTrace & 0x82) != 0)" ( (binary_expression "(psVar28->mTrace & 0x82) != 0" (parenthesized_expression "(psVar28->mTrace & 0x82)" ( (binary_expression "psVar28->mTrace & 0x82" (field_expression "psVar28->mTrace" identifier -> field_identifier) & number_literal) )) != number_literal) )) && (parenthesized_expression "((psVar28->init).busy == '\0')" ( (binary_expression "(psVar28->init).busy == '\0'" (field_expression "(psVar28->init).busy" (parenthesized_expression "(psVar28->init)" ( (field_expression "psVar28->init" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(*(int *)(pStmt + 0xb4) != 0)" ( (binary_expression "*(int *)(pStmt + 0xb4) != 0" (pointer_expression "*(int *)(pStmt + 0xb4)" * (cast_expression "(int *)(pStmt + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xb4)" ( (binary_expression "pStmt + 0xb4" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));\n        }" { (expression_statement "sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80));" (call_expression "sqlite3OsCurrentTimeInt64(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80))" identifier (argument_list "(psVar28->pVfs,(sqlite3_int64 *)(pStmt + 0x80))" ( (field_expression "psVar28->pVfs" identifier -> field_identifier) , (cast_expression "(sqlite3_int64 *)(pStmt + 0x80)" ( (type_descriptor "sqlite3_int64 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x80)" ( (binary_expression "pStmt + 0x80" identifier + number_literal) ))) ))) ;) })) (expression_statement "sVar4 = pStmt[0x8e];" (assignment_expression "sVar4 = pStmt[0x8e]" identifier = (subscript_expression "pStmt[0x8e]" identifier [ number_literal ])) ;) (expression_statement "psVar28->nVdbeActive = psVar28->nVdbeActive + 1;" (assignment_expression "psVar28->nVdbeActive = psVar28->nVdbeActive + 1" (field_expression "psVar28->nVdbeActive" identifier -> field_identifier) = (binary_expression "psVar28->nVdbeActive + 1" (field_expression "psVar28->nVdbeActive" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (-1 < (char)sVar4) {\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }" if (parenthesized_expression "(-1 < (char)sVar4)" ( (binary_expression "-1 < (char)sVar4" number_literal < (cast_expression "(char)sVar4" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;\n        }" { (expression_statement "psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;" (assignment_expression "psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1" (field_expression "psVar28->nVdbeWrite" identifier -> field_identifier) = (binary_expression "psVar28->nVdbeWrite + 1" (field_expression "psVar28->nVdbeWrite" identifier -> field_identifier) + number_literal)) ;) })) (if_statement "if (((byte)pStmt[0x8f] & 1) != 0) {\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }" if (parenthesized_expression "(((byte)pStmt[0x8f] & 1) != 0)" ( (binary_expression "((byte)pStmt[0x8f] & 1) != 0" (parenthesized_expression "((byte)pStmt[0x8f] & 1)" ( (binary_expression "(byte)pStmt[0x8f] & 1" (cast_expression "(byte)pStmt[0x8f]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pStmt[0x8f]" identifier [ number_literal ])) & number_literal) )) != number_literal) )) (compound_statement "{\n          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;\n        }" { (expression_statement "psVar28->nVdbeRead = psVar28->nVdbeRead + 1;" (assignment_expression "psVar28->nVdbeRead = psVar28->nVdbeRead + 1" (field_expression "psVar28->nVdbeRead" identifier -> field_identifier) = (binary_expression "psVar28->nVdbeRead + 1" (field_expression "psVar28->nVdbeRead" identifier -> field_identifier) + number_literal)) ;) })) (expression_statement "*(undefined4 *)(pStmt + 0x24) = 0;" (assignment_expression "*(undefined4 *)(pStmt + 0x24) = 0" (pointer_expression "*(undefined4 *)(pStmt + 0x24)" * (cast_expression "(undefined4 *)(pStmt + 0x24)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0008dac4;" goto statement_identifier ;) })) (expression_statement "*(undefined4 *)(pStmt + 0x28) = 0x11;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 0x11" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" identifier = number_literal) ;) (if_statement "if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }" if (parenthesized_expression "((char)pStmt[0x8c] < '\0')" ( (binary_expression "(char)pStmt[0x8c] < '\0'" (cast_expression "(char)pStmt[0x8c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pStmt[0x8c]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }" { (expression_statement "uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);" (assignment_expression "uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt)" identifier = (call_expression "sqlite3VdbeTransferError((Vdbe *)pStmt)" identifier (argument_list "((Vdbe *)pStmt)" ( (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) })) (goto_statement "goto LAB_0008dcc7;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dac4:\n    if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" statement_identifier : (if_statement "if (((byte)sVar4 & 0xc) == 0) {\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" if (parenthesized_expression "(((byte)sVar4 & 0xc) == 0)" ( (binary_expression "((byte)sVar4 & 0xc) == 0" (parenthesized_expression "((byte)sVar4 & 0xc)" ( (binary_expression "(byte)sVar4 & 0xc" (cast_expression "(byte)sVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;\n      uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);\n      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;\n      if (uVar31 == 100) goto LAB_0008dc84;\n      if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }\n      if (uVar31 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;\njoined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" { (expression_statement "psVar28->nVdbeExec = psVar28->nVdbeExec + 1;" (assignment_expression "psVar28->nVdbeExec = psVar28->nVdbeExec + 1" (field_expression "psVar28->nVdbeExec" identifier -> field_identifier) = (binary_expression "psVar28->nVdbeExec + 1" (field_expression "psVar28->nVdbeExec" identifier -> field_identifier) + number_literal)) ;) (expression_statement "uVar31 = sqlite3VdbeExec((Vdbe *)pStmt);" (assignment_expression "uVar31 = sqlite3VdbeExec((Vdbe *)pStmt)" identifier = (call_expression "sqlite3VdbeExec((Vdbe *)pStmt)" identifier (argument_list "((Vdbe *)pStmt)" ( (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "psVar28->nVdbeExec = psVar28->nVdbeExec + -1;" (assignment_expression "psVar28->nVdbeExec = psVar28->nVdbeExec + -1" (field_expression "psVar28->nVdbeExec" identifier -> field_identifier) = (binary_expression "psVar28->nVdbeExec + -1" (field_expression "psVar28->nVdbeExec" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (uVar31 == 100) goto LAB_0008dc84;" if (parenthesized_expression "(uVar31 == 100)" ( (binary_expression "uVar31 == 100" identifier == number_literal) )) (goto_statement "goto LAB_0008dc84;" goto statement_identifier ;)) (if_statement "if ((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))) {\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }" if (parenthesized_expression "((-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0))))" ( (binary_expression "(-1 < *(int *)(pStmt + 0x84)) &&\n         ((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))" (parenthesized_expression "(-1 < *(int *)(pStmt + 0x84))" ( (binary_expression "-1 < *(int *)(pStmt + 0x84)" number_literal < (pointer_expression "*(int *)(pStmt + 0x84)" * (cast_expression "(int *)(pStmt + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x84)" ( (binary_expression "pStmt + 0x84" identifier + number_literal) ))))) )) && (parenthesized_expression "((0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)))" ( (parenthesized_expression "(0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0))" ( (binary_expression "0 < *(int *)(pStmt + 0x84) || (*(int *)(pStmt + 0x80) != 0)" (binary_expression "0 < *(int *)(pStmt + 0x84)" number_literal < (pointer_expression "*(int *)(pStmt + 0x84)" * (cast_expression "(int *)(pStmt + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x84)" ( (binary_expression "pStmt + 0x84" identifier + number_literal) ))))) || (parenthesized_expression "(*(int *)(pStmt + 0x80) != 0)" ( (binary_expression "*(int *)(pStmt + 0x80) != 0" (pointer_expression "*(int *)(pStmt + 0x80)" * (cast_expression "(int *)(pStmt + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x80)" ( (binary_expression "pStmt + 0x80" identifier + number_literal) )))) != number_literal) ))) )) ))) )) (compound_statement "{\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n      }" { (expression_statement "invokeProfileCallback(psVar28,(Vdbe *)pStmt);" (call_expression "invokeProfileCallback(psVar28,(Vdbe *)pStmt)" identifier (argument_list "(psVar28,(Vdbe *)pStmt)" ( identifier , (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) })) (if_statement "if (uVar31 != 0x65) goto LAB_0008e15c;" if (parenthesized_expression "(uVar31 != 0x65)" ( (binary_expression "uVar31 != 0x65" identifier != number_literal) )) (goto_statement "goto LAB_0008e15c;" goto statement_identifier ;)) (labeled_statement "LAB_0008e0ef:\n      uVar5 = psVar28->autoCommit;" statement_identifier : (expression_statement "uVar5 = psVar28->autoCommit;" (assignment_expression "uVar5 = psVar28->autoCommit" identifier = (field_expression "psVar28->autoCommit" identifier -> field_identifier)) ;)) (labeled_statement "joined_r0x0008e0f7:\n      if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }" statement_identifier : (if_statement "if (uVar5 == '\0') {\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }\n      else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }" if (parenthesized_expression "(uVar5 == '\0')" ( (binary_expression "uVar5 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_148 = *(Mem **)(pStmt + 0x28);\n        uVar31 = 0x65;\n        bVar32 = local_148 == (Mem *)0xc0a;\n      }" { (expression_statement "local_148 = *(Mem **)(pStmt + 0x28);" (assignment_expression "local_148 = *(Mem **)(pStmt + 0x28)" identifier = (pointer_expression "*(Mem **)(pStmt + 0x28)" * (cast_expression "(Mem **)(pStmt + 0x28)" ( (type_descriptor "Mem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) ))))) ;) (expression_statement "uVar31 = 0x65;" (assignment_expression "uVar31 = 0x65" identifier = number_literal) ;) (expression_statement "bVar32 = local_148 == (Mem *)0xc0a;" (assignment_expression "bVar32 = local_148 == (Mem *)0xc0a" identifier = (binary_expression "local_148 == (Mem *)0xc0a" identifier == (cast_expression "(Mem *)0xc0a" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }) (else_clause "else {\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }" else (compound_statement "{\n        local_148 = (Mem *)0x0;\n        if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }\n      }" { (expression_statement "local_148 = (Mem *)0x0;" (assignment_expression "local_148 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (psVar28->nDb < 1) {\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }\n        else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }" if (parenthesized_expression "(psVar28->nDb < 1)" ( (binary_expression "psVar28->nDb < 1" (field_expression "psVar28->nDb" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n          *(undefined4 *)(pStmt + 0x28) = 0;\n          bVar32 = false;\n          uVar31 = 0x65;\n        }" { (expression_statement "*(undefined4 *)(pStmt + 0x28) = 0;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 0" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "uVar31 = 0x65;" (assignment_expression "uVar31 = 0x65" identifier = number_literal) ;) }) (else_clause "else {\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }" else (compound_statement "{\n          iVar14 = 0;\n          local_148 = (Mem *)0x0;\n          do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);\n          bVar32 = local_148 == (Mem *)0xc0a;\n          *(Mem **)(pStmt + 0x28) = local_148;\n          uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;\n        }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "local_148 = (Mem *)0x0;" (assignment_expression "local_148 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          } while (iVar14 < psVar28->nDb);" do (compound_statement "{\n            p = psVar28->aDb[iVar14].pBt;\n            if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }\n            iVar14 = iVar14 + 1;\n          }" { (expression_statement "p = psVar28->aDb[iVar14].pBt;" (assignment_expression "p = psVar28->aDb[iVar14].pBt" identifier = (field_expression "psVar28->aDb[iVar14].pBt" (subscript_expression "psVar28->aDb[iVar14]" (field_expression "psVar28->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (if_statement "if (p != (Btree *)0x0) {\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(p != (Btree *)0x0)" ( (binary_expression "p != (Btree *)0x0" identifier != (cast_expression "(Btree *)0x0" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }\n            }" { (if_statement "if (p->sharable == '\0') {\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }" if (parenthesized_expression "(p->sharable == '\0')" ( (binary_expression "p->sharable == '\0'" (field_expression "p->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }\n              }" { (expression_statement "pWVar9 = p->pBt->pPager->pWal;" (assignment_expression "pWVar9 = p->pBt->pPager->pWal" identifier = (field_expression "p->pBt->pPager->pWal" (field_expression "p->pBt->pPager" (field_expression "p->pBt" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (if_statement "if (pWVar9 != (Wal *)0x0) {\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }" if (parenthesized_expression "(pWVar9 != (Wal *)0x0)" ( (binary_expression "pWVar9 != (Wal *)0x0" identifier != (cast_expression "(Wal *)0x0" ( (type_descriptor "Wal *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  goto LAB_0008e221;\n                }" { (expression_statement "uVar24 = pWVar9->iCallback;" (assignment_expression "uVar24 = pWVar9->iCallback" identifier = (field_expression "pWVar9->iCallback" identifier -> field_identifier)) ;) (expression_statement "pWVar9->iCallback = 0;" (assignment_expression "pWVar9->iCallback = 0" (field_expression "pWVar9->iCallback" identifier -> field_identifier) = number_literal) ;) (goto_statement "goto LAB_0008e221;" goto statement_identifier ;) })) }) (else_clause "else {\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }" else (compound_statement "{\n                sqlite3BtreeEnter(p);\n                pWVar9 = p->pBt->pPager->pWal;\n                if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }\n              }" { (expression_statement "sqlite3BtreeEnter(p);" (call_expression "sqlite3BtreeEnter(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "pWVar9 = p->pBt->pPager->pWal;" (assignment_expression "pWVar9 = p->pBt->pPager->pWal" identifier = (field_expression "p->pBt->pPager->pWal" (field_expression "p->pBt->pPager" (field_expression "p->pBt" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (if_statement "if (pWVar9 == (Wal *)0x0) {\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }\n                else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }" if (parenthesized_expression "(pWVar9 == (Wal *)0x0)" ( (binary_expression "pWVar9 == (Wal *)0x0" identifier == (cast_expression "(Wal *)0x0" ( (type_descriptor "Wal *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\n                }" { (if_statement "if (p->sharable != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }" if (parenthesized_expression "(p->sharable != '\0')" ( (binary_expression "p->sharable != '\0'" (field_expression "p->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }" { (expression_statement "piVar23 = &p->wantToLock;" (assignment_expression "piVar23 = &p->wantToLock" identifier = (pointer_expression "&p->wantToLock" & (field_expression "p->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar23 = *piVar23 + -1;" (assignment_expression "*piVar23 = *piVar23 + -1" (pointer_expression "*piVar23" * identifier) = (binary_expression "*piVar23 + -1" (pointer_expression "*piVar23" * identifier) + number_literal)) ;) (if_statement "if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }" if (parenthesized_expression "(*piVar23 == 0)" ( (binary_expression "*piVar23 == 0" (pointer_expression "*piVar23" * identifier) == number_literal) )) (compound_statement "{\n                      sqlite3BtreeLeave(p);\n                    }" { (expression_statement "sqlite3BtreeLeave(p);" (call_expression "sqlite3BtreeLeave(p)" identifier (argument_list "(p)" ( identifier ))) ;) })) })) }) (else_clause "else {\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }" else (compound_statement "{\n                  uVar5 = p->sharable;\n                  uVar24 = pWVar9->iCallback;\n                  pWVar9->iCallback = 0;\n                  if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }\n                }" { (expression_statement "uVar5 = p->sharable;" (assignment_expression "uVar5 = p->sharable" identifier = (field_expression "p->sharable" identifier -> field_identifier)) ;) (expression_statement "uVar24 = pWVar9->iCallback;" (assignment_expression "uVar24 = pWVar9->iCallback" identifier = (field_expression "pWVar9->iCallback" identifier -> field_identifier)) ;) (expression_statement "pWVar9->iCallback = 0;" (assignment_expression "pWVar9->iCallback = 0" (field_expression "pWVar9->iCallback" identifier -> field_identifier) = number_literal) ;) (if_statement "if (uVar5 != '\0') {\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }" if (parenthesized_expression "(uVar5 != '\0')" ( (binary_expression "uVar5 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    piVar23 = &p->wantToLock;\n                    *piVar23 = *piVar23 + -1;\n                    if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }\n                  }" { (expression_statement "piVar23 = &p->wantToLock;" (assignment_expression "piVar23 = &p->wantToLock" identifier = (pointer_expression "&p->wantToLock" & (field_expression "p->wantToLock" identifier -> field_identifier))) ;) (expression_statement "*piVar23 = *piVar23 + -1;" (assignment_expression "*piVar23 = *piVar23 + -1" (pointer_expression "*piVar23" * identifier) = (binary_expression "*piVar23 + -1" (pointer_expression "*piVar23" * identifier) + number_literal)) ;) (if_statement "if (*piVar23 == 0) {\n                      sqlite3BtreeLeave(p);\n                    }" if (parenthesized_expression "(*piVar23 == 0)" ( (binary_expression "*piVar23 == 0" (pointer_expression "*piVar23" * identifier) == number_literal) )) (compound_statement "{\n                      sqlite3BtreeLeave(p);\n                    }" { (expression_statement "sqlite3BtreeLeave(p);" (call_expression "sqlite3BtreeLeave(p)" identifier (argument_list "(p)" ( identifier ))) ;) })) })) (labeled_statement "LAB_0008e221:\n                  if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }" statement_identifier : (if_statement "if (((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)) {\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }" if (parenthesized_expression "(((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0))" ( (binary_expression "((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))\n                     && (local_148 == (Mem *)0x0)" (parenthesized_expression "((0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0))" ( (binary_expression "(0 < (int)uVar24) &&\n                      (psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0)" (parenthesized_expression "(0 < (int)uVar24)" ( (binary_expression "0 < (int)uVar24" number_literal < (cast_expression "(int)uVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )) && (parenthesized_expression "(psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0)" ( (binary_expression "psVar28->xWalCallback != (_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0" (field_expression "psVar28->xWalCallback" identifier -> field_identifier) != (cast_expression "(_func_int_void_ptr_sqlite3_ptr_char_ptr_int *)0x0" ( (type_descriptor "_func_int_void_ptr_sqlite3_ptr_char_ptr_int *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(local_148 == (Mem *)0x0)" ( (binary_expression "local_148 == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n                    local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);\n                  }" { (expression_statement "local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24);" (assignment_expression "local_148 = (Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24)" identifier = (cast_expression "(Mem *)(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*psVar28->xWalCallback)\n                                                 (psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24)" (parenthesized_expression "(*psVar28->xWalCallback)" ( (pointer_expression "*psVar28->xWalCallback" * (field_expression "psVar28->xWalCallback" identifier -> field_identifier)) )) (argument_list "(psVar28->pWalArg,psVar28,\n                                                  psVar28->aDb[iVar14].zDbSName,uVar24)" ( (field_expression "psVar28->pWalArg" identifier -> field_identifier) , identifier , (field_expression "psVar28->aDb[iVar14].zDbSName" (subscript_expression "psVar28->aDb[iVar14]" (field_expression "psVar28->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier) , identifier ))))) ;) }))) }))) }))) })) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar14 < psVar28->nDb)" ( (binary_expression "iVar14 < psVar28->nDb" identifier < (field_expression "psVar28->nDb" identifier -> field_identifier)) )) ;) (expression_statement "bVar32 = local_148 == (Mem *)0xc0a;" (assignment_expression "bVar32 = local_148 == (Mem *)0xc0a" identifier = (binary_expression "local_148 == (Mem *)0xc0a" identifier == (cast_expression "(Mem *)0xc0a" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "*(Mem **)(pStmt + 0x28) = local_148;" (assignment_expression "*(Mem **)(pStmt + 0x28) = local_148" (pointer_expression "*(Mem **)(pStmt + 0x28)" * (cast_expression "(Mem **)(pStmt + 0x28)" ( (type_descriptor "Mem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1;" (assignment_expression "uVar31 = (-(uint)(local_148 == (Mem *)0x0) & 100) + 1" identifier = (binary_expression "(-(uint)(local_148 == (Mem *)0x0) & 100) + 1" (parenthesized_expression "(-(uint)(local_148 == (Mem *)0x0) & 100)" ( (binary_expression "-(uint)(local_148 == (Mem *)0x0) & 100" (unary_expression "-(uint)(local_148 == (Mem *)0x0)" - (call_expression "(uint)(local_148 == (Mem *)0x0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_148 == (Mem *)0x0)" ( (binary_expression "local_148 == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )))) & number_literal) )) + number_literal)) ;) }))) })))) (goto_statement "goto LAB_0008dc90;" goto statement_identifier ;) }))) (expression_statement "iVar14 = *(int *)(pStmt + 0x54);" (assignment_expression "iVar14 = *(int *)(pStmt + 0x54)" identifier = (pointer_expression "*(int *)(pStmt + 0x54)" * (cast_expression "(int *)(pStmt + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x54)" ( (binary_expression "pStmt + 0x54" identifier + number_literal) ))))) ;) (expression_statement "psVar7 = *(sqlite3 **)pStmt;" (assignment_expression "psVar7 = *(sqlite3 **)pStmt" identifier = (pointer_expression "*(sqlite3 **)pStmt" * (cast_expression "(sqlite3 **)pStmt" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "local_13c = 1;" (assignment_expression "local_13c = 1" identifier = number_literal) ;) (expression_statement "p_00 = (Mem *)(iVar14 + 0x28);" (assignment_expression "p_00 = (Mem *)(iVar14 + 0x28)" identifier = (cast_expression "(Mem *)(iVar14 + 0x28)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x28)" ( (binary_expression "iVar14 + 0x28" identifier + number_literal) )))) ;) (if_statement "if (((byte)sVar4 & 0xc) != 4) {\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }" if (parenthesized_expression "(((byte)sVar4 & 0xc) != 4)" ( (binary_expression "((byte)sVar4 & 0xc) != 4" (parenthesized_expression "((byte)sVar4 & 0xc)" ( (binary_expression "(byte)sVar4 & 0xc" (cast_expression "(byte)sVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) != number_literal) )) (compound_statement "{\n      local_13c = (uint)psVar7->flags >> 0x18 & 1;\n    }" { (expression_statement "local_13c = (uint)psVar7->flags >> 0x18 & 1;" (assignment_expression "local_13c = (uint)psVar7->flags >> 0x18 & 1" identifier = (binary_expression "(uint)psVar7->flags >> 0x18 & 1" (binary_expression "(uint)psVar7->flags >> 0x18" (cast_expression "(uint)psVar7->flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "psVar7->flags" identifier -> field_identifier)) >> number_literal) & number_literal)) ;) })) (if_statement "if (p_00 != (Mem *)0x0) {\n      releaseMemArray(p_00,8);\n    }" if (parenthesized_expression "(p_00 != (Mem *)0x0)" ( (binary_expression "p_00 != (Mem *)0x0" identifier != (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      releaseMemArray(p_00,8);\n    }" { (expression_statement "releaseMemArray(p_00,8);" (call_expression "releaseMemArray(p_00,8)" identifier (argument_list "(p_00,8)" ( identifier , number_literal ))) ;) })) (expression_statement "*(undefined4 *)(pStmt + 0x74) = 0;" (assignment_expression "*(undefined4 *)(pStmt + 0x74) = 0" (pointer_expression "*(undefined4 *)(pStmt + 0x74)" * (cast_expression "(undefined4 *)(pStmt + 0x74)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x74)" ( (binary_expression "pStmt + 0x74" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(int *)(pStmt + 0x28) == 7) {\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }" if (parenthesized_expression "(*(int *)(pStmt + 0x28) == 7)" ( (binary_expression "*(int *)(pStmt + 0x28) == 7" (pointer_expression "*(int *)(pStmt + 0x28)" * (cast_expression "(int *)(pStmt + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n      uVar31._0_1_ = psVar7->temp_store;\n      uVar31._1_1_ = psVar7->mallocFailed;\n      uVar31._2_1_ = psVar7->bBenignMalloc;\n      uVar31._3_1_ = psVar7->dfltLockMode;\n      if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }\n      goto LAB_0008e141;\n    }" { (expression_statement "uVar31._0_1_ = psVar7->temp_store;" (assignment_expression "uVar31._0_1_ = psVar7->temp_store" (field_expression "uVar31._0_1_" identifier . field_identifier) = (field_expression "psVar7->temp_store" identifier -> field_identifier)) ;) (expression_statement "uVar31._1_1_ = psVar7->mallocFailed;" (assignment_expression "uVar31._1_1_ = psVar7->mallocFailed" (field_expression "uVar31._1_1_" identifier . field_identifier) = (field_expression "psVar7->mallocFailed" identifier -> field_identifier)) ;) (expression_statement "uVar31._2_1_ = psVar7->bBenignMalloc;" (assignment_expression "uVar31._2_1_ = psVar7->bBenignMalloc" (field_expression "uVar31._2_1_" identifier . field_identifier) = (field_expression "psVar7->bBenignMalloc" identifier -> field_identifier)) ;) (expression_statement "uVar31._3_1_ = psVar7->dfltLockMode;" (assignment_expression "uVar31._3_1_ = psVar7->dfltLockMode" (field_expression "uVar31._3_1_" identifier . field_identifier) = (field_expression "psVar7->dfltLockMode" identifier -> field_identifier)) ;) (if_statement "if ((uVar31 & 0xffff00) == 0) {\n        sqlite3OomFault(psVar7);\n      }" if (parenthesized_expression "((uVar31 & 0xffff00) == 0)" ( (binary_expression "(uVar31 & 0xffff00) == 0" (parenthesized_expression "(uVar31 & 0xffff00)" ( (binary_expression "uVar31 & 0xffff00" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        sqlite3OomFault(psVar7);\n      }" { (expression_statement "sqlite3OomFault(psVar7);" (call_expression "sqlite3OomFault(psVar7)" identifier (argument_list "(psVar7)" ( identifier ))) ;) })) (goto_statement "goto LAB_0008e141;" goto statement_identifier ;) })) (expression_statement "sVar4 = pStmt[0x8e];" (assignment_expression "sVar4 = pStmt[0x8e]" identifier = (subscript_expression "pStmt[0x8e]" identifier [ number_literal ])) ;) (expression_statement "local_144 = *(int *)(pStmt + 0x68);" (assignment_expression "local_144 = *(int *)(pStmt + 0x68)" identifier = (pointer_expression "*(int *)(pStmt + 0x68)" * (cast_expression "(int *)(pStmt + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x68)" ( (binary_expression "pStmt + 0x68" identifier + number_literal) ))))) ;) (if_statement "if (local_13c == 0) {\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }\n    else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }" if (parenthesized_expression "(local_13c == 0)" ( (binary_expression "local_13c == 0" identifier == number_literal) )) (compound_statement "{\n      local_148 = (Mem *)0x0;\n      piVar23 = (int *)0x0;\n    }" { (expression_statement "local_148 = (Mem *)0x0;" (assignment_expression "local_148 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }" else (compound_statement "{\n      iVar20 = *(int *)(pStmt + 0x54);\n      local_148 = (Mem *)(iVar20 + 0x168);\n      if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }\n    }" { (expression_statement "iVar20 = *(int *)(pStmt + 0x54);" (assignment_expression "iVar20 = *(int *)(pStmt + 0x54)" identifier = (pointer_expression "*(int *)(pStmt + 0x54)" * (cast_expression "(int *)(pStmt + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x54)" ( (binary_expression "pStmt + 0x54" identifier + number_literal) ))))) ;) (expression_statement "local_148 = (Mem *)(iVar20 + 0x168);" (assignment_expression "local_148 = (Mem *)(iVar20 + 0x168)" identifier = (cast_expression "(Mem *)(iVar20 + 0x168)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x168)" ( (binary_expression "iVar20 + 0x168" identifier + number_literal) )))) ;) (if_statement "if ((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }\n      else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }" if (parenthesized_expression "((local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0))" ( (binary_expression "(local_148 == (Mem *)0x0) || ((*(byte *)(iVar20 + 0x170) & 0x10) == 0)" (parenthesized_expression "(local_148 == (Mem *)0x0)" ( (binary_expression "local_148 == (Mem *)0x0" identifier == (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((*(byte *)(iVar20 + 0x170) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar20 + 0x170) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar20 + 0x170) & 0x10)" ( (binary_expression "*(byte *)(iVar20 + 0x170) & 0x10" (pointer_expression "*(byte *)(iVar20 + 0x170)" * (cast_expression "(byte *)(iVar20 + 0x170)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x170)" ( (binary_expression "iVar20 + 0x170" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        local_13c = 0;\n        piVar23 = (int *)0x0;\n      }" { (expression_statement "local_13c = 0;" (assignment_expression "local_13c = 0" identifier = number_literal) ;) (expression_statement "piVar23 = (int *)0x0;" (assignment_expression "piVar23 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }" else (compound_statement "{\n        piVar23 = *(int **)(iVar20 + 0x178);\n        local_13c = *(uint *)(iVar20 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }\n      }" { (expression_statement "piVar23 = *(int **)(iVar20 + 0x178);" (assignment_expression "piVar23 = *(int **)(iVar20 + 0x178)" identifier = (pointer_expression "*(int **)(iVar20 + 0x178)" * (cast_expression "(int **)(iVar20 + 0x178)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x178)" ( (binary_expression "iVar20 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "local_13c = *(uint *)(iVar20 + 0x174) >> 2;" (assignment_expression "local_13c = *(uint *)(iVar20 + 0x174) >> 2" identifier = (binary_expression "*(uint *)(iVar20 + 0x174) >> 2" (pointer_expression "*(uint *)(iVar20 + 0x174)" * (cast_expression "(uint *)(iVar20 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x174)" ( (binary_expression "iVar20 + 0x174" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (local_13c != 0) {\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }" if (parenthesized_expression "(local_13c != 0)" ( (binary_expression "local_13c != 0" identifier != number_literal) )) (compound_statement "{\n          piVar15 = piVar23;\n          do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);\n        }" { (expression_statement "piVar15 = piVar23;" (assignment_expression "piVar15 = piVar23" identifier = identifier) ;) (do_statement "do {\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          } while (piVar23 + local_13c != piVar15);" do (compound_statement "{\n            iVar20 = *piVar15;\n            piVar15 = piVar15 + 1;\n            local_144 = local_144 + *(int *)(iVar20 + 4);\n          }" { (expression_statement "iVar20 = *piVar15;" (assignment_expression "iVar20 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) (expression_statement "piVar15 = piVar15 + 1;" (assignment_expression "piVar15 = piVar15 + 1" identifier = (binary_expression "piVar15 + 1" identifier + number_literal)) ;) (expression_statement "local_144 = local_144 + *(int *)(iVar20 + 4);" (assignment_expression "local_144 = local_144 + *(int *)(iVar20 + 4)" identifier = (binary_expression "local_144 + *(int *)(iVar20 + 4)" identifier + (pointer_expression "*(int *)(iVar20 + 4)" * (cast_expression "(int *)(iVar20 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(piVar23 + local_13c != piVar15)" ( (binary_expression "piVar23 + local_13c != piVar15" (binary_expression "piVar23 + local_13c" identifier + identifier) != identifier) )) ;) })) }))) }))) (expression_statement "iVar20 = *(int *)(pStmt + 0x24);" (assignment_expression "iVar20 = *(int *)(pStmt + 0x24)" identifier = (pointer_expression "*(int *)(pStmt + 0x24)" * (cast_expression "(int *)(pStmt + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) ))))) ;) (do_statement "do {\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    } while (((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))));" do (compound_statement "{\n      iVar27 = iVar20 + 1;\n      if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }\n      pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);\n      if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }\n    }" { (expression_statement "iVar27 = iVar20 + 1;" (assignment_expression "iVar27 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (if_statement "if (local_144 <= iVar20) {\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }" if (parenthesized_expression "(local_144 <= iVar20)" ( (binary_expression "local_144 <= iVar20" identifier <= identifier) )) (compound_statement "{\n        *(undefined4 *)(pStmt + 0x28) = 0;\n        *(int *)(pStmt + 0x24) = iVar27;\n        if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;\n        invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        uVar5 = psVar28->autoCommit;\n        goto joined_r0x0008e0f7;\n      }" { (expression_statement "*(undefined4 *)(pStmt + 0x28) = 0;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 0" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(int *)(pStmt + 0x24) = iVar27;" (assignment_expression "*(int *)(pStmt + 0x24) = iVar27" (pointer_expression "*(int *)(pStmt + 0x24)" * (cast_expression "(int *)(pStmt + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))) goto LAB_0008e0ef;" if (parenthesized_expression "((*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0))))" ( (binary_expression "(*(int *)(pStmt + 0x84) < 1) &&\n           ((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))" (parenthesized_expression "(*(int *)(pStmt + 0x84) < 1)" ( (binary_expression "*(int *)(pStmt + 0x84) < 1" (pointer_expression "*(int *)(pStmt + 0x84)" * (cast_expression "(int *)(pStmt + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x84)" ( (binary_expression "pStmt + 0x84" identifier + number_literal) )))) < number_literal) )) && (parenthesized_expression "((*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)))" ( (parenthesized_expression "(*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0))" ( (binary_expression "*(int *)(pStmt + 0x84) < 0 || (*(int *)(pStmt + 0x80) == 0)" (binary_expression "*(int *)(pStmt + 0x84) < 0" (pointer_expression "*(int *)(pStmt + 0x84)" * (cast_expression "(int *)(pStmt + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x84)" ( (binary_expression "pStmt + 0x84" identifier + number_literal) )))) < number_literal) || (parenthesized_expression "(*(int *)(pStmt + 0x80) == 0)" ( (binary_expression "*(int *)(pStmt + 0x80) == 0" (pointer_expression "*(int *)(pStmt + 0x80)" * (cast_expression "(int *)(pStmt + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x80)" ( (binary_expression "pStmt + 0x80" identifier + number_literal) )))) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0008e0ef;" goto statement_identifier ;)) (expression_statement "invokeProfileCallback(psVar28,(Vdbe *)pStmt);" (call_expression "invokeProfileCallback(psVar28,(Vdbe *)pStmt)" identifier (argument_list "(psVar28,(Vdbe *)pStmt)" ( identifier , (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "uVar5 = psVar28->autoCommit;" (assignment_expression "uVar5 = psVar28->autoCommit" identifier = (field_expression "psVar28->autoCommit" identifier -> field_identifier)) ;) (goto_statement "goto joined_r0x0008e0f7;" goto statement_identifier ;) })) (if_statement "if (iVar20 < *(int *)(pStmt + 0x68)) {\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }\n      else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }" if (parenthesized_expression "(iVar20 < *(int *)(pStmt + 0x68))" ( (binary_expression "iVar20 < *(int *)(pStmt + 0x68)" identifier < (pointer_expression "*(int *)(pStmt + 0x68)" * (cast_expression "(int *)(pStmt + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x68)" ( (binary_expression "pStmt + 0x68" identifier + number_literal) ))))) )) (compound_statement "{\n        iVar17 = *(int *)(pStmt + 100);\n        iVar16 = iVar20;\n      }" { (expression_statement "iVar17 = *(int *)(pStmt + 100);" (assignment_expression "iVar17 = *(int *)(pStmt + 100)" identifier = (pointer_expression "*(int *)(pStmt + 100)" * (cast_expression "(int *)(pStmt + 100)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 100)" ( (binary_expression "pStmt + 100" identifier + number_literal) ))))) ;) (expression_statement "iVar16 = iVar20;" (assignment_expression "iVar16 = iVar20" identifier = identifier) ;) }) (else_clause "else {\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }" else (compound_statement "{\n        piVar15 = (int *)*piVar23;\n        iVar16 = iVar20 - *(int *)(pStmt + 0x68);\n        iVar20 = piVar15[1];\n        piVar12 = piVar23;\n        if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }\n        iVar17 = *piVar15;\n      }" { (expression_statement "piVar15 = (int *)*piVar23;" (assignment_expression "piVar15 = (int *)*piVar23" identifier = (cast_expression "(int *)*piVar23" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar23" * identifier))) ;) (expression_statement "iVar16 = iVar20 - *(int *)(pStmt + 0x68);" (assignment_expression "iVar16 = iVar20 - *(int *)(pStmt + 0x68)" identifier = (binary_expression "iVar20 - *(int *)(pStmt + 0x68)" identifier - (pointer_expression "*(int *)(pStmt + 0x68)" * (cast_expression "(int *)(pStmt + 0x68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x68)" ( (binary_expression "pStmt + 0x68" identifier + number_literal) )))))) ;) (expression_statement "iVar20 = piVar15[1];" (assignment_expression "iVar20 = piVar15[1]" identifier = (subscript_expression "piVar15[1]" identifier [ number_literal ])) ;) (expression_statement "piVar12 = piVar23;" (assignment_expression "piVar12 = piVar23" identifier = identifier) ;) (if_statement "if (iVar20 <= iVar16) {\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }" if (parenthesized_expression "(iVar20 <= iVar16)" ( (binary_expression "iVar20 <= iVar16" identifier <= identifier) )) (compound_statement "{\n          do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);\n        }" { (do_statement "do {\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          } while (iVar20 <= iVar16);" do (compound_statement "{\n            piVar15 = (int *)piVar12[1];\n            iVar16 = iVar16 - iVar20;\n            iVar20 = piVar15[1];\n            piVar12 = piVar12 + 1;\n          }" { (expression_statement "piVar15 = (int *)piVar12[1];" (assignment_expression "piVar15 = (int *)piVar12[1]" identifier = (cast_expression "(int *)piVar12[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar12[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar16 = iVar16 - iVar20;" (assignment_expression "iVar16 = iVar16 - iVar20" identifier = (binary_expression "iVar16 - iVar20" identifier - identifier)) ;) (expression_statement "iVar20 = piVar15[1];" (assignment_expression "iVar20 = piVar15[1]" identifier = (subscript_expression "piVar15[1]" identifier [ number_literal ])) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar20 <= iVar16)" ( (binary_expression "iVar20 <= iVar16" identifier <= identifier) )) ;) })) (expression_statement "iVar17 = *piVar15;" (assignment_expression "iVar17 = *piVar15" identifier = (pointer_expression "*piVar15" * identifier)) ;) }))) (expression_statement "pbVar2 = (byte *)(iVar17 + iVar16 * 0x14);" (assignment_expression "pbVar2 = (byte *)(iVar17 + iVar16 * 0x14)" identifier = (cast_expression "(byte *)(iVar17 + iVar16 * 0x14)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + iVar16 * 0x14)" ( (binary_expression "iVar17 + iVar16 * 0x14" identifier + (binary_expression "iVar16 * 0x14" identifier * number_literal)) )))) ;) (if_statement "if ((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }" if (parenthesized_expression "((local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc))" ( (binary_expression "(local_148 != (Mem *)0x0) && (pbVar2[1] == 0xfc)" (parenthesized_expression "(local_148 != (Mem *)0x0)" ( (binary_expression "local_148 != (Mem *)0x0" identifier != (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(pbVar2[1] == 0xfc)" ( (binary_expression "pbVar2[1] == 0xfc" (subscript_expression "pbVar2[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }\n      }" { (if_statement "if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }" if (parenthesized_expression "((int)local_13c < 1)" ( (binary_expression "(int)local_13c < 1" (cast_expression "(int)local_13c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }" { (if_statement "if (local_13c == 0) {\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" if (parenthesized_expression "(local_13c == 0)" ( (binary_expression "local_13c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;\n            iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));\n            *(int *)(pStmt + 0x28) = iVar17;\n            if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar23 = (int *)local_148->z;\n            piVar23[local_13c] = *(int *)(pbVar2 + 0x10);\n            local_148->flags = local_148->flags & 0x3e40 | 0x10;\n            local_148->n = iVar20;\n            local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" { (labeled_statement "LAB_0008e044:\n            iVar20 = (local_13c + 1) * 4;" statement_identifier : (expression_statement "iVar20 = (local_13c + 1) * 4;" (assignment_expression "iVar20 = (local_13c + 1) * 4" identifier = (binary_expression "(local_13c + 1) * 4" (parenthesized_expression "(local_13c + 1)" ( (binary_expression "local_13c + 1" identifier + number_literal) )) * number_literal)) ;)) (expression_statement "iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0));" (assignment_expression "iVar17 = sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0))" identifier = (call_expression "sqlite3VdbeMemGrow(local_148,iVar20,(uint)(local_13c != 0))" identifier (argument_list "(local_148,iVar20,(uint)(local_13c != 0))" ( identifier , identifier , (call_expression "(uint)(local_13c != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_13c != 0)" ( (binary_expression "local_13c != 0" identifier != number_literal) ))) )))) ;) (expression_statement "*(int *)(pStmt + 0x28) = iVar17;" (assignment_expression "*(int *)(pStmt + 0x28) = iVar17" (pointer_expression "*(int *)(pStmt + 0x28)" * (cast_expression "(int *)(pStmt + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar17 != 0) {\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar14 = *(int *)(pStmt + 0x84);\n              *(int *)(pStmt + 0x24) = iVar27;\n              if (iVar14 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" { (expression_statement "iVar14 = *(int *)(pStmt + 0x84);" (assignment_expression "iVar14 = *(int *)(pStmt + 0x84)" identifier = (pointer_expression "*(int *)(pStmt + 0x84)" * (cast_expression "(int *)(pStmt + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x84)" ( (binary_expression "pStmt + 0x84" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pStmt + 0x24) = iVar27;" (assignment_expression "*(int *)(pStmt + 0x24) = iVar27" (pointer_expression "*(int *)(pStmt + 0x24)" * (cast_expression "(int *)(pStmt + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar14 < 0) goto LAB_0008e157;" if (parenthesized_expression "(iVar14 < 0)" ( (binary_expression "iVar14 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0008e157;" goto statement_identifier ;)) (goto_statement "goto joined_r0x0008e183;" goto statement_identifier ;) })) (expression_statement "piVar23 = (int *)local_148->z;" (assignment_expression "piVar23 = (int *)local_148->z" identifier = (cast_expression "(int *)local_148->z" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "local_148->z" identifier -> field_identifier))) ;) (expression_statement "piVar23[local_13c] = *(int *)(pbVar2 + 0x10);" (assignment_expression "piVar23[local_13c] = *(int *)(pbVar2 + 0x10)" (subscript_expression "piVar23[local_13c]" identifier [ identifier ]) = (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_148->flags = local_148->flags & 0x3e40 | 0x10;" (assignment_expression "local_148->flags = local_148->flags & 0x3e40 | 0x10" (field_expression "local_148->flags" identifier -> field_identifier) = (binary_expression "local_148->flags & 0x3e40 | 0x10" (binary_expression "local_148->flags & 0x3e40" (field_expression "local_148->flags" identifier -> field_identifier) & number_literal) | number_literal)) ;) (expression_statement "local_148->n = iVar20;" (assignment_expression "local_148->n = iVar20" (field_expression "local_148->n" identifier -> field_identifier) = identifier) ;) (expression_statement "local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4);" (assignment_expression "local_144 = local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4)" identifier = (binary_expression "local_144 + *(int *)(*(int *)(pbVar2 + 0x10) + 4)" identifier + (pointer_expression "*(int *)(*(int *)(pbVar2 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pbVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar2 + 0x10) + 4)" ( (binary_expression "*(int *)(pbVar2 + 0x10) + 4" (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_13c = local_13c + 1;" (assignment_expression "local_13c = local_13c + 1" identifier = (binary_expression "local_13c + 1" identifier + number_literal)) ;) })) }) (else_clause "else if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }" else (if_statement "if (*(int *)(pbVar2 + 0x10) != *piVar23) {\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }" if (parenthesized_expression "(*(int *)(pbVar2 + 0x10) != *piVar23)" ( (binary_expression "*(int *)(pbVar2 + 0x10) != *piVar23" (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))) != (pointer_expression "*piVar23" * identifier)) )) (compound_statement "{\n          uVar31 = 0;\n          do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));\n        }" { (expression_statement "uVar31 = 0;" (assignment_expression "uVar31 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          } while (piVar23[uVar31] != *(int *)(pbVar2 + 0x10));" do (compound_statement "{\n            uVar31 = uVar31 + 1;\n            if (local_13c == uVar31) goto LAB_0008e044;\n          }" { (expression_statement "uVar31 = uVar31 + 1;" (assignment_expression "uVar31 = uVar31 + 1" identifier = (binary_expression "uVar31 + 1" identifier + number_literal)) ;) (if_statement "if (local_13c == uVar31) goto LAB_0008e044;" if (parenthesized_expression "(local_13c == uVar31)" ( (binary_expression "local_13c == uVar31" identifier == identifier) )) (goto_statement "goto LAB_0008e044;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar23[uVar31] != *(int *)(pbVar2 + 0x10))" ( (binary_expression "piVar23[uVar31] != *(int *)(pbVar2 + 0x10)" (subscript_expression "piVar23[uVar31]" identifier [ identifier ]) != (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) )) ;) })))) })) }) while (parenthesized_expression "(((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))))" ( (binary_expression "((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)) &&\n            ((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2)))" (parenthesized_expression "((((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae))" ( (binary_expression "(((byte)sVar4 & 0xc) == 8) && (*pbVar2 != 0xae)" (parenthesized_expression "(((byte)sVar4 & 0xc) == 8)" ( (binary_expression "((byte)sVar4 & 0xc) == 8" (parenthesized_expression "((byte)sVar4 & 0xc)" ( (binary_expression "(byte)sVar4 & 0xc" (cast_expression "(byte)sVar4" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(*pbVar2 != 0xae)" ( (binary_expression "*pbVar2 != 0xae" (pointer_expression "*pbVar2" * identifier) != number_literal) ))) )) && (parenthesized_expression "((iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2)))" ( (parenthesized_expression "(iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2))" ( (comma_expression "iVar20 = iVar27, *pbVar2 != 0x3e || (iVar27 < 2)" (assignment_expression "iVar20 = iVar27" identifier = identifier) , (binary_expression "*pbVar2 != 0x3e || (iVar27 < 2)" (binary_expression "*pbVar2 != 0x3e" (pointer_expression "*pbVar2" * identifier) != number_literal) || (parenthesized_expression "(iVar27 < 2)" ( (binary_expression "iVar27 < 2" identifier < number_literal) )))) )) ))) )) ;) (expression_statement "*(int *)(pStmt + 0x24) = iVar27;" (assignment_expression "*(int *)(pStmt + 0x24) = iVar27" (pointer_expression "*(int *)(pStmt + 0x24)" * (cast_expression "(int *)(pStmt + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((psVar7->u1).isInterrupted != 0) {\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }" if (parenthesized_expression "((psVar7->u1).isInterrupted != 0)" ( (binary_expression "(psVar7->u1).isInterrupted != 0" (field_expression "(psVar7->u1).isInterrupted" (parenthesized_expression "(psVar7->u1)" ( (field_expression "psVar7->u1" identifier -> field_identifier) )) . field_identifier) != number_literal) )) (compound_statement "{\n      *(undefined4 *)(pStmt + 0x28) = 9;\n      sqlite3VdbeError((Vdbe *)pStmt,"interrupted");\n      goto LAB_0008e141;\n    }" { (expression_statement "*(undefined4 *)(pStmt + 0x28) = 9;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 9" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "sqlite3VdbeError((Vdbe *)pStmt,"interrupted");" (call_expression "sqlite3VdbeError((Vdbe *)pStmt,"interrupted")" identifier (argument_list "((Vdbe *)pStmt,"interrupted")" ( (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""interrupted"" " string_content ") ))) ;) (goto_statement "goto LAB_0008e141;" goto statement_identifier ;) })) (expression_statement "x.db = (sqlite3 *)0x0;" (assignment_expression "x.db = (sqlite3 *)0x0" (field_expression "x.db" identifier . field_identifier) = (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x.zText = (char *)0x0;" (assignment_expression "x.zText = (char *)0x0" (field_expression "x.zText" identifier . field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "x.nAlloc = 0;" (assignment_expression "x.nAlloc = 0" (field_expression "x.nAlloc" identifier . field_identifier) = number_literal) ;) (expression_statement "x.mxAlloc = 1000000000;" (assignment_expression "x.mxAlloc = 1000000000" (field_expression "x.mxAlloc" identifier . field_identifier) = number_literal) ;) (expression_statement "x.nChar = 0;" (assignment_expression "x.nChar = 0" (field_expression "x.nChar" identifier . field_identifier) = number_literal) ;) (expression_statement "x.accError = '\0';" (assignment_expression "x.accError = '\0'" (field_expression "x.accError" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "x.printfFlags = '\0';" (assignment_expression "x.printfFlags = '\0'" (field_expression "x.printfFlags" identifier . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (switch_statement "switch(pbVar2[1]) {\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }" switch (parenthesized_expression "(pbVar2[1])" ( (subscript_expression "pbVar2[1]" identifier [ number_literal ]) )) (compound_statement "{\n    case 0xef:\n    case 0xfb:\n      goto _L33039;\n    case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;\n    case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;\n    case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;\n    case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;\n    case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;\n    case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;\n    default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;\n    case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;\n    case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;\n    case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;\n    case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;\n    case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";\n    }" { (case_statement "case 0xef:" case number_literal :) (case_statement "case 0xfb:\n      goto _L33039;" case number_literal : (goto_statement "goto _L33039;" goto statement_identifier ;)) (case_statement "case 0xf0:\n      iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);\n      goto LAB_0008e672;" case number_literal : (expression_statement "iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4);" (assignment_expression "iVar20 = *(int *)(*(int *)(pbVar2 + 0x10) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(pbVar2 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pbVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar2 + 0x10) + 4)" ( (binary_expression "*(int *)(pbVar2 + 0x10) + 4" (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto LAB_0008e672;" goto statement_identifier ;)) (case_statement "case 0xf1:\n      piVar23 = *(int **)(pbVar2 + 0x10);\n      iVar20 = *piVar23;\n      if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }\n      pcVar18 = "]";\n      goto LAB_0008e812;" case number_literal : (expression_statement "piVar23 = *(int **)(pbVar2 + 0x10);" (assignment_expression "piVar23 = *(int **)(pbVar2 + 0x10)" identifier = (pointer_expression "*(int **)(pbVar2 + 0x10)" * (cast_expression "(int **)(pbVar2 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = *piVar23;" (assignment_expression "iVar20 = *piVar23" identifier = (pointer_expression "*piVar23" * identifier)) ;) (if_statement "if (iVar20 != 0) {\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }" if (parenthesized_expression "(iVar20 != 0)" ( (binary_expression "iVar20 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar27 = 1;\n        do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);\n      }" { (expression_statement "iVar27 = 1;" (assignment_expression "iVar27 = 1" identifier = number_literal) ;) (do_statement "do {\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        } while (iVar27 != iVar20 + 1);" do (compound_statement "{\n          uVar21 = 0x5b;\n          if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }\n          piVar15 = piVar23 + iVar27;\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);\n        }" { (expression_statement "uVar21 = 0x5b;" (assignment_expression "uVar21 = 0x5b" identifier = number_literal) ;) (if_statement "if (iVar27 != 1) {\n            uVar21 = 0x2c;\n          }" if (parenthesized_expression "(iVar27 != 1)" ( (binary_expression "iVar27 != 1" identifier != number_literal) )) (compound_statement "{\n            uVar21 = 0x2c;\n          }" { (expression_statement "uVar21 = 0x2c;" (assignment_expression "uVar21 = 0x2c" identifier = number_literal) ;) })) (expression_statement "piVar15 = piVar23 + iVar27;" (assignment_expression "piVar15 = piVar23 + iVar27" identifier = (binary_expression "piVar23 + iVar27" identifier + identifier)) ;) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15);" (call_expression "sqlite3_str_appendf(&x,"%c%u",uVar21,*piVar15)" identifier (argument_list "(&x,"%c%u",uVar21,*piVar15)" ( (pointer_expression "&x" & identifier) , (string_literal ""%c%u"" " string_content ") , identifier , (pointer_expression "*piVar15" * identifier) ))) ;) }) while (parenthesized_expression "(iVar27 != iVar20 + 1)" ( (binary_expression "iVar27 != iVar20 + 1" identifier != (binary_expression "iVar20 + 1" identifier + number_literal)) )) ;) })) (expression_statement "pcVar18 = "]";" (assignment_expression "pcVar18 = "]"" identifier = (string_literal ""]"" " string_content ")) ;) (goto_statement "goto LAB_0008e812;" goto statement_identifier ;)) (case_statement "case 0xf2:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%lld";\n      break;" case number_literal : (expression_statement "uVar21 = **(undefined4 **)(pbVar2 + 0x10);" (assignment_expression "uVar21 = **(undefined4 **)(pbVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pbVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pbVar2 + 0x10)" * (cast_expression "(undefined4 **)(pbVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar18 = "%lld";" (assignment_expression "pcVar18 = "%lld"" identifier = (string_literal ""%lld"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xf3:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.16g";\n      break;" case number_literal : (expression_statement "uVar21 = **(undefined4 **)(pbVar2 + 0x10);" (assignment_expression "uVar21 = **(undefined4 **)(pbVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pbVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pbVar2 + 0x10)" * (cast_expression "(undefined4 **)(pbVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar18 = "%.16g";" (assignment_expression "pcVar18 = "%.16g"" identifier = (string_literal ""%.16g"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xf4:\n      uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);\n      pcVar18 = "vtab:%p";\n      break;" case number_literal : (expression_statement "uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8);" (assignment_expression "uVar21 = *(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8)" * (cast_expression "(undefined4 *)(*(int *)(pbVar2 + 0x10) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pbVar2 + 0x10) + 8)" ( (binary_expression "*(int *)(pbVar2 + 0x10) + 8" (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar18 = "vtab:%p";" (assignment_expression "pcVar18 = "vtab:%p"" identifier = (string_literal ""vtab:%p"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xf5:\n      puVar10 = *(undefined4 **)(pbVar2 + 0x10);\n      uVar6 = *(ushort *)(puVar10 + 2);\n      if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }\n      break;" case number_literal : (expression_statement "puVar10 = *(undefined4 **)(pbVar2 + 0x10);" (assignment_expression "puVar10 = *(undefined4 **)(pbVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(pbVar2 + 0x10)" * (cast_expression "(undefined4 **)(pbVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar6 = *(ushort *)(puVar10 + 2);" (assignment_expression "uVar6 = *(ushort *)(puVar10 + 2)" identifier = (pointer_expression "*(ushort *)(puVar10 + 2)" * (cast_expression "(ushort *)(puVar10 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + 2)" ( (binary_expression "puVar10 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((uVar6 & 2) != 0) {\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }" if (parenthesized_expression "((uVar6 & 2) != 0)" ( (binary_expression "(uVar6 & 2) != 0" (parenthesized_expression "(uVar6 & 2)" ( (binary_expression "uVar6 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar18 = (char *)puVar10[4];\n        goto LAB_0008e3c2;\n      }" { (expression_statement "pcVar18 = (char *)puVar10[4];" (assignment_expression "pcVar18 = (char *)puVar10[4]" identifier = (cast_expression "(char *)puVar10[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar10[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0008e3c2;" goto statement_identifier ;) })) (if_statement "if ((uVar6 & 0x24) == 0) {\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }\n      else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }" if (parenthesized_expression "((uVar6 & 0x24) == 0)" ( (binary_expression "(uVar6 & 0x24) == 0" (parenthesized_expression "(uVar6 & 0x24)" ( (binary_expression "uVar6 & 0x24" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar21 = *puVar10;\n        pcVar18 = "%.16g";\n      }" { (if_statement "if ((uVar6 & 8) == 0) {\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" if (parenthesized_expression "((uVar6 & 8) == 0)" ( (binary_expression "(uVar6 & 8) == 0" (parenthesized_expression "(uVar6 & 8)" ( (binary_expression "uVar6 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar18 = "(blob)";\n          if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" { (expression_statement "pcVar18 = "(blob)";" (assignment_expression "pcVar18 = "(blob)"" identifier = (string_literal ""(blob)"" " string_content ")) ;) (if_statement "if ((uVar6 & 1) != 0) {\n            pcVar18 = "NULL";\n          }" if (parenthesized_expression "((uVar6 & 1) != 0)" ( (binary_expression "(uVar6 & 1) != 0" (parenthesized_expression "(uVar6 & 1)" ( (binary_expression "uVar6 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            pcVar18 = "NULL";\n          }" { (expression_statement "pcVar18 = "NULL";" (assignment_expression "pcVar18 = "NULL"" identifier = (string_literal ""NULL"" " string_content ")) ;) })) (goto_statement "goto LAB_0008e59b;" goto statement_identifier ;) })) (expression_statement "uVar21 = *puVar10;" (assignment_expression "uVar21 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "pcVar18 = "%.16g";" (assignment_expression "pcVar18 = "%.16g"" identifier = (string_literal ""%.16g"" " string_content ")) ;) }) (else_clause "else {\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }" else (compound_statement "{\n        uVar21 = *puVar10;\n        pcVar18 = "%lld";\n      }" { (expression_statement "uVar21 = *puVar10;" (assignment_expression "uVar21 = *puVar10" identifier = (pointer_expression "*puVar10" * identifier)) ;) (expression_statement "pcVar18 = "%lld";" (assignment_expression "pcVar18 = "%lld"" identifier = (string_literal ""%lld"" " string_content ")) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n      pcVar18 = *(char **)(pbVar2 + 0x10);\n      goto LAB_0008e3c2;" default : (expression_statement "pcVar18 = *(char **)(pbVar2 + 0x10);" (assignment_expression "pcVar18 = *(char **)(pbVar2 + 0x10)" identifier = (pointer_expression "*(char **)(pbVar2 + 0x10)" * (cast_expression "(char **)(pbVar2 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0008e3c2;" goto statement_identifier ;)) (case_statement "case 0xf7:\n      iVar20 = *(int *)(pbVar2 + 0x10);\n      sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));\n      if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }\n      pcVar18 = ")";\nLAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);\n      bVar13 = x.accError & 7;\n      goto LAB_0008e5c0;" case number_literal : (expression_statement "iVar20 = *(int *)(pbVar2 + 0x10);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 0x10)" identifier = (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6));" (call_expression "sqlite3_str_appendf(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6))" identifier (argument_list "(&x,"k(%d",(uint)*(ushort *)(iVar20 + 6))" ( (pointer_expression "&x" & identifier) , (string_literal ""k(%d"" " string_content ") , (binary_expression "(uint)*(ushort *)(iVar20 + 6)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)(iVar20 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 6)" ( (binary_expression "iVar20 + 6" identifier + number_literal) )))) ))) ;) (if_statement "if (*(short *)(iVar20 + 6) != 0) {\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }" if (parenthesized_expression "(*(short *)(iVar20 + 6) != 0)" ( (binary_expression "*(short *)(iVar20 + 6) != 0" (pointer_expression "*(short *)(iVar20 + 6)" * (cast_expression "(short *)(iVar20 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 6)" ( (binary_expression "iVar20 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar27 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));\n      }" { (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) (expression_statement "pbVar1 = (byte *)0xab03d;" (assignment_expression "pbVar1 = (byte *)0xab03d" identifier = (cast_expression "(byte *)0xab03d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        } while (iVar27 < (int)(uint)*(ushort *)(iVar20 + 6));" do (compound_statement "{\n          puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);\n          bVar32 = false;\n          bVar33 = puVar10 == (undefined4 *)0x0;\n          pbVar19 = pbVar1;\n          if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }\n          bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);\n          pbVar26 = &DAT_000aadef;\n          if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }\n          pbVar22 = &DAT_000aa247;\n          if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }\n          iVar27 = iVar27 + 1;\n          sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);\n        }" { (expression_statement "puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4);" (assignment_expression "puVar10 = *(undefined4 **)(iVar20 + 0x14 + iVar27 * 4)" identifier = (pointer_expression "*(undefined4 **)(iVar20 + 0x14 + iVar27 * 4)" * (cast_expression "(undefined4 **)(iVar20 + 0x14 + iVar27 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar20 + 0x14 + iVar27 * 4)" ( (binary_expression "iVar20 + 0x14 + iVar27 * 4" (binary_expression "iVar20 + 0x14" identifier + number_literal) + (binary_expression "iVar27 * 4" identifier * number_literal)) ))))) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "bVar33 = puVar10 == (undefined4 *)0x0;" (assignment_expression "bVar33 = puVar10 == (undefined4 *)0x0" identifier = (binary_expression "puVar10 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar19 = pbVar1;" (assignment_expression "pbVar19 = pbVar1" identifier = identifier) ;) (if_statement "if (!bVar33) {\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }" if (parenthesized_expression "(!bVar33)" ( (unary_expression "!bVar33" ! identifier) )) (compound_statement "{\n            pbVar19 = (byte *)*puVar10;\n            iVar17 = 7;\n            pbVar26 = pbVar19;\n            pbVar22 = (byte *)"BINARY";\n            do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);\n            if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }\n          }" { (expression_statement "pbVar19 = (byte *)*puVar10;" (assignment_expression "pbVar19 = (byte *)*puVar10" identifier = (cast_expression "(byte *)*puVar10" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar10" * identifier))) ;) (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;) (expression_statement "pbVar26 = pbVar19;" (assignment_expression "pbVar26 = pbVar19" identifier = identifier) ;) (expression_statement "pbVar22 = (byte *)"BINARY";" (assignment_expression "pbVar22 = (byte *)"BINARY"" identifier = (cast_expression "(byte *)"BINARY"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""BINARY"" " string_content "))) ;) (do_statement "do {\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            } while (bVar33);" do (compound_statement "{\n              if (iVar17 == 0) break;\n              iVar17 = iVar17 + -1;\n              bVar32 = *pbVar26 < *pbVar22;\n              bVar33 = *pbVar26 == *pbVar22;\n              pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;\n              pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;\n            }" { (if_statement "if (iVar17 == 0) break;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar17 = iVar17 + -1;" (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ;) (expression_statement "bVar32 = *pbVar26 < *pbVar22;" (assignment_expression "bVar32 = *pbVar26 < *pbVar22" identifier = (binary_expression "*pbVar26 < *pbVar22" (pointer_expression "*pbVar26" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar33 = *pbVar26 == *pbVar22;" (assignment_expression "bVar33 = *pbVar26 == *pbVar22" identifier = (binary_expression "*pbVar26 == *pbVar22" (pointer_expression "*pbVar26" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar26 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar26 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar34 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar34 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar34 * -2" identifier + (binary_expression "(uint)bVar34 * -2" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar33)" ( identifier )) ;) (if_statement "if ((!bVar32 && !bVar33) == bVar32) {\n              pbVar19 = &DAT_000aa643;\n            }" if (parenthesized_expression "((!bVar32 && !bVar33) == bVar32)" ( (binary_expression "(!bVar32 && !bVar33) == bVar32" (parenthesized_expression "(!bVar32 && !bVar33)" ( (binary_expression "!bVar32 && !bVar33" (unary_expression "!bVar32" ! identifier) && (unary_expression "!bVar33" ! identifier)) )) == identifier) )) (compound_statement "{\n              pbVar19 = &DAT_000aa643;\n            }" { (expression_statement "pbVar19 = &DAT_000aa643;" (assignment_expression "pbVar19 = &DAT_000aa643" identifier = (pointer_expression "&DAT_000aa643" & identifier)) ;) })) })) (expression_statement "bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27);" (assignment_expression "bVar13 = *(byte *)(*(int *)(iVar20 + 0x10) + iVar27)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar20 + 0x10) + iVar27)" * (cast_expression "(byte *)(*(int *)(iVar20 + 0x10) + iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar20 + 0x10) + iVar27)" ( (binary_expression "*(int *)(iVar20 + 0x10) + iVar27" (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "pbVar26 = &DAT_000aadef;" (assignment_expression "pbVar26 = &DAT_000aadef" identifier = (pointer_expression "&DAT_000aadef" & identifier)) ;) (if_statement "if ((bVar13 & 2) == 0) {\n            pbVar26 = pbVar1;\n          }" if (parenthesized_expression "((bVar13 & 2) == 0)" ( (binary_expression "(bVar13 & 2) == 0" (parenthesized_expression "(bVar13 & 2)" ( (binary_expression "bVar13 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar26 = pbVar1;\n          }" { (expression_statement "pbVar26 = pbVar1;" (assignment_expression "pbVar26 = pbVar1" identifier = identifier) ;) })) (expression_statement "pbVar22 = &DAT_000aa247;" (assignment_expression "pbVar22 = &DAT_000aa247" identifier = (pointer_expression "&DAT_000aa247" & identifier)) ;) (if_statement "if ((bVar13 & 1) == 0) {\n            pbVar22 = pbVar1;\n          }" if (parenthesized_expression "((bVar13 & 1) == 0)" ( (binary_expression "(bVar13 & 1) == 0" (parenthesized_expression "(bVar13 & 1)" ( (binary_expression "bVar13 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar22 = pbVar1;\n          }" { (expression_statement "pbVar22 = pbVar1;" (assignment_expression "pbVar22 = pbVar1" identifier = identifier) ;) })) (expression_statement "iVar27 = iVar27 + 1;" (assignment_expression "iVar27 = iVar27 + 1" identifier = (binary_expression "iVar27 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19);" (call_expression "sqlite3_str_appendf(&x,",%s%s%s",pbVar22,pbVar26,pbVar19)" identifier (argument_list "(&x,",%s%s%s",pbVar22,pbVar26,pbVar19)" ( (pointer_expression "&x" & identifier) , (string_literal "",%s%s%s"" " string_content ") , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar27 < (int)(uint)*(ushort *)(iVar20 + 6))" ( (binary_expression "iVar27 < (int)(uint)*(ushort *)(iVar20 + 6)" identifier < (binary_expression "(int)(uint)*(ushort *)(iVar20 + 6)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar20 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 6)" ( (binary_expression "iVar20 + 6" identifier + number_literal) ))))) )) ;) })) (expression_statement "pcVar18 = ")";" (assignment_expression "pcVar18 = ")"" identifier = (string_literal "")"" " string_content ")) ;) (labeled_statement "LAB_0008e812:\n      sqlite3_str_append(&x,pcVar18,1);" statement_identifier : (expression_statement "sqlite3_str_append(&x,pcVar18,1);" (call_expression "sqlite3_str_append(&x,pcVar18,1)" identifier (argument_list "(&x,pcVar18,1)" ( (pointer_expression "&x" & identifier) , identifier , number_literal ))) ;)) (expression_statement "bVar13 = x.accError & 7;" (assignment_expression "bVar13 = x.accError & 7" identifier = (binary_expression "x.accError & 7" (field_expression "x.accError" identifier . field_identifier) & number_literal)) ;) (goto_statement "goto LAB_0008e5c0;" goto statement_identifier ;)) (case_statement "case 0xf8:\n      iVar20 = *(int *)(pbVar2 + 0x10);\nLAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);\n      pcVar18 = "%s(%d)";\n      break;" case number_literal : (expression_statement "iVar20 = *(int *)(pbVar2 + 0x10);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 0x10)" identifier = (pointer_expression "*(int *)(pbVar2 + 0x10)" * (cast_expression "(int *)(pbVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "LAB_0008e672:\n      uVar21 = *(undefined4 *)(iVar20 + 0x20);" statement_identifier : (expression_statement "uVar21 = *(undefined4 *)(iVar20 + 0x20);" (assignment_expression "uVar21 = *(undefined4 *)(iVar20 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar20 + 0x20)" * (cast_expression "(undefined4 *)(iVar20 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x20)" ( (binary_expression "iVar20 + 0x20" identifier + number_literal) ))))) ;)) (expression_statement "pcVar18 = "%s(%d)";" (assignment_expression "pcVar18 = "%s(%d)"" identifier = (string_literal ""%s(%d)"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xfa:\n      pcVar18 = (char *)**(int **)(pbVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }\n_L33039:\n      goto LAB_0008e3d0;" case number_literal : (expression_statement "pcVar18 = (char *)**(int **)(pbVar2 + 0x10);" (assignment_expression "pcVar18 = (char *)**(int **)(pbVar2 + 0x10)" identifier = (cast_expression "(char *)**(int **)(pbVar2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(int **)(pbVar2 + 0x10)" * (pointer_expression "*(int **)(pbVar2 + 0x10)" * (cast_expression "(int **)(pbVar2 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))))) ;) (labeled_statement "LAB_0008e3c2:\n      if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }" statement_identifier : (if_statement "if (pcVar18 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }" if (parenthesized_expression "(pcVar18 != (char *)0x0)" ( (binary_expression "pcVar18 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);\n        bVar13 = x.accError & 7;\n        goto LAB_0008e5c0;\n      }" { (labeled_statement "LAB_0008e59b:\n        sqlite3_str_appendall(&x,pcVar18);" statement_identifier : (expression_statement "sqlite3_str_appendall(&x,pcVar18);" (call_expression "sqlite3_str_appendall(&x,pcVar18)" identifier (argument_list "(&x,pcVar18)" ( (pointer_expression "&x" & identifier) , identifier ))) ;)) (expression_statement "bVar13 = x.accError & 7;" (assignment_expression "bVar13 = x.accError & 7" identifier = (binary_expression "x.accError & 7" (field_expression "x.accError" identifier . field_identifier) & number_literal)) ;) (goto_statement "goto LAB_0008e5c0;" goto statement_identifier ;) }))) (labeled_statement "_L33039:\n      goto LAB_0008e3d0;" statement_identifier : (goto_statement "goto LAB_0008e3d0;" goto statement_identifier ;))) (case_statement "case 0xfc:\n      pcVar18 = "program";\n      goto LAB_0008e59b;" case number_literal : (expression_statement "pcVar18 = "program";" (assignment_expression "pcVar18 = "program"" identifier = (string_literal ""program"" " string_content ")) ;) (goto_statement "goto LAB_0008e59b;" goto statement_identifier ;)) (case_statement "case 0xfd:\n      uVar21 = *(undefined4 *)(pbVar2 + 0x10);\n      pcVar18 = "%d";\n      break;" case number_literal : (expression_statement "uVar21 = *(undefined4 *)(pbVar2 + 0x10);" (assignment_expression "uVar21 = *(undefined4 *)(pbVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(pbVar2 + 0x10)" * (cast_expression "(undefined4 *)(pbVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar18 = "%d";" (assignment_expression "pcVar18 = "%d"" identifier = (string_literal ""%d"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case 0xfe:\n      uVar21 = **(undefined4 **)(pbVar2 + 0x10);\n      pcVar18 = "%.18s-%s";" case number_literal : (expression_statement "uVar21 = **(undefined4 **)(pbVar2 + 0x10);" (assignment_expression "uVar21 = **(undefined4 **)(pbVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pbVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pbVar2 + 0x10)" * (cast_expression "(undefined4 **)(pbVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pbVar2 + 0x10)" ( (binary_expression "pbVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar18 = "%.18s-%s";" (assignment_expression "pcVar18 = "%.18s-%s"" identifier = (string_literal ""%.18s-%s"" " string_content ")) ;)) })) (expression_statement "sqlite3_str_appendf(&x,pcVar18,uVar21);" (call_expression "sqlite3_str_appendf(&x,pcVar18,uVar21)" identifier (argument_list "(&x,pcVar18,uVar21)" ( (pointer_expression "&x" & identifier) , identifier , identifier ))) ;) (expression_statement "bVar13 = x.accError & 7;" (assignment_expression "bVar13 = x.accError & 7" identifier = (binary_expression "x.accError & 7" (field_expression "x.accError" identifier . field_identifier) & number_literal)) ;) (labeled_statement "LAB_0008e5c0:\n    if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }" statement_identifier : (if_statement "if ((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar7);\n    }" if (parenthesized_expression "((bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0))" ( (binary_expression "(bVar13 != 0) &&\n       (uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)" (parenthesized_expression "(bVar13 != 0)" ( (binary_expression "bVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0)" ( (comma_expression "uVar25._0_1_ = psVar7->temp_store, uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0" (assignment_expression "uVar25._0_1_ = psVar7->temp_store" (field_expression "uVar25._0_1_" identifier . field_identifier) = (field_expression "psVar7->temp_store" identifier -> field_identifier)) , (comma_expression "uVar25._1_1_ = psVar7->mallocFailed,\n       uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0" (assignment_expression "uVar25._1_1_ = psVar7->mallocFailed" (field_expression "uVar25._1_1_" identifier . field_identifier) = (field_expression "psVar7->mallocFailed" identifier -> field_identifier)) , (comma_expression "uVar25._2_1_ = psVar7->bBenignMalloc, uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0" (assignment_expression "uVar25._2_1_ = psVar7->bBenignMalloc" (field_expression "uVar25._2_1_" identifier . field_identifier) = (field_expression "psVar7->bBenignMalloc" identifier -> field_identifier)) , (comma_expression "uVar25._3_1_ = psVar7->dfltLockMode,\n       (uVar25 & 0xffff00) == 0" (assignment_expression "uVar25._3_1_ = psVar7->dfltLockMode" (field_expression "uVar25._3_1_" identifier . field_identifier) = (field_expression "psVar7->dfltLockMode" identifier -> field_identifier)) , (binary_expression "(uVar25 & 0xffff00) == 0" (parenthesized_expression "(uVar25 & 0xffff00)" ( (binary_expression "uVar25 & 0xffff00" identifier & number_literal) )) == number_literal))))) ))) )) (compound_statement "{\n      sqlite3OomFault(psVar7);\n    }" { (expression_statement "sqlite3OomFault(psVar7);" (call_expression "sqlite3OomFault(psVar7)" identifier (argument_list "(psVar7)" ( identifier ))) ;) }))) (labeled_statement "LAB_0008e3d0:\n    pcVar18 = sqlite3StrAccumFinish(&x);" statement_identifier : (expression_statement "pcVar18 = sqlite3StrAccumFinish(&x);" (assignment_expression "pcVar18 = sqlite3StrAccumFinish(&x)" identifier = (call_expression "sqlite3StrAccumFinish(&x)" identifier (argument_list "(&x)" ( (pointer_expression "&x" & identifier) )))) ;)) (if_statement "if (((byte)pStmt[0x8e] & 0xc) == 8) {\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }" if (parenthesized_expression "(((byte)pStmt[0x8e] & 0xc) == 8)" ( (binary_expression "((byte)pStmt[0x8e] & 0xc) == 8" (parenthesized_expression "((byte)pStmt[0x8e] & 0xc)" ( (binary_expression "(byte)pStmt[0x8e] & 0xc" (cast_expression "(byte)pStmt[0x8e]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pStmt[0x8e]" identifier [ number_literal ])) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 4;\n    }" { (expression_statement "iVar20 = *(int *)(pbVar2 + 4);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 4)" identifier = (pointer_expression "*(int *)(pbVar2 + 4)" * (cast_expression "(int *)(pbVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 4)" ( (binary_expression "pbVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x30) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x30)" * (cast_expression "(ushort *)(iVar14 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 0x28) = iVar20;\n        *(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 0x28) = iVar20;" (assignment_expression "*(int *)(iVar14 + 0x28) = iVar20" (pointer_expression "*(int *)(iVar14 + 0x28)" * (cast_expression "(int *)(iVar14 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x28)" ( (binary_expression "iVar14 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0x2c) = iVar20 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0x2c)" * (cast_expression "(int *)(iVar14 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x2c)" ( (binary_expression "iVar14 + 0x2c" identifier + number_literal) )))) = (binary_expression "iVar20 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0x30)" * (cast_expression "(undefined2 *)(iVar14 + 0x30)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4)" identifier (argument_list "(p_00,in_stack_fffffea4)" ( identifier , identifier ))) ;) }))) (expression_statement "iVar20 = *(int *)(pbVar2 + 8);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 8)" identifier = (pointer_expression "*(int *)(pbVar2 + 8)" * (cast_expression "(int *)(pbVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 8)" ( (binary_expression "pbVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x58) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x58) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x58) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x58) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x58)" * (cast_expression "(ushort *)(iVar14 + 0x58)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x58)" ( (binary_expression "iVar14 + 0x58" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 0x50) = iVar20;\n        *(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x58) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 0x50) = iVar20;" (assignment_expression "*(int *)(iVar14 + 0x50) = iVar20" (pointer_expression "*(int *)(iVar14 + 0x50)" * (cast_expression "(int *)(iVar14 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x50)" ( (binary_expression "iVar14 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar14 + 0x54) = iVar20 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0x54) = iVar20 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0x54)" * (cast_expression "(int *)(iVar14 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x54)" ( (binary_expression "iVar14 + 0x54" identifier + number_literal) )))) = (binary_expression "iVar20 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0x58) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0x58) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0x58)" * (cast_expression "(undefined2 *)(iVar14 + 0x58)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x58)" ( (binary_expression "iVar14 + 0x58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x50),in_stack_fffffea4)" identifier (argument_list "((Mem *)(iVar14 + 0x50),in_stack_fffffea4)" ( (cast_expression "(Mem *)(iVar14 + 0x50)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x50)" ( (binary_expression "iVar14 + 0x50" identifier + number_literal) ))) , identifier ))) ;) }))) (expression_statement "iVar20 = *(int *)(pbVar2 + 0xc);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 0xc)" identifier = (pointer_expression "*(int *)(pbVar2 + 0xc)" * (cast_expression "(int *)(pbVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0xc)" ( (binary_expression "pbVar2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x80) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x80)" * (cast_expression "(ushort *)(iVar14 + 0x80)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x80)" ( (binary_expression "iVar14 + 0x80" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 0x78) = iVar20;" (assignment_expression "*(int *)(iVar14 + 0x78) = iVar20" (pointer_expression "*(int *)(iVar14 + 0x78)" * (cast_expression "(int *)(iVar14 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x78)" ( (binary_expression "iVar14 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0x7c)" * (cast_expression "(int *)(iVar14 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x7c)" ( (binary_expression "iVar14 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar20 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0x80)" * (cast_expression "(undefined2 *)(iVar14 + 0x80)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x80)" ( (binary_expression "iVar14 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4)" identifier (argument_list "((Mem *)(iVar14 + 0x78),in_stack_fffffea4)" ( (cast_expression "(Mem *)(iVar14 + 0x78)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x78)" ( (binary_expression "iVar14 + 0x78" identifier + number_literal) ))) , identifier ))) ;) }))) (expression_statement "sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);" (call_expression "sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel)" identifier (argument_list "((Mem *)(iVar14 + 0xa0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel)" ( (cast_expression "(Mem *)(iVar14 + 0xa0)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa0)" ( (binary_expression "iVar14 + 0xa0" identifier + number_literal) ))) , identifier , number_literal , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)xDel" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "*(undefined2 *)(pStmt + 0x88) = 4;" (assignment_expression "*(undefined2 *)(pStmt + 0x88) = 4" (pointer_expression "*(undefined2 *)(pStmt + 0x88)" * (cast_expression "(undefined2 *)(pStmt + 0x88)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x88)" ( (binary_expression "pStmt + 0x88" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }" else (compound_statement "{\n      if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }\n      sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);\n      iVar20 = *(int *)(pbVar2 + 4);\n      if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 8);\n      if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }\n      iVar20 = *(int *)(pbVar2 + 0xc);\n      if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }\n      uVar6 = *(ushort *)(pbVar2 + 2);\n      if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }\n      if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }\n      sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);\n      *(undefined2 *)(pStmt + 0x88) = 8;\n    }" { (if_statement "if ((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x30) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x30) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x30)" * (cast_expression "(ushort *)(iVar14 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;\n        *(int *)(iVar14 + 0x28) = iVar16;\n        *(undefined2 *)(iVar14 + 0x30) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0x2c) = iVar16 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0x2c)" * (cast_expression "(int *)(iVar14 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x2c)" ( (binary_expression "iVar14 + 0x2c" identifier + number_literal) )))) = (binary_expression "iVar16 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(int *)(iVar14 + 0x28) = iVar16;" (assignment_expression "*(int *)(iVar14 + 0x28) = iVar16" (pointer_expression "*(int *)(iVar14 + 0x28)" * (cast_expression "(int *)(iVar14 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x28)" ( (binary_expression "iVar14 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(iVar14 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0x30)" * (cast_expression "(undefined2 *)(iVar14 + 0x30)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x30)" ( (binary_expression "iVar14 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64(p_00,in_stack_fffffea4)" identifier (argument_list "(p_00,in_stack_fffffea4)" ( identifier , identifier ))) ;) }))) (expression_statement "sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0);" (call_expression "sqlite3VdbeMemSetStr\n                ((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0)" identifier (argument_list "((Mem *)(iVar14 + 0x50),*(char **)(azName_15069 + (uint)*pbVar2 * 4),-1,'\x01',\n                 (_func_void_void_ptr *)0x0)" ( (cast_expression "(Mem *)(iVar14 + 0x50)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x50)" ( (binary_expression "iVar14 + 0x50" identifier + number_literal) ))) , (pointer_expression "*(char **)(azName_15069 + (uint)*pbVar2 * 4)" * (cast_expression "(char **)(azName_15069 + (uint)*pbVar2 * 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(azName_15069 + (uint)*pbVar2 * 4)" ( (binary_expression "azName_15069 + (uint)*pbVar2 * 4" identifier + (binary_expression "(uint)*pbVar2 * 4" (binary_expression "(uint)*pbVar2" (parenthesized_expression "(uint)" ( identifier )) * identifier) * number_literal)) )))) , number_literal , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)0x0" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "iVar20 = *(int *)(pbVar2 + 4);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 4)" identifier = (pointer_expression "*(int *)(pbVar2 + 4)" * (cast_expression "(int *)(pbVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 4)" ( (binary_expression "pbVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x80) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x80) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x80)" * (cast_expression "(ushort *)(iVar14 + 0x80)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x80)" ( (binary_expression "iVar14 + 0x80" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 0x78) = iVar20;\n        *(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0x80) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 0x78) = iVar20;" (assignment_expression "*(int *)(iVar14 + 0x78) = iVar20" (pointer_expression "*(int *)(iVar14 + 0x78)" * (cast_expression "(int *)(iVar14 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x78)" ( (binary_expression "iVar14 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0x7c) = iVar20 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0x7c)" * (cast_expression "(int *)(iVar14 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x7c)" ( (binary_expression "iVar14 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar20 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0x80)" * (cast_expression "(undefined2 *)(iVar14 + 0x80)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x80)" ( (binary_expression "iVar14 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x78),in_stack_fffffea4)" identifier (argument_list "((Mem *)(iVar14 + 0x78),in_stack_fffffea4)" ( (cast_expression "(Mem *)(iVar14 + 0x78)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x78)" ( (binary_expression "iVar14 + 0x78" identifier + number_literal) ))) , identifier ))) ;) }))) (expression_statement "iVar20 = *(int *)(pbVar2 + 8);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 8)" identifier = (pointer_expression "*(int *)(pbVar2 + 8)" * (cast_expression "(int *)(pbVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 8)" ( (binary_expression "pbVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0xa8) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0xa8) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0xa8) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0xa8)" * (cast_expression "(ushort *)(iVar14 + 0xa8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 0xa0) = iVar20;\n        *(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xa8) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 0xa0) = iVar20;" (assignment_expression "*(int *)(iVar14 + 0xa0) = iVar20" (pointer_expression "*(int *)(iVar14 + 0xa0)" * (cast_expression "(int *)(iVar14 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa0)" ( (binary_expression "iVar14 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0xa4) = iVar20 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0xa4)" * (cast_expression "(int *)(iVar14 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa4)" ( (binary_expression "iVar14 + 0xa4" identifier + number_literal) )))) = (binary_expression "iVar20 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0xa8) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0xa8) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0xa8)" * (cast_expression "(undefined2 *)(iVar14 + 0xa8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0xa0),in_stack_fffffea4)" identifier (argument_list "((Mem *)(iVar14 + 0xa0),in_stack_fffffea4)" ( (cast_expression "(Mem *)(iVar14 + 0xa0)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa0)" ( (binary_expression "iVar14 + 0xa0" identifier + number_literal) ))) , identifier ))) ;) }))) (expression_statement "iVar20 = *(int *)(pbVar2 + 0xc);" (assignment_expression "iVar20 = *(int *)(pbVar2 + 0xc)" identifier = (pointer_expression "*(int *)(pbVar2 + 0xc)" * (cast_expression "(int *)(pbVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 0xc)" ( (binary_expression "pbVar2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0xd0) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0xd0) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0xd0) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0xd0)" * (cast_expression "(ushort *)(iVar14 + 0xd0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd0)" ( (binary_expression "iVar14 + 0xd0" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar14 + 200) = iVar20;\n        *(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;\n        *(undefined2 *)(iVar14 + 0xd0) = 4;\n      }" { (expression_statement "*(int *)(iVar14 + 200) = iVar20;" (assignment_expression "*(int *)(iVar14 + 200) = iVar20" (pointer_expression "*(int *)(iVar14 + 200)" * (cast_expression "(int *)(iVar14 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 200)" ( (binary_expression "iVar14 + 200" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f;" (assignment_expression "*(int *)(iVar14 + 0xcc) = iVar20 >> 0x1f" (pointer_expression "*(int *)(iVar14 + 0xcc)" * (cast_expression "(int *)(iVar14 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xcc)" ( (binary_expression "iVar14 + 0xcc" identifier + number_literal) )))) = (binary_expression "iVar20 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0xd0) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0xd0) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0xd0)" * (cast_expression "(undefined2 *)(iVar14 + 0xd0)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xd0)" ( (binary_expression "iVar14 + 0xd0" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 200),in_stack_fffffea4)" identifier (argument_list "((Mem *)(iVar14 + 200),in_stack_fffffea4)" ( (cast_expression "(Mem *)(iVar14 + 200)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 200)" ( (binary_expression "iVar14 + 200" identifier + number_literal) ))) , identifier ))) ;) }))) (expression_statement "uVar6 = *(ushort *)(pbVar2 + 2);" (assignment_expression "uVar6 = *(ushort *)(pbVar2 + 2)" identifier = (pointer_expression "*(ushort *)(pbVar2 + 2)" * (cast_expression "(ushort *)(pbVar2 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar2 + 2)" ( (binary_expression "pbVar2 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }\n      else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x120) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x120) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x120) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x120) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x120)" * (cast_expression "(ushort *)(iVar14 + 0x120)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x120)" ( (binary_expression "iVar14 + 0x120" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(iVar14 + 0x11c) = 0;\n        *(uint *)(iVar14 + 0x118) = (uint)uVar6;\n        *(undefined2 *)(iVar14 + 0x120) = 4;\n      }" { (expression_statement "*(undefined4 *)(iVar14 + 0x11c) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x11c) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x11c)" * (cast_expression "(undefined4 *)(iVar14 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x11c)" ( (binary_expression "iVar14 + 0x11c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar14 + 0x118) = (uint)uVar6;" (assignment_expression "*(uint *)(iVar14 + 0x118) = (uint)uVar6" (pointer_expression "*(uint *)(iVar14 + 0x118)" * (cast_expression "(uint *)(iVar14 + 0x118)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x118)" ( (binary_expression "iVar14 + 0x118" identifier + number_literal) )))) = (cast_expression "(uint)uVar6" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined2 *)(iVar14 + 0x120) = 4;" (assignment_expression "*(undefined2 *)(iVar14 + 0x120) = 4" (pointer_expression "*(undefined2 *)(iVar14 + 0x120)" * (cast_expression "(undefined2 *)(iVar14 + 0x120)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x120)" ( (binary_expression "iVar14 + 0x120" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }" else (compound_statement "{\n        vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);\n      }" { (expression_statement "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4);" (call_expression "vdbeReleaseAndSetInt64((Mem *)(iVar14 + 0x118),in_stack_fffffea4)" identifier (argument_list "((Mem *)(iVar14 + 0x118),in_stack_fffffea4)" ( (cast_expression "(Mem *)(iVar14 + 0x118)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x118)" ( (binary_expression "iVar14 + 0x118" identifier + number_literal) ))) , identifier ))) ;) }))) (if_statement "if ((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }\n      else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }" if (parenthesized_expression "((*(ushort *)(iVar14 + 0x148) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar14 + 0x148) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar14 + 0x148) & 0x2400)" ( (binary_expression "*(ushort *)(iVar14 + 0x148) & 0x2400" (pointer_expression "*(ushort *)(iVar14 + 0x148)" * (cast_expression "(ushort *)(iVar14 + 0x148)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x148)" ( (binary_expression "iVar14 + 0x148" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined2 *)(iVar14 + 0x148) = 1;\n      }" { (expression_statement "*(undefined2 *)(iVar14 + 0x148) = 1;" (assignment_expression "*(undefined2 *)(iVar14 + 0x148) = 1" (pointer_expression "*(undefined2 *)(iVar14 + 0x148)" * (cast_expression "(undefined2 *)(iVar14 + 0x148)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x148)" ( (binary_expression "iVar14 + 0x148" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }" else (compound_statement "{\n        vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));\n      }" { (expression_statement "vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140));" (call_expression "vdbeMemClearExternAndSetNull((Mem *)(iVar14 + 0x140))" identifier (argument_list "((Mem *)(iVar14 + 0x140))" ( (cast_expression "(Mem *)(iVar14 + 0x140)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x140)" ( (binary_expression "iVar14 + 0x140" identifier + number_literal) ))) ))) ;) }))) (expression_statement "sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel);" (call_expression "sqlite3VdbeMemSetStr((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel)" identifier (argument_list "((Mem *)(iVar14 + 0xf0),pcVar18,-1,'\x01',(_func_void_void_ptr *)xDel)" ( (cast_expression "(Mem *)(iVar14 + 0xf0)" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xf0)" ( (binary_expression "iVar14 + 0xf0" identifier + number_literal) ))) , identifier , number_literal , (char_literal "'\x01'" ' escape_sequence ') , (cast_expression "(_func_void_void_ptr *)xDel" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "*(undefined2 *)(pStmt + 0x88) = 8;" (assignment_expression "*(undefined2 *)(pStmt + 0x88) = 8" (pointer_expression "*(undefined2 *)(pStmt + 0x88)" * (cast_expression "(undefined2 *)(pStmt + 0x88)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x88)" ( (binary_expression "pStmt + 0x88" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "*(Mem **)(pStmt + 0x74) = p_00;" (assignment_expression "*(Mem **)(pStmt + 0x74) = p_00" (pointer_expression "*(Mem **)(pStmt + 0x74)" * (cast_expression "(Mem **)(pStmt + 0x74)" ( (type_descriptor "Mem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x74)" ( (binary_expression "pStmt + 0x74" identifier + number_literal) )))) = identifier) ;) (if_statement "if (psVar7->mallocFailed == '\0') {\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }" if (parenthesized_expression "(psVar7->mallocFailed == '\0')" ( (binary_expression "psVar7->mallocFailed == '\0'" (field_expression "psVar7->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      *(undefined4 *)(pStmt + 0x28) = 0;\n      local_148 = (Mem *)0x0;\n      bVar32 = false;\n      uVar31 = 100;\n    }" { (expression_statement "*(undefined4 *)(pStmt + 0x28) = 0;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 0" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_148 = (Mem *)0x0;" (assignment_expression "local_148 = (Mem *)0x0" identifier = (cast_expression "(Mem *)0x0" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar32 = false;" (assignment_expression "bVar32 = false" identifier = false) ;) (expression_statement "uVar31 = 100;" (assignment_expression "uVar31 = 100" identifier = number_literal) ;) }) (else_clause "else {\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }" else (compound_statement "{\n      *(undefined4 *)(pStmt + 0x28) = 7;\nLAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);\n      if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }\nLAB_0008e157:\n      uVar31 = 1;\nLAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }\nLAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);\n      bVar32 = local_148 == (Mem *)0xc0a;\n    }" { (expression_statement "*(undefined4 *)(pStmt + 0x28) = 7;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 7" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (labeled_statement "LAB_0008e141:\n      iVar14 = *(int *)(pStmt + 0x84);" statement_identifier : (expression_statement "iVar14 = *(int *)(pStmt + 0x84);" (assignment_expression "iVar14 = *(int *)(pStmt + 0x84)" identifier = (pointer_expression "*(int *)(pStmt + 0x84)" * (cast_expression "(int *)(pStmt + 0x84)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x84)" ( (binary_expression "pStmt + 0x84" identifier + number_literal) ))))) ;)) (if_statement "if (-1 < iVar14) {\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }" if (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) (compound_statement "{\njoined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }\n      }" { (labeled_statement "joined_r0x0008e183:\n        if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }" statement_identifier : (if_statement "if ((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)) {\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }" if (parenthesized_expression "((0 < iVar14) || (*(int *)(pStmt + 0x80) != 0))" ( (binary_expression "(0 < iVar14) || (*(int *)(pStmt + 0x80) != 0)" (parenthesized_expression "(0 < iVar14)" ( (binary_expression "0 < iVar14" number_literal < identifier) )) || (parenthesized_expression "(*(int *)(pStmt + 0x80) != 0)" ( (binary_expression "*(int *)(pStmt + 0x80) != 0" (pointer_expression "*(int *)(pStmt + 0x80)" * (cast_expression "(int *)(pStmt + 0x80)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x80)" ( (binary_expression "pStmt + 0x80" identifier + number_literal) )))) != number_literal) ))) )) (compound_statement "{\n          invokeProfileCallback(psVar28,(Vdbe *)pStmt);\n        }" { (expression_statement "invokeProfileCallback(psVar28,(Vdbe *)pStmt);" (call_expression "invokeProfileCallback(psVar28,(Vdbe *)pStmt)" identifier (argument_list "(psVar28,(Vdbe *)pStmt)" ( identifier , (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) })) (labeled_statement "LAB_0008e157:\n      uVar31 = 1;" statement_identifier : (expression_statement "uVar31 = 1;" (assignment_expression "uVar31 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_0008e15c:\n      if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }" statement_identifier : (if_statement "if ((char)pStmt[0x8c] < '\0') {\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }" if (parenthesized_expression "((char)pStmt[0x8c] < '\0')" ( (binary_expression "(char)pStmt[0x8c] < '\0'" (cast_expression "(char)pStmt[0x8c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pStmt[0x8c]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);\n      }" { (expression_statement "uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt);" (assignment_expression "uVar31 = sqlite3VdbeTransferError((Vdbe *)pStmt)" identifier = (call_expression "sqlite3VdbeTransferError((Vdbe *)pStmt)" identifier (argument_list "((Vdbe *)pStmt)" ( (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) }))) (labeled_statement "LAB_0008dc84:\n      local_148 = *(Mem **)(pStmt + 0x28);" statement_identifier : (expression_statement "local_148 = *(Mem **)(pStmt + 0x28);" (assignment_expression "local_148 = *(Mem **)(pStmt + 0x28)" identifier = (pointer_expression "*(Mem **)(pStmt + 0x28)" * (cast_expression "(Mem **)(pStmt + 0x28)" ( (type_descriptor "Mem **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) ))))) ;)) (expression_statement "bVar32 = local_148 == (Mem *)0xc0a;" (assignment_expression "bVar32 = local_148 == (Mem *)0xc0a" identifier = (binary_expression "local_148 == (Mem *)0xc0a" identifier == (cast_expression "(Mem *)0xc0a" ( (type_descriptor "Mem *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) }))) (labeled_statement "LAB_0008dc90:\n    psVar28->errCode = uVar31;" statement_identifier : (expression_statement "psVar28->errCode = uVar31;" (assignment_expression "psVar28->errCode = uVar31" (field_expression "psVar28->errCode" identifier -> field_identifier) = identifier) ;)) (expression_statement "psVar7 = *(sqlite3 **)pStmt;" (assignment_expression "psVar7 = *(sqlite3 **)pStmt" identifier = (pointer_expression "*(sqlite3 **)pStmt" * (cast_expression "(sqlite3 **)pStmt" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((psVar7->mallocFailed != '\0') || (bVar32)) {\n      uVar25 = apiOomError(psVar7);\n    }\n    else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }" if (parenthesized_expression "((psVar7->mallocFailed != '\0') || (bVar32))" ( (binary_expression "(psVar7->mallocFailed != '\0') || (bVar32)" (parenthesized_expression "(psVar7->mallocFailed != '\0')" ( (binary_expression "psVar7->mallocFailed != '\0'" (field_expression "psVar7->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar32)" ( identifier ))) )) (compound_statement "{\n      uVar25 = apiOomError(psVar7);\n    }" { (expression_statement "uVar25 = apiOomError(psVar7);" (assignment_expression "uVar25 = apiOomError(psVar7)" identifier = (call_expression "apiOomError(psVar7)" identifier (argument_list "(psVar7)" ( identifier )))) ;) }) (else_clause "else {\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }" else (compound_statement "{\n      uVar25 = (uint)local_148 & psVar7->errMask;\n    }" { (expression_statement "uVar25 = (uint)local_148 & psVar7->errMask;" (assignment_expression "uVar25 = (uint)local_148 & psVar7->errMask" identifier = (binary_expression "(uint)local_148 & psVar7->errMask" (cast_expression "(uint)local_148" ( (type_descriptor "uint" type_identifier) ) identifier) & (field_expression "psVar7->errMask" identifier -> field_identifier))) ;) }))) (if_statement "if ((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')) {\n      uVar31 = 7;\n    }" if (parenthesized_expression "((uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0'))" ( (binary_expression "(uVar25 == 7) && (*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')" (parenthesized_expression "(uVar25 == 7)" ( (binary_expression "uVar25 == 7" identifier == number_literal) )) && (parenthesized_expression "(*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0')" ( (comma_expression "*(undefined4 *)(pStmt + 0x28) = 7, (char)pStmt[0x8c] < '\0'" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 7" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) , (binary_expression "(char)pStmt[0x8c] < '\0'" (cast_expression "(char)pStmt[0x8c]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "pStmt[0x8c]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      uVar31 = 7;\n    }" { (expression_statement "uVar31 = 7;" (assignment_expression "uVar31 = 7" identifier = number_literal) ;) })) (labeled_statement "LAB_0008dcc7:\n    uVar31 = uVar31 & psVar28->errMask;" statement_identifier : (expression_statement "uVar31 = uVar31 & psVar28->errMask;" (assignment_expression "uVar31 = uVar31 & psVar28->errMask" identifier = (binary_expression "uVar31 & psVar28->errMask" identifier & (field_expression "psVar28->errMask" identifier -> field_identifier))) ;)) (if_statement "if ((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;" if (parenthesized_expression "((uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0))" ( (binary_expression "(uVar31 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)" (parenthesized_expression "(uVar31 != 0x11)" ( (binary_expression "uVar31 != 0x11" identifier != number_literal) )) || (parenthesized_expression "(local_138 = local_138 + -1, local_138 == 0)" ( (comma_expression "local_138 = local_138 + -1, local_138 == 0" (assignment_expression "local_138 = local_138 + -1" identifier = (binary_expression "local_138 + -1" identifier + number_literal)) , (binary_expression "local_138 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0008dc24;" goto statement_identifier ;)) (expression_statement "iVar14 = *(int *)(pStmt + 0x24);" (assignment_expression "iVar14 = *(int *)(pStmt + 0x24)" identifier = (pointer_expression "*(int *)(pStmt + 0x24)" * (cast_expression "(int *)(pStmt + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x24)" ( (binary_expression "pStmt + 0x24" identifier + number_literal) ))))) ;) (expression_statement "pcVar18 = sqlite3_sql(pStmt);" (assignment_expression "pcVar18 = sqlite3_sql(pStmt)" identifier = (call_expression "sqlite3_sql(pStmt)" identifier (argument_list "(pStmt)" ( identifier )))) ;) (expression_statement "psVar28 = *(sqlite3 **)pStmt;" (assignment_expression "psVar28 = *(sqlite3 **)pStmt" identifier = (pointer_expression "*(sqlite3 **)pStmt" * (cast_expression "(sqlite3 **)pStmt" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0);" (assignment_expression "uVar31 = sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0)" identifier = (call_expression "sqlite3LockAndPrepare\n                       (psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0)" identifier (argument_list "(psVar28,pcVar18,-1,(uint)(byte)pStmt[0x8c],(Vdbe *)pStmt,(sqlite3_stmt **)&x\n                        ,(char **)0x0)" ( identifier , identifier , number_literal , (cast_expression "(uint)(byte)pStmt[0x8c]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)pStmt[0x8c]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pStmt[0x8c]" identifier [ number_literal ]))) , (cast_expression "(Vdbe *)pStmt" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(sqlite3_stmt **)&x" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&x" & identifier)) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (if_statement "if (uVar31 == 0) {\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }" if (parenthesized_expression "(uVar31 == 0)" ( (binary_expression "uVar31 == 0" identifier == number_literal) )) (compound_statement "{\n      psVar28 = x.db;\n      pVVar30 = &tmp;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }\n      psVar29 = pStmt;\n      psVar28 = x.db;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }\n      pVVar30 = &tmp;\n      psVar29 = pStmt;\n      for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }\n      pCVar8 = (x.db)->pDfltColl;\n      (x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);\n      *(CollSeq **)(pStmt + 8) = pCVar8;\n      pVVar30 = (x.db)->pVdbe;\n      (x.db)->pVdbe = *(Vdbe **)(pStmt + 4);\n      *(Vdbe **)(pStmt + 4) = pVVar30;\n      iVar20 = (x.db)->nVdbeExec;\n      (x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);\n      *(int *)(pStmt + 0xb4) = iVar20;\n      *(void **)(pStmt + 200) = (x.db)->pTraceArg;\n      pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);\n      *(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;\n      *(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;\n      *(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;\n      *(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;\n      *(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;\n      *(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;\n      iVar20 = (x.db)->nVdbeWrite;\n      *(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;\n      *(int *)(pStmt + 0xb0) = iVar20;\n      sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);\n      *(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;\n      sqlite3VdbeFinalize((Vdbe *)x.db);\n      sqlite3_reset(pStmt);\n      if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }\n      goto LAB_0008da88;\n    }" { (expression_statement "psVar28 = x.db;" (assignment_expression "psVar28 = x.db" identifier = (field_expression "x.db" identifier . field_identifier)) ;) (expression_statement "pVVar30 = &tmp;" (assignment_expression "pVVar30 = &tmp" identifier = (pointer_expression "&tmp" & identifier)) ;) (for_statement "for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }" for ( (assignment_expression "iVar20 = 0x35" identifier = number_literal) ; (binary_expression "iVar20 != 0" identifier != number_literal) ; (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ) (compound_statement "{\n        pVVar30->db = (sqlite3 *)psVar28->pVfs;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n      }" { (expression_statement "pVVar30->db = (sqlite3 *)psVar28->pVfs;" (assignment_expression "pVVar30->db = (sqlite3 *)psVar28->pVfs" (field_expression "pVVar30->db" identifier -> field_identifier) = (cast_expression "(sqlite3 *)psVar28->pVfs" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "psVar28->pVfs" identifier -> field_identifier))) ;) (expression_statement "psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);" (assignment_expression "psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4)" identifier = (cast_expression "(sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar28 + (uint)bVar34 * -8 + 4)" ( (binary_expression "(int)psVar28 + (uint)bVar34 * -8 + 4" (binary_expression "(int)psVar28 + (uint)bVar34 * -8" (cast_expression "(int)psVar28" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -8" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);" (assignment_expression "pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4)" identifier = (cast_expression "(Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pVVar30 + (uint)bVar34 * -8 + 4)" ( (binary_expression "(int)pVVar30 + (uint)bVar34 * -8 + 4" (binary_expression "(int)pVVar30 + (uint)bVar34 * -8" (cast_expression "(int)pVVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -8" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "psVar29 = pStmt;" (assignment_expression "psVar29 = pStmt" identifier = identifier) ;) (expression_statement "psVar28 = x.db;" (assignment_expression "psVar28 = x.db" identifier = (field_expression "x.db" identifier . field_identifier)) ;) (for_statement "for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }" for ( (assignment_expression "iVar20 = 0x35" identifier = number_literal) ; (binary_expression "iVar20 != 0" identifier != number_literal) ; (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ) (compound_statement "{\n        psVar28->pVfs = *(sqlite3_vfs **)psVar29;\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n        psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);\n      }" { (expression_statement "psVar28->pVfs = *(sqlite3_vfs **)psVar29;" (assignment_expression "psVar28->pVfs = *(sqlite3_vfs **)psVar29" (field_expression "psVar28->pVfs" identifier -> field_identifier) = (pointer_expression "*(sqlite3_vfs **)psVar29" * (cast_expression "(sqlite3_vfs **)psVar29" ( (type_descriptor "sqlite3_vfs **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "psVar29 = psVar29 + (uint)bVar34 * -8 + 4;" (assignment_expression "psVar29 = psVar29 + (uint)bVar34 * -8 + 4" identifier = (binary_expression "psVar29 + (uint)bVar34 * -8 + 4" (binary_expression "psVar29 + (uint)bVar34 * -8" identifier + (binary_expression "(uint)bVar34 * -8" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4);" (assignment_expression "psVar28 = (sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4)" identifier = (cast_expression "(sqlite3 *)((int)psVar28 + (uint)bVar34 * -8 + 4)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)psVar28 + (uint)bVar34 * -8 + 4)" ( (binary_expression "(int)psVar28 + (uint)bVar34 * -8 + 4" (binary_expression "(int)psVar28 + (uint)bVar34 * -8" (cast_expression "(int)psVar28" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -8" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (expression_statement "pVVar30 = &tmp;" (assignment_expression "pVVar30 = &tmp" identifier = (pointer_expression "&tmp" & identifier)) ;) (expression_statement "psVar29 = pStmt;" (assignment_expression "psVar29 = pStmt" identifier = identifier) ;) (for_statement "for (iVar20 = 0x35; iVar20 != 0; iVar20 = iVar20 + -1) {\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }" for ( (assignment_expression "iVar20 = 0x35" identifier = number_literal) ; (binary_expression "iVar20 != 0" identifier != number_literal) ; (assignment_expression "iVar20 = iVar20 + -1" identifier = (binary_expression "iVar20 + -1" identifier + number_literal)) ) (compound_statement "{\n        *(sqlite3 **)psVar29 = pVVar30->db;\n        pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);\n        psVar29 = psVar29 + (uint)bVar34 * -8 + 4;\n      }" { (expression_statement "*(sqlite3 **)psVar29 = pVVar30->db;" (assignment_expression "*(sqlite3 **)psVar29 = pVVar30->db" (pointer_expression "*(sqlite3 **)psVar29" * (cast_expression "(sqlite3 **)psVar29" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) = (field_expression "pVVar30->db" identifier -> field_identifier)) ;) (expression_statement "pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4);" (assignment_expression "pVVar30 = (Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4)" identifier = (cast_expression "(Vdbe *)((int)pVVar30 + (uint)bVar34 * -8 + 4)" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pVVar30 + (uint)bVar34 * -8 + 4)" ( (binary_expression "(int)pVVar30 + (uint)bVar34 * -8 + 4" (binary_expression "(int)pVVar30 + (uint)bVar34 * -8" (cast_expression "(int)pVVar30" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar34 * -8" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "psVar29 = psVar29 + (uint)bVar34 * -8 + 4;" (assignment_expression "psVar29 = psVar29 + (uint)bVar34 * -8 + 4" identifier = (binary_expression "psVar29 + (uint)bVar34 * -8 + 4" (binary_expression "psVar29 + (uint)bVar34 * -8" identifier + (binary_expression "(uint)bVar34 * -8" (cast_expression "(uint)bVar34" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "pCVar8 = (x.db)->pDfltColl;" (assignment_expression "pCVar8 = (x.db)->pDfltColl" identifier = (field_expression "(x.db)->pDfltColl" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "(x.db)->pDfltColl = *(CollSeq **)(pStmt + 8);" (assignment_expression "(x.db)->pDfltColl = *(CollSeq **)(pStmt + 8)" (field_expression "(x.db)->pDfltColl" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) = (pointer_expression "*(CollSeq **)(pStmt + 8)" * (cast_expression "(CollSeq **)(pStmt + 8)" ( (type_descriptor "CollSeq **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 8)" ( (binary_expression "pStmt + 8" identifier + number_literal) ))))) ;) (expression_statement "*(CollSeq **)(pStmt + 8) = pCVar8;" (assignment_expression "*(CollSeq **)(pStmt + 8) = pCVar8" (pointer_expression "*(CollSeq **)(pStmt + 8)" * (cast_expression "(CollSeq **)(pStmt + 8)" ( (type_descriptor "CollSeq **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 8)" ( (binary_expression "pStmt + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "pVVar30 = (x.db)->pVdbe;" (assignment_expression "pVVar30 = (x.db)->pVdbe" identifier = (field_expression "(x.db)->pVdbe" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "(x.db)->pVdbe = *(Vdbe **)(pStmt + 4);" (assignment_expression "(x.db)->pVdbe = *(Vdbe **)(pStmt + 4)" (field_expression "(x.db)->pVdbe" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) = (pointer_expression "*(Vdbe **)(pStmt + 4)" * (cast_expression "(Vdbe **)(pStmt + 4)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 4)" ( (binary_expression "pStmt + 4" identifier + number_literal) ))))) ;) (expression_statement "*(Vdbe **)(pStmt + 4) = pVVar30;" (assignment_expression "*(Vdbe **)(pStmt + 4) = pVVar30" (pointer_expression "*(Vdbe **)(pStmt + 4)" * (cast_expression "(Vdbe **)(pStmt + 4)" ( (type_descriptor "Vdbe **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 4)" ( (binary_expression "pStmt + 4" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar20 = (x.db)->nVdbeExec;" (assignment_expression "iVar20 = (x.db)->nVdbeExec" identifier = (field_expression "(x.db)->nVdbeExec" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "(x.db)->nVdbeExec = *(int *)(pStmt + 0xb4);" (assignment_expression "(x.db)->nVdbeExec = *(int *)(pStmt + 0xb4)" (field_expression "(x.db)->nVdbeExec" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) = (pointer_expression "*(int *)(pStmt + 0xb4)" * (cast_expression "(int *)(pStmt + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xb4)" ( (binary_expression "pStmt + 0xb4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pStmt + 0xb4) = iVar20;" (assignment_expression "*(int *)(pStmt + 0xb4) = iVar20" (pointer_expression "*(int *)(pStmt + 0xb4)" * (cast_expression "(int *)(pStmt + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xb4)" ( (binary_expression "pStmt + 0xb4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(void **)(pStmt + 200) = (x.db)->pTraceArg;" (assignment_expression "*(void **)(pStmt + 200) = (x.db)->pTraceArg" (pointer_expression "*(void **)(pStmt + 200)" * (cast_expression "(void **)(pStmt + 200)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 200)" ( (binary_expression "pStmt + 200" identifier + number_literal) )))) = (field_expression "(x.db)->pTraceArg" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9);" (assignment_expression "pStmt[0x8c] = *(sqlite3_stmt *)((x.db)->aLimit + 9)" (subscript_expression "pStmt[0x8c]" identifier [ number_literal ]) = (pointer_expression "*(sqlite3_stmt *)((x.db)->aLimit + 9)" * (cast_expression "(sqlite3_stmt *)((x.db)->aLimit + 9)" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((x.db)->aLimit + 9)" ( (binary_expression "(x.db)->aLimit + 9" (field_expression "(x.db)->aLimit" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) + number_literal) ))))) ;) (expression_statement "*(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap;" (assignment_expression "*(int *)(pStmt + 0x98) = (x.db)->nMaxSorterMmap" (pointer_expression "*(int *)(pStmt + 0x98)" * (cast_expression "(int *)(pStmt + 0x98)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x98)" ( (binary_expression "pStmt + 0x98" identifier + number_literal) )))) = (field_expression "(x.db)->nMaxSorterMmap" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "*(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum;" (assignment_expression "*(Pgno *)(pStmt + 0x9c) = ((x.db)->init).newTnum" (pointer_expression "*(Pgno *)(pStmt + 0x9c)" * (cast_expression "(Pgno *)(pStmt + 0x9c)" ( (type_descriptor "Pgno *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x9c)" ( (binary_expression "pStmt + 0x9c" identifier + number_literal) )))) = (field_expression "((x.db)->init).newTnum" (parenthesized_expression "((x.db)->init)" ( (field_expression "(x.db)->init" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb;" (assignment_expression "*(undefined4 *)(pStmt + 0xa0) = *(undefined4 *)&((x.db)->init).iDb" (pointer_expression "*(undefined4 *)(pStmt + 0xa0)" * (cast_expression "(undefined4 *)(pStmt + 0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xa0)" ( (binary_expression "pStmt + 0xa0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)&((x.db)->init).iDb" * (cast_expression "(undefined4 *)&((x.db)->init).iDb" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&((x.db)->init).iDb" & (field_expression "((x.db)->init).iDb" (parenthesized_expression "((x.db)->init)" ( (field_expression "(x.db)->init" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) )) . field_identifier))))) ;) (expression_statement "*(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit;" (assignment_expression "*(char ***)(pStmt + 0xa4) = ((x.db)->init).azInit" (pointer_expression "*(char ***)(pStmt + 0xa4)" * (cast_expression "(char ***)(pStmt + 0xa4)" ( (type_descriptor "char ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pStmt + 0xa4)" ( (binary_expression "pStmt + 0xa4" identifier + number_literal) )))) = (field_expression "((x.db)->init).azInit" (parenthesized_expression "((x.db)->init)" ( (field_expression "(x.db)->init" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier) )) . field_identifier)) ;) (expression_statement "*(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive;" (assignment_expression "*(int *)(pStmt + 0xa8) = (x.db)->nVdbeActive" (pointer_expression "*(int *)(pStmt + 0xa8)" * (cast_expression "(int *)(pStmt + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xa8)" ( (binary_expression "pStmt + 0xa8" identifier + number_literal) )))) = (field_expression "(x.db)->nVdbeActive" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "*(int *)(pStmt + 0xac) = (x.db)->nVdbeRead;" (assignment_expression "*(int *)(pStmt + 0xac) = (x.db)->nVdbeRead" (pointer_expression "*(int *)(pStmt + 0xac)" * (cast_expression "(int *)(pStmt + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xac)" ( (binary_expression "pStmt + 0xac" identifier + number_literal) )))) = (field_expression "(x.db)->nVdbeRead" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "iVar20 = (x.db)->nVdbeWrite;" (assignment_expression "iVar20 = (x.db)->nVdbeWrite" identifier = (field_expression "(x.db)->nVdbeWrite" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier)) ;) (expression_statement "*(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1;" (assignment_expression "*(int *)(pStmt + 0xac) = *(int *)(pStmt + 0xac) + 1" (pointer_expression "*(int *)(pStmt + 0xac)" * (cast_expression "(int *)(pStmt + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xac)" ( (binary_expression "pStmt + 0xac" identifier + number_literal) )))) = (binary_expression "*(int *)(pStmt + 0xac) + 1" (pointer_expression "*(int *)(pStmt + 0xac)" * (cast_expression "(int *)(pStmt + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xac)" ( (binary_expression "pStmt + 0xac" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "*(int *)(pStmt + 0xb0) = iVar20;" (assignment_expression "*(int *)(pStmt + 0xb0) = iVar20" (pointer_expression "*(int *)(pStmt + 0xb0)" * (cast_expression "(int *)(pStmt + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0xb0)" ( (binary_expression "pStmt + 0xb0" identifier + number_literal) )))) = identifier) ;) (expression_statement "sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt);" (call_expression "sqlite3TransferBindings((sqlite3_stmt *)x.db,pStmt)" identifier (argument_list "((sqlite3_stmt *)x.db,pStmt)" ( (cast_expression "(sqlite3_stmt *)x.db" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "x.db" identifier . field_identifier)) , identifier ))) ;) (expression_statement "*(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0;" (assignment_expression "*(undefined4 *)((int)&(x.db)->lastRowid + 4) = 0" (pointer_expression "*(undefined4 *)((int)&(x.db)->lastRowid + 4)" * (cast_expression "(undefined4 *)((int)&(x.db)->lastRowid + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(x.db)->lastRowid + 4)" ( (binary_expression "(int)&(x.db)->lastRowid + 4" (cast_expression "(int)&(x.db)->lastRowid" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(x.db)->lastRowid" & (field_expression "(x.db)->lastRowid" (parenthesized_expression "(x.db)" ( (field_expression "x.db" identifier . field_identifier) )) -> field_identifier))) + number_literal) )))) = number_literal) ;) (expression_statement "sqlite3VdbeFinalize((Vdbe *)x.db);" (call_expression "sqlite3VdbeFinalize((Vdbe *)x.db)" identifier (argument_list "((Vdbe *)x.db)" ( (cast_expression "(Vdbe *)x.db" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "x.db" identifier . field_identifier)) ))) ;) (expression_statement "sqlite3_reset(pStmt);" (call_expression "sqlite3_reset(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) (if_statement "if (-1 < iVar14) {\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }" if (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) (compound_statement "{\n        pStmt[0x8d] = (sqlite3_stmt)0x1;\n      }" { (expression_statement "pStmt[0x8d] = (sqlite3_stmt)0x1;" (assignment_expression "pStmt[0x8d] = (sqlite3_stmt)0x1" (subscript_expression "pStmt[0x8d]" identifier [ number_literal ]) = (cast_expression "(sqlite3_stmt)0x1" ( (type_descriptor "sqlite3_stmt" type_identifier) ) number_literal)) ;) })) (goto_statement "goto LAB_0008da88;" goto statement_identifier ;) })) (if_statement "if ((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)) {\n      sqlite3OomFault(psVar28);\n    }" if (parenthesized_expression "((uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0))" ( (binary_expression "(uVar31 == 7) &&\n       (uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)" (parenthesized_expression "(uVar31 == 7)" ( (binary_expression "uVar31 == 7" identifier == number_literal) )) && (parenthesized_expression "(uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0)" ( (comma_expression "uVar11._0_1_ = psVar28->temp_store, uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0" (assignment_expression "uVar11._0_1_ = psVar28->temp_store" (field_expression "uVar11._0_1_" identifier . field_identifier) = (field_expression "psVar28->temp_store" identifier -> field_identifier)) , (comma_expression "uVar11._1_1_ = psVar28->mallocFailed,\n       uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0" (assignment_expression "uVar11._1_1_ = psVar28->mallocFailed" (field_expression "uVar11._1_1_" identifier . field_identifier) = (field_expression "psVar28->mallocFailed" identifier -> field_identifier)) , (comma_expression "uVar11._2_1_ = psVar28->bBenignMalloc, uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0" (assignment_expression "uVar11._2_1_ = psVar28->bBenignMalloc" (field_expression "uVar11._2_1_" identifier . field_identifier) = (field_expression "psVar28->bBenignMalloc" identifier -> field_identifier)) , (comma_expression "uVar11._3_1_ = psVar28->dfltLockMode,\n       (uVar11 & 0xffff00) == 0" (assignment_expression "uVar11._3_1_ = psVar28->dfltLockMode" (field_expression "uVar11._3_1_" identifier . field_identifier) = (field_expression "psVar28->dfltLockMode" identifier -> field_identifier)) , (binary_expression "(uVar11 & 0xffff00) == 0" (parenthesized_expression "(uVar11 & 0xffff00)" ( (binary_expression "uVar11 & 0xffff00" identifier & number_literal) )) == number_literal))))) ))) )) (compound_statement "{\n      sqlite3OomFault(psVar28);\n    }" { (expression_statement "sqlite3OomFault(psVar28);" (call_expression "sqlite3OomFault(psVar28)" identifier (argument_list "(psVar28)" ( identifier ))) ;) })) (expression_statement "z = sqlite3_value_text(db->pErr);" (assignment_expression "z = sqlite3_value_text(db->pErr)" identifier = (call_expression "sqlite3_value_text(db->pErr)" identifier (argument_list "(db->pErr)" ( (field_expression "db->pErr" identifier -> field_identifier) )))) ;) (if_statement "if (*(void **)(pStmt + 0x78) != (void *)0x0) {\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }" if (parenthesized_expression "(*(void **)(pStmt + 0x78) != (void *)0x0)" ( (binary_expression "*(void **)(pStmt + 0x78) != (void *)0x0" (pointer_expression "*(void **)(pStmt + 0x78)" * (cast_expression "(void **)(pStmt + 0x78)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x78)" ( (binary_expression "pStmt + 0x78" identifier + number_literal) )))) != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));\n    }" { (expression_statement "sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78));" (call_expression "sqlite3DbFreeNN(db,*(void **)(pStmt + 0x78))" identifier (argument_list "(db,*(void **)(pStmt + 0x78))" ( identifier , (pointer_expression "*(void **)(pStmt + 0x78)" * (cast_expression "(void **)(pStmt + 0x78)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x78)" ( (binary_expression "pStmt + 0x78" identifier + number_literal) )))) ))) ;) })) (if_statement "if (db->mallocFailed == '\0') {\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }\n    else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }" if (parenthesized_expression "(db->mallocFailed == '\0')" ( (binary_expression "db->mallocFailed == '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      pcVar18 = sqlite3DbStrDup(db,(char *)z);\n      *(char **)(pStmt + 0x78) = pcVar18;\n      if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }\n      *(uint *)(pStmt + 0x28) = uVar31;\n    }" { (expression_statement "pcVar18 = sqlite3DbStrDup(db,(char *)z);" (assignment_expression "pcVar18 = sqlite3DbStrDup(db,(char *)z)" identifier = (call_expression "sqlite3DbStrDup(db,(char *)z)" identifier (argument_list "(db,(char *)z)" ( identifier , (cast_expression "(char *)z" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "*(char **)(pStmt + 0x78) = pcVar18;" (assignment_expression "*(char **)(pStmt + 0x78) = pcVar18" (pointer_expression "*(char **)(pStmt + 0x78)" * (cast_expression "(char **)(pStmt + 0x78)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pStmt + 0x78)" ( (binary_expression "pStmt + 0x78" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((db->mallocFailed == '\0') && (uVar31 != 0xc0a)) {\n        uVar31 = uVar31 & db->errMask;\n      }\n      else {\n        uVar31 = apiOomError(db);\n      }" if (parenthesized_expression "((db->mallocFailed == '\0') && (uVar31 != 0xc0a))" ( (binary_expression "(db->mallocFailed == '\0') && (uVar31 != 0xc0a)" (parenthesized_expression "(db->mallocFailed == '\0')" ( (binary_expression "db->mallocFailed == '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar31 != 0xc0a)" ( (binary_expression "uVar31 != 0xc0a" identifier != number_literal) ))) )) (compound_statement "{\n        uVar31 = uVar31 & db->errMask;\n      }" { (expression_statement "uVar31 = uVar31 & db->errMask;" (assignment_expression "uVar31 = uVar31 & db->errMask" identifier = (binary_expression "uVar31 & db->errMask" identifier & (field_expression "db->errMask" identifier -> field_identifier))) ;) }) (else_clause "else {\n        uVar31 = apiOomError(db);\n      }" else (compound_statement "{\n        uVar31 = apiOomError(db);\n      }" { (expression_statement "uVar31 = apiOomError(db);" (assignment_expression "uVar31 = apiOomError(db)" identifier = (call_expression "apiOomError(db)" identifier (argument_list "(db)" ( identifier )))) ;) }))) (expression_statement "*(uint *)(pStmt + 0x28) = uVar31;" (assignment_expression "*(uint *)(pStmt + 0x28) = uVar31" (pointer_expression "*(uint *)(pStmt + 0x28)" * (cast_expression "(uint *)(pStmt + 0x28)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }" else (compound_statement "{\n      *(undefined4 *)(pStmt + 0x78) = 0;\n      *(undefined4 *)(pStmt + 0x28) = 7;\n      uVar31 = 7;\n    }" { (expression_statement "*(undefined4 *)(pStmt + 0x78) = 0;" (assignment_expression "*(undefined4 *)(pStmt + 0x78) = 0" (pointer_expression "*(undefined4 *)(pStmt + 0x78)" * (cast_expression "(undefined4 *)(pStmt + 0x78)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x78)" ( (binary_expression "pStmt + 0x78" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pStmt + 0x28) = 7;" (assignment_expression "*(undefined4 *)(pStmt + 0x28) = 7" (pointer_expression "*(undefined4 *)(pStmt + 0x28)" * (cast_expression "(undefined4 *)(pStmt + 0x28)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pStmt + 0x28)" ( (binary_expression "pStmt + 0x28" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar31 = 7;" (assignment_expression "uVar31 = 7" identifier = number_literal) ;) }))) (labeled_statement "LAB_0008dc24:\n    sqlite3_mutex_leave(db->mutex);" statement_identifier : (expression_statement "sqlite3_mutex_leave(db->mutex);" (call_expression "sqlite3_mutex_leave(db->mutex)" identifier (argument_list "(db->mutex)" ( (field_expression "db->mutex" identifier -> field_identifier) ))) ;)) }) (else_clause "else {\n    uVar31 = sqlite3MisuseError(0x1471f);\n  }" else (compound_statement "{\n    uVar31 = sqlite3MisuseError(0x1471f);\n  }" { (expression_statement "uVar31 = sqlite3MisuseError(0x1471f);" (assignment_expression "uVar31 = sqlite3MisuseError(0x1471f)" identifier = (call_expression "sqlite3MisuseError(0x1471f)" identifier (argument_list "(0x1471f)" ( number_literal )))) ;) }))) (if_statement "if (iVar3 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" if (parenthesized_expression "(iVar3 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar3 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail_local();\n  }" { comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar31;" return identifier ;) })))
(translation_unit "uint sqlite3_step(int *param_1)\n\n{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return uVar24;\n}\n\n" (function_definition "uint sqlite3_step(int *param_1)\n\n{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return uVar24;\n}" type_identifier (function_declarator "sqlite3_step(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return uVar24;\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "char *pcVar2;" primitive_type (pointer_declarator "*pcVar2" * identifier) ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "ushort uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "byte bVar9;" type_identifier identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "byte *pbVar16;" type_identifier (pointer_declarator "*pbVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "undefined4 uVar18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "byte *pbVar20;" type_identifier (pointer_declarator "*pbVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "int iVar23;" primitive_type identifier ;) (declaration "uint uVar24;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "bool bVar25;" primitive_type identifier ;) (declaration "bool bVar26;" primitive_type identifier ;) (declaration "byte bVar27;" type_identifier identifier ;) (declaration "uint local_148;" type_identifier identifier ;) (declaration "int local_144;" primitive_type identifier ;) (declaration "uint local_13c;" type_identifier identifier ;) (declaration "int local_138;" primitive_type identifier ;) (declaration "int *local_10c;" primitive_type (pointer_declarator "*local_10c" * identifier) ;) (declaration "undefined4 local_108;" type_identifier identifier ;) (declaration "undefined4 local_104;" type_identifier identifier ;) (declaration "undefined4 local_100;" type_identifier identifier ;) (declaration "undefined4 local_fc;" type_identifier identifier ;) (declaration "undefined2 local_f8;" type_identifier identifier ;) (declaration "int local_f4 [53];" primitive_type (array_declarator "local_f4 [53]" identifier [ number_literal ]) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0x8da19;" (assignment_expression "uStack_14 = 0x8da19" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = FUN_0003bbd0();" (assignment_expression "iVar10 = FUN_0003bbd0()" identifier = (call_expression "FUN_0003bbd0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }" { (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));" (call_expression "sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar10 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ))) ;) (expression_statement "puVar8 = PTR_sqlite3_free_000ddfe0;" (assignment_expression "puVar8 = PTR_sqlite3_free_000ddfe0" identifier = identifier) ;) (expression_statement "*(undefined1 *)((int)param_1 + 0x8d) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x8d) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x8d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x8d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8d)" ( (binary_expression "(int)param_1 + 0x8d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) (expression_statement "local_138 = 0x33;" (assignment_expression "local_138 = 0x33" identifier = number_literal) ;) (labeled_statement "LAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }" statement_identifier : (if_statement "if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }" if (parenthesized_expression "(param_1[5] != 0x2df20da3)" ( (binary_expression "param_1[5] != 0x2df20da3" (subscript_expression "param_1[5]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      sqlite3_reset(param_1);\n    }" { (expression_statement "sqlite3_reset(param_1);" (call_expression "sqlite3_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) }))) (expression_statement "iVar14 = *param_1;" (assignment_expression "iVar14 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (if_statement "if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }" if (parenthesized_expression "(*(char *)(iVar14 + 0x4d) != '\0')" ( (binary_expression "*(char *)(iVar14 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar14 + 0x4d)" * (cast_expression "(char *)(iVar14 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4d)" ( (binary_expression "iVar14 + 0x4d" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }" { (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" identifier = number_literal) ;) (goto_statement "goto LAB_0008dc24;" goto statement_identifier ;) })) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (if_statement "if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }" if (parenthesized_expression "(param_1[9] < 0)" ( (binary_expression "param_1[9] < 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }" { (if_statement "if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }" if (parenthesized_expression "((bVar9 & 3) == 0)" ( (binary_expression "(bVar9 & 3) == 0" (parenthesized_expression "(bVar9 & 3)" ( (binary_expression "bVar9 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }" { (if_statement "if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }" if (parenthesized_expression "(*(int *)(iVar14 + 0xa8) == 0)" ( (binary_expression "*(int *)(iVar14 + 0xa8) == 0" (pointer_expression "*(int *)(iVar14 + 0xa8)" * (cast_expression "(int *)(iVar14 + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) == number_literal) )) (compound_statement "{\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }" { (expression_statement "*(undefined4 *)(iVar14 + 0x108) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x108) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x108)" * (cast_expression "(undefined4 *)(iVar14 + 0x108)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x108)" ( (binary_expression "iVar14 + 0x108" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }" if (parenthesized_expression "((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0))" ( (binary_expression "(((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)" (parenthesized_expression "(((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0'))" ( (binary_expression "((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')" (parenthesized_expression "((*(byte *)(iVar14 + 0x54) & 0x82) != 0)" ( (binary_expression "(*(byte *)(iVar14 + 0x54) & 0x82) != 0" (parenthesized_expression "(*(byte *)(iVar14 + 0x54) & 0x82)" ( (binary_expression "*(byte *)(iVar14 + 0x54) & 0x82" (pointer_expression "*(byte *)(iVar14 + 0x54)" * (cast_expression "(byte *)(iVar14 + 0x54)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x54)" ( (binary_expression "iVar14 + 0x54" identifier + number_literal) )))) & number_literal) )) != number_literal) )) && (parenthesized_expression "(*(char *)(iVar14 + 0xa1) == '\0')" ( (binary_expression "*(char *)(iVar14 + 0xa1) == '\0'" (pointer_expression "*(char *)(iVar14 + 0xa1)" * (cast_expression "(char *)(iVar14 + 0xa1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa1)" ( (binary_expression "iVar14 + 0xa1" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) && (parenthesized_expression "(param_1[0x2d] != 0)" ( (binary_expression "param_1[0x2d] != 0" (subscript_expression "param_1[0x2d]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          FUN_0001d9a0();\n        }" { (expression_statement "FUN_0001d9a0();" (call_expression "FUN_0001d9a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "*(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;" (assignment_expression "*(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1" (pointer_expression "*(int *)(iVar14 + 0xa8)" * (cast_expression "(int *)(iVar14 + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xa8) + 1" (pointer_expression "*(int *)(iVar14 + 0xa8)" * (cast_expression "(int *)(iVar14 + 0xa8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xa8)" ( (binary_expression "iVar14 + 0xa8" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }" if (parenthesized_expression "(-1 < (char)bVar9)" ( (binary_expression "-1 < (char)bVar9" number_literal < (cast_expression "(char)bVar9" ( (type_descriptor "char" primitive_type) ) identifier)) )) (compound_statement "{\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }" { (expression_statement "*(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;" (assignment_expression "*(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1" (pointer_expression "*(int *)(iVar14 + 0xb0)" * (cast_expression "(int *)(iVar14 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb0)" ( (binary_expression "iVar14 + 0xb0" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xb0) + 1" (pointer_expression "*(int *)(iVar14 + 0xb0)" * (cast_expression "(int *)(iVar14 + 0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb0)" ( (binary_expression "iVar14 + 0xb0" identifier + number_literal) )))) + number_literal)) ;) })) (if_statement "if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x8f) & 1) != 0)" ( (binary_expression "(*(byte *)((int)param_1 + 0x8f) & 1) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x8f) & 1)" ( (binary_expression "*(byte *)((int)param_1 + 0x8f) & 1" (pointer_expression "*(byte *)((int)param_1 + 0x8f)" * (cast_expression "(byte *)((int)param_1 + 0x8f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8f)" ( (binary_expression "(int)param_1 + 0x8f" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) != number_literal) )) (compound_statement "{\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }" { (expression_statement "*(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;" (assignment_expression "*(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1" (pointer_expression "*(int *)(iVar14 + 0xac)" * (cast_expression "(int *)(iVar14 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xac)" ( (binary_expression "iVar14 + 0xac" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xac) + 1" (pointer_expression "*(int *)(iVar14 + 0xac)" * (cast_expression "(int *)(iVar14 + 0xac)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xac)" ( (binary_expression "iVar14 + 0xac" identifier + number_literal) )))) + number_literal)) ;) })) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" identifier [ number_literal ]) = number_literal) ;) (goto_statement "goto LAB_0008dac4;" goto statement_identifier ;) })) (expression_statement "param_1[10] = 0x11;" (assignment_expression "param_1[10] = 0x11" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;) (if_statement "if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" if (parenthesized_expression "((char)param_1[0x23] < '\0')" ( (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar24 = FUN_000488a0();\n      }" { (expression_statement "uVar24 = FUN_000488a0();" (assignment_expression "uVar24 = FUN_000488a0()" identifier = (call_expression "FUN_000488a0()" identifier (argument_list "()" ( )))) ;) })) (goto_statement "goto LAB_0008dcc7;" goto statement_identifier ;) })) (labeled_statement "LAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" statement_identifier : (if_statement "if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" if (parenthesized_expression "((bVar9 & 0xc) == 0)" ( (binary_expression "(bVar9 & 0xc) == 0" (parenthesized_expression "(bVar9 & 0xc)" ( (binary_expression "bVar9 & 0xc" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" { (expression_statement "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;" (assignment_expression "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xb4) + 1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "uVar24 = FUN_00083fd0();" (assignment_expression "uVar24 = FUN_00083fd0()" identifier = (call_expression "FUN_00083fd0()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;" (assignment_expression "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar14 + 0xb4) + -1" (pointer_expression "*(int *)(iVar14 + 0xb4)" * (cast_expression "(int *)(iVar14 + 0xb4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xb4)" ( (binary_expression "iVar14 + 0xb4" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (uVar24 == 100) goto LAB_0008dc84;" if (parenthesized_expression "(uVar24 == 100)" ( (binary_expression "uVar24 == 100" identifier == number_literal) )) (goto_statement "goto LAB_0008dc84;" goto statement_identifier ;)) (if_statement "if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }" if (parenthesized_expression "((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0))))" ( (binary_expression "(-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))" (parenthesized_expression "(-1 < param_1[0x21])" ( (binary_expression "-1 < param_1[0x21]" number_literal < (subscript_expression "param_1[0x21]" identifier [ number_literal ])) )) && (parenthesized_expression "((0 < param_1[0x21] || (param_1[0x20] != 0)))" ( (parenthesized_expression "(0 < param_1[0x21] || (param_1[0x20] != 0))" ( (binary_expression "0 < param_1[0x21] || (param_1[0x20] != 0)" (binary_expression "0 < param_1[0x21]" number_literal < (subscript_expression "param_1[0x21]" identifier [ number_literal ])) || (parenthesized_expression "(param_1[0x20] != 0)" ( (binary_expression "param_1[0x20] != 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != number_literal) ))) )) ))) )) (compound_statement "{\n        FUN_0001f8e0();\n      }" { (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (uVar24 != 0x65) goto LAB_0008e15c;" if (parenthesized_expression "(uVar24 != 0x65)" ( (binary_expression "uVar24 != 0x65" identifier != number_literal) )) (goto_statement "goto LAB_0008e15c;" goto statement_identifier ;)) (labeled_statement "LAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);" statement_identifier : (expression_statement "cVar3 = *(char *)(iVar14 + 0x4b);" (assignment_expression "cVar3 = *(char *)(iVar14 + 0x4b)" identifier = (pointer_expression "*(char *)(iVar14 + 0x4b)" * (cast_expression "(char *)(iVar14 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4b)" ( (binary_expression "iVar14 + 0x4b" identifier + number_literal) ))))) ;)) (labeled_statement "joined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" statement_identifier : (if_statement "if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }" { (expression_statement "local_148 = param_1[10];" (assignment_expression "local_148 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;) (expression_statement "uVar24 = 0x65;" (assignment_expression "uVar24 = 0x65" identifier = number_literal) ;) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" identifier = (binary_expression "local_148 == 0xc0a" identifier == number_literal)) ;) }) (else_clause "else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" else (compound_statement "{\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" { (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (if_statement "if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" if (parenthesized_expression "(*(int *)(iVar14 + 0x14) < 1)" ( (binary_expression "*(int *)(iVar14 + 0x14) < 1" (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "uVar24 = 0x65;" (assignment_expression "uVar24 = 0x65" identifier = number_literal) ;) }) (else_clause "else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" else (compound_statement "{\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" { (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));" do (compound_statement "{\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          }" { (expression_statement "iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" identifier = (pointer_expression "*(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" * (cast_expression "(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" ( (binary_expression "*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10" (binary_expression "*(int *)(iVar14 + 0x10) + 4" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) + number_literal) + (binary_expression "iVar17 * 0x10" identifier * number_literal)) ))))) ;) (if_statement "if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }" { (if_statement "if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" if (parenthesized_expression "(*(char *)(iVar5 + 9) == '\0')" ( (binary_expression "*(char *)(iVar5 + 9) == '\0'" (pointer_expression "*(char *)(iVar5 + 9)" * (cast_expression "(char *)(iVar5 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 9)" ( (binary_expression "iVar5 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }" { (expression_statement "iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);" (assignment_expression "iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4)" identifier = (pointer_expression "*(int *)(**(int **)(iVar5 + 4) + 0xd4)" * (cast_expression "(int *)(**(int **)(iVar5 + 4) + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 4) + 0xd4)" ( (binary_expression "**(int **)(iVar5 + 4) + 0xd4" (pointer_expression "**(int **)(iVar5 + 4)" * (pointer_expression "*(int **)(iVar5 + 4)" * (cast_expression "(int **)(iVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }" { (expression_statement "iVar13 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar5 + 0xc)" identifier = (pointer_expression "*(int *)(iVar5 + 0xc)" * (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" * (cast_expression "(undefined4 *)(iVar5 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) = number_literal) ;) (goto_statement "goto LAB_0008e221;" goto statement_identifier ;) })) }) (else_clause "else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" else (compound_statement "{\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" { (expression_statement "FUN_00027820();" (call_expression "FUN_00027820()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);" (assignment_expression "iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4)" identifier = (pointer_expression "*(int *)(**(int **)(iVar5 + 4) + 0xd4)" * (cast_expression "(int *)(**(int **)(iVar5 + 4) + 0xd4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(**(int **)(iVar5 + 4) + 0xd4)" ( (binary_expression "**(int **)(iVar5 + 4) + 0xd4" (pointer_expression "**(int **)(iVar5 + 4)" * (pointer_expression "*(int **)(iVar5 + 4)" * (cast_expression "(int **)(iVar5 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar5 + 4)" ( (binary_expression "iVar5 + 4" identifier + number_literal) ))))) + number_literal) ))))) ;) (if_statement "if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" if (parenthesized_expression "(iVar23 == 0)" ( (binary_expression "iVar23 == 0" identifier == number_literal) )) (compound_statement "{\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }" { (if_statement "if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" if (parenthesized_expression "(*(char *)(iVar5 + 9) != '\0')" ( (binary_expression "*(char *)(iVar5 + 9) != '\0'" (pointer_expression "*(char *)(iVar5 + 9)" * (cast_expression "(char *)(iVar5 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 9)" ( (binary_expression "iVar5 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" { (expression_statement "piVar21 = (int *)(iVar5 + 0xc);" (assignment_expression "piVar21 = (int *)(iVar5 + 0xc)" identifier = (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = *piVar21 + -1;" (assignment_expression "*piVar21 = *piVar21 + -1" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + -1" (pointer_expression "*piVar21" * identifier) + number_literal)) ;) (if_statement "if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }" if (parenthesized_expression "(*piVar21 == 0)" ( (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" * identifier) == number_literal) )) (compound_statement "{\n                      FUN_000278b0();\n                    }" { (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" identifier (argument_list "()" ( ))) ;) })) })) }) (else_clause "else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" else (compound_statement "{\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" { (expression_statement "cVar3 = *(char *)(iVar5 + 9);" (assignment_expression "cVar3 = *(char *)(iVar5 + 9)" identifier = (pointer_expression "*(char *)(iVar5 + 9)" * (cast_expression "(char *)(iVar5 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 9)" ( (binary_expression "iVar5 + 9" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *(int *)(iVar23 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar23 + 0xc)" identifier = (pointer_expression "*(int *)(iVar23 + 0xc)" * (cast_expression "(int *)(iVar23 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc)" ( (binary_expression "iVar23 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(iVar23 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar23 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar23 + 0xc)" * (cast_expression "(undefined4 *)(iVar23 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar23 + 0xc)" ( (binary_expression "iVar23 + 0xc" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" { (expression_statement "piVar21 = (int *)(iVar5 + 0xc);" (assignment_expression "piVar21 = (int *)(iVar5 + 0xc)" identifier = (cast_expression "(int *)(iVar5 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0xc)" ( (binary_expression "iVar5 + 0xc" identifier + number_literal) )))) ;) (expression_statement "*piVar21 = *piVar21 + -1;" (assignment_expression "*piVar21 = *piVar21 + -1" (pointer_expression "*piVar21" * identifier) = (binary_expression "*piVar21 + -1" (pointer_expression "*piVar21" * identifier) + number_literal)) ;) (if_statement "if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }" if (parenthesized_expression "(*piVar21 == 0)" ( (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" * identifier) == number_literal) )) (compound_statement "{\n                      FUN_000278b0();\n                    }" { (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" identifier (argument_list "()" ( ))) ;) })) })) (labeled_statement "LAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" statement_identifier : (if_statement "if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" if (parenthesized_expression "(((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0))" ( (binary_expression "((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)" (parenthesized_expression "((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0))" ( (binary_expression "(0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)" (parenthesized_expression "(0 < iVar13)" ( (binary_expression "0 < iVar13" number_literal < identifier) )) && (parenthesized_expression "(*(code **)(iVar14 + 0xf0) != (code *)0x0)" ( (binary_expression "*(code **)(iVar14 + 0xf0) != (code *)0x0" (pointer_expression "*(code **)(iVar14 + 0xf0)" * (cast_expression "(code **)(iVar14 + 0xf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0xf0)" ( (binary_expression "iVar14 + 0xf0" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) && (parenthesized_expression "(local_148 == 0)" ( (binary_expression "local_148 == 0" identifier == number_literal) ))) )) (compound_statement "{\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" { (expression_statement "local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);" (assignment_expression "local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" identifier = (call_expression "(**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" (parenthesized_expression "(**(code **)(iVar14 + 0xf0))" ( (pointer_expression "**(code **)(iVar14 + 0xf0)" * (pointer_expression "*(code **)(iVar14 + 0xf0)" * (cast_expression "(code **)(iVar14 + 0xf0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + 0xf0)" ( (binary_expression "iVar14 + 0xf0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" ( (pointer_expression "*(undefined4 *)(iVar14 + 0xf4)" * (cast_expression "(undefined4 *)(iVar14 + 0xf4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0xf4)" ( (binary_expression "iVar14 + 0xf4" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" * (cast_expression "(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" ( (binary_expression "*(int *)(iVar14 + 0x10) + iVar17 * 0x10" (pointer_expression "*(int *)(iVar14 + 0x10)" * (cast_expression "(int *)(iVar14 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x10)" ( (binary_expression "iVar14 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar17 * 0x10" identifier * number_literal)) )))) , identifier )))) ;) }))) }))) }))) })) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar17 < *(int *)(iVar14 + 0x14))" ( (binary_expression "iVar17 < *(int *)(iVar14 + 0x14)" identifier < (pointer_expression "*(int *)(iVar14 + 0x14)" * (cast_expression "(int *)(iVar14 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x14)" ( (binary_expression "iVar14 + 0x14" identifier + number_literal) ))))) )) ;) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" identifier = (binary_expression "local_148 == 0xc0a" identifier == number_literal)) ;) (expression_statement "param_1[10] = local_148;" (assignment_expression "param_1[10] = local_148" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (expression_statement "uVar24 = (-(uint)(local_148 == 0) & 100) + 1;" (assignment_expression "uVar24 = (-(uint)(local_148 == 0) & 100) + 1" identifier = (binary_expression "(-(uint)(local_148 == 0) & 100) + 1" (parenthesized_expression "(-(uint)(local_148 == 0) & 100)" ( (binary_expression "-(uint)(local_148 == 0) & 100" (unary_expression "-(uint)(local_148 == 0)" - (call_expression "(uint)(local_148 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_148 == 0)" ( (binary_expression "local_148 == 0" identifier == number_literal) )))) & number_literal) )) + number_literal)) ;) }))) })))) (goto_statement "goto LAB_0008dc90;" goto statement_identifier ;) }))) (expression_statement "iVar17 = param_1[0x15];" (assignment_expression "iVar17 = param_1[0x15]" identifier = (subscript_expression "param_1[0x15]" identifier [ number_literal ])) ;) (expression_statement "iVar5 = *param_1;" (assignment_expression "iVar5 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "local_13c = 1;" (assignment_expression "local_13c = 1" identifier = number_literal) ;) (if_statement "if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }" if (parenthesized_expression "((bVar9 & 0xc) != 4)" ( (binary_expression "(bVar9 & 0xc) != 4" (parenthesized_expression "(bVar9 & 0xc)" ( (binary_expression "bVar9 & 0xc" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }" { (expression_statement "local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;" (assignment_expression "local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1" identifier = (binary_expression "*(uint *)(iVar5 + 0x1c) >> 0x18 & 1" (binary_expression "*(uint *)(iVar5 + 0x1c) >> 0x18" (pointer_expression "*(uint *)(iVar5 + 0x1c)" * (cast_expression "(uint *)(iVar5 + 0x1c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x1c)" ( (binary_expression "iVar5 + 0x1c" identifier + number_literal) )))) >> number_literal) & number_literal)) ;) })) (if_statement "if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }" if (parenthesized_expression "(iVar17 + 0x28 != 0)" ( (binary_expression "iVar17 + 0x28 != 0" (binary_expression "iVar17 + 0x28" identifier + number_literal) != number_literal) )) (compound_statement "{\n      FUN_000284b0();\n    }" { (expression_statement "FUN_000284b0();" (call_expression "FUN_000284b0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "param_1[0x1d] = 0;" (assignment_expression "param_1[0x1d] = 0" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }" if (parenthesized_expression "(param_1[10] == 7)" ( (binary_expression "param_1[10] == 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }" { (if_statement "if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }" if (parenthesized_expression "((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar5 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        FUN_0002e050();\n      }" { (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" identifier (argument_list "()" ( ))) ;) })) (goto_statement "goto LAB_0008e141;" goto statement_identifier ;) })) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" identifier = (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))))) ;) (expression_statement "local_144 = param_1[0x1a];" (assignment_expression "local_144 = param_1[0x1a]" identifier = (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) ;) (if_statement "if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" if (parenthesized_expression "(local_13c == 0)" ( (binary_expression "local_13c == 0" identifier == number_literal) )) (compound_statement "{\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }" { (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (expression_statement "piVar21 = (int *)0x0;" (assignment_expression "piVar21 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" else (compound_statement "{\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" { (expression_statement "iVar13 = param_1[0x15];" (assignment_expression "iVar13 = param_1[0x15]" identifier = (subscript_expression "param_1[0x15]" identifier [ number_literal ])) ;) (expression_statement "local_148 = iVar13 + 0x168;" (assignment_expression "local_148 = iVar13 + 0x168" identifier = (binary_expression "iVar13 + 0x168" identifier + number_literal)) ;) (if_statement "if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" if (parenthesized_expression "((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0))" ( (binary_expression "(local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)" (parenthesized_expression "(local_148 == 0)" ( (binary_expression "local_148 == 0" identifier == number_literal) )) || (parenthesized_expression "((*(byte *)(iVar13 + 0x170) & 0x10) == 0)" ( (binary_expression "(*(byte *)(iVar13 + 0x170) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0x170) & 0x10)" ( (binary_expression "*(byte *)(iVar13 + 0x170) & 0x10" (pointer_expression "*(byte *)(iVar13 + 0x170)" * (cast_expression "(byte *)(iVar13 + 0x170)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x170)" ( (binary_expression "iVar13 + 0x170" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }" { (expression_statement "local_13c = 0;" (assignment_expression "local_13c = 0" identifier = number_literal) ;) (expression_statement "piVar21 = (int *)0x0;" (assignment_expression "piVar21 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" else (compound_statement "{\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" { (expression_statement "piVar21 = *(int **)(iVar13 + 0x178);" (assignment_expression "piVar21 = *(int **)(iVar13 + 0x178)" identifier = (pointer_expression "*(int **)(iVar13 + 0x178)" * (cast_expression "(int **)(iVar13 + 0x178)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x178)" ( (binary_expression "iVar13 + 0x178" identifier + number_literal) ))))) ;) (expression_statement "local_13c = *(uint *)(iVar13 + 0x174) >> 2;" (assignment_expression "local_13c = *(uint *)(iVar13 + 0x174) >> 2" identifier = (binary_expression "*(uint *)(iVar13 + 0x174) >> 2" (pointer_expression "*(uint *)(iVar13 + 0x174)" * (cast_expression "(uint *)(iVar13 + 0x174)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x174)" ( (binary_expression "iVar13 + 0x174" identifier + number_literal) )))) >> number_literal)) ;) (if_statement "if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }" if (parenthesized_expression "(local_13c != 0)" ( (binary_expression "local_13c != 0" identifier != number_literal) )) (compound_statement "{\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }" { (expression_statement "piVar11 = piVar21;" (assignment_expression "piVar11 = piVar21" identifier = identifier) ;) (do_statement "do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);" do (compound_statement "{\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          }" { (expression_statement "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" identifier = (binary_expression "piVar11 + 1" identifier + number_literal)) ;) (expression_statement "local_144 = local_144 + *(int *)(iVar13 + 4);" (assignment_expression "local_144 = local_144 + *(int *)(iVar13 + 4)" identifier = (binary_expression "local_144 + *(int *)(iVar13 + 4)" identifier + (pointer_expression "*(int *)(iVar13 + 4)" * (cast_expression "(int *)(iVar13 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 4)" ( (binary_expression "iVar13 + 4" identifier + number_literal) )))))) ;) }) while (parenthesized_expression "(piVar21 + local_13c != piVar11)" ( (binary_expression "piVar21 + local_13c != piVar11" (binary_expression "piVar21 + local_13c" identifier + identifier) != identifier) )) ;) })) }))) }))) (expression_statement "iVar13 = param_1[9];" (assignment_expression "iVar13 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (do_statement "do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));" do (compound_statement "{\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    }" { (expression_statement "iVar23 = iVar13 + 1;" (assignment_expression "iVar23 = iVar13 + 1" identifier = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (if_statement "if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }" if (parenthesized_expression "(local_144 <= iVar13)" ( (binary_expression "local_144 <= iVar13" identifier <= identifier) )) (compound_statement "{\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;" if (parenthesized_expression "((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0))))" ( (binary_expression "(param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))" (parenthesized_expression "(param_1[0x21] < 1)" ( (binary_expression "param_1[0x21] < 1" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) < number_literal) )) && (parenthesized_expression "((param_1[0x21] < 0 || (param_1[0x20] == 0)))" ( (parenthesized_expression "(param_1[0x21] < 0 || (param_1[0x20] == 0))" ( (binary_expression "param_1[0x21] < 0 || (param_1[0x20] == 0)" (binary_expression "param_1[0x21] < 0" (subscript_expression "param_1[0x21]" identifier [ number_literal ]) < number_literal) || (parenthesized_expression "(param_1[0x20] == 0)" ( (binary_expression "param_1[0x20] == 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (goto_statement "goto LAB_0008e0ef;" goto statement_identifier ;)) (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" identifier (argument_list "()" ( ))) ;) (expression_statement "cVar3 = *(char *)(iVar14 + 0x4b);" (assignment_expression "cVar3 = *(char *)(iVar14 + 0x4b)" identifier = (pointer_expression "*(char *)(iVar14 + 0x4b)" * (cast_expression "(char *)(iVar14 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x4b)" ( (binary_expression "iVar14 + 0x4b" identifier + number_literal) ))))) ;) (goto_statement "goto joined_r0x0008e0f7;" goto statement_identifier ;) })) (if_statement "if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" if (parenthesized_expression "(iVar13 < param_1[0x1a])" ( (binary_expression "iVar13 < param_1[0x1a]" identifier < (subscript_expression "param_1[0x1a]" identifier [ number_literal ])) )) (compound_statement "{\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }" { (expression_statement "iVar19 = param_1[0x19];" (assignment_expression "iVar19 = param_1[0x19]" identifier = (subscript_expression "param_1[0x19]" identifier [ number_literal ])) ;) (expression_statement "iVar12 = iVar13;" (assignment_expression "iVar12 = iVar13" identifier = identifier) ;) }) (else_clause "else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" else (compound_statement "{\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" { (expression_statement "piVar11 = (int *)*piVar21;" (assignment_expression "piVar11 = (int *)*piVar21" identifier = (cast_expression "(int *)*piVar21" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar21" * identifier))) ;) (expression_statement "iVar12 = iVar13 - param_1[0x1a];" (assignment_expression "iVar12 = iVar13 - param_1[0x1a]" identifier = (binary_expression "iVar13 - param_1[0x1a]" identifier - (subscript_expression "param_1[0x1a]" identifier [ number_literal ]))) ;) (expression_statement "iVar13 = piVar11[1];" (assignment_expression "iVar13 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = piVar21;" (assignment_expression "piVar7 = piVar21" identifier = identifier) ;) (if_statement "if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }" if (parenthesized_expression "(iVar13 <= iVar12)" ( (binary_expression "iVar13 <= iVar12" identifier <= identifier) )) (compound_statement "{\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }" { (do_statement "do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);" do (compound_statement "{\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          }" { (expression_statement "piVar11 = (int *)piVar7[1];" (assignment_expression "piVar11 = (int *)piVar7[1]" identifier = (cast_expression "(int *)piVar7[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar7[1]" identifier [ number_literal ]))) ;) (expression_statement "iVar12 = iVar12 - iVar13;" (assignment_expression "iVar12 = iVar12 - iVar13" identifier = (binary_expression "iVar12 - iVar13" identifier - identifier)) ;) (expression_statement "iVar13 = piVar11[1];" (assignment_expression "iVar13 = piVar11[1]" identifier = (subscript_expression "piVar11[1]" identifier [ number_literal ])) ;) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" identifier = (binary_expression "piVar7 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar13 <= iVar12)" ( (binary_expression "iVar13 <= iVar12" identifier <= identifier) )) ;) })) (expression_statement "iVar19 = *piVar11;" (assignment_expression "iVar19 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) }))) (expression_statement "pcVar2 = (char *)(iVar19 + iVar12 * 0x14);" (assignment_expression "pcVar2 = (char *)(iVar19 + iVar12 * 0x14)" identifier = (cast_expression "(char *)(iVar19 + iVar12 * 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar19 + iVar12 * 0x14)" ( (binary_expression "iVar19 + iVar12 * 0x14" identifier + (binary_expression "iVar12 * 0x14" identifier * number_literal)) )))) ;) (if_statement "if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }" if (parenthesized_expression "((local_148 != 0) && (pcVar2[1] == -4))" ( (binary_expression "(local_148 != 0) && (pcVar2[1] == -4)" (parenthesized_expression "(local_148 != 0)" ( (binary_expression "local_148 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar2[1] == -4)" ( (binary_expression "pcVar2[1] == -4" (subscript_expression "pcVar2[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }" { (if_statement "if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" if (parenthesized_expression "((int)local_13c < 1)" ( (binary_expression "(int)local_13c < 1" (cast_expression "(int)local_13c" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }" { (if_statement "if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" if (parenthesized_expression "(local_13c == 0)" ( (binary_expression "local_13c == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" { (labeled_statement "LAB_0008e044:\n            iVar13 = FUN_000307e0();" statement_identifier : (expression_statement "iVar13 = FUN_000307e0();" (assignment_expression "iVar13 = FUN_000307e0()" identifier = (call_expression "FUN_000307e0()" identifier (argument_list "()" ( )))) ;)) (expression_statement "param_1[10] = iVar13;" (assignment_expression "param_1[10] = iVar13" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" { (expression_statement "iVar17 = param_1[0x21];" (assignment_expression "iVar17 = param_1[0x21]" identifier = (subscript_expression "param_1[0x21]" identifier [ number_literal ])) ;) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar17 < 0) goto LAB_0008e157;" if (parenthesized_expression "(iVar17 < 0)" ( (binary_expression "iVar17 < 0" identifier < number_literal) )) (goto_statement "goto LAB_0008e157;" goto statement_identifier ;)) (goto_statement "goto joined_r0x0008e183;" goto statement_identifier ;) })) (expression_statement "piVar21 = *(int **)(local_148 + 0x10);" (assignment_expression "piVar21 = *(int **)(local_148 + 0x10)" identifier = (pointer_expression "*(int **)(local_148 + 0x10)" * (cast_expression "(int **)(local_148 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_148 + 0x10)" ( (binary_expression "local_148 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "piVar21[local_13c] = *(int *)(pcVar2 + 0x10);" (assignment_expression "piVar21[local_13c] = *(int *)(pcVar2 + 0x10)" (subscript_expression "piVar21[local_13c]" identifier [ identifier ]) = (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "*(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;" (assignment_expression "*(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10" (pointer_expression "*(ushort *)(local_148 + 8)" * (cast_expression "(ushort *)(local_148 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) = (binary_expression "*(ushort *)(local_148 + 8) & 0x3e40 | 0x10" (binary_expression "*(ushort *)(local_148 + 8) & 0x3e40" (pointer_expression "*(ushort *)(local_148 + 8)" * (cast_expression "(ushort *)(local_148 + 8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_148 + 8)" ( (binary_expression "local_148 + 8" identifier + number_literal) )))) & number_literal) | number_literal)) ;) (expression_statement "*(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;" (assignment_expression "*(uint *)(local_148 + 0xc) = (local_13c + 1) * 4" (pointer_expression "*(uint *)(local_148 + 0xc)" * (cast_expression "(uint *)(local_148 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_148 + 0xc)" ( (binary_expression "local_148 + 0xc" identifier + number_literal) )))) = (binary_expression "(local_13c + 1) * 4" (parenthesized_expression "(local_13c + 1)" ( (binary_expression "local_13c + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);" (assignment_expression "local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4)" identifier = (binary_expression "local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4)" identifier + (pointer_expression "*(int *)(*(int *)(pcVar2 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pcVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar2 + 0x10) + 4" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) + number_literal) )))))) ;) (expression_statement "local_13c = local_13c + 1;" (assignment_expression "local_13c = local_13c + 1" identifier = (binary_expression "local_13c + 1" identifier + number_literal)) ;) })) }) (else_clause "else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" else (if_statement "if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" if (parenthesized_expression "(*(int *)(pcVar2 + 0x10) != *piVar21)" ( (binary_expression "*(int *)(pcVar2 + 0x10) != *piVar21" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) != (pointer_expression "*piVar21" * identifier)) )) (compound_statement "{\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" { (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" identifier = number_literal) ;) (do_statement "do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));" do (compound_statement "{\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          }" { (expression_statement "uVar24 = uVar24 + 1;" (assignment_expression "uVar24 = uVar24 + 1" identifier = (binary_expression "uVar24 + 1" identifier + number_literal)) ;) (if_statement "if (local_13c == uVar24) goto LAB_0008e044;" if (parenthesized_expression "(local_13c == uVar24)" ( (binary_expression "local_13c == uVar24" identifier == identifier) )) (goto_statement "goto LAB_0008e044;" goto statement_identifier ;)) }) while (parenthesized_expression "(piVar21[uVar24] != *(int *)(pcVar2 + 0x10))" ( (binary_expression "piVar21[uVar24] != *(int *)(pcVar2 + 0x10)" (subscript_expression "piVar21[uVar24]" identifier [ identifier ]) != (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) )) ;) })))) })) }) while (parenthesized_expression "((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))))" ( (binary_expression "(((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)))" (parenthesized_expression "(((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52))" ( (binary_expression "((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)" (parenthesized_expression "((bVar9 & 0xc) == 8)" ( (binary_expression "(bVar9 & 0xc) == 8" (parenthesized_expression "(bVar9 & 0xc)" ( (binary_expression "bVar9 & 0xc" identifier & number_literal) )) == number_literal) )) && (parenthesized_expression "(*pcVar2 != -0x52)" ( (binary_expression "*pcVar2 != -0x52" (pointer_expression "*pcVar2" * identifier) != number_literal) ))) )) && (parenthesized_expression "((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)))" ( (parenthesized_expression "(iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))" ( (comma_expression "iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)" (assignment_expression "iVar13 = iVar23" identifier = identifier) , (binary_expression "*pcVar2 != '>' || (iVar23 < 2)" (binary_expression "*pcVar2 != '>'" (pointer_expression "*pcVar2" * identifier) != (char_literal "'>'" ' character ')) || (parenthesized_expression "(iVar23 < 2)" ( (binary_expression "iVar23 < 2" identifier < number_literal) )))) )) ))) )) ;) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }" if (parenthesized_expression "(*(int *)(iVar5 + 0x108) != 0)" ( (binary_expression "*(int *)(iVar5 + 0x108) != 0" (pointer_expression "*(int *)(iVar5 + 0x108)" * (cast_expression "(int *)(iVar5 + 0x108)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x108)" ( (binary_expression "iVar5 + 0x108" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }" { (expression_statement "param_1[10] = 9;" (assignment_expression "param_1[10] = 9" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0003e960(param_1,"interrupted");" (call_expression "FUN_0003e960(param_1,"interrupted")" identifier (argument_list "(param_1,"interrupted")" ( identifier , (string_literal ""interrupted"" " string_content ") ))) ;) (goto_statement "goto LAB_0008e141;" goto statement_identifier ;) })) (expression_statement "local_10c = (int *)0x0;" (assignment_expression "local_10c = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" identifier = number_literal) ;) (expression_statement "local_100 = 1000000000;" (assignment_expression "local_100 = 1000000000" identifier = number_literal) ;) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" identifier = number_literal) ;) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" identifier = number_literal) ;) (switch_statement "switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }" switch (parenthesized_expression "(pcVar2[1])" ( (subscript_expression "pcVar2[1]" identifier [ number_literal ]) )) (compound_statement "{\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }" { (case_statement "case -0x11:" case number_literal :) (case_statement "case -5:\n      goto code_r0x0008e3ca;" case number_literal : (goto_statement "goto code_r0x0008e3ca;" goto statement_identifier ;)) (case_statement "case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;" case number_literal : (expression_statement "iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);" (assignment_expression "iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4)" identifier = (pointer_expression "*(int *)(*(int *)(pcVar2 + 0x10) + 4)" * (cast_expression "(int *)(*(int *)(pcVar2 + 0x10) + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 4)" ( (binary_expression "*(int *)(pcVar2 + 0x10) + 4" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (goto_statement "goto code_r0x0008e672;" goto statement_identifier ;)) (case_statement "case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;" case number_literal : (expression_statement "piVar21 = *(int **)(pcVar2 + 0x10);" (assignment_expression "piVar21 = *(int **)(pcVar2 + 0x10)" identifier = (pointer_expression "*(int **)(pcVar2 + 0x10)" * (cast_expression "(int **)(pcVar2 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "iVar13 = *piVar21;" (assignment_expression "iVar13 = *piVar21" identifier = (pointer_expression "*piVar21" * identifier)) ;) (if_statement "if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }" if (parenthesized_expression "(iVar13 != 0)" ( (binary_expression "iVar13 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }" { (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" identifier = number_literal) ;) (do_statement "do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);" do (compound_statement "{\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        }" { (expression_statement "uVar18 = 0x5b;" (assignment_expression "uVar18 = 0x5b" identifier = number_literal) ;) (if_statement "if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }" if (parenthesized_expression "(iVar23 != 1)" ( (binary_expression "iVar23 != 1" identifier != number_literal) )) (compound_statement "{\n            uVar18 = 0x2c;\n          }" { (expression_statement "uVar18 = 0x2c;" (assignment_expression "uVar18 = 0x2c" identifier = number_literal) ;) })) (expression_statement "piVar11 = piVar21 + iVar23;" (assignment_expression "piVar11 = piVar21 + iVar23" identifier = (binary_expression "piVar21 + iVar23" identifier + identifier)) ;) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11)" identifier (argument_list "(&local_10c,&UNK_000aae32,uVar18,*piVar11)" ( (pointer_expression "&local_10c" & identifier) , (pointer_expression "&UNK_000aae32" & identifier) , identifier , (pointer_expression "*piVar11" * identifier) ))) ;) }) while (parenthesized_expression "(iVar23 != iVar13 + 1)" ( (binary_expression "iVar23 != iVar13 + 1" identifier != (binary_expression "iVar13 + 1" identifier + number_literal)) )) ;) })) (expression_statement "pcVar15 = "]";" (assignment_expression "pcVar15 = "]"" identifier = (string_literal ""]"" " string_content ")) ;) (goto_statement "goto code_r0x0008e812;" goto statement_identifier ;)) (case_statement "case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;" case number_literal : (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = "%lld";" (assignment_expression "pcVar15 = "%lld"" identifier = (string_literal ""%lld"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;" case number_literal : (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = "%.16g";" (assignment_expression "pcVar15 = "%.16g"" identifier = (string_literal ""%.16g"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;" case number_literal : (expression_statement "uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);" (assignment_expression "uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" identifier = (pointer_expression "*(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" * (cast_expression "(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 8)" ( (binary_expression "*(int *)(pcVar2 + 0x10) + 8" (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "pcVar15 = "vtab:%p";" (assignment_expression "pcVar15 = "vtab:%p"" identifier = (string_literal ""vtab:%p"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;" case number_literal : (expression_statement "puVar6 = *(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(ushort *)(puVar6 + 2);" (assignment_expression "uVar4 = *(ushort *)(puVar6 + 2)" identifier = (pointer_expression "*(ushort *)(puVar6 + 2)" * (cast_expression "(ushort *)(puVar6 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar6 + 2)" ( (binary_expression "puVar6 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }" if (parenthesized_expression "((uVar4 & 2) != 0)" ( (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" ( (binary_expression "uVar4 & 2" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }" { (expression_statement "pcVar15 = (char *)puVar6[4];" (assignment_expression "pcVar15 = (char *)puVar6[4]" identifier = (cast_expression "(char *)puVar6[4]" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "puVar6[4]" identifier [ number_literal ]))) ;) (goto_statement "goto LAB_0008e3c2;" goto statement_identifier ;) })) (if_statement "if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" if (parenthesized_expression "((uVar4 & 0x24) == 0)" ( (binary_expression "(uVar4 & 0x24) == 0" (parenthesized_expression "(uVar4 & 0x24)" ( (binary_expression "uVar4 & 0x24" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }" { (if_statement "if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" if (parenthesized_expression "((uVar4 & 8) == 0)" ( (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" ( (binary_expression "uVar4 & 8" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" { (expression_statement "pcVar15 = "(blob)";" (assignment_expression "pcVar15 = "(blob)"" identifier = (string_literal ""(blob)"" " string_content ")) ;) (if_statement "if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }" if (parenthesized_expression "((uVar4 & 1) != 0)" ( (binary_expression "(uVar4 & 1) != 0" (parenthesized_expression "(uVar4 & 1)" ( (binary_expression "uVar4 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n            pcVar15 = "NULL";\n          }" { (expression_statement "pcVar15 = "NULL";" (assignment_expression "pcVar15 = "NULL"" identifier = (string_literal ""NULL"" " string_content ")) ;) })) (goto_statement "goto LAB_0008e59b;" goto statement_identifier ;) })) (expression_statement "uVar18 = *puVar6;" (assignment_expression "uVar18 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "pcVar15 = "%.16g";" (assignment_expression "pcVar15 = "%.16g"" identifier = (string_literal ""%.16g"" " string_content ")) ;) }) (else_clause "else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" else (compound_statement "{\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" { (expression_statement "uVar18 = *puVar6;" (assignment_expression "uVar18 = *puVar6" identifier = (pointer_expression "*puVar6" * identifier)) ;) (expression_statement "pcVar15 = "%lld";" (assignment_expression "pcVar15 = "%lld"" identifier = (string_literal ""%lld"" " string_content ")) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;" default : (expression_statement "pcVar15 = *(char **)(pcVar2 + 0x10);" (assignment_expression "pcVar15 = *(char **)(pcVar2 + 0x10)" identifier = (pointer_expression "*(char **)(pcVar2 + 0x10)" * (cast_expression "(char **)(pcVar2 + 0x10)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_0008e3c2;" goto statement_identifier ;)) (case_statement "case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;" case number_literal : (expression_statement "iVar13 = *(int *)(pcVar2 + 0x10);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6))" identifier (argument_list "(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6))" ( (pointer_expression "&local_10c" & identifier) , (pointer_expression "&UNK_000aae0d" & identifier) , (pointer_expression "*(undefined2 *)(iVar13 + 6)" * (cast_expression "(undefined2 *)(iVar13 + 6)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 6)" ( (binary_expression "iVar13 + 6" identifier + number_literal) )))) ))) ;) (if_statement "if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }" if (parenthesized_expression "(*(short *)(iVar13 + 6) != 0)" ( (binary_expression "*(short *)(iVar13 + 6) != 0" (pointer_expression "*(short *)(iVar13 + 6)" * (cast_expression "(short *)(iVar13 + 6)" ( (type_descriptor "short *" (sized_type_specifier "short" short) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 6)" ( (binary_expression "iVar13 + 6" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }" { (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" identifier = number_literal) ;) (expression_statement "pbVar1 = (byte *)0xab03d;" (assignment_expression "pbVar1 = (byte *)0xab03d" identifier = (cast_expression "(byte *)0xab03d" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (do_statement "do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));" do (compound_statement "{\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        }" { (expression_statement "puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);" (assignment_expression "puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" identifier = (pointer_expression "*(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" * (cast_expression "(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 0x14 + iVar23 * 4)" ( (binary_expression "iVar13 + 0x14 + iVar23 * 4" (binary_expression "iVar13 + 0x14" identifier + number_literal) + (binary_expression "iVar23 * 4" identifier * number_literal)) ))))) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "bVar26 = puVar6 == (undefined4 *)0x0;" (assignment_expression "bVar26 = puVar6 == (undefined4 *)0x0" identifier = (binary_expression "puVar6 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) (expression_statement "pbVar16 = pbVar1;" (assignment_expression "pbVar16 = pbVar1" identifier = identifier) ;) (if_statement "if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }" if (parenthesized_expression "(!bVar26)" ( (unary_expression "!bVar26" ! identifier) )) (compound_statement "{\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }" { (expression_statement "pbVar16 = (byte *)*puVar6;" (assignment_expression "pbVar16 = (byte *)*puVar6" identifier = (cast_expression "(byte *)*puVar6" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*puVar6" * identifier))) ;) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" identifier = identifier) ;) (expression_statement "pbVar20 = (byte *)"BINARY";" (assignment_expression "pbVar20 = (byte *)"BINARY"" identifier = (cast_expression "(byte *)"BINARY"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""BINARY"" " string_content "))) ;) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);" do (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            }" { (if_statement "if (iVar19 == 0) break;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) (expression_statement "bVar25 = *pbVar22 < *pbVar20;" (assignment_expression "bVar25 = *pbVar22 < *pbVar20" identifier = (binary_expression "*pbVar22 < *pbVar20" (pointer_expression "*pbVar22" * identifier) < (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "bVar26 = *pbVar22 == *pbVar20;" (assignment_expression "bVar26 = *pbVar22 == *pbVar20" identifier = (binary_expression "*pbVar22 == *pbVar20" (pointer_expression "*pbVar22" * identifier) == (pointer_expression "*pbVar20" * identifier))) ;) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar26)" ( identifier )) ;) (if_statement "if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }" if (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" ( (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" ( (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" ! identifier) && (unary_expression "!bVar26" ! identifier)) )) == identifier) )) (compound_statement "{\n              pbVar16 = &UNK_000aa643;\n            }" { (expression_statement "pbVar16 = &UNK_000aa643;" (assignment_expression "pbVar16 = &UNK_000aa643" identifier = (pointer_expression "&UNK_000aa643" & identifier)) ;) })) })) (expression_statement "bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);" (assignment_expression "bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" * (cast_expression "(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar13 + 0x10) + iVar23)" ( (binary_expression "*(int *)(iVar13 + 0x10) + iVar23" (pointer_expression "*(int *)(iVar13 + 0x10)" * (cast_expression "(int *)(iVar13 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) )))) + identifier) ))))) ;) (expression_statement "pbVar22 = &UNK_000aadef;" (assignment_expression "pbVar22 = &UNK_000aadef" identifier = (pointer_expression "&UNK_000aadef" & identifier)) ;) (if_statement "if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }" if (parenthesized_expression "((bVar9 & 2) == 0)" ( (binary_expression "(bVar9 & 2) == 0" (parenthesized_expression "(bVar9 & 2)" ( (binary_expression "bVar9 & 2" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar22 = pbVar1;\n          }" { (expression_statement "pbVar22 = pbVar1;" (assignment_expression "pbVar22 = pbVar1" identifier = identifier) ;) })) (expression_statement "pbVar20 = &DAT_000aa247;" (assignment_expression "pbVar20 = &DAT_000aa247" identifier = (pointer_expression "&DAT_000aa247" & identifier)) ;) (if_statement "if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }" if (parenthesized_expression "((bVar9 & 1) == 0)" ( (binary_expression "(bVar9 & 1) == 0" (parenthesized_expression "(bVar9 & 1)" ( (binary_expression "bVar9 & 1" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            pbVar20 = pbVar1;\n          }" { (expression_statement "pbVar20 = pbVar1;" (assignment_expression "pbVar20 = pbVar1" identifier = identifier) ;) })) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" identifier = (binary_expression "iVar23 + 1" identifier + number_literal)) ;) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16)" identifier (argument_list "(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16)" ( (pointer_expression "&local_10c" & identifier) , (pointer_expression "&UNK_000aae12" & identifier) , identifier , identifier , identifier ))) ;) }) while (parenthesized_expression "(iVar23 < (int)(uint)*(ushort *)(iVar13 + 6))" ( (binary_expression "iVar23 < (int)(uint)*(ushort *)(iVar13 + 6)" identifier < (binary_expression "(int)(uint)*(ushort *)(iVar13 + 6)" (cast_expression "(int)(uint)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(uint)" ( identifier ))) * (cast_expression "(ushort *)(iVar13 + 6)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 6)" ( (binary_expression "iVar13 + 6" identifier + number_literal) ))))) )) ;) })) (expression_statement "pcVar15 = ")";" (assignment_expression "pcVar15 = ")"" identifier = (string_literal "")"" " string_content ")) ;) (labeled_statement "code_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);" statement_identifier : (expression_statement "sqlite3_str_append(&local_10c,pcVar15,1);" (call_expression "sqlite3_str_append(&local_10c,pcVar15,1)" identifier (argument_list "(&local_10c,pcVar15,1)" ( (pointer_expression "&local_10c" & identifier) , identifier , number_literal ))) ;)) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" identifier = (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (goto_statement "goto code_r0x0008e5c0;" goto statement_identifier ;)) (case_statement "case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;" case number_literal : (expression_statement "iVar13 = *(int *)(pcVar2 + 0x10);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0x10)" identifier = (pointer_expression "*(int *)(pcVar2 + 0x10)" * (cast_expression "(int *)(pcVar2 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (labeled_statement "code_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);" statement_identifier : (expression_statement "uVar18 = *(undefined4 *)(iVar13 + 0x20);" (assignment_expression "uVar18 = *(undefined4 *)(iVar13 + 0x20)" identifier = (pointer_expression "*(undefined4 *)(iVar13 + 0x20)" * (cast_expression "(undefined4 *)(iVar13 + 0x20)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x20)" ( (binary_expression "iVar13 + 0x20" identifier + number_literal) ))))) ;)) (expression_statement "pcVar15 = "%s(%d)";" (assignment_expression "pcVar15 = "%s(%d)"" identifier = (string_literal ""%s(%d)"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;" case number_literal : (expression_statement "pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10)" identifier = (cast_expression "(char *)**(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))))) ;) (labeled_statement "LAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" statement_identifier : (if_statement "if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" if (parenthesized_expression "(pcVar15 != (char *)0x0)" ( (binary_expression "pcVar15 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" { (labeled_statement "LAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);" statement_identifier : (expression_statement "sqlite3_str_appendall(&local_10c,pcVar15);" (call_expression "sqlite3_str_appendall(&local_10c,pcVar15)" identifier (argument_list "(&local_10c,pcVar15)" ( (pointer_expression "&local_10c" & identifier) , identifier ))) ;)) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" identifier = (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (goto_statement "goto code_r0x0008e5c0;" goto statement_identifier ;) }))) (labeled_statement "code_r0x0008e3ca:\n      goto LAB_0008e3d0;" statement_identifier : (goto_statement "goto LAB_0008e3d0;" goto statement_identifier ;))) (case_statement "case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;" case number_literal : (expression_statement "pcVar15 = "program";" (assignment_expression "pcVar15 = "program"" identifier = (string_literal ""program"" " string_content ")) ;) (goto_statement "goto LAB_0008e59b;" goto statement_identifier ;)) (case_statement "case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;" case number_literal : (expression_statement "uVar18 = *(undefined4 *)(pcVar2 + 0x10);" (assignment_expression "uVar18 = *(undefined4 *)(pcVar2 + 0x10)" identifier = (pointer_expression "*(undefined4 *)(pcVar2 + 0x10)" * (cast_expression "(undefined4 *)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "pcVar15 = "%d";" (assignment_expression "pcVar15 = "%d"" identifier = (string_literal ""%d"" " string_content ")) ;) (break_statement "break;" break ;)) (case_statement "case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";" case number_literal : (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" identifier = (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" * (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" * (cast_expression "(undefined4 **)(pcVar2 + 0x10)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar2 + 0x10)" ( (binary_expression "pcVar2 + 0x10" identifier + number_literal) )))))) ;) (expression_statement "pcVar15 = "%.18s-%s";" (assignment_expression "pcVar15 = "%.18s-%s"" identifier = (string_literal ""%.18s-%s"" " string_content ")) ;)) })) (expression_statement "sqlite3_str_appendf(&local_10c,pcVar15,uVar18);" (call_expression "sqlite3_str_appendf(&local_10c,pcVar15,uVar18)" identifier (argument_list "(&local_10c,pcVar15,uVar18)" ( (pointer_expression "&local_10c" & identifier) , identifier , identifier ))) ;) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" identifier = (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal)) ;) (labeled_statement "code_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" statement_identifier : (if_statement "if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" if (parenthesized_expression "((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0))" ( (binary_expression "(bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "(bVar9 != 0)" ( (binary_expression "bVar9 != 0" identifier != number_literal) )) && (parenthesized_expression "((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar5 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar5 + 0x4c)" * (cast_expression "(uint *)(iVar5 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4c)" ( (binary_expression "iVar5 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      FUN_0002e050();\n    }" { (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" identifier (argument_list "()" ( ))) ;) }))) (labeled_statement "LAB_0008e3d0:\n    FUN_0002e520();" statement_identifier : (expression_statement "FUN_0002e520();" (call_expression "FUN_0002e520()" identifier (argument_list "()" ( ))) ;)) (if_statement "if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" if (parenthesized_expression "((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8)" ( (binary_expression "(*(byte *)((int)param_1 + 0x8e) & 0xc) == 8" (parenthesized_expression "(*(byte *)((int)param_1 + 0x8e) & 0xc)" ( (binary_expression "*(byte *)((int)param_1 + 0x8e) & 0xc" (pointer_expression "*(byte *)((int)param_1 + 0x8e)" * (cast_expression "(byte *)((int)param_1 + 0x8e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8e)" ( (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }" { (expression_statement "iVar13 = *(int *)(pcVar2 + 4);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 4)" identifier = (pointer_expression "*(int *)(pcVar2 + 4)" * (cast_expression "(int *)(pcVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 4)" ( (binary_expression "pcVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x30)" * (cast_expression "(ushort *)(iVar17 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x28) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x28) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x28)" * (cast_expression "(int *)(iVar17 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x28)" ( (binary_expression "iVar17 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x2c)" * (cast_expression "(int *)(iVar17 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2c)" ( (binary_expression "iVar17 + 0x2c" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x30)" * (cast_expression "(undefined2 *)(iVar17 + 0x30)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 8);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 8)" identifier = (pointer_expression "*(int *)(pcVar2 + 8)" * (cast_expression "(int *)(pcVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 8)" ( (binary_expression "pcVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x58) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x58) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x58) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x58)" * (cast_expression "(ushort *)(iVar17 + 0x58)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x58)" ( (binary_expression "iVar17 + 0x58" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x50) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x50) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x50)" * (cast_expression "(int *)(iVar17 + 0x50)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x50)" ( (binary_expression "iVar17 + 0x50" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x54) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x54)" * (cast_expression "(int *)(iVar17 + 0x54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x54)" ( (binary_expression "iVar17 + 0x54" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x58) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x58) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x58)" * (cast_expression "(undefined2 *)(iVar17 + 0x58)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x58)" ( (binary_expression "iVar17 + 0x58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 0xc);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0xc)" identifier = (pointer_expression "*(int *)(pcVar2 + 0xc)" * (cast_expression "(int *)(pcVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xc)" ( (binary_expression "pcVar2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x80)" * (cast_expression "(ushort *)(iVar17 + 0x80)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x78) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x78) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x78)" * (cast_expression "(int *)(iVar17 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x78)" ( (binary_expression "iVar17 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x7c)" * (cast_expression "(int *)(iVar17 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x7c)" ( (binary_expression "iVar17 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x80)" * (cast_expression "(undefined2 *)(iVar17 + 0x80)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_000484d0(1,puVar8);" (call_expression "FUN_000484d0(1,puVar8)" identifier (argument_list "(1,puVar8)" ( number_literal , identifier ))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x22) = 4;" (assignment_expression "*(undefined2 *)(param_1 + 0x22) = 4" (pointer_expression "*(undefined2 *)(param_1 + 0x22)" * (cast_expression "(undefined2 *)(param_1 + 0x22)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" else (compound_statement "{\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" { (if_statement "if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x30)" * (cast_expression "(ushort *)(iVar17 + 0x30)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x2c)" * (cast_expression "(int *)(iVar17 + 0x2c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x2c)" ( (binary_expression "iVar17 + 0x2c" identifier + number_literal) )))) = (binary_expression "iVar12 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(int *)(iVar17 + 0x28) = iVar12;" (assignment_expression "*(int *)(iVar17 + 0x28) = iVar12" (pointer_expression "*(int *)(iVar17 + 0x28)" * (cast_expression "(int *)(iVar17 + 0x28)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x28)" ( (binary_expression "iVar17 + 0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x30)" * (cast_expression "(undefined2 *)(iVar17 + 0x30)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x30)" ( (binary_expression "iVar17 + 0x30" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_000484d0(1,0);" (call_expression "FUN_000484d0(1,0)" identifier (argument_list "(1,0)" ( number_literal , number_literal ))) ;) (expression_statement "iVar13 = *(int *)(pcVar2 + 4);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 4)" identifier = (pointer_expression "*(int *)(pcVar2 + 4)" * (cast_expression "(int *)(pcVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 4)" ( (binary_expression "pcVar2 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x80)" * (cast_expression "(ushort *)(iVar17 + 0x80)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0x78) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x78) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x78)" * (cast_expression "(int *)(iVar17 + 0x78)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x78)" ( (binary_expression "iVar17 + 0x78" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x7c)" * (cast_expression "(int *)(iVar17 + 0x7c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x7c)" ( (binary_expression "iVar17 + 0x7c" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x80)" * (cast_expression "(undefined2 *)(iVar17 + 0x80)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x80)" ( (binary_expression "iVar17 + 0x80" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 8);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 8)" identifier = (pointer_expression "*(int *)(pcVar2 + 8)" * (cast_expression "(int *)(pcVar2 + 8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 8)" ( (binary_expression "pcVar2 + 8" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0xa8) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0xa8) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0xa8)" * (cast_expression "(ushort *)(iVar17 + 0xa8)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa8)" ( (binary_expression "iVar17 + 0xa8" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 0xa0) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0xa0) = iVar13" (pointer_expression "*(int *)(iVar17 + 0xa0)" * (cast_expression "(int *)(iVar17 + 0xa0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa0)" ( (binary_expression "iVar17 + 0xa0" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0xa4)" * (cast_expression "(int *)(iVar17 + 0xa4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa4)" ( (binary_expression "iVar17 + 0xa4" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0xa8) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0xa8) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0xa8)" * (cast_expression "(undefined2 *)(iVar17 + 0xa8)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xa8)" ( (binary_expression "iVar17 + 0xa8" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "iVar13 = *(int *)(pcVar2 + 0xc);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0xc)" identifier = (pointer_expression "*(int *)(pcVar2 + 0xc)" * (cast_expression "(int *)(pcVar2 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 0xc)" ( (binary_expression "pcVar2 + 0xc" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0xd0) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0xd0) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0xd0)" * (cast_expression "(ushort *)(iVar17 + 0xd0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xd0)" ( (binary_expression "iVar17 + 0xd0" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }" { (expression_statement "*(int *)(iVar17 + 200) = iVar13;" (assignment_expression "*(int *)(iVar17 + 200) = iVar13" (pointer_expression "*(int *)(iVar17 + 200)" * (cast_expression "(int *)(iVar17 + 200)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 200)" ( (binary_expression "iVar17 + 200" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0xcc)" * (cast_expression "(int *)(iVar17 + 0xcc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xcc)" ( (binary_expression "iVar17 + 0xcc" identifier + number_literal) )))) = (binary_expression "iVar13 >> 0x1f" identifier >> number_literal)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0xd0) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0xd0) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0xd0)" * (cast_expression "(undefined2 *)(iVar17 + 0xd0)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0xd0)" ( (binary_expression "iVar17 + 0xd0" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "uVar4 = *(ushort *)(pcVar2 + 2);" (assignment_expression "uVar4 = *(ushort *)(pcVar2 + 2)" identifier = (pointer_expression "*(ushort *)(pcVar2 + 2)" * (cast_expression "(ushort *)(pcVar2 + 2)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar2 + 2)" ( (binary_expression "pcVar2 + 2" identifier + number_literal) ))))) ;) (if_statement "if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x120) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x120) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x120) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x120)" * (cast_expression "(ushort *)(iVar17 + 0x120)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x120)" ( (binary_expression "iVar17 + 0x120" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }" { (expression_statement "*(undefined4 *)(iVar17 + 0x11c) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x11c) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x11c)" * (cast_expression "(undefined4 *)(iVar17 + 0x11c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x11c)" ( (binary_expression "iVar17 + 0x11c" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(uint *)(iVar17 + 0x118) = (uint)uVar4;" (assignment_expression "*(uint *)(iVar17 + 0x118) = (uint)uVar4" (pointer_expression "*(uint *)(iVar17 + 0x118)" * (cast_expression "(uint *)(iVar17 + 0x118)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x118)" ( (binary_expression "iVar17 + 0x118" identifier + number_literal) )))) = (cast_expression "(uint)uVar4" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "*(undefined2 *)(iVar17 + 0x120) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x120) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x120)" * (cast_expression "(undefined2 *)(iVar17 + 0x120)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x120)" ( (binary_expression "iVar17 + 0x120" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_00024920();\n      }" else (compound_statement "{\n        FUN_00024920();\n      }" { (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }" if (parenthesized_expression "((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0)" ( (binary_expression "(*(ushort *)(iVar17 + 0x148) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x148) & 0x2400)" ( (binary_expression "*(ushort *)(iVar17 + 0x148) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x148)" * (cast_expression "(ushort *)(iVar17 + 0x148)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x148)" ( (binary_expression "iVar17 + 0x148" identifier + number_literal) )))) & number_literal) )) == number_literal) )) (compound_statement "{\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }" { (expression_statement "*(undefined2 *)(iVar17 + 0x148) = 1;" (assignment_expression "*(undefined2 *)(iVar17 + 0x148) = 1" (pointer_expression "*(undefined2 *)(iVar17 + 0x148)" * (cast_expression "(undefined2 *)(iVar17 + 0x148)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x148)" ( (binary_expression "iVar17 + 0x148" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n        FUN_000248e0();\n      }" else (compound_statement "{\n        FUN_000248e0();\n      }" { (expression_statement "FUN_000248e0();" (call_expression "FUN_000248e0()" identifier (argument_list "()" ( ))) ;) }))) (expression_statement "FUN_000484d0(1,puVar8);" (call_expression "FUN_000484d0(1,puVar8)" identifier (argument_list "(1,puVar8)" ( number_literal , identifier ))) ;) (expression_statement "*(undefined2 *)(param_1 + 0x22) = 8;" (assignment_expression "*(undefined2 *)(param_1 + 0x22) = 8" (pointer_expression "*(undefined2 *)(param_1 + 0x22)" * (cast_expression "(undefined2 *)(param_1 + 0x22)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x22)" ( (binary_expression "param_1 + 0x22" identifier + number_literal) )))) = number_literal) ;) }))) (expression_statement "param_1[0x1d] = iVar17 + 0x28;" (assignment_expression "param_1[0x1d] = iVar17 + 0x28" (subscript_expression "param_1[0x1d]" identifier [ number_literal ]) = (binary_expression "iVar17 + 0x28" identifier + number_literal)) ;) (if_statement "if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" if (parenthesized_expression "(*(char *)(iVar5 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar5 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x4d)" * (cast_expression "(char *)(iVar5 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar5 + 0x4d)" ( (binary_expression "iVar5 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }" { (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" identifier = number_literal) ;) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" identifier = false) ;) (expression_statement "uVar24 = 100;" (assignment_expression "uVar24 = 100" identifier = number_literal) ;) }) (else_clause "else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" else (compound_statement "{\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" { (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_0008e141:\n      iVar17 = param_1[0x21];" statement_identifier : (expression_statement "iVar17 = param_1[0x21];" (assignment_expression "iVar17 = param_1[0x21]" identifier = (subscript_expression "param_1[0x21]" identifier [ number_literal ])) ;)) (if_statement "if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }" if (parenthesized_expression "(-1 < iVar17)" ( (binary_expression "-1 < iVar17" number_literal < identifier) )) (compound_statement "{\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }" { (labeled_statement "joined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }" statement_identifier : (if_statement "if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }" if (parenthesized_expression "((0 < iVar17) || (param_1[0x20] != 0))" ( (binary_expression "(0 < iVar17) || (param_1[0x20] != 0)" (parenthesized_expression "(0 < iVar17)" ( (binary_expression "0 < iVar17" number_literal < identifier) )) || (parenthesized_expression "(param_1[0x20] != 0)" ( (binary_expression "param_1[0x20] != 0" (subscript_expression "param_1[0x20]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n          FUN_0001f8e0();\n        }" { (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" identifier (argument_list "()" ( ))) ;) }))) })) (labeled_statement "LAB_0008e157:\n      uVar24 = 1;" statement_identifier : (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" identifier = number_literal) ;)) (labeled_statement "LAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" statement_identifier : (if_statement "if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" if (parenthesized_expression "((char)param_1[0x23] < '\0')" ( (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        uVar24 = FUN_000488a0();\n      }" { (expression_statement "uVar24 = FUN_000488a0();" (assignment_expression "uVar24 = FUN_000488a0()" identifier = (call_expression "FUN_000488a0()" identifier (argument_list "()" ( )))) ;) }))) (labeled_statement "LAB_0008dc84:\n      local_148 = param_1[10];" statement_identifier : (expression_statement "local_148 = param_1[10];" (assignment_expression "local_148 = param_1[10]" identifier = (subscript_expression "param_1[10]" identifier [ number_literal ])) ;)) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" identifier = (binary_expression "local_148 == 0xc0a" identifier == number_literal)) ;) }))) (labeled_statement "LAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;" statement_identifier : (expression_statement "*(uint *)(iVar14 + 0x3c) = uVar24;" (assignment_expression "*(uint *)(iVar14 + 0x3c) = uVar24" (pointer_expression "*(uint *)(iVar14 + 0x3c)" * (cast_expression "(uint *)(iVar14 + 0x3c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x3c)" ( (binary_expression "iVar14 + 0x3c" identifier + number_literal) )))) = identifier) ;)) (if_statement "if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" if (parenthesized_expression "((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25))" ( (binary_expression "(*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)" (parenthesized_expression "(*(char *)(*param_1 + 0x4d) != '\0')" ( (binary_expression "*(char *)(*param_1 + 0x4d) != '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" * (cast_expression "(char *)(*param_1 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x4d)" ( (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" * identifier) + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(bVar25)" ( identifier ))) )) (compound_statement "{\n      local_148 = FUN_00031c90();\n    }" { (expression_statement "local_148 = FUN_00031c90();" (assignment_expression "local_148 = FUN_00031c90()" identifier = (call_expression "FUN_00031c90()" identifier (argument_list "()" ( )))) ;) }) (else_clause "else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" else (compound_statement "{\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" { (expression_statement "local_148 = local_148 & *(uint *)(*param_1 + 0x40);" (assignment_expression "local_148 = local_148 & *(uint *)(*param_1 + 0x40)" identifier = (binary_expression "local_148 & *(uint *)(*param_1 + 0x40)" identifier & (pointer_expression "*(uint *)(*param_1 + 0x40)" * (cast_expression "(uint *)(*param_1 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + 0x40)" ( (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" * identifier) + number_literal) )))))) ;) }))) (if_statement "if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }" if (parenthesized_expression "((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0'))" ( (binary_expression "(local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')" (parenthesized_expression "(local_148 == 7)" ( (binary_expression "local_148 == 7" identifier == number_literal) )) && (parenthesized_expression "(param_1[10] = 7, (char)param_1[0x23] < '\0')" ( (comma_expression "param_1[10] = 7, (char)param_1[0x23] < '\0'" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) , (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) < (char_literal "'\0'" ' escape_sequence '))) ))) )) (compound_statement "{\n      uVar24 = 7;\n    }" { (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" identifier = number_literal) ;) })) (labeled_statement "LAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);" statement_identifier : (expression_statement "uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);" (assignment_expression "uVar24 = uVar24 & *(uint *)(iVar14 + 0x40)" identifier = (binary_expression "uVar24 & *(uint *)(iVar14 + 0x40)" identifier & (pointer_expression "*(uint *)(iVar14 + 0x40)" * (cast_expression "(uint *)(iVar14 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + 0x40)" ( (binary_expression "iVar14 + 0x40" identifier + number_literal) )))))) ;)) (if_statement "if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;" if (parenthesized_expression "((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0))" ( (binary_expression "(uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)" (parenthesized_expression "(uVar24 != 0x11)" ( (binary_expression "uVar24 != 0x11" identifier != number_literal) )) || (parenthesized_expression "(local_138 = local_138 + -1, local_138 == 0)" ( (comma_expression "local_138 = local_138 + -1, local_138 == 0" (assignment_expression "local_138 = local_138 + -1" identifier = (binary_expression "local_138 + -1" identifier + number_literal)) , (binary_expression "local_138 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0008dc24;" goto statement_identifier ;)) (expression_statement "iVar14 = param_1[9];" (assignment_expression "iVar14 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "sqlite3_sql(param_1);" (call_expression "sqlite3_sql(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "iVar17 = *param_1;" (assignment_expression "iVar17 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);" (assignment_expression "uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0)" identifier = (call_expression "FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0)" identifier (argument_list "((char)param_1[0x23],param_1,&local_10c,0)" ( (cast_expression "(char)param_1[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "param_1[0x23]" identifier [ number_literal ])) , identifier , (pointer_expression "&local_10c" & identifier) , number_literal )))) ;) (if_statement "if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }" if (parenthesized_expression "(uVar24 == 0)" ( (binary_expression "uVar24 == 0" identifier == number_literal) )) (compound_statement "{\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }" { (expression_statement "piVar21 = local_10c;" (assignment_expression "piVar21 = local_10c" identifier = identifier) ;) (expression_statement "piVar11 = local_f4;" (assignment_expression "piVar11 = local_f4" identifier = identifier) ;) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" for ( (assignment_expression "iVar17 = 0x35" identifier = number_literal) ; (binary_expression "iVar17 != 0" identifier != number_literal) ; (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar21 = param_1;" (assignment_expression "piVar21 = param_1" identifier = identifier) ;) (expression_statement "piVar11 = local_10c;" (assignment_expression "piVar11 = local_10c" identifier = identifier) ;) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" for ( (assignment_expression "iVar17 = 0x35" identifier = number_literal) ; (binary_expression "iVar17 != 0" identifier != number_literal) ; (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "piVar21 = local_f4;" (assignment_expression "piVar21 = local_f4" identifier = identifier) ;) (expression_statement "piVar11 = param_1;" (assignment_expression "piVar11 = param_1" identifier = identifier) ;) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" for ( (assignment_expression "iVar17 = 0x35" identifier = number_literal) ; (binary_expression "iVar17 != 0" identifier != number_literal) ; (assignment_expression "iVar17 = iVar17 + -1" identifier = (binary_expression "iVar17 + -1" identifier + number_literal)) ) (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" { (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" * identifier) = (pointer_expression "*piVar21" * identifier)) ;) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" identifier = (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" identifier + (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "iVar17 = local_10c[2];" (assignment_expression "iVar17 = local_10c[2]" identifier = (subscript_expression "local_10c[2]" identifier [ number_literal ])) ;) (expression_statement "local_10c[2] = param_1[2];" (assignment_expression "local_10c[2] = param_1[2]" (subscript_expression "local_10c[2]" identifier [ number_literal ]) = (subscript_expression "param_1[2]" identifier [ number_literal ])) ;) (expression_statement "param_1[2] = iVar17;" (assignment_expression "param_1[2] = iVar17" (subscript_expression "param_1[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = local_10c[1];" (assignment_expression "iVar17 = local_10c[1]" identifier = (subscript_expression "local_10c[1]" identifier [ number_literal ])) ;) (expression_statement "local_10c[1] = param_1[1];" (assignment_expression "local_10c[1] = param_1[1]" (subscript_expression "local_10c[1]" identifier [ number_literal ]) = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = iVar17;" (assignment_expression "param_1[1] = iVar17" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar17 = local_10c[0x2d];" (assignment_expression "iVar17 = local_10c[0x2d]" identifier = (subscript_expression "local_10c[0x2d]" identifier [ number_literal ])) ;) (expression_statement "local_10c[0x2d] = param_1[0x2d];" (assignment_expression "local_10c[0x2d] = param_1[0x2d]" (subscript_expression "local_10c[0x2d]" identifier [ number_literal ]) = (subscript_expression "param_1[0x2d]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2d] = iVar17;" (assignment_expression "param_1[0x2d] = iVar17" (subscript_expression "param_1[0x2d]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_1[0x32] = local_10c[0x32];" (assignment_expression "param_1[0x32] = local_10c[0x32]" (subscript_expression "param_1[0x32]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x32]" identifier [ number_literal ])) ;) (expression_statement "*(char *)(param_1 + 0x23) = (char)local_10c[0x23];" (assignment_expression "*(char *)(param_1 + 0x23) = (char)local_10c[0x23]" (pointer_expression "*(char *)(param_1 + 0x23)" * (cast_expression "(char *)(param_1 + 0x23)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x23)" ( (binary_expression "param_1 + 0x23" identifier + number_literal) )))) = (cast_expression "(char)local_10c[0x23]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "local_10c[0x23]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x26] = local_10c[0x26];" (assignment_expression "param_1[0x26] = local_10c[0x26]" (subscript_expression "param_1[0x26]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x26]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x27] = local_10c[0x27];" (assignment_expression "param_1[0x27] = local_10c[0x27]" (subscript_expression "param_1[0x27]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x27]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x28] = local_10c[0x28];" (assignment_expression "param_1[0x28] = local_10c[0x28]" (subscript_expression "param_1[0x28]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x28]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x29] = local_10c[0x29];" (assignment_expression "param_1[0x29] = local_10c[0x29]" (subscript_expression "param_1[0x29]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x29]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2a] = local_10c[0x2a];" (assignment_expression "param_1[0x2a] = local_10c[0x2a]" (subscript_expression "param_1[0x2a]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x2a]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2b] = local_10c[0x2b];" (assignment_expression "param_1[0x2b] = local_10c[0x2b]" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) = (subscript_expression "local_10c[0x2b]" identifier [ number_literal ])) ;) (expression_statement "iVar17 = local_10c[0x2c];" (assignment_expression "iVar17 = local_10c[0x2c]" identifier = (subscript_expression "local_10c[0x2c]" identifier [ number_literal ])) ;) (expression_statement "param_1[0x2b] = param_1[0x2b] + 1;" (assignment_expression "param_1[0x2b] = param_1[0x2b] + 1" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) = (binary_expression "param_1[0x2b] + 1" (subscript_expression "param_1[0x2b]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_1[0x2c] = iVar17;" (assignment_expression "param_1[0x2c] = iVar17" (subscript_expression "param_1[0x2c]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_00024cd0();" (call_expression "FUN_00024cd0()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_10c[10] = 0;" (assignment_expression "local_10c[10] = 0" (subscript_expression "local_10c[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "FUN_0006fe50();" (call_expression "FUN_0006fe50()" identifier (argument_list "()" ( ))) ;) (expression_statement "sqlite3_reset(param_1);" (call_expression "sqlite3_reset(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }" if (parenthesized_expression "(-1 < iVar14)" ( (binary_expression "-1 < iVar14" number_literal < identifier) )) (compound_statement "{\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }" { (expression_statement "*(undefined1 *)((int)param_1 + 0x8d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x8d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x8d)" * (cast_expression "(undefined1 *)((int)param_1 + 0x8d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x8d)" ( (binary_expression "(int)param_1 + 0x8d" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = number_literal) ;) })) (goto_statement "goto LAB_0008da88;" goto statement_identifier ;) })) (if_statement "if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" if (parenthesized_expression "((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0))" ( (binary_expression "(uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "(uVar24 == 7)" ( (binary_expression "uVar24 == 7" identifier == number_literal) )) && (parenthesized_expression "((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar17 + 0x4c) & 0xffff00)" ( (binary_expression "*(uint *)(iVar17 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar17 + 0x4c)" * (cast_expression "(uint *)(iVar17 + 0x4c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4c)" ( (binary_expression "iVar17 + 0x4c" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n      FUN_0002e050();\n    }" { (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));" (call_expression "sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104))" identifier (argument_list "(*(undefined4 *)(iVar10 + 0x104))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0x104)" * (cast_expression "(undefined4 *)(iVar10 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x104)" ( (binary_expression "iVar10 + 0x104" identifier + number_literal) )))) ))) ;) (if_statement "if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }" if (parenthesized_expression "(param_1[0x1e] != 0)" ( (binary_expression "param_1[0x1e] != 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      FUN_00024720();\n    }" { (expression_statement "FUN_00024720();" (call_expression "FUN_00024720()" identifier (argument_list "()" ( ))) ;) })) (if_statement "if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" if (parenthesized_expression "(*(char *)(iVar10 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar10 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar10 + 0x4d)" * (cast_expression "(char *)(iVar10 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4d)" ( (binary_expression "iVar10 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }" { (expression_statement "iVar14 = FUN_0002eba0();" (assignment_expression "iVar14 = FUN_0002eba0()" identifier = (call_expression "FUN_0002eba0()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_1[0x1e] = iVar14;" (assignment_expression "param_1[0x1e] = iVar14" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = identifier) ;) (if_statement "if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }" if (parenthesized_expression "((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a))" ( (binary_expression "(*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)" (parenthesized_expression "(*(char *)(iVar10 + 0x4d) == '\0')" ( (binary_expression "*(char *)(iVar10 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar10 + 0x4d)" * (cast_expression "(char *)(iVar10 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x4d)" ( (binary_expression "iVar10 + 0x4d" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(uVar24 != 0xc0a)" ( (binary_expression "uVar24 != 0xc0a" identifier != number_literal) ))) )) (compound_statement "{\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }" { (expression_statement "uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);" (assignment_expression "uVar24 = uVar24 & *(uint *)(iVar10 + 0x40)" identifier = (binary_expression "uVar24 & *(uint *)(iVar10 + 0x40)" identifier & (pointer_expression "*(uint *)(iVar10 + 0x40)" * (cast_expression "(uint *)(iVar10 + 0x40)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0x40)" ( (binary_expression "iVar10 + 0x40" identifier + number_literal) )))))) ;) }) (else_clause "else {\n        uVar24 = FUN_00031c90();\n      }" else (compound_statement "{\n        uVar24 = FUN_00031c90();\n      }" { (expression_statement "uVar24 = FUN_00031c90();" (assignment_expression "uVar24 = FUN_00031c90()" identifier = (call_expression "FUN_00031c90()" identifier (argument_list "()" ( )))) ;) }))) (expression_statement "param_1[10] = uVar24;" (assignment_expression "param_1[10] = uVar24" (subscript_expression "param_1[10]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" else (compound_statement "{\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" { (expression_statement "param_1[0x1e] = 0;" (assignment_expression "param_1[0x1e] = 0" (subscript_expression "param_1[0x1e]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" identifier = number_literal) ;) }))) (labeled_statement "LAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));" statement_identifier : (expression_statement "sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));" (call_expression "sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar10 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" * (cast_expression "(undefined4 *)(iVar10 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar10 + 0xc)" ( (binary_expression "iVar10 + 0xc" identifier + number_literal) )))) ))) ;)) }) (else_clause "else {\n    uVar24 = FUN_000380c0();\n  }" else (compound_statement "{\n    uVar24 = FUN_000380c0();\n  }" { (expression_statement "uVar24 = FUN_000380c0();" (assignment_expression "uVar24 = FUN_000380c0()" identifier = (call_expression "FUN_000380c0()" identifier (argument_list "()" ( )))) ;) }))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" if (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" identifier != (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    FUN_000a9ea0();\n  }" { (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" identifier (argument_list "()" ( ))) ;) })) (return_statement "return uVar24;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (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)) ;) })) (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 (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_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 (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 ( )))) ;) (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)) ;) (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 LIT < (subscript_expression IDENT [ LIT ])) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression LIT < (subscript_expression IDENT [ LIT ])) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + 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 (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) && (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression IDENT * LIT)) )))) , IDENT )))) ;) }))) }))) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_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 == LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) & LIT) )) + LIT)) ;) }))) })))) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT) & LIT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) })) }))) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) < LIT) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (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 ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (goto_statement goto statement_identifier ;)) (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) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ 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) )))) = (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) }) (else_clause else (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 * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })))) })) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) || (parenthesized_expression ( (binary_expression IDENT < LIT) )))) )) ))) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (switch_statement switch (parenthesized_expression ( (subscript_expression IDENT [ LIT ]) )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , (pointer_expression * IDENT) ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ 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 = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) }))) (break_statement break ;)) (case_statement default : (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 ;)) (case_statement case 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 IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_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 (sized_type_specifier short) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT , IDENT , IDENT ))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (goto_statement goto statement_identifier ;) }))) (labeled_statement statement_identifier : (goto_statement goto statement_identifier ;))) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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 = (string_literal " string_content ")) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;)) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (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 IDENT (argument_list ( ))) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (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 IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (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 { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (pointer_expression * IDENT) + LIT) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < (char_literal ' escape_sequence '))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT & (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) , IDENT , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = LIT) ;) })) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = 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) )))) == (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression 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 = (call_expression IDENT (argument_list ( )))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( (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 = (call_expression IDENT (argument_list ( )))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (return_statement return IDENT ;) })))
(function_definition "uint sqlite3_step(int *param_1)\n\n{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return uVar24;\n}" (type_identifier "uint") (function_declarator "sqlite3_step(int *param_1)" (identifier "sqlite3_step") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  char *pcVar2;\n  char cVar3;\n  ushort uVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  int *piVar7;\n  undefined *puVar8;\n  byte bVar9;\n  int iVar10;\n  int *piVar11;\n  int iVar12;\n  int iVar13;\n  int iVar14;\n  char *pcVar15;\n  byte *pbVar16;\n  int iVar17;\n  undefined4 uVar18;\n  int iVar19;\n  byte *pbVar20;\n  int *piVar21;\n  byte *pbVar22;\n  int iVar23;\n  uint uVar24;\n  int in_GS_OFFSET;\n  bool bVar25;\n  bool bVar26;\n  byte bVar27;\n  uint local_148;\n  int local_144;\n  uint local_13c;\n  int local_138;\n  int *local_10c;\n  undefined4 local_108;\n  undefined4 local_104;\n  undefined4 local_100;\n  undefined4 local_fc;\n  undefined2 local_f8;\n  int local_f4 [53];\n  int local_20;\n  undefined4 uStack_14;\n  \n  bVar27 = 0;\n  uStack_14 = 0x8da19;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar10 = FUN_0003bbd0();\n  if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }\n  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }\n  return uVar24;\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "char *pcVar2;" (primitive_type "char") (pointer_declarator "*pcVar2" (* "*") (identifier "pcVar2")) (; ";")) (declaration "char cVar3;" (primitive_type "char") (identifier "cVar3") (; ";")) (declaration "ushort uVar4;" (type_identifier "ushort") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int *piVar7;" (primitive_type "int") (pointer_declarator "*piVar7" (* "*") (identifier "piVar7")) (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "byte bVar9;" (type_identifier "byte") (identifier "bVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "byte *pbVar16;" (type_identifier "byte") (pointer_declarator "*pbVar16" (* "*") (identifier "pbVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "undefined4 uVar18;" (type_identifier "undefined4") (identifier "uVar18") (; ";")) (declaration "int iVar19;" (primitive_type "int") (identifier "iVar19") (; ";")) (declaration "byte *pbVar20;" (type_identifier "byte") (pointer_declarator "*pbVar20" (* "*") (identifier "pbVar20")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "int iVar23;" (primitive_type "int") (identifier "iVar23") (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "bool bVar25;" (primitive_type "bool") (identifier "bVar25") (; ";")) (declaration "bool bVar26;" (primitive_type "bool") (identifier "bVar26") (; ";")) (declaration "byte bVar27;" (type_identifier "byte") (identifier "bVar27") (; ";")) (declaration "uint local_148;" (type_identifier "uint") (identifier "local_148") (; ";")) (declaration "int local_144;" (primitive_type "int") (identifier "local_144") (; ";")) (declaration "uint local_13c;" (type_identifier "uint") (identifier "local_13c") (; ";")) (declaration "int local_138;" (primitive_type "int") (identifier "local_138") (; ";")) (declaration "int *local_10c;" (primitive_type "int") (pointer_declarator "*local_10c" (* "*") (identifier "local_10c")) (; ";")) (declaration "undefined4 local_108;" (type_identifier "undefined4") (identifier "local_108") (; ";")) (declaration "undefined4 local_104;" (type_identifier "undefined4") (identifier "local_104") (; ";")) (declaration "undefined4 local_100;" (type_identifier "undefined4") (identifier "local_100") (; ";")) (declaration "undefined4 local_fc;" (type_identifier "undefined4") (identifier "local_fc") (; ";")) (declaration "undefined2 local_f8;" (type_identifier "undefined2") (identifier "local_f8") (; ";")) (declaration "int local_f4 [53];" (primitive_type "int") (array_declarator "local_f4 [53]" (identifier "local_f4") ([ "[") (number_literal "53") (] "]")) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "bVar27 = 0;" (assignment_expression "bVar27 = 0" (identifier "bVar27") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0x8da19;" (assignment_expression "uStack_14 = 0x8da19" (identifier "uStack_14") (= "=") (number_literal "0x8da19")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar10 = FUN_0003bbd0();" (assignment_expression "iVar10 = FUN_0003bbd0()" (identifier "iVar10") (= "=") (call_expression "FUN_0003bbd0()" (identifier "FUN_0003bbd0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar10 == 0) {\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }\n  else {\n    uVar24 = FUN_000380c0();\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar10 = *param_1;\n    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));\n    puVar8 = PTR_sqlite3_free_000ddfe0;\n    *(undefined1 *)((int)param_1 + 0x8d) = 0;\n    local_138 = 0x33;\nLAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }\n    iVar14 = *param_1;\n    if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }\nLAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }\n    iVar17 = param_1[0x15];\n    iVar5 = *param_1;\n    local_13c = 1;\n    if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }\n    if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }\n    param_1[0x1d] = 0;\n    if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }\n    bVar9 = *(byte *)((int)param_1 + 0x8e);\n    local_144 = param_1[0x1a];\n    if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }\n    iVar13 = param_1[9];\n    do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));\n    param_1[9] = iVar23;\n    if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }\n    local_10c = (int *)0x0;\n    local_108 = 0;\n    local_104 = 0;\n    local_100 = 1000000000;\n    local_fc = 0;\n    local_f8 = 0;\n    switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }\n    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);\n    bVar9 = (byte)local_f8 & 7;\ncode_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\nLAB_0008e3d0:\n    FUN_0002e520();\n    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }\n    param_1[0x1d] = iVar17 + 0x28;\n    if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }\nLAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;\n    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }\n    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }\nLAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);\n    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;\n    iVar14 = param_1[9];\n    sqlite3_sql(param_1);\n    iVar17 = *param_1;\n    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);\n    if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }\n    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }\n    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));\n    if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }\n    if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }\nLAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));\n  }" ({ "{") (expression_statement "iVar10 = *param_1;" (assignment_expression "iVar10 = *param_1" (identifier "iVar10") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));" (call_expression "sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc))" (identifier "sqlite3_mutex_enter") (argument_list "(*(undefined4 *)(iVar10 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";")) (expression_statement "puVar8 = PTR_sqlite3_free_000ddfe0;" (assignment_expression "puVar8 = PTR_sqlite3_free_000ddfe0" (identifier "puVar8") (= "=") (identifier "PTR_sqlite3_free_000ddfe0")) (; ";")) (expression_statement "*(undefined1 *)((int)param_1 + 0x8d) = 0;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x8d) = 0" (pointer_expression "*(undefined1 *)((int)param_1 + 0x8d)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x8d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8d)" (( "(") (binary_expression "(int)param_1 + 0x8d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8d")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_138 = 0x33;" (assignment_expression "local_138 = 0x33" (identifier "local_138") (= "=") (number_literal "0x33")) (; ";")) (labeled_statement "LAB_0008da88:\n    if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }" (statement_identifier "LAB_0008da88") (: ":") (if_statement "if (param_1[5] != 0x2df20da3) {\n      sqlite3_reset(param_1);\n    }" (if "if") (parenthesized_expression "(param_1[5] != 0x2df20da3)" (( "(") (binary_expression "param_1[5] != 0x2df20da3" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (!= "!=") (number_literal "0x2df20da3")) () ")")) (compound_statement "{\n      sqlite3_reset(param_1);\n    }" ({ "{") (expression_statement "sqlite3_reset(param_1);" (call_expression "sqlite3_reset(param_1)" (identifier "sqlite3_reset") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar14 = *param_1;" (assignment_expression "iVar14 = *param_1" (identifier "iVar14") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (if_statement "if (*(char *)(iVar14 + 0x4d) != '\0') {\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar14 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(iVar14 + 0x4d) != '\0'" (pointer_expression "*(char *)(iVar14 + 0x4d)" (* "*") (cast_expression "(char *)(iVar14 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x4d)" (( "(") (binary_expression "iVar14 + 0x4d" (identifier "iVar14") (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_1[10] = 7;\n      uVar24 = 7;\n      goto LAB_0008dc24;\n    }" ({ "{") (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "7")) (; ";")) (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" (identifier "uVar24") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_0008dc24;" (goto "goto") (statement_identifier "LAB_0008dc24") (; ";")) (} "}"))) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)param_1 + 0x8e)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x8e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8e)" (( "(") (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8e")) () ")"))))) (; ";")) (if_statement "if (param_1[9] < 0) {\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }" (if "if") (parenthesized_expression "(param_1[9] < 0)" (( "(") (binary_expression "param_1[9] < 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }\n      param_1[10] = 0x11;\n      uVar24 = 1;\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\n      goto LAB_0008dcc7;\n    }" ({ "{") (if_statement "if ((bVar9 & 3) == 0) {\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }" (if "if") (parenthesized_expression "((bVar9 & 3) == 0)" (( "(") (binary_expression "(bVar9 & 3) == 0" (parenthesized_expression "(bVar9 & 3)" (( "(") (binary_expression "bVar9 & 3" (identifier "bVar9") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }\n        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }\n        bVar9 = *(byte *)((int)param_1 + 0x8e);\n        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;\n        if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }\n        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }\n        param_1[9] = 0;\n        goto LAB_0008dac4;\n      }" ({ "{") (if_statement "if (*(int *)(iVar14 + 0xa8) == 0) {\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0xa8) == 0)" (( "(") (binary_expression "*(int *)(iVar14 + 0xa8) == 0" (pointer_expression "*(int *)(iVar14 + 0xa8)" (* "*") (cast_expression "(int *)(iVar14 + 0xa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa8)" (( "(") (binary_expression "iVar14 + 0xa8" (identifier "iVar14") (+ "+") (number_literal "0xa8")) () ")")))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined4 *)(iVar14 + 0x108) = 0;\n        }" ({ "{") (expression_statement "*(undefined4 *)(iVar14 + 0x108) = 0;" (assignment_expression "*(undefined4 *)(iVar14 + 0x108) = 0" (pointer_expression "*(undefined4 *)(iVar14 + 0x108)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0x108)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x108)" (( "(") (binary_expression "iVar14 + 0x108" (identifier "iVar14") (+ "+") (number_literal "0x108")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)) {\n          FUN_0001d9a0();\n        }" (if "if") (parenthesized_expression "((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0))" (( "(") (binary_expression "(((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&\n           (param_1[0x2d] != 0)" (parenthesized_expression "(((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0'))" (( "(") (binary_expression "((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')" (parenthesized_expression "((*(byte *)(iVar14 + 0x54) & 0x82) != 0)" (( "(") (binary_expression "(*(byte *)(iVar14 + 0x54) & 0x82) != 0" (parenthesized_expression "(*(byte *)(iVar14 + 0x54) & 0x82)" (( "(") (binary_expression "*(byte *)(iVar14 + 0x54) & 0x82" (pointer_expression "*(byte *)(iVar14 + 0x54)" (* "*") (cast_expression "(byte *)(iVar14 + 0x54)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x54)" (( "(") (binary_expression "iVar14 + 0x54" (identifier "iVar14") (+ "+") (number_literal "0x54")) () ")")))) (& "&") (number_literal "0x82")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(*(char *)(iVar14 + 0xa1) == '\0')" (( "(") (binary_expression "*(char *)(iVar14 + 0xa1) == '\0'" (pointer_expression "*(char *)(iVar14 + 0xa1)" (* "*") (cast_expression "(char *)(iVar14 + 0xa1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa1)" (( "(") (binary_expression "iVar14 + 0xa1" (identifier "iVar14") (+ "+") (number_literal "0xa1")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_1[0x2d] != 0)" (( "(") (binary_expression "param_1[0x2d] != 0" (subscript_expression "param_1[0x2d]" (identifier "param_1") ([ "[") (number_literal "0x2d") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_0001d9a0();\n        }" ({ "{") (expression_statement "FUN_0001d9a0();" (call_expression "FUN_0001d9a0()" (identifier "FUN_0001d9a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)param_1 + 0x8e)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x8e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8e)" (( "(") (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8e")) () ")"))))) (; ";")) (expression_statement "*(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;" (assignment_expression "*(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1" (pointer_expression "*(int *)(iVar14 + 0xa8)" (* "*") (cast_expression "(int *)(iVar14 + 0xa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa8)" (( "(") (binary_expression "iVar14 + 0xa8" (identifier "iVar14") (+ "+") (number_literal "0xa8")) () ")")))) (= "=") (binary_expression "*(int *)(iVar14 + 0xa8) + 1" (pointer_expression "*(int *)(iVar14 + 0xa8)" (* "*") (cast_expression "(int *)(iVar14 + 0xa8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xa8)" (( "(") (binary_expression "iVar14 + 0xa8" (identifier "iVar14") (+ "+") (number_literal "0xa8")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (-1 < (char)bVar9) {\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }" (if "if") (parenthesized_expression "(-1 < (char)bVar9)" (( "(") (binary_expression "-1 < (char)bVar9" (number_literal "-1") (< "<") (cast_expression "(char)bVar9" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar9"))) () ")")) (compound_statement "{\n          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;\n        }" ({ "{") (expression_statement "*(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;" (assignment_expression "*(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1" (pointer_expression "*(int *)(iVar14 + 0xb0)" (* "*") (cast_expression "(int *)(iVar14 + 0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xb0)" (( "(") (binary_expression "iVar14 + 0xb0" (identifier "iVar14") (+ "+") (number_literal "0xb0")) () ")")))) (= "=") (binary_expression "*(int *)(iVar14 + 0xb0) + 1" (pointer_expression "*(int *)(iVar14 + 0xb0)" (* "*") (cast_expression "(int *)(iVar14 + 0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xb0)" (( "(") (binary_expression "iVar14 + 0xb0" (identifier "iVar14") (+ "+") (number_literal "0xb0")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x8f) & 1) != 0)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x8f) & 1) != 0" (parenthesized_expression "(*(byte *)((int)param_1 + 0x8f) & 1)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x8f) & 1" (pointer_expression "*(byte *)((int)param_1 + 0x8f)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x8f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8f)" (( "(") (binary_expression "(int)param_1 + 0x8f" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8f")) () ")")))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;\n        }" ({ "{") (expression_statement "*(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;" (assignment_expression "*(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1" (pointer_expression "*(int *)(iVar14 + 0xac)" (* "*") (cast_expression "(int *)(iVar14 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xac)" (( "(") (binary_expression "iVar14 + 0xac" (identifier "iVar14") (+ "+") (number_literal "0xac")) () ")")))) (= "=") (binary_expression "*(int *)(iVar14 + 0xac) + 1" (pointer_expression "*(int *)(iVar14 + 0xac)" (* "*") (cast_expression "(int *)(iVar14 + 0xac)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xac)" (( "(") (binary_expression "iVar14 + 0xac" (identifier "iVar14") (+ "+") (number_literal "0xac")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "param_1[9] = 0;" (assignment_expression "param_1[9] = 0" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0008dac4;" (goto "goto") (statement_identifier "LAB_0008dac4") (; ";")) (} "}"))) (expression_statement "param_1[10] = 0x11;" (assignment_expression "param_1[10] = 0x11" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0x11")) (; ";")) (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" (identifier "uVar24") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" (if "if") (parenthesized_expression "((char)param_1[0x23] < '\0')" (( "(") (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar24 = FUN_000488a0();\n      }" ({ "{") (expression_statement "uVar24 = FUN_000488a0();" (assignment_expression "uVar24 = FUN_000488a0()" (identifier "uVar24") (= "=") (call_expression "FUN_000488a0()" (identifier "FUN_000488a0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_0008dcc7;" (goto "goto") (statement_identifier "LAB_0008dcc7") (; ";")) (} "}"))) (labeled_statement "LAB_0008dac4:\n    if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" (statement_identifier "LAB_0008dac4") (: ":") (if_statement "if ((bVar9 & 0xc) == 0) {\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" (if "if") (parenthesized_expression "((bVar9 & 0xc) == 0)" (( "(") (binary_expression "(bVar9 & 0xc) == 0" (parenthesized_expression "(bVar9 & 0xc)" (( "(") (binary_expression "bVar9 & 0xc" (identifier "bVar9") (& "&") (number_literal "0xc")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;\n      uVar24 = FUN_00083fd0();\n      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;\n      if (uVar24 == 100) goto LAB_0008dc84;\n      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }\n      if (uVar24 != 0x65) goto LAB_0008e15c;\nLAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);\njoined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }\n      goto LAB_0008dc90;\n    }" ({ "{") (expression_statement "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;" (assignment_expression "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1" (pointer_expression "*(int *)(iVar14 + 0xb4)" (* "*") (cast_expression "(int *)(iVar14 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xb4)" (( "(") (binary_expression "iVar14 + 0xb4" (identifier "iVar14") (+ "+") (number_literal "0xb4")) () ")")))) (= "=") (binary_expression "*(int *)(iVar14 + 0xb4) + 1" (pointer_expression "*(int *)(iVar14 + 0xb4)" (* "*") (cast_expression "(int *)(iVar14 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xb4)" (( "(") (binary_expression "iVar14 + 0xb4" (identifier "iVar14") (+ "+") (number_literal "0xb4")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar24 = FUN_00083fd0();" (assignment_expression "uVar24 = FUN_00083fd0()" (identifier "uVar24") (= "=") (call_expression "FUN_00083fd0()" (identifier "FUN_00083fd0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;" (assignment_expression "*(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1" (pointer_expression "*(int *)(iVar14 + 0xb4)" (* "*") (cast_expression "(int *)(iVar14 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xb4)" (( "(") (binary_expression "iVar14 + 0xb4" (identifier "iVar14") (+ "+") (number_literal "0xb4")) () ")")))) (= "=") (binary_expression "*(int *)(iVar14 + 0xb4) + -1" (pointer_expression "*(int *)(iVar14 + 0xb4)" (* "*") (cast_expression "(int *)(iVar14 + 0xb4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xb4)" (( "(") (binary_expression "iVar14 + 0xb4" (identifier "iVar14") (+ "+") (number_literal "0xb4")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (uVar24 == 100) goto LAB_0008dc84;" (if "if") (parenthesized_expression "(uVar24 == 100)" (( "(") (binary_expression "uVar24 == 100" (identifier "uVar24") (== "==") (number_literal "100")) () ")")) (goto_statement "goto LAB_0008dc84;" (goto "goto") (statement_identifier "LAB_0008dc84") (; ";"))) (if_statement "if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {\n        FUN_0001f8e0();\n      }" (if "if") (parenthesized_expression "((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0))))" (( "(") (binary_expression "(-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))" (parenthesized_expression "(-1 < param_1[0x21])" (( "(") (binary_expression "-1 < param_1[0x21]" (number_literal "-1") (< "<") (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]"))) () ")")) (&& "&&") (parenthesized_expression "((0 < param_1[0x21] || (param_1[0x20] != 0)))" (( "(") (parenthesized_expression "(0 < param_1[0x21] || (param_1[0x20] != 0))" (( "(") (binary_expression "0 < param_1[0x21] || (param_1[0x20] != 0)" (binary_expression "0 < param_1[0x21]" (number_literal "0") (< "<") (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]"))) (|| "||") (parenthesized_expression "(param_1[0x20] != 0)" (( "(") (binary_expression "param_1[0x20] != 0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        FUN_0001f8e0();\n      }" ({ "{") (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" (identifier "FUN_0001f8e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (uVar24 != 0x65) goto LAB_0008e15c;" (if "if") (parenthesized_expression "(uVar24 != 0x65)" (( "(") (binary_expression "uVar24 != 0x65" (identifier "uVar24") (!= "!=") (number_literal "0x65")) () ")")) (goto_statement "goto LAB_0008e15c;" (goto "goto") (statement_identifier "LAB_0008e15c") (; ";"))) (labeled_statement "LAB_0008e0ef:\n      cVar3 = *(char *)(iVar14 + 0x4b);" (statement_identifier "LAB_0008e0ef") (: ":") (expression_statement "cVar3 = *(char *)(iVar14 + 0x4b);" (assignment_expression "cVar3 = *(char *)(iVar14 + 0x4b)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar14 + 0x4b)" (* "*") (cast_expression "(char *)(iVar14 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x4b)" (( "(") (binary_expression "iVar14 + 0x4b" (identifier "iVar14") (+ "+") (number_literal "0x4b")) () ")"))))) (; ";"))) (labeled_statement "joined_r0x0008e0f7:\n      if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" (statement_identifier "joined_r0x0008e0f7") (: ":") (if_statement "if (cVar3 == '\0') {\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }\n      else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" (if "if") (parenthesized_expression "(cVar3 == '\0')" (( "(") (binary_expression "cVar3 == '\0'" (identifier "cVar3") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        local_148 = param_1[10];\n        uVar24 = 0x65;\n        bVar25 = local_148 == 0xc0a;\n      }" ({ "{") (expression_statement "local_148 = param_1[10];" (assignment_expression "local_148 = param_1[10]" (identifier "local_148") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "uVar24 = 0x65;" (assignment_expression "uVar24 = 0x65" (identifier "uVar24") (= "=") (number_literal "0x65")) (; ";")) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" (identifier "bVar25") (= "=") (binary_expression "local_148 == 0xc0a" (identifier "local_148") (== "==") (number_literal "0xc0a"))) (; ";")) (} "}")) (else_clause "else {\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" (else "else") (compound_statement "{\n        local_148 = 0;\n        if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }\n      }" ({ "{") (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" (identifier "local_148") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(int *)(iVar14 + 0x14) < 1) {\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }\n        else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar14 + 0x14) < 1)" (( "(") (binary_expression "*(int *)(iVar14 + 0x14) < 1" (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          param_1[10] = 0;\n          bVar25 = false;\n          uVar24 = 0x65;\n        }" ({ "{") (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "uVar24 = 0x65;" (assignment_expression "uVar24 = 0x65" (identifier "uVar24") (= "=") (number_literal "0x65")) (; ";")) (} "}")) (else_clause "else {\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" (else "else") (compound_statement "{\n          iVar17 = 0;\n          local_148 = 0;\n          do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));\n          bVar25 = local_148 == 0xc0a;\n          param_1[10] = local_148;\n          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;\n        }" ({ "{") (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" (identifier "local_148") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          } while (iVar17 < *(int *)(iVar14 + 0x14));" (do "do") (compound_statement "{\n            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);\n            if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }\n            iVar17 = iVar17 + 1;\n          }" ({ "{") (expression_statement "iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);" (assignment_expression "iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" (* "*") (cast_expression "(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10)" (( "(") (binary_expression "*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10" (binary_expression "*(int *)(iVar14 + 0x10) + 4" (pointer_expression "*(int *)(iVar14 + 0x10)" (* "*") (cast_expression "(int *)(iVar14 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) (+ "+") (binary_expression "iVar17 * 0x10" (identifier "iVar17") (* "*") (number_literal "0x10"))) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) {\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }\n            }" ({ "{") (if_statement "if (*(char *)(iVar5 + 9) == '\0') {\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }\n              else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 9) == '\0'" (pointer_expression "*(char *)(iVar5 + 9)" (* "*") (cast_expression "(char *)(iVar5 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 9)" (( "(") (binary_expression "iVar5 + 9" (identifier "iVar5") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }\n              }" ({ "{") (expression_statement "iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);" (assignment_expression "iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(**(int **)(iVar5 + 4) + 0xd4)" (* "*") (cast_expression "(int *)(**(int **)(iVar5 + 4) + 0xd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(iVar5 + 4) + 0xd4)" (( "(") (binary_expression "**(int **)(iVar5 + 4) + 0xd4" (pointer_expression "**(int **)(iVar5 + 4)" (* "*") (pointer_expression "*(int **)(iVar5 + 4)" (* "*") (cast_expression "(int **)(iVar5 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (if_statement "if (iVar5 != 0) {\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                  iVar13 = *(int *)(iVar5 + 0xc);\n                  *(undefined4 *)(iVar5 + 0xc) = 0;\n                  goto LAB_0008e221;\n                }" ({ "{") (expression_statement "iVar13 = *(int *)(iVar5 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar5 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar5 + 0xc)" (* "*") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar5 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar5 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar5 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar5 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_0008e221;" (goto "goto") (statement_identifier "LAB_0008e221") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" (else "else") (compound_statement "{\n                FUN_00027820();\n                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);\n                if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }\n              }" ({ "{") (expression_statement "FUN_00027820();" (call_expression "FUN_00027820()" (identifier "FUN_00027820") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);" (assignment_expression "iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4)" (identifier "iVar23") (= "=") (pointer_expression "*(int *)(**(int **)(iVar5 + 4) + 0xd4)" (* "*") (cast_expression "(int *)(**(int **)(iVar5 + 4) + 0xd4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(**(int **)(iVar5 + 4) + 0xd4)" (( "(") (binary_expression "**(int **)(iVar5 + 4) + 0xd4" (pointer_expression "**(int **)(iVar5 + 4)" (* "*") (pointer_expression "*(int **)(iVar5 + 4)" (* "*") (cast_expression "(int **)(iVar5 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar5 + 4)" (( "(") (binary_expression "iVar5 + 4" (identifier "iVar5") (+ "+") (number_literal "4")) () ")"))))) (+ "+") (number_literal "0xd4")) () ")"))))) (; ";")) (if_statement "if (iVar23 == 0) {\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }\n                else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" (if "if") (parenthesized_expression "(iVar23 == 0)" (( "(") (binary_expression "iVar23 == 0" (identifier "iVar23") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\n                }" ({ "{") (if_statement "if (*(char *)(iVar5 + 9) != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 9) != '\0'" (pointer_expression "*(char *)(iVar5 + 9)" (* "*") (cast_expression "(char *)(iVar5 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 9)" (( "(") (binary_expression "iVar5 + 9" (identifier "iVar5") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" ({ "{") (expression_statement "piVar21 = (int *)(iVar5 + 0xc);" (assignment_expression "piVar21 = (int *)(iVar5 + 0xc)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*piVar21 = *piVar21 + -1;" (assignment_expression "*piVar21 = *piVar21 + -1" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (binary_expression "*piVar21 + -1" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }" (if "if") (parenthesized_expression "(*piVar21 == 0)" (( "(") (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_000278b0();\n                    }" ({ "{") (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" (identifier "FUN_000278b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" (else "else") (compound_statement "{\n                  cVar3 = *(char *)(iVar5 + 9);\n                  iVar13 = *(int *)(iVar23 + 0xc);\n                  *(undefined4 *)(iVar23 + 0xc) = 0;\n                  if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }\nLAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }\n                }" ({ "{") (expression_statement "cVar3 = *(char *)(iVar5 + 9);" (assignment_expression "cVar3 = *(char *)(iVar5 + 9)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar5 + 9)" (* "*") (cast_expression "(char *)(iVar5 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 9)" (( "(") (binary_expression "iVar5 + 9" (identifier "iVar5") (+ "+") (number_literal "9")) () ")"))))) (; ";")) (expression_statement "iVar13 = *(int *)(iVar23 + 0xc);" (assignment_expression "iVar13 = *(int *)(iVar23 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(iVar23 + 0xc)" (* "*") (cast_expression "(int *)(iVar23 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0xc)" (( "(") (binary_expression "iVar23 + 0xc" (identifier "iVar23") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(iVar23 + 0xc) = 0;" (assignment_expression "*(undefined4 *)(iVar23 + 0xc) = 0" (pointer_expression "*(undefined4 *)(iVar23 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar23 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar23 + 0xc)" (( "(") (binary_expression "iVar23 + 0xc" (identifier "iVar23") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (cVar3 != '\0') {\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" (if "if") (parenthesized_expression "(cVar3 != '\0')" (( "(") (binary_expression "cVar3 != '\0'" (identifier "cVar3") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                    piVar21 = (int *)(iVar5 + 0xc);\n                    *piVar21 = *piVar21 + -1;\n                    if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }\n                  }" ({ "{") (expression_statement "piVar21 = (int *)(iVar5 + 0xc);" (assignment_expression "piVar21 = (int *)(iVar5 + 0xc)" (identifier "piVar21") (= "=") (cast_expression "(int *)(iVar5 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0xc)" (( "(") (binary_expression "iVar5 + 0xc" (identifier "iVar5") (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*piVar21 = *piVar21 + -1;" (assignment_expression "*piVar21 = *piVar21 + -1" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (= "=") (binary_expression "*piVar21 + -1" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar21 == 0) {\n                      FUN_000278b0();\n                    }" (if "if") (parenthesized_expression "(*piVar21 == 0)" (( "(") (binary_expression "*piVar21 == 0" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                      FUN_000278b0();\n                    }" ({ "{") (expression_statement "FUN_000278b0();" (call_expression "FUN_000278b0()" (identifier "FUN_000278b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0008e221:\n                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" (statement_identifier "LAB_0008e221") (: ":") (if_statement "if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)) {\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" (if "if") (parenthesized_expression "(((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0))" (( "(") (binary_expression "((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&\n                     (local_148 == 0)" (parenthesized_expression "((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0))" (( "(") (binary_expression "(0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)" (parenthesized_expression "(0 < iVar13)" (( "(") (binary_expression "0 < iVar13" (number_literal "0") (< "<") (identifier "iVar13")) () ")")) (&& "&&") (parenthesized_expression "(*(code **)(iVar14 + 0xf0) != (code *)0x0)" (( "(") (binary_expression "*(code **)(iVar14 + 0xf0) != (code *)0x0" (pointer_expression "*(code **)(iVar14 + 0xf0)" (* "*") (cast_expression "(code **)(iVar14 + 0xf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0xf0)" (( "(") (binary_expression "iVar14 + 0xf0" (identifier "iVar14") (+ "+") (number_literal "0xf0")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_148 == 0)" (( "(") (binary_expression "local_148 == 0" (identifier "local_148") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);\n                  }" ({ "{") (expression_statement "local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13);" (assignment_expression "local_148 = (**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" (identifier "local_148") (= "=") (call_expression "(**(code **)(iVar14 + 0xf0))\n                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" (parenthesized_expression "(**(code **)(iVar14 + 0xf0))" (( "(") (pointer_expression "**(code **)(iVar14 + 0xf0)" (* "*") (pointer_expression "*(code **)(iVar14 + 0xf0)" (* "*") (cast_expression "(code **)(iVar14 + 0xf0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + 0xf0)" (( "(") (binary_expression "iVar14 + 0xf0" (identifier "iVar14") (+ "+") (number_literal "0xf0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(iVar14 + 0xf4),iVar14,\n                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),\n                                           iVar13)" (( "(") (pointer_expression "*(undefined4 *)(iVar14 + 0xf4)" (* "*") (cast_expression "(undefined4 *)(iVar14 + 0xf4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0xf4)" (( "(") (binary_expression "iVar14 + 0xf4" (identifier "iVar14") (+ "+") (number_literal "0xf4")) () ")")))) (, ",") (identifier "iVar14") (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar14 + 0x10) + iVar17 * 0x10)" (( "(") (binary_expression "*(int *)(iVar14 + 0x10) + iVar17 * 0x10" (pointer_expression "*(int *)(iVar14 + 0x10)" (* "*") (cast_expression "(int *)(iVar14 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x10)" (( "(") (binary_expression "iVar14 + 0x10" (identifier "iVar14") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar17 * 0x10" (identifier "iVar17") (* "*") (number_literal "0x10"))) () ")")))) (, ",") (identifier "iVar13") () ")")))) (; ";")) (} "}")))) (} "}")))) (} "}")))) (} "}"))) (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar17 < *(int *)(iVar14 + 0x14))" (( "(") (binary_expression "iVar17 < *(int *)(iVar14 + 0x14)" (identifier "iVar17") (< "<") (pointer_expression "*(int *)(iVar14 + 0x14)" (* "*") (cast_expression "(int *)(iVar14 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x14)" (( "(") (binary_expression "iVar14 + 0x14" (identifier "iVar14") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (; ";")) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" (identifier "bVar25") (= "=") (binary_expression "local_148 == 0xc0a" (identifier "local_148") (== "==") (number_literal "0xc0a"))) (; ";")) (expression_statement "param_1[10] = local_148;" (assignment_expression "param_1[10] = local_148" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "local_148")) (; ";")) (expression_statement "uVar24 = (-(uint)(local_148 == 0) & 100) + 1;" (assignment_expression "uVar24 = (-(uint)(local_148 == 0) & 100) + 1" (identifier "uVar24") (= "=") (binary_expression "(-(uint)(local_148 == 0) & 100) + 1" (parenthesized_expression "(-(uint)(local_148 == 0) & 100)" (( "(") (binary_expression "-(uint)(local_148 == 0) & 100" (unary_expression "-(uint)(local_148 == 0)" (- "-") (call_expression "(uint)(local_148 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_148 == 0)" (( "(") (binary_expression "local_148 == 0" (identifier "local_148") (== "==") (number_literal "0")) () ")")))) (& "&") (number_literal "100")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))))) (goto_statement "goto LAB_0008dc90;" (goto "goto") (statement_identifier "LAB_0008dc90") (; ";")) (} "}")))) (expression_statement "iVar17 = param_1[0x15];" (assignment_expression "iVar17 = param_1[0x15]" (identifier "iVar17") (= "=") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "iVar5 = *param_1;" (assignment_expression "iVar5 = *param_1" (identifier "iVar5") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "local_13c = 1;" (assignment_expression "local_13c = 1" (identifier "local_13c") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((bVar9 & 0xc) != 4) {\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }" (if "if") (parenthesized_expression "((bVar9 & 0xc) != 4)" (( "(") (binary_expression "(bVar9 & 0xc) != 4" (parenthesized_expression "(bVar9 & 0xc)" (( "(") (binary_expression "bVar9 & 0xc" (identifier "bVar9") (& "&") (number_literal "0xc")) () ")")) (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;\n    }" ({ "{") (expression_statement "local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;" (assignment_expression "local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1" (identifier "local_13c") (= "=") (binary_expression "*(uint *)(iVar5 + 0x1c) >> 0x18 & 1" (binary_expression "*(uint *)(iVar5 + 0x1c) >> 0x18" (pointer_expression "*(uint *)(iVar5 + 0x1c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x1c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x1c)" (( "(") (binary_expression "iVar5 + 0x1c" (identifier "iVar5") (+ "+") (number_literal "0x1c")) () ")")))) (>> ">>") (number_literal "0x18")) (& "&") (number_literal "1"))) (; ";")) (} "}"))) (if_statement "if (iVar17 + 0x28 != 0) {\n      FUN_000284b0();\n    }" (if "if") (parenthesized_expression "(iVar17 + 0x28 != 0)" (( "(") (binary_expression "iVar17 + 0x28 != 0" (binary_expression "iVar17 + 0x28" (identifier "iVar17") (+ "+") (number_literal "0x28")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_000284b0();\n    }" ({ "{") (expression_statement "FUN_000284b0();" (call_expression "FUN_000284b0()" (identifier "FUN_000284b0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[0x1d] = 0;" (assignment_expression "param_1[0x1d] = 0" (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_1[10] == 7) {\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }" (if "if") (parenthesized_expression "(param_1[10] == 7)" (( "(") (binary_expression "param_1[10] == 7" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (== "==") (number_literal "7")) () ")")) (compound_statement "{\n      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }\n      goto LAB_0008e141;\n    }" ({ "{") (if_statement "if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {\n        FUN_0002e050();\n      }" (if "if") (parenthesized_expression "((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00)" (( "(") (binary_expression "*(uint *)(iVar5 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        FUN_0002e050();\n      }" ({ "{") (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" (identifier "FUN_0002e050") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_0008e141;" (goto "goto") (statement_identifier "LAB_0008e141") (; ";")) (} "}"))) (expression_statement "bVar9 = *(byte *)((int)param_1 + 0x8e);" (assignment_expression "bVar9 = *(byte *)((int)param_1 + 0x8e)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)((int)param_1 + 0x8e)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x8e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8e)" (( "(") (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8e")) () ")"))))) (; ";")) (expression_statement "local_144 = param_1[0x1a];" (assignment_expression "local_144 = param_1[0x1a]" (identifier "local_144") (= "=") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]"))) (; ";")) (if_statement "if (local_13c == 0) {\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }\n    else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" (if "if") (parenthesized_expression "(local_13c == 0)" (( "(") (binary_expression "local_13c == 0" (identifier "local_13c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_148 = 0;\n      piVar21 = (int *)0x0;\n    }" ({ "{") (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" (identifier "local_148") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = (int *)0x0;" (assignment_expression "piVar21 = (int *)0x0" (identifier "piVar21") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" (else "else") (compound_statement "{\n      iVar13 = param_1[0x15];\n      local_148 = iVar13 + 0x168;\n      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }\n    }" ({ "{") (expression_statement "iVar13 = param_1[0x15];" (assignment_expression "iVar13 = param_1[0x15]" (identifier "iVar13") (= "=") (subscript_expression "param_1[0x15]" (identifier "param_1") ([ "[") (number_literal "0x15") (] "]"))) (; ";")) (expression_statement "local_148 = iVar13 + 0x168;" (assignment_expression "local_148 = iVar13 + 0x168" (identifier "local_148") (= "=") (binary_expression "iVar13 + 0x168" (identifier "iVar13") (+ "+") (number_literal "0x168"))) (; ";")) (if_statement "if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }\n      else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" (if "if") (parenthesized_expression "((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0))" (( "(") (binary_expression "(local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)" (parenthesized_expression "(local_148 == 0)" (( "(") (binary_expression "local_148 == 0" (identifier "local_148") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((*(byte *)(iVar13 + 0x170) & 0x10) == 0)" (( "(") (binary_expression "(*(byte *)(iVar13 + 0x170) & 0x10) == 0" (parenthesized_expression "(*(byte *)(iVar13 + 0x170) & 0x10)" (( "(") (binary_expression "*(byte *)(iVar13 + 0x170) & 0x10" (pointer_expression "*(byte *)(iVar13 + 0x170)" (* "*") (cast_expression "(byte *)(iVar13 + 0x170)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x170)" (( "(") (binary_expression "iVar13 + 0x170" (identifier "iVar13") (+ "+") (number_literal "0x170")) () ")")))) (& "&") (number_literal "0x10")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n        local_13c = 0;\n        piVar21 = (int *)0x0;\n      }" ({ "{") (expression_statement "local_13c = 0;" (assignment_expression "local_13c = 0" (identifier "local_13c") (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = (int *)0x0;" (assignment_expression "piVar21 = (int *)0x0" (identifier "piVar21") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" (else "else") (compound_statement "{\n        piVar21 = *(int **)(iVar13 + 0x178);\n        local_13c = *(uint *)(iVar13 + 0x174) >> 2;\n        if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }\n      }" ({ "{") (expression_statement "piVar21 = *(int **)(iVar13 + 0x178);" (assignment_expression "piVar21 = *(int **)(iVar13 + 0x178)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(iVar13 + 0x178)" (* "*") (cast_expression "(int **)(iVar13 + 0x178)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x178)" (( "(") (binary_expression "iVar13 + 0x178" (identifier "iVar13") (+ "+") (number_literal "0x178")) () ")"))))) (; ";")) (expression_statement "local_13c = *(uint *)(iVar13 + 0x174) >> 2;" (assignment_expression "local_13c = *(uint *)(iVar13 + 0x174) >> 2" (identifier "local_13c") (= "=") (binary_expression "*(uint *)(iVar13 + 0x174) >> 2" (pointer_expression "*(uint *)(iVar13 + 0x174)" (* "*") (cast_expression "(uint *)(iVar13 + 0x174)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x174)" (( "(") (binary_expression "iVar13 + 0x174" (identifier "iVar13") (+ "+") (number_literal "0x174")) () ")")))) (>> ">>") (number_literal "2"))) (; ";")) (if_statement "if (local_13c != 0) {\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }" (if "if") (parenthesized_expression "(local_13c != 0)" (( "(") (binary_expression "local_13c != 0" (identifier "local_13c") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          piVar11 = piVar21;\n          do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);\n        }" ({ "{") (expression_statement "piVar11 = piVar21;" (assignment_expression "piVar11 = piVar21" (identifier "piVar11") (= "=") (identifier "piVar21")) (; ";")) (do_statement "do {\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          } while (piVar21 + local_13c != piVar11);" (do "do") (compound_statement "{\n            iVar13 = *piVar11;\n            piVar11 = piVar11 + 1;\n            local_144 = local_144 + *(int *)(iVar13 + 4);\n          }" ({ "{") (expression_statement "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" (identifier "iVar13") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (expression_statement "piVar11 = piVar11 + 1;" (assignment_expression "piVar11 = piVar11 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + 1" (identifier "piVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "local_144 = local_144 + *(int *)(iVar13 + 4);" (assignment_expression "local_144 = local_144 + *(int *)(iVar13 + 4)" (identifier "local_144") (= "=") (binary_expression "local_144 + *(int *)(iVar13 + 4)" (identifier "local_144") (+ "+") (pointer_expression "*(int *)(iVar13 + 4)" (* "*") (cast_expression "(int *)(iVar13 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 4)" (( "(") (binary_expression "iVar13 + 4" (identifier "iVar13") (+ "+") (number_literal "4")) () ")")))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar21 + local_13c != piVar11)" (( "(") (binary_expression "piVar21 + local_13c != piVar11" (binary_expression "piVar21 + local_13c" (identifier "piVar21") (+ "+") (identifier "local_13c")) (!= "!=") (identifier "piVar11")) () ")")) (; ";")) (} "}"))) (} "}")))) (} "}")))) (expression_statement "iVar13 = param_1[9];" (assignment_expression "iVar13 = param_1[9]" (identifier "iVar13") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (do_statement "do {\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));" (do "do") (compound_statement "{\n      iVar23 = iVar13 + 1;\n      if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }\n      if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }\n      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);\n      if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }\n    }" ({ "{") (expression_statement "iVar23 = iVar13 + 1;" (assignment_expression "iVar23 = iVar13 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_144 <= iVar13) {\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }" (if "if") (parenthesized_expression "(local_144 <= iVar13)" (( "(") (binary_expression "local_144 <= iVar13" (identifier "local_144") (<= "<=") (identifier "iVar13")) () ")")) (compound_statement "{\n        param_1[10] = 0;\n        param_1[9] = iVar23;\n        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;\n        FUN_0001f8e0();\n        cVar3 = *(char *)(iVar14 + 0x4b);\n        goto joined_r0x0008e0f7;\n      }" ({ "{") (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar23")) (; ";")) (if_statement "if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;" (if "if") (parenthesized_expression "((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0))))" (( "(") (binary_expression "(param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))" (parenthesized_expression "(param_1[0x21] < 1)" (( "(") (binary_expression "param_1[0x21] < 1" (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]")) (< "<") (number_literal "1")) () ")")) (&& "&&") (parenthesized_expression "((param_1[0x21] < 0 || (param_1[0x20] == 0)))" (( "(") (parenthesized_expression "(param_1[0x21] < 0 || (param_1[0x20] == 0))" (( "(") (binary_expression "param_1[0x21] < 0 || (param_1[0x20] == 0)" (binary_expression "param_1[0x21] < 0" (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]")) (< "<") (number_literal "0")) (|| "||") (parenthesized_expression "(param_1[0x20] == 0)" (( "(") (binary_expression "param_1[0x20] == 0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (== "==") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0008e0ef;" (goto "goto") (statement_identifier "LAB_0008e0ef") (; ";"))) (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" (identifier "FUN_0001f8e0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "cVar3 = *(char *)(iVar14 + 0x4b);" (assignment_expression "cVar3 = *(char *)(iVar14 + 0x4b)" (identifier "cVar3") (= "=") (pointer_expression "*(char *)(iVar14 + 0x4b)" (* "*") (cast_expression "(char *)(iVar14 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x4b)" (( "(") (binary_expression "iVar14 + 0x4b" (identifier "iVar14") (+ "+") (number_literal "0x4b")) () ")"))))) (; ";")) (goto_statement "goto joined_r0x0008e0f7;" (goto "goto") (statement_identifier "joined_r0x0008e0f7") (; ";")) (} "}"))) (if_statement "if (iVar13 < param_1[0x1a]) {\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }\n      else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" (if "if") (parenthesized_expression "(iVar13 < param_1[0x1a])" (( "(") (binary_expression "iVar13 < param_1[0x1a]" (identifier "iVar13") (< "<") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]"))) () ")")) (compound_statement "{\n        iVar19 = param_1[0x19];\n        iVar12 = iVar13;\n      }" ({ "{") (expression_statement "iVar19 = param_1[0x19];" (assignment_expression "iVar19 = param_1[0x19]" (identifier "iVar19") (= "=") (subscript_expression "param_1[0x19]" (identifier "param_1") ([ "[") (number_literal "0x19") (] "]"))) (; ";")) (expression_statement "iVar12 = iVar13;" (assignment_expression "iVar12 = iVar13" (identifier "iVar12") (= "=") (identifier "iVar13")) (; ";")) (} "}")) (else_clause "else {\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" (else "else") (compound_statement "{\n        piVar11 = (int *)*piVar21;\n        iVar12 = iVar13 - param_1[0x1a];\n        iVar13 = piVar11[1];\n        piVar7 = piVar21;\n        if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }\n        iVar19 = *piVar11;\n      }" ({ "{") (expression_statement "piVar11 = (int *)*piVar21;" (assignment_expression "piVar11 = (int *)*piVar21" (identifier "piVar11") (= "=") (cast_expression "(int *)*piVar21" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar21" (* "*") (identifier "piVar21")))) (; ";")) (expression_statement "iVar12 = iVar13 - param_1[0x1a];" (assignment_expression "iVar12 = iVar13 - param_1[0x1a]" (identifier "iVar12") (= "=") (binary_expression "iVar13 - param_1[0x1a]" (identifier "iVar13") (- "-") (subscript_expression "param_1[0x1a]" (identifier "param_1") ([ "[") (number_literal "0x1a") (] "]")))) (; ";")) (expression_statement "iVar13 = piVar11[1];" (assignment_expression "iVar13 = piVar11[1]" (identifier "iVar13") (= "=") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar7 = piVar21;" (assignment_expression "piVar7 = piVar21" (identifier "piVar7") (= "=") (identifier "piVar21")) (; ";")) (if_statement "if (iVar13 <= iVar12) {\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }" (if "if") (parenthesized_expression "(iVar13 <= iVar12)" (( "(") (binary_expression "iVar13 <= iVar12" (identifier "iVar13") (<= "<=") (identifier "iVar12")) () ")")) (compound_statement "{\n          do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);\n        }" ({ "{") (do_statement "do {\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          } while (iVar13 <= iVar12);" (do "do") (compound_statement "{\n            piVar11 = (int *)piVar7[1];\n            iVar12 = iVar12 - iVar13;\n            iVar13 = piVar11[1];\n            piVar7 = piVar7 + 1;\n          }" ({ "{") (expression_statement "piVar11 = (int *)piVar7[1];" (assignment_expression "piVar11 = (int *)piVar7[1]" (identifier "piVar11") (= "=") (cast_expression "(int *)piVar7[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar7[1]" (identifier "piVar7") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "iVar12 = iVar12 - iVar13;" (assignment_expression "iVar12 = iVar12 - iVar13" (identifier "iVar12") (= "=") (binary_expression "iVar12 - iVar13" (identifier "iVar12") (- "-") (identifier "iVar13"))) (; ";")) (expression_statement "iVar13 = piVar11[1];" (assignment_expression "iVar13 = piVar11[1]" (identifier "iVar13") (= "=") (subscript_expression "piVar11[1]" (identifier "piVar11") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar7 = piVar7 + 1;" (assignment_expression "piVar7 = piVar7 + 1" (identifier "piVar7") (= "=") (binary_expression "piVar7 + 1" (identifier "piVar7") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 <= iVar12)" (( "(") (binary_expression "iVar13 <= iVar12" (identifier "iVar13") (<= "<=") (identifier "iVar12")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar19 = *piVar11;" (assignment_expression "iVar19 = *piVar11" (identifier "iVar19") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (} "}")))) (expression_statement "pcVar2 = (char *)(iVar19 + iVar12 * 0x14);" (assignment_expression "pcVar2 = (char *)(iVar19 + iVar12 * 0x14)" (identifier "pcVar2") (= "=") (cast_expression "(char *)(iVar19 + iVar12 * 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar19 + iVar12 * 0x14)" (( "(") (binary_expression "iVar19 + iVar12 * 0x14" (identifier "iVar19") (+ "+") (binary_expression "iVar12 * 0x14" (identifier "iVar12") (* "*") (number_literal "0x14"))) () ")")))) (; ";")) (if_statement "if ((local_148 != 0) && (pcVar2[1] == -4)) {\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }" (if "if") (parenthesized_expression "((local_148 != 0) && (pcVar2[1] == -4))" (( "(") (binary_expression "(local_148 != 0) && (pcVar2[1] == -4)" (parenthesized_expression "(local_148 != 0)" (( "(") (binary_expression "local_148 != 0" (identifier "local_148") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar2[1] == -4)" (( "(") (binary_expression "pcVar2[1] == -4" (subscript_expression "pcVar2[1]" (identifier "pcVar2") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "-4")) () ")"))) () ")")) (compound_statement "{\n        if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }\n      }" ({ "{") (if_statement "if ((int)local_13c < 1) {\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }\n        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" (if "if") (parenthesized_expression "((int)local_13c < 1)" (( "(") (binary_expression "(int)local_13c < 1" (cast_expression "(int)local_13c" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_13c")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }\n        }" ({ "{") (if_statement "if (local_13c == 0) {\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" (if "if") (parenthesized_expression "(local_13c == 0)" (( "(") (binary_expression "local_13c == 0" (identifier "local_13c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0008e044:\n            iVar13 = FUN_000307e0();\n            param_1[10] = iVar13;\n            if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }\n            piVar21 = *(int **)(local_148 + 0x10);\n            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);\n            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;\n            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;\n            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n            local_13c = local_13c + 1;\n          }" ({ "{") (labeled_statement "LAB_0008e044:\n            iVar13 = FUN_000307e0();" (statement_identifier "LAB_0008e044") (: ":") (expression_statement "iVar13 = FUN_000307e0();" (assignment_expression "iVar13 = FUN_000307e0()" (identifier "iVar13") (= "=") (call_expression "FUN_000307e0()" (identifier "FUN_000307e0") (argument_list "()" (( "(") () ")")))) (; ";"))) (expression_statement "param_1[10] = iVar13;" (assignment_expression "param_1[10] = iVar13" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "iVar13")) (; ";")) (if_statement "if (iVar13 != 0) {\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              iVar17 = param_1[0x21];\n              param_1[9] = iVar23;\n              if (iVar17 < 0) goto LAB_0008e157;\n              goto joined_r0x0008e183;\n            }" ({ "{") (expression_statement "iVar17 = param_1[0x21];" (assignment_expression "iVar17 = param_1[0x21]" (identifier "iVar17") (= "=") (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]"))) (; ";")) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar23")) (; ";")) (if_statement "if (iVar17 < 0) goto LAB_0008e157;" (if "if") (parenthesized_expression "(iVar17 < 0)" (( "(") (binary_expression "iVar17 < 0" (identifier "iVar17") (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_0008e157;" (goto "goto") (statement_identifier "LAB_0008e157") (; ";"))) (goto_statement "goto joined_r0x0008e183;" (goto "goto") (statement_identifier "joined_r0x0008e183") (; ";")) (} "}"))) (expression_statement "piVar21 = *(int **)(local_148 + 0x10);" (assignment_expression "piVar21 = *(int **)(local_148 + 0x10)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(local_148 + 0x10)" (* "*") (cast_expression "(int **)(local_148 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_148 + 0x10)" (( "(") (binary_expression "local_148 + 0x10" (identifier "local_148") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "piVar21[local_13c] = *(int *)(pcVar2 + 0x10);" (assignment_expression "piVar21[local_13c] = *(int *)(pcVar2 + 0x10)" (subscript_expression "piVar21[local_13c]" (identifier "piVar21") ([ "[") (identifier "local_13c") (] "]")) (= "=") (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;" (assignment_expression "*(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10" (pointer_expression "*(ushort *)(local_148 + 8)" (* "*") (cast_expression "(ushort *)(local_148 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_148 + 8)" (( "(") (binary_expression "local_148 + 8" (identifier "local_148") (+ "+") (number_literal "8")) () ")")))) (= "=") (binary_expression "*(ushort *)(local_148 + 8) & 0x3e40 | 0x10" (binary_expression "*(ushort *)(local_148 + 8) & 0x3e40" (pointer_expression "*(ushort *)(local_148 + 8)" (* "*") (cast_expression "(ushort *)(local_148 + 8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_148 + 8)" (( "(") (binary_expression "local_148 + 8" (identifier "local_148") (+ "+") (number_literal "8")) () ")")))) (& "&") (number_literal "0x3e40")) (| "|") (number_literal "0x10"))) (; ";")) (expression_statement "*(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;" (assignment_expression "*(uint *)(local_148 + 0xc) = (local_13c + 1) * 4" (pointer_expression "*(uint *)(local_148 + 0xc)" (* "*") (cast_expression "(uint *)(local_148 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_148 + 0xc)" (( "(") (binary_expression "local_148 + 0xc" (identifier "local_148") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (binary_expression "(local_13c + 1) * 4" (parenthesized_expression "(local_13c + 1)" (( "(") (binary_expression "local_13c + 1" (identifier "local_13c") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4"))) (; ";")) (expression_statement "local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);" (assignment_expression "local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4)" (identifier "local_144") (= "=") (binary_expression "local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4)" (identifier "local_144") (+ "+") (pointer_expression "*(int *)(*(int *)(pcVar2 + 0x10) + 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar2 + 0x10) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(pcVar2 + 0x10) + 4" (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (expression_statement "local_13c = local_13c + 1;" (assignment_expression "local_13c = local_13c + 1" (identifier "local_13c") (= "=") (binary_expression "local_13c + 1" (identifier "local_13c") (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (} "}")) (else_clause "else if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" (else "else") (if_statement "if (*(int *)(pcVar2 + 0x10) != *piVar21) {\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" (if "if") (parenthesized_expression "(*(int *)(pcVar2 + 0x10) != *piVar21)" (( "(") (binary_expression "*(int *)(pcVar2 + 0x10) != *piVar21" (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))) (!= "!=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) () ")")) (compound_statement "{\n          uVar24 = 0;\n          do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));\n        }" ({ "{") (expression_statement "uVar24 = 0;" (assignment_expression "uVar24 = 0" (identifier "uVar24") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));" (do "do") (compound_statement "{\n            uVar24 = uVar24 + 1;\n            if (local_13c == uVar24) goto LAB_0008e044;\n          }" ({ "{") (expression_statement "uVar24 = uVar24 + 1;" (assignment_expression "uVar24 = uVar24 + 1" (identifier "uVar24") (= "=") (binary_expression "uVar24 + 1" (identifier "uVar24") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_13c == uVar24) goto LAB_0008e044;" (if "if") (parenthesized_expression "(local_13c == uVar24)" (( "(") (binary_expression "local_13c == uVar24" (identifier "local_13c") (== "==") (identifier "uVar24")) () ")")) (goto_statement "goto LAB_0008e044;" (goto "goto") (statement_identifier "LAB_0008e044") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(piVar21[uVar24] != *(int *)(pcVar2 + 0x10))" (( "(") (binary_expression "piVar21[uVar24] != *(int *)(pcVar2 + 0x10)" (subscript_expression "piVar21[uVar24]" (identifier "piVar21") ([ "[") (identifier "uVar24") (] "]")) (!= "!=") (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (; ";")) (} "}"))))) (} "}"))) (} "}")) (while "while") (parenthesized_expression "((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))))" (( "(") (binary_expression "(((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&\n            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)))" (parenthesized_expression "(((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52))" (( "(") (binary_expression "((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)" (parenthesized_expression "((bVar9 & 0xc) == 8)" (( "(") (binary_expression "(bVar9 & 0xc) == 8" (parenthesized_expression "(bVar9 & 0xc)" (( "(") (binary_expression "bVar9 & 0xc" (identifier "bVar9") (& "&") (number_literal "0xc")) () ")")) (== "==") (number_literal "8")) () ")")) (&& "&&") (parenthesized_expression "(*pcVar2 != -0x52)" (( "(") (binary_expression "*pcVar2 != -0x52" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (!= "!=") (number_literal "-0x52")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)))" (( "(") (parenthesized_expression "(iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))" (( "(") (comma_expression "iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2)" (assignment_expression "iVar13 = iVar23" (identifier "iVar13") (= "=") (identifier "iVar23")) (, ",") (binary_expression "*pcVar2 != '>' || (iVar23 < 2)" (binary_expression "*pcVar2 != '>'" (pointer_expression "*pcVar2" (* "*") (identifier "pcVar2")) (!= "!=") (char_literal "'>'" (' "'") (character ">") (' "'"))) (|| "||") (parenthesized_expression "(iVar23 < 2)" (( "(") (binary_expression "iVar23 < 2" (identifier "iVar23") (< "<") (number_literal "2")) () ")")))) () ")")) () ")"))) () ")")) (; ";")) (expression_statement "param_1[9] = iVar23;" (assignment_expression "param_1[9] = iVar23" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (= "=") (identifier "iVar23")) (; ";")) (if_statement "if (*(int *)(iVar5 + 0x108) != 0) {\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar5 + 0x108) != 0)" (( "(") (binary_expression "*(int *)(iVar5 + 0x108) != 0" (pointer_expression "*(int *)(iVar5 + 0x108)" (* "*") (cast_expression "(int *)(iVar5 + 0x108)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x108)" (( "(") (binary_expression "iVar5 + 0x108" (identifier "iVar5") (+ "+") (number_literal "0x108")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      param_1[10] = 9;\n      FUN_0003e960(param_1,"interrupted");\n      goto LAB_0008e141;\n    }" ({ "{") (expression_statement "param_1[10] = 9;" (assignment_expression "param_1[10] = 9" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "9")) (; ";")) (expression_statement "FUN_0003e960(param_1,"interrupted");" (call_expression "FUN_0003e960(param_1,"interrupted")" (identifier "FUN_0003e960") (argument_list "(param_1,"interrupted")" (( "(") (identifier "param_1") (, ",") (string_literal ""interrupted"" (" """) (string_content "interrupted") (" """)) () ")"))) (; ";")) (goto_statement "goto LAB_0008e141;" (goto "goto") (statement_identifier "LAB_0008e141") (; ";")) (} "}"))) (expression_statement "local_10c = (int *)0x0;" (assignment_expression "local_10c = (int *)0x0" (identifier "local_10c") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" (identifier "local_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_104 = 0;" (assignment_expression "local_104 = 0" (identifier "local_104") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_100 = 1000000000;" (assignment_expression "local_100 = 1000000000" (identifier "local_100") (= "=") (number_literal "1000000000")) (; ";")) (expression_statement "local_fc = 0;" (assignment_expression "local_fc = 0" (identifier "local_fc") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" (identifier "local_f8") (= "=") (number_literal "0")) (; ";")) (switch_statement "switch(pcVar2[1]) {\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }" (switch "switch") (parenthesized_expression "(pcVar2[1])" (( "(") (subscript_expression "pcVar2[1]" (identifier "pcVar2") ([ "[") (number_literal "1") (] "]")) () ")")) (compound_statement "{\n    case -0x11:\n    case -5:\n      goto code_r0x0008e3ca;\n    case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;\n    case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;\n    case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;\n    case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;\n    case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;\n    case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;\n    default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;\n    case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;\n    case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;\n    case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;\n    case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;\n    case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;\n    case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";\n    }" ({ "{") (case_statement "case -0x11:" (case "case") (number_literal "-0x11") (: ":")) (case_statement "case -5:\n      goto code_r0x0008e3ca;" (case "case") (number_literal "-5") (: ":") (goto_statement "goto code_r0x0008e3ca;" (goto "goto") (statement_identifier "code_r0x0008e3ca") (; ";"))) (case_statement "case -0x10:\n      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);\n      goto code_r0x0008e672;" (case "case") (number_literal "-0x10") (: ":") (expression_statement "iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);" (assignment_expression "iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(*(int *)(pcVar2 + 0x10) + 4)" (* "*") (cast_expression "(int *)(*(int *)(pcVar2 + 0x10) + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 4)" (( "(") (binary_expression "*(int *)(pcVar2 + 0x10) + 4" (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "4")) () ")"))))) (; ";")) (goto_statement "goto code_r0x0008e672;" (goto "goto") (statement_identifier "code_r0x0008e672") (; ";"))) (case_statement "case -0xf:\n      piVar21 = *(int **)(pcVar2 + 0x10);\n      iVar13 = *piVar21;\n      if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }\n      pcVar15 = "]";\n      goto code_r0x0008e812;" (case "case") (number_literal "-0xf") (: ":") (expression_statement "piVar21 = *(int **)(pcVar2 + 0x10);" (assignment_expression "piVar21 = *(int **)(pcVar2 + 0x10)" (identifier "piVar21") (= "=") (pointer_expression "*(int **)(pcVar2 + 0x10)" (* "*") (cast_expression "(int **)(pcVar2 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "iVar13 = *piVar21;" (assignment_expression "iVar13 = *piVar21" (identifier "iVar13") (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (if_statement "if (iVar13 != 0) {\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }" (if "if") (parenthesized_expression "(iVar13 != 0)" (( "(") (binary_expression "iVar13 != 0" (identifier "iVar13") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar23 = 1;\n        do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);\n      }" ({ "{") (expression_statement "iVar23 = 1;" (assignment_expression "iVar23 = 1" (identifier "iVar23") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        } while (iVar23 != iVar13 + 1);" (do "do") (compound_statement "{\n          uVar18 = 0x5b;\n          if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }\n          piVar11 = piVar21 + iVar23;\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);\n        }" ({ "{") (expression_statement "uVar18 = 0x5b;" (assignment_expression "uVar18 = 0x5b" (identifier "uVar18") (= "=") (number_literal "0x5b")) (; ";")) (if_statement "if (iVar23 != 1) {\n            uVar18 = 0x2c;\n          }" (if "if") (parenthesized_expression "(iVar23 != 1)" (( "(") (binary_expression "iVar23 != 1" (identifier "iVar23") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n            uVar18 = 0x2c;\n          }" ({ "{") (expression_statement "uVar18 = 0x2c;" (assignment_expression "uVar18 = 0x2c" (identifier "uVar18") (= "=") (number_literal "0x2c")) (; ";")) (} "}"))) (expression_statement "piVar11 = piVar21 + iVar23;" (assignment_expression "piVar11 = piVar21 + iVar23" (identifier "piVar11") (= "=") (binary_expression "piVar21 + iVar23" (identifier "piVar21") (+ "+") (identifier "iVar23"))) (; ";")) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11)" (identifier "sqlite3_str_appendf") (argument_list "(&local_10c,&UNK_000aae32,uVar18,*piVar11)" (( "(") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (pointer_expression "&UNK_000aae32" (& "&") (identifier "UNK_000aae32")) (, ",") (identifier "uVar18") (, ",") (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar23 != iVar13 + 1)" (( "(") (binary_expression "iVar23 != iVar13 + 1" (identifier "iVar23") (!= "!=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar15 = "]";" (assignment_expression "pcVar15 = "]"" (identifier "pcVar15") (= "=") (string_literal ""]"" (" """) (string_content "]") (" """))) (; ";")) (goto_statement "goto code_r0x0008e812;" (goto "goto") (statement_identifier "code_r0x0008e812") (; ";"))) (case_statement "case -0xe:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%lld";\n      break;" (case "case") (number_literal "-0xe") (: ":") (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" (identifier "uVar18") (= "=") (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(pcVar2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "pcVar15 = "%lld";" (assignment_expression "pcVar15 = "%lld"" (identifier "pcVar15") (= "=") (string_literal ""%lld"" (" """) (string_content "%lld") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case -0xd:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.16g";\n      break;" (case "case") (number_literal "-0xd") (: ":") (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" (identifier "uVar18") (= "=") (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(pcVar2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "pcVar15 = "%.16g";" (assignment_expression "pcVar15 = "%.16g"" (identifier "pcVar15") (= "=") (string_literal ""%.16g"" (" """) (string_content "%.16g") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case -0xc:\n      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);\n      pcVar15 = "vtab:%p";\n      break;" (case "case") (number_literal "-0xc") (: ":") (expression_statement "uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);" (assignment_expression "uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" (identifier "uVar18") (= "=") (pointer_expression "*(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" (* "*") (cast_expression "(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar2 + 0x10) + 8)" (( "(") (binary_expression "*(int *)(pcVar2 + 0x10) + 8" (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "pcVar15 = "vtab:%p";" (assignment_expression "pcVar15 = "vtab:%p"" (identifier "pcVar15") (= "=") (string_literal ""vtab:%p"" (" """) (string_content "vtab:%p") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case -0xb:\n      puVar6 = *(undefined4 **)(pcVar2 + 0x10);\n      uVar4 = *(ushort *)(puVar6 + 2);\n      if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }\n      if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }\n      break;" (case "case") (number_literal "-0xb") (: ":") (expression_statement "puVar6 = *(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "puVar6 = *(undefined4 **)(pcVar2 + 0x10)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(pcVar2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(ushort *)(puVar6 + 2);" (assignment_expression "uVar4 = *(ushort *)(puVar6 + 2)" (identifier "uVar4") (= "=") (pointer_expression "*(ushort *)(puVar6 + 2)" (* "*") (cast_expression "(ushort *)(puVar6 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar6 + 2)" (( "(") (binary_expression "puVar6 + 2" (identifier "puVar6") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if ((uVar4 & 2) != 0) {\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }" (if "if") (parenthesized_expression "((uVar4 & 2) != 0)" (( "(") (binary_expression "(uVar4 & 2) != 0" (parenthesized_expression "(uVar4 & 2)" (( "(") (binary_expression "uVar4 & 2" (identifier "uVar4") (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar15 = (char *)puVar6[4];\n        goto LAB_0008e3c2;\n      }" ({ "{") (expression_statement "pcVar15 = (char *)puVar6[4];" (assignment_expression "pcVar15 = (char *)puVar6[4]" (identifier "pcVar15") (= "=") (cast_expression "(char *)puVar6[4]" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "puVar6[4]" (identifier "puVar6") ([ "[") (number_literal "4") (] "]")))) (; ";")) (goto_statement "goto LAB_0008e3c2;" (goto "goto") (statement_identifier "LAB_0008e3c2") (; ";")) (} "}"))) (if_statement "if ((uVar4 & 0x24) == 0) {\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }\n      else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" (if "if") (parenthesized_expression "((uVar4 & 0x24) == 0)" (( "(") (binary_expression "(uVar4 & 0x24) == 0" (parenthesized_expression "(uVar4 & 0x24)" (( "(") (binary_expression "uVar4 & 0x24" (identifier "uVar4") (& "&") (number_literal "0x24")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }\n        uVar18 = *puVar6;\n        pcVar15 = "%.16g";\n      }" ({ "{") (if_statement "if ((uVar4 & 8) == 0) {\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" (if "if") (parenthesized_expression "((uVar4 & 8) == 0)" (( "(") (binary_expression "(uVar4 & 8) == 0" (parenthesized_expression "(uVar4 & 8)" (( "(") (binary_expression "uVar4 & 8" (identifier "uVar4") (& "&") (number_literal "8")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          pcVar15 = "(blob)";\n          if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }\n          goto LAB_0008e59b;\n        }" ({ "{") (expression_statement "pcVar15 = "(blob)";" (assignment_expression "pcVar15 = "(blob)"" (identifier "pcVar15") (= "=") (string_literal ""(blob)"" (" """) (string_content "(blob)") (" """))) (; ";")) (if_statement "if ((uVar4 & 1) != 0) {\n            pcVar15 = "NULL";\n          }" (if "if") (parenthesized_expression "((uVar4 & 1) != 0)" (( "(") (binary_expression "(uVar4 & 1) != 0" (parenthesized_expression "(uVar4 & 1)" (( "(") (binary_expression "uVar4 & 1" (identifier "uVar4") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            pcVar15 = "NULL";\n          }" ({ "{") (expression_statement "pcVar15 = "NULL";" (assignment_expression "pcVar15 = "NULL"" (identifier "pcVar15") (= "=") (string_literal ""NULL"" (" """) (string_content "NULL") (" """))) (; ";")) (} "}"))) (goto_statement "goto LAB_0008e59b;" (goto "goto") (statement_identifier "LAB_0008e59b") (; ";")) (} "}"))) (expression_statement "uVar18 = *puVar6;" (assignment_expression "uVar18 = *puVar6" (identifier "uVar18") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "pcVar15 = "%.16g";" (assignment_expression "pcVar15 = "%.16g"" (identifier "pcVar15") (= "=") (string_literal ""%.16g"" (" """) (string_content "%.16g") (" """))) (; ";")) (} "}")) (else_clause "else {\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" (else "else") (compound_statement "{\n        uVar18 = *puVar6;\n        pcVar15 = "%lld";\n      }" ({ "{") (expression_statement "uVar18 = *puVar6;" (assignment_expression "uVar18 = *puVar6" (identifier "uVar18") (= "=") (pointer_expression "*puVar6" (* "*") (identifier "puVar6"))) (; ";")) (expression_statement "pcVar15 = "%lld";" (assignment_expression "pcVar15 = "%lld"" (identifier "pcVar15") (= "=") (string_literal ""%lld"" (" """) (string_content "%lld") (" """))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n      pcVar15 = *(char **)(pcVar2 + 0x10);\n      goto LAB_0008e3c2;" (default "default") (: ":") (expression_statement "pcVar15 = *(char **)(pcVar2 + 0x10);" (assignment_expression "pcVar15 = *(char **)(pcVar2 + 0x10)" (identifier "pcVar15") (= "=") (pointer_expression "*(char **)(pcVar2 + 0x10)" (* "*") (cast_expression "(char **)(pcVar2 + 0x10)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_0008e3c2;" (goto "goto") (statement_identifier "LAB_0008e3c2") (; ";"))) (case_statement "case -9:\n      iVar13 = *(int *)(pcVar2 + 0x10);\n      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));\n      if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }\n      pcVar15 = ")";\ncode_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);\n      bVar9 = (byte)local_f8 & 7;\n      goto code_r0x0008e5c0;" (case "case") (number_literal "-9") (: ":") (expression_statement "iVar13 = *(int *)(pcVar2 + 0x10);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0x10)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6))" (identifier "sqlite3_str_appendf") (argument_list "(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6))" (( "(") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (pointer_expression "&UNK_000aae0d" (& "&") (identifier "UNK_000aae0d")) (, ",") (pointer_expression "*(undefined2 *)(iVar13 + 6)" (* "*") (cast_expression "(undefined2 *)(iVar13 + 6)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 6)" (( "(") (binary_expression "iVar13 + 6" (identifier "iVar13") (+ "+") (number_literal "6")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(short *)(iVar13 + 6) != 0) {\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }" (if "if") (parenthesized_expression "(*(short *)(iVar13 + 6) != 0)" (( "(") (binary_expression "*(short *)(iVar13 + 6) != 0" (pointer_expression "*(short *)(iVar13 + 6)" (* "*") (cast_expression "(short *)(iVar13 + 6)" (( "(") (type_descriptor "short *" (sized_type_specifier "short" (short "short")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 6)" (( "(") (binary_expression "iVar13 + 6" (identifier "iVar13") (+ "+") (number_literal "6")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar23 = 0;\n        pbVar1 = (byte *)0xab03d;\n        do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));\n      }" ({ "{") (expression_statement "iVar23 = 0;" (assignment_expression "iVar23 = 0" (identifier "iVar23") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar1 = (byte *)0xab03d;" (assignment_expression "pbVar1 = (byte *)0xab03d" (identifier "pbVar1") (= "=") (cast_expression "(byte *)0xab03d" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xab03d"))) (; ";")) (do_statement "do {\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));" (do "do") (compound_statement "{\n          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);\n          bVar25 = false;\n          bVar26 = puVar6 == (undefined4 *)0x0;\n          pbVar16 = pbVar1;\n          if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }\n          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);\n          pbVar22 = &UNK_000aadef;\n          if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }\n          pbVar20 = &DAT_000aa247;\n          if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }\n          iVar23 = iVar23 + 1;\n          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);\n        }" ({ "{") (expression_statement "puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);" (assignment_expression "puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" (identifier "puVar6") (= "=") (pointer_expression "*(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" (* "*") (cast_expression "(undefined4 **)(iVar13 + 0x14 + iVar23 * 4)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 0x14 + iVar23 * 4)" (( "(") (binary_expression "iVar13 + 0x14 + iVar23 * 4" (binary_expression "iVar13 + 0x14" (identifier "iVar13") (+ "+") (number_literal "0x14")) (+ "+") (binary_expression "iVar23 * 4" (identifier "iVar23") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "bVar26 = puVar6 == (undefined4 *)0x0;" (assignment_expression "bVar26 = puVar6 == (undefined4 *)0x0" (identifier "bVar26") (= "=") (binary_expression "puVar6 == (undefined4 *)0x0" (identifier "puVar6") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) (; ";")) (expression_statement "pbVar16 = pbVar1;" (assignment_expression "pbVar16 = pbVar1" (identifier "pbVar16") (= "=") (identifier "pbVar1")) (; ";")) (if_statement "if (!bVar26) {\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }" (if "if") (parenthesized_expression "(!bVar26)" (( "(") (unary_expression "!bVar26" (! "!") (identifier "bVar26")) () ")")) (compound_statement "{\n            pbVar16 = (byte *)*puVar6;\n            iVar19 = 7;\n            pbVar22 = pbVar16;\n            pbVar20 = (byte *)"BINARY";\n            do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);\n            if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }\n          }" ({ "{") (expression_statement "pbVar16 = (byte *)*puVar6;" (assignment_expression "pbVar16 = (byte *)*puVar6" (identifier "pbVar16") (= "=") (cast_expression "(byte *)*puVar6" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")))) (; ";")) (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" (identifier "iVar19") (= "=") (number_literal "7")) (; ";")) (expression_statement "pbVar22 = pbVar16;" (assignment_expression "pbVar22 = pbVar16" (identifier "pbVar22") (= "=") (identifier "pbVar16")) (; ";")) (expression_statement "pbVar20 = (byte *)"BINARY";" (assignment_expression "pbVar20 = (byte *)"BINARY"" (identifier "pbVar20") (= "=") (cast_expression "(byte *)"BINARY"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""BINARY"" (" """) (string_content "BINARY") (" """)))) (; ";")) (do_statement "do {\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            } while (bVar26);" (do "do") (compound_statement "{\n              if (iVar19 == 0) break;\n              iVar19 = iVar19 + -1;\n              bVar25 = *pbVar22 < *pbVar20;\n              bVar26 = *pbVar22 == *pbVar20;\n              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;\n              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;\n            }" ({ "{") (if_statement "if (iVar19 == 0) break;" (if "if") (parenthesized_expression "(iVar19 == 0)" (( "(") (binary_expression "iVar19 == 0" (identifier "iVar19") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" (identifier "iVar19") (= "=") (binary_expression "iVar19 + -1" (identifier "iVar19") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar25 = *pbVar22 < *pbVar20;" (assignment_expression "bVar25 = *pbVar22 < *pbVar20" (identifier "bVar25") (= "=") (binary_expression "*pbVar22 < *pbVar20" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (< "<") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "bVar26 = *pbVar22 == *pbVar20;" (assignment_expression "bVar26 = *pbVar22 == *pbVar20" (identifier "bVar26") (= "=") (binary_expression "*pbVar22 == *pbVar20" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (== "==") (pointer_expression "*pbVar20" (* "*") (identifier "pbVar20")))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar22 + (uint)bVar27 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;" (assignment_expression "pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1" (identifier "pbVar20") (= "=") (binary_expression "pbVar20 + (uint)bVar27 * -2 + 1" (binary_expression "pbVar20 + (uint)bVar27 * -2" (identifier "pbVar20") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar26)" (( "(") (identifier "bVar26") () ")")) (; ";")) (if_statement "if ((!bVar25 && !bVar26) == bVar25) {\n              pbVar16 = &UNK_000aa643;\n            }" (if "if") (parenthesized_expression "((!bVar25 && !bVar26) == bVar25)" (( "(") (binary_expression "(!bVar25 && !bVar26) == bVar25" (parenthesized_expression "(!bVar25 && !bVar26)" (( "(") (binary_expression "!bVar25 && !bVar26" (unary_expression "!bVar25" (! "!") (identifier "bVar25")) (&& "&&") (unary_expression "!bVar26" (! "!") (identifier "bVar26"))) () ")")) (== "==") (identifier "bVar25")) () ")")) (compound_statement "{\n              pbVar16 = &UNK_000aa643;\n            }" ({ "{") (expression_statement "pbVar16 = &UNK_000aa643;" (assignment_expression "pbVar16 = &UNK_000aa643" (identifier "pbVar16") (= "=") (pointer_expression "&UNK_000aa643" (& "&") (identifier "UNK_000aa643"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);" (assignment_expression "bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" (identifier "bVar9") (= "=") (pointer_expression "*(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" (* "*") (cast_expression "(byte *)(*(int *)(iVar13 + 0x10) + iVar23)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar13 + 0x10) + iVar23)" (( "(") (binary_expression "*(int *)(iVar13 + 0x10) + iVar23" (pointer_expression "*(int *)(iVar13 + 0x10)" (* "*") (cast_expression "(int *)(iVar13 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar23")) () ")"))))) (; ";")) (expression_statement "pbVar22 = &UNK_000aadef;" (assignment_expression "pbVar22 = &UNK_000aadef" (identifier "pbVar22") (= "=") (pointer_expression "&UNK_000aadef" (& "&") (identifier "UNK_000aadef"))) (; ";")) (if_statement "if ((bVar9 & 2) == 0) {\n            pbVar22 = pbVar1;\n          }" (if "if") (parenthesized_expression "((bVar9 & 2) == 0)" (( "(") (binary_expression "(bVar9 & 2) == 0" (parenthesized_expression "(bVar9 & 2)" (( "(") (binary_expression "bVar9 & 2" (identifier "bVar9") (& "&") (number_literal "2")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pbVar22 = pbVar1;\n          }" ({ "{") (expression_statement "pbVar22 = pbVar1;" (assignment_expression "pbVar22 = pbVar1" (identifier "pbVar22") (= "=") (identifier "pbVar1")) (; ";")) (} "}"))) (expression_statement "pbVar20 = &DAT_000aa247;" (assignment_expression "pbVar20 = &DAT_000aa247" (identifier "pbVar20") (= "=") (pointer_expression "&DAT_000aa247" (& "&") (identifier "DAT_000aa247"))) (; ";")) (if_statement "if ((bVar9 & 1) == 0) {\n            pbVar20 = pbVar1;\n          }" (if "if") (parenthesized_expression "((bVar9 & 1) == 0)" (( "(") (binary_expression "(bVar9 & 1) == 0" (parenthesized_expression "(bVar9 & 1)" (( "(") (binary_expression "bVar9 & 1" (identifier "bVar9") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            pbVar20 = pbVar1;\n          }" ({ "{") (expression_statement "pbVar20 = pbVar1;" (assignment_expression "pbVar20 = pbVar1" (identifier "pbVar20") (= "=") (identifier "pbVar1")) (; ";")) (} "}"))) (expression_statement "iVar23 = iVar23 + 1;" (assignment_expression "iVar23 = iVar23 + 1" (identifier "iVar23") (= "=") (binary_expression "iVar23 + 1" (identifier "iVar23") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);" (call_expression "sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16)" (identifier "sqlite3_str_appendf") (argument_list "(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16)" (( "(") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (pointer_expression "&UNK_000aae12" (& "&") (identifier "UNK_000aae12")) (, ",") (identifier "pbVar20") (, ",") (identifier "pbVar22") (, ",") (identifier "pbVar16") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar23 < (int)(uint)*(ushort *)(iVar13 + 6))" (( "(") (binary_expression "iVar23 < (int)(uint)*(ushort *)(iVar13 + 6)" (identifier "iVar23") (< "<") (binary_expression "(int)(uint)*(ushort *)(iVar13 + 6)" (cast_expression "(int)(uint)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")"))) (* "*") (cast_expression "(ushort *)(iVar13 + 6)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 6)" (( "(") (binary_expression "iVar13 + 6" (identifier "iVar13") (+ "+") (number_literal "6")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "pcVar15 = ")";" (assignment_expression "pcVar15 = ")"" (identifier "pcVar15") (= "=") (string_literal "")"" (" """) (string_content ")") (" """))) (; ";")) (labeled_statement "code_r0x0008e812:\n      sqlite3_str_append(&local_10c,pcVar15,1);" (statement_identifier "code_r0x0008e812") (: ":") (expression_statement "sqlite3_str_append(&local_10c,pcVar15,1);" (call_expression "sqlite3_str_append(&local_10c,pcVar15,1)" (identifier "sqlite3_str_append") (argument_list "(&local_10c,pcVar15,1)" (( "(") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (identifier "pcVar15") (, ",") (number_literal "1") () ")"))) (; ";"))) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" (identifier "bVar9") (= "=") (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_f8")) (& "&") (number_literal "7"))) (; ";")) (goto_statement "goto code_r0x0008e5c0;" (goto "goto") (statement_identifier "code_r0x0008e5c0") (; ";"))) (case_statement "case -8:\n      iVar13 = *(int *)(pcVar2 + 0x10);\ncode_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);\n      pcVar15 = "%s(%d)";\n      break;" (case "case") (number_literal "-8") (: ":") (expression_statement "iVar13 = *(int *)(pcVar2 + 0x10);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0x10)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 0x10)" (* "*") (cast_expression "(int *)(pcVar2 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (labeled_statement "code_r0x0008e672:\n      uVar18 = *(undefined4 *)(iVar13 + 0x20);" (statement_identifier "code_r0x0008e672") (: ":") (expression_statement "uVar18 = *(undefined4 *)(iVar13 + 0x20);" (assignment_expression "uVar18 = *(undefined4 *)(iVar13 + 0x20)" (identifier "uVar18") (= "=") (pointer_expression "*(undefined4 *)(iVar13 + 0x20)" (* "*") (cast_expression "(undefined4 *)(iVar13 + 0x20)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x20)" (( "(") (binary_expression "iVar13 + 0x20" (identifier "iVar13") (+ "+") (number_literal "0x20")) () ")"))))) (; ";"))) (expression_statement "pcVar15 = "%s(%d)";" (assignment_expression "pcVar15 = "%s(%d)"" (identifier "pcVar15") (= "=") (string_literal ""%s(%d)"" (" """) (string_content "%s(%d)") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case -6:\n      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);\nLAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }\ncode_r0x0008e3ca:\n      goto LAB_0008e3d0;" (case "case") (number_literal "-6") (: ":") (expression_statement "pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10)" (identifier "pcVar15") (= "=") (cast_expression "(char *)**(undefined4 **)(pcVar2 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(pcVar2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))))) (; ";")) (labeled_statement "LAB_0008e3c2:\n      if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" (statement_identifier "LAB_0008e3c2") (: ":") (if_statement "if (pcVar15 != (char *)0x0) {\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" (if "if") (parenthesized_expression "(pcVar15 != (char *)0x0)" (( "(") (binary_expression "pcVar15 != (char *)0x0" (identifier "pcVar15") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);\n        bVar9 = (byte)local_f8 & 7;\n        goto code_r0x0008e5c0;\n      }" ({ "{") (labeled_statement "LAB_0008e59b:\n        sqlite3_str_appendall(&local_10c,pcVar15);" (statement_identifier "LAB_0008e59b") (: ":") (expression_statement "sqlite3_str_appendall(&local_10c,pcVar15);" (call_expression "sqlite3_str_appendall(&local_10c,pcVar15)" (identifier "sqlite3_str_appendall") (argument_list "(&local_10c,pcVar15)" (( "(") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (identifier "pcVar15") () ")"))) (; ";"))) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" (identifier "bVar9") (= "=") (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_f8")) (& "&") (number_literal "7"))) (; ";")) (goto_statement "goto code_r0x0008e5c0;" (goto "goto") (statement_identifier "code_r0x0008e5c0") (; ";")) (} "}")))) (labeled_statement "code_r0x0008e3ca:\n      goto LAB_0008e3d0;" (statement_identifier "code_r0x0008e3ca") (: ":") (goto_statement "goto LAB_0008e3d0;" (goto "goto") (statement_identifier "LAB_0008e3d0") (; ";")))) (case_statement "case -4:\n      pcVar15 = "program";\n      goto LAB_0008e59b;" (case "case") (number_literal "-4") (: ":") (expression_statement "pcVar15 = "program";" (assignment_expression "pcVar15 = "program"" (identifier "pcVar15") (= "=") (string_literal ""program"" (" """) (string_content "program") (" """))) (; ";")) (goto_statement "goto LAB_0008e59b;" (goto "goto") (statement_identifier "LAB_0008e59b") (; ";"))) (case_statement "case -3:\n      uVar18 = *(undefined4 *)(pcVar2 + 0x10);\n      pcVar15 = "%d";\n      break;" (case "case") (number_literal "-3") (: ":") (expression_statement "uVar18 = *(undefined4 *)(pcVar2 + 0x10);" (assignment_expression "uVar18 = *(undefined4 *)(pcVar2 + 0x10)" (identifier "uVar18") (= "=") (pointer_expression "*(undefined4 *)(pcVar2 + 0x10)" (* "*") (cast_expression "(undefined4 *)(pcVar2 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "pcVar15 = "%d";" (assignment_expression "pcVar15 = "%d"" (identifier "pcVar15") (= "=") (string_literal ""%d"" (" """) (string_content "%d") (" """))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case -2:\n      uVar18 = **(undefined4 **)(pcVar2 + 0x10);\n      pcVar15 = "%.18s-%s";" (case "case") (number_literal "-2") (: ":") (expression_statement "uVar18 = **(undefined4 **)(pcVar2 + 0x10);" (assignment_expression "uVar18 = **(undefined4 **)(pcVar2 + 0x10)" (identifier "uVar18") (= "=") (pointer_expression "**(undefined4 **)(pcVar2 + 0x10)" (* "*") (pointer_expression "*(undefined4 **)(pcVar2 + 0x10)" (* "*") (cast_expression "(undefined4 **)(pcVar2 + 0x10)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar2 + 0x10)" (( "(") (binary_expression "pcVar2 + 0x10" (identifier "pcVar2") (+ "+") (number_literal "0x10")) () ")")))))) (; ";")) (expression_statement "pcVar15 = "%.18s-%s";" (assignment_expression "pcVar15 = "%.18s-%s"" (identifier "pcVar15") (= "=") (string_literal ""%.18s-%s"" (" """) (string_content "%.18s-%s") (" """))) (; ";"))) (} "}"))) (expression_statement "sqlite3_str_appendf(&local_10c,pcVar15,uVar18);" (call_expression "sqlite3_str_appendf(&local_10c,pcVar15,uVar18)" (identifier "sqlite3_str_appendf") (argument_list "(&local_10c,pcVar15,uVar18)" (( "(") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (identifier "pcVar15") (, ",") (identifier "uVar18") () ")"))) (; ";")) (expression_statement "bVar9 = (byte)local_f8 & 7;" (assignment_expression "bVar9 = (byte)local_f8 & 7" (identifier "bVar9") (= "=") (binary_expression "(byte)local_f8 & 7" (cast_expression "(byte)local_f8" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "local_f8")) (& "&") (number_literal "7"))) (; ";")) (labeled_statement "code_r0x0008e5c0:\n    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" (statement_identifier "code_r0x0008e5c0") (: ":") (if_statement "if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" (if "if") (parenthesized_expression "((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0))" (( "(") (binary_expression "(bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "(bVar9 != 0)" (( "(") (binary_expression "bVar9 != 0" (identifier "bVar9") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar5 + 0x4c) & 0xffff00)" (( "(") (binary_expression "*(uint *)(iVar5 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar5 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar5 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4c)" (( "(") (binary_expression "iVar5 + 0x4c" (identifier "iVar5") (+ "+") (number_literal "0x4c")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_0002e050();\n    }" ({ "{") (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" (identifier "FUN_0002e050") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (labeled_statement "LAB_0008e3d0:\n    FUN_0002e520();" (statement_identifier "LAB_0008e3d0") (: ":") (expression_statement "FUN_0002e520();" (call_expression "FUN_0002e520()" (identifier "FUN_0002e520") (argument_list "()" (( "(") () ")"))) (; ";"))) (if_statement "if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }\n    else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" (if "if") (parenthesized_expression "((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8)" (( "(") (binary_expression "(*(byte *)((int)param_1 + 0x8e) & 0xc) == 8" (parenthesized_expression "(*(byte *)((int)param_1 + 0x8e) & 0xc)" (( "(") (binary_expression "*(byte *)((int)param_1 + 0x8e) & 0xc" (pointer_expression "*(byte *)((int)param_1 + 0x8e)" (* "*") (cast_expression "(byte *)((int)param_1 + 0x8e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8e)" (( "(") (binary_expression "(int)param_1 + 0x8e" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8e")) () ")")))) (& "&") (number_literal "0xc")) () ")")) (== "==") (number_literal "8")) () ")")) (compound_statement "{\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 4;\n    }" ({ "{") (expression_statement "iVar13 = *(int *)(pcVar2 + 4);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 4)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 4)" (* "*") (cast_expression "(int *)(pcVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 4)" (( "(") (binary_expression "pcVar2 + 4" (identifier "pcVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x30)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x30)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 0x28) = iVar13;\n        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 0x28) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x28) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x28)" (* "*") (cast_expression "(int *)(iVar17 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x28)" (( "(") (binary_expression "iVar17 + 0x28" (identifier "iVar17") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x2c)" (* "*") (cast_expression "(int *)(iVar17 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x2c)" (( "(") (binary_expression "iVar17 + 0x2c" (identifier "iVar17") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x30)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x30)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar13 = *(int *)(pcVar2 + 8);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 8)" (* "*") (cast_expression "(int *)(pcVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 8)" (( "(") (binary_expression "pcVar2 + 8" (identifier "pcVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x58) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x58) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x58) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x58)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x58)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x58)" (( "(") (binary_expression "iVar17 + 0x58" (identifier "iVar17") (+ "+") (number_literal "0x58")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 0x50) = iVar13;\n        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x58) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 0x50) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x50) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x50)" (* "*") (cast_expression "(int *)(iVar17 + 0x50)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x50)" (( "(") (binary_expression "iVar17 + 0x50" (identifier "iVar17") (+ "+") (number_literal "0x50")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x54) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x54)" (* "*") (cast_expression "(int *)(iVar17 + 0x54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x54)" (( "(") (binary_expression "iVar17 + 0x54" (identifier "iVar17") (+ "+") (number_literal "0x54")) () ")")))) (= "=") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0x58) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x58) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x58)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x58)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x58)" (( "(") (binary_expression "iVar17 + 0x58" (identifier "iVar17") (+ "+") (number_literal "0x58")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar13 = *(int *)(pcVar2 + 0xc);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 0xc)" (* "*") (cast_expression "(int *)(pcVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0xc)" (( "(") (binary_expression "pcVar2 + 0xc" (identifier "pcVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x80)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x80)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x80)" (( "(") (binary_expression "iVar17 + 0x80" (identifier "iVar17") (+ "+") (number_literal "0x80")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 0x78) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x78) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x78)" (* "*") (cast_expression "(int *)(iVar17 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x78)" (( "(") (binary_expression "iVar17 + 0x78" (identifier "iVar17") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x7c)" (* "*") (cast_expression "(int *)(iVar17 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x7c)" (( "(") (binary_expression "iVar17 + 0x7c" (identifier "iVar17") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x80)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x80)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x80)" (( "(") (binary_expression "iVar17 + 0x80" (identifier "iVar17") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000484d0(1,puVar8);" (call_expression "FUN_000484d0(1,puVar8)" (identifier "FUN_000484d0") (argument_list "(1,puVar8)" (( "(") (number_literal "1") (, ",") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x22) = 4;" (assignment_expression "*(undefined2 *)(param_1 + 0x22) = 4" (pointer_expression "*(undefined2 *)(param_1 + 0x22)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x22)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22)" (( "(") (binary_expression "param_1 + 0x22" (identifier "param_1") (+ "+") (number_literal "0x22")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" (else "else") (compound_statement "{\n      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      FUN_000484d0(1,0);\n      iVar13 = *(int *)(pcVar2 + 4);\n      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 8);\n      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      iVar13 = *(int *)(pcVar2 + 0xc);\n      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      uVar4 = *(ushort *)(pcVar2 + 2);\n      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }\n      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }\n      FUN_000484d0(1,puVar8);\n      *(undefined2 *)(param_1 + 0x22) = 8;\n    }" ({ "{") (if_statement "if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x30) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x30) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x30)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x30)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;\n        *(int *)(iVar17 + 0x28) = iVar12;\n        *(undefined2 *)(iVar17 + 0x30) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x2c)" (* "*") (cast_expression "(int *)(iVar17 + 0x2c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x2c)" (( "(") (binary_expression "iVar17 + 0x2c" (identifier "iVar17") (+ "+") (number_literal "0x2c")) () ")")))) (= "=") (binary_expression "iVar12 >> 0x1f" (identifier "iVar12") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(int *)(iVar17 + 0x28) = iVar12;" (assignment_expression "*(int *)(iVar17 + 0x28) = iVar12" (pointer_expression "*(int *)(iVar17 + 0x28)" (* "*") (cast_expression "(int *)(iVar17 + 0x28)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x28)" (( "(") (binary_expression "iVar17 + 0x28" (identifier "iVar17") (+ "+") (number_literal "0x28")) () ")")))) (= "=") (identifier "iVar12")) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0x30) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x30) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x30)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x30)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x30)" (( "(") (binary_expression "iVar17 + 0x30" (identifier "iVar17") (+ "+") (number_literal "0x30")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000484d0(1,0);" (call_expression "FUN_000484d0(1,0)" (identifier "FUN_000484d0") (argument_list "(1,0)" (( "(") (number_literal "1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar13 = *(int *)(pcVar2 + 4);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 4)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 4)" (* "*") (cast_expression "(int *)(pcVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 4)" (( "(") (binary_expression "pcVar2 + 4" (identifier "pcVar2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x80) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x80) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x80)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x80)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x80)" (( "(") (binary_expression "iVar17 + 0x80" (identifier "iVar17") (+ "+") (number_literal "0x80")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 0x78) = iVar13;\n        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0x80) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 0x78) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0x78) = iVar13" (pointer_expression "*(int *)(iVar17 + 0x78)" (* "*") (cast_expression "(int *)(iVar17 + 0x78)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x78)" (( "(") (binary_expression "iVar17 + 0x78" (identifier "iVar17") (+ "+") (number_literal "0x78")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0x7c)" (* "*") (cast_expression "(int *)(iVar17 + 0x7c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x7c)" (( "(") (binary_expression "iVar17 + 0x7c" (identifier "iVar17") (+ "+") (number_literal "0x7c")) () ")")))) (= "=") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0x80) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x80) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x80)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x80)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x80)" (( "(") (binary_expression "iVar17 + 0x80" (identifier "iVar17") (+ "+") (number_literal "0x80")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar13 = *(int *)(pcVar2 + 8);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 8)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 8)" (* "*") (cast_expression "(int *)(pcVar2 + 8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 8)" (( "(") (binary_expression "pcVar2 + 8" (identifier "pcVar2") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0xa8) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0xa8) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0xa8)" (* "*") (cast_expression "(ushort *)(iVar17 + 0xa8)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xa8)" (( "(") (binary_expression "iVar17 + 0xa8" (identifier "iVar17") (+ "+") (number_literal "0xa8")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 0xa0) = iVar13;\n        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xa8) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 0xa0) = iVar13;" (assignment_expression "*(int *)(iVar17 + 0xa0) = iVar13" (pointer_expression "*(int *)(iVar17 + 0xa0)" (* "*") (cast_expression "(int *)(iVar17 + 0xa0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xa0)" (( "(") (binary_expression "iVar17 + 0xa0" (identifier "iVar17") (+ "+") (number_literal "0xa0")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0xa4)" (* "*") (cast_expression "(int *)(iVar17 + 0xa4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xa4)" (( "(") (binary_expression "iVar17 + 0xa4" (identifier "iVar17") (+ "+") (number_literal "0xa4")) () ")")))) (= "=") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0xa8) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0xa8) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0xa8)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0xa8)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xa8)" (( "(") (binary_expression "iVar17 + 0xa8" (identifier "iVar17") (+ "+") (number_literal "0xa8")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "iVar13 = *(int *)(pcVar2 + 0xc);" (assignment_expression "iVar13 = *(int *)(pcVar2 + 0xc)" (identifier "iVar13") (= "=") (pointer_expression "*(int *)(pcVar2 + 0xc)" (* "*") (cast_expression "(int *)(pcVar2 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 0xc)" (( "(") (binary_expression "pcVar2 + 0xc" (identifier "pcVar2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0xd0) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0xd0) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0xd0)" (* "*") (cast_expression "(ushort *)(iVar17 + 0xd0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xd0)" (( "(") (binary_expression "iVar17 + 0xd0" (identifier "iVar17") (+ "+") (number_literal "0xd0")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(int *)(iVar17 + 200) = iVar13;\n        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;\n        *(undefined2 *)(iVar17 + 0xd0) = 4;\n      }" ({ "{") (expression_statement "*(int *)(iVar17 + 200) = iVar13;" (assignment_expression "*(int *)(iVar17 + 200) = iVar13" (pointer_expression "*(int *)(iVar17 + 200)" (* "*") (cast_expression "(int *)(iVar17 + 200)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 200)" (( "(") (binary_expression "iVar17 + 200" (identifier "iVar17") (+ "+") (number_literal "200")) () ")")))) (= "=") (identifier "iVar13")) (; ";")) (expression_statement "*(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;" (assignment_expression "*(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f" (pointer_expression "*(int *)(iVar17 + 0xcc)" (* "*") (cast_expression "(int *)(iVar17 + 0xcc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xcc)" (( "(") (binary_expression "iVar17 + 0xcc" (identifier "iVar17") (+ "+") (number_literal "0xcc")) () ")")))) (= "=") (binary_expression "iVar13 >> 0x1f" (identifier "iVar13") (>> ">>") (number_literal "0x1f"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0xd0) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0xd0) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0xd0)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0xd0)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0xd0)" (( "(") (binary_expression "iVar17 + 0xd0" (identifier "iVar17") (+ "+") (number_literal "0xd0")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "uVar4 = *(ushort *)(pcVar2 + 2);" (assignment_expression "uVar4 = *(ushort *)(pcVar2 + 2)" (identifier "uVar4") (= "=") (pointer_expression "*(ushort *)(pcVar2 + 2)" (* "*") (cast_expression "(ushort *)(pcVar2 + 2)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar2 + 2)" (( "(") (binary_expression "pcVar2 + 2" (identifier "pcVar2") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }\n      else {\n        FUN_00024920();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x120) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x120) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x120) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x120)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x120)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x120)" (( "(") (binary_expression "iVar17 + 0x120" (identifier "iVar17") (+ "+") (number_literal "0x120")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined4 *)(iVar17 + 0x11c) = 0;\n        *(uint *)(iVar17 + 0x118) = (uint)uVar4;\n        *(undefined2 *)(iVar17 + 0x120) = 4;\n      }" ({ "{") (expression_statement "*(undefined4 *)(iVar17 + 0x11c) = 0;" (assignment_expression "*(undefined4 *)(iVar17 + 0x11c) = 0" (pointer_expression "*(undefined4 *)(iVar17 + 0x11c)" (* "*") (cast_expression "(undefined4 *)(iVar17 + 0x11c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x11c)" (( "(") (binary_expression "iVar17 + 0x11c" (identifier "iVar17") (+ "+") (number_literal "0x11c")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(uint *)(iVar17 + 0x118) = (uint)uVar4;" (assignment_expression "*(uint *)(iVar17 + 0x118) = (uint)uVar4" (pointer_expression "*(uint *)(iVar17 + 0x118)" (* "*") (cast_expression "(uint *)(iVar17 + 0x118)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x118)" (( "(") (binary_expression "iVar17 + 0x118" (identifier "iVar17") (+ "+") (number_literal "0x118")) () ")")))) (= "=") (cast_expression "(uint)uVar4" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar4"))) (; ";")) (expression_statement "*(undefined2 *)(iVar17 + 0x120) = 4;" (assignment_expression "*(undefined2 *)(iVar17 + 0x120) = 4" (pointer_expression "*(undefined2 *)(iVar17 + 0x120)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x120)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x120)" (( "(") (binary_expression "iVar17 + 0x120" (identifier "iVar17") (+ "+") (number_literal "0x120")) () ")")))) (= "=") (number_literal "4")) (; ";")) (} "}")) (else_clause "else {\n        FUN_00024920();\n      }" (else "else") (compound_statement "{\n        FUN_00024920();\n      }" ({ "{") (expression_statement "FUN_00024920();" (call_expression "FUN_00024920()" (identifier "FUN_00024920") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }\n      else {\n        FUN_000248e0();\n      }" (if "if") (parenthesized_expression "((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0)" (( "(") (binary_expression "(*(ushort *)(iVar17 + 0x148) & 0x2400) == 0" (parenthesized_expression "(*(ushort *)(iVar17 + 0x148) & 0x2400)" (( "(") (binary_expression "*(ushort *)(iVar17 + 0x148) & 0x2400" (pointer_expression "*(ushort *)(iVar17 + 0x148)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x148)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x148)" (( "(") (binary_expression "iVar17 + 0x148" (identifier "iVar17") (+ "+") (number_literal "0x148")) () ")")))) (& "&") (number_literal "0x2400")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined2 *)(iVar17 + 0x148) = 1;\n      }" ({ "{") (expression_statement "*(undefined2 *)(iVar17 + 0x148) = 1;" (assignment_expression "*(undefined2 *)(iVar17 + 0x148) = 1" (pointer_expression "*(undefined2 *)(iVar17 + 0x148)" (* "*") (cast_expression "(undefined2 *)(iVar17 + 0x148)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x148)" (( "(") (binary_expression "iVar17 + 0x148" (identifier "iVar17") (+ "+") (number_literal "0x148")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n        FUN_000248e0();\n      }" (else "else") (compound_statement "{\n        FUN_000248e0();\n      }" ({ "{") (expression_statement "FUN_000248e0();" (call_expression "FUN_000248e0()" (identifier "FUN_000248e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (expression_statement "FUN_000484d0(1,puVar8);" (call_expression "FUN_000484d0(1,puVar8)" (identifier "FUN_000484d0") (argument_list "(1,puVar8)" (( "(") (number_literal "1") (, ",") (identifier "puVar8") () ")"))) (; ";")) (expression_statement "*(undefined2 *)(param_1 + 0x22) = 8;" (assignment_expression "*(undefined2 *)(param_1 + 0x22) = 8" (pointer_expression "*(undefined2 *)(param_1 + 0x22)" (* "*") (cast_expression "(undefined2 *)(param_1 + 0x22)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x22)" (( "(") (binary_expression "param_1 + 0x22" (identifier "param_1") (+ "+") (number_literal "0x22")) () ")")))) (= "=") (number_literal "8")) (; ";")) (} "}")))) (expression_statement "param_1[0x1d] = iVar17 + 0x28;" (assignment_expression "param_1[0x1d] = iVar17 + 0x28" (subscript_expression "param_1[0x1d]" (identifier "param_1") ([ "[") (number_literal "0x1d") (] "]")) (= "=") (binary_expression "iVar17 + 0x28" (identifier "iVar17") (+ "+") (number_literal "0x28"))) (; ";")) (if_statement "if (*(char *)(iVar5 + 0x4d) == '\0') {\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }\n    else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar5 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar5 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar5 + 0x4d)" (* "*") (cast_expression "(char *)(iVar5 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar5 + 0x4d)" (( "(") (binary_expression "iVar5 + 0x4d" (identifier "iVar5") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      param_1[10] = 0;\n      local_148 = 0;\n      bVar25 = false;\n      uVar24 = 100;\n    }" ({ "{") (expression_statement "param_1[10] = 0;" (assignment_expression "param_1[10] = 0" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_148 = 0;" (assignment_expression "local_148 = 0" (identifier "local_148") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar25 = false;" (assignment_expression "bVar25 = false" (identifier "bVar25") (= "=") (false "false")) (; ";")) (expression_statement "uVar24 = 100;" (assignment_expression "uVar24 = 100" (identifier "uVar24") (= "=") (number_literal "100")) (; ";")) (} "}")) (else_clause "else {\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" (else "else") (compound_statement "{\n      param_1[10] = 7;\nLAB_0008e141:\n      iVar17 = param_1[0x21];\n      if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }\nLAB_0008e157:\n      uVar24 = 1;\nLAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }\nLAB_0008dc84:\n      local_148 = param_1[10];\n      bVar25 = local_148 == 0xc0a;\n    }" ({ "{") (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "7")) (; ";")) (labeled_statement "LAB_0008e141:\n      iVar17 = param_1[0x21];" (statement_identifier "LAB_0008e141") (: ":") (expression_statement "iVar17 = param_1[0x21];" (assignment_expression "iVar17 = param_1[0x21]" (identifier "iVar17") (= "=") (subscript_expression "param_1[0x21]" (identifier "param_1") ([ "[") (number_literal "0x21") (] "]"))) (; ";"))) (if_statement "if (-1 < iVar17) {\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }" (if "if") (parenthesized_expression "(-1 < iVar17)" (( "(") (binary_expression "-1 < iVar17" (number_literal "-1") (< "<") (identifier "iVar17")) () ")")) (compound_statement "{\njoined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }\n      }" ({ "{") (labeled_statement "joined_r0x0008e183:\n        if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }" (statement_identifier "joined_r0x0008e183") (: ":") (if_statement "if ((0 < iVar17) || (param_1[0x20] != 0)) {\n          FUN_0001f8e0();\n        }" (if "if") (parenthesized_expression "((0 < iVar17) || (param_1[0x20] != 0))" (( "(") (binary_expression "(0 < iVar17) || (param_1[0x20] != 0)" (parenthesized_expression "(0 < iVar17)" (( "(") (binary_expression "0 < iVar17" (number_literal "0") (< "<") (identifier "iVar17")) () ")")) (|| "||") (parenthesized_expression "(param_1[0x20] != 0)" (( "(") (binary_expression "param_1[0x20] != 0" (subscript_expression "param_1[0x20]" (identifier "param_1") ([ "[") (number_literal "0x20") (] "]")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          FUN_0001f8e0();\n        }" ({ "{") (expression_statement "FUN_0001f8e0();" (call_expression "FUN_0001f8e0()" (identifier "FUN_0001f8e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (} "}"))) (labeled_statement "LAB_0008e157:\n      uVar24 = 1;" (statement_identifier "LAB_0008e157") (: ":") (expression_statement "uVar24 = 1;" (assignment_expression "uVar24 = 1" (identifier "uVar24") (= "=") (number_literal "1")) (; ";"))) (labeled_statement "LAB_0008e15c:\n      if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" (statement_identifier "LAB_0008e15c") (: ":") (if_statement "if ((char)param_1[0x23] < '\0') {\n        uVar24 = FUN_000488a0();\n      }" (if "if") (parenthesized_expression "((char)param_1[0x23] < '\0')" (( "(") (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        uVar24 = FUN_000488a0();\n      }" ({ "{") (expression_statement "uVar24 = FUN_000488a0();" (assignment_expression "uVar24 = FUN_000488a0()" (identifier "uVar24") (= "=") (call_expression "FUN_000488a0()" (identifier "FUN_000488a0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (labeled_statement "LAB_0008dc84:\n      local_148 = param_1[10];" (statement_identifier "LAB_0008dc84") (: ":") (expression_statement "local_148 = param_1[10];" (assignment_expression "local_148 = param_1[10]" (identifier "local_148") (= "=") (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]"))) (; ";"))) (expression_statement "bVar25 = local_148 == 0xc0a;" (assignment_expression "bVar25 = local_148 == 0xc0a" (identifier "bVar25") (= "=") (binary_expression "local_148 == 0xc0a" (identifier "local_148") (== "==") (number_literal "0xc0a"))) (; ";")) (} "}")))) (labeled_statement "LAB_0008dc90:\n    *(uint *)(iVar14 + 0x3c) = uVar24;" (statement_identifier "LAB_0008dc90") (: ":") (expression_statement "*(uint *)(iVar14 + 0x3c) = uVar24;" (assignment_expression "*(uint *)(iVar14 + 0x3c) = uVar24" (pointer_expression "*(uint *)(iVar14 + 0x3c)" (* "*") (cast_expression "(uint *)(iVar14 + 0x3c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x3c)" (( "(") (binary_expression "iVar14 + 0x3c" (identifier "iVar14") (+ "+") (number_literal "0x3c")) () ")")))) (= "=") (identifier "uVar24")) (; ";"))) (if_statement "if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {\n      local_148 = FUN_00031c90();\n    }\n    else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" (if "if") (parenthesized_expression "((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25))" (( "(") (binary_expression "(*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)" (parenthesized_expression "(*(char *)(*param_1 + 0x4d) != '\0')" (( "(") (binary_expression "*(char *)(*param_1 + 0x4d) != '\0'" (pointer_expression "*(char *)(*param_1 + 0x4d)" (* "*") (cast_expression "(char *)(*param_1 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x4d)" (( "(") (binary_expression "*param_1 + 0x4d" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x4d")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(bVar25)" (( "(") (identifier "bVar25") () ")"))) () ")")) (compound_statement "{\n      local_148 = FUN_00031c90();\n    }" ({ "{") (expression_statement "local_148 = FUN_00031c90();" (assignment_expression "local_148 = FUN_00031c90()" (identifier "local_148") (= "=") (call_expression "FUN_00031c90()" (identifier "FUN_00031c90") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" (else "else") (compound_statement "{\n      local_148 = local_148 & *(uint *)(*param_1 + 0x40);\n    }" ({ "{") (expression_statement "local_148 = local_148 & *(uint *)(*param_1 + 0x40);" (assignment_expression "local_148 = local_148 & *(uint *)(*param_1 + 0x40)" (identifier "local_148") (= "=") (binary_expression "local_148 & *(uint *)(*param_1 + 0x40)" (identifier "local_148") (& "&") (pointer_expression "*(uint *)(*param_1 + 0x40)" (* "*") (cast_expression "(uint *)(*param_1 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + 0x40)" (( "(") (binary_expression "*param_1 + 0x40" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (} "}")))) (if_statement "if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {\n      uVar24 = 7;\n    }" (if "if") (parenthesized_expression "((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0'))" (( "(") (binary_expression "(local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')" (parenthesized_expression "(local_148 == 7)" (( "(") (binary_expression "local_148 == 7" (identifier "local_148") (== "==") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "(param_1[10] = 7, (char)param_1[0x23] < '\0')" (( "(") (comma_expression "param_1[10] = 7, (char)param_1[0x23] < '\0'" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "7")) (, ",") (binary_expression "(char)param_1[0x23] < '\0'" (cast_expression "(char)param_1[0x23]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]"))) (< "<") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")))) () ")"))) () ")")) (compound_statement "{\n      uVar24 = 7;\n    }" ({ "{") (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" (identifier "uVar24") (= "=") (number_literal "7")) (; ";")) (} "}"))) (labeled_statement "LAB_0008dcc7:\n    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);" (statement_identifier "LAB_0008dcc7") (: ":") (expression_statement "uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);" (assignment_expression "uVar24 = uVar24 & *(uint *)(iVar14 + 0x40)" (identifier "uVar24") (= "=") (binary_expression "uVar24 & *(uint *)(iVar14 + 0x40)" (identifier "uVar24") (& "&") (pointer_expression "*(uint *)(iVar14 + 0x40)" (* "*") (cast_expression "(uint *)(iVar14 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + 0x40)" (( "(") (binary_expression "iVar14 + 0x40" (identifier "iVar14") (+ "+") (number_literal "0x40")) () ")")))))) (; ";"))) (if_statement "if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;" (if "if") (parenthesized_expression "((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0))" (( "(") (binary_expression "(uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)" (parenthesized_expression "(uVar24 != 0x11)" (( "(") (binary_expression "uVar24 != 0x11" (identifier "uVar24") (!= "!=") (number_literal "0x11")) () ")")) (|| "||") (parenthesized_expression "(local_138 = local_138 + -1, local_138 == 0)" (( "(") (comma_expression "local_138 = local_138 + -1, local_138 == 0" (assignment_expression "local_138 = local_138 + -1" (identifier "local_138") (= "=") (binary_expression "local_138 + -1" (identifier "local_138") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "local_138 == 0" (identifier "local_138") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0008dc24;" (goto "goto") (statement_identifier "LAB_0008dc24") (; ";"))) (expression_statement "iVar14 = param_1[9];" (assignment_expression "iVar14 = param_1[9]" (identifier "iVar14") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "sqlite3_sql(param_1);" (call_expression "sqlite3_sql(param_1)" (identifier "sqlite3_sql") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar17 = *param_1;" (assignment_expression "iVar17 = *param_1" (identifier "iVar17") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);" (assignment_expression "uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0)" (identifier "uVar24") (= "=") (call_expression "FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0)" (identifier "FUN_000a0930") (argument_list "((char)param_1[0x23],param_1,&local_10c,0)" (( "(") (cast_expression "(char)param_1[0x23]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "param_1[0x23]" (identifier "param_1") ([ "[") (number_literal "0x23") (] "]"))) (, ",") (identifier "param_1") (, ",") (pointer_expression "&local_10c" (& "&") (identifier "local_10c")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (uVar24 == 0) {\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }" (if "if") (parenthesized_expression "(uVar24 == 0)" (( "(") (binary_expression "uVar24 == 0" (identifier "uVar24") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      piVar21 = local_10c;\n      piVar11 = local_f4;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = param_1;\n      piVar11 = local_10c;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      piVar21 = local_f4;\n      piVar11 = param_1;\n      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }\n      iVar17 = local_10c[2];\n      local_10c[2] = param_1[2];\n      param_1[2] = iVar17;\n      iVar17 = local_10c[1];\n      local_10c[1] = param_1[1];\n      param_1[1] = iVar17;\n      iVar17 = local_10c[0x2d];\n      local_10c[0x2d] = param_1[0x2d];\n      param_1[0x2d] = iVar17;\n      param_1[0x32] = local_10c[0x32];\n      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];\n      param_1[0x26] = local_10c[0x26];\n      param_1[0x27] = local_10c[0x27];\n      param_1[0x28] = local_10c[0x28];\n      param_1[0x29] = local_10c[0x29];\n      param_1[0x2a] = local_10c[0x2a];\n      param_1[0x2b] = local_10c[0x2b];\n      iVar17 = local_10c[0x2c];\n      param_1[0x2b] = param_1[0x2b] + 1;\n      param_1[0x2c] = iVar17;\n      FUN_00024cd0();\n      local_10c[10] = 0;\n      FUN_0006fe50();\n      sqlite3_reset(param_1);\n      if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }\n      goto LAB_0008da88;\n    }" ({ "{") (expression_statement "piVar21 = local_10c;" (assignment_expression "piVar21 = local_10c" (identifier "piVar21") (= "=") (identifier "local_10c")) (; ";")) (expression_statement "piVar11 = local_f4;" (assignment_expression "piVar11 = local_f4" (identifier "piVar11") (= "=") (identifier "local_f4")) (; ";")) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" (for "for") (( "(") (assignment_expression "iVar17 = 0x35" (identifier "iVar17") (= "=") (number_literal "0x35")) (; ";") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" (identifier "piVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" (identifier "piVar11") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar21 = param_1;" (assignment_expression "piVar21 = param_1" (identifier "piVar21") (= "=") (identifier "param_1")) (; ";")) (expression_statement "piVar11 = local_10c;" (assignment_expression "piVar11 = local_10c" (identifier "piVar11") (= "=") (identifier "local_10c")) (; ";")) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" (for "for") (( "(") (assignment_expression "iVar17 = 0x35" (identifier "iVar17") (= "=") (number_literal "0x35")) (; ";") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" (identifier "piVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" (identifier "piVar11") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "piVar21 = local_f4;" (assignment_expression "piVar21 = local_f4" (identifier "piVar21") (= "=") (identifier "local_f4")) (; ";")) (expression_statement "piVar11 = param_1;" (assignment_expression "piVar11 = param_1" (identifier "piVar11") (= "=") (identifier "param_1")) (; ";")) (for_statement "for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" (for "for") (( "(") (assignment_expression "iVar17 = 0x35" (identifier "iVar17") (= "=") (number_literal "0x35")) (; ";") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar17 = iVar17 + -1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + -1" (identifier "iVar17") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n        *piVar11 = *piVar21;\n        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;\n        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;\n      }" ({ "{") (expression_statement "*piVar11 = *piVar21;" (assignment_expression "*piVar11 = *piVar21" (pointer_expression "*piVar11" (* "*") (identifier "piVar11")) (= "=") (pointer_expression "*piVar21" (* "*") (identifier "piVar21"))) (; ";")) (expression_statement "piVar21 = piVar21 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar21 = piVar21 + (uint)bVar27 * -2 + 1" (identifier "piVar21") (= "=") (binary_expression "piVar21 + (uint)bVar27 * -2 + 1" (binary_expression "piVar21 + (uint)bVar27 * -2" (identifier "piVar21") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar11 = piVar11 + (uint)bVar27 * -2 + 1;" (assignment_expression "piVar11 = piVar11 + (uint)bVar27 * -2 + 1" (identifier "piVar11") (= "=") (binary_expression "piVar11 + (uint)bVar27 * -2 + 1" (binary_expression "piVar11 + (uint)bVar27 * -2" (identifier "piVar11") (+ "+") (binary_expression "(uint)bVar27 * -2" (cast_expression "(uint)bVar27" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar27")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "iVar17 = local_10c[2];" (assignment_expression "iVar17 = local_10c[2]" (identifier "iVar17") (= "=") (subscript_expression "local_10c[2]" (identifier "local_10c") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "local_10c[2] = param_1[2];" (assignment_expression "local_10c[2] = param_1[2]" (subscript_expression "local_10c[2]" (identifier "local_10c") ([ "[") (number_literal "2") (] "]")) (= "=") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_1[2] = iVar17;" (assignment_expression "param_1[2] = iVar17" (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "iVar17 = local_10c[1];" (assignment_expression "iVar17 = local_10c[1]" (identifier "iVar17") (= "=") (subscript_expression "local_10c[1]" (identifier "local_10c") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_10c[1] = param_1[1];" (assignment_expression "local_10c[1] = param_1[1]" (subscript_expression "local_10c[1]" (identifier "local_10c") ([ "[") (number_literal "1") (] "]")) (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[1] = iVar17;" (assignment_expression "param_1[1] = iVar17" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "iVar17 = local_10c[0x2d];" (assignment_expression "iVar17 = local_10c[0x2d]" (identifier "iVar17") (= "=") (subscript_expression "local_10c[0x2d]" (identifier "local_10c") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (expression_statement "local_10c[0x2d] = param_1[0x2d];" (assignment_expression "local_10c[0x2d] = param_1[0x2d]" (subscript_expression "local_10c[0x2d]" (identifier "local_10c") ([ "[") (number_literal "0x2d") (] "]")) (= "=") (subscript_expression "param_1[0x2d]" (identifier "param_1") ([ "[") (number_literal "0x2d") (] "]"))) (; ";")) (expression_statement "param_1[0x2d] = iVar17;" (assignment_expression "param_1[0x2d] = iVar17" (subscript_expression "param_1[0x2d]" (identifier "param_1") ([ "[") (number_literal "0x2d") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "param_1[0x32] = local_10c[0x32];" (assignment_expression "param_1[0x32] = local_10c[0x32]" (subscript_expression "param_1[0x32]" (identifier "param_1") ([ "[") (number_literal "0x32") (] "]")) (= "=") (subscript_expression "local_10c[0x32]" (identifier "local_10c") ([ "[") (number_literal "0x32") (] "]"))) (; ";")) (expression_statement "*(char *)(param_1 + 0x23) = (char)local_10c[0x23];" (assignment_expression "*(char *)(param_1 + 0x23) = (char)local_10c[0x23]" (pointer_expression "*(char *)(param_1 + 0x23)" (* "*") (cast_expression "(char *)(param_1 + 0x23)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x23)" (( "(") (binary_expression "param_1 + 0x23" (identifier "param_1") (+ "+") (number_literal "0x23")) () ")")))) (= "=") (cast_expression "(char)local_10c[0x23]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "local_10c[0x23]" (identifier "local_10c") ([ "[") (number_literal "0x23") (] "]")))) (; ";")) (expression_statement "param_1[0x26] = local_10c[0x26];" (assignment_expression "param_1[0x26] = local_10c[0x26]" (subscript_expression "param_1[0x26]" (identifier "param_1") ([ "[") (number_literal "0x26") (] "]")) (= "=") (subscript_expression "local_10c[0x26]" (identifier "local_10c") ([ "[") (number_literal "0x26") (] "]"))) (; ";")) (expression_statement "param_1[0x27] = local_10c[0x27];" (assignment_expression "param_1[0x27] = local_10c[0x27]" (subscript_expression "param_1[0x27]" (identifier "param_1") ([ "[") (number_literal "0x27") (] "]")) (= "=") (subscript_expression "local_10c[0x27]" (identifier "local_10c") ([ "[") (number_literal "0x27") (] "]"))) (; ";")) (expression_statement "param_1[0x28] = local_10c[0x28];" (assignment_expression "param_1[0x28] = local_10c[0x28]" (subscript_expression "param_1[0x28]" (identifier "param_1") ([ "[") (number_literal "0x28") (] "]")) (= "=") (subscript_expression "local_10c[0x28]" (identifier "local_10c") ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (expression_statement "param_1[0x29] = local_10c[0x29];" (assignment_expression "param_1[0x29] = local_10c[0x29]" (subscript_expression "param_1[0x29]" (identifier "param_1") ([ "[") (number_literal "0x29") (] "]")) (= "=") (subscript_expression "local_10c[0x29]" (identifier "local_10c") ([ "[") (number_literal "0x29") (] "]"))) (; ";")) (expression_statement "param_1[0x2a] = local_10c[0x2a];" (assignment_expression "param_1[0x2a] = local_10c[0x2a]" (subscript_expression "param_1[0x2a]" (identifier "param_1") ([ "[") (number_literal "0x2a") (] "]")) (= "=") (subscript_expression "local_10c[0x2a]" (identifier "local_10c") ([ "[") (number_literal "0x2a") (] "]"))) (; ";")) (expression_statement "param_1[0x2b] = local_10c[0x2b];" (assignment_expression "param_1[0x2b] = local_10c[0x2b]" (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (subscript_expression "local_10c[0x2b]" (identifier "local_10c") ([ "[") (number_literal "0x2b") (] "]"))) (; ";")) (expression_statement "iVar17 = local_10c[0x2c];" (assignment_expression "iVar17 = local_10c[0x2c]" (identifier "iVar17") (= "=") (subscript_expression "local_10c[0x2c]" (identifier "local_10c") ([ "[") (number_literal "0x2c") (] "]"))) (; ";")) (expression_statement "param_1[0x2b] = param_1[0x2b] + 1;" (assignment_expression "param_1[0x2b] = param_1[0x2b] + 1" (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (= "=") (binary_expression "param_1[0x2b] + 1" (subscript_expression "param_1[0x2b]" (identifier "param_1") ([ "[") (number_literal "0x2b") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "param_1[0x2c] = iVar17;" (assignment_expression "param_1[0x2c] = iVar17" (subscript_expression "param_1[0x2c]" (identifier "param_1") ([ "[") (number_literal "0x2c") (] "]")) (= "=") (identifier "iVar17")) (; ";")) (expression_statement "FUN_00024cd0();" (call_expression "FUN_00024cd0()" (identifier "FUN_00024cd0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_10c[10] = 0;" (assignment_expression "local_10c[10] = 0" (subscript_expression "local_10c[10]" (identifier "local_10c") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0006fe50();" (call_expression "FUN_0006fe50()" (identifier "FUN_0006fe50") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "sqlite3_reset(param_1);" (call_expression "sqlite3_reset(param_1)" (identifier "sqlite3_reset") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (-1 < iVar14) {\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }" (if "if") (parenthesized_expression "(-1 < iVar14)" (( "(") (binary_expression "-1 < iVar14" (number_literal "-1") (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n        *(undefined1 *)((int)param_1 + 0x8d) = 1;\n      }" ({ "{") (expression_statement "*(undefined1 *)((int)param_1 + 0x8d) = 1;" (assignment_expression "*(undefined1 *)((int)param_1 + 0x8d) = 1" (pointer_expression "*(undefined1 *)((int)param_1 + 0x8d)" (* "*") (cast_expression "(undefined1 *)((int)param_1 + 0x8d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x8d)" (( "(") (binary_expression "(int)param_1 + 0x8d" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x8d")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (goto_statement "goto LAB_0008da88;" (goto "goto") (statement_identifier "LAB_0008da88") (; ";")) (} "}"))) (if_statement "if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {\n      FUN_0002e050();\n    }" (if "if") (parenthesized_expression "((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0))" (( "(") (binary_expression "(uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)" (parenthesized_expression "(uVar24 == 7)" (( "(") (binary_expression "uVar24 == 7" (identifier "uVar24") (== "==") (number_literal "7")) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(iVar17 + 0x4c) & 0xffff00)" (( "(") (binary_expression "*(uint *)(iVar17 + 0x4c) & 0xffff00" (pointer_expression "*(uint *)(iVar17 + 0x4c)" (* "*") (cast_expression "(uint *)(iVar17 + 0x4c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4c)" (( "(") (binary_expression "iVar17 + 0x4c" (identifier "iVar17") (+ "+") (number_literal "0x4c")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      FUN_0002e050();\n    }" ({ "{") (expression_statement "FUN_0002e050();" (call_expression "FUN_0002e050()" (identifier "FUN_0002e050") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));" (call_expression "sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104))" (identifier "sqlite3_value_text") (argument_list "(*(undefined4 *)(iVar10 + 0x104))" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0x104)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x104)" (( "(") (binary_expression "iVar10 + 0x104" (identifier "iVar10") (+ "+") (number_literal "0x104")) () ")")))) () ")"))) (; ";")) (if_statement "if (param_1[0x1e] != 0) {\n      FUN_00024720();\n    }" (if "if") (parenthesized_expression "(param_1[0x1e] != 0)" (( "(") (binary_expression "param_1[0x1e] != 0" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00024720();\n    }" ({ "{") (expression_statement "FUN_00024720();" (call_expression "FUN_00024720()" (identifier "FUN_00024720") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar10 + 0x4d) == '\0') {\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }\n    else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar10 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar10 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar10 + 0x4d)" (* "*") (cast_expression "(char *)(iVar10 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4d)" (( "(") (binary_expression "iVar10 + 0x4d" (identifier "iVar10") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar14 = FUN_0002eba0();\n      param_1[0x1e] = iVar14;\n      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }\n      param_1[10] = uVar24;\n    }" ({ "{") (expression_statement "iVar14 = FUN_0002eba0();" (assignment_expression "iVar14 = FUN_0002eba0()" (identifier "iVar14") (= "=") (call_expression "FUN_0002eba0()" (identifier "FUN_0002eba0") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_1[0x1e] = iVar14;" (assignment_expression "param_1[0x1e] = iVar14" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (identifier "iVar14")) (; ";")) (if_statement "if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }\n      else {\n        uVar24 = FUN_00031c90();\n      }" (if "if") (parenthesized_expression "((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a))" (( "(") (binary_expression "(*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)" (parenthesized_expression "(*(char *)(iVar10 + 0x4d) == '\0')" (( "(") (binary_expression "*(char *)(iVar10 + 0x4d) == '\0'" (pointer_expression "*(char *)(iVar10 + 0x4d)" (* "*") (cast_expression "(char *)(iVar10 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x4d)" (( "(") (binary_expression "iVar10 + 0x4d" (identifier "iVar10") (+ "+") (number_literal "0x4d")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(uVar24 != 0xc0a)" (( "(") (binary_expression "uVar24 != 0xc0a" (identifier "uVar24") (!= "!=") (number_literal "0xc0a")) () ")"))) () ")")) (compound_statement "{\n        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);\n      }" ({ "{") (expression_statement "uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);" (assignment_expression "uVar24 = uVar24 & *(uint *)(iVar10 + 0x40)" (identifier "uVar24") (= "=") (binary_expression "uVar24 & *(uint *)(iVar10 + 0x40)" (identifier "uVar24") (& "&") (pointer_expression "*(uint *)(iVar10 + 0x40)" (* "*") (cast_expression "(uint *)(iVar10 + 0x40)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0x40)" (( "(") (binary_expression "iVar10 + 0x40" (identifier "iVar10") (+ "+") (number_literal "0x40")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n        uVar24 = FUN_00031c90();\n      }" (else "else") (compound_statement "{\n        uVar24 = FUN_00031c90();\n      }" ({ "{") (expression_statement "uVar24 = FUN_00031c90();" (assignment_expression "uVar24 = FUN_00031c90()" (identifier "uVar24") (= "=") (call_expression "FUN_00031c90()" (identifier "FUN_00031c90") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (expression_statement "param_1[10] = uVar24;" (assignment_expression "param_1[10] = uVar24" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (identifier "uVar24")) (; ";")) (} "}")) (else_clause "else {\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" (else "else") (compound_statement "{\n      param_1[0x1e] = 0;\n      param_1[10] = 7;\n      uVar24 = 7;\n    }" ({ "{") (expression_statement "param_1[0x1e] = 0;" (assignment_expression "param_1[0x1e] = 0" (subscript_expression "param_1[0x1e]" (identifier "param_1") ([ "[") (number_literal "0x1e") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "param_1[10] = 7;" (assignment_expression "param_1[10] = 7" (subscript_expression "param_1[10]" (identifier "param_1") ([ "[") (number_literal "10") (] "]")) (= "=") (number_literal "7")) (; ";")) (expression_statement "uVar24 = 7;" (assignment_expression "uVar24 = 7" (identifier "uVar24") (= "=") (number_literal "7")) (; ";")) (} "}")))) (labeled_statement "LAB_0008dc24:\n    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));" (statement_identifier "LAB_0008dc24") (: ":") (expression_statement "sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));" (call_expression "sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc))" (identifier "sqlite3_mutex_leave") (argument_list "(*(undefined4 *)(iVar10 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar10 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar10 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar10 + 0xc)" (( "(") (binary_expression "iVar10 + 0xc" (identifier "iVar10") (+ "+") (number_literal "0xc")) () ")")))) () ")"))) (; ";"))) (} "}")) (else_clause "else {\n    uVar24 = FUN_000380c0();\n  }" (else "else") (compound_statement "{\n    uVar24 = FUN_000380c0();\n  }" ({ "{") (expression_statement "uVar24 = FUN_000380c0();" (assignment_expression "uVar24 = FUN_000380c0()" (identifier "uVar24") (= "=") (call_expression "FUN_000380c0()" (identifier "FUN_000380c0") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (if_statement "if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {\n                    \n    FUN_000a9ea0();\n  }" (if "if") (parenthesized_expression "(local_20 != *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 != *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (!= "!=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n                    \n    FUN_000a9ea0();\n  }" ({ "{") (expression_statement "FUN_000a9ea0();" (call_expression "FUN_000a9ea0()" (identifier "FUN_000a9ea0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (return_statement "return uVar24;" (return "return") (identifier "uVar24") (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

int function_1(type_1 *var_5)

{
  type_2 *pbVar1;
  type_2 *var_30;
  int var_62;
  type_1 sVar4;
  type_3 var_12;
  type_4 var_35;
  type_5 *db;
  type_5 *psVar7;
  type_6 *pCVar8;
  type_7 *var_14;
  type_8 *var_15;
  type_9 *var_34;
  type_10 var_56;
  int *var_27;
  type_11 *xDel;
  type_2 var_39;
  int var_3;
  type_12 *z;
  int *var_23;
  int var_26;
  int var_28;
  char *var_41;
  type_2 *pbVar19;
  int var_22;
  type_9 uVar21;
  type_2 *var_37;
  int *var_25;
  type_13 uVar24;
  type_10 var_43;
  type_2 *var_36;
  int var_31;
  type_5 *psVar28;
  type_1 *var_53;
  type_14 *pVVar30;
  type_10 var_10;
  type_15 *var_18;
  int var_1;
  bool var_38;
  bool bVar33;
  type_2 bVar34;
  type_16 in_stack_fffffea4;
  type_15 *var_13;
  int var_24;
  type_10 var_21;
  int var_50;
  type_17 x;
  type_14 tmp;
  
  bVar34 = 0;
  var_62 = *(int *)(var_1 + 0x14);
  var_3 = var_2((type_14 *)var_5);
  if (var_3 == 0) {
    db = *(type_5 **)var_5;
    var_4(db->mutex);
    xDel = PTR_sqlite3_free_000ddfe0;
    var_5[0x8d] = (type_1)0x0;
    var_50 = 0x33;
LAB_0008da88:
    if (*(int *)(var_5 + 0x14) != 0x2df20da3) {
      var_6(var_5);
    }
    psVar28 = *(type_5 **)var_5;
    if (psVar28->mallocFailed != '\0') {
      *(type_9 *)(var_5 + 0x28) = 7;
      var_10 = 7;
      goto LAB_0008dc24;
    }
    sVar4 = var_5[0x8e];
    if (*(int *)(var_5 + 0x24) < 0) {
      if (((type_2)sVar4 & 3) == 0) {
        if (psVar28->nVdbeActive == 0) {
          (psVar28->u1).isInterrupted = 0;
        }
        if ((((psVar28->mTrace & 0x82) != 0) && ((psVar28->init).busy == '\0')) &&
           (*(int *)(var_5 + 0xb4) != 0)) {
          var_7(psVar28->pVfs,(type_18 *)(var_5 + 0x80));
        }
        sVar4 = var_5[0x8e];
        psVar28->nVdbeActive = psVar28->nVdbeActive + 1;
        if (-1 < (char)sVar4) {
          psVar28->nVdbeWrite = psVar28->nVdbeWrite + 1;
        }
        if (((type_2)var_5[0x8f] & 1) != 0) {
          psVar28->nVdbeRead = psVar28->nVdbeRead + 1;
        }
        *(type_9 *)(var_5 + 0x24) = 0;
        goto LAB_0008dac4;
      }
      *(type_9 *)(var_5 + 0x28) = 0x11;
      var_10 = 1;
      if ((char)var_5[0x8c] < '\0') {
        var_10 = var_8((type_14 *)var_5);
      }
      goto LAB_0008dcc7;
    }
LAB_0008dac4:
    if (((type_2)sVar4 & 0xc) == 0) {
      psVar28->nVdbeExec = psVar28->nVdbeExec + 1;
      var_10 = var_9((type_14 *)var_5);
      psVar28->nVdbeExec = psVar28->nVdbeExec + -1;
      if (var_10 == 100) goto LAB_0008dc84;
      if ((-1 < *(int *)(var_5 + 0x84)) &&
         ((0 < *(int *)(var_5 + 0x84) || (*(int *)(var_5 + 0x80) != 0)))) {
        var_11(psVar28,(type_14 *)var_5);
      }
      if (var_10 != 0x65) goto LAB_0008e15c;
LAB_0008e0ef:
      var_12 = psVar28->autoCommit;
joined_r0x0008e0f7:
      if (var_12 == '\0') {
        var_13 = *(type_15 **)(var_5 + 0x28);
        var_10 = 0x65;
        var_38 = var_13 == (type_15 *)0xc0a;
      }
      else {
        var_13 = (type_15 *)0x0;
        if (psVar28->nDb < 1) {
          *(type_9 *)(var_5 + 0x28) = 0;
          var_38 = false;
          var_10 = 0x65;
        }
        else {
          var_3 = 0;
          var_13 = (type_15 *)0x0;
          do {
            var_14 = psVar28->aDb[var_3].pBt;
            if (var_14 != (type_7 *)0x0) {
              if (var_14->sharable == '\0') {
                var_15 = var_14->pBt->pPager->pWal;
                if (var_15 != (type_8 *)0x0) {
                  uVar24 = var_15->iCallback;
                  var_15->iCallback = 0;
                  goto LAB_0008e221;
                }
              }
              else {
                var_16(var_14);
                var_15 = var_14->pBt->pPager->pWal;
                if (var_15 == (type_8 *)0x0) {
                  if (var_14->sharable != '\0') {
                    var_25 = &var_14->wantToLock;
                    *var_25 = *var_25 + -1;
                    if (*var_25 == 0) {
                      var_17(var_14);
                    }
                  }
                }
                else {
                  var_12 = var_14->sharable;
                  uVar24 = var_15->iCallback;
                  var_15->iCallback = 0;
                  if (var_12 != '\0') {
                    var_25 = &var_14->wantToLock;
                    *var_25 = *var_25 + -1;
                    if (*var_25 == 0) {
                      var_17(var_14);
                    }
                  }
LAB_0008e221:
                  if (((0 < (int)uVar24) &&
                      (psVar28->xWalCallback != (type_19 *)0x0))
                     && (var_13 == (type_15 *)0x0)) {
                    var_13 = (type_15 *)(*psVar28->xWalCallback)
                                                 (psVar28->pWalArg,psVar28,
                                                  psVar28->aDb[var_3].zDbSName,uVar24);
                  }
                }
              }
            }
            var_3 = var_3 + 1;
          } while (var_3 < psVar28->nDb);
          var_38 = var_13 == (type_15 *)0xc0a;
          *(type_15 **)(var_5 + 0x28) = var_13;
          var_10 = (-(type_10)(var_13 == (type_15 *)0x0) & 100) + 1;
        }
      }
      goto LAB_0008dc90;
    }
    var_3 = *(int *)(var_5 + 0x54);
    psVar7 = *(type_5 **)var_5;
    var_21 = 1;
    var_18 = (type_15 *)(var_3 + 0x28);
    if (((type_2)sVar4 & 0xc) != 4) {
      var_21 = (type_10)psVar7->flags >> 0x18 & 1;
    }
    if (var_18 != (type_15 *)0x0) {
      var_19(var_18,8);
    }
    *(type_9 *)(var_5 + 0x74) = 0;
    if (*(int *)(var_5 + 0x28) == 7) {
      var_10._0_1_ = psVar7->temp_store;
      var_10._1_1_ = psVar7->mallocFailed;
      var_10._2_1_ = psVar7->bBenignMalloc;
      var_10._3_1_ = psVar7->dfltLockMode;
      if ((var_10 & 0xffff00) == 0) {
        var_20(psVar7);
      }
      goto LAB_0008e141;
    }
    sVar4 = var_5[0x8e];
    var_24 = *(int *)(var_5 + 0x68);
    if (var_21 == 0) {
      var_13 = (type_15 *)0x0;
      var_25 = (int *)0x0;
    }
    else {
      var_22 = *(int *)(var_5 + 0x54);
      var_13 = (type_15 *)(var_22 + 0x168);
      if ((var_13 == (type_15 *)0x0) || ((*(type_2 *)(var_22 + 0x170) & 0x10) == 0)) {
        var_21 = 0;
        var_25 = (int *)0x0;
      }
      else {
        var_25 = *(int **)(var_22 + 0x178);
        var_21 = *(type_10 *)(var_22 + 0x174) >> 2;
        if (var_21 != 0) {
          var_23 = var_25;
          do {
            var_22 = *var_23;
            var_23 = var_23 + 1;
            var_24 = var_24 + *(int *)(var_22 + 4);
          } while (var_25 + var_21 != var_23);
        }
      }
    }
    var_22 = *(int *)(var_5 + 0x24);
    do {
      var_31 = var_22 + 1;
      if (var_24 <= var_22) {
        *(type_9 *)(var_5 + 0x28) = 0;
        *(int *)(var_5 + 0x24) = var_31;
        if ((*(int *)(var_5 + 0x84) < 1) &&
           ((*(int *)(var_5 + 0x84) < 0 || (*(int *)(var_5 + 0x80) == 0)))) goto LAB_0008e0ef;
        var_11(psVar28,(type_14 *)var_5);
        var_12 = psVar28->autoCommit;
        goto joined_r0x0008e0f7;
      }
      if (var_22 < *(int *)(var_5 + 0x68)) {
        var_28 = *(int *)(var_5 + 100);
        var_26 = var_22;
      }
      else {
        var_23 = (int *)*var_25;
        var_26 = var_22 - *(int *)(var_5 + 0x68);
        var_22 = var_23[1];
        var_27 = var_25;
        if (var_22 <= var_26) {
          do {
            var_23 = (int *)var_27[1];
            var_26 = var_26 - var_22;
            var_22 = var_23[1];
            var_27 = var_27 + 1;
          } while (var_22 <= var_26);
        }
        var_28 = *var_23;
      }
      var_30 = (type_2 *)(var_28 + var_26 * 0x14);
      if ((var_13 != (type_15 *)0x0) && (var_30[1] == 0xfc)) {
        if ((int)var_21 < 1) {
          if (var_21 == 0) {
LAB_0008e044:
            var_22 = (var_21 + 1) * 4;
            var_28 = var_29(var_13,var_22,(type_10)(var_21 != 0));
            *(int *)(var_5 + 0x28) = var_28;
            if (var_28 != 0) {
              var_3 = *(int *)(var_5 + 0x84);
              *(int *)(var_5 + 0x24) = var_31;
              if (var_3 < 0) goto LAB_0008e157;
              goto joined_r0x0008e183;
            }
            var_25 = (int *)var_13->z;
            var_25[var_21] = *(int *)(var_30 + 0x10);
            var_13->flags = var_13->flags & 0x3e40 | 0x10;
            var_13->n = var_22;
            var_24 = var_24 + *(int *)(*(int *)(var_30 + 0x10) + 4);
            var_21 = var_21 + 1;
          }
        }
        else if (*(int *)(var_30 + 0x10) != *var_25) {
          var_10 = 0;
          do {
            var_10 = var_10 + 1;
            if (var_21 == var_10) goto LAB_0008e044;
          } while (var_25[var_10] != *(int *)(var_30 + 0x10));
        }
      }
    } while (((((type_2)sVar4 & 0xc) == 8) && (*var_30 != 0xae)) &&
            ((var_22 = var_31, *var_30 != 0x3e || (var_31 < 2))));
    *(int *)(var_5 + 0x24) = var_31;
    if ((psVar7->u1).isInterrupted != 0) {
      *(type_9 *)(var_5 + 0x28) = 9;
      var_32((type_14 *)var_5,"interrupted");
      goto LAB_0008e141;
    }
    x.db = (type_5 *)0x0;
    x.zText = (char *)0x0;
    x.nAlloc = 0;
    x.mxAlloc = 1000000000;
    x.nChar = 0;
    x.accError = '\0';
    x.printfFlags = '\0';
    switch(var_30[1]) {
    case 0xef:
    case 0xfb:
      goto _L33039;
    case 0xf0:
      var_22 = *(int *)(*(int *)(var_30 + 0x10) + 4);
      goto LAB_0008e672;
    case 0xf1:
      var_25 = *(int **)(var_30 + 0x10);
      var_22 = *var_25;
      if (var_22 != 0) {
        var_31 = 1;
        do {
          uVar21 = 0x5b;
          if (var_31 != 1) {
            uVar21 = 0x2c;
          }
          var_23 = var_25 + var_31;
          var_31 = var_31 + 1;
          var_33(&x,"%c%u",uVar21,*var_23);
        } while (var_31 != var_22 + 1);
      }
      var_41 = "]";
      goto LAB_0008e812;
    case 0xf2:
      uVar21 = **(type_9 **)(var_30 + 0x10);
      var_41 = "%lld";
      break;
    case 0xf3:
      uVar21 = **(type_9 **)(var_30 + 0x10);
      var_41 = "%.16g";
      break;
    case 0xf4:
      uVar21 = *(type_9 *)(*(int *)(var_30 + 0x10) + 8);
      var_41 = "vtab:%p";
      break;
    case 0xf5:
      var_34 = *(type_9 **)(var_30 + 0x10);
      var_35 = *(type_4 *)(var_34 + 2);
      if ((var_35 & 2) != 0) {
        var_41 = (char *)var_34[4];
        goto LAB_0008e3c2;
      }
      if ((var_35 & 0x24) == 0) {
        if ((var_35 & 8) == 0) {
          var_41 = "(blob)";
          if ((var_35 & 1) != 0) {
            var_41 = "NULL";
          }
          goto LAB_0008e59b;
        }
        uVar21 = *var_34;
        var_41 = "%.16g";
      }
      else {
        uVar21 = *var_34;
        var_41 = "%lld";
      }
      break;
    default:
      var_41 = *(char **)(var_30 + 0x10);
      goto LAB_0008e3c2;
    case 0xf7:
      var_22 = *(int *)(var_30 + 0x10);
      var_33(&x,"k(%d",(type_10)*(type_4 *)(var_22 + 6));
      if (*(short *)(var_22 + 6) != 0) {
        var_31 = 0;
        pbVar1 = (type_2 *)0xab03d;
        do {
          var_34 = *(type_9 **)(var_22 + 0x14 + var_31 * 4);
          var_38 = false;
          bVar33 = var_34 == (type_9 *)0x0;
          pbVar19 = pbVar1;
          if (!bVar33) {
            pbVar19 = (type_2 *)*var_34;
            var_28 = 7;
            var_36 = pbVar19;
            var_37 = (type_2 *)"BINARY";
            do {
              if (var_28 == 0) break;
              var_28 = var_28 + -1;
              var_38 = *var_36 < *var_37;
              bVar33 = *var_36 == *var_37;
              var_36 = var_36 + (type_10)bVar34 * -2 + 1;
              var_37 = var_37 + (type_10)bVar34 * -2 + 1;
            } while (bVar33);
            if ((!var_38 && !bVar33) == var_38) {
              pbVar19 = &DAT_000aa643;
            }
          }
          var_39 = *(type_2 *)(*(int *)(var_22 + 0x10) + var_31);
          var_36 = &DAT_000aadef;
          if ((var_39 & 2) == 0) {
            var_36 = pbVar1;
          }
          var_37 = &DAT_000aa247;
          if ((var_39 & 1) == 0) {
            var_37 = pbVar1;
          }
          var_31 = var_31 + 1;
          var_33(&x,",%s%s%s",var_37,var_36,pbVar19);
        } while (var_31 < (int)(type_10)*(type_4 *)(var_22 + 6));
      }
      var_41 = ")";
LAB_0008e812:
      var_40(&x,var_41,1);
      var_39 = x.accError & 7;
      goto LAB_0008e5c0;
    case 0xf8:
      var_22 = *(int *)(var_30 + 0x10);
LAB_0008e672:
      uVar21 = *(type_9 *)(var_22 + 0x20);
      var_41 = "%s(%d)";
      break;
    case 0xfa:
      var_41 = (char *)**(int **)(var_30 + 0x10);
LAB_0008e3c2:
      if (var_41 != (char *)0x0) {
LAB_0008e59b:
        var_42(&x,var_41);
        var_39 = x.accError & 7;
        goto LAB_0008e5c0;
      }
_L33039:
      goto LAB_0008e3d0;
    case 0xfc:
      var_41 = "program";
      goto LAB_0008e59b;
    case 0xfd:
      uVar21 = *(type_9 *)(var_30 + 0x10);
      var_41 = "%d";
      break;
    case 0xfe:
      uVar21 = **(type_9 **)(var_30 + 0x10);
      var_41 = "%.18s-%s";
    }
    var_33(&x,var_41,uVar21);
    var_39 = x.accError & 7;
LAB_0008e5c0:
    if ((var_39 != 0) &&
       (var_43._0_1_ = psVar7->temp_store, var_43._1_1_ = psVar7->mallocFailed,
       var_43._2_1_ = psVar7->bBenignMalloc, var_43._3_1_ = psVar7->dfltLockMode,
       (var_43 & 0xffff00) == 0)) {
      var_20(psVar7);
    }
LAB_0008e3d0:
    var_41 = var_44(&x);
    if (((type_2)var_5[0x8e] & 0xc) == 8) {
      var_22 = *(int *)(var_30 + 4);
      if ((*(type_4 *)(var_3 + 0x30) & 0x2400) == 0) {
        *(int *)(var_3 + 0x28) = var_22;
        *(int *)(var_3 + 0x2c) = var_22 >> 0x1f;
        *(type_20 *)(var_3 + 0x30) = 4;
      }
      else {
        var_45(var_18,in_stack_fffffea4);
      }
      var_22 = *(int *)(var_30 + 8);
      if ((*(type_4 *)(var_3 + 0x58) & 0x2400) == 0) {
        *(int *)(var_3 + 0x50) = var_22;
        *(int *)(var_3 + 0x54) = var_22 >> 0x1f;
        *(type_20 *)(var_3 + 0x58) = 4;
      }
      else {
        var_45((type_15 *)(var_3 + 0x50),in_stack_fffffea4);
      }
      var_22 = *(int *)(var_30 + 0xc);
      if ((*(type_4 *)(var_3 + 0x80) & 0x2400) == 0) {
        *(int *)(var_3 + 0x78) = var_22;
        *(int *)(var_3 + 0x7c) = var_22 >> 0x1f;
        *(type_20 *)(var_3 + 0x80) = 4;
      }
      else {
        var_45((type_15 *)(var_3 + 0x78),in_stack_fffffea4);
      }
      var_46((type_15 *)(var_3 + 0xa0),var_41,-1,'\x01',(type_21 *)xDel);
      *(type_20 *)(var_5 + 0x88) = 4;
    }
    else {
      if ((*(type_4 *)(var_3 + 0x30) & 0x2400) == 0) {
        *(int *)(var_3 + 0x2c) = var_26 >> 0x1f;
        *(int *)(var_3 + 0x28) = var_26;
        *(type_20 *)(var_3 + 0x30) = 4;
      }
      else {
        var_45(var_18,in_stack_fffffea4);
      }
      var_46
                ((type_15 *)(var_3 + 0x50),*(char **)(var_47 + (type_10)*var_30 * 4),-1,'\x01',
                 (type_21 *)0x0);
      var_22 = *(int *)(var_30 + 4);
      if ((*(type_4 *)(var_3 + 0x80) & 0x2400) == 0) {
        *(int *)(var_3 + 0x78) = var_22;
        *(int *)(var_3 + 0x7c) = var_22 >> 0x1f;
        *(type_20 *)(var_3 + 0x80) = 4;
      }
      else {
        var_45((type_15 *)(var_3 + 0x78),in_stack_fffffea4);
      }
      var_22 = *(int *)(var_30 + 8);
      if ((*(type_4 *)(var_3 + 0xa8) & 0x2400) == 0) {
        *(int *)(var_3 + 0xa0) = var_22;
        *(int *)(var_3 + 0xa4) = var_22 >> 0x1f;
        *(type_20 *)(var_3 + 0xa8) = 4;
      }
      else {
        var_45((type_15 *)(var_3 + 0xa0),in_stack_fffffea4);
      }
      var_22 = *(int *)(var_30 + 0xc);
      if ((*(type_4 *)(var_3 + 0xd0) & 0x2400) == 0) {
        *(int *)(var_3 + 200) = var_22;
        *(int *)(var_3 + 0xcc) = var_22 >> 0x1f;
        *(type_20 *)(var_3 + 0xd0) = 4;
      }
      else {
        var_45((type_15 *)(var_3 + 200),in_stack_fffffea4);
      }
      var_35 = *(type_4 *)(var_30 + 2);
      if ((*(type_4 *)(var_3 + 0x120) & 0x2400) == 0) {
        *(type_9 *)(var_3 + 0x11c) = 0;
        *(type_10 *)(var_3 + 0x118) = (type_10)var_35;
        *(type_20 *)(var_3 + 0x120) = 4;
      }
      else {
        var_45((type_15 *)(var_3 + 0x118),in_stack_fffffea4);
      }
      if ((*(type_4 *)(var_3 + 0x148) & 0x2400) == 0) {
        *(type_20 *)(var_3 + 0x148) = 1;
      }
      else {
        var_48((type_15 *)(var_3 + 0x140));
      }
      var_46((type_15 *)(var_3 + 0xf0),var_41,-1,'\x01',(type_21 *)xDel);
      *(type_20 *)(var_5 + 0x88) = 8;
    }
    *(type_15 **)(var_5 + 0x74) = var_18;
    if (psVar7->mallocFailed == '\0') {
      *(type_9 *)(var_5 + 0x28) = 0;
      var_13 = (type_15 *)0x0;
      var_38 = false;
      var_10 = 100;
    }
    else {
      *(type_9 *)(var_5 + 0x28) = 7;
LAB_0008e141:
      var_3 = *(int *)(var_5 + 0x84);
      if (-1 < var_3) {
joined_r0x0008e183:
        if ((0 < var_3) || (*(int *)(var_5 + 0x80) != 0)) {
          var_11(psVar28,(type_14 *)var_5);
        }
      }
LAB_0008e157:
      var_10 = 1;
LAB_0008e15c:
      if ((char)var_5[0x8c] < '\0') {
        var_10 = var_8((type_14 *)var_5);
      }
LAB_0008dc84:
      var_13 = *(type_15 **)(var_5 + 0x28);
      var_38 = var_13 == (type_15 *)0xc0a;
    }
LAB_0008dc90:
    psVar28->errCode = var_10;
    psVar7 = *(type_5 **)var_5;
    if ((psVar7->mallocFailed != '\0') || (var_38)) {
      var_43 = var_49(psVar7);
    }
    else {
      var_43 = (type_10)var_13 & psVar7->errMask;
    }
    if ((var_43 == 7) && (*(type_9 *)(var_5 + 0x28) = 7, (char)var_5[0x8c] < '\0')) {
      var_10 = 7;
    }
LAB_0008dcc7:
    var_10 = var_10 & psVar28->errMask;
    if ((var_10 != 0x11) || (var_50 = var_50 + -1, var_50 == 0)) goto LAB_0008dc24;
    var_3 = *(int *)(var_5 + 0x24);
    var_41 = var_51(var_5);
    psVar28 = *(type_5 **)var_5;
    var_10 = var_52
                       (psVar28,var_41,-1,(type_10)(type_2)var_5[0x8c],(type_14 *)var_5,(type_1 **)&x
                        ,(char **)0x0);
    if (var_10 == 0) {
      psVar28 = x.db;
      pVVar30 = &tmp;
      for (var_22 = 0x35; var_22 != 0; var_22 = var_22 + -1) {
        pVVar30->db = (type_5 *)psVar28->pVfs;
        psVar28 = (type_5 *)((int)psVar28 + (type_10)bVar34 * -8 + 4);
        pVVar30 = (type_14 *)((int)pVVar30 + (type_10)bVar34 * -8 + 4);
      }
      var_53 = var_5;
      psVar28 = x.db;
      for (var_22 = 0x35; var_22 != 0; var_22 = var_22 + -1) {
        psVar28->pVfs = *(type_22 **)var_53;
        var_53 = var_53 + (type_10)bVar34 * -8 + 4;
        psVar28 = (type_5 *)((int)psVar28 + (type_10)bVar34 * -8 + 4);
      }
      pVVar30 = &tmp;
      var_53 = var_5;
      for (var_22 = 0x35; var_22 != 0; var_22 = var_22 + -1) {
        *(type_5 **)var_53 = pVVar30->db;
        pVVar30 = (type_14 *)((int)pVVar30 + (type_10)bVar34 * -8 + 4);
        var_53 = var_53 + (type_10)bVar34 * -8 + 4;
      }
      pCVar8 = (x.db)->pDfltColl;
      (x.db)->pDfltColl = *(type_6 **)(var_5 + 8);
      *(type_6 **)(var_5 + 8) = pCVar8;
      pVVar30 = (x.db)->pVdbe;
      (x.db)->pVdbe = *(type_14 **)(var_5 + 4);
      *(type_14 **)(var_5 + 4) = pVVar30;
      var_22 = (x.db)->nVdbeExec;
      (x.db)->nVdbeExec = *(int *)(var_5 + 0xb4);
      *(int *)(var_5 + 0xb4) = var_22;
      *(void **)(var_5 + 200) = (x.db)->pTraceArg;
      var_5[0x8c] = *(type_1 *)((x.db)->aLimit + 9);
      *(int *)(var_5 + 0x98) = (x.db)->nMaxSorterMmap;
      *(type_23 *)(var_5 + 0x9c) = ((x.db)->init).newTnum;
      *(type_9 *)(var_5 + 0xa0) = *(type_9 *)&((x.db)->init).iDb;
      *(char ***)(var_5 + 0xa4) = ((x.db)->init).azInit;
      *(int *)(var_5 + 0xa8) = (x.db)->nVdbeActive;
      *(int *)(var_5 + 0xac) = (x.db)->nVdbeRead;
      var_22 = (x.db)->nVdbeWrite;
      *(int *)(var_5 + 0xac) = *(int *)(var_5 + 0xac) + 1;
      *(int *)(var_5 + 0xb0) = var_22;
      var_54((type_1 *)x.db,var_5);
      *(type_9 *)((int)&(x.db)->lastRowid + 4) = 0;
      var_55((type_14 *)x.db);
      var_6(var_5);
      if (-1 < var_3) {
        var_5[0x8d] = (type_1)0x1;
      }
      goto LAB_0008da88;
    }
    if ((var_10 == 7) &&
       (var_56._0_1_ = psVar28->temp_store, var_56._1_1_ = psVar28->mallocFailed,
       var_56._2_1_ = psVar28->bBenignMalloc, var_56._3_1_ = psVar28->dfltLockMode,
       (var_56 & 0xffff00) == 0)) {
      var_20(psVar28);
    }
    z = var_57(db->pErr);
    if (*(void **)(var_5 + 0x78) != (void *)0x0) {
      var_58(db,*(void **)(var_5 + 0x78));
    }
    if (db->mallocFailed == '\0') {
      var_41 = var_59(db,(char *)z);
      *(char **)(var_5 + 0x78) = var_41;
      if ((db->mallocFailed == '\0') && (var_10 != 0xc0a)) {
        var_10 = var_10 & db->errMask;
      }
      else {
        var_10 = var_49(db);
      }
      *(type_10 *)(var_5 + 0x28) = var_10;
    }
    else {
      *(type_9 *)(var_5 + 0x78) = 0;
      *(type_9 *)(var_5 + 0x28) = 7;
      var_10 = 7;
    }
LAB_0008dc24:
    var_60(db->mutex);
  }
  else {
    var_10 = var_61(0x1471f);
  }
  if (var_62 != *(int *)(var_1 + 0x14)) {
                    /* WARNING: Subroutine does not return */
    var_63();
  }
  return var_10;
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

uint MASKED(int *param_1)

{
  byte *pbVar1;
  char *pcVar2;
  char cVar3;
  ushort uVar4;
  int iVar5;
  undefined4 *puVar6;
  int *piVar7;
  undefined *puVar8;
  byte bVar9;
  int iVar10;
  int *piVar11;
  int iVar12;
  int iVar13;
  int iVar14;
  char *pcVar15;
  byte *pbVar16;
  int iVar17;
  undefined4 uVar18;
  int iVar19;
  byte *pbVar20;
  int *piVar21;
  byte *pbVar22;
  int iVar23;
  uint uVar24;
  int in_GS_OFFSET;
  bool bVar25;
  bool bVar26;
  byte bVar27;
  uint local_148;
  int local_144;
  uint local_13c;
  int local_138;
  int *local_10c;
  undefined4 local_108;
  undefined4 local_104;
  undefined4 local_100;
  undefined4 local_fc;
  undefined2 local_f8;
  int local_f4 [53];
  int local_20;
  undefined4 uStack_14;
  
  bVar27 = 0;
  uStack_14 = 0x8da19;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar10 = FUN_0003bbd0();
  if (iVar10 == 0) {
    iVar10 = *param_1;
    sqlite3_mutex_enter(*(undefined4 *)(iVar10 + 0xc));
    puVar8 = PTR_sqlite3_free_000ddfe0;
    *(undefined1 *)((int)param_1 + 0x8d) = 0;
    local_138 = 0x33;
LAB_0008da88:
    if (param_1[5] != 0x2df20da3) {
      sqlite3_reset(param_1);
    }
    iVar14 = *param_1;
    if (*(char *)(iVar14 + 0x4d) != '\0') {
      param_1[10] = 7;
      uVar24 = 7;
      goto LAB_0008dc24;
    }
    bVar9 = *(byte *)((int)param_1 + 0x8e);
    if (param_1[9] < 0) {
      if ((bVar9 & 3) == 0) {
        if (*(int *)(iVar14 + 0xa8) == 0) {
          *(undefined4 *)(iVar14 + 0x108) = 0;
        }
        if ((((*(byte *)(iVar14 + 0x54) & 0x82) != 0) && (*(char *)(iVar14 + 0xa1) == '\0')) &&
           (param_1[0x2d] != 0)) {
          FUN_0001d9a0();
        }
        bVar9 = *(byte *)((int)param_1 + 0x8e);
        *(int *)(iVar14 + 0xa8) = *(int *)(iVar14 + 0xa8) + 1;
        if (-1 < (char)bVar9) {
          *(int *)(iVar14 + 0xb0) = *(int *)(iVar14 + 0xb0) + 1;
        }
        if ((*(byte *)((int)param_1 + 0x8f) & 1) != 0) {
          *(int *)(iVar14 + 0xac) = *(int *)(iVar14 + 0xac) + 1;
        }
        param_1[9] = 0;
        goto LAB_0008dac4;
      }
      param_1[10] = 0x11;
      uVar24 = 1;
      if ((char)param_1[0x23] < '\0') {
        uVar24 = FUN_000488a0();
      }
      goto LAB_0008dcc7;
    }
LAB_0008dac4:
    if ((bVar9 & 0xc) == 0) {
      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + 1;
      uVar24 = FUN_00083fd0();
      *(int *)(iVar14 + 0xb4) = *(int *)(iVar14 + 0xb4) + -1;
      if (uVar24 == 100) goto LAB_0008dc84;
      if ((-1 < param_1[0x21]) && ((0 < param_1[0x21] || (param_1[0x20] != 0)))) {
        FUN_0001f8e0();
      }
      if (uVar24 != 0x65) goto LAB_0008e15c;
LAB_0008e0ef:
      cVar3 = *(char *)(iVar14 + 0x4b);
joined_r0x0008e0f7:
      if (cVar3 == '\0') {
        local_148 = param_1[10];
        uVar24 = 0x65;
        bVar25 = local_148 == 0xc0a;
      }
      else {
        local_148 = 0;
        if (*(int *)(iVar14 + 0x14) < 1) {
          param_1[10] = 0;
          bVar25 = false;
          uVar24 = 0x65;
        }
        else {
          iVar17 = 0;
          local_148 = 0;
          do {
            iVar5 = *(int *)(*(int *)(iVar14 + 0x10) + 4 + iVar17 * 0x10);
            if (iVar5 != 0) {
              if (*(char *)(iVar5 + 9) == '\0') {
                iVar5 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);
                if (iVar5 != 0) {
                  iVar13 = *(int *)(iVar5 + 0xc);
                  *(undefined4 *)(iVar5 + 0xc) = 0;
                  goto LAB_0008e221;
                }
              }
              else {
                FUN_00027820();
                iVar23 = *(int *)(**(int **)(iVar5 + 4) + 0xd4);
                if (iVar23 == 0) {
                  if (*(char *)(iVar5 + 9) != '\0') {
                    piVar21 = (int *)(iVar5 + 0xc);
                    *piVar21 = *piVar21 + -1;
                    if (*piVar21 == 0) {
                      FUN_000278b0();
                    }
                  }
                }
                else {
                  cVar3 = *(char *)(iVar5 + 9);
                  iVar13 = *(int *)(iVar23 + 0xc);
                  *(undefined4 *)(iVar23 + 0xc) = 0;
                  if (cVar3 != '\0') {
                    piVar21 = (int *)(iVar5 + 0xc);
                    *piVar21 = *piVar21 + -1;
                    if (*piVar21 == 0) {
                      FUN_000278b0();
                    }
                  }
LAB_0008e221:
                  if (((0 < iVar13) && (*(code **)(iVar14 + 0xf0) != (code *)0x0)) &&
                     (local_148 == 0)) {
                    local_148 = (**(code **)(iVar14 + 0xf0))
                                          (*(undefined4 *)(iVar14 + 0xf4),iVar14,
                                           *(undefined4 *)(*(int *)(iVar14 + 0x10) + iVar17 * 0x10),
                                           iVar13);
                  }
                }
              }
            }
            iVar17 = iVar17 + 1;
          } while (iVar17 < *(int *)(iVar14 + 0x14));
          bVar25 = local_148 == 0xc0a;
          param_1[10] = local_148;
          uVar24 = (-(uint)(local_148 == 0) & 100) + 1;
        }
      }
      goto LAB_0008dc90;
    }
    iVar17 = param_1[0x15];
    iVar5 = *param_1;
    local_13c = 1;
    if ((bVar9 & 0xc) != 4) {
      local_13c = *(uint *)(iVar5 + 0x1c) >> 0x18 & 1;
    }
    if (iVar17 + 0x28 != 0) {
      FUN_000284b0();
    }
    param_1[0x1d] = 0;
    if (param_1[10] == 7) {
      if ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0) {
        FUN_0002e050();
      }
      goto LAB_0008e141;
    }
    bVar9 = *(byte *)((int)param_1 + 0x8e);
    local_144 = param_1[0x1a];
    if (local_13c == 0) {
      local_148 = 0;
      piVar21 = (int *)0x0;
    }
    else {
      iVar13 = param_1[0x15];
      local_148 = iVar13 + 0x168;
      if ((local_148 == 0) || ((*(byte *)(iVar13 + 0x170) & 0x10) == 0)) {
        local_13c = 0;
        piVar21 = (int *)0x0;
      }
      else {
        piVar21 = *(int **)(iVar13 + 0x178);
        local_13c = *(uint *)(iVar13 + 0x174) >> 2;
        if (local_13c != 0) {
          piVar11 = piVar21;
          do {
            iVar13 = *piVar11;
            piVar11 = piVar11 + 1;
            local_144 = local_144 + *(int *)(iVar13 + 4);
          } while (piVar21 + local_13c != piVar11);
        }
      }
    }
    iVar13 = param_1[9];
    do {
      iVar23 = iVar13 + 1;
      if (local_144 <= iVar13) {
        param_1[10] = 0;
        param_1[9] = iVar23;
        if ((param_1[0x21] < 1) && ((param_1[0x21] < 0 || (param_1[0x20] == 0)))) goto LAB_0008e0ef;
        FUN_0001f8e0();
        cVar3 = *(char *)(iVar14 + 0x4b);
        goto joined_r0x0008e0f7;
      }
      if (iVar13 < param_1[0x1a]) {
        iVar19 = param_1[0x19];
        iVar12 = iVar13;
      }
      else {
        piVar11 = (int *)*piVar21;
        iVar12 = iVar13 - param_1[0x1a];
        iVar13 = piVar11[1];
        piVar7 = piVar21;
        if (iVar13 <= iVar12) {
          do {
            piVar11 = (int *)piVar7[1];
            iVar12 = iVar12 - iVar13;
            iVar13 = piVar11[1];
            piVar7 = piVar7 + 1;
          } while (iVar13 <= iVar12);
        }
        iVar19 = *piVar11;
      }
      pcVar2 = (char *)(iVar19 + iVar12 * 0x14);
      if ((local_148 != 0) && (pcVar2[1] == -4)) {
        if ((int)local_13c < 1) {
          if (local_13c == 0) {
LAB_0008e044:
            iVar13 = FUN_000307e0();
            param_1[10] = iVar13;
            if (iVar13 != 0) {
              iVar17 = param_1[0x21];
              param_1[9] = iVar23;
              if (iVar17 < 0) goto LAB_0008e157;
              goto joined_r0x0008e183;
            }
            piVar21 = *(int **)(local_148 + 0x10);
            piVar21[local_13c] = *(int *)(pcVar2 + 0x10);
            *(ushort *)(local_148 + 8) = *(ushort *)(local_148 + 8) & 0x3e40 | 0x10;
            *(uint *)(local_148 + 0xc) = (local_13c + 1) * 4;
            local_144 = local_144 + *(int *)(*(int *)(pcVar2 + 0x10) + 4);
            local_13c = local_13c + 1;
          }
        }
        else if (*(int *)(pcVar2 + 0x10) != *piVar21) {
          uVar24 = 0;
          do {
            uVar24 = uVar24 + 1;
            if (local_13c == uVar24) goto LAB_0008e044;
          } while (piVar21[uVar24] != *(int *)(pcVar2 + 0x10));
        }
      }
    } while ((((bVar9 & 0xc) == 8) && (*pcVar2 != -0x52)) &&
            ((iVar13 = iVar23, *pcVar2 != '>' || (iVar23 < 2))));
    param_1[9] = iVar23;
    if (*(int *)(iVar5 + 0x108) != 0) {
      param_1[10] = 9;
      FUN_0003e960(param_1,"interrupted");
      goto LAB_0008e141;
    }
    local_10c = (int *)0x0;
    local_108 = 0;
    local_104 = 0;
    local_100 = 1000000000;
    local_fc = 0;
    local_f8 = 0;
    switch(pcVar2[1]) {
    case -0x11:
    case -5:
      goto code_r0x0008e3ca;
    case -0x10:
      iVar13 = *(int *)(*(int *)(pcVar2 + 0x10) + 4);
      goto code_r0x0008e672;
    case -0xf:
      piVar21 = *(int **)(pcVar2 + 0x10);
      iVar13 = *piVar21;
      if (iVar13 != 0) {
        iVar23 = 1;
        do {
          uVar18 = 0x5b;
          if (iVar23 != 1) {
            uVar18 = 0x2c;
          }
          piVar11 = piVar21 + iVar23;
          iVar23 = iVar23 + 1;
          sqlite3_str_appendf(&local_10c,&UNK_000aae32,uVar18,*piVar11);
        } while (iVar23 != iVar13 + 1);
      }
      pcVar15 = "]";
      goto code_r0x0008e812;
    case -0xe:
      uVar18 = **(undefined4 **)(pcVar2 + 0x10);
      pcVar15 = "%lld";
      break;
    case -0xd:
      uVar18 = **(undefined4 **)(pcVar2 + 0x10);
      pcVar15 = "%.16g";
      break;
    case -0xc:
      uVar18 = *(undefined4 *)(*(int *)(pcVar2 + 0x10) + 8);
      pcVar15 = "vtab:%p";
      break;
    case -0xb:
      puVar6 = *(undefined4 **)(pcVar2 + 0x10);
      uVar4 = *(ushort *)(puVar6 + 2);
      if ((uVar4 & 2) != 0) {
        pcVar15 = (char *)puVar6[4];
        goto LAB_0008e3c2;
      }
      if ((uVar4 & 0x24) == 0) {
        if ((uVar4 & 8) == 0) {
          pcVar15 = "(blob)";
          if ((uVar4 & 1) != 0) {
            pcVar15 = "NULL";
          }
          goto LAB_0008e59b;
        }
        uVar18 = *puVar6;
        pcVar15 = "%.16g";
      }
      else {
        uVar18 = *puVar6;
        pcVar15 = "%lld";
      }
      break;
    default:
      pcVar15 = *(char **)(pcVar2 + 0x10);
      goto LAB_0008e3c2;
    case -9:
      iVar13 = *(int *)(pcVar2 + 0x10);
      sqlite3_str_appendf(&local_10c,&UNK_000aae0d,*(undefined2 *)(iVar13 + 6));
      if (*(short *)(iVar13 + 6) != 0) {
        iVar23 = 0;
        pbVar1 = (byte *)0xab03d;
        do {
          puVar6 = *(undefined4 **)(iVar13 + 0x14 + iVar23 * 4);
          bVar25 = false;
          bVar26 = puVar6 == (undefined4 *)0x0;
          pbVar16 = pbVar1;
          if (!bVar26) {
            pbVar16 = (byte *)*puVar6;
            iVar19 = 7;
            pbVar22 = pbVar16;
            pbVar20 = (byte *)"BINARY";
            do {
              if (iVar19 == 0) break;
              iVar19 = iVar19 + -1;
              bVar25 = *pbVar22 < *pbVar20;
              bVar26 = *pbVar22 == *pbVar20;
              pbVar22 = pbVar22 + (uint)bVar27 * -2 + 1;
              pbVar20 = pbVar20 + (uint)bVar27 * -2 + 1;
            } while (bVar26);
            if ((!bVar25 && !bVar26) == bVar25) {
              pbVar16 = &UNK_000aa643;
            }
          }
          bVar9 = *(byte *)(*(int *)(iVar13 + 0x10) + iVar23);
          pbVar22 = &UNK_000aadef;
          if ((bVar9 & 2) == 0) {
            pbVar22 = pbVar1;
          }
          pbVar20 = &DAT_000aa247;
          if ((bVar9 & 1) == 0) {
            pbVar20 = pbVar1;
          }
          iVar23 = iVar23 + 1;
          sqlite3_str_appendf(&local_10c,&UNK_000aae12,pbVar20,pbVar22,pbVar16);
        } while (iVar23 < (int)(uint)*(ushort *)(iVar13 + 6));
      }
      pcVar15 = ")";
code_r0x0008e812:
      sqlite3_str_append(&local_10c,pcVar15,1);
      bVar9 = (byte)local_f8 & 7;
      goto code_r0x0008e5c0;
    case -8:
      iVar13 = *(int *)(pcVar2 + 0x10);
code_r0x0008e672:
      uVar18 = *(undefined4 *)(iVar13 + 0x20);
      pcVar15 = "%s(%d)";
      break;
    case -6:
      pcVar15 = (char *)**(undefined4 **)(pcVar2 + 0x10);
LAB_0008e3c2:
      if (pcVar15 != (char *)0x0) {
LAB_0008e59b:
        sqlite3_str_appendall(&local_10c,pcVar15);
        bVar9 = (byte)local_f8 & 7;
        goto code_r0x0008e5c0;
      }
code_r0x0008e3ca:
      goto LAB_0008e3d0;
    case -4:
      pcVar15 = "program";
      goto LAB_0008e59b;
    case -3:
      uVar18 = *(undefined4 *)(pcVar2 + 0x10);
      pcVar15 = "%d";
      break;
    case -2:
      uVar18 = **(undefined4 **)(pcVar2 + 0x10);
      pcVar15 = "%.18s-%s";
    }
    sqlite3_str_appendf(&local_10c,pcVar15,uVar18);
    bVar9 = (byte)local_f8 & 7;
code_r0x0008e5c0:
    if ((bVar9 != 0) && ((*(uint *)(iVar5 + 0x4c) & 0xffff00) == 0)) {
      FUN_0002e050();
    }
LAB_0008e3d0:
    FUN_0002e520();
    if ((*(byte *)((int)param_1 + 0x8e) & 0xc) == 8) {
      iVar13 = *(int *)(pcVar2 + 4);
      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x28) = iVar13;
        *(int *)(iVar17 + 0x2c) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x30) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 8);
      if ((*(ushort *)(iVar17 + 0x58) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x50) = iVar13;
        *(int *)(iVar17 + 0x54) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x58) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 0xc);
      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x78) = iVar13;
        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x80) = 4;
      }
      else {
        FUN_00024920();
      }
      FUN_000484d0(1,puVar8);
      *(undefined2 *)(param_1 + 0x22) = 4;
    }
    else {
      if ((*(ushort *)(iVar17 + 0x30) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x2c) = iVar12 >> 0x1f;
        *(int *)(iVar17 + 0x28) = iVar12;
        *(undefined2 *)(iVar17 + 0x30) = 4;
      }
      else {
        FUN_00024920();
      }
      FUN_000484d0(1,0);
      iVar13 = *(int *)(pcVar2 + 4);
      if ((*(ushort *)(iVar17 + 0x80) & 0x2400) == 0) {
        *(int *)(iVar17 + 0x78) = iVar13;
        *(int *)(iVar17 + 0x7c) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0x80) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 8);
      if ((*(ushort *)(iVar17 + 0xa8) & 0x2400) == 0) {
        *(int *)(iVar17 + 0xa0) = iVar13;
        *(int *)(iVar17 + 0xa4) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0xa8) = 4;
      }
      else {
        FUN_00024920();
      }
      iVar13 = *(int *)(pcVar2 + 0xc);
      if ((*(ushort *)(iVar17 + 0xd0) & 0x2400) == 0) {
        *(int *)(iVar17 + 200) = iVar13;
        *(int *)(iVar17 + 0xcc) = iVar13 >> 0x1f;
        *(undefined2 *)(iVar17 + 0xd0) = 4;
      }
      else {
        FUN_00024920();
      }
      uVar4 = *(ushort *)(pcVar2 + 2);
      if ((*(ushort *)(iVar17 + 0x120) & 0x2400) == 0) {
        *(undefined4 *)(iVar17 + 0x11c) = 0;
        *(uint *)(iVar17 + 0x118) = (uint)uVar4;
        *(undefined2 *)(iVar17 + 0x120) = 4;
      }
      else {
        FUN_00024920();
      }
      if ((*(ushort *)(iVar17 + 0x148) & 0x2400) == 0) {
        *(undefined2 *)(iVar17 + 0x148) = 1;
      }
      else {
        FUN_000248e0();
      }
      FUN_000484d0(1,puVar8);
      *(undefined2 *)(param_1 + 0x22) = 8;
    }
    param_1[0x1d] = iVar17 + 0x28;
    if (*(char *)(iVar5 + 0x4d) == '\0') {
      param_1[10] = 0;
      local_148 = 0;
      bVar25 = false;
      uVar24 = 100;
    }
    else {
      param_1[10] = 7;
LAB_0008e141:
      iVar17 = param_1[0x21];
      if (-1 < iVar17) {
joined_r0x0008e183:
        if ((0 < iVar17) || (param_1[0x20] != 0)) {
          FUN_0001f8e0();
        }
      }
LAB_0008e157:
      uVar24 = 1;
LAB_0008e15c:
      if ((char)param_1[0x23] < '\0') {
        uVar24 = FUN_000488a0();
      }
LAB_0008dc84:
      local_148 = param_1[10];
      bVar25 = local_148 == 0xc0a;
    }
LAB_0008dc90:
    *(uint *)(iVar14 + 0x3c) = uVar24;
    if ((*(char *)(*param_1 + 0x4d) != '\0') || (bVar25)) {
      local_148 = FUN_00031c90();
    }
    else {
      local_148 = local_148 & *(uint *)(*param_1 + 0x40);
    }
    if ((local_148 == 7) && (param_1[10] = 7, (char)param_1[0x23] < '\0')) {
      uVar24 = 7;
    }
LAB_0008dcc7:
    uVar24 = uVar24 & *(uint *)(iVar14 + 0x40);
    if ((uVar24 != 0x11) || (local_138 = local_138 + -1, local_138 == 0)) goto LAB_0008dc24;
    iVar14 = param_1[9];
    sqlite3_sql(param_1);
    iVar17 = *param_1;
    uVar24 = FUN_000a0930((char)param_1[0x23],param_1,&local_10c,0);
    if (uVar24 == 0) {
      piVar21 = local_10c;
      piVar11 = local_f4;
      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {
        *piVar11 = *piVar21;
        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;
        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;
      }
      piVar21 = param_1;
      piVar11 = local_10c;
      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {
        *piVar11 = *piVar21;
        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;
        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;
      }
      piVar21 = local_f4;
      piVar11 = param_1;
      for (iVar17 = 0x35; iVar17 != 0; iVar17 = iVar17 + -1) {
        *piVar11 = *piVar21;
        piVar21 = piVar21 + (uint)bVar27 * -2 + 1;
        piVar11 = piVar11 + (uint)bVar27 * -2 + 1;
      }
      iVar17 = local_10c[2];
      local_10c[2] = param_1[2];
      param_1[2] = iVar17;
      iVar17 = local_10c[1];
      local_10c[1] = param_1[1];
      param_1[1] = iVar17;
      iVar17 = local_10c[0x2d];
      local_10c[0x2d] = param_1[0x2d];
      param_1[0x2d] = iVar17;
      param_1[0x32] = local_10c[0x32];
      *(char *)(param_1 + 0x23) = (char)local_10c[0x23];
      param_1[0x26] = local_10c[0x26];
      param_1[0x27] = local_10c[0x27];
      param_1[0x28] = local_10c[0x28];
      param_1[0x29] = local_10c[0x29];
      param_1[0x2a] = local_10c[0x2a];
      param_1[0x2b] = local_10c[0x2b];
      iVar17 = local_10c[0x2c];
      param_1[0x2b] = param_1[0x2b] + 1;
      param_1[0x2c] = iVar17;
      FUN_00024cd0();
      local_10c[10] = 0;
      FUN_0006fe50();
      sqlite3_reset(param_1);
      if (-1 < iVar14) {
        *(undefined1 *)((int)param_1 + 0x8d) = 1;
      }
      goto LAB_0008da88;
    }
    if ((uVar24 == 7) && ((*(uint *)(iVar17 + 0x4c) & 0xffff00) == 0)) {
      FUN_0002e050();
    }
    sqlite3_value_text(*(undefined4 *)(iVar10 + 0x104));
    if (param_1[0x1e] != 0) {
      FUN_00024720();
    }
    if (*(char *)(iVar10 + 0x4d) == '\0') {
      iVar14 = FUN_0002eba0();
      param_1[0x1e] = iVar14;
      if ((*(char *)(iVar10 + 0x4d) == '\0') && (uVar24 != 0xc0a)) {
        uVar24 = uVar24 & *(uint *)(iVar10 + 0x40);
      }
      else {
        uVar24 = FUN_00031c90();
      }
      param_1[10] = uVar24;
    }
    else {
      param_1[0x1e] = 0;
      param_1[10] = 7;
      uVar24 = 7;
    }
LAB_0008dc24:
    sqlite3_mutex_leave(*(undefined4 *)(iVar10 + 0xc));
  }
  else {
    uVar24 = FUN_000380c0();
  }
  if (local_20 != *(int *)(in_GS_OFFSET + 0x14)) {
                    /* WARNING: Subroutine does not return */
    FUN_000a9ea0();
  }
  return uVar24;
}

