
int sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  Db *pDVar4;
  u8 uVar9;
  Schema *pSVar5;
  sqlite3 *psVar6;
  int iVar7;
  byte bVar10;
  undefined4 uVar8;
  code *pcVar11;
  sqlite3 *db_00;
  Btree *pBVar12;
  sqlite3 *psVar13;
  undefined *puVar14;
  uint uVar15;
  char *pcVar16;
  int *piVar17;
  sqlite3_xauth p_Var18;
  int iVar19;
  InitData initData;
  char *azArg [4];
  int meta [5];
  
  (db->init).busy = '\x01';
  puVar3 = PTR___stack_chk_guard_00190e24;
  puVar14 = PTR_LAB_00190c64;
  db_00 = *(sqlite3 **)PTR___stack_chk_guard_00190e24;
  if (iDb == 1) {
    pcVar16 = PTR_LAB_00190958 + 0x36ec;
  }
  else {
    pcVar16 = PTR_LAB_00190958 + 0x2e2c;
  }
  azArg[1] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;
  psVar13 = (sqlite3 *)0x3;
  azArg[3] = (char *)0x0;
  azArg[2] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;
  initData.rc = 0;
  initData.nInitRow = 0;
  initData.db = db;
  initData.pzErrMsg = pzErrMsg;
  initData.iDb = iDb;
  initData.mInitFlags = mFlags;
  azArg[0] = pcVar16;
  sqlite3InitCallback(&initData,3,azArg,(char **)0x0);
  iVar7 = initData.rc;
  iVar19 = initData.rc;
  if (initData.rc == 0) {
    pDVar4 = db->aDb;
    pBVar12 = pDVar4[iDb].pBt;
    if (pBVar12 == (Btree *)0x0) {
      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;
      goto LAB_0010775c;
    }
    if (pBVar12->sharable != '\0') {
      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();
      pBVar12 = pDVar4[iDb].pBt;
    }
    psVar13 = db;
    if (pBVar12->inTrans == '\0') {
      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);
      if (iVar19 == 0) {
        pBVar12 = pDVar4[iDb].pBt;
        bVar1 = true;
        goto LAB_00107540;
      }
      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);
      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);
      pBVar12 = pDVar4[iDb].pBt;
      if ((pBVar12->sharable == '\0') ||
         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))
      goto LAB_00107730;
LAB_001079bc:
      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();
    }
    else {
      bVar1 = false;
LAB_00107540:
      piVar17 = meta;
      iVar19 = 0;
      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);
      while( true ) {
        iVar19 = iVar19 + 1;
        (*pcVar11)(pBVar12,iVar19,piVar17);
        piVar17 = piVar17 + 1;
        if (iVar19 == 5) break;
        pBVar12 = pDVar4[iDb].pBt;
      }
      if ((int)db->flags << 6 < 0) {
        meta[0] = 0;
        meta[1] = 0;
        meta[2] = 0;
        meta[3] = 0;
        meta[4] = 0;
      }
      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];
      if (meta[4] == 0) {
        pSVar5 = db->aDb[iDb].pSchema;
        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;
        bVar10 = db->enc;
LAB_001077f8:
        (pDVar4[iDb].pSchema)->enc = bVar10;
        pSVar5 = pDVar4[iDb].pSchema;
        iVar19 = pSVar5->cache_size;
        puVar2 = PTR_LAB_00190ba8;
joined_r0x001075d8:
        PTR_LAB_00190ba8 = puVar2;
        if (iVar19 == 0) {
          if (meta[2] < 0) {
            if (meta[2] == -0x80000000) {
              meta[2] = 0x7fffffff;
            }
            else {
              meta[2] = -meta[2];
            }
          }
          else if (meta[2] == 0) {
            meta[2] = -2000;
          }
          pSVar5->cache_size = meta[2];
          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);
          pSVar5 = pDVar4[iDb].pSchema;
        }
        pSVar5->file_format = (u8)meta[1];
        bVar10 = (pDVar4[iDb].pSchema)->file_format;
        if (bVar10 == 0) {
          (pDVar4[iDb].pSchema)->file_format = '\x01';
          bVar10 = (pDVar4[iDb].pSchema)->file_format;
        }
        if (4 < bVar10) {
          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;
          goto LAB_00107954;
        }
        if ((iDb == 0) && (3 < meta[1])) {
          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;
        }
        psVar6 = (sqlite3 *)
                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))
                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,
                            db->aDb[iDb].zDbSName,pcVar16);
        p_Var18 = db->xAuth;
        db->xAuth = (sqlite3_xauth)0x0;
        psVar13 = psVar6;
        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,
                              (char **)0x0);
        db->xAuth = p_Var18;
        if (iVar19 != 0) {
          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;
LAB_001076c8:
          if (db->mallocFailed != '\0') {
LAB_001076d4:
            iVar19 = 7;
            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);
          }
          if ((int)db->flags << 4 < 0) goto LAB_001078d4;
          goto LAB_00107700;
        }
        iVar19 = initData.rc;
        if (psVar6 != (sqlite3 *)0x0) {
LAB_001076a8:
          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);
          psVar13 = psVar6;
        }
        if (iVar19 != 0) goto LAB_001076c8;
        psVar13 = (sqlite3 *)iDb;
        sqlite3AnalysisLoad(db,iDb);
        if (db->mallocFailed != '\0') goto LAB_001076d4;
LAB_001078d4:
        pSVar5 = db->aDb[iDb].pSchema;
        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;
        pBVar12 = pDVar4[iDb].pBt;
        iVar19 = iVar7;
      }
      else {
        uVar9 = (u8)(meta[4] & 3U);
        if (iDb == 0) {
          if ((meta[4] & 3U) == 0) {
            uVar9 = '\x01';
          }
          db->enc = uVar9;
          pDVar4->pSchema->enc = uVar9;
          pSVar5 = pDVar4->pSchema;
          iVar19 = pSVar5->cache_size;
          puVar2 = PTR_LAB_00190ba8;
          goto joined_r0x001075d8;
        }
        bVar10 = db->enc;
        if (meta[4] == (uint)bVar10) goto LAB_001077f8;
        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;
LAB_00107954:
        iVar19 = 1;
        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);
LAB_00107700:
        pBVar12 = pDVar4[iDb].pBt;
      }
      if (bVar1) {
        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();
        pBVar12 = pDVar4[iDb].pBt;
      }
      if ((pBVar12->sharable != '\0') &&
         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))
      goto LAB_001079bc;
    }
    if (iVar19 == 0) goto LAB_0010775c;
  }
LAB_00107730:
  if (((iVar19 == 7) || (iVar19 == 0xc0a)) &&
     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,
     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)) {
    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);
  }
  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(db);
  psVar13 = (sqlite3 *)iDb;
LAB_0010775c:
  psVar6 = *(sqlite3 **)puVar3;
  (db->init).busy = '\0';
  if (db_00 == psVar6) {
    return iVar19;
  }
  (*(code *)PTR___stack_chk_fail_00190df8)();
  uVar15 = db_00->mDbFlags;
  db_00->enc = db_00->aDb->pSchema->enc;
  if (((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&
     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)) {
    return iVar19;
  }
  iVar19 = db_00->nDb + -1;
  if (0 < iVar19) {
    do {
      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&
         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {
        return iVar7;
      }
      iVar19 = iVar19 + -1;
    } while (iVar19 != 0);
  }
  if ((uVar15 & 1) != 0) {
    return 0;
  }
  db_00->mDbFlags = db_00->mDbFlags & 0xfffffffe;
  return 0;
}



int FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined1 uVar5;
  int iVar4;
  byte bVar6;
  int iVar7;
  code *pcVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined *puVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined *puVar16;
  int iVar17;
  int local_68;
  undefined4 local_64;
  int local_60;
  int local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined *local_50;
  undefined *local_4c;
  undefined *local_48;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  int local_38;
  undefined4 local_34;
  uint local_30;
  int local_2c;
  
  *(undefined1 *)(param_1 + 0xa5) = 1;
  puVar3 = PTR___stack_chk_guard_00190e24;
  puVar16 = PTR_LAB_00190c64;
  local_2c = *(int *)PTR___stack_chk_guard_00190e24;
  if (param_2 == 1) {
    puVar13 = PTR_LAB_00190958 + 0x36ec;
  }
  else {
    puVar13 = PTR_LAB_00190958 + 0x2e2c;
  }
  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;
  iVar10 = 3;
  local_44 = 0;
  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;
  local_5c = 0;
  local_54 = 0;
  local_68 = param_1;
  local_64 = param_3;
  local_60 = param_2;
  local_58 = param_4;
  local_50 = puVar13;
  FUN_001202fc(&local_68,3,&local_50,0);
  iVar4 = local_5c;
  iVar17 = local_5c;
  if (local_5c == 0) {
    iVar7 = param_2 * 0x10;
    iVar11 = *(int *)(param_1 + 0x10) + iVar7;
    iVar9 = *(int *)(iVar11 + 4);
    if (iVar9 == 0) {
      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);
      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;
      goto LAB_0010775c;
    }
    if (*(char *)(iVar9 + 9) != '\0') {
      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();
      iVar9 = *(int *)(iVar11 + 4);
    }
    iVar10 = param_1;
    if (*(char *)(iVar9 + 8) == '\0') {
      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);
      if (iVar17 == 0) {
        iVar9 = *(int *)(iVar11 + 4);
        bVar1 = true;
        goto LAB_00107540;
      }
      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);
      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);
      iVar4 = *(int *)(iVar11 + 4);
      if ((*(char *)(iVar4 + 9) == '\0') ||
         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))
      goto LAB_00107730;
LAB_001079bc:
      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();
    }
    else {
      bVar1 = false;
LAB_00107540:
      puVar14 = &local_40;
      iVar17 = 0;
      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);
      while( true ) {
        iVar17 = iVar17 + 1;
        (*pcVar8)(iVar9,iVar17,puVar14);
        puVar14 = puVar14 + 1;
        if (iVar17 == 5) break;
        iVar9 = *(int *)(iVar11 + 4);
      }
      if (*(int *)(param_1 + 0x24) << 6 < 0) {
        local_40 = 0;
        local_3c = 0;
        local_38 = 0;
        local_34 = 0;
        local_30 = 0;
      }
      **(undefined4 **)(iVar11 + 0xc) = local_40;
      if (local_30 == 0) {
        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);
        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;
        bVar6 = *(byte *)(param_1 + 0x4e);
LAB_001077f8:
        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;
        iVar17 = *(int *)(iVar11 + 0xc);
        iVar9 = *(int *)(iVar17 + 0x50);
        puVar2 = PTR_LAB_00190ba8;
joined_r0x001075d8:
        PTR_LAB_00190ba8 = puVar2;
        if (iVar9 == 0) {
          if (local_38 < 0) {
            if (local_38 == -0x80000000) {
              local_38 = 0x7fffffff;
            }
            else {
              local_38 = -local_38;
            }
          }
          else if (local_38 == 0) {
            local_38 = -2000;
          }
          *(int *)(iVar17 + 0x50) = local_38;
          (*(code *)(puVar2 + 0x797c))
                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));
          iVar17 = *(int *)(iVar11 + 0xc);
        }
        *(char *)(iVar17 + 0x4c) = (char)local_3c;
        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);
        if (bVar6 == 0) {
          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;
          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);
        }
        if (4 < bVar6) {
          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;
          goto LAB_00107954;
        }
        if ((param_2 == 0) && (3 < local_3c)) {
          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;
        }
        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))
                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,
                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);
        uVar15 = *(undefined4 *)(param_1 + 0x140);
        *(undefined4 *)(param_1 + 0x140) = 0;
        iVar10 = iVar9;
        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);
        *(undefined4 *)(param_1 + 0x140) = uVar15;
        if (iVar17 != 0) {
          if (iVar9 != 0) goto LAB_001076a8;
LAB_001076c8:
          if (*(char *)(param_1 + 0x51) != '\0') {
LAB_001076d4:
            iVar17 = 7;
            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);
          }
          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;
          goto LAB_00107700;
        }
        iVar17 = local_5c;
        if (iVar9 != 0) {
LAB_001076a8:
          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);
          iVar10 = iVar9;
        }
        if (iVar17 != 0) goto LAB_001076c8;
        iVar10 = param_2;
        FUN_001071ec(param_1,param_2);
        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;
LAB_001078d4:
        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);
        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;
        iVar7 = *(int *)(iVar11 + 4);
        iVar17 = iVar4;
      }
      else {
        uVar5 = (undefined1)(local_30 & 3);
        if (param_2 == 0) {
          if ((local_30 & 3) == 0) {
            uVar5 = 1;
          }
          *(undefined1 *)(param_1 + 0x4e) = uVar5;
          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;
          iVar17 = *(int *)(iVar11 + 0xc);
          iVar9 = *(int *)(iVar17 + 0x50);
          puVar2 = PTR_LAB_00190ba8;
          goto joined_r0x001075d8;
        }
        bVar6 = *(byte *)(param_1 + 0x4e);
        if (local_30 == bVar6) goto LAB_001077f8;
        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;
LAB_00107954:
        iVar17 = 1;
        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);
LAB_00107700:
        iVar7 = *(int *)(iVar11 + 4);
      }
      if (bVar1) {
        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();
        iVar7 = *(int *)(iVar11 + 4);
      }
      if ((*(char *)(iVar7 + 9) != '\0') &&
         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))
      goto LAB_001079bc;
    }
    if (iVar17 == 0) goto LAB_0010775c;
  }
LAB_00107730:
  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {
    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);
  }
  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);
  iVar10 = param_2;
LAB_0010775c:
  iVar4 = *(int *)puVar3;
  *(undefined1 *)(param_1 + 0xa5) = 0;
  if (local_2c == iVar4) {
    return iVar17;
  }
  iVar17 = local_2c;
  puVar16 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puVar16 = puVar16 + 0x90f2c;
  uVar12 = *(uint *)(iVar17 + 0x18);
  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);
  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&
     (iVar4 = FUN_00107414(), iVar4 != 0)) {
    return iVar4;
  }
  iVar4 = *(int *)(iVar17 + 0x14) + -1;
  if (0 < iVar4) {
    do {
      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&
         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {
        return iVar7;
      }
      iVar4 = iVar4 + -1;
    } while (iVar4 != 0);
  }
  if ((uVar12 & 1) != 0) {
    return 0;
  }
  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;
  return 0;
}


lui gp,0x9
addiu gp,gp,0x150c
addu gp,gp,t9
addiu sp,sp,-0xa8
li v1,0x1
li v0,0x1
sw s7,0x9c(sp)
sw s2,0x88(sp)
or s2,a1,zero
sw s0,0x80(sp)
or s0,a0,zero
sw gp,0x18(sp)
sw ra,0xa4(sp)
sw s8,0xa0(sp)
sw s6,0x98(sp)
sw s5,0x94(sp)
sw s4,0x90(sp)
sw s3,0x8c(sp)
sw s1,0x84(sp)
sb v1,0xa5(a0)
or v1,a3,zero
lw s7,-0x7afc(gp)
sw a2,0x28(sp)
lw a0,0x0(s7)
sw a0,0x7c(sp)
beq a1,v0,0x001077d0
_lw s4,-0x7fc8(gp)
lw s4,-0x7fc8(gp)
addiu s4,s4,0x2e2c
lw v0,-0x7fc4(gp)
addiu a0,sp,0x40
lw t0,-0x7cbc(gp)
or a3,zero,zero
addiu a2,sp,0x58
sw a0,0x30(sp)
addiu v0,v0,0x1448
sw s4,0x58(sp)
li a1,0x3
sw t0,0x34(sp)
sw v0,0x5c(sp)
addiu t9,t0,0x2fc
lw v0,-0x7fc4(gp)
sw zero,0x64(sp)
sw s0,0x40(sp)
addiu v0,v0,-0x3118
sw s2,0x48(sp)
sw zero,0x4c(sp)
sw v0,0x60(sp)
sw v1,0x50(sp)
sw zero,0x54(sp)
lw v0,0x28(sp)
bal 0x001202fc
_sw v0,0x44(sp)
lw s3,0x4c(sp)
bne s3,zero,0x00107730
_lw gp,0x18(sp)
lw v0,0x10(s0)
sll v1,s2,0x4
sw v1,0x2c(sp)
addu s1,v0,v1
lw a0,0x4(s1)
beq a0,zero,0x00107934
_nop
lbu v0,0x9(a0)
beq v0,zero,0x00107530
_lw t9,-0x7d78(gp)
addiu t9,t9,0x7108
jalr t9
_nop
lw gp,0x18(sp)
lw a0,0x4(s1)
lbu v0,0x8(a0)
beq v0,zero,0x00107860
_lw t9,-0x7d54(gp)
sw zero,0x38(sp)
lw s5,-0x7d78(gp)
addiu v0,sp,0x68
or s8,zero,zero
li s6,0x5
sw v0,0x3c(sp)
addiu v1,s5,0x7e90
or s5,v0,zero
sw v1,0x24(sp)
addiu s8,s8,0x1
lw t9,0x24(sp)
or a2,s5,zero
jalr t9
_or a1,s8,zero
addiu s5,s5,0x4
beq s8,s6,0x00107588
_lw gp,0x18(sp)
b 0x00107560
_lw a0,0x4(s1)
lw v0,0x24(s0)
ext v0,v0,0x19,0x1
bne v0,zero,0x00107918
_lw v0,0x3c(sp)
lw v1,0x68(sp)
lw v0,0xc(s1)
sw v1,0x0(v0)
lw v1,0x78(sp)
beq v1,zero,0x001077d8
_nop
bne s2,zero,0x0010788c
_andi v0,v1,0x3
bne v0,zero,0x001075c4
_nop
li v0,0x1
sb v0,0x4e(s0)
lw v1,0xc(s1)
sb v0,0x4d(v1)
lw v0,0xc(s1)
lw v1,0x50(v0)
beq v1,zero,0x00107814
_lw v1,0x70(sp)
lw v1,0x6c(sp)
sb v1,0x4c(v0)
lw a0,0xc(s1)
lbu v0,0x4c(a0)
bne v0,zero,0x0010760c
_sltiu v0,v0,0x5
li v0,0x1
sb v0,0x4c(a0)
lw v0,0xc(s1)
lbu v0,0x4c(v0)
sltiu v0,v0,0x5
beq v0,zero,0x00107948
_lw a2,-0x7fc4(gp)
bne s2,zero,0x00107634
_slti v1,v1,0x4
bne v1,zero,0x00107638
_lw v1,0x2c(sp)
lw v0,0x24(s0)
li v1,-0x3
and v0,v0,v1
sw v0,0x24(s0)
lw v1,0x2c(sp)
or a3,s4,zero
lw v0,0x10(s0)
or a0,s0,zero
lw a1,-0x7fc4(gp)
lw t9,-0x7d5c(gp)
addu v0,v0,v1
addiu a1,a1,-0x3074
addiu t9,t9,-0x2e9c
jalr t9
_lw a2,0x0(v0)
or a0,s0,zero
lw gp,0x18(sp)
or a1,v0,zero
lw v1,0x34(sp)
or s5,v0,zero
lw a3,0x30(sp)
lw s6,0x140(s0)
lw t9,-0x7ed8(gp)
addiu a2,v1,0x2fc
sw zero,0x140(s0)
bal 0x00106bd4
_sw zero,0x10(sp)
lw gp,0x18(sp)
or s4,v0,zero
beq v0,zero,0x00107850
_sw s6,0x140(s0)
beq s5,zero,0x001076c8
_nop
lw t9,-0x7d78(gp)
or a1,s5,zero
addiu t9,t9,-0x2368
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
beq s4,zero,0x001078b8
_lw t9,-0x7cc4(gp)
lbu v0,0x51(s0)
beq v0,zero,0x001076ec
_nop
lw t9,-0x7d68(gp)
or a0,s0,zero
addiu t9,t9,-0x236c
jalr t9
_li s4,0x7
lw gp,0x18(sp)
lw v0,0x24(s0)
ext v0,v0,0x1b,0x1
bne v0,zero,0x001078d4
_nop
or s3,s4,zero
lw v0,0x38(sp)
bne v0,zero,0x001078fc
_lw a0,0x4(s1)
lbu v0,0x9(a0)
beq v0,zero,0x00107728
_nop
lw v0,0xc(a0)
addiu v0,v0,-0x1
beq v0,zero,0x001079bc
_sw v0,0xc(a0)
beq s3,zero,0x0010775c
_nop
li v0,0x7
beq s3,v0,0x001077a0
_li v0,0xc0a
beq s3,v0,0x001077a0
_nop
lw t9,-0x7d68(gp)
or a1,s2,zero
addiu t9,t9,-0x2180
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
lw a0,0x7c(sp)
or v0,s3,zero
lw v1,0x0(s7)
bne a0,v1,0x001079e8
_sb zero,0xa5(s0)
lw ra,0xa4(sp)
lw s8,0xa0(sp)
lw s7,0x9c(sp)
lw s6,0x98(sp)
lw s5,0x94(sp)
lw s4,0x90(sp)
lw s3,0x8c(sp)
lw s2,0x88(sp)
lw s1,0x84(sp)
lw s0,0x80(sp)
jr ra
_addiu sp,sp,0xa8
lw v0,0x50(s0)
lui v1,0xff
ori v1,v1,0xff00
and v0,v0,v1
bne v0,zero,0x00107748
_lw t9,-0x7d68(gp)
lw t9,-0x7d78(gp)
addiu t9,t9,0x82c
jalr t9
_or a0,s0,zero
b 0x00107744
_lw gp,0x18(sp)
b 0x00107488
_addiu s4,s4,0x36ec
lw v0,0x10(s0)
lw v1,0x2c(sp)
addu v0,v0,v1
lw v1,0xc(v0)
lhu v0,0x4e(v1)
ori v0,v0,0x4
sh v0,0x4e(v1)
lbu v0,0x4e(s0)
lw v1,0xc(s1)
sb v0,0x4d(v1)
lw v0,0xc(s1)
lw v1,0x50(v0)
bne v1,zero,0x001075e4
_lw v1,0x6c(sp)
lw v1,0x70(sp)
bgez v1,0x001078a8
_lui a0,0x8000
beq v1,a0,0x001079dc
_nop
subu v1,zero,v1
lw t9,-0x7d78(gp)
sw v1,0x50(v0)
lw v0,0xc(s1)
lw a0,0x4(s1)
addiu t9,t9,0x797c
jalr t9
_lw a1,0x50(v0)
lw gp,0x18(sp)
b 0x001075e0
_lw v0,0xc(s1)
bne s5,zero,0x001076a8
_lw s4,0x4c(sp)
b 0x001076c0
_nop
or a2,zero,zero
addiu t9,t9,0x7924
jalr t9
_or a1,zero,zero
lw gp,0x18(sp)
bne v0,zero,0x0010796c
_or s5,v0,zero
li v0,0x1
lw a0,0x4(s1)
b 0x00107540
_sw v0,0x38(sp)
lbu v0,0x4e(s0)
beq v1,v0,0x001077f8
_lw a2,-0x7fc4(gp)
or a1,s0,zero
lw a0,0x28(sp)
b 0x00107954
_addiu a2,a2,-0x30d0
bne v1,zero,0x0010782c
_lw t9,-0x7d78(gp)
b 0x0010782c
_li v1,-0x7d0
or a1,s2,zero
addiu t9,t9,0x71ec
bal 0x001071ec
_or a0,s0,zero
lbu v0,0x51(s0)
bne v0,zero,0x001076d4
_lw gp,0x18(sp)
lw v0,0x10(s0)
lw v1,0x2c(sp)
addu v0,v0,v1
lw v1,0xc(v0)
lhu v0,0x4e(v1)
ori v0,v0,0x1
sh v0,0x4e(v1)
lw v0,0x38(sp)
beq v0,zero,0x0010770c
_lw a0,0x4(s1)
lw t9,-0x7d64(gp)
addiu t9,t9,0x2eac
jalr t9
_nop
lw gp,0x18(sp)
b 0x0010770c
_lw a0,0x4(s1)
or v1,zero,zero
sw zero,0x68(sp)
sw zero,0x4(v0)
sw zero,0x8(v0)
sw zero,0xc(v0)
b 0x0010759c
_sw zero,0x10(v0)
lw v1,0x1c(v0)
lhu v0,0x4e(v1)
ori v0,v0,0x1
b 0x0010775c
_sh v0,0x4e(v1)
or a1,s0,zero
lw a0,0x28(sp)
addiu a2,a2,-0x308c
lw t9,-0x7d78(gp)
addiu t9,t9,0x106c
jalr t9
_li s3,0x1
b 0x00107700
_lw gp,0x18(sp)
lw t9,-0x7d7c(gp)
addiu t9,t9,-0x7ac
jalr t9
_or a0,v0,zero
or a1,s0,zero
lw gp,0x18(sp)
or a2,v0,zero
lw t9,-0x7d78(gp)
addiu t9,t9,0x106c
jalr t9
_lw a0,0x28(sp)
lw a0,0x4(s1)
lbu v0,0x9(a0)
beq v0,zero,0x001079d4
_lw gp,0x18(sp)
lw v0,0xc(a0)
addiu v0,v0,-0x1
bne v0,zero,0x001079d4
_sw v0,0xc(a0)
or s3,s5,zero
lw t9,-0x7d78(gp)
addiu t9,t9,0x71f0
jalr t9
_nop
b 0x00107728
_lw gp,0x18(sp)
b 0x00107730
_or s3,s5,zero
lui v1,0x7fff
b 0x00107828
_ori v1,v1,0xffff
lw t9,-0x7b28(gp)
jalr t9
_nop
(translation_unit "int FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}\n\n" (function_definition "int FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}" primitive_type (function_declarator "FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "*(undefined1 *)(param_1 + 0xa5) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xa5) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xa5)" * (cast_expression "(undefined1 *)(param_1 + 0xa5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa5)" ( (binary_expression "param_1 + 0xa5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "puVar16 = PTR_LAB_00190c64;" (assignment_expression "puVar16 = PTR_LAB_00190c64" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00190e24" * (cast_expression "(int *)PTR___stack_chk_guard_00190e24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }" { (expression_statement "puVar13 = PTR_LAB_00190958 + 0x36ec;" (assignment_expression "puVar13 = PTR_LAB_00190958 + 0x36ec" identifier = (binary_expression "PTR_LAB_00190958 + 0x36ec" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" else (compound_statement "{\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" { (expression_statement "puVar13 = PTR_LAB_00190958 + 0x2e2c;" (assignment_expression "puVar13 = PTR_LAB_00190958 + 0x2e2c" identifier = (binary_expression "PTR_LAB_00190958 + 0x2e2c" identifier + number_literal)) ;) }))) (expression_statement "local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;" (assignment_expression "local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" identifier + number_literal)) ;) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;" (assignment_expression "local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" identifier + number_literal)) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" identifier = identifier) ;) (expression_statement "local_64 = param_3;" (assignment_expression "local_64 = param_3" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" identifier = identifier) ;) (expression_statement "local_50 = puVar13;" (assignment_expression "local_50 = puVar13" identifier = identifier) ;) (expression_statement "FUN_001202fc(&local_68,3,&local_50,0);" (call_expression "FUN_001202fc(&local_68,3,&local_50,0)" identifier (argument_list "(&local_68,3,&local_50,0)" ( (pointer_expression "&local_68" & identifier) , number_literal , (pointer_expression "&local_50" & identifier) , number_literal ))) ;) (expression_statement "iVar4 = local_5c;" (assignment_expression "iVar4 = local_5c" identifier = identifier) ;) (expression_statement "iVar17 = local_5c;" (assignment_expression "iVar17 = local_5c" identifier = identifier) ;) (if_statement "if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }" { (expression_statement "iVar7 = param_2 * 0x10;" (assignment_expression "iVar7 = param_2 * 0x10" identifier = (binary_expression "param_2 * 0x10" identifier * number_literal)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x10) + iVar7;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x10) + iVar7" identifier = (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }" { (expression_statement "iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x10) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;" (assignment_expression "*(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar4 + 0x4e)" * (cast_expression "(ushort *)(iVar4 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4e)" ( (binary_expression "iVar4 + 0x4e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar4 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar4 + 0x4e)" * (cast_expression "(ushort *)(iVar4 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4e)" ( (binary_expression "iVar4 + 0x4e" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_0010775c;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }" if (parenthesized_expression "(*(char *)(iVar9 + 9) != '\0')" ( (binary_expression "*(char *)(iVar9 + 9) != '\0'" (pointer_expression "*(char *)(iVar9 + 9)" * (cast_expression "(char *)(iVar9 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 9)" ( (binary_expression "iVar9 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }" { (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x7108))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x7108)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7108)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7108)" ( (binary_expression "PTR_LAB_00190ba8 + 0x7108" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar10 = param_1;" (assignment_expression "iVar10 = param_1" identifier = identifier) ;) (if_statement "if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" if (parenthesized_expression "(*(char *)(iVar9 + 8) == '\0')" ( (binary_expression "*(char *)(iVar9 + 8) == '\0'" (pointer_expression "*(char *)(iVar9 + 8)" * (cast_expression "(char *)(iVar9 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }" { (expression_statement "iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);" (assignment_expression "iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))" ( (pointer_expression "*(code *)(PTR_LAB_00190bcc + 0x7924)" * (cast_expression "(code *)(PTR_LAB_00190bcc + 0x7924)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bcc + 0x7924)" ( (binary_expression "PTR_LAB_00190bcc + 0x7924" identifier + number_literal) )))) )) (argument_list "(iVar9,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }" { (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00107540;" goto statement_identifier ;) })) (expression_statement "uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);" (assignment_expression "uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17)" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x7ac)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x7ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x7ac)" ( (binary_expression "PTR_LAB_00190ba4 + -0x7ac" identifier + number_literal) )))) )) (argument_list "(iVar17)" ( identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x106c" identifier + number_literal) )))) )) (argument_list "(param_3,param_1,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(iVar11 + 4);" (assignment_expression "iVar4 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;" if (parenthesized_expression "((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))" ( (binary_expression "(*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0)" (parenthesized_expression "(*(char *)(iVar4 + 9) == '\0')" ( (binary_expression "*(char *)(iVar4 + 9) == '\0'" (pointer_expression "*(char *)(iVar4 + 9)" * (cast_expression "(char *)(iVar4 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0)" ( (comma_expression "iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0" (assignment_expression "iVar7 = *(int *)(iVar4 + 0xc) + -1" identifier = (binary_expression "*(int *)(iVar4 + 0xc) + -1" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) + number_literal)) , (comma_expression "*(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0" (assignment_expression "*(int *)(iVar4 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_00107730;" goto statement_identifier ;)) (labeled_statement "LAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x71f0)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x71f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x71f0)" ( (binary_expression "PTR_LAB_00190ba8 + 0x71f0" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;)) }) (else_clause "else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" else (compound_statement "{\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (labeled_statement "LAB_00107540:\n      puVar14 = &local_40;" statement_identifier : (expression_statement "puVar14 = &local_40;" (assignment_expression "puVar14 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;)) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7e90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7e90)" ( (binary_expression "PTR_LAB_00190ba8 + 0x7e90" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar8)(iVar9,iVar17,puVar14);" (call_expression "(*pcVar8)(iVar9,iVar17,puVar14)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(iVar9,iVar17,puVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (if_statement "if (iVar17 == 5) break;" if (parenthesized_expression "(iVar17 == 5)" ( (binary_expression "iVar17 == 5" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x24) << 6 < 0)" ( (binary_expression "*(int *)(param_1 + 0x24) << 6 < 0" (binary_expression "*(int *)(param_1 + 0x24) << 6" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) })) (expression_statement "**(undefined4 **)(iVar11 + 0xc) = local_40;" (assignment_expression "**(undefined4 **)(iVar11 + 0xc) = local_40" (pointer_expression "**(undefined4 **)(iVar11 + 0xc)" * (pointer_expression "*(undefined4 **)(iVar11 + 0xc)" * (cast_expression "(undefined4 **)(iVar11 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }" { (expression_statement "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (assignment_expression "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar7 + 0xc" (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;" (assignment_expression "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar17 + 0x4e) | 4" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "bVar6 = *(byte *)(param_1 + 0x4e);" (assignment_expression "bVar6 = *(byte *)(param_1 + 0x4e)" identifier = (pointer_expression "*(byte *)(param_1 + 0x4e)" * (cast_expression "(byte *)(param_1 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4e)" ( (binary_expression "param_1 + 0x4e" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;" statement_identifier : (expression_statement "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;" (assignment_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6" (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d)" * (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4d)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) = identifier) ;)) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar17 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar17 + 0x50)" identifier = (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) ))))) ;) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" identifier = identifier) ;) (labeled_statement "joined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;" statement_identifier : (expression_statement "PTR_LAB_00190ba8 = puVar2;" (assignment_expression "PTR_LAB_00190ba8 = puVar2" identifier = identifier) ;)) (if_statement "if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }" { (if_statement "if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }" if (parenthesized_expression "(local_38 < 0)" ( (binary_expression "local_38 < 0" identifier < number_literal) )) (compound_statement "{\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }" { (if_statement "if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }" if (parenthesized_expression "(local_38 == -0x80000000)" ( (binary_expression "local_38 == -0x80000000" identifier == number_literal) )) (compound_statement "{\n              local_38 = 0x7fffffff;\n            }" { (expression_statement "local_38 = 0x7fffffff;" (assignment_expression "local_38 = 0x7fffffff" identifier = number_literal) ;) }) (else_clause "else {\n              local_38 = -local_38;\n            }" else (compound_statement "{\n              local_38 = -local_38;\n            }" { (expression_statement "local_38 = -local_38;" (assignment_expression "local_38 = -local_38" identifier = (unary_expression "-local_38" - identifier)) ;) }))) }) (else_clause "else if (local_38 == 0) {\n            local_38 = -2000;\n          }" else (if_statement "if (local_38 == 0) {\n            local_38 = -2000;\n          }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n            local_38 = -2000;\n          }" { (expression_statement "local_38 = -2000;" (assignment_expression "local_38 = -2000" identifier = number_literal) ;) })))) (expression_statement "*(int *)(iVar17 + 0x50) = local_38;" (assignment_expression "*(int *)(iVar17 + 0x50) = local_38" (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 "(*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));" (call_expression "(*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50))" (parenthesized_expression "(*(code *)(puVar2 + 0x797c))" ( (pointer_expression "*(code *)(puVar2 + 0x797c)" * (cast_expression "(code *)(puVar2 + 0x797c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x797c)" ( (binary_expression "puVar2 + 0x797c" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50))" ( (pointer_expression "*(undefined4 *)(iVar11 + 4)" * (cast_expression "(undefined4 *)(iVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50)" * (cast_expression "(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x50)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x50" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "*(char *)(iVar17 + 0x4c) = (char)local_3c;" (assignment_expression "*(char *)(iVar17 + 0x4c) = (char)local_3c" (pointer_expression "*(char *)(iVar17 + 0x4c)" * (cast_expression "(char *)(iVar17 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4c)" ( (binary_expression "iVar17 + 0x4c" identifier + number_literal) )))) = (cast_expression "(char)local_3c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);" (assignment_expression "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }" { (expression_statement "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c)" * (cast_expression "(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);" (assignment_expression "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (if_statement "if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" if (parenthesized_expression "(4 < bVar6)" ( (binary_expression "4 < bVar6" number_literal < identifier) )) (compound_statement "{\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" { (expression_statement "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;" (assignment_expression "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" identifier + number_literal)) ;) (goto_statement "goto LAB_00107954;" goto statement_identifier ;) })) (if_statement "if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }" if (parenthesized_expression "((param_2 == 0) && (3 < local_3c))" ( (binary_expression "(param_2 == 0) && (3 < local_3c)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) && (parenthesized_expression "(3 < local_3c)" ( (binary_expression "3 < local_3c" number_literal < identifier) ))) )) (compound_statement "{\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }" { (expression_statement "*(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;" (assignment_expression "*(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x24) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);" (assignment_expression "iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" identifier = (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x2e9c)" * (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x2e9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc4 + -0x2e9c)" ( (binary_expression "PTR_LAB_00190bc4 + -0x2e9c" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074" identifier + number_literal) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier) )))) , identifier )))) ;) (expression_statement "uVar15 = *(undefined4 *)(param_1 + 0x140);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 0x140)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x140) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) (expression_statement "iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);" (assignment_expression "iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" identifier = (call_expression "sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" identifier (argument_list "(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" ( identifier , identifier , (binary_expression "puVar16 + 0x2fc" identifier + number_literal) , (pointer_expression "&local_68" & identifier) , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x140) = uVar15;" (assignment_expression "*(undefined4 *)(param_1 + 0x140) = uVar15" (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" { (if_statement "if (iVar9 != 0) goto LAB_001076a8;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001076a8;" goto statement_identifier ;)) (labeled_statement "LAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" statement_identifier : (if_statement "if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" if (parenthesized_expression "(*(char *)(param_1 + 0x51) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x51) != '\0'" (pointer_expression "*(char *)(param_1 + 0x51)" * (cast_expression "(char *)(param_1 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x51)" ( (binary_expression "param_1 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" { (labeled_statement "LAB_001076d4:\n            iVar17 = 7;" statement_identifier : (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x236c)" * (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x236c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bb8 + -0x236c)" ( (binary_expression "PTR_LAB_00190bb8 + -0x236c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) }))) (if_statement "if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;" if (parenthesized_expression "(*(int *)(param_1 + 0x24) << 4 < 0)" ( (binary_expression "*(int *)(param_1 + 0x24) << 4 < 0" (binary_expression "*(int *)(param_1 + 0x24) << 4" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) << number_literal) < number_literal) )) (goto_statement "goto LAB_001078d4;" goto statement_identifier ;)) (goto_statement "goto LAB_00107700;" goto statement_identifier ;) })) (expression_statement "iVar17 = local_5c;" (assignment_expression "iVar17 = local_5c" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }" { (labeled_statement "LAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x2368)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x2368)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x2368)" ( (binary_expression "PTR_LAB_00190ba8 + -0x2368" identifier + number_literal) )))) )) (argument_list "(param_1,iVar9)" ( identifier , identifier ))) ;)) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) })) (if_statement "if (iVar17 != 0) goto LAB_001076c8;" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001076c8;" goto statement_identifier ;)) (expression_statement "iVar10 = param_2;" (assignment_expression "iVar10 = param_2" identifier = identifier) ;) (expression_statement "FUN_001071ec(param_1,param_2);" (call_expression "FUN_001071ec(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;" if (parenthesized_expression "(*(char *)(param_1 + 0x51) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x51) != '\0'" (pointer_expression "*(char *)(param_1 + 0x51)" * (cast_expression "(char *)(param_1 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x51)" ( (binary_expression "param_1 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001076d4;" goto statement_identifier ;)) (labeled_statement "LAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" statement_identifier : (expression_statement "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (assignment_expression "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar7 + 0xc" (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;)) (expression_statement "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;" (assignment_expression "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar17 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = iVar4;" (assignment_expression "iVar17 = iVar4" identifier = identifier) ;) }) (else_clause "else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" else (compound_statement "{\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" { (expression_statement "uVar5 = (undefined1)(local_30 & 3);" (assignment_expression "uVar5 = (undefined1)(local_30 & 3)" identifier = (call_expression "(undefined1)(local_30 & 3)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_30 & 3)" ( (binary_expression "local_30 & 3" identifier & number_literal) )))) ;) (if_statement "if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" { (if_statement "if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }" if (parenthesized_expression "((local_30 & 3) == 0)" ( (binary_expression "(local_30 & 3) == 0" (parenthesized_expression "(local_30 & 3)" ( (binary_expression "local_30 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar5 = 1;\n          }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined1 *)(param_1 + 0x4e) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x4e) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x4e)" * (cast_expression "(undefined1 *)(param_1 + 0x4e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4e)" ( (binary_expression "param_1 + 0x4e" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;" (assignment_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5" (pointer_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d)" * (cast_expression "(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4d)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar17 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar17 + 0x50)" identifier = (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) ))))) ;) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" identifier = identifier) ;) (goto_statement "goto joined_r0x001075d8;" goto statement_identifier ;) })) (expression_statement "bVar6 = *(byte *)(param_1 + 0x4e);" (assignment_expression "bVar6 = *(byte *)(param_1 + 0x4e)" identifier = (pointer_expression "*(byte *)(param_1 + 0x4e)" * (cast_expression "(byte *)(param_1 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4e)" ( (binary_expression "param_1 + 0x4e" identifier + number_literal) ))))) ;) (if_statement "if (local_30 == bVar6) goto LAB_001077f8;" if (parenthesized_expression "(local_30 == bVar6)" ( (binary_expression "local_30 == bVar6" identifier == identifier) )) (goto_statement "goto LAB_001077f8;" goto statement_identifier ;)) (expression_statement "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;" (assignment_expression "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" identifier + number_literal)) ;) (labeled_statement "LAB_00107954:\n        iVar17 = 1;" statement_identifier : (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x106c" identifier + number_literal) )))) )) (argument_list "(param_3,param_1,puVar16)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);" statement_identifier : (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;)) }))) (if_statement "if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }" { (expression_statement "(*(code *)(PTR_LAB_00190bbc + 0x2eac))();" (call_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))" ( (pointer_expression "*(code *)(PTR_LAB_00190bbc + 0x2eac)" * (cast_expression "(code *)(PTR_LAB_00190bbc + 0x2eac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bbc + 0x2eac)" ( (binary_expression "PTR_LAB_00190bbc + 0x2eac" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;" if (parenthesized_expression "((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))" ( (binary_expression "(*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0)" (parenthesized_expression "(*(char *)(iVar7 + 9) != '\0')" ( (binary_expression "*(char *)(iVar7 + 9) != '\0'" (pointer_expression "*(char *)(iVar7 + 9)" * (cast_expression "(char *)(iVar7 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 9)" ( (binary_expression "iVar7 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0)" ( (comma_expression "iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0" (assignment_expression "iVar4 = *(int *)(iVar7 + 0xc) + -1" identifier = (binary_expression "*(int *)(iVar7 + 0xc) + -1" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) + number_literal)) , (comma_expression "*(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar4" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "iVar4 == 0" identifier == number_literal))) ))) )) (goto_statement "goto LAB_001079bc;" goto statement_identifier ;)) }))) (if_statement "if (iVar17 == 0) goto LAB_0010775c;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010775c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" statement_identifier : (if_statement "if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" if (parenthesized_expression "(((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0))" ( (binary_expression "((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" (parenthesized_expression "((iVar17 == 7) || (iVar17 == 0xc0a))" ( (binary_expression "(iVar17 == 7) || (iVar17 == 0xc0a)" (parenthesized_expression "(iVar17 == 7)" ( (binary_expression "iVar17 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar17 == 0xc0a)" ( (binary_expression "iVar17 == 0xc0a" identifier == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x50) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x50) & 0xffff00)" ( (binary_expression "*(uint *)(param_1 + 0x50) & 0xffff00" (pointer_expression "*(uint *)(param_1 + 0x50)" * (cast_expression "(uint *)(param_1 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" { (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x82c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x82c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x82c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x82c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) }))) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))" ( (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x2180)" * (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x2180)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bb8 + -0x2180)" ( (binary_expression "PTR_LAB_00190bb8 + -0x2180" identifier + number_literal) )))) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar10 = param_2;" (assignment_expression "iVar10 = param_2" identifier = identifier) ;) (labeled_statement "LAB_0010775c:\n  iVar4 = *(int *)puVar3;" statement_identifier : (expression_statement "iVar4 = *(int *)puVar3;" (assignment_expression "iVar4 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "*(undefined1 *)(param_1 + 0xa5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xa5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xa5)" * (cast_expression "(undefined1 *)(param_1 + 0xa5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa5)" ( (binary_expression "param_1 + 0xa5" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_2c == iVar4) {\n    return iVar17;\n  }" if (parenthesized_expression "(local_2c == iVar4)" ( (binary_expression "local_2c == iVar4" identifier == identifier) )) (compound_statement "{\n    return iVar17;\n  }" { (return_statement "return iVar17;" return identifier ;) })) (expression_statement "iVar17 = local_2c;" (assignment_expression "iVar17 = local_2c" identifier = identifier) ;) (expression_statement "puVar16 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar16 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar16 = puVar16 + 0x90f2c;" (assignment_expression "puVar16 = puVar16 + 0x90f2c" identifier = (binary_expression "puVar16 + 0x90f2c" identifier + number_literal)) ;) (expression_statement "uVar12 = *(uint *)(iVar17 + 0x18);" (assignment_expression "uVar12 = *(uint *)(iVar17 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);" (assignment_expression "*(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" (pointer_expression "*(undefined1 *)(iVar17 + 0x4e)" * (cast_expression "(undefined1 *)(iVar17 + 0x4e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" * (cast_expression "(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 0x10) + 0xc)" ( (binary_expression "*(int *)(iVar17 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }" if (parenthesized_expression "(((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0))" ( (binary_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)" (parenthesized_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0)" ( (binary_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0" (parenthesized_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1)" ( (binary_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1" (pointer_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" * (cast_expression "(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 0x10) + 0xc)" ( (binary_expression "*(int *)(iVar17 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar4 = FUN_00107414(), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00107414(), iVar4 != 0" (assignment_expression "iVar4 = FUN_00107414()" identifier = (call_expression "FUN_00107414()" identifier (argument_list "()" ( )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "iVar4 = *(int *)(iVar17 + 0x14) + -1;" (assignment_expression "iVar4 = *(int *)(iVar17 + 0x14) + -1" identifier = (binary_expression "*(int *)(iVar17 + 0x14) + -1" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }" { (do_statement "do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);" do (compound_statement "{\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    }" { (if_statement "if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }" if (parenthesized_expression "(((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0))" ( (binary_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)" (parenthesized_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0)" ( (binary_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0" (parenthesized_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1)" ( (binary_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1" (pointer_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" * (cast_expression "(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" * (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" ( (binary_expression "*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc" (binary_expression "*(int *)(iVar17 + 0x10) + iVar4 * 0x10" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar4 * 0x10" identifier * number_literal)) + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0" (assignment_expression "iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16)" identifier = (call_expression "FUN_00107414(iVar17,iVar4,iVar10,0,puVar16)" identifier (argument_list "(iVar17,iVar4,iVar10,0,puVar16)" ( identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((uVar12 & 1) != 0) {\n    return 0;\n  }" if (parenthesized_expression "((uVar12 & 1) != 0)" ( (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" ( (binary_expression "uVar12 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;" (assignment_expression "*(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe" (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar17 + 0x18) & 0xfffffffe" (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) & number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  Db *pDVar4;\n  u8 uVar9;\n  Schema *pSVar5;\n  sqlite3 *psVar6;\n  int iVar7;\n  byte bVar10;\n  undefined4 uVar8;\n  code *pcVar11;\n  sqlite3 *db_00;\n  Btree *pBVar12;\n  sqlite3 *psVar13;\n  undefined *puVar14;\n  uint uVar15;\n  char *pcVar16;\n  int *piVar17;\n  sqlite3_xauth p_Var18;\n  int iVar19;\n  InitData initData;\n  char *azArg [4];\n  int meta [5];\n  \n  (db->init).busy = '\x01';\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar14 = PTR_LAB_00190c64;\n  db_00 = *(sqlite3 **)PTR___stack_chk_guard_00190e24;\n  if (iDb == 1) {\n    pcVar16 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    pcVar16 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  azArg[1] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  psVar13 = (sqlite3 *)0x3;\n  azArg[3] = (char *)0x0;\n  azArg[2] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  initData.rc = 0;\n  initData.nInitRow = 0;\n  initData.db = db;\n  initData.pzErrMsg = pzErrMsg;\n  initData.iDb = iDb;\n  initData.mInitFlags = mFlags;\n  azArg[0] = pcVar16;\n  sqlite3InitCallback(&initData,3,azArg,(char **)0x0);\n  iVar7 = initData.rc;\n  iVar19 = initData.rc;\n  if (initData.rc == 0) {\n    pDVar4 = db->aDb;\n    pBVar12 = pDVar4[iDb].pBt;\n    if (pBVar12 == (Btree *)0x0) {\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }\n    if (pBVar12->sharable != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }\n    psVar13 = db;\n    if (pBVar12->inTrans == '\0') {\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar19 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(db);\n  psVar13 = (sqlite3 *)iDb;\nLAB_0010775c:\n  psVar6 = *(sqlite3 **)puVar3;\n  (db->init).busy = '\0';\n  if (db_00 == psVar6) {\n    return iVar19;\n  }\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  uVar15 = db_00->mDbFlags;\n  db_00->enc = db_00->aDb->pSchema->enc;\n  if (((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&\n     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)) {\n    return iVar19;\n  }\n  iVar19 = db_00->nDb + -1;\n  if (0 < iVar19) {\n    do {\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n  }\n  if ((uVar15 & 1) != 0) {\n    return 0;\n  }\n  db_00->mDbFlags = db_00->mDbFlags & 0xfffffffe;\n  return 0;\n}\n\n" (function_definition "int sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  Db *pDVar4;\n  u8 uVar9;\n  Schema *pSVar5;\n  sqlite3 *psVar6;\n  int iVar7;\n  byte bVar10;\n  undefined4 uVar8;\n  code *pcVar11;\n  sqlite3 *db_00;\n  Btree *pBVar12;\n  sqlite3 *psVar13;\n  undefined *puVar14;\n  uint uVar15;\n  char *pcVar16;\n  int *piVar17;\n  sqlite3_xauth p_Var18;\n  int iVar19;\n  InitData initData;\n  char *azArg [4];\n  int meta [5];\n  \n  (db->init).busy = '\x01';\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar14 = PTR_LAB_00190c64;\n  db_00 = *(sqlite3 **)PTR___stack_chk_guard_00190e24;\n  if (iDb == 1) {\n    pcVar16 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    pcVar16 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  azArg[1] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  psVar13 = (sqlite3 *)0x3;\n  azArg[3] = (char *)0x0;\n  azArg[2] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  initData.rc = 0;\n  initData.nInitRow = 0;\n  initData.db = db;\n  initData.pzErrMsg = pzErrMsg;\n  initData.iDb = iDb;\n  initData.mInitFlags = mFlags;\n  azArg[0] = pcVar16;\n  sqlite3InitCallback(&initData,3,azArg,(char **)0x0);\n  iVar7 = initData.rc;\n  iVar19 = initData.rc;\n  if (initData.rc == 0) {\n    pDVar4 = db->aDb;\n    pBVar12 = pDVar4[iDb].pBt;\n    if (pBVar12 == (Btree *)0x0) {\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }\n    if (pBVar12->sharable != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }\n    psVar13 = db;\n    if (pBVar12->inTrans == '\0') {\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar19 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(db);\n  psVar13 = (sqlite3 *)iDb;\nLAB_0010775c:\n  psVar6 = *(sqlite3 **)puVar3;\n  (db->init).busy = '\0';\n  if (db_00 == psVar6) {\n    return iVar19;\n  }\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  uVar15 = db_00->mDbFlags;\n  db_00->enc = db_00->aDb->pSchema->enc;\n  if (((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&\n     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)) {\n    return iVar19;\n  }\n  iVar19 = db_00->nDb + -1;\n  if (0 < iVar19) {\n    do {\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n  }\n  if ((uVar15 & 1) != 0) {\n    return 0;\n  }\n  db_00->mDbFlags = db_00->mDbFlags & 0xfffffffe;\n  return 0;\n}" primitive_type (function_declarator "sqlite3InitOne(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)" identifier (parameter_list "(sqlite3 *db,int iDb,char **pzErrMsg,u32 mFlags)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "int iDb" primitive_type identifier) , (parameter_declaration "char **pzErrMsg" primitive_type (pointer_declarator "**pzErrMsg" * (pointer_declarator "*pzErrMsg" * identifier))) , (parameter_declaration "u32 mFlags" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  Db *pDVar4;\n  u8 uVar9;\n  Schema *pSVar5;\n  sqlite3 *psVar6;\n  int iVar7;\n  byte bVar10;\n  undefined4 uVar8;\n  code *pcVar11;\n  sqlite3 *db_00;\n  Btree *pBVar12;\n  sqlite3 *psVar13;\n  undefined *puVar14;\n  uint uVar15;\n  char *pcVar16;\n  int *piVar17;\n  sqlite3_xauth p_Var18;\n  int iVar19;\n  InitData initData;\n  char *azArg [4];\n  int meta [5];\n  \n  (db->init).busy = '\x01';\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar14 = PTR_LAB_00190c64;\n  db_00 = *(sqlite3 **)PTR___stack_chk_guard_00190e24;\n  if (iDb == 1) {\n    pcVar16 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    pcVar16 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  azArg[1] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  psVar13 = (sqlite3 *)0x3;\n  azArg[3] = (char *)0x0;\n  azArg[2] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  initData.rc = 0;\n  initData.nInitRow = 0;\n  initData.db = db;\n  initData.pzErrMsg = pzErrMsg;\n  initData.iDb = iDb;\n  initData.mInitFlags = mFlags;\n  azArg[0] = pcVar16;\n  sqlite3InitCallback(&initData,3,azArg,(char **)0x0);\n  iVar7 = initData.rc;\n  iVar19 = initData.rc;\n  if (initData.rc == 0) {\n    pDVar4 = db->aDb;\n    pBVar12 = pDVar4[iDb].pBt;\n    if (pBVar12 == (Btree *)0x0) {\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }\n    if (pBVar12->sharable != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }\n    psVar13 = db;\n    if (pBVar12->inTrans == '\0') {\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar19 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(db);\n  psVar13 = (sqlite3 *)iDb;\nLAB_0010775c:\n  psVar6 = *(sqlite3 **)puVar3;\n  (db->init).busy = '\0';\n  if (db_00 == psVar6) {\n    return iVar19;\n  }\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  uVar15 = db_00->mDbFlags;\n  db_00->enc = db_00->aDb->pSchema->enc;\n  if (((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&\n     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)) {\n    return iVar19;\n  }\n  iVar19 = db_00->nDb + -1;\n  if (0 < iVar19) {\n    do {\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n  }\n  if ((uVar15 & 1) != 0) {\n    return 0;\n  }\n  db_00->mDbFlags = db_00->mDbFlags & 0xfffffffe;\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "Db *pDVar4;" type_identifier (pointer_declarator "*pDVar4" * identifier) ;) (declaration "u8 uVar9;" type_identifier identifier ;) (declaration "Schema *pSVar5;" type_identifier (pointer_declarator "*pSVar5" * identifier) ;) (declaration "sqlite3 *psVar6;" type_identifier (pointer_declarator "*psVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte bVar10;" type_identifier identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "sqlite3 *db_00;" type_identifier (pointer_declarator "*db_00" * identifier) ;) (declaration "Btree *pBVar12;" type_identifier (pointer_declarator "*pBVar12" * identifier) ;) (declaration "sqlite3 *psVar13;" type_identifier (pointer_declarator "*psVar13" * identifier) ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "uint uVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "sqlite3_xauth p_Var18;" type_identifier identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "InitData initData;" type_identifier identifier ;) (declaration "char *azArg [4];" primitive_type (pointer_declarator "*azArg [4]" * (array_declarator "azArg [4]" identifier [ number_literal ])) ;) (declaration "int meta [5];" primitive_type (array_declarator "meta [5]" identifier [ number_literal ]) ;) (expression_statement "(db->init).busy = '\x01';" (assignment_expression "(db->init).busy = '\x01'" (field_expression "(db->init).busy" (parenthesized_expression "(db->init)" ( (field_expression "db->init" identifier -> field_identifier) )) . field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "puVar14 = PTR_LAB_00190c64;" (assignment_expression "puVar14 = PTR_LAB_00190c64" identifier = identifier) ;) (expression_statement "db_00 = *(sqlite3 **)PTR___stack_chk_guard_00190e24;" (assignment_expression "db_00 = *(sqlite3 **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(sqlite3 **)PTR___stack_chk_guard_00190e24" * (cast_expression "(sqlite3 **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if (iDb == 1) {\n    pcVar16 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    pcVar16 = PTR_LAB_00190958 + 0x2e2c;\n  }" if (parenthesized_expression "(iDb == 1)" ( (binary_expression "iDb == 1" identifier == number_literal) )) (compound_statement "{\n    pcVar16 = PTR_LAB_00190958 + 0x36ec;\n  }" { (expression_statement "pcVar16 = PTR_LAB_00190958 + 0x36ec;" (assignment_expression "pcVar16 = PTR_LAB_00190958 + 0x36ec" identifier = (binary_expression "PTR_LAB_00190958 + 0x36ec" identifier + number_literal)) ;) }) (else_clause "else {\n    pcVar16 = PTR_LAB_00190958 + 0x2e2c;\n  }" else (compound_statement "{\n    pcVar16 = PTR_LAB_00190958 + 0x2e2c;\n  }" { (expression_statement "pcVar16 = PTR_LAB_00190958 + 0x2e2c;" (assignment_expression "pcVar16 = PTR_LAB_00190958 + 0x2e2c" identifier = (binary_expression "PTR_LAB_00190958 + 0x2e2c" identifier + number_literal)) ;) }))) (expression_statement "azArg[1] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;" (assignment_expression "azArg[1] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" (subscript_expression "azArg[1]" identifier [ number_literal ]) = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" identifier + number_literal)) ;) (expression_statement "psVar13 = (sqlite3 *)0x3;" (assignment_expression "psVar13 = (sqlite3 *)0x3" identifier = (cast_expression "(sqlite3 *)0x3" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "azArg[3] = (char *)0x0;" (assignment_expression "azArg[3] = (char *)0x0" (subscript_expression "azArg[3]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "azArg[2] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;" (assignment_expression "azArg[2] = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" (subscript_expression "azArg[2]" identifier [ number_literal ]) = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" identifier + number_literal)) ;) (expression_statement "initData.rc = 0;" (assignment_expression "initData.rc = 0" (field_expression "initData.rc" identifier . field_identifier) = number_literal) ;) (expression_statement "initData.nInitRow = 0;" (assignment_expression "initData.nInitRow = 0" (field_expression "initData.nInitRow" identifier . field_identifier) = number_literal) ;) (expression_statement "initData.db = db;" (assignment_expression "initData.db = db" (field_expression "initData.db" identifier . field_identifier) = identifier) ;) (expression_statement "initData.pzErrMsg = pzErrMsg;" (assignment_expression "initData.pzErrMsg = pzErrMsg" (field_expression "initData.pzErrMsg" identifier . field_identifier) = identifier) ;) (expression_statement "initData.iDb = iDb;" (assignment_expression "initData.iDb = iDb" (field_expression "initData.iDb" identifier . field_identifier) = identifier) ;) (expression_statement "initData.mInitFlags = mFlags;" (assignment_expression "initData.mInitFlags = mFlags" (field_expression "initData.mInitFlags" identifier . field_identifier) = identifier) ;) (expression_statement "azArg[0] = pcVar16;" (assignment_expression "azArg[0] = pcVar16" (subscript_expression "azArg[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "sqlite3InitCallback(&initData,3,azArg,(char **)0x0);" (call_expression "sqlite3InitCallback(&initData,3,azArg,(char **)0x0)" identifier (argument_list "(&initData,3,azArg,(char **)0x0)" ( (pointer_expression "&initData" & identifier) , number_literal , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ))) ;) (expression_statement "iVar7 = initData.rc;" (assignment_expression "iVar7 = initData.rc" identifier = (field_expression "initData.rc" identifier . field_identifier)) ;) (expression_statement "iVar19 = initData.rc;" (assignment_expression "iVar19 = initData.rc" identifier = (field_expression "initData.rc" identifier . field_identifier)) ;) (if_statement "if (initData.rc == 0) {\n    pDVar4 = db->aDb;\n    pBVar12 = pDVar4[iDb].pBt;\n    if (pBVar12 == (Btree *)0x0) {\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }\n    if (pBVar12->sharable != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }\n    psVar13 = db;\n    if (pBVar12->inTrans == '\0') {\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar19 == 0) goto LAB_0010775c;\n  }" if (parenthesized_expression "(initData.rc == 0)" ( (binary_expression "initData.rc == 0" (field_expression "initData.rc" identifier . field_identifier) == number_literal) )) (compound_statement "{\n    pDVar4 = db->aDb;\n    pBVar12 = pDVar4[iDb].pBt;\n    if (pBVar12 == (Btree *)0x0) {\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }\n    if (pBVar12->sharable != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }\n    psVar13 = db;\n    if (pBVar12->inTrans == '\0') {\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar19 == 0) goto LAB_0010775c;\n  }" { (expression_statement "pDVar4 = db->aDb;" (assignment_expression "pDVar4 = db->aDb" identifier = (field_expression "db->aDb" identifier -> field_identifier)) ;) (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if (pBVar12 == (Btree *)0x0) {\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }" if (parenthesized_expression "(pBVar12 == (Btree *)0x0)" ( (binary_expression "pBVar12 == (Btree *)0x0" identifier == (cast_expression "(Btree *)0x0" ( (type_descriptor "Btree *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;\n      goto LAB_0010775c;\n    }" { (expression_statement "(pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;" (assignment_expression "(pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1" (field_expression "(pDVar4[1].pSchema)->schemaFlags" (parenthesized_expression "(pDVar4[1].pSchema)" ( (field_expression "pDVar4[1].pSchema" (subscript_expression "pDVar4[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier) = (binary_expression "(pDVar4[1].pSchema)->schemaFlags | 1" (field_expression "(pDVar4[1].pSchema)->schemaFlags" (parenthesized_expression "(pDVar4[1].pSchema)" ( (field_expression "pDVar4[1].pSchema" (subscript_expression "pDVar4[1]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier) | number_literal)) ;) (goto_statement "goto LAB_0010775c;" goto statement_identifier ;) })) (if_statement "if (pBVar12->sharable != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }" if (parenthesized_expression "(pBVar12->sharable != '\0')" ( (binary_expression "pBVar12->sharable != '\0'" (field_expression "pBVar12->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      pBVar12 = pDVar4[iDb].pBt;\n    }" { (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x7108))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x7108)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7108)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7108)" ( (binary_expression "PTR_LAB_00190ba8 + 0x7108" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) })) (expression_statement "psVar13 = db;" (assignment_expression "psVar13 = db" identifier = identifier) ;) (if_statement "if (pBVar12->inTrans == '\0') {\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }" if (parenthesized_expression "(pBVar12->inTrans == '\0')" ( (binary_expression "pBVar12->inTrans == '\0'" (field_expression "pBVar12->inTrans" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);\n      if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);\n      pBVar12 = pDVar4[iDb].pBt;\n      if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }" { (expression_statement "iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0);" (assignment_expression "iVar19 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))(pBVar12,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))" ( (pointer_expression "*(code *)(PTR_LAB_00190bcc + 0x7924)" * (cast_expression "(code *)(PTR_LAB_00190bcc + 0x7924)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bcc + 0x7924)" ( (binary_expression "PTR_LAB_00190bcc + 0x7924" identifier + number_literal) )))) )) (argument_list "(pBVar12,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar19 == 0) {\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n        pBVar12 = pDVar4[iDb].pBt;\n        bVar1 = true;\n        goto LAB_00107540;\n      }" { (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00107540;" goto statement_identifier ;) })) (expression_statement "uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19);" (assignment_expression "uVar8 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19)" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar19)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x7ac)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x7ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x7ac)" ( (binary_expression "PTR_LAB_00190ba4 + -0x7ac" identifier + number_literal) )))) )) (argument_list "(iVar19)" ( identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,uVar8)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x106c" identifier + number_literal) )))) )) (argument_list "(pzErrMsg,db,uVar8)" ( identifier , identifier , identifier ))) ;) (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) (if_statement "if ((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))\n      goto LAB_00107730;" if (parenthesized_expression "((pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0))" ( (binary_expression "(pBVar12->sharable == '\0') ||\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0)" (parenthesized_expression "(pBVar12->sharable == '\0')" ( (binary_expression "pBVar12->sharable == '\0'" (field_expression "pBVar12->sharable" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0)" ( (comma_expression "iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 != 0" (assignment_expression "iVar7 = pBVar12->wantToLock + -1" identifier = (binary_expression "pBVar12->wantToLock + -1" (field_expression "pBVar12->wantToLock" identifier -> field_identifier) + number_literal)) , (comma_expression "pBVar12->wantToLock = iVar7, iVar7 != 0" (assignment_expression "pBVar12->wantToLock = iVar7" (field_expression "pBVar12->wantToLock" identifier -> field_identifier) = identifier) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_00107730;" goto statement_identifier ;)) (labeled_statement "LAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x71f0)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x71f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x71f0)" ( (binary_expression "PTR_LAB_00190ba8 + 0x71f0" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;)) }) (else_clause "else {\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }" else (compound_statement "{\n      bVar1 = false;\nLAB_00107540:\n      piVar17 = meta;\n      iVar19 = 0;\n      pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }\n      (pDVar4[iDb].pSchema)->schema_cookie = meta[0];\n      if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }\n      if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (labeled_statement "LAB_00107540:\n      piVar17 = meta;" statement_identifier : (expression_statement "piVar17 = meta;" (assignment_expression "piVar17 = meta" identifier = identifier) ;)) (expression_statement "iVar19 = 0;" (assignment_expression "iVar19 = 0" identifier = number_literal) ;) (expression_statement "pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90);" (assignment_expression "pcVar11 = (code *)(PTR_LAB_00190ba8 + 0x7e90)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7e90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7e90)" ( (binary_expression "PTR_LAB_00190ba8 + 0x7e90" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar19 = iVar19 + 1;\n        (*pcVar11)(pBVar12,iVar19,piVar17);\n        piVar17 = piVar17 + 1;\n        if (iVar19 == 5) break;\n        pBVar12 = pDVar4[iDb].pBt;\n      }" { (expression_statement "iVar19 = iVar19 + 1;" (assignment_expression "iVar19 = iVar19 + 1" identifier = (binary_expression "iVar19 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar11)(pBVar12,iVar19,piVar17);" (call_expression "(*pcVar11)(pBVar12,iVar19,piVar17)" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "(pBVar12,iVar19,piVar17)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar17 = piVar17 + 1;" (assignment_expression "piVar17 = piVar17 + 1" identifier = (binary_expression "piVar17 + 1" identifier + number_literal)) ;) (if_statement "if (iVar19 == 5) break;" if (parenthesized_expression "(iVar19 == 5)" ( (binary_expression "iVar19 == 5" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) })) (if_statement "if ((int)db->flags << 6 < 0) {\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }" if (parenthesized_expression "((int)db->flags << 6 < 0)" ( (binary_expression "(int)db->flags << 6 < 0" (binary_expression "(int)db->flags << 6" (cast_expression "(int)db->flags" ( (type_descriptor "int" primitive_type) ) (field_expression "db->flags" identifier -> field_identifier)) << number_literal) < number_literal) )) (compound_statement "{\n        meta[0] = 0;\n        meta[1] = 0;\n        meta[2] = 0;\n        meta[3] = 0;\n        meta[4] = 0;\n      }" { (expression_statement "meta[0] = 0;" (assignment_expression "meta[0] = 0" (subscript_expression "meta[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "meta[1] = 0;" (assignment_expression "meta[1] = 0" (subscript_expression "meta[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "meta[2] = 0;" (assignment_expression "meta[2] = 0" (subscript_expression "meta[2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "meta[3] = 0;" (assignment_expression "meta[3] = 0" (subscript_expression "meta[3]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "meta[4] = 0;" (assignment_expression "meta[4] = 0" (subscript_expression "meta[4]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "(pDVar4[iDb].pSchema)->schema_cookie = meta[0];" (assignment_expression "(pDVar4[iDb].pSchema)->schema_cookie = meta[0]" (field_expression "(pDVar4[iDb].pSchema)->schema_cookie" (parenthesized_expression "(pDVar4[iDb].pSchema)" ( (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) )) -> field_identifier) = (subscript_expression "meta[0]" identifier [ number_literal ])) ;) (if_statement "if (meta[4] == 0) {\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }\n      else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }" if (parenthesized_expression "(meta[4] == 0)" ( (binary_expression "meta[4] == 0" (subscript_expression "meta[4]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;\n        bVar10 = db->enc;\nLAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;\n        pSVar5 = pDVar4[iDb].pSchema;\n        iVar19 = pSVar5->cache_size;\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }\n        pSVar5->file_format = (u8)meta[1];\n        bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }\n        if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }\n        psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);\n        p_Var18 = db->xAuth;\n        db->xAuth = (sqlite3_xauth)0x0;\n        psVar13 = psVar6;\n        iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);\n        db->xAuth = p_Var18;\n        if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar19 = initData.rc;\n        if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }\n        if (iVar19 != 0) goto LAB_001076c8;\n        psVar13 = (sqlite3 *)iDb;\n        sqlite3AnalysisLoad(db,iDb);\n        if (db->mallocFailed != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;\n        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;\n        pBVar12 = pDVar4[iDb].pBt;\n        iVar19 = iVar7;\n      }" { (expression_statement "pSVar5 = db->aDb[iDb].pSchema;" (assignment_expression "pSVar5 = db->aDb[iDb].pSchema" identifier = (field_expression "db->aDb[iDb].pSchema" (subscript_expression "db->aDb[iDb]" (field_expression "db->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;) (expression_statement "pSVar5->schemaFlags = pSVar5->schemaFlags | 4;" (assignment_expression "pSVar5->schemaFlags = pSVar5->schemaFlags | 4" (field_expression "pSVar5->schemaFlags" identifier -> field_identifier) = (binary_expression "pSVar5->schemaFlags | 4" (field_expression "pSVar5->schemaFlags" identifier -> field_identifier) | number_literal)) ;) (expression_statement "bVar10 = db->enc;" (assignment_expression "bVar10 = db->enc" identifier = (field_expression "db->enc" identifier -> field_identifier)) ;) (labeled_statement "LAB_001077f8:\n        (pDVar4[iDb].pSchema)->enc = bVar10;" statement_identifier : (expression_statement "(pDVar4[iDb].pSchema)->enc = bVar10;" (assignment_expression "(pDVar4[iDb].pSchema)->enc = bVar10" (field_expression "(pDVar4[iDb].pSchema)->enc" (parenthesized_expression "(pDVar4[iDb].pSchema)" ( (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) )) -> field_identifier) = identifier) ;)) (expression_statement "pSVar5 = pDVar4[iDb].pSchema;" (assignment_expression "pSVar5 = pDVar4[iDb].pSchema" identifier = (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "iVar19 = pSVar5->cache_size;" (assignment_expression "iVar19 = pSVar5->cache_size" identifier = (field_expression "pSVar5->cache_size" identifier -> field_identifier)) ;) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" identifier = identifier) ;) (labeled_statement "joined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;" statement_identifier : (expression_statement "PTR_LAB_00190ba8 = puVar2;" (assignment_expression "PTR_LAB_00190ba8 = puVar2" identifier = identifier) ;)) (if_statement "if (iVar19 == 0) {\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (compound_statement "{\n          if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }\n          pSVar5->cache_size = meta[2];\n          (*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);\n          pSVar5 = pDVar4[iDb].pSchema;\n        }" { (if_statement "if (meta[2] < 0) {\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }\n          else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }" if (parenthesized_expression "(meta[2] < 0)" ( (binary_expression "meta[2] < 0" (subscript_expression "meta[2]" identifier [ number_literal ]) < number_literal) )) (compound_statement "{\n            if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }\n          }" { (if_statement "if (meta[2] == -0x80000000) {\n              meta[2] = 0x7fffffff;\n            }\n            else {\n              meta[2] = -meta[2];\n            }" if (parenthesized_expression "(meta[2] == -0x80000000)" ( (binary_expression "meta[2] == -0x80000000" (subscript_expression "meta[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n              meta[2] = 0x7fffffff;\n            }" { (expression_statement "meta[2] = 0x7fffffff;" (assignment_expression "meta[2] = 0x7fffffff" (subscript_expression "meta[2]" identifier [ number_literal ]) = number_literal) ;) }) (else_clause "else {\n              meta[2] = -meta[2];\n            }" else (compound_statement "{\n              meta[2] = -meta[2];\n            }" { (expression_statement "meta[2] = -meta[2];" (assignment_expression "meta[2] = -meta[2]" (subscript_expression "meta[2]" identifier [ number_literal ]) = (unary_expression "-meta[2]" - (subscript_expression "meta[2]" identifier [ number_literal ]))) ;) }))) }) (else_clause "else if (meta[2] == 0) {\n            meta[2] = -2000;\n          }" else (if_statement "if (meta[2] == 0) {\n            meta[2] = -2000;\n          }" if (parenthesized_expression "(meta[2] == 0)" ( (binary_expression "meta[2] == 0" (subscript_expression "meta[2]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n            meta[2] = -2000;\n          }" { (expression_statement "meta[2] = -2000;" (assignment_expression "meta[2] = -2000" (subscript_expression "meta[2]" identifier [ number_literal ]) = number_literal) ;) })))) (expression_statement "pSVar5->cache_size = meta[2];" (assignment_expression "pSVar5->cache_size = meta[2]" (field_expression "pSVar5->cache_size" identifier -> field_identifier) = (subscript_expression "meta[2]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size);" (call_expression "(*(code *)(puVar2 + 0x797c))(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size)" (parenthesized_expression "(*(code *)(puVar2 + 0x797c))" ( (pointer_expression "*(code *)(puVar2 + 0x797c)" * (cast_expression "(code *)(puVar2 + 0x797c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x797c)" ( (binary_expression "puVar2 + 0x797c" identifier + number_literal) )))) )) (argument_list "(pDVar4[iDb].pBt,(pDVar4[iDb].pSchema)->cache_size)" ( (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) , (field_expression "(pDVar4[iDb].pSchema)->cache_size" (parenthesized_expression "(pDVar4[iDb].pSchema)" ( (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) )) -> field_identifier) ))) ;) (expression_statement "pSVar5 = pDVar4[iDb].pSchema;" (assignment_expression "pSVar5 = pDVar4[iDb].pSchema" identifier = (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) })) (expression_statement "pSVar5->file_format = (u8)meta[1];" (assignment_expression "pSVar5->file_format = (u8)meta[1]" (field_expression "pSVar5->file_format" identifier -> field_identifier) = (cast_expression "(u8)meta[1]" ( (type_descriptor "u8" type_identifier) ) (subscript_expression "meta[1]" identifier [ number_literal ]))) ;) (expression_statement "bVar10 = (pDVar4[iDb].pSchema)->file_format;" (assignment_expression "bVar10 = (pDVar4[iDb].pSchema)->file_format" identifier = (field_expression "(pDVar4[iDb].pSchema)->file_format" (parenthesized_expression "(pDVar4[iDb].pSchema)" ( (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) )) -> field_identifier)) ;) (if_statement "if (bVar10 == 0) {\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }" if (parenthesized_expression "(bVar10 == 0)" ( (binary_expression "bVar10 == 0" identifier == number_literal) )) (compound_statement "{\n          (pDVar4[iDb].pSchema)->file_format = '\x01';\n          bVar10 = (pDVar4[iDb].pSchema)->file_format;\n        }" { (expression_statement "(pDVar4[iDb].pSchema)->file_format = '\x01';" (assignment_expression "(pDVar4[iDb].pSchema)->file_format = '\x01'" (field_expression "(pDVar4[iDb].pSchema)->file_format" (parenthesized_expression "(pDVar4[iDb].pSchema)" ( (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) )) -> field_identifier) = (char_literal "'\x01'" ' escape_sequence ')) ;) (expression_statement "bVar10 = (pDVar4[iDb].pSchema)->file_format;" (assignment_expression "bVar10 = (pDVar4[iDb].pSchema)->file_format" identifier = (field_expression "(pDVar4[iDb].pSchema)->file_format" (parenthesized_expression "(pDVar4[iDb].pSchema)" ( (field_expression "pDVar4[iDb].pSchema" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier) )) -> field_identifier)) ;) })) (if_statement "if (4 < bVar10) {\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" if (parenthesized_expression "(4 < bVar10)" ( (binary_expression "4 < bVar10" number_literal < identifier) )) (compound_statement "{\n          puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" { (expression_statement "puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;" (assignment_expression "puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" identifier + number_literal)) ;) (goto_statement "goto LAB_00107954;" goto statement_identifier ;) })) (if_statement "if ((iDb == 0) && (3 < meta[1])) {\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }" if (parenthesized_expression "((iDb == 0) && (3 < meta[1]))" ( (binary_expression "(iDb == 0) && (3 < meta[1])" (parenthesized_expression "(iDb == 0)" ( (binary_expression "iDb == 0" identifier == number_literal) )) && (parenthesized_expression "(3 < meta[1])" ( (binary_expression "3 < meta[1]" number_literal < (subscript_expression "meta[1]" identifier [ number_literal ])) ))) )) (compound_statement "{\n          *(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;\n        }" { (expression_statement "*(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd;" (assignment_expression "*(uint *)((int)&db->flags + 4) = (uint)db->flags & 0xfffffffd" (pointer_expression "*(uint *)((int)&db->flags + 4)" * (cast_expression "(uint *)((int)&db->flags + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&db->flags + 4)" ( (binary_expression "(int)&db->flags + 4" (cast_expression "(int)&db->flags" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&db->flags" & (field_expression "db->flags" identifier -> field_identifier))) + number_literal) )))) = (binary_expression "(uint)db->flags & 0xfffffffd" (cast_expression "(uint)db->flags" ( (type_descriptor "uint" type_identifier) ) (field_expression "db->flags" identifier -> field_identifier)) & number_literal)) ;) })) (expression_statement "psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16);" (assignment_expression "psVar6 = (sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16)" identifier = (cast_expression "(sqlite3 *)\n                 (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                           (db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x2e9c)" * (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x2e9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc4 + -0x2e9c)" ( (binary_expression "PTR_LAB_00190bc4 + -0x2e9c" identifier + number_literal) )))) )) (argument_list "(db,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                            db->aDb[iDb].zDbSName,pcVar16)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074" identifier + number_literal) , (field_expression "db->aDb[iDb].zDbSName" (subscript_expression "db->aDb[iDb]" (field_expression "db->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier) , identifier ))))) ;) (expression_statement "p_Var18 = db->xAuth;" (assignment_expression "p_Var18 = db->xAuth" identifier = (field_expression "db->xAuth" identifier -> field_identifier)) ;) (expression_statement "db->xAuth = (sqlite3_xauth)0x0;" (assignment_expression "db->xAuth = (sqlite3_xauth)0x0" (field_expression "db->xAuth" identifier -> field_identifier) = (cast_expression "(sqlite3_xauth)0x0" ( (type_descriptor "sqlite3_xauth" type_identifier) ) number_literal)) ;) (expression_statement "psVar13 = psVar6;" (assignment_expression "psVar13 = psVar6" identifier = identifier) ;) (expression_statement "iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0);" (assignment_expression "iVar19 = sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0)" identifier = (call_expression "sqlite3_exec(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0)" identifier (argument_list "(db,(char *)psVar6,(sqlite3_callback)(puVar14 + 0x2fc),&initData,\n                              (char **)0x0)" ( identifier , (cast_expression "(char *)psVar6" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (call_expression "(sqlite3_callback)(puVar14 + 0x2fc)" (parenthesized_expression "(sqlite3_callback)" ( identifier )) (argument_list "(puVar14 + 0x2fc)" ( (binary_expression "puVar14 + 0x2fc" identifier + number_literal) ))) , (pointer_expression "&initData" & identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "db->xAuth = p_Var18;" (assignment_expression "db->xAuth = p_Var18" (field_expression "db->xAuth" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar19 != 0) {\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (compound_statement "{\n          if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;\nLAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }\n          if ((int)db->flags << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" { (if_statement "if (psVar6 != (sqlite3 *)0x0) goto LAB_001076a8;" if (parenthesized_expression "(psVar6 != (sqlite3 *)0x0)" ( (binary_expression "psVar6 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001076a8;" goto statement_identifier ;)) (labeled_statement "LAB_001076c8:\n          if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }" statement_identifier : (if_statement "if (db->mallocFailed != '\0') {\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\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 "{\nLAB_001076d4:\n            iVar19 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);\n          }" { (labeled_statement "LAB_001076d4:\n            iVar19 = 7;" statement_identifier : (expression_statement "iVar19 = 7;" (assignment_expression "iVar19 = 7" identifier = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(db);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x236c)" * (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x236c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bb8 + -0x236c)" ( (binary_expression "PTR_LAB_00190bb8 + -0x236c" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;) }))) (if_statement "if ((int)db->flags << 4 < 0) goto LAB_001078d4;" if (parenthesized_expression "((int)db->flags << 4 < 0)" ( (binary_expression "(int)db->flags << 4 < 0" (binary_expression "(int)db->flags << 4" (cast_expression "(int)db->flags" ( (type_descriptor "int" primitive_type) ) (field_expression "db->flags" identifier -> field_identifier)) << number_literal) < number_literal) )) (goto_statement "goto LAB_001078d4;" goto statement_identifier ;)) (goto_statement "goto LAB_00107700;" goto statement_identifier ;) })) (expression_statement "iVar19 = initData.rc;" (assignment_expression "iVar19 = initData.rc" identifier = (field_expression "initData.rc" identifier . field_identifier)) ;) (if_statement "if (psVar6 != (sqlite3 *)0x0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }" if (parenthesized_expression "(psVar6 != (sqlite3 *)0x0)" ( (binary_expression "psVar6 != (sqlite3 *)0x0" identifier != (cast_expression "(sqlite3 *)0x0" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);\n          psVar13 = psVar6;\n        }" { (labeled_statement "LAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(db);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x2368)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x2368)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x2368)" ( (binary_expression "PTR_LAB_00190ba8 + -0x2368" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;)) (expression_statement "psVar13 = psVar6;" (assignment_expression "psVar13 = psVar6" identifier = identifier) ;) })) (if_statement "if (iVar19 != 0) goto LAB_001076c8;" if (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001076c8;" goto statement_identifier ;)) (expression_statement "psVar13 = (sqlite3 *)iDb;" (assignment_expression "psVar13 = (sqlite3 *)iDb" identifier = (cast_expression "(sqlite3 *)iDb" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sqlite3AnalysisLoad(db,iDb);" (call_expression "sqlite3AnalysisLoad(db,iDb)" identifier (argument_list "(db,iDb)" ( identifier , identifier ))) ;) (if_statement "if (db->mallocFailed != '\0') goto LAB_001076d4;" if (parenthesized_expression "(db->mallocFailed != '\0')" ( (binary_expression "db->mallocFailed != '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001076d4;" goto statement_identifier ;)) (labeled_statement "LAB_001078d4:\n        pSVar5 = db->aDb[iDb].pSchema;" statement_identifier : (expression_statement "pSVar5 = db->aDb[iDb].pSchema;" (assignment_expression "pSVar5 = db->aDb[iDb].pSchema" identifier = (field_expression "db->aDb[iDb].pSchema" (subscript_expression "db->aDb[iDb]" (field_expression "db->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier)) ;)) (expression_statement "pSVar5->schemaFlags = pSVar5->schemaFlags | 1;" (assignment_expression "pSVar5->schemaFlags = pSVar5->schemaFlags | 1" (field_expression "pSVar5->schemaFlags" identifier -> field_identifier) = (binary_expression "pSVar5->schemaFlags | 1" (field_expression "pSVar5->schemaFlags" identifier -> field_identifier) | number_literal)) ;) (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) (expression_statement "iVar19 = iVar7;" (assignment_expression "iVar19 = iVar7" identifier = identifier) ;) }) (else_clause "else {\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }" else (compound_statement "{\n        uVar9 = (u8)(meta[4] & 3U);\n        if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar10 = db->enc;\n        if (meta[4] == (uint)bVar10) goto LAB_001077f8;\n        puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar19 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);\nLAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;\n      }" { (expression_statement "uVar9 = (u8)(meta[4] & 3U);" (assignment_expression "uVar9 = (u8)(meta[4] & 3U)" identifier = (call_expression "(u8)(meta[4] & 3U)" (parenthesized_expression "(u8)" ( identifier )) (argument_list "(meta[4] & 3U)" ( (binary_expression "meta[4] & 3U" (subscript_expression "meta[4]" identifier [ number_literal ]) & number_literal) )))) ;) (if_statement "if (iDb == 0) {\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" if (parenthesized_expression "(iDb == 0)" ( (binary_expression "iDb == 0" identifier == number_literal) )) (compound_statement "{\n          if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }\n          db->enc = uVar9;\n          pDVar4->pSchema->enc = uVar9;\n          pSVar5 = pDVar4->pSchema;\n          iVar19 = pSVar5->cache_size;\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" { (if_statement "if ((meta[4] & 3U) == 0) {\n            uVar9 = '\x01';\n          }" if (parenthesized_expression "((meta[4] & 3U) == 0)" ( (binary_expression "(meta[4] & 3U) == 0" (parenthesized_expression "(meta[4] & 3U)" ( (binary_expression "meta[4] & 3U" (subscript_expression "meta[4]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar9 = '\x01';\n          }" { (expression_statement "uVar9 = '\x01';" (assignment_expression "uVar9 = '\x01'" identifier = (char_literal "'\x01'" ' escape_sequence ')) ;) })) (expression_statement "db->enc = uVar9;" (assignment_expression "db->enc = uVar9" (field_expression "db->enc" identifier -> field_identifier) = identifier) ;) (expression_statement "pDVar4->pSchema->enc = uVar9;" (assignment_expression "pDVar4->pSchema->enc = uVar9" (field_expression "pDVar4->pSchema->enc" (field_expression "pDVar4->pSchema" identifier -> field_identifier) -> field_identifier) = identifier) ;) (expression_statement "pSVar5 = pDVar4->pSchema;" (assignment_expression "pSVar5 = pDVar4->pSchema" identifier = (field_expression "pDVar4->pSchema" identifier -> field_identifier)) ;) (expression_statement "iVar19 = pSVar5->cache_size;" (assignment_expression "iVar19 = pSVar5->cache_size" identifier = (field_expression "pSVar5->cache_size" identifier -> field_identifier)) ;) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" identifier = identifier) ;) (goto_statement "goto joined_r0x001075d8;" goto statement_identifier ;) })) (expression_statement "bVar10 = db->enc;" (assignment_expression "bVar10 = db->enc" identifier = (field_expression "db->enc" identifier -> field_identifier)) ;) (if_statement "if (meta[4] == (uint)bVar10) goto LAB_001077f8;" if (parenthesized_expression "(meta[4] == (uint)bVar10)" ( (binary_expression "meta[4] == (uint)bVar10" (subscript_expression "meta[4]" identifier [ number_literal ]) == (cast_expression "(uint)bVar10" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (goto_statement "goto LAB_001077f8;" goto statement_identifier ;)) (expression_statement "puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;" (assignment_expression "puVar14 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" identifier + number_literal)) ;) (labeled_statement "LAB_00107954:\n        iVar19 = 1;" statement_identifier : (expression_statement "iVar19 = 1;" (assignment_expression "iVar19 = 1" identifier = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(pzErrMsg,db,puVar14)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x106c" identifier + number_literal) )))) )) (argument_list "(pzErrMsg,db,puVar14)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00107700:\n        pBVar12 = pDVar4[iDb].pBt;" statement_identifier : (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;)) }))) (if_statement "if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        pBVar12 = pDVar4[iDb].pBt;\n      }" { (expression_statement "(*(code *)(PTR_LAB_00190bbc + 0x2eac))();" (call_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))" ( (pointer_expression "*(code *)(PTR_LAB_00190bbc + 0x2eac)" * (cast_expression "(code *)(PTR_LAB_00190bbc + 0x2eac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bbc + 0x2eac)" ( (binary_expression "PTR_LAB_00190bbc + 0x2eac" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "pBVar12 = pDVar4[iDb].pBt;" (assignment_expression "pBVar12 = pDVar4[iDb].pBt" identifier = (field_expression "pDVar4[iDb].pBt" (subscript_expression "pDVar4[iDb]" identifier [ identifier ]) . field_identifier)) ;) })) (if_statement "if ((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))\n      goto LAB_001079bc;" if (parenthesized_expression "((pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0))" ( (binary_expression "(pBVar12->sharable != '\0') &&\n         (iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0)" (parenthesized_expression "(pBVar12->sharable != '\0')" ( (binary_expression "pBVar12->sharable != '\0'" (field_expression "pBVar12->sharable" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0)" ( (comma_expression "iVar7 = pBVar12->wantToLock + -1, pBVar12->wantToLock = iVar7, iVar7 == 0" (assignment_expression "iVar7 = pBVar12->wantToLock + -1" identifier = (binary_expression "pBVar12->wantToLock + -1" (field_expression "pBVar12->wantToLock" identifier -> field_identifier) + number_literal)) , (comma_expression "pBVar12->wantToLock = iVar7, iVar7 == 0" (assignment_expression "pBVar12->wantToLock = iVar7" (field_expression "pBVar12->wantToLock" identifier -> field_identifier) = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (goto_statement "goto LAB_001079bc;" goto statement_identifier ;)) }))) (if_statement "if (iVar19 == 0) goto LAB_0010775c;" if (parenthesized_expression "(iVar19 == 0)" ( (binary_expression "iVar19 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010775c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00107730:\n  if (((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);\n  }" statement_identifier : (if_statement "if (((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);\n  }" if (parenthesized_expression "(((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0))" ( (binary_expression "((iVar19 == 7) || (iVar19 == 0xc0a)) &&\n     (uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)" (parenthesized_expression "((iVar19 == 7) || (iVar19 == 0xc0a))" ( (binary_expression "(iVar19 == 7) || (iVar19 == 0xc0a)" (parenthesized_expression "(iVar19 == 7)" ( (binary_expression "iVar19 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar19 == 0xc0a)" ( (binary_expression "iVar19 == 0xc0a" identifier == number_literal) ))) )) && (parenthesized_expression "(uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0)" ( (comma_expression "uVar15._0_1_ = db->temp_store, uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0" (assignment_expression "uVar15._0_1_ = db->temp_store" (field_expression "uVar15._0_1_" identifier . field_identifier) = (field_expression "db->temp_store" identifier -> field_identifier)) , (comma_expression "uVar15._1_1_ = db->mallocFailed,\n     uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0" (assignment_expression "uVar15._1_1_ = db->mallocFailed" (field_expression "uVar15._1_1_" identifier . field_identifier) = (field_expression "db->mallocFailed" identifier -> field_identifier)) , (comma_expression "uVar15._2_1_ = db->bBenignMalloc, uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0" (assignment_expression "uVar15._2_1_ = db->bBenignMalloc" (field_expression "uVar15._2_1_" identifier . field_identifier) = (field_expression "db->bBenignMalloc" identifier -> field_identifier)) , (comma_expression "uVar15._3_1_ = db->dfltLockMode, (uVar15 & 0xffff00) == 0" (assignment_expression "uVar15._3_1_ = db->dfltLockMode" (field_expression "uVar15._3_1_" identifier . field_identifier) = (field_expression "db->dfltLockMode" identifier -> field_identifier)) , (binary_expression "(uVar15 & 0xffff00) == 0" (parenthesized_expression "(uVar15 & 0xffff00)" ( (binary_expression "uVar15 & 0xffff00" identifier & number_literal) )) == number_literal))))) ))) )) (compound_statement "{\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);\n  }" { (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(db);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x82c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x82c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x82c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x82c" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;) }))) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(db);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))" ( (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x2180)" * (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x2180)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bb8 + -0x2180)" ( (binary_expression "PTR_LAB_00190bb8 + -0x2180" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;) (expression_statement "psVar13 = (sqlite3 *)iDb;" (assignment_expression "psVar13 = (sqlite3 *)iDb" identifier = (cast_expression "(sqlite3 *)iDb" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_0010775c:\n  psVar6 = *(sqlite3 **)puVar3;" statement_identifier : (expression_statement "psVar6 = *(sqlite3 **)puVar3;" (assignment_expression "psVar6 = *(sqlite3 **)puVar3" identifier = (pointer_expression "*(sqlite3 **)puVar3" * (cast_expression "(sqlite3 **)puVar3" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;)) (expression_statement "(db->init).busy = '\0';" (assignment_expression "(db->init).busy = '\0'" (field_expression "(db->init).busy" (parenthesized_expression "(db->init)" ( (field_expression "db->init" identifier -> field_identifier) )) . field_identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (if_statement "if (db_00 == psVar6) {\n    return iVar19;\n  }" if (parenthesized_expression "(db_00 == psVar6)" ( (binary_expression "db_00 == psVar6" identifier == identifier) )) (compound_statement "{\n    return iVar19;\n  }" { (return_statement "return iVar19;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "uVar15 = db_00->mDbFlags;" (assignment_expression "uVar15 = db_00->mDbFlags" identifier = (field_expression "db_00->mDbFlags" identifier -> field_identifier)) ;) (expression_statement "db_00->enc = db_00->aDb->pSchema->enc;" (assignment_expression "db_00->enc = db_00->aDb->pSchema->enc" (field_expression "db_00->enc" identifier -> field_identifier) = (field_expression "db_00->aDb->pSchema->enc" (field_expression "db_00->aDb->pSchema" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier) -> field_identifier)) ;) (if_statement "if (((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&\n     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)) {\n    return iVar19;\n  }" if (parenthesized_expression "(((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&\n     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0))" ( (binary_expression "((db_00->aDb->pSchema->schemaFlags & 1) == 0) &&\n     (iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)" (parenthesized_expression "((db_00->aDb->pSchema->schemaFlags & 1) == 0)" ( (binary_expression "(db_00->aDb->pSchema->schemaFlags & 1) == 0" (parenthesized_expression "(db_00->aDb->pSchema->schemaFlags & 1)" ( (binary_expression "db_00->aDb->pSchema->schemaFlags & 1" (field_expression "db_00->aDb->pSchema->schemaFlags" (field_expression "db_00->aDb->pSchema" (field_expression "db_00->aDb" identifier -> field_identifier) -> field_identifier) -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0)" ( (comma_expression "iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0), iVar19 != 0" (assignment_expression "iVar19 = sqlite3InitOne(db_00,0,(char **)psVar13,0)" identifier = (call_expression "sqlite3InitOne(db_00,0,(char **)psVar13,0)" identifier (argument_list "(db_00,0,(char **)psVar13,0)" ( identifier , number_literal , (cast_expression "(char **)psVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , number_literal )))) , (binary_expression "iVar19 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    return iVar19;\n  }" { (return_statement "return iVar19;" return identifier ;) })) (expression_statement "iVar19 = db_00->nDb + -1;" (assignment_expression "iVar19 = db_00->nDb + -1" identifier = (binary_expression "db_00->nDb + -1" (field_expression "db_00->nDb" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (0 < iVar19) {\n    do {\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n  }" if (parenthesized_expression "(0 < iVar19)" ( (binary_expression "0 < iVar19" number_literal < identifier) )) (compound_statement "{\n    do {\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);\n  }" { (do_statement "do {\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    } while (iVar19 != 0);" do (compound_statement "{\n      if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar19 = iVar19 + -1;\n    }" { (if_statement "if ((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)) {\n        return iVar7;\n      }" if (parenthesized_expression "((((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0))" ( (binary_expression "(((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0) &&\n         (iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)" (parenthesized_expression "(((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0)" ( (binary_expression "((db_00->aDb[iVar19].pSchema)->schemaFlags & 1) == 0" (parenthesized_expression "((db_00->aDb[iVar19].pSchema)->schemaFlags & 1)" ( (binary_expression "(db_00->aDb[iVar19].pSchema)->schemaFlags & 1" (field_expression "(db_00->aDb[iVar19].pSchema)->schemaFlags" (parenthesized_expression "(db_00->aDb[iVar19].pSchema)" ( (field_expression "db_00->aDb[iVar19].pSchema" (subscript_expression "db_00->aDb[iVar19]" (field_expression "db_00->aDb" identifier -> field_identifier) [ identifier ]) . field_identifier) )) -> field_identifier) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0)" ( (comma_expression "iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0), iVar7 != 0" (assignment_expression "iVar7 = sqlite3InitOne(db_00,iVar19,(char **)psVar13,0)" identifier = (call_expression "sqlite3InitOne(db_00,iVar19,(char **)psVar13,0)" identifier (argument_list "(db_00,iVar19,(char **)psVar13,0)" ( identifier , identifier , (cast_expression "(char **)psVar13" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "iVar19 = iVar19 + -1;" (assignment_expression "iVar19 = iVar19 + -1" identifier = (binary_expression "iVar19 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar19 != 0)" ( (binary_expression "iVar19 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((uVar15 & 1) != 0) {\n    return 0;\n  }" if (parenthesized_expression "((uVar15 & 1) != 0)" ( (binary_expression "(uVar15 & 1) != 0" (parenthesized_expression "(uVar15 & 1)" ( (binary_expression "uVar15 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "db_00->mDbFlags = db_00->mDbFlags & 0xfffffffe;" (assignment_expression "db_00->mDbFlags = db_00->mDbFlags & 0xfffffffe" (field_expression "db_00->mDbFlags" identifier -> field_identifier) = (binary_expression "db_00->mDbFlags & 0xfffffffe" (field_expression "db_00->mDbFlags" identifier -> field_identifier) & number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}\n\n" (function_definition "int FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}" primitive_type (function_declarator "FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)" identifier (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 uVar5;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte bVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "int iVar17;" primitive_type identifier ;) (declaration "int local_68;" primitive_type identifier ;) (declaration "undefined4 local_64;" type_identifier identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "int local_5c;" primitive_type identifier ;) (declaration "undefined4 local_58;" type_identifier identifier ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined *local_50;" type_identifier (pointer_declarator "*local_50" * identifier) ;) (declaration "undefined *local_4c;" type_identifier (pointer_declarator "*local_4c" * identifier) ;) (declaration "undefined *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_44;" type_identifier identifier ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "uint local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "*(undefined1 *)(param_1 + 0xa5) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xa5) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xa5)" * (cast_expression "(undefined1 *)(param_1 + 0xa5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa5)" ( (binary_expression "param_1 + 0xa5" identifier + number_literal) )))) = number_literal) ;) (expression_statement "puVar3 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "puVar16 = PTR_LAB_00190c64;" (assignment_expression "puVar16 = PTR_LAB_00190c64" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00190e24" * (cast_expression "(int *)PTR___stack_chk_guard_00190e24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" if (parenthesized_expression "(param_2 == 1)" ( (binary_expression "param_2 == 1" identifier == number_literal) )) (compound_statement "{\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }" { (expression_statement "puVar13 = PTR_LAB_00190958 + 0x36ec;" (assignment_expression "puVar13 = PTR_LAB_00190958 + 0x36ec" identifier = (binary_expression "PTR_LAB_00190958 + 0x36ec" identifier + number_literal)) ;) }) (else_clause "else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" else (compound_statement "{\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" { (expression_statement "puVar13 = PTR_LAB_00190958 + 0x2e2c;" (assignment_expression "puVar13 = PTR_LAB_00190958 + 0x2e2c" identifier = (binary_expression "PTR_LAB_00190958 + 0x2e2c" identifier + number_literal)) ;) }))) (expression_statement "local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;" (assignment_expression "local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" identifier + number_literal)) ;) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" identifier = number_literal) ;) (expression_statement "local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;" (assignment_expression "local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" identifier + number_literal)) ;) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" identifier = number_literal) ;) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" identifier = number_literal) ;) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" identifier = identifier) ;) (expression_statement "local_64 = param_3;" (assignment_expression "local_64 = param_3" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" identifier = identifier) ;) (expression_statement "local_50 = puVar13;" (assignment_expression "local_50 = puVar13" identifier = identifier) ;) (expression_statement "FUN_001202fc(&local_68,3,&local_50,0);" (call_expression "FUN_001202fc(&local_68,3,&local_50,0)" identifier (argument_list "(&local_68,3,&local_50,0)" ( (pointer_expression "&local_68" & identifier) , number_literal , (pointer_expression "&local_50" & identifier) , number_literal ))) ;) (expression_statement "iVar4 = local_5c;" (assignment_expression "iVar4 = local_5c" identifier = identifier) ;) (expression_statement "iVar17 = local_5c;" (assignment_expression "iVar17 = local_5c" identifier = identifier) ;) (if_statement "if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }" if (parenthesized_expression "(local_5c == 0)" ( (binary_expression "local_5c == 0" identifier == number_literal) )) (compound_statement "{\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }" { (expression_statement "iVar7 = param_2 * 0x10;" (assignment_expression "iVar7 = param_2 * 0x10" identifier = (binary_expression "param_2 * 0x10" identifier * number_literal)) ;) (expression_statement "iVar11 = *(int *)(param_1 + 0x10) + iVar7;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x10) + iVar7" identifier = (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier)) ;) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }" { (expression_statement "iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + 0x1c)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + 0x1c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x1c)" ( (binary_expression "*(int *)(param_1 + 0x10) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;" (assignment_expression "*(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar4 + 0x4e)" * (cast_expression "(ushort *)(iVar4 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4e)" ( (binary_expression "iVar4 + 0x4e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar4 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar4 + 0x4e)" * (cast_expression "(ushort *)(iVar4 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x4e)" ( (binary_expression "iVar4 + 0x4e" identifier + number_literal) )))) | number_literal)) ;) (goto_statement "goto LAB_0010775c;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }" if (parenthesized_expression "(*(char *)(iVar9 + 9) != '\0')" ( (binary_expression "*(char *)(iVar9 + 9) != '\0'" (pointer_expression "*(char *)(iVar9 + 9)" * (cast_expression "(char *)(iVar9 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 9)" ( (binary_expression "iVar9 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }" { (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x7108))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x7108)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7108)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7108)" ( (binary_expression "PTR_LAB_00190ba8 + 0x7108" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (expression_statement "iVar10 = param_1;" (assignment_expression "iVar10 = param_1" identifier = identifier) ;) (if_statement "if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" if (parenthesized_expression "(*(char *)(iVar9 + 8) == '\0')" ( (binary_expression "*(char *)(iVar9 + 8) == '\0'" (pointer_expression "*(char *)(iVar9 + 8)" * (cast_expression "(char *)(iVar9 + 8)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar9 + 8)" ( (binary_expression "iVar9 + 8" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }" { (expression_statement "iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);" (assignment_expression "iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0)" identifier = (call_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))" ( (pointer_expression "*(code *)(PTR_LAB_00190bcc + 0x7924)" * (cast_expression "(code *)(PTR_LAB_00190bcc + 0x7924)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bcc + 0x7924)" ( (binary_expression "PTR_LAB_00190bcc + 0x7924" identifier + number_literal) )))) )) (argument_list "(iVar9,0,0)" ( identifier , number_literal , number_literal )))) ;) (if_statement "if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }" { (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" identifier = true) ;) (goto_statement "goto LAB_00107540;" goto statement_identifier ;) })) (expression_statement "uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);" (assignment_expression "uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17)" identifier = (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x7ac)" * (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x7ac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba4 + -0x7ac)" ( (binary_expression "PTR_LAB_00190ba4 + -0x7ac" identifier + number_literal) )))) )) (argument_list "(iVar17)" ( identifier )))) ;) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x106c" identifier + number_literal) )))) )) (argument_list "(param_3,param_1,uVar15)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar4 = *(int *)(iVar11 + 4);" (assignment_expression "iVar4 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (if_statement "if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;" if (parenthesized_expression "((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))" ( (binary_expression "(*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0)" (parenthesized_expression "(*(char *)(iVar4 + 9) == '\0')" ( (binary_expression "*(char *)(iVar4 + 9) == '\0'" (pointer_expression "*(char *)(iVar4 + 9)" * (cast_expression "(char *)(iVar4 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 9)" ( (binary_expression "iVar4 + 9" identifier + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0)" ( (comma_expression "iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0" (assignment_expression "iVar7 = *(int *)(iVar4 + 0xc) + -1" identifier = (binary_expression "*(int *)(iVar4 + 0xc) + -1" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) + number_literal)) , (comma_expression "*(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0" (assignment_expression "*(int *)(iVar4 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar4 + 0xc)" * (cast_expression "(int *)(iVar4 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_00107730;" goto statement_identifier ;)) (labeled_statement "LAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x71f0)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x71f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x71f0)" ( (binary_expression "PTR_LAB_00190ba8 + 0x71f0" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;)) }) (else_clause "else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" else (compound_statement "{\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" { (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" identifier = false) ;) (labeled_statement "LAB_00107540:\n      puVar14 = &local_40;" statement_identifier : (expression_statement "puVar14 = &local_40;" (assignment_expression "puVar14 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;)) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" identifier = number_literal) ;) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90)" identifier = (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7e90)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7e90)" ( (binary_expression "PTR_LAB_00190ba8 + 0x7e90" identifier + number_literal) )))) ;) (while_statement "while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }" { (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" identifier = (binary_expression "iVar17 + 1" identifier + number_literal)) ;) (expression_statement "(*pcVar8)(iVar9,iVar17,puVar14);" (call_expression "(*pcVar8)(iVar9,iVar17,puVar14)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(iVar9,iVar17,puVar14)" ( identifier , identifier , identifier ))) ;) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" identifier = (binary_expression "puVar14 + 1" identifier + number_literal)) ;) (if_statement "if (iVar17 == 5) break;" if (parenthesized_expression "(iVar17 == 5)" ( (binary_expression "iVar17 == 5" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }" if (parenthesized_expression "(*(int *)(param_1 + 0x24) << 6 < 0)" ( (binary_expression "*(int *)(param_1 + 0x24) << 6 < 0" (binary_expression "*(int *)(param_1 + 0x24) << 6" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) << number_literal) < number_literal) )) (compound_statement "{\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) })) (expression_statement "**(undefined4 **)(iVar11 + 0xc) = local_40;" (assignment_expression "**(undefined4 **)(iVar11 + 0xc) = local_40" (pointer_expression "**(undefined4 **)(iVar11 + 0xc)" * (pointer_expression "*(undefined4 **)(iVar11 + 0xc)" * (cast_expression "(undefined4 **)(iVar11 + 0xc)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) = identifier) ;) (if_statement "if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }" { (expression_statement "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (assignment_expression "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar7 + 0xc" (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;) (expression_statement "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;" (assignment_expression "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar17 + 0x4e) | 4" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "bVar6 = *(byte *)(param_1 + 0x4e);" (assignment_expression "bVar6 = *(byte *)(param_1 + 0x4e)" identifier = (pointer_expression "*(byte *)(param_1 + 0x4e)" * (cast_expression "(byte *)(param_1 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4e)" ( (binary_expression "param_1 + 0x4e" identifier + number_literal) ))))) ;) (labeled_statement "LAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;" statement_identifier : (expression_statement "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;" (assignment_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6" (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d)" * (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4d)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4d)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) = identifier) ;)) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar17 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar17 + 0x50)" identifier = (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) ))))) ;) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" identifier = identifier) ;) (labeled_statement "joined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;" statement_identifier : (expression_statement "PTR_LAB_00190ba8 = puVar2;" (assignment_expression "PTR_LAB_00190ba8 = puVar2" identifier = identifier) ;)) (if_statement "if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }" { (if_statement "if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }" if (parenthesized_expression "(local_38 < 0)" ( (binary_expression "local_38 < 0" identifier < number_literal) )) (compound_statement "{\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }" { (if_statement "if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }" if (parenthesized_expression "(local_38 == -0x80000000)" ( (binary_expression "local_38 == -0x80000000" identifier == number_literal) )) (compound_statement "{\n              local_38 = 0x7fffffff;\n            }" { (expression_statement "local_38 = 0x7fffffff;" (assignment_expression "local_38 = 0x7fffffff" identifier = number_literal) ;) }) (else_clause "else {\n              local_38 = -local_38;\n            }" else (compound_statement "{\n              local_38 = -local_38;\n            }" { (expression_statement "local_38 = -local_38;" (assignment_expression "local_38 = -local_38" identifier = (unary_expression "-local_38" - identifier)) ;) }))) }) (else_clause "else if (local_38 == 0) {\n            local_38 = -2000;\n          }" else (if_statement "if (local_38 == 0) {\n            local_38 = -2000;\n          }" if (parenthesized_expression "(local_38 == 0)" ( (binary_expression "local_38 == 0" identifier == number_literal) )) (compound_statement "{\n            local_38 = -2000;\n          }" { (expression_statement "local_38 = -2000;" (assignment_expression "local_38 = -2000" identifier = number_literal) ;) })))) (expression_statement "*(int *)(iVar17 + 0x50) = local_38;" (assignment_expression "*(int *)(iVar17 + 0x50) = local_38" (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 "(*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));" (call_expression "(*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50))" (parenthesized_expression "(*(code *)(puVar2 + 0x797c))" ( (pointer_expression "*(code *)(puVar2 + 0x797c)" * (cast_expression "(code *)(puVar2 + 0x797c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar2 + 0x797c)" ( (binary_expression "puVar2 + 0x797c" identifier + number_literal) )))) )) (argument_list "(*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50))" ( (pointer_expression "*(undefined4 *)(iVar11 + 4)" * (cast_expression "(undefined4 *)(iVar11 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50)" * (cast_expression "(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x50)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x50" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) ))) ;) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) })) (expression_statement "*(char *)(iVar17 + 0x4c) = (char)local_3c;" (assignment_expression "*(char *)(iVar17 + 0x4c) = (char)local_3c" (pointer_expression "*(char *)(iVar17 + 0x4c)" * (cast_expression "(char *)(iVar17 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4c)" ( (binary_expression "iVar17 + 0x4c" identifier + number_literal) )))) = (cast_expression "(char)local_3c" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);" (assignment_expression "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }" { (expression_statement "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c)" * (cast_expression "(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) = number_literal) ;) (expression_statement "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);" (assignment_expression "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" identifier = (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" * (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) })) (if_statement "if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" if (parenthesized_expression "(4 < bVar6)" ( (binary_expression "4 < bVar6" number_literal < identifier) )) (compound_statement "{\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" { (expression_statement "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;" (assignment_expression "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" identifier + number_literal)) ;) (goto_statement "goto LAB_00107954;" goto statement_identifier ;) })) (if_statement "if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }" if (parenthesized_expression "((param_2 == 0) && (3 < local_3c))" ( (binary_expression "(param_2 == 0) && (3 < local_3c)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) && (parenthesized_expression "(3 < local_3c)" ( (binary_expression "3 < local_3c" number_literal < identifier) ))) )) (compound_statement "{\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }" { (expression_statement "*(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;" (assignment_expression "*(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) = (binary_expression "*(uint *)(param_1 + 0x24) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x24)" * (cast_expression "(uint *)(param_1 + 0x24)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) & number_literal)) ;) })) (expression_statement "iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);" (assignment_expression "iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" identifier = (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x2e9c)" * (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x2e9c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bc4 + -0x2e9c)" ( (binary_expression "PTR_LAB_00190bc4 + -0x2e9c" identifier + number_literal) )))) )) (argument_list "(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074" identifier + number_literal) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier) )))) , identifier )))) ;) (expression_statement "uVar15 = *(undefined4 *)(param_1 + 0x140);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 0x140)" identifier = (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x140) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = number_literal) ;) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) (expression_statement "iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);" (assignment_expression "iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" identifier = (call_expression "sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" identifier (argument_list "(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" ( identifier , identifier , (binary_expression "puVar16 + 0x2fc" identifier + number_literal) , (pointer_expression "&local_68" & identifier) , number_literal )))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x140) = uVar15;" (assignment_expression "*(undefined4 *)(param_1 + 0x140) = uVar15" (pointer_expression "*(undefined4 *)(param_1 + 0x140)" * (cast_expression "(undefined4 *)(param_1 + 0x140)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x140)" ( (binary_expression "param_1 + 0x140" identifier + number_literal) )))) = identifier) ;) (if_statement "if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (compound_statement "{\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" { (if_statement "if (iVar9 != 0) goto LAB_001076a8;" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001076a8;" goto statement_identifier ;)) (labeled_statement "LAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" statement_identifier : (if_statement "if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" if (parenthesized_expression "(*(char *)(param_1 + 0x51) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x51) != '\0'" (pointer_expression "*(char *)(param_1 + 0x51)" * (cast_expression "(char *)(param_1 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x51)" ( (binary_expression "param_1 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" { (labeled_statement "LAB_001076d4:\n            iVar17 = 7;" statement_identifier : (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" identifier = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))" ( (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x236c)" * (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x236c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bb8 + -0x236c)" ( (binary_expression "PTR_LAB_00190bb8 + -0x236c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) }))) (if_statement "if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;" if (parenthesized_expression "(*(int *)(param_1 + 0x24) << 4 < 0)" ( (binary_expression "*(int *)(param_1 + 0x24) << 4 < 0" (binary_expression "*(int *)(param_1 + 0x24) << 4" (pointer_expression "*(int *)(param_1 + 0x24)" * (cast_expression "(int *)(param_1 + 0x24)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x24)" ( (binary_expression "param_1 + 0x24" identifier + number_literal) )))) << number_literal) < number_literal) )) (goto_statement "goto LAB_001078d4;" goto statement_identifier ;)) (goto_statement "goto LAB_00107700;" goto statement_identifier ;) })) (expression_statement "iVar17 = local_5c;" (assignment_expression "iVar17 = local_5c" identifier = identifier) ;) (if_statement "if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }" if (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }" { (labeled_statement "LAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);" statement_identifier : (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x2368)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x2368)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + -0x2368)" ( (binary_expression "PTR_LAB_00190ba8 + -0x2368" identifier + number_literal) )))) )) (argument_list "(param_1,iVar9)" ( identifier , identifier ))) ;)) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" identifier = identifier) ;) })) (if_statement "if (iVar17 != 0) goto LAB_001076c8;" if (parenthesized_expression "(iVar17 != 0)" ( (binary_expression "iVar17 != 0" identifier != number_literal) )) (goto_statement "goto LAB_001076c8;" goto statement_identifier ;)) (expression_statement "iVar10 = param_2;" (assignment_expression "iVar10 = param_2" identifier = identifier) ;) (expression_statement "FUN_001071ec(param_1,param_2);" (call_expression "FUN_001071ec(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (if_statement "if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;" if (parenthesized_expression "(*(char *)(param_1 + 0x51) != '\0')" ( (binary_expression "*(char *)(param_1 + 0x51) != '\0'" (pointer_expression "*(char *)(param_1 + 0x51)" * (cast_expression "(char *)(param_1 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x51)" ( (binary_expression "param_1 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_001076d4;" goto statement_identifier ;)) (labeled_statement "LAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" statement_identifier : (expression_statement "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (assignment_expression "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" identifier = (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" * (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" ( (binary_expression "*(int *)(param_1 + 0x10) + iVar7 + 0xc" (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + identifier) + number_literal) ))))) ;)) (expression_statement "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;" (assignment_expression "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) = (binary_expression "*(ushort *)(iVar17 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" * (cast_expression "(ushort *)(iVar17 + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) | number_literal)) ;) (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) (expression_statement "iVar17 = iVar4;" (assignment_expression "iVar17 = iVar4" identifier = identifier) ;) }) (else_clause "else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" else (compound_statement "{\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" { (expression_statement "uVar5 = (undefined1)(local_30 & 3);" (assignment_expression "uVar5 = (undefined1)(local_30 & 3)" identifier = (call_expression "(undefined1)(local_30 & 3)" (parenthesized_expression "(undefined1)" ( identifier )) (argument_list "(local_30 & 3)" ( (binary_expression "local_30 & 3" identifier & number_literal) )))) ;) (if_statement "if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" { (if_statement "if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }" if (parenthesized_expression "((local_30 & 3) == 0)" ( (binary_expression "(local_30 & 3) == 0" (parenthesized_expression "(local_30 & 3)" ( (binary_expression "local_30 & 3" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n            uVar5 = 1;\n          }" { (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) })) (expression_statement "*(undefined1 *)(param_1 + 0x4e) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x4e) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x4e)" * (cast_expression "(undefined1 *)(param_1 + 0x4e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4e)" ( (binary_expression "param_1 + 0x4e" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;" (assignment_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5" (pointer_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d)" * (cast_expression "(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4d)" ( (binary_expression "*(int *)(iVar11 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) = identifier) ;) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" identifier = (pointer_expression "*(int *)(iVar11 + 0xc)" * (cast_expression "(int *)(iVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 0xc)" ( (binary_expression "iVar11 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(iVar17 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar17 + 0x50)" identifier = (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) ))))) ;) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" identifier = identifier) ;) (goto_statement "goto joined_r0x001075d8;" goto statement_identifier ;) })) (expression_statement "bVar6 = *(byte *)(param_1 + 0x4e);" (assignment_expression "bVar6 = *(byte *)(param_1 + 0x4e)" identifier = (pointer_expression "*(byte *)(param_1 + 0x4e)" * (cast_expression "(byte *)(param_1 + 0x4e)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x4e)" ( (binary_expression "param_1 + 0x4e" identifier + number_literal) ))))) ;) (if_statement "if (local_30 == bVar6) goto LAB_001077f8;" if (parenthesized_expression "(local_30 == bVar6)" ( (binary_expression "local_30 == bVar6" identifier == identifier) )) (goto_statement "goto LAB_001077f8;" goto statement_identifier ;)) (expression_statement "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;" (assignment_expression "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" identifier + number_literal)) ;) (labeled_statement "LAB_00107954:\n        iVar17 = 1;" statement_identifier : (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" identifier = number_literal) ;)) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x106c" identifier + number_literal) )))) )) (argument_list "(param_3,param_1,puVar16)" ( identifier , identifier , identifier ))) ;) (labeled_statement "LAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);" statement_identifier : (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;)) }))) (if_statement "if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }" { (expression_statement "(*(code *)(PTR_LAB_00190bbc + 0x2eac))();" (call_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))" ( (pointer_expression "*(code *)(PTR_LAB_00190bbc + 0x2eac)" * (cast_expression "(code *)(PTR_LAB_00190bbc + 0x2eac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bbc + 0x2eac)" ( (binary_expression "PTR_LAB_00190bbc + 0x2eac" identifier + number_literal) )))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" identifier = (pointer_expression "*(int *)(iVar11 + 4)" * (cast_expression "(int *)(iVar11 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar11 + 4)" ( (binary_expression "iVar11 + 4" identifier + number_literal) ))))) ;) })) (if_statement "if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;" if (parenthesized_expression "((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))" ( (binary_expression "(*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0)" (parenthesized_expression "(*(char *)(iVar7 + 9) != '\0')" ( (binary_expression "*(char *)(iVar7 + 9) != '\0'" (pointer_expression "*(char *)(iVar7 + 9)" * (cast_expression "(char *)(iVar7 + 9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 9)" ( (binary_expression "iVar7 + 9" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "(iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0)" ( (comma_expression "iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0" (assignment_expression "iVar4 = *(int *)(iVar7 + 0xc) + -1" identifier = (binary_expression "*(int *)(iVar7 + 0xc) + -1" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) + number_literal)) , (comma_expression "*(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar4" (pointer_expression "*(int *)(iVar7 + 0xc)" * (cast_expression "(int *)(iVar7 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 0xc)" ( (binary_expression "iVar7 + 0xc" identifier + number_literal) )))) = identifier) , (binary_expression "iVar4 == 0" identifier == number_literal))) ))) )) (goto_statement "goto LAB_001079bc;" goto statement_identifier ;)) }))) (if_statement "if (iVar17 == 0) goto LAB_0010775c;" if (parenthesized_expression "(iVar17 == 0)" ( (binary_expression "iVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0010775c;" goto statement_identifier ;)) })) (labeled_statement "LAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" statement_identifier : (if_statement "if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" if (parenthesized_expression "(((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0))" ( (binary_expression "((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" (parenthesized_expression "((iVar17 == 7) || (iVar17 == 0xc0a))" ( (binary_expression "(iVar17 == 7) || (iVar17 == 0xc0a)" (parenthesized_expression "(iVar17 == 7)" ( (binary_expression "iVar17 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar17 == 0xc0a)" ( (binary_expression "iVar17 == 0xc0a" identifier == number_literal) ))) )) && (parenthesized_expression "((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" ( (binary_expression "(*(uint *)(param_1 + 0x50) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x50) & 0xffff00)" ( (binary_expression "*(uint *)(param_1 + 0x50) & 0xffff00" (pointer_expression "*(uint *)(param_1 + 0x50)" * (cast_expression "(uint *)(param_1 + 0x50)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x50)" ( (binary_expression "param_1 + 0x50" identifier + number_literal) )))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" { (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))" ( (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x82c)" * (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x82c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190ba8 + 0x82c)" ( (binary_expression "PTR_LAB_00190ba8 + 0x82c" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) }))) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))" ( (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x2180)" * (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x2180)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00190bb8 + -0x2180)" ( (binary_expression "PTR_LAB_00190bb8 + -0x2180" identifier + number_literal) )))) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (expression_statement "iVar10 = param_2;" (assignment_expression "iVar10 = param_2" identifier = identifier) ;) (labeled_statement "LAB_0010775c:\n  iVar4 = *(int *)puVar3;" statement_identifier : (expression_statement "iVar4 = *(int *)puVar3;" (assignment_expression "iVar4 = *(int *)puVar3" identifier = (pointer_expression "*(int *)puVar3" * (cast_expression "(int *)puVar3" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) (expression_statement "*(undefined1 *)(param_1 + 0xa5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xa5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xa5)" * (cast_expression "(undefined1 *)(param_1 + 0xa5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xa5)" ( (binary_expression "param_1 + 0xa5" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (local_2c == iVar4) {\n    return iVar17;\n  }" if (parenthesized_expression "(local_2c == iVar4)" ( (binary_expression "local_2c == iVar4" identifier == identifier) )) (compound_statement "{\n    return iVar17;\n  }" { (return_statement "return iVar17;" return identifier ;) })) (expression_statement "iVar17 = local_2c;" (assignment_expression "iVar17 = local_2c" identifier = identifier) ;) (expression_statement "puVar16 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar16 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar16 = puVar16 + 0x90f2c;" (assignment_expression "puVar16 = puVar16 + 0x90f2c" identifier = (binary_expression "puVar16 + 0x90f2c" identifier + number_literal)) ;) (expression_statement "uVar12 = *(uint *)(iVar17 + 0x18);" (assignment_expression "uVar12 = *(uint *)(iVar17 + 0x18)" identifier = (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);" (assignment_expression "*(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" (pointer_expression "*(undefined1 *)(iVar17 + 0x4e)" * (cast_expression "(undefined1 *)(iVar17 + 0x4e)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x4e)" ( (binary_expression "iVar17 + 0x4e" identifier + number_literal) )))) = (pointer_expression "*(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" * (cast_expression "(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 0x10) + 0xc)" ( (binary_expression "*(int *)(iVar17 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }" if (parenthesized_expression "(((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0))" ( (binary_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)" (parenthesized_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0)" ( (binary_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0" (parenthesized_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1)" ( (binary_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1" (pointer_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" * (cast_expression "(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc)" * (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 0x10) + 0xc)" ( (binary_expression "*(int *)(iVar17 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar4 = FUN_00107414(), iVar4 != 0)" ( (comma_expression "iVar4 = FUN_00107414(), iVar4 != 0" (assignment_expression "iVar4 = FUN_00107414()" identifier = (call_expression "FUN_00107414()" identifier (argument_list "()" ( )))) , (binary_expression "iVar4 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n    return iVar4;\n  }" { (return_statement "return iVar4;" return identifier ;) })) (expression_statement "iVar4 = *(int *)(iVar17 + 0x14) + -1;" (assignment_expression "iVar4 = *(int *)(iVar17 + 0x14) + -1" identifier = (binary_expression "*(int *)(iVar17 + 0x14) + -1" (pointer_expression "*(int *)(iVar17 + 0x14)" * (cast_expression "(int *)(iVar17 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x14)" ( (binary_expression "iVar17 + 0x14" identifier + number_literal) )))) + number_literal)) ;) (if_statement "if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }" if (parenthesized_expression "(0 < iVar4)" ( (binary_expression "0 < iVar4" number_literal < identifier) )) (compound_statement "{\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }" { (do_statement "do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);" do (compound_statement "{\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    }" { (if_statement "if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }" if (parenthesized_expression "(((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0))" ( (binary_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)" (parenthesized_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0)" ( (binary_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0" (parenthesized_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1)" ( (binary_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1" (pointer_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" * (cast_expression "(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" ( (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" * (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" ( (binary_expression "*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc" (binary_expression "*(int *)(iVar17 + 0x10) + iVar4 * 0x10" (pointer_expression "*(int *)(iVar17 + 0x10)" * (cast_expression "(int *)(iVar17 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x10)" ( (binary_expression "iVar17 + 0x10" identifier + number_literal) )))) + (binary_expression "iVar4 * 0x10" identifier * number_literal)) + number_literal) )))) + number_literal) )))) & number_literal) )) == number_literal) )) && (parenthesized_expression "(iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)" ( (comma_expression "iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0" (assignment_expression "iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16)" identifier = (call_expression "FUN_00107414(iVar17,iVar4,iVar10,0,puVar16)" identifier (argument_list "(iVar17,iVar4,iVar10,0,puVar16)" ( identifier , identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        return iVar7;\n      }" { (return_statement "return iVar7;" return identifier ;) })) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" identifier = (binary_expression "iVar4 + -1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) })) (if_statement "if ((uVar12 & 1) != 0) {\n    return 0;\n  }" if (parenthesized_expression "((uVar12 & 1) != 0)" ( (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" ( (binary_expression "uVar12 & 1" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;" (assignment_expression "*(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe" (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) = (binary_expression "*(uint *)(iVar17 + 0x18) & 0xfffffffe" (pointer_expression "*(uint *)(iVar17 + 0x18)" * (cast_expression "(uint *)(iVar17 + 0x18)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar17 + 0x18)" ( (binary_expression "iVar17 + 0x18" identifier + number_literal) )))) & number_literal)) ;) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE 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 (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 (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 ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT , (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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) )))) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (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)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( 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 IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (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) )))) == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) , (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) , (binary_expression IDENT != LIT))) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (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 (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 = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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)) ;) (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 (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) )))) = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = 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) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (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 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 (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , (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) )))) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) , LIT )))) ;) (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 IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) << LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) (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 (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }))) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( ))) ;) (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) )))) != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) , (comma_expression (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) , (binary_expression IDENT == LIT))) ))) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (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) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) ))))) ;) (if_statement if (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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (if_statement if (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 (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) )))) + (binary_expression IDENT * LIT)) + LIT) )))) + LIT) )))) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return 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)) ;) (return_statement return LIT ;) })))
(function_definition "int FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}" (primitive_type "int") (function_declarator "FUN_00107414(int param_1,int param_2,undefined4 param_3,undefined4 param_4)" (identifier "FUN_00107414") (parameter_list "(int param_1,int param_2,undefined4 param_3,undefined4 param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  undefined1 uVar5;\n  int iVar4;\n  byte bVar6;\n  int iVar7;\n  code *pcVar8;\n  int iVar9;\n  int iVar10;\n  int iVar11;\n  uint uVar12;\n  undefined *puVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  undefined *puVar16;\n  int iVar17;\n  int local_68;\n  undefined4 local_64;\n  int local_60;\n  int local_5c;\n  undefined4 local_58;\n  undefined4 local_54;\n  undefined *local_50;\n  undefined *local_4c;\n  undefined *local_48;\n  undefined4 local_44;\n  undefined4 local_40;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  uint local_30;\n  int local_2c;\n  \n  *(undefined1 *)(param_1 + 0xa5) = 1;\n  puVar3 = PTR___stack_chk_guard_00190e24;\n  puVar16 = PTR_LAB_00190c64;\n  local_2c = *(int *)PTR___stack_chk_guard_00190e24;\n  if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }\n  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;\n  iVar10 = 3;\n  local_44 = 0;\n  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;\n  local_5c = 0;\n  local_54 = 0;\n  local_68 = param_1;\n  local_64 = param_3;\n  local_60 = param_2;\n  local_58 = param_4;\n  local_50 = puVar13;\n  FUN_001202fc(&local_68,3,&local_50,0);\n  iVar4 = local_5c;\n  iVar17 = local_5c;\n  if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }\nLAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }\n  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);\n  iVar10 = param_2;\nLAB_0010775c:\n  iVar4 = *(int *)puVar3;\n  *(undefined1 *)(param_1 + 0xa5) = 0;\n  if (local_2c == iVar4) {\n    return iVar17;\n  }\n  iVar17 = local_2c;\n  puVar16 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar16 = puVar16 + 0x90f2c;\n  uVar12 = *(uint *)(iVar17 + 0x18);\n  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);\n  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }\n  iVar4 = *(int *)(iVar17 + 0x14) + -1;\n  if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }\n  if ((uVar12 & 1) != 0) {\n    return 0;\n  }\n  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;\n  return 0;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 uVar5;" (type_identifier "undefined1") (identifier "uVar5") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "byte bVar6;" (type_identifier "byte") (identifier "bVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "int iVar17;" (primitive_type "int") (identifier "iVar17") (; ";")) (declaration "int local_68;" (primitive_type "int") (identifier "local_68") (; ";")) (declaration "undefined4 local_64;" (type_identifier "undefined4") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "int local_5c;" (primitive_type "int") (identifier "local_5c") (; ";")) (declaration "undefined4 local_58;" (type_identifier "undefined4") (identifier "local_58") (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined *local_50;" (type_identifier "undefined") (pointer_declarator "*local_50" (* "*") (identifier "local_50")) (; ";")) (declaration "undefined *local_4c;" (type_identifier "undefined") (pointer_declarator "*local_4c" (* "*") (identifier "local_4c")) (; ";")) (declaration "undefined *local_48;" (type_identifier "undefined") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 local_44;" (type_identifier "undefined4") (identifier "local_44") (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "uint local_30;" (type_identifier "uint") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "*(undefined1 *)(param_1 + 0xa5) = 1;" (assignment_expression "*(undefined1 *)(param_1 + 0xa5) = 1" (pointer_expression "*(undefined1 *)(param_1 + 0xa5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xa5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa5)" (( "(") (binary_expression "param_1 + 0xa5" (identifier "param_1") (+ "+") (number_literal "0xa5")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "puVar3 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar3 = PTR___stack_chk_guard_00190e24" (identifier "puVar3") (= "=") (identifier "PTR___stack_chk_guard_00190e24")) (; ";")) (expression_statement "puVar16 = PTR_LAB_00190c64;" (assignment_expression "puVar16 = PTR_LAB_00190c64" (identifier "puVar16") (= "=") (identifier "PTR_LAB_00190c64")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00190e24" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00190e24" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00190e24" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00190e24")))) (; ";")) (if_statement "if (param_2 == 1) {\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }\n  else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" (if "if") (parenthesized_expression "(param_2 == 1)" (( "(") (binary_expression "param_2 == 1" (identifier "param_2") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n    puVar13 = PTR_LAB_00190958 + 0x36ec;\n  }" ({ "{") (expression_statement "puVar13 = PTR_LAB_00190958 + 0x36ec;" (assignment_expression "puVar13 = PTR_LAB_00190958 + 0x36ec" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_00190958 + 0x36ec" (identifier "PTR_LAB_00190958") (+ "+") (number_literal "0x36ec"))) (; ";")) (} "}")) (else_clause "else {\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" (else "else") (compound_statement "{\n    puVar13 = PTR_LAB_00190958 + 0x2e2c;\n  }" ({ "{") (expression_statement "puVar13 = PTR_LAB_00190958 + 0x2e2c;" (assignment_expression "puVar13 = PTR_LAB_00190958 + 0x2e2c" (identifier "puVar13") (= "=") (binary_expression "PTR_LAB_00190958 + 0x2e2c" (identifier "PTR_LAB_00190958") (+ "+") (number_literal "0x2e2c"))) (; ";")) (} "}")))) (expression_statement "local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;" (assignment_expression "local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" (identifier "local_4c") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "0x1448"))) (; ";")) (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" (identifier "iVar10") (= "=") (number_literal "3")) (; ";")) (expression_statement "local_44 = 0;" (assignment_expression "local_44 = 0" (identifier "local_44") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;" (assignment_expression "local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" (identifier "local_48") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "-0x3118"))) (; ";")) (expression_statement "local_5c = 0;" (assignment_expression "local_5c = 0" (identifier "local_5c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_54 = 0;" (assignment_expression "local_54 = 0" (identifier "local_54") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" (identifier "local_68") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_64 = param_3;" (assignment_expression "local_64 = param_3" (identifier "local_64") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" (identifier "local_60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_58 = param_4;" (assignment_expression "local_58 = param_4" (identifier "local_58") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_50 = puVar13;" (assignment_expression "local_50 = puVar13" (identifier "local_50") (= "=") (identifier "puVar13")) (; ";")) (expression_statement "FUN_001202fc(&local_68,3,&local_50,0);" (call_expression "FUN_001202fc(&local_68,3,&local_50,0)" (identifier "FUN_001202fc") (argument_list "(&local_68,3,&local_50,0)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "3") (, ",") (pointer_expression "&local_50" (& "&") (identifier "local_50")) (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar4 = local_5c;" (assignment_expression "iVar4 = local_5c" (identifier "iVar4") (= "=") (identifier "local_5c")) (; ";")) (expression_statement "iVar17 = local_5c;" (assignment_expression "iVar17 = local_5c" (identifier "iVar17") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if (local_5c == 0) {\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }" (if "if") (parenthesized_expression "(local_5c == 0)" (( "(") (binary_expression "local_5c == 0" (identifier "local_5c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar7 = param_2 * 0x10;\n    iVar11 = *(int *)(param_1 + 0x10) + iVar7;\n    iVar9 = *(int *)(iVar11 + 4);\n    if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }\n    if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }\n    iVar10 = param_1;\n    if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }\n    if (iVar17 == 0) goto LAB_0010775c;\n  }" ({ "{") (expression_statement "iVar7 = param_2 * 0x10;" (assignment_expression "iVar7 = param_2 * 0x10" (identifier "iVar7") (= "=") (binary_expression "param_2 * 0x10" (identifier "param_2") (* "*") (number_literal "0x10"))) (; ";")) (expression_statement "iVar11 = *(int *)(param_1 + 0x10) + iVar7;" (assignment_expression "iVar11 = *(int *)(param_1 + 0x10) + iVar7" (identifier "iVar11") (= "=") (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if (iVar9 == 0) {\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);\n      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;\n      goto LAB_0010775c;\n    }" ({ "{") (expression_statement "iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);" (assignment_expression "iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + 0x1c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + 0x1c)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + 0x1c" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0x1c")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;" (assignment_expression "*(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar4 + 0x4e)" (* "*") (cast_expression "(ushort *)(iVar4 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4e)" (( "(") (binary_expression "iVar4 + 0x4e" (identifier "iVar4") (+ "+") (number_literal "0x4e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar4 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar4 + 0x4e)" (* "*") (cast_expression "(ushort *)(iVar4 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x4e)" (( "(") (binary_expression "iVar4 + 0x4e" (identifier "iVar4") (+ "+") (number_literal "0x4e")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (goto_statement "goto LAB_0010775c;" (goto "goto") (statement_identifier "LAB_0010775c") (; ";")) (} "}"))) (if_statement "if (*(char *)(iVar9 + 9) != '\0') {\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 9) != '\0'" (pointer_expression "*(char *)(iVar9 + 9)" (* "*") (cast_expression "(char *)(iVar9 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 9)" (( "(") (binary_expression "iVar9 + 9" (identifier "iVar9") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();\n      iVar9 = *(int *)(iVar11 + 4);\n    }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x7108))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x7108))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x7108)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7108)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7108)" (( "(") (binary_expression "PTR_LAB_00190ba8 + 0x7108" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "0x7108")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (expression_statement "iVar10 = param_1;" (assignment_expression "iVar10 = param_1" (identifier "iVar10") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (*(char *)(iVar9 + 8) == '\0') {\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }\n    else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" (if "if") (parenthesized_expression "(*(char *)(iVar9 + 8) == '\0')" (( "(") (binary_expression "*(char *)(iVar9 + 8) == '\0'" (pointer_expression "*(char *)(iVar9 + 8)" (* "*") (cast_expression "(char *)(iVar9 + 8)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar9 + 8)" (( "(") (binary_expression "iVar9 + 8" (identifier "iVar9") (+ "+") (number_literal "8")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);\n      if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }\n      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);\n      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);\n      iVar4 = *(int *)(iVar11 + 4);\n      if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;\nLAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();\n    }" ({ "{") (expression_statement "iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);" (assignment_expression "iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0)" (identifier "iVar17") (= "=") (call_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bcc + 0x7924))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bcc + 0x7924)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bcc + 0x7924)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bcc + 0x7924)" (( "(") (binary_expression "PTR_LAB_00190bcc + 0x7924" (identifier "PTR_LAB_00190bcc") (+ "+") (number_literal "0x7924")) () ")")))) () ")")) (argument_list "(iVar9,0,0)" (( "(") (identifier "iVar9") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar17 == 0) {\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar9 = *(int *)(iVar11 + 4);\n        bVar1 = true;\n        goto LAB_00107540;\n      }" ({ "{") (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "bVar1 = true;" (assignment_expression "bVar1 = true" (identifier "bVar1") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_00107540;" (goto "goto") (statement_identifier "LAB_00107540") (; ";")) (} "}"))) (expression_statement "uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);" (assignment_expression "uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17)" (identifier "uVar15") (= "=") (call_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba4 + -0x7ac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba4 + -0x7ac)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba4 + -0x7ac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba4 + -0x7ac)" (( "(") (binary_expression "PTR_LAB_00190ba4 + -0x7ac" (identifier "PTR_LAB_00190ba4") (+ "+") (number_literal "-0x7ac")) () ")")))) () ")")) (argument_list "(iVar17)" (( "(") (identifier "iVar17") () ")")))) (; ";")) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" (( "(") (binary_expression "PTR_LAB_00190ba8 + 0x106c" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "0x106c")) () ")")))) () ")")) (argument_list "(param_3,param_1,uVar15)" (( "(") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (identifier "uVar15") () ")"))) (; ";")) (expression_statement "iVar4 = *(int *)(iVar11 + 4);" (assignment_expression "iVar4 = *(int *)(iVar11 + 4)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (if_statement "if ((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))\n      goto LAB_00107730;" (if "if") (parenthesized_expression "((*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))" (( "(") (binary_expression "(*(char *)(iVar4 + 9) == '\0') ||\n         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0)" (parenthesized_expression "(*(char *)(iVar4 + 9) == '\0')" (( "(") (binary_expression "*(char *)(iVar4 + 9) == '\0'" (pointer_expression "*(char *)(iVar4 + 9)" (* "*") (cast_expression "(char *)(iVar4 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 9)" (( "(") (binary_expression "iVar4 + 9" (identifier "iVar4") (+ "+") (number_literal "9")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0)" (( "(") (comma_expression "iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0" (assignment_expression "iVar7 = *(int *)(iVar4 + 0xc) + -1" (identifier "iVar7") (= "=") (binary_expression "*(int *)(iVar4 + 0xc) + -1" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "-1"))) (, ",") (comma_expression "*(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0" (assignment_expression "*(int *)(iVar4 + 0xc) = iVar7" (pointer_expression "*(int *)(iVar4 + 0xc)" (* "*") (cast_expression "(int *)(iVar4 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar7")) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_00107730;" (goto "goto") (statement_identifier "LAB_00107730") (; ";"))) (labeled_statement "LAB_001079bc:\n      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" (statement_identifier "LAB_001079bc") (: ":") (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))();" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x71f0))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x71f0)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x71f0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + 0x71f0)" (( "(") (binary_expression "PTR_LAB_00190ba8 + 0x71f0" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "0x71f0")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}")) (else_clause "else {\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" (else "else") (compound_statement "{\n      bVar1 = false;\nLAB_00107540:\n      puVar14 = &local_40;\n      iVar17 = 0;\n      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);\n      while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }\n      if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }\n      **(undefined4 **)(iVar11 + 0xc) = local_40;\n      if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }\n      if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;\n    }" ({ "{") (expression_statement "bVar1 = false;" (assignment_expression "bVar1 = false" (identifier "bVar1") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_00107540:\n      puVar14 = &local_40;" (statement_identifier "LAB_00107540") (: ":") (expression_statement "puVar14 = &local_40;" (assignment_expression "puVar14 = &local_40" (identifier "puVar14") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";"))) (expression_statement "iVar17 = 0;" (assignment_expression "iVar17 = 0" (identifier "iVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);" (assignment_expression "pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x7e90)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + 0x7e90)" (( "(") (binary_expression "PTR_LAB_00190ba8 + 0x7e90" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "0x7e90")) () ")")))) (; ";")) (while_statement "while( true ) {\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        iVar17 = iVar17 + 1;\n        (*pcVar8)(iVar9,iVar17,puVar14);\n        puVar14 = puVar14 + 1;\n        if (iVar17 == 5) break;\n        iVar9 = *(int *)(iVar11 + 4);\n      }" ({ "{") (expression_statement "iVar17 = iVar17 + 1;" (assignment_expression "iVar17 = iVar17 + 1" (identifier "iVar17") (= "=") (binary_expression "iVar17 + 1" (identifier "iVar17") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "(*pcVar8)(iVar9,iVar17,puVar14);" (call_expression "(*pcVar8)(iVar9,iVar17,puVar14)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(iVar9,iVar17,puVar14)" (( "(") (identifier "iVar9") (, ",") (identifier "iVar17") (, ",") (identifier "puVar14") () ")"))) (; ";")) (expression_statement "puVar14 = puVar14 + 1;" (assignment_expression "puVar14 = puVar14 + 1" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 1" (identifier "puVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar17 == 5) break;" (if "if") (parenthesized_expression "(iVar17 == 5)" (( "(") (binary_expression "iVar17 == 5" (identifier "iVar17") (== "==") (number_literal "5")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar9 = *(int *)(iVar11 + 4);" (assignment_expression "iVar9 = *(int *)(iVar11 + 4)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(param_1 + 0x24) << 6 < 0) {\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x24) << 6 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) << 6 < 0" (binary_expression "*(int *)(param_1 + 0x24) << 6" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (<< "<<") (number_literal "6")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n        local_40 = 0;\n        local_3c = 0;\n        local_38 = 0;\n        local_34 = 0;\n        local_30 = 0;\n      }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "**(undefined4 **)(iVar11 + 0xc) = local_40;" (assignment_expression "**(undefined4 **)(iVar11 + 0xc) = local_40" (pointer_expression "**(undefined4 **)(iVar11 + 0xc)" (* "*") (pointer_expression "*(undefined4 **)(iVar11 + 0xc)" (* "*") (cast_expression "(undefined4 **)(iVar11 + 0xc)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (= "=") (identifier "local_40")) (; ";")) (if_statement "if (local_30 == 0) {\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }\n      else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;\n        bVar6 = *(byte *)(param_1 + 0x4e);\nLAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;\n        iVar17 = *(int *)(iVar11 + 0xc);\n        iVar9 = *(int *)(iVar17 + 0x50);\n        puVar2 = PTR_LAB_00190ba8;\njoined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;\n        if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }\n        *(char *)(iVar17 + 0x4c) = (char)local_3c;\n        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }\n        if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }\n        if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }\n        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);\n        uVar15 = *(undefined4 *)(param_1 + 0x140);\n        *(undefined4 *)(param_1 + 0x140) = 0;\n        iVar10 = iVar9;\n        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);\n        *(undefined4 *)(param_1 + 0x140) = uVar15;\n        if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }\n        iVar17 = local_5c;\n        if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }\n        if (iVar17 != 0) goto LAB_001076c8;\n        iVar10 = param_2;\n        FUN_001071ec(param_1,param_2);\n        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;\nLAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);\n        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;\n        iVar7 = *(int *)(iVar11 + 4);\n        iVar17 = iVar4;\n      }" ({ "{") (expression_statement "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (assignment_expression "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + iVar7 + 0xc" (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar7")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;" (assignment_expression "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar17 + 0x4e) | 4" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")")))) (| "|") (number_literal "4"))) (; ";")) (expression_statement "bVar6 = *(byte *)(param_1 + 0x4e);" (assignment_expression "bVar6 = *(byte *)(param_1 + 0x4e)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)(param_1 + 0x4e)" (* "*") (cast_expression "(byte *)(param_1 + 0x4e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4e)" (( "(") (binary_expression "param_1 + 0x4e" (identifier "param_1") (+ "+") (number_literal "0x4e")) () ")"))))) (; ";")) (labeled_statement "LAB_001077f8:\n        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;" (statement_identifier "LAB_001077f8") (: ":") (expression_statement "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;" (assignment_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6" (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4d)" (* "*") (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4d)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4d)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4d")) () ")")))) (= "=") (identifier "bVar6")) (; ";"))) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar17 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar17 + 0x50)" (identifier "iVar9") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" (identifier "puVar2") (= "=") (identifier "PTR_LAB_00190ba8")) (; ";")) (labeled_statement "joined_r0x001075d8:\n        PTR_LAB_00190ba8 = puVar2;" (statement_identifier "joined_r0x001075d8") (: ":") (expression_statement "PTR_LAB_00190ba8 = puVar2;" (assignment_expression "PTR_LAB_00190ba8 = puVar2" (identifier "PTR_LAB_00190ba8") (= "=") (identifier "puVar2")) (; ";"))) (if_statement "if (iVar9 == 0) {\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }" (if "if") (parenthesized_expression "(iVar9 == 0)" (( "(") (binary_expression "iVar9 == 0" (identifier "iVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }\n          *(int *)(iVar17 + 0x50) = local_38;\n          (*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));\n          iVar17 = *(int *)(iVar11 + 0xc);\n        }" ({ "{") (if_statement "if (local_38 < 0) {\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }\n          else if (local_38 == 0) {\n            local_38 = -2000;\n          }" (if "if") (parenthesized_expression "(local_38 < 0)" (( "(") (binary_expression "local_38 < 0" (identifier "local_38") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n            if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }\n          }" ({ "{") (if_statement "if (local_38 == -0x80000000) {\n              local_38 = 0x7fffffff;\n            }\n            else {\n              local_38 = -local_38;\n            }" (if "if") (parenthesized_expression "(local_38 == -0x80000000)" (( "(") (binary_expression "local_38 == -0x80000000" (identifier "local_38") (== "==") (number_literal "-0x80000000")) () ")")) (compound_statement "{\n              local_38 = 0x7fffffff;\n            }" ({ "{") (expression_statement "local_38 = 0x7fffffff;" (assignment_expression "local_38 = 0x7fffffff" (identifier "local_38") (= "=") (number_literal "0x7fffffff")) (; ";")) (} "}")) (else_clause "else {\n              local_38 = -local_38;\n            }" (else "else") (compound_statement "{\n              local_38 = -local_38;\n            }" ({ "{") (expression_statement "local_38 = -local_38;" (assignment_expression "local_38 = -local_38" (identifier "local_38") (= "=") (unary_expression "-local_38" (- "-") (identifier "local_38"))) (; ";")) (} "}")))) (} "}")) (else_clause "else if (local_38 == 0) {\n            local_38 = -2000;\n          }" (else "else") (if_statement "if (local_38 == 0) {\n            local_38 = -2000;\n          }" (if "if") (parenthesized_expression "(local_38 == 0)" (( "(") (binary_expression "local_38 == 0" (identifier "local_38") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            local_38 = -2000;\n          }" ({ "{") (expression_statement "local_38 = -2000;" (assignment_expression "local_38 = -2000" (identifier "local_38") (= "=") (number_literal "-2000")) (; ";")) (} "}"))))) (expression_statement "*(int *)(iVar17 + 0x50) = local_38;" (assignment_expression "*(int *)(iVar17 + 0x50) = local_38" (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 "local_38")) (; ";")) (expression_statement "(*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));" (call_expression "(*(code *)(puVar2 + 0x797c))\n                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50))" (parenthesized_expression "(*(code *)(puVar2 + 0x797c))" (( "(") (pointer_expression "*(code *)(puVar2 + 0x797c)" (* "*") (cast_expression "(code *)(puVar2 + 0x797c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar2 + 0x797c)" (( "(") (binary_expression "puVar2 + 0x797c" (identifier "puVar2") (+ "+") (number_literal "0x797c")) () ")")))) () ")")) (argument_list "(*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50))" (( "(") (pointer_expression "*(undefined4 *)(iVar11 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar11 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50)" (* "*") (cast_expression "(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x50)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) + 0x50" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x50")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (} "}"))) (expression_statement "*(char *)(iVar17 + 0x4c) = (char)local_3c;" (assignment_expression "*(char *)(iVar17 + 0x4c) = (char)local_3c" (pointer_expression "*(char *)(iVar17 + 0x4c)" (* "*") (cast_expression "(char *)(iVar17 + 0x4c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4c)" (( "(") (binary_expression "iVar17 + 0x4c" (identifier "iVar17") (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (cast_expression "(char)local_3c" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_3c"))) (; ";")) (expression_statement "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);" (assignment_expression "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (if_statement "if (bVar6 == 0) {\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }" (if "if") (parenthesized_expression "(bVar6 == 0)" (( "(") (binary_expression "bVar6 == 0" (identifier "bVar6") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;\n          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);\n        }" ({ "{") (expression_statement "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;" (assignment_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1" (pointer_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c)" (* "*") (cast_expression "(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4c")) () ")")))) (= "=") (number_literal "1")) (; ";")) (expression_statement "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);" (assignment_expression "bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" (* "*") (cast_expression "(byte *)(*(int *)(iVar11 + 0xc) + 0x4c)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4c)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) + 0x4c" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4c")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (4 < bVar6) {\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" (if "if") (parenthesized_expression "(4 < bVar6)" (( "(") (binary_expression "4 < bVar6" (number_literal "4") (< "<") (identifier "bVar6")) () ")")) (compound_statement "{\n          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;\n          goto LAB_00107954;\n        }" ({ "{") (expression_statement "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;" (assignment_expression "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" (identifier "puVar16") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "-0x308c"))) (; ";")) (goto_statement "goto LAB_00107954;" (goto "goto") (statement_identifier "LAB_00107954") (; ";")) (} "}"))) (if_statement "if ((param_2 == 0) && (3 < local_3c)) {\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }" (if "if") (parenthesized_expression "((param_2 == 0) && (3 < local_3c))" (( "(") (binary_expression "(param_2 == 0) && (3 < local_3c)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(3 < local_3c)" (( "(") (binary_expression "3 < local_3c" (number_literal "3") (< "<") (identifier "local_3c")) () ")"))) () ")")) (compound_statement "{\n          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;\n        }" ({ "{") (expression_statement "*(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;" (assignment_expression "*(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (= "=") (binary_expression "*(uint *)(param_1 + 0x24) & 0xfffffffd" (pointer_expression "*(uint *)(param_1 + 0x24)" (* "*") (cast_expression "(uint *)(param_1 + 0x24)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (& "&") (number_literal "0xfffffffd"))) (; ";")) (} "}"))) (expression_statement "iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);" (assignment_expression "iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" (identifier "iVar9") (= "=") (call_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))\n                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bc4 + -0x2e9c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bc4 + -0x2e9c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bc4 + -0x2e9c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bc4 + -0x2e9c)" (( "(") (binary_expression "PTR_LAB_00190bc4 + -0x2e9c" (identifier "PTR_LAB_00190bc4") (+ "+") (number_literal "-0x2e9c")) () ")")))) () ")")) (argument_list "(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,\n                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "-0x3074")) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar7")) () ")")))) (, ",") (identifier "puVar13") () ")")))) (; ";")) (expression_statement "uVar15 = *(undefined4 *)(param_1 + 0x140);" (assignment_expression "uVar15 = *(undefined4 *)(param_1 + 0x140)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(param_1 + 0x140)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x140) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x140) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x140)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);" (assignment_expression "iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" (identifier "iVar17") (= "=") (call_expression "sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" (identifier "sqlite3_exec") (argument_list "(param_1,iVar9,puVar16 + 0x2fc,&local_68,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar9") (, ",") (binary_expression "puVar16 + 0x2fc" (identifier "puVar16") (+ "+") (number_literal "0x2fc")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x140) = uVar15;" (assignment_expression "*(undefined4 *)(param_1 + 0x140) = uVar15" (pointer_expression "*(undefined4 *)(param_1 + 0x140)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x140)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x140)" (( "(") (binary_expression "param_1 + 0x140" (identifier "param_1") (+ "+") (number_literal "0x140")) () ")")))) (= "=") (identifier "uVar15")) (; ";")) (if_statement "if (iVar17 != 0) {\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          if (iVar9 != 0) goto LAB_001076a8;\nLAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }\n          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;\n          goto LAB_00107700;\n        }" ({ "{") (if_statement "if (iVar9 != 0) goto LAB_001076a8;" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001076a8;" (goto "goto") (statement_identifier "LAB_001076a8") (; ";"))) (labeled_statement "LAB_001076c8:\n          if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" (statement_identifier "LAB_001076c8") (: ":") (if_statement "if (*(char *)(param_1 + 0x51) != '\0') {\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x51) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x51) != '\0'" (pointer_expression "*(char *)(param_1 + 0x51)" (* "*") (cast_expression "(char *)(param_1 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x51)" (( "(") (binary_expression "param_1 + 0x51" (identifier "param_1") (+ "+") (number_literal "0x51")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\nLAB_001076d4:\n            iVar17 = 7;\n            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);\n          }" ({ "{") (labeled_statement "LAB_001076d4:\n            iVar17 = 7;" (statement_identifier "LAB_001076d4") (: ":") (expression_statement "iVar17 = 7;" (assignment_expression "iVar17 = 7" (identifier "iVar17") (= "=") (number_literal "7")) (; ";"))) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x236c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x236c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x236c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bb8 + -0x236c)" (( "(") (binary_expression "PTR_LAB_00190bb8 + -0x236c" (identifier "PTR_LAB_00190bb8") (+ "+") (number_literal "-0x236c")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (if_statement "if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;" (if "if") (parenthesized_expression "(*(int *)(param_1 + 0x24) << 4 < 0)" (( "(") (binary_expression "*(int *)(param_1 + 0x24) << 4 < 0" (binary_expression "*(int *)(param_1 + 0x24) << 4" (pointer_expression "*(int *)(param_1 + 0x24)" (* "*") (cast_expression "(int *)(param_1 + 0x24)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x24)" (( "(") (binary_expression "param_1 + 0x24" (identifier "param_1") (+ "+") (number_literal "0x24")) () ")")))) (<< "<<") (number_literal "4")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_001078d4;" (goto "goto") (statement_identifier "LAB_001078d4") (; ";"))) (goto_statement "goto LAB_00107700;" (goto "goto") (statement_identifier "LAB_00107700") (; ";")) (} "}"))) (expression_statement "iVar17 = local_5c;" (assignment_expression "iVar17 = local_5c" (identifier "iVar17") (= "=") (identifier "local_5c")) (; ";")) (if_statement "if (iVar9 != 0) {\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }" (if "if") (parenthesized_expression "(iVar9 != 0)" (( "(") (binary_expression "iVar9 != 0" (identifier "iVar9") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);\n          iVar10 = iVar9;\n        }" ({ "{") (labeled_statement "LAB_001076a8:\n          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);" (statement_identifier "LAB_001076a8") (: ":") (expression_statement "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + -0x2368))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + -0x2368)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + -0x2368)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + -0x2368)" (( "(") (binary_expression "PTR_LAB_00190ba8 + -0x2368" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "-0x2368")) () ")")))) () ")")) (argument_list "(param_1,iVar9)" (( "(") (identifier "param_1") (, ",") (identifier "iVar9") () ")"))) (; ";"))) (expression_statement "iVar10 = iVar9;" (assignment_expression "iVar10 = iVar9" (identifier "iVar10") (= "=") (identifier "iVar9")) (; ";")) (} "}"))) (if_statement "if (iVar17 != 0) goto LAB_001076c8;" (if "if") (parenthesized_expression "(iVar17 != 0)" (( "(") (binary_expression "iVar17 != 0" (identifier "iVar17") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_001076c8;" (goto "goto") (statement_identifier "LAB_001076c8") (; ";"))) (expression_statement "iVar10 = param_2;" (assignment_expression "iVar10 = param_2" (identifier "iVar10") (= "=") (identifier "param_2")) (; ";")) (expression_statement "FUN_001071ec(param_1,param_2);" (call_expression "FUN_001071ec(param_1,param_2)" (identifier "FUN_001071ec") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (if_statement "if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0x51) != '\0')" (( "(") (binary_expression "*(char *)(param_1 + 0x51) != '\0'" (pointer_expression "*(char *)(param_1 + 0x51)" (* "*") (cast_expression "(char *)(param_1 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x51)" (( "(") (binary_expression "param_1 + 0x51" (identifier "param_1") (+ "+") (number_literal "0x51")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_001076d4;" (goto "goto") (statement_identifier "LAB_001076d4") (; ";"))) (labeled_statement "LAB_001078d4:\n        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (statement_identifier "LAB_001078d4") (: ":") (expression_statement "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);" (assignment_expression "iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + iVar7 + 0xc)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + iVar7 + 0xc" (binary_expression "*(int *)(param_1 + 0x10) + iVar7" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (identifier "iVar7")) (+ "+") (number_literal "0xc")) () ")"))))) (; ";"))) (expression_statement "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;" (assignment_expression "*(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")")))) (= "=") (binary_expression "*(ushort *)(iVar17 + 0x4e) | 1" (pointer_expression "*(ushort *)(iVar17 + 0x4e)" (* "*") (cast_expression "(ushort *)(iVar17 + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")")))) (| "|") (number_literal "1"))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "iVar17 = iVar4;" (assignment_expression "iVar17 = iVar4" (identifier "iVar17") (= "=") (identifier "iVar4")) (; ";")) (} "}")) (else_clause "else {\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" (else "else") (compound_statement "{\n        uVar5 = (undefined1)(local_30 & 3);\n        if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }\n        bVar6 = *(byte *)(param_1 + 0x4e);\n        if (local_30 == bVar6) goto LAB_001077f8;\n        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;\nLAB_00107954:\n        iVar17 = 1;\n        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);\nLAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);\n      }" ({ "{") (expression_statement "uVar5 = (undefined1)(local_30 & 3);" (assignment_expression "uVar5 = (undefined1)(local_30 & 3)" (identifier "uVar5") (= "=") (call_expression "(undefined1)(local_30 & 3)" (parenthesized_expression "(undefined1)" (( "(") (identifier "undefined1") () ")")) (argument_list "(local_30 & 3)" (( "(") (binary_expression "local_30 & 3" (identifier "local_30") (& "&") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (param_2 == 0) {\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }\n          *(undefined1 *)(param_1 + 0x4e) = uVar5;\n          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;\n          iVar17 = *(int *)(iVar11 + 0xc);\n          iVar9 = *(int *)(iVar17 + 0x50);\n          puVar2 = PTR_LAB_00190ba8;\n          goto joined_r0x001075d8;\n        }" ({ "{") (if_statement "if ((local_30 & 3) == 0) {\n            uVar5 = 1;\n          }" (if "if") (parenthesized_expression "((local_30 & 3) == 0)" (( "(") (binary_expression "(local_30 & 3) == 0" (parenthesized_expression "(local_30 & 3)" (( "(") (binary_expression "local_30 & 3" (identifier "local_30") (& "&") (number_literal "3")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar5 = 1;\n          }" ({ "{") (expression_statement "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(param_1 + 0x4e) = uVar5;" (assignment_expression "*(undefined1 *)(param_1 + 0x4e) = uVar5" (pointer_expression "*(undefined1 *)(param_1 + 0x4e)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0x4e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4e)" (( "(") (binary_expression "param_1 + 0x4e" (identifier "param_1") (+ "+") (number_literal "0x4e")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;" (assignment_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5" (pointer_expression "*(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d)" (* "*") (cast_expression "(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar11 + 0xc) + 0x4d)" (( "(") (binary_expression "*(int *)(iVar11 + 0xc) + 0x4d" (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4d")) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar17 = *(int *)(iVar11 + 0xc);" (assignment_expression "iVar17 = *(int *)(iVar11 + 0xc)" (identifier "iVar17") (= "=") (pointer_expression "*(int *)(iVar11 + 0xc)" (* "*") (cast_expression "(int *)(iVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 0xc)" (( "(") (binary_expression "iVar11 + 0xc" (identifier "iVar11") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar17 + 0x50);" (assignment_expression "iVar9 = *(int *)(iVar17 + 0x50)" (identifier "iVar9") (= "=") (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")) () ")"))))) (; ";")) (expression_statement "puVar2 = PTR_LAB_00190ba8;" (assignment_expression "puVar2 = PTR_LAB_00190ba8" (identifier "puVar2") (= "=") (identifier "PTR_LAB_00190ba8")) (; ";")) (goto_statement "goto joined_r0x001075d8;" (goto "goto") (statement_identifier "joined_r0x001075d8") (; ";")) (} "}"))) (expression_statement "bVar6 = *(byte *)(param_1 + 0x4e);" (assignment_expression "bVar6 = *(byte *)(param_1 + 0x4e)" (identifier "bVar6") (= "=") (pointer_expression "*(byte *)(param_1 + 0x4e)" (* "*") (cast_expression "(byte *)(param_1 + 0x4e)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x4e)" (( "(") (binary_expression "param_1 + 0x4e" (identifier "param_1") (+ "+") (number_literal "0x4e")) () ")"))))) (; ";")) (if_statement "if (local_30 == bVar6) goto LAB_001077f8;" (if "if") (parenthesized_expression "(local_30 == bVar6)" (( "(") (binary_expression "local_30 == bVar6" (identifier "local_30") (== "==") (identifier "bVar6")) () ")")) (goto_statement "goto LAB_001077f8;" (goto "goto") (statement_identifier "LAB_001077f8") (; ";"))) (expression_statement "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;" (assignment_expression "puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" (identifier "puVar16") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "-0x30d0"))) (; ";")) (labeled_statement "LAB_00107954:\n        iVar17 = 1;" (statement_identifier "LAB_00107954") (: ":") (expression_statement "iVar17 = 1;" (assignment_expression "iVar17 = 1" (identifier "iVar17") (= "=") (number_literal "1")) (; ";"))) (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x106c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x106c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x106c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + 0x106c)" (( "(") (binary_expression "PTR_LAB_00190ba8 + 0x106c" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "0x106c")) () ")")))) () ")")) (argument_list "(param_3,param_1,puVar16)" (( "(") (identifier "param_3") (, ",") (identifier "param_1") (, ",") (identifier "puVar16") () ")"))) (; ";")) (labeled_statement "LAB_00107700:\n        iVar7 = *(int *)(iVar11 + 4);" (statement_identifier "LAB_00107700") (: ":") (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";"))) (} "}")))) (if_statement "if (bVar1) {\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();\n        iVar7 = *(int *)(iVar11 + 4);\n      }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_00190bbc + 0x2eac))();" (call_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))()" (parenthesized_expression "(*(code *)(PTR_LAB_00190bbc + 0x2eac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bbc + 0x2eac)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bbc + 0x2eac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bbc + 0x2eac)" (( "(") (binary_expression "PTR_LAB_00190bbc + 0x2eac" (identifier "PTR_LAB_00190bbc") (+ "+") (number_literal "0x2eac")) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = *(int *)(iVar11 + 4);" (assignment_expression "iVar7 = *(int *)(iVar11 + 4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)(iVar11 + 4)" (* "*") (cast_expression "(int *)(iVar11 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar11 + 4)" (( "(") (binary_expression "iVar11 + 4" (identifier "iVar11") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))\n      goto LAB_001079bc;" (if "if") (parenthesized_expression "((*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))" (( "(") (binary_expression "(*(char *)(iVar7 + 9) != '\0') &&\n         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0)" (parenthesized_expression "(*(char *)(iVar7 + 9) != '\0')" (( "(") (binary_expression "*(char *)(iVar7 + 9) != '\0'" (pointer_expression "*(char *)(iVar7 + 9)" (* "*") (cast_expression "(char *)(iVar7 + 9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 9)" (( "(") (binary_expression "iVar7 + 9" (identifier "iVar7") (+ "+") (number_literal "9")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0)" (( "(") (comma_expression "iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0" (assignment_expression "iVar4 = *(int *)(iVar7 + 0xc) + -1" (identifier "iVar4") (= "=") (binary_expression "*(int *)(iVar7 + 0xc) + -1" (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "-1"))) (, ",") (comma_expression "*(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0" (assignment_expression "*(int *)(iVar7 + 0xc) = iVar4" (pointer_expression "*(int *)(iVar7 + 0xc)" (* "*") (cast_expression "(int *)(iVar7 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 0xc)" (( "(") (binary_expression "iVar7 + 0xc" (identifier "iVar7") (+ "+") (number_literal "0xc")) () ")")))) (= "=") (identifier "iVar4")) (, ",") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_001079bc;" (goto "goto") (statement_identifier "LAB_001079bc") (; ";"))) (} "}")))) (if_statement "if (iVar17 == 0) goto LAB_0010775c;" (if "if") (parenthesized_expression "(iVar17 == 0)" (( "(") (binary_expression "iVar17 == 0" (identifier "iVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0010775c;" (goto "goto") (statement_identifier "LAB_0010775c") (; ";"))) (} "}"))) (labeled_statement "LAB_00107730:\n  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" (statement_identifier "LAB_00107730") (: ":") (if_statement "if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" (if "if") (parenthesized_expression "(((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0))" (( "(") (binary_expression "((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" (parenthesized_expression "((iVar17 == 7) || (iVar17 == 0xc0a))" (( "(") (binary_expression "(iVar17 == 7) || (iVar17 == 0xc0a)" (parenthesized_expression "(iVar17 == 7)" (( "(") (binary_expression "iVar17 == 7" (identifier "iVar17") (== "==") (number_literal "7")) () ")")) (|| "||") (parenthesized_expression "(iVar17 == 0xc0a)" (( "(") (binary_expression "iVar17 == 0xc0a" (identifier "iVar17") (== "==") (number_literal "0xc0a")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)" (( "(") (binary_expression "(*(uint *)(param_1 + 0x50) & 0xffff00) == 0" (parenthesized_expression "(*(uint *)(param_1 + 0x50) & 0xffff00)" (( "(") (binary_expression "*(uint *)(param_1 + 0x50) & 0xffff00" (pointer_expression "*(uint *)(param_1 + 0x50)" (* "*") (cast_expression "(uint *)(param_1 + 0x50)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x50)" (( "(") (binary_expression "param_1 + 0x50" (identifier "param_1") (+ "+") (number_literal "0x50")) () ")")))) (& "&") (number_literal "0xffff00")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);\n  }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);" (call_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_00190ba8 + 0x82c))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190ba8 + 0x82c)" (* "*") (cast_expression "(code *)(PTR_LAB_00190ba8 + 0x82c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190ba8 + 0x82c)" (( "(") (binary_expression "PTR_LAB_00190ba8 + 0x82c" (identifier "PTR_LAB_00190ba8") (+ "+") (number_literal "0x82c")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}")))) (expression_statement "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);" (call_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2)" (parenthesized_expression "(*(code *)(PTR_LAB_00190bb8 + -0x2180))" (( "(") (pointer_expression "*(code *)(PTR_LAB_00190bb8 + -0x2180)" (* "*") (cast_expression "(code *)(PTR_LAB_00190bb8 + -0x2180)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00190bb8 + -0x2180)" (( "(") (binary_expression "PTR_LAB_00190bb8 + -0x2180" (identifier "PTR_LAB_00190bb8") (+ "+") (number_literal "-0x2180")) () ")")))) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "iVar10 = param_2;" (assignment_expression "iVar10 = param_2" (identifier "iVar10") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "LAB_0010775c:\n  iVar4 = *(int *)puVar3;" (statement_identifier "LAB_0010775c") (: ":") (expression_statement "iVar4 = *(int *)puVar3;" (assignment_expression "iVar4 = *(int *)puVar3" (identifier "iVar4") (= "=") (pointer_expression "*(int *)puVar3" (* "*") (cast_expression "(int *)puVar3" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar3")))) (; ";"))) (expression_statement "*(undefined1 *)(param_1 + 0xa5) = 0;" (assignment_expression "*(undefined1 *)(param_1 + 0xa5) = 0" (pointer_expression "*(undefined1 *)(param_1 + 0xa5)" (* "*") (cast_expression "(undefined1 *)(param_1 + 0xa5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xa5)" (( "(") (binary_expression "param_1 + 0xa5" (identifier "param_1") (+ "+") (number_literal "0xa5")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (local_2c == iVar4) {\n    return iVar17;\n  }" (if "if") (parenthesized_expression "(local_2c == iVar4)" (( "(") (binary_expression "local_2c == iVar4" (identifier "local_2c") (== "==") (identifier "iVar4")) () ")")) (compound_statement "{\n    return iVar17;\n  }" ({ "{") (return_statement "return iVar17;" (return "return") (identifier "iVar17") (; ";")) (} "}"))) (expression_statement "iVar17 = local_2c;" (assignment_expression "iVar17 = local_2c" (identifier "iVar17") (= "=") (identifier "local_2c")) (; ";")) (expression_statement "puVar16 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar16 = PTR___stack_chk_fail_00190df8" (identifier "puVar16") (= "=") (identifier "PTR___stack_chk_fail_00190df8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00190df8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00190df8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar16 = puVar16 + 0x90f2c;" (assignment_expression "puVar16 = puVar16 + 0x90f2c" (identifier "puVar16") (= "=") (binary_expression "puVar16 + 0x90f2c" (identifier "puVar16") (+ "+") (number_literal "0x90f2c"))) (; ";")) (expression_statement "uVar12 = *(uint *)(iVar17 + 0x18);" (assignment_expression "uVar12 = *(uint *)(iVar17 + 0x18)" (identifier "uVar12") (= "=") (pointer_expression "*(uint *)(iVar17 + 0x18)" (* "*") (cast_expression "(uint *)(iVar17 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);" (assignment_expression "*(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" (pointer_expression "*(undefined1 *)(iVar17 + 0x4e)" (* "*") (cast_expression "(undefined1 *)(iVar17 + 0x4e)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x4e)" (( "(") (binary_expression "iVar17 + 0x4e" (identifier "iVar17") (+ "+") (number_literal "0x4e")) () ")")))) (= "=") (pointer_expression "*(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" (* "*") (cast_expression "(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d)" (( "(") (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar17 + 0x10) + 0xc)" (( "(") (binary_expression "*(int *)(iVar17 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar17 + 0x10)" (* "*") (cast_expression "(int *)(iVar17 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4d")) () ")"))))) (; ";")) (if_statement "if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)) {\n    return iVar4;\n  }" (if "if") (parenthesized_expression "(((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0))" (( "(") (binary_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&\n     (iVar4 = FUN_00107414(), iVar4 != 0)" (parenthesized_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0)" (( "(") (binary_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0" (parenthesized_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1)" (( "(") (binary_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1" (pointer_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" (* "*") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar17 + 0x10) + 0xc)" (( "(") (binary_expression "*(int *)(iVar17 + 0x10) + 0xc" (pointer_expression "*(int *)(iVar17 + 0x10)" (* "*") (cast_expression "(int *)(iVar17 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 = FUN_00107414(), iVar4 != 0)" (( "(") (comma_expression "iVar4 = FUN_00107414(), iVar4 != 0" (assignment_expression "iVar4 = FUN_00107414()" (identifier "iVar4") (= "=") (call_expression "FUN_00107414()" (identifier "FUN_00107414") (argument_list "()" (( "(") () ")")))) (, ",") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    return iVar4;\n  }" ({ "{") (return_statement "return iVar4;" (return "return") (identifier "iVar4") (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(iVar17 + 0x14) + -1;" (assignment_expression "iVar4 = *(int *)(iVar17 + 0x14) + -1" (identifier "iVar4") (= "=") (binary_expression "*(int *)(iVar17 + 0x14) + -1" (pointer_expression "*(int *)(iVar17 + 0x14)" (* "*") (cast_expression "(int *)(iVar17 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x14)" (( "(") (binary_expression "iVar17 + 0x14" (identifier "iVar17") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (0 < iVar4) {\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }" (if "if") (parenthesized_expression "(0 < iVar4)" (( "(") (binary_expression "0 < iVar4" (number_literal "0") (< "<") (identifier "iVar4")) () ")")) (compound_statement "{\n    do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);\n  }" ({ "{") (do_statement "do {\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    } while (iVar4 != 0);" (do "do") (compound_statement "{\n      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }\n      iVar4 = iVar4 + -1;\n    }" ({ "{") (if_statement "if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {\n        return iVar7;\n      }" (if "if") (parenthesized_expression "(((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0))" (( "(") (binary_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&\n         (iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)" (parenthesized_expression "((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0)" (( "(") (binary_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0" (parenthesized_expression "(*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1)" (( "(") (binary_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1" (pointer_expression "*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" (* "*") (cast_expression "(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e)" (( "(") (binary_expression "*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e" (pointer_expression "*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" (* "*") (cast_expression "(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc)" (( "(") (binary_expression "*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc" (binary_expression "*(int *)(iVar17 + 0x10) + iVar4 * 0x10" (pointer_expression "*(int *)(iVar17 + 0x10)" (* "*") (cast_expression "(int *)(iVar17 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x10)" (( "(") (binary_expression "iVar17 + 0x10" (identifier "iVar17") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "iVar4 * 0x10" (identifier "iVar4") (* "*") (number_literal "0x10"))) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x4e")) () ")")))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)" (( "(") (comma_expression "iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0" (assignment_expression "iVar7 = FUN_00107414(iVar17,iVar4,iVar10,0,puVar16)" (identifier "iVar7") (= "=") (call_expression "FUN_00107414(iVar17,iVar4,iVar10,0,puVar16)" (identifier "FUN_00107414") (argument_list "(iVar17,iVar4,iVar10,0,puVar16)" (( "(") (identifier "iVar17") (, ",") (identifier "iVar4") (, ",") (identifier "iVar10") (, ",") (number_literal "0") (, ",") (identifier "puVar16") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        return iVar7;\n      }" ({ "{") (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (} "}"))) (expression_statement "iVar4 = iVar4 + -1;" (assignment_expression "iVar4 = iVar4 + -1" (identifier "iVar4") (= "=") (binary_expression "iVar4 + -1" (identifier "iVar4") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar4 != 0)" (( "(") (binary_expression "iVar4 != 0" (identifier "iVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (if_statement "if ((uVar12 & 1) != 0) {\n    return 0;\n  }" (if "if") (parenthesized_expression "((uVar12 & 1) != 0)" (( "(") (binary_expression "(uVar12 & 1) != 0" (parenthesized_expression "(uVar12 & 1)" (( "(") (binary_expression "uVar12 & 1" (identifier "uVar12") (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;" (assignment_expression "*(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe" (pointer_expression "*(uint *)(iVar17 + 0x18)" (* "*") (cast_expression "(uint *)(iVar17 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")")))) (= "=") (binary_expression "*(uint *)(iVar17 + 0x18) & 0xfffffffe" (pointer_expression "*(uint *)(iVar17 + 0x18)" (* "*") (cast_expression "(uint *)(iVar17 + 0x18)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar17 + 0x18)" (( "(") (binary_expression "iVar17 + 0x18" (identifier "iVar17") (+ "+") (number_literal "0x18")) () ")")))) (& "&") (number_literal "0xfffffffe"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(type_1 *db,int var_1,char **pzErrMsg,type_2 mFlags)

{
  bool bVar1;
  type_3 *var_12;
  type_3 *puVar3;
  type_4 *pDVar4;
  type_5 uVar9;
  type_6 *pSVar5;
  type_1 *var_17;
  int var_10;
  type_7 var_13;
  type_8 uVar8;
  type_9 *pcVar11;
  type_1 *var_22;
  type_10 *var_5;
  type_1 *psVar13;
  type_3 *var_16;
  type_11 var_21;
  char *pcVar16;
  int *var_11;
  type_12 p_Var18;
  int var_8;
  type_13 initData;
  char *azArg [4];
  int meta [5];
  
  (db->init).busy = '\x01';
  puVar3 = PTR___stack_chk_guard_00190e24;
  var_16 = PTR_LAB_00190c64;
  var_22 = *(type_1 **)PTR___stack_chk_guard_00190e24;
  if (var_1 == 1) {
    pcVar16 = var_2 + 0x36ec;
  }
  else {
    pcVar16 = var_2 + 0x2e2c;
  }
  azArg[1] = var_3 + 0x1448;
  psVar13 = (type_1 *)0x3;
  azArg[3] = (char *)0x0;
  azArg[2] = var_3 + -0x3118;
  initData.rc = 0;
  initData.nInitRow = 0;
  initData.db = db;
  initData.pzErrMsg = pzErrMsg;
  initData.var_1 = var_1;
  initData.mInitFlags = mFlags;
  azArg[0] = pcVar16;
  var_4(&initData,3,azArg,(char **)0x0);
  var_10 = initData.rc;
  var_8 = initData.rc;
  if (initData.rc == 0) {
    pDVar4 = db->aDb;
    var_5 = pDVar4[var_1].pBt;
    if (var_5 == (type_10 *)0x0) {
      (pDVar4[1].pSchema)->schemaFlags = (pDVar4[1].pSchema)->schemaFlags | 1;
      goto LAB_0010775c;
    }
    if (var_5->sharable != '\0') {
      (*(type_9 *)(var_6 + 0x7108))();
      var_5 = pDVar4[var_1].pBt;
    }
    psVar13 = db;
    if (var_5->inTrans == '\0') {
      var_8 = (*(type_9 *)(var_7 + 0x7924))(var_5,0,0);
      if (var_8 == 0) {
        var_5 = pDVar4[var_1].pBt;
        bVar1 = true;
        goto LAB_00107540;
      }
      uVar8 = (*(type_9 *)(var_9 + -0x7ac))(var_8);
      (*(type_9 *)(var_6 + 0x106c))(pzErrMsg,db,uVar8);
      var_5 = pDVar4[var_1].pBt;
      if ((var_5->sharable == '\0') ||
         (var_10 = var_5->wantToLock + -1, var_5->wantToLock = var_10, var_10 != 0))
      goto LAB_00107730;
LAB_001079bc:
      (*(type_9 *)(var_6 + 0x71f0))();
    }
    else {
      bVar1 = false;
LAB_00107540:
      var_11 = meta;
      var_8 = 0;
      pcVar11 = (type_9 *)(var_6 + 0x7e90);
      while( true ) {
        var_8 = var_8 + 1;
        (*pcVar11)(var_5,var_8,var_11);
        var_11 = var_11 + 1;
        if (var_8 == 5) break;
        var_5 = pDVar4[var_1].pBt;
      }
      if ((int)db->flags << 6 < 0) {
        meta[0] = 0;
        meta[1] = 0;
        meta[2] = 0;
        meta[3] = 0;
        meta[4] = 0;
      }
      (pDVar4[var_1].pSchema)->schema_cookie = meta[0];
      if (meta[4] == 0) {
        pSVar5 = db->aDb[var_1].pSchema;
        pSVar5->schemaFlags = pSVar5->schemaFlags | 4;
        var_13 = db->enc;
LAB_001077f8:
        (pDVar4[var_1].pSchema)->enc = var_13;
        pSVar5 = pDVar4[var_1].pSchema;
        var_8 = pSVar5->cache_size;
        var_12 = var_6;
joined_r0x001075d8:
        var_6 = var_12;
        if (var_8 == 0) {
          if (meta[2] < 0) {
            if (meta[2] == -0x80000000) {
              meta[2] = 0x7fffffff;
            }
            else {
              meta[2] = -meta[2];
            }
          }
          else if (meta[2] == 0) {
            meta[2] = -2000;
          }
          pSVar5->cache_size = meta[2];
          (*(type_9 *)(var_12 + 0x797c))(pDVar4[var_1].pBt,(pDVar4[var_1].pSchema)->cache_size);
          pSVar5 = pDVar4[var_1].pSchema;
        }
        pSVar5->file_format = (type_5)meta[1];
        var_13 = (pDVar4[var_1].pSchema)->file_format;
        if (var_13 == 0) {
          (pDVar4[var_1].pSchema)->file_format = '\x01';
          var_13 = (pDVar4[var_1].pSchema)->file_format;
        }
        if (4 < var_13) {
          var_16 = var_3 + -0x308c;
          goto LAB_00107954;
        }
        if ((var_1 == 0) && (3 < meta[1])) {
          *(type_11 *)((int)&db->flags + 4) = (type_11)db->flags & 0xfffffffd;
        }
        var_17 = (type_1 *)
                 (*(type_9 *)(var_14 + -0x2e9c))
                           (db,var_3 + -0x3074,
                            db->aDb[var_1].zDbSName,pcVar16);
        p_Var18 = db->xAuth;
        db->xAuth = (type_12)0x0;
        psVar13 = var_17;
        var_8 = var_15(db,(char *)var_17,(sqlite3_callback)(var_16 + 0x2fc),&initData,
                              (char **)0x0);
        db->xAuth = p_Var18;
        if (var_8 != 0) {
          if (var_17 != (type_1 *)0x0) goto LAB_001076a8;
LAB_001076c8:
          if (db->mallocFailed != '\0') {
LAB_001076d4:
            var_8 = 7;
            (*(type_9 *)(var_18 + -0x236c))(db);
          }
          if ((int)db->flags << 4 < 0) goto LAB_001078d4;
          goto LAB_00107700;
        }
        var_8 = initData.rc;
        if (var_17 != (type_1 *)0x0) {
LAB_001076a8:
          (*(type_9 *)(var_6 + -0x2368))(db);
          psVar13 = var_17;
        }
        if (var_8 != 0) goto LAB_001076c8;
        psVar13 = (type_1 *)var_1;
        var_19(db,var_1);
        if (db->mallocFailed != '\0') goto LAB_001076d4;
LAB_001078d4:
        pSVar5 = db->aDb[var_1].pSchema;
        pSVar5->schemaFlags = pSVar5->schemaFlags | 1;
        var_5 = pDVar4[var_1].pBt;
        var_8 = var_10;
      }
      else {
        uVar9 = (type_5)(meta[4] & 3U);
        if (var_1 == 0) {
          if ((meta[4] & 3U) == 0) {
            uVar9 = '\x01';
          }
          db->enc = uVar9;
          pDVar4->pSchema->enc = uVar9;
          pSVar5 = pDVar4->pSchema;
          var_8 = pSVar5->cache_size;
          var_12 = var_6;
          goto joined_r0x001075d8;
        }
        var_13 = db->enc;
        if (meta[4] == (type_11)var_13) goto LAB_001077f8;
        var_16 = var_3 + -0x30d0;
LAB_00107954:
        var_8 = 1;
        (*(type_9 *)(var_6 + 0x106c))(pzErrMsg,db,var_16);
LAB_00107700:
        var_5 = pDVar4[var_1].pBt;
      }
      if (bVar1) {
        (*(type_9 *)(var_20 + 0x2eac))();
        var_5 = pDVar4[var_1].pBt;
      }
      if ((var_5->sharable != '\0') &&
         (var_10 = var_5->wantToLock + -1, var_5->wantToLock = var_10, var_10 == 0))
      goto LAB_001079bc;
    }
    if (var_8 == 0) goto LAB_0010775c;
  }
LAB_00107730:
  if (((var_8 == 7) || (var_8 == 0xc0a)) &&
     (var_21._0_1_ = db->temp_store, var_21._1_1_ = db->mallocFailed,
     var_21._2_1_ = db->bBenignMalloc, var_21._3_1_ = db->dfltLockMode, (var_21 & 0xffff00) == 0)) {
    (*(type_9 *)(var_6 + 0x82c))(db);
  }
  (*(type_9 *)(var_18 + -0x2180))(db);
  psVar13 = (type_1 *)var_1;
LAB_0010775c:
  var_17 = *(type_1 **)puVar3;
  (db->init).busy = '\0';
  if (var_22 == var_17) {
    return var_8;
  }
  (*(type_9 *)PTR___stack_chk_fail_00190df8)();
  var_21 = var_22->mDbFlags;
  var_22->enc = var_22->aDb->pSchema->enc;
  if (((var_22->aDb->pSchema->schemaFlags & 1) == 0) &&
     (var_8 = function_1(var_22,0,(char **)psVar13,0), var_8 != 0)) {
    return var_8;
  }
  var_8 = var_22->nDb + -1;
  if (0 < var_8) {
    do {
      if ((((var_22->aDb[var_8].pSchema)->schemaFlags & 1) == 0) &&
         (var_10 = function_1(var_22,var_8,(char **)psVar13,0), var_10 != 0)) {
        return var_10;
      }
      var_8 = var_8 + -1;
    } while (var_8 != 0);
  }
  if ((var_21 & 1) != 0) {
    return 0;
  }
  var_22->mDbFlags = var_22->mDbFlags & 0xfffffffe;
  return 0;
}


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

int MASKED(int param_1,int param_2,undefined4 param_3,undefined4 param_4)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  undefined1 uVar5;
  int iVar4;
  byte bVar6;
  int iVar7;
  code *pcVar8;
  int iVar9;
  int iVar10;
  int iVar11;
  uint uVar12;
  undefined *puVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  undefined *puVar16;
  int iVar17;
  int local_68;
  undefined4 local_64;
  int local_60;
  int local_5c;
  undefined4 local_58;
  undefined4 local_54;
  undefined *local_50;
  undefined *local_4c;
  undefined *local_48;
  undefined4 local_44;
  undefined4 local_40;
  int local_3c;
  int local_38;
  undefined4 local_34;
  uint local_30;
  int local_2c;
  
  *(undefined1 *)(param_1 + 0xa5) = 1;
  puVar3 = PTR___stack_chk_guard_00190e24;
  puVar16 = PTR_LAB_00190c64;
  local_2c = *(int *)PTR___stack_chk_guard_00190e24;
  if (param_2 == 1) {
    puVar13 = PTR_LAB_00190958 + 0x36ec;
  }
  else {
    puVar13 = PTR_LAB_00190958 + 0x2e2c;
  }
  local_4c = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x1448;
  iVar10 = 3;
  local_44 = 0;
  local_48 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3118;
  local_5c = 0;
  local_54 = 0;
  local_68 = param_1;
  local_64 = param_3;
  local_60 = param_2;
  local_58 = param_4;
  local_50 = puVar13;
  FUN_001202fc(&local_68,3,&local_50,0);
  iVar4 = local_5c;
  iVar17 = local_5c;
  if (local_5c == 0) {
    iVar7 = param_2 * 0x10;
    iVar11 = *(int *)(param_1 + 0x10) + iVar7;
    iVar9 = *(int *)(iVar11 + 4);
    if (iVar9 == 0) {
      iVar4 = *(int *)(*(int *)(param_1 + 0x10) + 0x1c);
      *(ushort *)(iVar4 + 0x4e) = *(ushort *)(iVar4 + 0x4e) | 1;
      goto LAB_0010775c;
    }
    if (*(char *)(iVar9 + 9) != '\0') {
      (*(code *)(PTR_LAB_00190ba8 + 0x7108))();
      iVar9 = *(int *)(iVar11 + 4);
    }
    iVar10 = param_1;
    if (*(char *)(iVar9 + 8) == '\0') {
      iVar17 = (*(code *)(PTR_LAB_00190bcc + 0x7924))(iVar9,0,0);
      if (iVar17 == 0) {
        iVar9 = *(int *)(iVar11 + 4);
        bVar1 = true;
        goto LAB_00107540;
      }
      uVar15 = (*(code *)(PTR_LAB_00190ba4 + -0x7ac))(iVar17);
      (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,uVar15);
      iVar4 = *(int *)(iVar11 + 4);
      if ((*(char *)(iVar4 + 9) == '\0') ||
         (iVar7 = *(int *)(iVar4 + 0xc) + -1, *(int *)(iVar4 + 0xc) = iVar7, iVar7 != 0))
      goto LAB_00107730;
LAB_001079bc:
      (*(code *)(PTR_LAB_00190ba8 + 0x71f0))();
    }
    else {
      bVar1 = false;
LAB_00107540:
      puVar14 = &local_40;
      iVar17 = 0;
      pcVar8 = (code *)(PTR_LAB_00190ba8 + 0x7e90);
      while( true ) {
        iVar17 = iVar17 + 1;
        (*pcVar8)(iVar9,iVar17,puVar14);
        puVar14 = puVar14 + 1;
        if (iVar17 == 5) break;
        iVar9 = *(int *)(iVar11 + 4);
      }
      if (*(int *)(param_1 + 0x24) << 6 < 0) {
        local_40 = 0;
        local_3c = 0;
        local_38 = 0;
        local_34 = 0;
        local_30 = 0;
      }
      **(undefined4 **)(iVar11 + 0xc) = local_40;
      if (local_30 == 0) {
        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);
        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 4;
        bVar6 = *(byte *)(param_1 + 0x4e);
LAB_001077f8:
        *(byte *)(*(int *)(iVar11 + 0xc) + 0x4d) = bVar6;
        iVar17 = *(int *)(iVar11 + 0xc);
        iVar9 = *(int *)(iVar17 + 0x50);
        puVar2 = PTR_LAB_00190ba8;
joined_r0x001075d8:
        PTR_LAB_00190ba8 = puVar2;
        if (iVar9 == 0) {
          if (local_38 < 0) {
            if (local_38 == -0x80000000) {
              local_38 = 0x7fffffff;
            }
            else {
              local_38 = -local_38;
            }
          }
          else if (local_38 == 0) {
            local_38 = -2000;
          }
          *(int *)(iVar17 + 0x50) = local_38;
          (*(code *)(puVar2 + 0x797c))
                    (*(undefined4 *)(iVar11 + 4),*(undefined4 *)(*(int *)(iVar11 + 0xc) + 0x50));
          iVar17 = *(int *)(iVar11 + 0xc);
        }
        *(char *)(iVar17 + 0x4c) = (char)local_3c;
        bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);
        if (bVar6 == 0) {
          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4c) = 1;
          bVar6 = *(byte *)(*(int *)(iVar11 + 0xc) + 0x4c);
        }
        if (4 < bVar6) {
          puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x308c;
          goto LAB_00107954;
        }
        if ((param_2 == 0) && (3 < local_3c)) {
          *(uint *)(param_1 + 0x24) = *(uint *)(param_1 + 0x24) & 0xfffffffd;
        }
        iVar9 = (*(code *)(PTR_LAB_00190bc4 + -0x2e9c))
                          (param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x3074,
                           *(undefined4 *)(*(int *)(param_1 + 0x10) + iVar7),puVar13);
        uVar15 = *(undefined4 *)(param_1 + 0x140);
        *(undefined4 *)(param_1 + 0x140) = 0;
        iVar10 = iVar9;
        iVar17 = sqlite3_exec(param_1,iVar9,puVar16 + 0x2fc,&local_68,0);
        *(undefined4 *)(param_1 + 0x140) = uVar15;
        if (iVar17 != 0) {
          if (iVar9 != 0) goto LAB_001076a8;
LAB_001076c8:
          if (*(char *)(param_1 + 0x51) != '\0') {
LAB_001076d4:
            iVar17 = 7;
            (*(code *)(PTR_LAB_00190bb8 + -0x236c))(param_1);
          }
          if (*(int *)(param_1 + 0x24) << 4 < 0) goto LAB_001078d4;
          goto LAB_00107700;
        }
        iVar17 = local_5c;
        if (iVar9 != 0) {
LAB_001076a8:
          (*(code *)(PTR_LAB_00190ba8 + -0x2368))(param_1,iVar9);
          iVar10 = iVar9;
        }
        if (iVar17 != 0) goto LAB_001076c8;
        iVar10 = param_2;
        FUN_001071ec(param_1,param_2);
        if (*(char *)(param_1 + 0x51) != '\0') goto LAB_001076d4;
LAB_001078d4:
        iVar17 = *(int *)(*(int *)(param_1 + 0x10) + iVar7 + 0xc);
        *(ushort *)(iVar17 + 0x4e) = *(ushort *)(iVar17 + 0x4e) | 1;
        iVar7 = *(int *)(iVar11 + 4);
        iVar17 = iVar4;
      }
      else {
        uVar5 = (undefined1)(local_30 & 3);
        if (param_2 == 0) {
          if ((local_30 & 3) == 0) {
            uVar5 = 1;
          }
          *(undefined1 *)(param_1 + 0x4e) = uVar5;
          *(undefined1 *)(*(int *)(iVar11 + 0xc) + 0x4d) = uVar5;
          iVar17 = *(int *)(iVar11 + 0xc);
          iVar9 = *(int *)(iVar17 + 0x50);
          puVar2 = PTR_LAB_00190ba8;
          goto joined_r0x001075d8;
        }
        bVar6 = *(byte *)(param_1 + 0x4e);
        if (local_30 == bVar6) goto LAB_001077f8;
        puVar16 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x30d0;
LAB_00107954:
        iVar17 = 1;
        (*(code *)(PTR_LAB_00190ba8 + 0x106c))(param_3,param_1,puVar16);
LAB_00107700:
        iVar7 = *(int *)(iVar11 + 4);
      }
      if (bVar1) {
        (*(code *)(PTR_LAB_00190bbc + 0x2eac))();
        iVar7 = *(int *)(iVar11 + 4);
      }
      if ((*(char *)(iVar7 + 9) != '\0') &&
         (iVar4 = *(int *)(iVar7 + 0xc) + -1, *(int *)(iVar7 + 0xc) = iVar4, iVar4 == 0))
      goto LAB_001079bc;
    }
    if (iVar17 == 0) goto LAB_0010775c;
  }
LAB_00107730:
  if (((iVar17 == 7) || (iVar17 == 0xc0a)) && ((*(uint *)(param_1 + 0x50) & 0xffff00) == 0)) {
    (*(code *)(PTR_LAB_00190ba8 + 0x82c))(param_1);
  }
  (*(code *)(PTR_LAB_00190bb8 + -0x2180))(param_1,param_2);
  iVar10 = param_2;
LAB_0010775c:
  iVar4 = *(int *)puVar3;
  *(undefined1 *)(param_1 + 0xa5) = 0;
  if (local_2c == iVar4) {
    return iVar17;
  }
  iVar17 = local_2c;
  puVar16 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puVar16 = puVar16 + 0x90f2c;
  uVar12 = *(uint *)(iVar17 + 0x18);
  *(undefined1 *)(iVar17 + 0x4e) = *(undefined1 *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4d);
  if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + 0xc) + 0x4e) & 1) == 0) &&
     (iVar4 = MASKED(), iVar4 != 0)) {
    return iVar4;
  }
  iVar4 = *(int *)(iVar17 + 0x14) + -1;
  if (0 < iVar4) {
    do {
      if (((*(ushort *)(*(int *)(*(int *)(iVar17 + 0x10) + iVar4 * 0x10 + 0xc) + 0x4e) & 1) == 0) &&
         (iVar7 = MASKED(iVar17,iVar4,iVar10,0,puVar16), iVar7 != 0)) {
        return iVar7;
      }
      iVar4 = iVar4 + -1;
    } while (iVar4 != 0);
  }
  if ((uVar12 & 1) != 0) {
    return 0;
  }
  *(uint *)(iVar17 + 0x18) = *(uint *)(iVar17 + 0x18) & 0xfffffffe;
  return 0;
}

