
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 fts5StorageGetStmt(Fts5Storage *p,int eStmt,sqlite3_stmt **ppStmt,char **pzErrMsg)

{
  int iVar1;
  Fts5Config *pFVar2;
  sqlite3_stmt *pStmt;
  sqlite3 *db;
  int iVar3;
  undefined1 *p_00;
  undefined1 *puVar4;
  undefined1 *puVar5;
  char *pcVar6;
  int iVar7;
  int in_GS_OFFSET;
  Vdbe *in_stack_ffffff94;
  sqlite3_stmt **in_stack_ffffff98;
  char **in_stack_ffffff9c;
  char *azStmt [11];
  
  iVar7 = 0;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  pStmt = p->aStmt[eStmt];
  if (pStmt != (sqlite3_stmt *)0x0) goto LAB_000f0be2;
  pFVar2 = p->pConfig;
  azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";
  azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";
  azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";
  azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";
  azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";
  azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";
  azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";
  azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";
  azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";
  azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?";
  azStmt[10] = "SELECT %s FROM %s AS T";
  switch(eStmt) {
  case 0:
  case 1:
    pcVar6 = pFVar2->zContentRowid;
    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,
                             pcVar6);
    goto LAB_000f0db1;
  case 2:
    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,
                             pFVar2->zContent,pFVar2->zContentRowid);
    if (pcVar6 == (char *)0x0) break;
    db = (sqlite3 *)0x81;
    goto LAB_000f0dc8;
  case 3:
  case 4:
    iVar7 = pFVar2->nCol;
    iVar3 = sqlite3_initialize();
    if (iVar3 == 0) {
      iVar7 = iVar7 + 1;
      iVar3 = iVar7 * 2;
      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));
      if (p_00 != (undefined1 *)0x0) {
        if (iVar7 < 1) {
          iVar3 = -1;
        }
        else {
          puVar4 = p_00;
          do {
            *puVar4 = 0x3f;
            puVar5 = puVar4 + 2;
            puVar4[1] = 0x2c;
            puVar4 = puVar5;
          } while (p_00 + iVar3 != puVar5);
          iVar3 = iVar3 + -1;
        }
        p_00[iVar3] = 0;
        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);
        sqlite3_free(p_00);
        goto LAB_000f0db1;
      }
    }
    break;
  default:
    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);
LAB_000f0db1:
    if (pcVar6 == (char *)0x0) break;
    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);
LAB_000f0dc8:
    iVar7 = sqlite3LockAndPrepare
                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,
                       in_stack_ffffff9c);
    sqlite3_free(pcVar6);
    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {
      pcVar6 = sqlite3_errmsg(pFVar2->db);
      pcVar6 = sqlite3_mprintf("%s",pcVar6);
      *pzErrMsg = pcVar6;
    }
    goto LAB_000f0e1f;
  case 10:
    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);
    db = (sqlite3 *)0x85;
    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;
  }
  iVar7 = 7;
LAB_000f0e1f:
  pStmt = p->aStmt[eStmt];
LAB_000f0be2:
  *ppStmt = pStmt;
  sqlite3_reset(pStmt);
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar7;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)

{
  undefined4 *puVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  undefined4 uVar6;
  int iVar7;
  int iVar8;
  int in_GS_OFFSET;
  char *local_4c [11];
  int local_20;
  undefined4 uStack_14;
  
  iVar8 = 0;
  uStack_14 = 0xf0bb2;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = param_1[param_2 + 6];
  if (iVar2 != 0) goto LAB_000f0be2;
  puVar1 = (undefined4 *)*param_1;
  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";
  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";
  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";
  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";
  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";
  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";
  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";
  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";
  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";
  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";
  local_4c[10] = "SELECT %s FROM %s AS T";
  switch(param_2) {
  case 0:
  case 1:
    uVar6 = puVar1[10];
    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);
    goto LAB_000f0db1;
  case 2:
    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);
    if (iVar7 == 0) break;
    iVar2 = 0x81;
    goto code_r0x000f0dc8;
  case 3:
  case 4:
    iVar2 = puVar1[3];
    iVar8 = FUN_0005b490();
    if (iVar8 == 0) {
      iVar8 = (iVar2 + 1) * 2;
      puVar3 = (undefined1 *)FUN_000421f0();
      if (puVar3 != (undefined1 *)0x0) {
        if (iVar2 + 1 < 1) {
          iVar8 = -1;
        }
        else {
          puVar4 = puVar3;
          do {
            *puVar4 = 0x3f;
            puVar5 = puVar4 + 2;
            puVar4[1] = 0x2c;
            puVar4 = puVar5;
          } while (puVar3 + iVar8 != puVar5);
          iVar8 = iVar8 + -1;
        }
        puVar3[iVar8] = 0;
        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);
        FUN_00042800(puVar3);
        goto LAB_000f0db1;
      }
    }
    break;
  default:
    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);
LAB_000f0db1:
    if (iVar7 == 0) break;
    iVar2 = (uint)(2 < param_2) * 4 + 0x81;
code_r0x000f0dc8:
    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);
    FUN_00042800(iVar7);
    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {
      uVar6 = FUN_00073210(*puVar1);
      uVar6 = FUN_0008ff90("%s",uVar6);
      *param_4 = uVar6;
    }
    goto LAB_000f0e1f;
  case 10:
    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);
    iVar2 = 0x85;
    if (iVar7 != 0) goto code_r0x000f0dc8;
  }
  iVar8 = 7;
LAB_000f0e1f:
  iVar2 = param_1[param_2 + 6];
LAB_000f0be2:
  *param_3 = iVar2;
  FUN_000ac730(iVar2);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar8;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00116110();
}


PUSH EBP
MOV EBP,EAX
PUSH EDI
XOR EDI,EDI
PUSH ESI
MOV ESI,EDX
SHL EDX,0x2
PUSH EBX
CALL 0x00017230
ADD EBX,0x8b276
SUB ESP,0x5c
MOV EAX,dword ptr [ESP + 0x70]
MOV dword ptr [ESP + 0xc],ECX
MOV dword ptr [ESP + 0x14],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x4c],EAX
XOR EAX,EAX
LEA EAX,[EBP + EDX*0x1]
MOV dword ptr [ESP + 0x10],EAX
MOV EAX,dword ptr [EAX + 0x18]
TEST EAX,EAX
JZ 0x000f0c10
MOV ESI,dword ptr [ESP + 0xc]
SUB ESP,0xc
MOV dword ptr [ESI],EAX
PUSH EAX
CALL 0x000ac730
ADD ESP,0x10
MOV EAX,EDI
MOV EDI,dword ptr [ESP + 0x4c]
XOR EDI,dword ptr GS:[0x14]
JNZ 0x000f0e5a
ADD ESP,0x5c
POP EBX
POP ESI
POP EDI
POP EBP
RET
LEA ECX,[EBX + 0xfffb30dc]
LEA EAX,[EBX + 0xfffb44f8]
MOV EDI,dword ptr [EBP]
MOV dword ptr [ESP + 0x2c],ECX
LEA ECX,[EBX + 0xfffb45a8]
MOV dword ptr [ESP + 0x30],ECX
LEA ECX,[EBX + 0xfffb45d0]
MOV dword ptr [ESP + 0x34],ECX
LEA ECX,[EBX + 0xfffb346c]
MOV dword ptr [ESP + 0x38],ECX
LEA ECX,[EBX + 0xfffb45f8]
MOV dword ptr [ESP + 0x3c],ECX
LEA ECX,[EBX + 0xfffb4620]
MOV dword ptr [ESP + 0x20],EAX
LEA EAX,[EBX + 0xfffb453c]
MOV dword ptr [ESP + 0x40],ECX
LEA ECX,[EBX + 0xfffb464c]
MOV dword ptr [ESP + 0x24],EAX
LEA EAX,[EBX + 0xfffb4584]
MOV dword ptr [ESP + 0x44],ECX
LEA ECX,[EBX + 0xfffa59c5]
MOV dword ptr [ESP + 0x28],EAX
MOV dword ptr [ESP + 0x48],ECX
MOV dword ptr [ESP + 0x18],EDI
CMP ESI,0xa
JA 0x000f0e30
MOV EDI,dword ptr [EBX + EDX*0x1 + 0xfffa8dc0]
ADD EDI,EBX
JMP EDI
MOV EDI,0x7
JMP 0x000f0e1f
TEST EDI,EDI
JZ 0x000f0cd0
XOR EAX,EAX
CMP ESI,0x2
SETG AL
LEA EAX,[EAX*0x4 + 0x81]
LEA EDX,[EBP + ESI*0x4 + 0x18]
PUSH 0x0
MOV ECX,0xffffffff
MOV ESI,EDI
PUSH EDX
MOV EDX,EDI
PUSH 0x0
PUSH EAX
MOV EBP,dword ptr [ESP + 0x28]
MOV EAX,dword ptr [EBP]
CALL 0x000e2920
MOV dword ptr [ESP],ESI
MOV EDI,EAX
CALL 0x00042800
ADD ESP,0x10
TEST EDI,EDI
JZ 0x000f0e1f
MOV ESI,dword ptr [ESP + 0x14]
TEST ESI,ESI
JZ 0x000f0e1f
SUB ESP,0xc
PUSH dword ptr [EBP]
CALL 0x00073210
POP EDX
POP ECX
PUSH EAX
LEA EAX,[EBX + 0xfff9cdcb]
PUSH EAX
CALL 0x0008ff90
ADD ESP,0x10
MOV dword ptr [ESI],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV EAX,dword ptr [EAX + 0x18]
JMP 0x000f0be2
SUB ESP,0x4
MOV EAX,dword ptr [ESP + 0x1c]
PUSH dword ptr [EAX + 0x8]
PUSH dword ptr [EAX + 0x4]
PUSH dword ptr [ESP + ESI*0x4 + 0x2c]
CALL 0x0008ff90
ADD ESP,0x10
MOV EDI,EAX
JMP 0x000f0db1
CALL 0x00116110
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}\n\n" comment (function_definition "int __regparm3 FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)" identifier (parameter_list "(int *param_1,int param_2,int *param_3,undefined4 *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00116110();\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_4c [11];" primitive_type (pointer_declarator "*local_4c [11]" * (array_declarator "local_4c [11]" identifier [ number_literal ])) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xf0bb2;" (assignment_expression "uStack_14 = 0xf0bb2" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = param_1[param_2 + 6];" (assignment_expression "iVar2 = param_1[param_2 + 6]" identifier = (subscript_expression "param_1[param_2 + 6]" identifier [ (binary_expression "param_2 + 6" identifier + number_literal) ])) ;) (if_statement "if (iVar2 != 0) goto LAB_000f0be2;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f0be2;" goto statement_identifier ;)) (expression_statement "puVar1 = (undefined4 *)*param_1;" (assignment_expression "puVar1 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "local_4c[3]" identifier [ number_literal ]) = (string_literal ""INSERT INTO %Q.\'%q_content\' VALUES(%s)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "local_4c[4]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";" (assignment_expression "local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?"" (subscript_expression "local_4c[5]" identifier [ number_literal ]) = (string_literal ""DELETE FROM %Q.\'%q_content\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";" (assignment_expression "local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" (subscript_expression "local_4c[6]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "local_4c[7]" identifier [ number_literal ]) = (string_literal ""DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";" (assignment_expression "local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" " string_content ")) ;) (expression_statement "local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "local_4c[8]" identifier [ number_literal ]) = (string_literal ""SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";" (assignment_expression "local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" (subscript_expression "local_4c[1]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" " string_content ")) ;) (expression_statement "local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";" (assignment_expression "local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" (subscript_expression "local_4c[9]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";" (assignment_expression "local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?"" (subscript_expression "local_4c[2]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" " string_content ")) ;) (expression_statement "local_4c[10] = "SELECT %s FROM %s AS T";" (assignment_expression "local_4c[10] = "SELECT %s FROM %s AS T"" (subscript_expression "local_4c[10]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s AS T"" " string_content ")) ;) (switch_statement "switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }" switch (parenthesized_expression "(param_2)" ( identifier )) (compound_statement "{\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;" case number_literal : (expression_statement "uVar6 = puVar1[10];" (assignment_expression "uVar6 = puVar1[10]" identifier = (subscript_expression "puVar1[10]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" identifier = (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" identifier (argument_list "(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" ( (subscript_expression "local_4c[param_2]" identifier [ identifier ]) , (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) , (subscript_expression "puVar1[9]" identifier [ number_literal ]) , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_000f0db1;" goto statement_identifier ;)) (case_statement "case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;" case number_literal : (expression_statement "iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);" (assignment_expression "iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" identifier = (call_expression "FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" identifier (argument_list "("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" ( (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" " string_content ") , (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) , (subscript_expression "puVar1[9]" identifier [ number_literal ]) , (subscript_expression "puVar1[10]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = 0x81;" (assignment_expression "iVar2 = 0x81" identifier = number_literal) ;) (goto_statement "goto code_r0x000f0dc8;" goto statement_identifier ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;" case number_literal : (expression_statement "iVar2 = puVar1[3];" (assignment_expression "iVar2 = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = FUN_0005b490();" (assignment_expression "iVar8 = FUN_0005b490()" identifier = (call_expression "FUN_0005b490()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }" { (expression_statement "iVar8 = (iVar2 + 1) * 2;" (assignment_expression "iVar8 = (iVar2 + 1) * 2" identifier = (binary_expression "(iVar2 + 1) * 2" (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "puVar3 = (undefined1 *)FUN_000421f0();" (assignment_expression "puVar3 = (undefined1 *)FUN_000421f0()" identifier = (cast_expression "(undefined1 *)FUN_000421f0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000421f0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }" { (if_statement "if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" if (parenthesized_expression "(iVar2 + 1 < 1)" ( (binary_expression "iVar2 + 1 < 1" (binary_expression "iVar2 + 1" identifier + number_literal) < number_literal) )) (compound_statement "{\n          iVar8 = -1;\n        }" { (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" else (compound_statement "{\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" { (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) (do_statement "do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);" do (compound_statement "{\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          }" { (expression_statement "*puVar4 = 0x3f;" (assignment_expression "*puVar4 = 0x3f" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar5 = puVar4 + 2;" (assignment_expression "puVar5 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (expression_statement "puVar4[1] = 0x2c;" (assignment_expression "puVar4[1] = 0x2c" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 + iVar8 != puVar5)" ( (binary_expression "puVar3 + iVar8 != puVar5" (binary_expression "puVar3 + iVar8" identifier + identifier) != identifier) )) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) }))) (expression_statement "puVar3[iVar8] = 0;" (assignment_expression "puVar3[iVar8] = 0" (subscript_expression "puVar3[iVar8]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" identifier = (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" identifier (argument_list "(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" ( (subscript_expression "local_4c[param_2]" identifier [ identifier ]) , (subscript_expression "puVar1[1]" identifier [ number_literal ]) , (subscript_expression "puVar1[2]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_00042800(puVar3);" (call_expression "FUN_00042800(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (goto_statement "goto LAB_000f0db1;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;" default : (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2])" identifier = (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2])" identifier (argument_list "(local_4c[param_2],puVar1[1],puVar1[2])" ( (subscript_expression "local_4c[param_2]" identifier [ identifier ]) , (subscript_expression "puVar1[1]" identifier [ number_literal ]) , (subscript_expression "puVar1[2]" identifier [ number_literal ]) )))) ;) (labeled_statement "LAB_000f0db1:\n    if (iVar7 == 0) break;" statement_identifier : (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar2 = (uint)(2 < param_2) * 4 + 0x81;" (assignment_expression "iVar2 = (uint)(2 < param_2) * 4 + 0x81" identifier = (binary_expression "(uint)(2 < param_2) * 4 + 0x81" (binary_expression "(uint)(2 < param_2) * 4" (call_expression "(uint)(2 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < param_2)" ( (binary_expression "2 < param_2" number_literal < identifier) ))) * number_literal) + number_literal)) ;) (labeled_statement "code_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);" statement_identifier : (expression_statement "iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);" (assignment_expression "iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0)" identifier = (call_expression "FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0)" identifier (argument_list "(iVar2,0,param_1 + param_2 + 6,0)" ( identifier , number_literal , (binary_expression "param_1 + param_2 + 6" (binary_expression "param_1 + param_2" identifier + identifier) + number_literal) , number_literal )))) ;)) (expression_statement "FUN_00042800(iVar7);" (call_expression "FUN_00042800(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }" if (parenthesized_expression "((iVar8 != 0) && (param_4 != (undefined4 *)0x0))" ( (binary_expression "(iVar8 != 0) && (param_4 != (undefined4 *)0x0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }" { (expression_statement "uVar6 = FUN_00073210(*puVar1);" (assignment_expression "uVar6 = FUN_00073210(*puVar1)" identifier = (call_expression "FUN_00073210(*puVar1)" identifier (argument_list "(*puVar1)" ( (pointer_expression "*puVar1" * identifier) )))) ;) (expression_statement "uVar6 = FUN_0008ff90("%s",uVar6);" (assignment_expression "uVar6 = FUN_0008ff90("%s",uVar6)" identifier = (call_expression "FUN_0008ff90("%s",uVar6)" identifier (argument_list "("%s",uVar6)" ( (string_literal ""%s"" " string_content ") , identifier )))) ;) (expression_statement "*param_4 = uVar6;" (assignment_expression "*param_4 = uVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (goto_statement "goto LAB_000f0e1f;" goto statement_identifier ;)) (case_statement "case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;" case number_literal : (expression_statement "iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);" (assignment_expression "iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" identifier = (call_expression "FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" identifier (argument_list "("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" ( (string_literal ""SELECT %s FROM %s AS T"" " string_content ") , (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) , (subscript_expression "puVar1[9]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar2 = 0x85;" (assignment_expression "iVar2 = 0x85" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) goto code_r0x000f0dc8;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x000f0dc8;" goto statement_identifier ;))) })) (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;) (labeled_statement "LAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];" statement_identifier : (expression_statement "iVar2 = param_1[param_2 + 6];" (assignment_expression "iVar2 = param_1[param_2 + 6]" identifier = (subscript_expression "param_1[param_2 + 6]" identifier [ (binary_expression "param_2 + 6" identifier + number_literal) ])) ;)) (labeled_statement "LAB_000f0be2:\n  *param_3 = iVar2;" statement_identifier : (expression_statement "*param_3 = iVar2;" (assignment_expression "*param_3 = iVar2" (pointer_expression "*param_3" * identifier) = identifier) ;)) (expression_statement "FUN_000ac730(iVar2);" (call_expression "FUN_000ac730(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) comment (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nint __regparm3 fts5StorageGetStmt(Fts5Storage *p,int eStmt,sqlite3_stmt **ppStmt,char **pzErrMsg)\n\n{\n  int iVar1;\n  Fts5Config *pFVar2;\n  sqlite3_stmt *pStmt;\n  sqlite3 *db;\n  int iVar3;\n  undefined1 *p_00;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  char *pcVar6;\n  int iVar7;\n  int in_GS_OFFSET;\n  Vdbe *in_stack_ffffff94;\n  sqlite3_stmt **in_stack_ffffff98;\n  char **in_stack_ffffff9c;\n  char *azStmt [11];\n  \n  iVar7 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  pStmt = p->aStmt[eStmt];\n  if (pStmt != (sqlite3_stmt *)0x0) goto LAB_000f0be2;\n  pFVar2 = p->pConfig;\n  azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  azStmt[10] = "SELECT %s FROM %s AS T";\n  switch(eStmt) {\n  case 0:\n  case 1:\n    pcVar6 = pFVar2->zContentRowid;\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);\n    goto LAB_000f0db1;\n  case 2:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)0x81;\n    goto LAB_000f0dc8;\n  case 3:\n  case 4:\n    iVar7 = pFVar2->nCol;\n    iVar3 = sqlite3_initialize();\n    if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);\nLAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);\nLAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);\n    sqlite3_free(pcVar6);\n    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);\n    db = (sqlite3 *)0x85;\n    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;\n  }\n  iVar7 = 7;\nLAB_000f0e1f:\n  pStmt = p->aStmt[eStmt];\nLAB_000f0be2:\n  *ppStmt = pStmt;\n  sqlite3_reset(pStmt);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar7;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment (function_definition "int __regparm3 fts5StorageGetStmt(Fts5Storage *p,int eStmt,sqlite3_stmt **ppStmt,char **pzErrMsg)\n\n{\n  int iVar1;\n  Fts5Config *pFVar2;\n  sqlite3_stmt *pStmt;\n  sqlite3 *db;\n  int iVar3;\n  undefined1 *p_00;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  char *pcVar6;\n  int iVar7;\n  int in_GS_OFFSET;\n  Vdbe *in_stack_ffffff94;\n  sqlite3_stmt **in_stack_ffffff98;\n  char **in_stack_ffffff9c;\n  char *azStmt [11];\n  \n  iVar7 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  pStmt = p->aStmt[eStmt];\n  if (pStmt != (sqlite3_stmt *)0x0) goto LAB_000f0be2;\n  pFVar2 = p->pConfig;\n  azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  azStmt[10] = "SELECT %s FROM %s AS T";\n  switch(eStmt) {\n  case 0:\n  case 1:\n    pcVar6 = pFVar2->zContentRowid;\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);\n    goto LAB_000f0db1;\n  case 2:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)0x81;\n    goto LAB_000f0dc8;\n  case 3:\n  case 4:\n    iVar7 = pFVar2->nCol;\n    iVar3 = sqlite3_initialize();\n    if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);\nLAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);\nLAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);\n    sqlite3_free(pcVar6);\n    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);\n    db = (sqlite3 *)0x85;\n    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;\n  }\n  iVar7 = 7;\nLAB_000f0e1f:\n  pStmt = p->aStmt[eStmt];\nLAB_000f0be2:\n  *ppStmt = pStmt;\n  sqlite3_reset(pStmt);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar7;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "fts5StorageGetStmt(Fts5Storage *p,int eStmt,sqlite3_stmt **ppStmt,char **pzErrMsg)" identifier (parameter_list "(Fts5Storage *p,int eStmt,sqlite3_stmt **ppStmt,char **pzErrMsg)" ( (parameter_declaration "Fts5Storage *p" type_identifier (pointer_declarator "*p" * identifier)) , (parameter_declaration "int eStmt" primitive_type identifier) , (parameter_declaration "sqlite3_stmt **ppStmt" type_identifier (pointer_declarator "**ppStmt" * (pointer_declarator "*ppStmt" * identifier))) , (parameter_declaration "char **pzErrMsg" primitive_type (pointer_declarator "**pzErrMsg" * (pointer_declarator "*pzErrMsg" * identifier))) ))) (compound_statement "{\n  int iVar1;\n  Fts5Config *pFVar2;\n  sqlite3_stmt *pStmt;\n  sqlite3 *db;\n  int iVar3;\n  undefined1 *p_00;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  char *pcVar6;\n  int iVar7;\n  int in_GS_OFFSET;\n  Vdbe *in_stack_ffffff94;\n  sqlite3_stmt **in_stack_ffffff98;\n  char **in_stack_ffffff9c;\n  char *azStmt [11];\n  \n  iVar7 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  pStmt = p->aStmt[eStmt];\n  if (pStmt != (sqlite3_stmt *)0x0) goto LAB_000f0be2;\n  pFVar2 = p->pConfig;\n  azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  azStmt[10] = "SELECT %s FROM %s AS T";\n  switch(eStmt) {\n  case 0:\n  case 1:\n    pcVar6 = pFVar2->zContentRowid;\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);\n    goto LAB_000f0db1;\n  case 2:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)0x81;\n    goto LAB_000f0dc8;\n  case 3:\n  case 4:\n    iVar7 = pFVar2->nCol;\n    iVar3 = sqlite3_initialize();\n    if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);\nLAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);\nLAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);\n    sqlite3_free(pcVar6);\n    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);\n    db = (sqlite3 *)0x85;\n    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;\n  }\n  iVar7 = 7;\nLAB_000f0e1f:\n  pStmt = p->aStmt[eStmt];\nLAB_000f0be2:\n  *ppStmt = pStmt;\n  sqlite3_reset(pStmt);\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar7;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Fts5Config *pFVar2;" type_identifier (pointer_declarator "*pFVar2" * identifier) ;) (declaration "sqlite3_stmt *pStmt;" type_identifier (pointer_declarator "*pStmt" * identifier) ;) (declaration "sqlite3 *db;" type_identifier (pointer_declarator "*db" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "undefined1 *p_00;" type_identifier (pointer_declarator "*p_00" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "Vdbe *in_stack_ffffff94;" type_identifier (pointer_declarator "*in_stack_ffffff94" * identifier) ;) (declaration "sqlite3_stmt **in_stack_ffffff98;" type_identifier (pointer_declarator "**in_stack_ffffff98" * (pointer_declarator "*in_stack_ffffff98" * identifier)) ;) (declaration "char **in_stack_ffffff9c;" primitive_type (pointer_declarator "**in_stack_ffffff9c" * (pointer_declarator "*in_stack_ffffff9c" * identifier)) ;) (declaration "char *azStmt [11];" primitive_type (pointer_declarator "*azStmt [11]" * (array_declarator "azStmt [11]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "pStmt = p->aStmt[eStmt];" (assignment_expression "pStmt = p->aStmt[eStmt]" identifier = (subscript_expression "p->aStmt[eStmt]" (field_expression "p->aStmt" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (pStmt != (sqlite3_stmt *)0x0) goto LAB_000f0be2;" if (parenthesized_expression "(pStmt != (sqlite3_stmt *)0x0)" ( (binary_expression "pStmt != (sqlite3_stmt *)0x0" identifier != (cast_expression "(sqlite3_stmt *)0x0" ( (type_descriptor "sqlite3_stmt *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f0be2;" goto statement_identifier ;)) (expression_statement "pFVar2 = p->pConfig;" (assignment_expression "pFVar2 = p->pConfig" identifier = (field_expression "p->pConfig" identifier -> field_identifier)) ;) (expression_statement "azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "azStmt[3]" identifier [ number_literal ]) = (string_literal ""INSERT INTO %Q.\'%q_content\' VALUES(%s)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "azStmt[4]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";" (assignment_expression "azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?"" (subscript_expression "azStmt[5]" identifier [ number_literal ]) = (string_literal ""DELETE FROM %Q.\'%q_content\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";" (assignment_expression "azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" (subscript_expression "azStmt[6]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "azStmt[7]" identifier [ number_literal ]) = (string_literal ""DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";" (assignment_expression "azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" (subscript_expression "azStmt[0]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" " string_content ")) ;) (expression_statement "azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "azStmt[8]" identifier [ number_literal ]) = (string_literal ""SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";" (assignment_expression "azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" (subscript_expression "azStmt[1]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" " string_content ")) ;) (expression_statement "azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";" (assignment_expression "azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" (subscript_expression "azStmt[9]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?";" (assignment_expression "azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?"" (subscript_expression "azStmt[2]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" " string_content ")) ;) (expression_statement "azStmt[10] = "SELECT %s FROM %s AS T";" (assignment_expression "azStmt[10] = "SELECT %s FROM %s AS T"" (subscript_expression "azStmt[10]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s AS T"" " string_content ")) ;) (switch_statement "switch(eStmt) {\n  case 0:\n  case 1:\n    pcVar6 = pFVar2->zContentRowid;\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);\n    goto LAB_000f0db1;\n  case 2:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)0x81;\n    goto LAB_000f0dc8;\n  case 3:\n  case 4:\n    iVar7 = pFVar2->nCol;\n    iVar3 = sqlite3_initialize();\n    if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);\nLAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);\nLAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);\n    sqlite3_free(pcVar6);\n    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);\n    db = (sqlite3 *)0x85;\n    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;\n  }" switch (parenthesized_expression "(eStmt)" ( identifier )) (compound_statement "{\n  case 0:\n  case 1:\n    pcVar6 = pFVar2->zContentRowid;\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);\n    goto LAB_000f0db1;\n  case 2:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)0x81;\n    goto LAB_000f0dc8;\n  case 3:\n  case 4:\n    iVar7 = pFVar2->nCol;\n    iVar3 = sqlite3_initialize();\n    if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);\nLAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);\nLAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);\n    sqlite3_free(pcVar6);\n    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);\n    db = (sqlite3 *)0x85;\n    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n    pcVar6 = pFVar2->zContentRowid;\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);\n    goto LAB_000f0db1;" case number_literal : (expression_statement "pcVar6 = pFVar2->zContentRowid;" (assignment_expression "pcVar6 = pFVar2->zContentRowid" identifier = (field_expression "pFVar2->zContentRowid" identifier -> field_identifier)) ;) (expression_statement "pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6);" (assignment_expression "pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6)" identifier = (call_expression "sqlite3_mprintf(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6)" identifier (argument_list "(azStmt[eStmt],pFVar2->zContentExprlist,pFVar2->zContent,pcVar6,pcVar6,\n                             pcVar6)" ( (subscript_expression "azStmt[eStmt]" identifier [ identifier ]) , (field_expression "pFVar2->zContentExprlist" identifier -> field_identifier) , (field_expression "pFVar2->zContent" identifier -> field_identifier) , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_000f0db1;" goto statement_identifier ;)) (case_statement "case 2:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)0x81;\n    goto LAB_000f0dc8;" case number_literal : (expression_statement "pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid);" (assignment_expression "pcVar6 = sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid)" identifier = (call_expression "sqlite3_mprintf("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid)" identifier (argument_list "("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,\n                             pFVar2->zContent,pFVar2->zContentRowid)" ( (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" " string_content ") , (field_expression "pFVar2->zContentExprlist" identifier -> field_identifier) , (field_expression "pFVar2->zContent" identifier -> field_identifier) , (field_expression "pFVar2->zContentRowid" identifier -> field_identifier) )))) ;) (if_statement "if (pcVar6 == (char *)0x0) break;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "db = (sqlite3 *)0x81;" (assignment_expression "db = (sqlite3 *)0x81" identifier = (cast_expression "(sqlite3 *)0x81" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000f0dc8;" goto statement_identifier ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:\n    iVar7 = pFVar2->nCol;\n    iVar3 = sqlite3_initialize();\n    if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }\n    break;" case number_literal : (expression_statement "iVar7 = pFVar2->nCol;" (assignment_expression "iVar7 = pFVar2->nCol" identifier = (field_expression "pFVar2->nCol" identifier -> field_identifier)) ;) (expression_statement "iVar3 = sqlite3_initialize();" (assignment_expression "iVar3 = sqlite3_initialize()" identifier = (call_expression "sqlite3_initialize()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar7 = iVar7 + 1;\n      iVar3 = iVar7 * 2;\n      p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));\n      if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }\n    }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = iVar7 * 2;" (assignment_expression "iVar3 = iVar7 * 2" identifier = (binary_expression "iVar7 * 2" identifier * number_literal)) ;) (expression_statement "p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94));" (assignment_expression "p_00 = (undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94))" identifier = (cast_expression "(undefined1 *)sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94))" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3Malloc(CONCAT44(in_stack_ffffff98,in_stack_ffffff94))" identifier (argument_list "(CONCAT44(in_stack_ffffff98,in_stack_ffffff94))" ( (call_expression "CONCAT44(in_stack_ffffff98,in_stack_ffffff94)" identifier (argument_list "(in_stack_ffffff98,in_stack_ffffff94)" ( identifier , identifier ))) ))))) ;) (if_statement "if (p_00 != (undefined1 *)0x0) {\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }" if (parenthesized_expression "(p_00 != (undefined1 *)0x0)" ( (binary_expression "p_00 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }\n        p_00[iVar3] = 0;\n        pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);\n        sqlite3_free(p_00);\n        goto LAB_000f0db1;\n      }" { (if_statement "if (iVar7 < 1) {\n          iVar3 = -1;\n        }\n        else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n          iVar3 = -1;\n        }" { (expression_statement "iVar3 = -1;" (assignment_expression "iVar3 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }" else (compound_statement "{\n          puVar4 = p_00;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);\n          iVar3 = iVar3 + -1;\n        }" { (expression_statement "puVar4 = p_00;" (assignment_expression "puVar4 = p_00" identifier = identifier) ;) (do_statement "do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (p_00 + iVar3 != puVar5);" do (compound_statement "{\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          }" { (expression_statement "*puVar4 = 0x3f;" (assignment_expression "*puVar4 = 0x3f" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar5 = puVar4 + 2;" (assignment_expression "puVar5 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (expression_statement "puVar4[1] = 0x2c;" (assignment_expression "puVar4[1] = 0x2c" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(p_00 + iVar3 != puVar5)" ( (binary_expression "p_00 + iVar3 != puVar5" (binary_expression "p_00 + iVar3" identifier + identifier) != identifier) )) ;) (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) }))) (expression_statement "p_00[iVar3] = 0;" (assignment_expression "p_00[iVar3] = 0" (subscript_expression "p_00[iVar3]" identifier [ identifier ]) = number_literal) ;) (expression_statement "pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00);" (assignment_expression "pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00)" identifier = (call_expression "sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00)" identifier (argument_list "(azStmt[eStmt],pFVar2->zDb,pFVar2->zName,p_00)" ( (subscript_expression "azStmt[eStmt]" identifier [ identifier ]) , (field_expression "pFVar2->zDb" identifier -> field_identifier) , (field_expression "pFVar2->zName" identifier -> field_identifier) , identifier )))) ;) (expression_statement "sqlite3_free(p_00);" (call_expression "sqlite3_free(p_00)" identifier (argument_list "(p_00)" ( identifier ))) ;) (goto_statement "goto LAB_000f0db1;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);\nLAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;\n    db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);\nLAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);\n    sqlite3_free(pcVar6);\n    if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }\n    goto LAB_000f0e1f;" default : (expression_statement "pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName);" (assignment_expression "pcVar6 = sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName)" identifier = (call_expression "sqlite3_mprintf(azStmt[eStmt],pFVar2->zDb,pFVar2->zName)" identifier (argument_list "(azStmt[eStmt],pFVar2->zDb,pFVar2->zName)" ( (subscript_expression "azStmt[eStmt]" identifier [ identifier ]) , (field_expression "pFVar2->zDb" identifier -> field_identifier) , (field_expression "pFVar2->zName" identifier -> field_identifier) )))) ;) (labeled_statement "LAB_000f0db1:\n    if (pcVar6 == (char *)0x0) break;" statement_identifier : (if_statement "if (pcVar6 == (char *)0x0) break;" if (parenthesized_expression "(pcVar6 == (char *)0x0)" ( (binary_expression "pcVar6 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;))) (expression_statement "db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81);" (assignment_expression "db = (sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81)" identifier = (cast_expression "(sqlite3 *)((uint)(2 < eStmt) * 4 + 0x81)" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((uint)(2 < eStmt) * 4 + 0x81)" ( (binary_expression "(uint)(2 < eStmt) * 4 + 0x81" (binary_expression "(uint)(2 < eStmt) * 4" (call_expression "(uint)(2 < eStmt)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < eStmt)" ( (binary_expression "2 < eStmt" number_literal < identifier) ))) * number_literal) + number_literal) )))) ;) (labeled_statement "LAB_000f0dc8:\n    iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);" statement_identifier : (expression_statement "iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c);" (assignment_expression "iVar7 = sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c)" identifier = (call_expression "sqlite3LockAndPrepare\n                      (db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c)" identifier (argument_list "(db,(char *)0x0,(int)(p->aStmt + eStmt),0,in_stack_ffffff94,in_stack_ffffff98,\n                       in_stack_ffffff9c)" ( identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (cast_expression "(int)(p->aStmt + eStmt)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(p->aStmt + eStmt)" ( (binary_expression "p->aStmt + eStmt" (field_expression "p->aStmt" identifier -> field_identifier) + identifier) ))) , number_literal , identifier , identifier , identifier )))) ;)) (expression_statement "sqlite3_free(pcVar6);" (call_expression "sqlite3_free(pcVar6)" identifier (argument_list "(pcVar6)" ( identifier ))) ;) (if_statement "if ((iVar7 != 0) && (pzErrMsg != (char **)0x0)) {\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }" if (parenthesized_expression "((iVar7 != 0) && (pzErrMsg != (char **)0x0))" ( (binary_expression "(iVar7 != 0) && (pzErrMsg != (char **)0x0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) && (parenthesized_expression "(pzErrMsg != (char **)0x0)" ( (binary_expression "pzErrMsg != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ))) )) (compound_statement "{\n      pcVar6 = sqlite3_errmsg(pFVar2->db);\n      pcVar6 = sqlite3_mprintf("%s",pcVar6);\n      *pzErrMsg = pcVar6;\n    }" { (expression_statement "pcVar6 = sqlite3_errmsg(pFVar2->db);" (assignment_expression "pcVar6 = sqlite3_errmsg(pFVar2->db)" identifier = (call_expression "sqlite3_errmsg(pFVar2->db)" identifier (argument_list "(pFVar2->db)" ( (field_expression "pFVar2->db" identifier -> field_identifier) )))) ;) (expression_statement "pcVar6 = sqlite3_mprintf("%s",pcVar6);" (assignment_expression "pcVar6 = sqlite3_mprintf("%s",pcVar6)" identifier = (call_expression "sqlite3_mprintf("%s",pcVar6)" identifier (argument_list "("%s",pcVar6)" ( (string_literal ""%s"" " string_content ") , identifier )))) ;) (expression_statement "*pzErrMsg = pcVar6;" (assignment_expression "*pzErrMsg = pcVar6" (pointer_expression "*pzErrMsg" * identifier) = identifier) ;) })) (goto_statement "goto LAB_000f0e1f;" goto statement_identifier ;)) (case_statement "case 10:\n    pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);\n    db = (sqlite3 *)0x85;\n    if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;" case number_literal : (expression_statement "pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);" (assignment_expression "pcVar6 = sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent)" identifier = (call_expression "sqlite3_mprintf("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent)" identifier (argument_list "("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent)" ( (string_literal ""SELECT %s FROM %s AS T"" " string_content ") , (field_expression "pFVar2->zContentExprlist" identifier -> field_identifier) , (field_expression "pFVar2->zContent" identifier -> field_identifier) )))) ;) (expression_statement "db = (sqlite3 *)0x85;" (assignment_expression "db = (sqlite3 *)0x85" identifier = (cast_expression "(sqlite3 *)0x85" ( (type_descriptor "sqlite3 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (pcVar6 != (char *)0x0) goto LAB_000f0dc8;" if (parenthesized_expression "(pcVar6 != (char *)0x0)" ( (binary_expression "pcVar6 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000f0dc8;" goto statement_identifier ;))) })) (expression_statement "iVar7 = 7;" (assignment_expression "iVar7 = 7" identifier = number_literal) ;) (labeled_statement "LAB_000f0e1f:\n  pStmt = p->aStmt[eStmt];" statement_identifier : (expression_statement "pStmt = p->aStmt[eStmt];" (assignment_expression "pStmt = p->aStmt[eStmt]" identifier = (subscript_expression "p->aStmt[eStmt]" (field_expression "p->aStmt" identifier -> field_identifier) [ identifier ])) ;)) (labeled_statement "LAB_000f0be2:\n  *ppStmt = pStmt;" statement_identifier : (expression_statement "*ppStmt = pStmt;" (assignment_expression "*ppStmt = pStmt" (pointer_expression "*ppStmt" * identifier) = identifier) ;)) (expression_statement "sqlite3_reset(pStmt);" (call_expression "sqlite3_reset(pStmt)" identifier (argument_list "(pStmt)" ( identifier ))) ;) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar7;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar7;\n  }" { (return_statement "return iVar7;" return identifier ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int __regparm3 FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    \n  FUN_00116110();\n}\n\n" (function_definition "int __regparm3 FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    \n  FUN_00116110();\n}" primitive_type (ERROR "__regparm3" identifier) (function_declarator "FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)" identifier (parameter_list "(int *param_1,int param_2,int *param_3,undefined4 *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "undefined4 *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    \n  FUN_00116110();\n}" { (declaration "undefined4 *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined1 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined1 *puVar5;" type_identifier (pointer_declarator "*puVar5" * identifier) ;) (declaration "undefined4 uVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "char *local_4c [11];" primitive_type (pointer_declarator "*local_4c [11]" * (array_declarator "local_4c [11]" identifier [ number_literal ])) ;) (declaration "int local_20;" primitive_type identifier ;) (declaration "undefined4 uStack_14;" type_identifier identifier ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "uStack_14 = 0xf0bb2;" (assignment_expression "uStack_14 = 0xf0bb2" identifier = number_literal) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = param_1[param_2 + 6];" (assignment_expression "iVar2 = param_1[param_2 + 6]" identifier = (subscript_expression "param_1[param_2 + 6]" identifier [ (binary_expression "param_2 + 6" identifier + number_literal) ])) ;) (if_statement "if (iVar2 != 0) goto LAB_000f0be2;" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_000f0be2;" goto statement_identifier ;)) (expression_statement "puVar1 = (undefined4 *)*param_1;" (assignment_expression "puVar1 = (undefined4 *)*param_1" identifier = (cast_expression "(undefined4 *)*param_1" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "local_4c[3]" identifier [ number_literal ]) = (string_literal ""INSERT INTO %Q.\'%q_content\' VALUES(%s)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "local_4c[4]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";" (assignment_expression "local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?"" (subscript_expression "local_4c[5]" identifier [ number_literal ]) = (string_literal ""DELETE FROM %Q.\'%q_content\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";" (assignment_expression "local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" (subscript_expression "local_4c[6]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "local_4c[7]" identifier [ number_literal ]) = (string_literal ""DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";" (assignment_expression "local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" (subscript_expression "local_4c[0]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" " string_content ")) ;) (expression_statement "local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "local_4c[8]" identifier [ number_literal ]) = (string_literal ""SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";" (assignment_expression "local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" (subscript_expression "local_4c[1]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" " string_content ")) ;) (expression_statement "local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";" (assignment_expression "local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" (subscript_expression "local_4c[9]" identifier [ number_literal ]) = (string_literal ""REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement "local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";" (assignment_expression "local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?"" (subscript_expression "local_4c[2]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" " string_content ")) ;) (expression_statement "local_4c[10] = "SELECT %s FROM %s AS T";" (assignment_expression "local_4c[10] = "SELECT %s FROM %s AS T"" (subscript_expression "local_4c[10]" identifier [ number_literal ]) = (string_literal ""SELECT %s FROM %s AS T"" " string_content ")) ;) (switch_statement "switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }" switch (parenthesized_expression "(param_2)" ( identifier )) (compound_statement "{\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }" { (case_statement "case 0:" case number_literal :) (case_statement "case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;" case number_literal : (expression_statement "uVar6 = puVar1[10];" (assignment_expression "uVar6 = puVar1[10]" identifier = (subscript_expression "puVar1[10]" identifier [ number_literal ])) ;) (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" identifier = (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" identifier (argument_list "(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" ( (subscript_expression "local_4c[param_2]" identifier [ identifier ]) , (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) , (subscript_expression "puVar1[9]" identifier [ number_literal ]) , identifier , identifier , identifier )))) ;) (goto_statement "goto LAB_000f0db1;" goto statement_identifier ;)) (case_statement "case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;" case number_literal : (expression_statement "iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);" (assignment_expression "iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" identifier = (call_expression "FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" identifier (argument_list "("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" ( (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" " string_content ") , (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) , (subscript_expression "puVar1[9]" identifier [ number_literal ]) , (subscript_expression "puVar1[10]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = 0x81;" (assignment_expression "iVar2 = 0x81" identifier = number_literal) ;) (goto_statement "goto code_r0x000f0dc8;" goto statement_identifier ;)) (case_statement "case 3:" case number_literal :) (case_statement "case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;" case number_literal : (expression_statement "iVar2 = puVar1[3];" (assignment_expression "iVar2 = puVar1[3]" identifier = (subscript_expression "puVar1[3]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = FUN_0005b490();" (assignment_expression "iVar8 = FUN_0005b490()" identifier = (call_expression "FUN_0005b490()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }" { (expression_statement "iVar8 = (iVar2 + 1) * 2;" (assignment_expression "iVar8 = (iVar2 + 1) * 2" identifier = (binary_expression "(iVar2 + 1) * 2" (parenthesized_expression "(iVar2 + 1)" ( (binary_expression "iVar2 + 1" identifier + number_literal) )) * number_literal)) ;) (expression_statement "puVar3 = (undefined1 *)FUN_000421f0();" (assignment_expression "puVar3 = (undefined1 *)FUN_000421f0()" identifier = (cast_expression "(undefined1 *)FUN_000421f0()" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_000421f0()" identifier (argument_list "()" ( ))))) ;) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }" if (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" ( (binary_expression "puVar3 != (undefined1 *)0x0" identifier != (cast_expression "(undefined1 *)0x0" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }" { (if_statement "if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" if (parenthesized_expression "(iVar2 + 1 < 1)" ( (binary_expression "iVar2 + 1 < 1" (binary_expression "iVar2 + 1" identifier + number_literal) < number_literal) )) (compound_statement "{\n          iVar8 = -1;\n        }" { (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" identifier = number_literal) ;) }) (else_clause "else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" else (compound_statement "{\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" { (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" identifier = identifier) ;) (do_statement "do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);" do (compound_statement "{\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          }" { (expression_statement "*puVar4 = 0x3f;" (assignment_expression "*puVar4 = 0x3f" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "puVar5 = puVar4 + 2;" (assignment_expression "puVar5 = puVar4 + 2" identifier = (binary_expression "puVar4 + 2" identifier + number_literal)) ;) (expression_statement "puVar4[1] = 0x2c;" (assignment_expression "puVar4[1] = 0x2c" (subscript_expression "puVar4[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" identifier = identifier) ;) }) while (parenthesized_expression "(puVar3 + iVar8 != puVar5)" ( (binary_expression "puVar3 + iVar8 != puVar5" (binary_expression "puVar3 + iVar8" identifier + identifier) != identifier) )) ;) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" identifier = (binary_expression "iVar8 + -1" identifier + number_literal)) ;) }))) (expression_statement "puVar3[iVar8] = 0;" (assignment_expression "puVar3[iVar8] = 0" (subscript_expression "puVar3[iVar8]" identifier [ identifier ]) = number_literal) ;) (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" identifier = (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" identifier (argument_list "(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" ( (subscript_expression "local_4c[param_2]" identifier [ identifier ]) , (subscript_expression "puVar1[1]" identifier [ number_literal ]) , (subscript_expression "puVar1[2]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "FUN_00042800(puVar3);" (call_expression "FUN_00042800(puVar3)" identifier (argument_list "(puVar3)" ( identifier ))) ;) (goto_statement "goto LAB_000f0db1;" goto statement_identifier ;) })) })) (break_statement "break;" break ;)) (case_statement "default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;" default : (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2])" identifier = (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2])" identifier (argument_list "(local_4c[param_2],puVar1[1],puVar1[2])" ( (subscript_expression "local_4c[param_2]" identifier [ identifier ]) , (subscript_expression "puVar1[1]" identifier [ number_literal ]) , (subscript_expression "puVar1[2]" identifier [ number_literal ]) )))) ;) (labeled_statement "LAB_000f0db1:\n    if (iVar7 == 0) break;" statement_identifier : (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;))) (expression_statement "iVar2 = (uint)(2 < param_2) * 4 + 0x81;" (assignment_expression "iVar2 = (uint)(2 < param_2) * 4 + 0x81" identifier = (binary_expression "(uint)(2 < param_2) * 4 + 0x81" (binary_expression "(uint)(2 < param_2) * 4" (call_expression "(uint)(2 < param_2)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(2 < param_2)" ( (binary_expression "2 < param_2" number_literal < identifier) ))) * number_literal) + number_literal)) ;) (labeled_statement "code_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);" statement_identifier : (expression_statement "iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);" (assignment_expression "iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0)" identifier = (call_expression "FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0)" identifier (argument_list "(iVar2,0,param_1 + param_2 + 6,0)" ( identifier , number_literal , (binary_expression "param_1 + param_2 + 6" (binary_expression "param_1 + param_2" identifier + identifier) + number_literal) , number_literal )))) ;)) (expression_statement "FUN_00042800(iVar7);" (call_expression "FUN_00042800(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))) ;) (if_statement "if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }" if (parenthesized_expression "((iVar8 != 0) && (param_4 != (undefined4 *)0x0))" ( (binary_expression "(iVar8 != 0) && (param_4 != (undefined4 *)0x0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) && (parenthesized_expression "(param_4 != (undefined4 *)0x0)" ( (binary_expression "param_4 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }" { (expression_statement "uVar6 = FUN_00073210(*puVar1);" (assignment_expression "uVar6 = FUN_00073210(*puVar1)" identifier = (call_expression "FUN_00073210(*puVar1)" identifier (argument_list "(*puVar1)" ( (pointer_expression "*puVar1" * identifier) )))) ;) (expression_statement "uVar6 = FUN_0008ff90("%s",uVar6);" (assignment_expression "uVar6 = FUN_0008ff90("%s",uVar6)" identifier = (call_expression "FUN_0008ff90("%s",uVar6)" identifier (argument_list "("%s",uVar6)" ( (string_literal ""%s"" " string_content ") , identifier )))) ;) (expression_statement "*param_4 = uVar6;" (assignment_expression "*param_4 = uVar6" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (goto_statement "goto LAB_000f0e1f;" goto statement_identifier ;)) (case_statement "case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;" case number_literal : (expression_statement "iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);" (assignment_expression "iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" identifier = (call_expression "FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" identifier (argument_list "("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" ( (string_literal ""SELECT %s FROM %s AS T"" " string_content ") , (subscript_expression "puVar1[0xd]" identifier [ number_literal ]) , (subscript_expression "puVar1[9]" identifier [ number_literal ]) )))) ;) (expression_statement "iVar2 = 0x85;" (assignment_expression "iVar2 = 0x85" identifier = number_literal) ;) (if_statement "if (iVar7 != 0) goto code_r0x000f0dc8;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto code_r0x000f0dc8;" goto statement_identifier ;))) })) (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" identifier = number_literal) ;) (labeled_statement "LAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];" statement_identifier : (expression_statement "iVar2 = param_1[param_2 + 6];" (assignment_expression "iVar2 = param_1[param_2 + 6]" identifier = (subscript_expression "param_1[param_2 + 6]" identifier [ (binary_expression "param_2 + 6" identifier + number_literal) ])) ;)) (labeled_statement "LAB_000f0be2:\n  *param_3 = iVar2;" statement_identifier : (expression_statement "*param_3 = iVar2;" (assignment_expression "*param_3 = iVar2" (pointer_expression "*param_3" * identifier) = identifier) ;)) (expression_statement "FUN_000ac730(iVar2);" (call_expression "FUN_000ac730(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar8;\n  }" { (return_statement "return iVar8;" return identifier ;) })) (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content escape_sequence string_content escape_sequence string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (string_literal " string_content ")) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ IDENT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) * LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) != IDENT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ IDENT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ IDENT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ IDENT ]) , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression LIT < IDENT) ))) * LIT) + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (binary_expression (binary_expression IDENT + IDENT) + LIT) , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int __regparm3 FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)\n\n{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    \n  FUN_00116110();\n}" (primitive_type "int") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000f0ba0(int *param_1,int param_2,int *param_3,undefined4 *param_4)" (identifier "FUN_000f0ba0") (parameter_list "(int *param_1,int param_2,int *param_3,undefined4 *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "undefined4 *param_4" (type_identifier "undefined4") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  undefined4 *puVar1;\n  int iVar2;\n  undefined1 *puVar3;\n  undefined1 *puVar4;\n  undefined1 *puVar5;\n  undefined4 uVar6;\n  int iVar7;\n  int iVar8;\n  int in_GS_OFFSET;\n  char *local_4c [11];\n  int local_20;\n  undefined4 uStack_14;\n  \n  iVar8 = 0;\n  uStack_14 = 0xf0bb2;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  iVar2 = param_1[param_2 + 6];\n  if (iVar2 != 0) goto LAB_000f0be2;\n  puVar1 = (undefined4 *)*param_1;\n  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";\n  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";\n  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";\n  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";\n  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";\n  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";\n  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";\n  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";\n  local_4c[10] = "SELECT %s FROM %s AS T";\n  switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }\n  iVar8 = 7;\nLAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];\nLAB_000f0be2:\n  *param_3 = iVar2;\n  FUN_000ac730(iVar2);\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }\n                    \n  FUN_00116110();\n}" ({ "{") (declaration "undefined4 *puVar1;" (type_identifier "undefined4") (pointer_declarator "*puVar1" (* "*") (identifier "puVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined1 *puVar4;" (type_identifier "undefined1") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined1 *puVar5;" (type_identifier "undefined1") (pointer_declarator "*puVar5" (* "*") (identifier "puVar5")) (; ";")) (declaration "undefined4 uVar6;" (type_identifier "undefined4") (identifier "uVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "char *local_4c [11];" (primitive_type "char") (pointer_declarator "*local_4c [11]" (* "*") (array_declarator "local_4c [11]" (identifier "local_4c") ([ "[") (number_literal "11") (] "]"))) (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (declaration "undefined4 uStack_14;" (type_identifier "undefined4") (identifier "uStack_14") (; ";")) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" (identifier "iVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_14 = 0xf0bb2;" (assignment_expression "uStack_14 = 0xf0bb2" (identifier "uStack_14") (= "=") (number_literal "0xf0bb2")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "iVar2 = param_1[param_2 + 6];" (assignment_expression "iVar2 = param_1[param_2 + 6]" (identifier "iVar2") (= "=") (subscript_expression "param_1[param_2 + 6]" (identifier "param_1") ([ "[") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) (] "]"))) (; ";")) (if_statement "if (iVar2 != 0) goto LAB_000f0be2;" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_000f0be2;" (goto "goto") (statement_identifier "LAB_000f0be2") (; ";"))) (expression_statement "puVar1 = (undefined4 *)*param_1;" (assignment_expression "puVar1 = (undefined4 *)*param_1" (identifier "puVar1") (= "=") (cast_expression "(undefined4 *)*param_1" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "local_4c[3]" (identifier "local_4c") ([ "[") (number_literal "3") (] "]")) (= "=") (string_literal ""INSERT INTO %Q.\'%q_content\' VALUES(%s)"" (" """) (string_content "INSERT INTO %Q.") (escape_sequence "\'") (string_content "%q_content") (escape_sequence "\'") (string_content " VALUES(%s)") (" """))) (; ";")) (expression_statement "local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";" (assignment_expression "local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" (subscript_expression "local_4c[4]" (identifier "local_4c") ([ "[") (number_literal "4") (] "]")) (= "=") (string_literal ""REPLACE INTO %Q.\'%q_content\' VALUES(%s)"" (" """) (string_content "REPLACE INTO %Q.") (escape_sequence "\'") (string_content "%q_content") (escape_sequence "\'") (string_content " VALUES(%s)") (" """))) (; ";")) (expression_statement "local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";" (assignment_expression "local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?"" (subscript_expression "local_4c[5]" (identifier "local_4c") ([ "[") (number_literal "5") (] "]")) (= "=") (string_literal ""DELETE FROM %Q.\'%q_content\' WHERE id=?"" (" """) (string_content "DELETE FROM %Q.") (escape_sequence "\'") (string_content "%q_content") (escape_sequence "\'") (string_content " WHERE id=?") (" """))) (; ";")) (expression_statement "local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";" (assignment_expression "local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" (subscript_expression "local_4c[6]" (identifier "local_4c") ([ "[") (number_literal "6") (] "]")) (= "=") (string_literal ""REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)"" (" """) (string_content "REPLACE INTO %Q.") (escape_sequence "\'") (string_content "%q_docsize") (escape_sequence "\'") (string_content " VALUES(?,?)") (" """))) (; ";")) (expression_statement "local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "local_4c[7]" (identifier "local_4c") ([ "[") (number_literal "7") (] "]")) (= "=") (string_literal ""DELETE FROM %Q.\'%q_docsize\' WHERE id=?"" (" """) (string_content "DELETE FROM %Q.") (escape_sequence "\'") (string_content "%q_docsize") (escape_sequence "\'") (string_content " WHERE id=?") (" """))) (; ";")) (expression_statement "local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";" (assignment_expression "local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" (subscript_expression "local_4c[0]" (identifier "local_4c") ([ "[") (number_literal "0") (] "]")) (= "=") (string_literal ""SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC"" (" """) (string_content "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC") (" """))) (; ";")) (expression_statement "local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";" (assignment_expression "local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" (subscript_expression "local_4c[8]" (identifier "local_4c") ([ "[") (number_literal "8") (] "]")) (= "=") (string_literal ""SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?"" (" """) (string_content "SELECT sz FROM %Q.") (escape_sequence "\'") (string_content "%q_docsize") (escape_sequence "\'") (string_content " WHERE id=?") (" """))) (; ";")) (expression_statement "local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";" (assignment_expression "local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" (subscript_expression "local_4c[1]" (identifier "local_4c") ([ "[") (number_literal "1") (] "]")) (= "=") (string_literal ""SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC"" (" """) (string_content "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC") (" """))) (; ";")) (expression_statement "local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";" (assignment_expression "local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" (subscript_expression "local_4c[9]" (identifier "local_4c") ([ "[") (number_literal "9") (] "]")) (= "=") (string_literal ""REPLACE INTO %Q.\'%q_config\' VALUES(?,?)"" (" """) (string_content "REPLACE INTO %Q.") (escape_sequence "\'") (string_content "%q_config") (escape_sequence "\'") (string_content " VALUES(?,?)") (" """))) (; ";")) (expression_statement "local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";" (assignment_expression "local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?"" (subscript_expression "local_4c[2]" (identifier "local_4c") ([ "[") (number_literal "2") (] "]")) (= "=") (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" (" """) (string_content "SELECT %s FROM %s T WHERE T.%Q=?") (" """))) (; ";")) (expression_statement "local_4c[10] = "SELECT %s FROM %s AS T";" (assignment_expression "local_4c[10] = "SELECT %s FROM %s AS T"" (subscript_expression "local_4c[10]" (identifier "local_4c") ([ "[") (number_literal "10") (] "]")) (= "=") (string_literal ""SELECT %s FROM %s AS T"" (" """) (string_content "SELECT %s FROM %s AS T") (" """))) (; ";")) (switch_statement "switch(param_2) {\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }" (switch "switch") (parenthesized_expression "(param_2)" (( "(") (identifier "param_2") () ")")) (compound_statement "{\n  case 0:\n  case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;\n  case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;\n  case 3:\n  case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;\n  default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;\n  case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;\n  }" ({ "{") (case_statement "case 0:" (case "case") (number_literal "0") (: ":")) (case_statement "case 1:\n    uVar6 = puVar1[10];\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);\n    goto LAB_000f0db1;" (case "case") (number_literal "1") (: ":") (expression_statement "uVar6 = puVar1[10];" (assignment_expression "uVar6 = puVar1[10]" (identifier "uVar6") (= "=") (subscript_expression "puVar1[10]" (identifier "puVar1") ([ "[") (number_literal "10") (] "]"))) (; ";")) (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" (identifier "iVar7") (= "=") (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" (identifier "FUN_0008ff90") (argument_list "(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6)" (( "(") (subscript_expression "local_4c[param_2]" (identifier "local_4c") ([ "[") (identifier "param_2") (] "]")) (, ",") (subscript_expression "puVar1[0xd]" (identifier "puVar1") ([ "[") (number_literal "0xd") (] "]")) (, ",") (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (, ",") (identifier "uVar6") (, ",") (identifier "uVar6") (, ",") (identifier "uVar6") () ")")))) (; ";")) (goto_statement "goto LAB_000f0db1;" (goto "goto") (statement_identifier "LAB_000f0db1") (; ";"))) (case_statement "case 2:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);\n    if (iVar7 == 0) break;\n    iVar2 = 0x81;\n    goto code_r0x000f0dc8;" (case "case") (number_literal "2") (: ":") (expression_statement "iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);" (assignment_expression "iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" (identifier "iVar7") (= "=") (call_expression "FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" (identifier "FUN_0008ff90") (argument_list "("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10])" (( "(") (string_literal ""SELECT %s FROM %s T WHERE T.%Q=?"" (" """) (string_content "SELECT %s FROM %s T WHERE T.%Q=?") (" """)) (, ",") (subscript_expression "puVar1[0xd]" (identifier "puVar1") ([ "[") (number_literal "0xd") (] "]")) (, ",") (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) (, ",") (subscript_expression "puVar1[10]" (identifier "puVar1") ([ "[") (number_literal "10") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar2 = 0x81;" (assignment_expression "iVar2 = 0x81" (identifier "iVar2") (= "=") (number_literal "0x81")) (; ";")) (goto_statement "goto code_r0x000f0dc8;" (goto "goto") (statement_identifier "code_r0x000f0dc8") (; ";"))) (case_statement "case 3:" (case "case") (number_literal "3") (: ":")) (case_statement "case 4:\n    iVar2 = puVar1[3];\n    iVar8 = FUN_0005b490();\n    if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }\n    break;" (case "case") (number_literal "4") (: ":") (expression_statement "iVar2 = puVar1[3];" (assignment_expression "iVar2 = puVar1[3]" (identifier "iVar2") (= "=") (subscript_expression "puVar1[3]" (identifier "puVar1") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "iVar8 = FUN_0005b490();" (assignment_expression "iVar8 = FUN_0005b490()" (identifier "iVar8") (= "=") (call_expression "FUN_0005b490()" (identifier "FUN_0005b490") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      iVar8 = (iVar2 + 1) * 2;\n      puVar3 = (undefined1 *)FUN_000421f0();\n      if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }\n    }" ({ "{") (expression_statement "iVar8 = (iVar2 + 1) * 2;" (assignment_expression "iVar8 = (iVar2 + 1) * 2" (identifier "iVar8") (= "=") (binary_expression "(iVar2 + 1) * 2" (parenthesized_expression "(iVar2 + 1)" (( "(") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "2"))) (; ";")) (expression_statement "puVar3 = (undefined1 *)FUN_000421f0();" (assignment_expression "puVar3 = (undefined1 *)FUN_000421f0()" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)FUN_000421f0()" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_000421f0()" (identifier "FUN_000421f0") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if (puVar3 != (undefined1 *)0x0) {\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }" (if "if") (parenthesized_expression "(puVar3 != (undefined1 *)0x0)" (( "(") (binary_expression "puVar3 != (undefined1 *)0x0" (identifier "puVar3") (!= "!=") (cast_expression "(undefined1 *)0x0" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }\n        puVar3[iVar8] = 0;\n        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);\n        FUN_00042800(puVar3);\n        goto LAB_000f0db1;\n      }" ({ "{") (if_statement "if (iVar2 + 1 < 1) {\n          iVar8 = -1;\n        }\n        else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" (if "if") (parenthesized_expression "(iVar2 + 1 < 1)" (( "(") (binary_expression "iVar2 + 1 < 1" (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          iVar8 = -1;\n        }" ({ "{") (expression_statement "iVar8 = -1;" (assignment_expression "iVar8 = -1" (identifier "iVar8") (= "=") (number_literal "-1")) (; ";")) (} "}")) (else_clause "else {\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" (else "else") (compound_statement "{\n          puVar4 = puVar3;\n          do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);\n          iVar8 = iVar8 + -1;\n        }" ({ "{") (expression_statement "puVar4 = puVar3;" (assignment_expression "puVar4 = puVar3" (identifier "puVar4") (= "=") (identifier "puVar3")) (; ";")) (do_statement "do {\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          } while (puVar3 + iVar8 != puVar5);" (do "do") (compound_statement "{\n            *puVar4 = 0x3f;\n            puVar5 = puVar4 + 2;\n            puVar4[1] = 0x2c;\n            puVar4 = puVar5;\n          }" ({ "{") (expression_statement "*puVar4 = 0x3f;" (assignment_expression "*puVar4 = 0x3f" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0x3f")) (; ";")) (expression_statement "puVar5 = puVar4 + 2;" (assignment_expression "puVar5 = puVar4 + 2" (identifier "puVar5") (= "=") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "puVar4[1] = 0x2c;" (assignment_expression "puVar4[1] = 0x2c" (subscript_expression "puVar4[1]" (identifier "puVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x2c")) (; ";")) (expression_statement "puVar4 = puVar5;" (assignment_expression "puVar4 = puVar5" (identifier "puVar4") (= "=") (identifier "puVar5")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(puVar3 + iVar8 != puVar5)" (( "(") (binary_expression "puVar3 + iVar8 != puVar5" (binary_expression "puVar3 + iVar8" (identifier "puVar3") (+ "+") (identifier "iVar8")) (!= "!=") (identifier "puVar5")) () ")")) (; ";")) (expression_statement "iVar8 = iVar8 + -1;" (assignment_expression "iVar8 = iVar8 + -1" (identifier "iVar8") (= "=") (binary_expression "iVar8 + -1" (identifier "iVar8") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (expression_statement "puVar3[iVar8] = 0;" (assignment_expression "puVar3[iVar8] = 0" (subscript_expression "puVar3[iVar8]" (identifier "puVar3") ([ "[") (identifier "iVar8") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" (identifier "iVar7") (= "=") (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" (identifier "FUN_0008ff90") (argument_list "(local_4c[param_2],puVar1[1],puVar1[2],puVar3)" (( "(") (subscript_expression "local_4c[param_2]" (identifier "local_4c") ([ "[") (identifier "param_2") (] "]")) (, ",") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "puVar3") () ")")))) (; ";")) (expression_statement "FUN_00042800(puVar3);" (call_expression "FUN_00042800(puVar3)" (identifier "FUN_00042800") (argument_list "(puVar3)" (( "(") (identifier "puVar3") () ")"))) (; ";")) (goto_statement "goto LAB_000f0db1;" (goto "goto") (statement_identifier "LAB_000f0db1") (; ";")) (} "}"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);\nLAB_000f0db1:\n    if (iVar7 == 0) break;\n    iVar2 = (uint)(2 < param_2) * 4 + 0x81;\ncode_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);\n    FUN_00042800(iVar7);\n    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }\n    goto LAB_000f0e1f;" (default "default") (: ":") (expression_statement "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);" (assignment_expression "iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2])" (identifier "iVar7") (= "=") (call_expression "FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2])" (identifier "FUN_0008ff90") (argument_list "(local_4c[param_2],puVar1[1],puVar1[2])" (( "(") (subscript_expression "local_4c[param_2]" (identifier "local_4c") ([ "[") (identifier "param_2") (] "]")) (, ",") (subscript_expression "puVar1[1]" (identifier "puVar1") ([ "[") (number_literal "1") (] "]")) (, ",") (subscript_expression "puVar1[2]" (identifier "puVar1") ([ "[") (number_literal "2") (] "]")) () ")")))) (; ";")) (labeled_statement "LAB_000f0db1:\n    if (iVar7 == 0) break;" (statement_identifier "LAB_000f0db1") (: ":") (if_statement "if (iVar7 == 0) break;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";")))) (expression_statement "iVar2 = (uint)(2 < param_2) * 4 + 0x81;" (assignment_expression "iVar2 = (uint)(2 < param_2) * 4 + 0x81" (identifier "iVar2") (= "=") (binary_expression "(uint)(2 < param_2) * 4 + 0x81" (binary_expression "(uint)(2 < param_2) * 4" (call_expression "(uint)(2 < param_2)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(2 < param_2)" (( "(") (binary_expression "2 < param_2" (number_literal "2") (< "<") (identifier "param_2")) () ")"))) (* "*") (number_literal "4")) (+ "+") (number_literal "0x81"))) (; ";")) (labeled_statement "code_r0x000f0dc8:\n    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);" (statement_identifier "code_r0x000f0dc8") (: ":") (expression_statement "iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);" (assignment_expression "iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0)" (identifier "iVar8") (= "=") (call_expression "FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0)" (identifier "FUN_000e2920") (argument_list "(iVar2,0,param_1 + param_2 + 6,0)" (( "(") (identifier "iVar2") (, ",") (number_literal "0") (, ",") (binary_expression "param_1 + param_2 + 6" (binary_expression "param_1 + param_2" (identifier "param_1") (+ "+") (identifier "param_2")) (+ "+") (number_literal "6")) (, ",") (number_literal "0") () ")")))) (; ";"))) (expression_statement "FUN_00042800(iVar7);" (call_expression "FUN_00042800(iVar7)" (identifier "FUN_00042800") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))) (; ";")) (if_statement "if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }" (if "if") (parenthesized_expression "((iVar8 != 0) && (param_4 != (undefined4 *)0x0))" (( "(") (binary_expression "(iVar8 != 0) && (param_4 != (undefined4 *)0x0)" (parenthesized_expression "(iVar8 != 0)" (( "(") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_4 != (undefined4 *)0x0)" (( "(") (binary_expression "param_4 != (undefined4 *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n      uVar6 = FUN_00073210(*puVar1);\n      uVar6 = FUN_0008ff90("%s",uVar6);\n      *param_4 = uVar6;\n    }" ({ "{") (expression_statement "uVar6 = FUN_00073210(*puVar1);" (assignment_expression "uVar6 = FUN_00073210(*puVar1)" (identifier "uVar6") (= "=") (call_expression "FUN_00073210(*puVar1)" (identifier "FUN_00073210") (argument_list "(*puVar1)" (( "(") (pointer_expression "*puVar1" (* "*") (identifier "puVar1")) () ")")))) (; ";")) (expression_statement "uVar6 = FUN_0008ff90("%s",uVar6);" (assignment_expression "uVar6 = FUN_0008ff90("%s",uVar6)" (identifier "uVar6") (= "=") (call_expression "FUN_0008ff90("%s",uVar6)" (identifier "FUN_0008ff90") (argument_list "("%s",uVar6)" (( "(") (string_literal ""%s"" (" """) (string_content "%s") (" """)) (, ",") (identifier "uVar6") () ")")))) (; ";")) (expression_statement "*param_4 = uVar6;" (assignment_expression "*param_4 = uVar6" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "uVar6")) (; ";")) (} "}"))) (goto_statement "goto LAB_000f0e1f;" (goto "goto") (statement_identifier "LAB_000f0e1f") (; ";"))) (case_statement "case 10:\n    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);\n    iVar2 = 0x85;\n    if (iVar7 != 0) goto code_r0x000f0dc8;" (case "case") (number_literal "10") (: ":") (expression_statement "iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);" (assignment_expression "iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" (identifier "iVar7") (= "=") (call_expression "FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" (identifier "FUN_0008ff90") (argument_list "("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9])" (( "(") (string_literal ""SELECT %s FROM %s AS T"" (" """) (string_content "SELECT %s FROM %s AS T") (" """)) (, ",") (subscript_expression "puVar1[0xd]" (identifier "puVar1") ([ "[") (number_literal "0xd") (] "]")) (, ",") (subscript_expression "puVar1[9]" (identifier "puVar1") ([ "[") (number_literal "9") (] "]")) () ")")))) (; ";")) (expression_statement "iVar2 = 0x85;" (assignment_expression "iVar2 = 0x85" (identifier "iVar2") (= "=") (number_literal "0x85")) (; ";")) (if_statement "if (iVar7 != 0) goto code_r0x000f0dc8;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto code_r0x000f0dc8;" (goto "goto") (statement_identifier "code_r0x000f0dc8") (; ";")))) (} "}"))) (expression_statement "iVar8 = 7;" (assignment_expression "iVar8 = 7" (identifier "iVar8") (= "=") (number_literal "7")) (; ";")) (labeled_statement "LAB_000f0e1f:\n  iVar2 = param_1[param_2 + 6];" (statement_identifier "LAB_000f0e1f") (: ":") (expression_statement "iVar2 = param_1[param_2 + 6];" (assignment_expression "iVar2 = param_1[param_2 + 6]" (identifier "iVar2") (= "=") (subscript_expression "param_1[param_2 + 6]" (identifier "param_1") ([ "[") (binary_expression "param_2 + 6" (identifier "param_2") (+ "+") (number_literal "6")) (] "]"))) (; ";"))) (labeled_statement "LAB_000f0be2:\n  *param_3 = iVar2;" (statement_identifier "LAB_000f0be2") (: ":") (expression_statement "*param_3 = iVar2;" (assignment_expression "*param_3 = iVar2" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "iVar2")) (; ";"))) (expression_statement "FUN_000ac730(iVar2);" (call_expression "FUN_000ac730(iVar2)" (identifier "FUN_000ac730") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return iVar8;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return iVar8;\n  }" ({ "{") (return_statement "return iVar8;" (return "return") (identifier "iVar8") (; ";")) (} "}"))) (expression_statement "FUN_00116110();" (call_expression "FUN_00116110()" (identifier "FUN_00116110") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

int __regparm3 function_1(type_1 *p,int var_14,type_2 **ppStmt,char **var_16)

{
  int var_19;
  type_3 *pFVar2;
  type_2 *var_2;
  type_4 *db;
  int var_6;
  type_5 *var_10;
  type_5 *var_11;
  type_5 *var_12;
  char *var_4;
  int var_7;
  int var_1;
  type_6 *in_stack_ffffff94;
  type_2 **in_stack_ffffff98;
  char **in_stack_ffffff9c;
  char *azStmt [11];
  
  var_7 = 0;
  var_19 = *(int *)(var_1 + 0x14);
  var_2 = p->aStmt[var_14];
  if (var_2 != (type_2 *)0x0) goto LAB_000f0be2;
  pFVar2 = p->pConfig;
  azStmt[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";
  azStmt[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";
  azStmt[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";
  azStmt[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";
  azStmt[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";
  azStmt[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";
  azStmt[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";
  azStmt[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";
  azStmt[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";
  azStmt[2] = "SELECT %s FROM %s T WHERE T.%Q=?";
  azStmt[10] = "SELECT %s FROM %s AS T";
  switch(var_14) {
  case 0:
  case 1:
    var_4 = pFVar2->zContentRowid;
    var_4 = var_3(azStmt[var_14],pFVar2->zContentExprlist,pFVar2->zContent,var_4,var_4,
                             var_4);
    goto LAB_000f0db1;
  case 2:
    var_4 = var_3("SELECT %s FROM %s T WHERE T.%Q=?",pFVar2->zContentExprlist,
                             pFVar2->zContent,pFVar2->zContentRowid);
    if (var_4 == (char *)0x0) break;
    db = (type_4 *)0x81;
    goto LAB_000f0dc8;
  case 3:
  case 4:
    var_7 = pFVar2->nCol;
    var_6 = var_5();
    if (var_6 == 0) {
      var_7 = var_7 + 1;
      var_6 = var_7 * 2;
      var_10 = (type_5 *)var_8(var_9(in_stack_ffffff98,in_stack_ffffff94));
      if (var_10 != (type_5 *)0x0) {
        if (var_7 < 1) {
          var_6 = -1;
        }
        else {
          var_11 = var_10;
          do {
            *var_11 = 0x3f;
            var_12 = var_11 + 2;
            var_11[1] = 0x2c;
            var_11 = var_12;
          } while (var_10 + var_6 != var_12);
          var_6 = var_6 + -1;
        }
        var_10[var_6] = 0;
        var_4 = var_3(azStmt[var_14],pFVar2->zDb,pFVar2->zName,var_10);
        var_13(var_10);
        goto LAB_000f0db1;
      }
    }
    break;
  default:
    var_4 = var_3(azStmt[var_14],pFVar2->zDb,pFVar2->zName);
LAB_000f0db1:
    if (var_4 == (char *)0x0) break;
    db = (type_4 *)((uint)(2 < var_14) * 4 + 0x81);
LAB_000f0dc8:
    var_7 = var_15
                      (db,(char *)0x0,(int)(p->aStmt + var_14),0,in_stack_ffffff94,in_stack_ffffff98,
                       in_stack_ffffff9c);
    var_13(var_4);
    if ((var_7 != 0) && (var_16 != (char **)0x0)) {
      var_4 = var_17(pFVar2->db);
      var_4 = var_3("%s",var_4);
      *var_16 = var_4;
    }
    goto LAB_000f0e1f;
  case 10:
    var_4 = var_3("SELECT %s FROM %s AS T",pFVar2->zContentExprlist,pFVar2->zContent);
    db = (type_4 *)0x85;
    if (var_4 != (char *)0x0) goto LAB_000f0dc8;
  }
  var_7 = 7;
LAB_000f0e1f:
  var_2 = p->aStmt[var_14];
LAB_000f0be2:
  *ppStmt = var_2;
  var_18(var_2);
  if (var_19 == *(int *)(var_1 + 0x14)) {
    return var_7;
  }
                    /* WARNING: Subroutine does not return */
  var_20();
}


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

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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

{
  undefined4 *puVar1;
  int iVar2;
  undefined1 *puVar3;
  undefined1 *puVar4;
  undefined1 *puVar5;
  undefined4 uVar6;
  int iVar7;
  int iVar8;
  int in_GS_OFFSET;
  char *local_4c [11];
  int local_20;
  undefined4 uStack_14;
  
  iVar8 = 0;
  uStack_14 = 0xf0bb2;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  iVar2 = param_1[param_2 + 6];
  if (iVar2 != 0) goto LAB_000f0be2;
  puVar1 = (undefined4 *)*param_1;
  local_4c[3] = "INSERT INTO %Q.\'%q_content\' VALUES(%s)";
  local_4c[4] = "REPLACE INTO %Q.\'%q_content\' VALUES(%s)";
  local_4c[5] = "DELETE FROM %Q.\'%q_content\' WHERE id=?";
  local_4c[6] = "REPLACE INTO %Q.\'%q_docsize\' VALUES(?,?)";
  local_4c[7] = "DELETE FROM %Q.\'%q_docsize\' WHERE id=?";
  local_4c[0] = "SELECT %s FROM %s T WHERE T.%Q >= ? AND T.%Q <= ? ORDER BY T.%Q ASC";
  local_4c[8] = "SELECT sz FROM %Q.\'%q_docsize\' WHERE id=?";
  local_4c[1] = "SELECT %s FROM %s T WHERE T.%Q <= ? AND T.%Q >= ? ORDER BY T.%Q DESC";
  local_4c[9] = "REPLACE INTO %Q.\'%q_config\' VALUES(?,?)";
  local_4c[2] = "SELECT %s FROM %s T WHERE T.%Q=?";
  local_4c[10] = "SELECT %s FROM %s AS T";
  switch(param_2) {
  case 0:
  case 1:
    uVar6 = puVar1[10];
    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[0xd],puVar1[9],uVar6,uVar6,uVar6);
    goto LAB_000f0db1;
  case 2:
    iVar7 = FUN_0008ff90("SELECT %s FROM %s T WHERE T.%Q=?",puVar1[0xd],puVar1[9],puVar1[10]);
    if (iVar7 == 0) break;
    iVar2 = 0x81;
    goto code_r0x000f0dc8;
  case 3:
  case 4:
    iVar2 = puVar1[3];
    iVar8 = FUN_0005b490();
    if (iVar8 == 0) {
      iVar8 = (iVar2 + 1) * 2;
      puVar3 = (undefined1 *)FUN_000421f0();
      if (puVar3 != (undefined1 *)0x0) {
        if (iVar2 + 1 < 1) {
          iVar8 = -1;
        }
        else {
          puVar4 = puVar3;
          do {
            *puVar4 = 0x3f;
            puVar5 = puVar4 + 2;
            puVar4[1] = 0x2c;
            puVar4 = puVar5;
          } while (puVar3 + iVar8 != puVar5);
          iVar8 = iVar8 + -1;
        }
        puVar3[iVar8] = 0;
        iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2],puVar3);
        FUN_00042800(puVar3);
        goto LAB_000f0db1;
      }
    }
    break;
  default:
    iVar7 = FUN_0008ff90(local_4c[param_2],puVar1[1],puVar1[2]);
LAB_000f0db1:
    if (iVar7 == 0) break;
    iVar2 = (uint)(2 < param_2) * 4 + 0x81;
code_r0x000f0dc8:
    iVar8 = FUN_000e2920(iVar2,0,param_1 + param_2 + 6,0);
    FUN_00042800(iVar7);
    if ((iVar8 != 0) && (param_4 != (undefined4 *)0x0)) {
      uVar6 = FUN_00073210(*puVar1);
      uVar6 = FUN_0008ff90("%s",uVar6);
      *param_4 = uVar6;
    }
    goto LAB_000f0e1f;
  case 10:
    iVar7 = FUN_0008ff90("SELECT %s FROM %s AS T",puVar1[0xd],puVar1[9]);
    iVar2 = 0x85;
    if (iVar7 != 0) goto code_r0x000f0dc8;
  }
  iVar8 = 7;
LAB_000f0e1f:
  iVar2 = param_1[param_2 + 6];
LAB_000f0be2:
  *param_3 = iVar2;
  FUN_000ac730(iVar2);
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return iVar8;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00116110();
}

