
char * fts5ExprPrint(Fts5Config *pConfig,Fts5ExprNode *pExpr)

{
  int iVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  char *pcVar5;
  Fts5ExprNearset *pFVar6;
  code *pcVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  uint uVar13;
  undefined *puVar14;
  undefined *puVar15;
  undefined *puVar16;
  char cVar17;
  char *pcVar18;
  char *pcVar19;
  char *pcVar20;
  Fts5ExprTerm *pFVar21;
  undefined *puVar22;
  Fts5Colset *zApp;
  Fts5ExprPhrase *pFVar23;
  undefined *puVar24;
  undefined *puVar25;
  Fts5ExprNode **ppFVar26;
  char *pcVar27;
  Fts5ExprTerm *pFVar28;
  int iStack_2c;
  
  puVar25 = PTR_DAT_0015b5fc;
  iVar2 = pExpr->eType;
  if (iVar2 == 0) {
    pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);
    return pcVar27;
  }
  if ((iVar2 == 9) || (iVar2 == 4)) {
    pFVar6 = pExpr->pNear;
    zApp = pFVar6->pColset;
    if ((zApp == (Fts5Colset *)0x0) ||
       (zApp = (Fts5Colset *)
               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,
                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {
      if (pFVar6->nPhrase < 2) {
        if (pFVar6->nPhrase != 1) {
          return (char *)zApp;
        }
      }
      else {
        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);
        if (zApp == (Fts5Colset *)0x0) {
          return (char *)0x0;
        }
        if (pFVar6->nPhrase < 1) {
          return (char *)zApp;
        }
      }
      pFVar23 = pFVar6->apPhrase[0];
      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);
      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;
      iStack_2c = 0;
      puVar25 = PTR_DAT_0015b5fc + -0x7558;
      do {
        puVar3 = PTR_LAB_0015b5e8;
        if (0 < pFVar23->nTerm) {
          pFVar21 = pFVar23->aTerm;
          iVar2 = 0;
          do {
            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);
            iVar12 = 0;
            iVar8 = iVar8 * 2 + 5;
            uVar13 = 0;
            pFVar28 = pFVar21;
            do {
              uVar10 = uVar13 + iVar8;
              pFVar28 = pFVar28->pSynonym;
              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);
              uVar13 = uVar10;
            } while (pFVar28 != (Fts5ExprTerm *)0x0);
            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);
            if (iVar8 == 0) {
LAB_00097a9c:
              (*(code *)PTR_sqlite3_free_0015b620)(zApp);
              return (char *)0x0;
            }
            iVar12 = 0;
            pFVar28 = pFVar21;
            do {
              pcVar27 = pFVar28->zTerm;
              *(undefined1 *)(iVar8 + iVar12) = 0x22;
              cVar17 = *pcVar27;
              iVar11 = iVar12 + 1;
              if (cVar17 == '\0') {
                iVar12 = iVar12 + 2;
                pcVar19 = (char *)(iVar8 + iVar11);
                pcVar5 = (char *)(iVar8 + iVar12);
              }
              else {
                do {
                  iVar9 = iVar11 + 2;
                  pcVar18 = (char *)(iVar8 + iVar11 + 1);
                  iVar12 = iVar9;
                  pcVar5 = (char *)(iVar8 + iVar9);
                  iVar1 = iVar11 + 1;
                  pcVar19 = pcVar18;
                  pcVar20 = (char *)(iVar8 + iVar11);
                  if (cVar17 == '\"') {
                    iVar12 = iVar11 + 3;
                    *(char *)(iVar8 + iVar11) = '\"';
                    pcVar5 = (char *)(iVar8 + iVar12);
                    iVar1 = iVar9;
                    pcVar19 = (char *)(iVar8 + iVar9);
                    pcVar20 = pcVar18;
                  }
                  iVar11 = iVar1;
                  *pcVar20 = *pcVar27;
                  cVar17 = pcVar27[1];
                  pcVar27 = pcVar27 + 1;
                } while (cVar17 != '\0');
              }
              *pcVar19 = '\"';
              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;
              *pcVar5 = '|';
              pFVar28 = pFVar28->pSynonym;
              iVar12 = iVar11 + 2;
            } while (pFVar28 != (Fts5ExprTerm *)0x0);
            pcVar5 = (char *)(iVar8 + iVar12);
LAB_00097904:
            if (pFVar21->bPrefix != '\0') {
              *pcVar5 = ' ';
              pcVar5 = (char *)(iVar8 + iVar12 + 2);
              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;
            }
            *pcVar5 = '\0';
            puVar4 = puVar25;
            if (iVar2 == 0) {
              puVar4 = puVar24;
            }
            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);
            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);
            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;
            iVar2 = iVar2 + 1;
            pFVar21 = pFVar21 + 1;
          } while (iVar2 < pFVar23->nTerm);
        }
        if (pFVar6->nPhrase <= iStack_2c + 1) {
          if (1 < pFVar6->nPhrase) {
            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);
            return pcVar27;
          }
          return (char *)zApp;
        }
        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];
        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);
        iStack_2c = iStack_2c + 1;
      } while (zApp != (Fts5Colset *)0x0);
    }
  }
  else {
    if (iVar2 == 2) {
      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;
    }
    else if (iVar2 == 3) {
      puVar24 = PTR_DAT_0015b5fc + -0x7554;
    }
    else {
      puVar24 = PTR_LAB_0015b5e8 + 0x540c;
    }
    if (0 < pExpr->nChild) {
      ppFVar26 = pExpr->apChild;
      iVar2 = 0;
      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;
      pcVar27 = (char *)0x0;
      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;
      puVar4 = PTR_DAT_0015b5fc + -0x570c;
      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);
      while( true ) {
        if (pcVar5 == (char *)0x0) {
          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);
          return (char *)0x0;
        }
        puVar14 = puVar22;
        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {
          puVar15 = puVar22;
          puVar16 = puVar22;
          if (iVar2 != 0) {
            puVar14 = puVar24;
          }
        }
        else {
          puVar15 = puVar3;
          puVar16 = puVar4;
          if (iVar2 != 0) {
            puVar14 = puVar24;
          }
        }
        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);
        if (pcVar27 == (char *)0x0) break;
        iVar2 = iVar2 + 1;
        ppFVar26 = ppFVar26 + 1;
        if (pExpr->nChild <= iVar2) {
          return pcVar27;
        }
        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);
      }
    }
  }
  return (char *)0x0;
}



int FUN_00097660(int param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  undefined4 *puVar6;
  code *pcVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  char *pcVar13;
  uint uVar14;
  char *pcVar15;
  undefined *puVar16;
  undefined *puVar17;
  undefined *puVar18;
  char cVar19;
  char *pcVar20;
  char *pcVar21;
  char *pcVar22;
  char *pcVar23;
  undefined *puVar24;
  undefined *puVar25;
  undefined *puVar26;
  int *piVar27;
  int iVar28;
  char *pcVar29;
  int local_2c;
  
  puVar26 = PTR_UINT_0015b5fc;
  iVar2 = *param_2;
  if (iVar2 == 0) {
    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);
    return iVar2;
  }
  if ((iVar2 == 9) || (iVar2 == 4)) {
    puVar6 = (undefined4 *)param_2[6];
    iVar2 = puVar6[1];
    if ((iVar2 == 0) ||
       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,
                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),
       iVar2 != 0)) {
      if ((int)puVar6[2] < 2) {
        if (puVar6[2] != 1) {
          return iVar2;
        }
      }
      else {
        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);
        if (iVar2 == 0) {
          return 0;
        }
        if ((int)puVar6[2] < 1) {
          return iVar2;
        }
      }
      iVar28 = puVar6[3];
      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);
      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;
      local_2c = 0;
      puVar26 = PTR_UINT_0015b5fc + -0x7558;
      do {
        puVar3 = PTR_LAB_0015b5e8;
        if (0 < *(int *)(iVar28 + 0x10)) {
          pcVar23 = (char *)(iVar28 + 0x14);
          iVar5 = 0;
          do {
            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));
            iVar12 = 0;
            iVar8 = iVar8 * 2 + 5;
            uVar14 = 0;
            pcVar29 = pcVar23;
            do {
              uVar10 = uVar14 + iVar8;
              pcVar29 = *(char **)(pcVar29 + 0xc);
              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);
              uVar14 = uVar10;
            } while (pcVar29 != (char *)0x0);
            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);
            if (iVar8 == 0) {
LAB_00097a9c:
              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);
              return 0;
            }
            iVar12 = 0;
            pcVar29 = pcVar23;
            do {
              pcVar13 = *(char **)(pcVar29 + 4);
              *(undefined1 *)(iVar8 + iVar12) = 0x22;
              cVar19 = *pcVar13;
              iVar11 = iVar12 + 1;
              if (cVar19 == '\0') {
                iVar12 = iVar12 + 2;
                pcVar21 = (char *)(iVar8 + iVar11);
                pcVar15 = (char *)(iVar8 + iVar12);
              }
              else {
                do {
                  iVar9 = iVar11 + 2;
                  pcVar20 = (char *)(iVar8 + iVar11 + 1);
                  iVar12 = iVar9;
                  pcVar15 = (char *)(iVar8 + iVar9);
                  iVar1 = iVar11 + 1;
                  pcVar21 = pcVar20;
                  pcVar22 = (char *)(iVar8 + iVar11);
                  if (cVar19 == '\"') {
                    iVar12 = iVar11 + 3;
                    *(char *)(iVar8 + iVar11) = '\"';
                    pcVar15 = (char *)(iVar8 + iVar12);
                    iVar1 = iVar9;
                    pcVar21 = (char *)(iVar8 + iVar9);
                    pcVar22 = pcVar20;
                  }
                  iVar11 = iVar1;
                  *pcVar22 = *pcVar13;
                  cVar19 = pcVar13[1];
                  pcVar13 = pcVar13 + 1;
                } while (cVar19 != '\0');
              }
              *pcVar21 = '\"';
              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;
              *pcVar15 = '|';
              pcVar29 = *(char **)(pcVar29 + 0xc);
              iVar12 = iVar11 + 2;
            } while (pcVar29 != (char *)0x0);
            pcVar15 = (char *)(iVar8 + iVar12);
LAB_00097904:
            if (*pcVar23 != '\0') {
              *pcVar15 = ' ';
              pcVar15 = (char *)(iVar8 + iVar12 + 2);
              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;
            }
            *pcVar15 = '\0';
            puVar4 = puVar26;
            if (iVar5 == 0) {
              puVar4 = puVar25;
            }
            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);
            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);
            if (iVar2 == 0) goto LAB_00097a9c;
            iVar5 = iVar5 + 1;
            pcVar23 = pcVar23 + 0x10;
          } while (iVar5 < *(int *)(iVar28 + 0x10));
        }
        if ((int)puVar6[2] <= local_2c + 1) {
          if (1 < (int)puVar6[2]) {
            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);
            return iVar2;
          }
          return iVar2;
        }
        iVar28 = puVar6[local_2c + 4];
        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);
        local_2c = local_2c + 1;
      } while (iVar2 != 0);
    }
  }
  else {
    if (iVar2 == 2) {
      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;
    }
    else if (iVar2 == 3) {
      puVar25 = PTR_UINT_0015b5fc + -0x7554;
    }
    else {
      puVar25 = PTR_LAB_0015b5e8 + 0x540c;
    }
    if (0 < param_2[7]) {
      piVar27 = param_2 + 8;
      iVar2 = 0;
      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;
      iVar28 = 0;
      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;
      puVar4 = PTR_UINT_0015b5fc + -0x570c;
      iVar5 = FUN_00097660(param_1,*piVar27);
      while( true ) {
        if (iVar5 == 0) {
          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);
          return 0;
        }
        puVar16 = puVar24;
        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {
          puVar17 = puVar24;
          puVar18 = puVar24;
          if (iVar2 != 0) {
            puVar16 = puVar25;
          }
        }
        else {
          puVar17 = puVar3;
          puVar18 = puVar4;
          if (iVar2 != 0) {
            puVar16 = puVar25;
          }
        }
        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);
        if (iVar28 == 0) break;
        iVar2 = iVar2 + 1;
        piVar27 = piVar27 + 1;
        if (param_2[7] <= iVar2) {
          return iVar28;
        }
        iVar5 = FUN_00097660(param_1,*piVar27);
      }
    }
  }
  return 0;
}


lui gp,0xd
addiu gp,gp,-0x40b0
addu gp,gp,t9
addiu sp,sp,-0x58
sw gp,0x18(sp)
sw ra,0x54(sp)
sw s8,0x50(sp)
sw s7,0x4c(sp)
sw s6,0x48(sp)
sw s5,0x44(sp)
sw s4,0x40(sp)
sw s3,0x3c(sp)
sw s2,0x38(sp)
sw s1,0x34(sp)
sw s0,0x30(sp)
lw v0,0x0(a1)
beq v0,zero,0x00097adc
_li v1,0x9
or s3,a0,zero
beq v0,v1,0x00097768
_or s0,a1,zero
li v1,0x4
beq v0,v1,0x00097768
_li v1,0x2
beq v0,v1,0x00097b6c
_li v1,0x3
beq v0,v1,0x00097b18
_lw s4,-0x7fb4(gp)
lw s4,-0x7fc8(gp)
addiu s4,s4,0x540c
lw v0,0x1c(s0)
blez v0,0x000979cc
_lw v0,-0x7fc8(gp)
addiu s7,s0,0x20
lw s5,-0x7e94(gp)
or a0,s3,zero
lw a1,0x0(s7)
or s1,zero,zero
addiu v0,v0,0x56a8
lw s2,-0x7fc8(gp)
addiu s5,s5,0x7660
lw s6,-0x7fb4(gp)
sw v0,0x24(sp)
or s8,zero,zero
lw v0,-0x7fb4(gp)
or t9,s5,zero
addiu s2,s2,0x53f4
addiu v0,v0,-0x570c
bal 0x00097660
_sw v0,0x28(sp)
beq v0,zero,0x00097a7c
_lw gp,0x18(sp)
lw a0,0x0(s7)
li a1,0x9
lw a0,0x0(a0)
beq a0,a1,0x00097a18
_li a1,-0x5
and a0,a0,a1
beq a0,zero,0x00097a18
_nop
beq s1,zero,0x00097b20
_nop
or a2,s4,zero
lw a3,0x24(sp)
b 0x00097a2c
_lw t0,0x28(sp)
lw v0,0x18(s0)
sw v0,0x28(sp)
lw s2,0x4(v0)
beq s2,zero,0x000977b0
_or a0,zero,zero
lw v1,0x4(s2)
lw v0,0x10(s3)
lw a1,-0x7fb4(gp)
sll v1,v1,0x2
lw t9,-0x7e94(gp)
addu v0,v0,v1
addiu a1,a1,-0x754c
addiu t9,t9,0x7154
bal 0x00097154
_lw a2,0x0(v0)
lw gp,0x18(sp)
beq v0,zero,0x000979cc
_or s2,v0,zero
lw v0,0x28(sp)
lw v0,0x8(v0)
slti v1,v0,0x2
beq v1,zero,0x00097b30
_li v1,0x1
bne v0,v1,0x000979d0
_or s8,s2,zero
lw v0,0x28(sp)
lw s4,-0x7e94(gp)
lw s6,-0x7fc8(gp)
lw s5,-0x7fb4(gp)
lw s3,0xc(v0)
addiu v0,s4,0x7154
addiu s6,s6,0x53f4
sw zero,0x2c(sp)
addiu s5,s5,-0x7558
sw v0,0x24(sp)
lw v0,0x10(s3)
blez v0,0x00097980
_lw v0,0x28(sp)
lw s7,-0x7fc8(gp)
addiu s0,s3,0x14
or s1,zero,zero
lw t9,-0x7bec(gp)
or s8,s0,zero
jalr t9
_lw a0,0x4(s0)
or a0,zero,zero
sll v0,v0,0x1
lw gp,0x18(sp)
or a1,zero,zero
addiu v0,v0,0x5
sra a2,v0,0x1f
addu v1,a1,v0
lw s8,0xc(s8)
addu a0,a0,a2
sltu a1,v1,a1
addu a0,a1,a0
bne s8,zero,0x00097834
_or a1,v1,zero
lw t9,-0x7e50(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x00097a9c
_or s4,v0,zero
or v0,zero,zero
li t6,0x22
li t5,0x22
li t7,0x7c
or a1,s0,zero
lw a0,0x4(a1)
addu a2,s4,v0
sb t6,0x0(a2)
lb t2,0x0(a0)
beq t2,zero,0x00097a04
_addiu v1,v0,0x1
addiu v0,v1,0x2
addiu a3,v1,0x1
addiu a0,a0,0x1
addu t4,s4,v1
addu t3,s4,a3
bne t2,t5,0x000978cc
_addu a2,s4,v0
addiu v1,v1,0x3
sb t5,0x0(t4)
or t4,t3,zero
or t3,a2,zero
addu a2,s4,v1
or a3,v0,zero
or v0,v1,zero
lb t2,-0x1(a0)
sb t2,0x0(t4)
lb t2,0x0(a0)
bne t2,zero,0x00097894
_or v1,a3,zero
sb t6,0x0(t3)
lw v1,0xc(a1)
beq v1,zero,0x00097904
_nop
sb t7,0x0(a2)
lw a1,0xc(a1)
bne a1,zero,0x0009787c
_addiu v0,a3,0x2
addu a2,s4,v0
lbu v1,0x0(s0)
beq v1,zero,0x00097930
_lw t9,0x24(sp)
addu v1,s4,v0
li a0,0x20
addiu v0,v0,0x2
sb a0,0x0(a2)
addu a2,s4,v0
li v0,0x2a
sb v0,0x1(v1)
lw t9,0x24(sp)
addiu a1,s7,0x5624
sb zero,0x0(a2)
or a2,s5,zero
movz a2,s6,s1
or a0,s2,zero
jalr t9
_or a3,s4,zero
or a0,s4,zero
lw gp,0x18(sp)
lw t9,-0x7f90(gp)
jalr t9
_or s2,v0,zero
beq s2,zero,0x00097a9c
_lw gp,0x18(sp)
lw v0,0x10(s3)
addiu s1,s1,0x1
slt v0,s1,v0
bne v0,zero,0x0009780c
_addiu s0,s0,0x10
lw v0,0x28(sp)
lw v1,0x2c(sp)
lw v0,0x8(v0)
addiu v1,v1,0x1
sw v1,0x2c(sp)
slt v1,v1,v0
beq v1,zero,0x00097b78
_or a0,s2,zero
lw v0,0x2c(sp)
lw v1,0x28(sp)
lw a1,-0x7fc8(gp)
sll v0,v0,0x2
lw t9,0x24(sp)
addu v0,v1,v0
addiu a1,a1,0x5c20
jalr t9
_lw s3,0xc(v0)
lw gp,0x18(sp)
bne v0,zero,0x000977f4
_or s2,v0,zero
or s8,zero,zero
lw ra,0x54(sp)
or v0,s8,zero
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
addiu v0,v0,0x2
addu t3,s4,v1
addu a2,s4,v0
b 0x000978e0
_or a3,v1,zero
beq s1,zero,0x00097a90
_or a2,s2,zero
or a2,s4,zero
or a3,s2,zero
or t0,s2,zero
lw t9,-0x7e94(gp)
addiu a1,s6,-0x7534
or a0,s8,zero
sw t0,0x14(sp)
addiu t9,t9,0x7154
bal 0x00097154
_sw v0,0x10(sp)
beq v0,zero,0x000979cc
_or s8,v0,zero
lw v0,0x1c(s0)
addiu s1,s1,0x1
slt v0,s1,v0
beq v0,zero,0x000979d0
_addiu s7,s7,0x4
lw a1,0x0(s7)
or t9,s5,zero
bal 0x00097660
_or a0,s3,zero
bne v0,zero,0x00097730
_lw gp,0x18(sp)
lw t9,-0x7f90(gp)
jalr t9
_or a0,s8,zero
b 0x000979d0
_or s8,zero,zero
or a3,s2,zero
b 0x00097a2c
_or t0,s2,zero
lw t9,-0x7f90(gp)
jalr t9
_or a0,s2,zero
or v0,s8,zero
lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
jr ra
_addiu sp,sp,0x58
lw a0,-0x7fc8(gp)
lw ra,0x54(sp)
lw s8,0x50(sp)
lw s7,0x4c(sp)
addiu a0,a0,0x5314
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
lw t9,-0x7f88(gp)
b 0x000926b8
_addiu sp,sp,0x58
b 0x000976d8
_addiu s4,s4,-0x7554
or a2,s2,zero
lw a3,0x24(sp)
b 0x00097a2c
_lw t0,0x28(sp)
lw a1,-0x7fb4(gp)
or a0,s2,zero
lw t9,-0x7e94(gp)
addiu t9,t9,0x7154
bal 0x00097154
_addiu a1,a1,-0x7544
lw gp,0x18(sp)
beq v0,zero,0x000979cc
_or s2,v0,zero
lw v0,0x28(sp)
lw v0,0x8(v0)
bgtz v0,0x000977d0
_lw v0,0x28(sp)
b 0x000979d0
_or s8,s2,zero
lw s4,-0x7fc8(gp)
b 0x000976d8
_addiu s4,s4,0x5c88
slti v0,v0,0x2
bne v0,zero,0x00097b64
_lw v0,0x28(sp)
or a0,s2,zero
lw a1,-0x7fb4(gp)
lw t9,-0x7e94(gp)
lw ra,0x54(sp)
lw s8,0x50(sp)
addiu a1,a1,-0x753c
lw s7,0x4c(sp)
addiu t9,t9,0x7154
lw s6,0x48(sp)
lw s5,0x44(sp)
lw s4,0x40(sp)
lw s3,0x3c(sp)
lw s2,0x38(sp)
lw s1,0x34(sp)
lw s0,0x30(sp)
lw a2,0x0(v0)
b 0x00097154
_addiu sp,sp,0x58
(translation_unit "int FUN_00097660(int param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}\n\n" (function_definition "int FUN_00097660(int param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}" primitive_type (function_declarator "FUN_00097660(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "char *pcVar29;" primitive_type (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar26 = PTR_UINT_0015b5fc;" (assignment_expression "puVar26 = PTR_UINT_0015b5fc" identifier = identifier) ;) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }" { (expression_statement "iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);" (assignment_expression "iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" identifier = (call_expression "sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" identifier (argument_list "(PTR_LAB_0015b5e8 + 0x5314)" ( (binary_expression "PTR_LAB_0015b5e8 + 0x5314" identifier + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" if (parenthesized_expression "((iVar2 == 9) || (iVar2 == 4))" ( (binary_expression "(iVar2 == 9) || (iVar2 == 4)" (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) ))) )) (compound_statement "{\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }" { (expression_statement "puVar6 = (undefined4 *)param_2[6];" (assignment_expression "puVar6 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = puVar6[1];" (assignment_expression "iVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }" if (parenthesized_expression "((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0))" ( (binary_expression "(iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0" (assignment_expression "iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" identifier = (call_expression "FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" identifier (argument_list "(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" ( number_literal , (binary_expression "PTR_UINT_0015b5fc + -0x754c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" ( (binary_expression "*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "*(int *)(iVar2 + 4) * 4" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) * number_literal)) )))) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }" { (if_statement "if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" if (parenthesized_expression "((int)puVar6[2] < 2)" ( (binary_expression "(int)puVar6[2] < 2" (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }" { (if_statement "if (puVar6[2] != 1) {\n          return iVar2;\n        }" if (parenthesized_expression "(puVar6[2] != 1)" ( (binary_expression "puVar6[2] != 1" (subscript_expression "puVar6[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          return iVar2;\n        }" { (return_statement "return iVar2;" return identifier ;) })) }) (else_clause "else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" else (compound_statement "{\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" { (expression_statement "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);" (assignment_expression "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544)" identifier = (call_expression "FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544)" identifier (argument_list "(iVar2,PTR_UINT_0015b5fc + -0x7544)" ( identifier , (binary_expression "PTR_UINT_0015b5fc + -0x7544" identifier + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }" if (parenthesized_expression "((int)puVar6[2] < 1)" ( (binary_expression "(int)puVar6[2] < 1" (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          return iVar2;\n        }" { (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "iVar28 = puVar6[3];" (assignment_expression "iVar28 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);" (assignment_expression "pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154)" identifier = (cast_expression "(code *)(PTR_DAT_0015b71c + 0x7154)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b71c + 0x7154)" ( (binary_expression "PTR_DAT_0015b71c + 0x7154" identifier + number_literal) )))) ;) (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x53f4" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal)) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "puVar26 = PTR_UINT_0015b5fc + -0x7558;" (assignment_expression "puVar26 = PTR_UINT_0015b5fc + -0x7558" identifier = (binary_expression "PTR_UINT_0015b5fc + -0x7558" identifier + number_literal)) ;) (do_statement "do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);" do (compound_statement "{\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      }" { (expression_statement "puVar3 = PTR_LAB_0015b5e8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8" identifier = identifier) ;) (if_statement "if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }" if (parenthesized_expression "(0 < *(int *)(iVar28 + 0x10))" ( (binary_expression "0 < *(int *)(iVar28 + 0x10)" number_literal < (pointer_expression "*(int *)(iVar28 + 0x10)" * (cast_expression "(int *)(iVar28 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x10)" ( (binary_expression "iVar28 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }" { (expression_statement "pcVar23 = (char *)(iVar28 + 0x14);" (assignment_expression "pcVar23 = (char *)(iVar28 + 0x14)" identifier = (cast_expression "(char *)(iVar28 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x14)" ( (binary_expression "iVar28 + 0x14" identifier + number_literal) )))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));" do (compound_statement "{\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          }" { (expression_statement "iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));" (assignment_expression "iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4))" identifier = (call_expression "(*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4))" (parenthesized_expression "(*(code *)PTR_strlen_0015b9c4)" ( (pointer_expression "*(code *)PTR_strlen_0015b9c4" * (cast_expression "(code *)PTR_strlen_0015b9c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(pcVar23 + 4))" ( (pointer_expression "*(undefined4 *)(pcVar23 + 4)" * (cast_expression "(undefined4 *)(pcVar23 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 4)" ( (binary_expression "pcVar23 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar8 * 2 + 5;" (assignment_expression "iVar8 = iVar8 * 2 + 5" identifier = (binary_expression "iVar8 * 2 + 5" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "pcVar29 = pcVar23;" (assignment_expression "pcVar29 = pcVar23" identifier = identifier) ;) (do_statement "do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);" do (compound_statement "{\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            }" { (expression_statement "uVar10 = uVar14 + iVar8;" (assignment_expression "uVar10 = uVar14 + iVar8" identifier = (binary_expression "uVar14 + iVar8" identifier + identifier)) ;) (expression_statement "pcVar29 = *(char **)(pcVar29 + 0xc);" (assignment_expression "pcVar29 = *(char **)(pcVar29 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar29 + 0xc)" * (cast_expression "(char **)(pcVar29 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0xc)" ( (binary_expression "pcVar29 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);" (assignment_expression "iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f)" identifier = (binary_expression "(uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f)" (binary_expression "(uint)(uVar10 < uVar14) + iVar12" (call_expression "(uint)(uVar10 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar14)" ( (binary_expression "uVar10 < uVar14" identifier < identifier) ))) + identifier) + (parenthesized_expression "(iVar8 >> 0x1f)" ( (binary_expression "iVar8 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = uVar10;" (assignment_expression "uVar14 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar29 != (char *)0x0)" ( (binary_expression "pcVar29 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);" (assignment_expression "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015b760" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015b760" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }" { (labeled_statement "LAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar2);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar2)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pcVar29 = pcVar23;" (assignment_expression "pcVar29 = pcVar23" identifier = identifier) ;) (do_statement "do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);" do (compound_statement "{\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            }" { (expression_statement "pcVar13 = *(char **)(pcVar29 + 4);" (assignment_expression "pcVar13 = *(char **)(pcVar29 + 4)" identifier = (pointer_expression "*(char **)(pcVar29 + 4)" * (cast_expression "(char **)(pcVar29 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 4)" ( (binary_expression "pcVar29 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar8 + iVar12) = 0x22;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12) = 0x22" (pointer_expression "*(undefined1 *)(iVar8 + iVar12)" * (cast_expression "(undefined1 *)(iVar8 + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) = number_literal) ;) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "iVar11 = iVar12 + 1;" (assignment_expression "iVar11 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" if (parenthesized_expression "(cVar19 == '\0')" ( (binary_expression "cVar19 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }" { (expression_statement "iVar12 = iVar12 + 2;" (assignment_expression "iVar12 = iVar12 + 2" identifier = (binary_expression "iVar12 + 2" identifier + number_literal)) ;) (expression_statement "pcVar21 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar21 = (char *)(iVar8 + iVar11)" identifier = (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) }) (else_clause "else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" else (compound_statement "{\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" { (do_statement "do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');" do (compound_statement "{\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                }" { (expression_statement "iVar9 = iVar11 + 2;" (assignment_expression "iVar9 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) (expression_statement "pcVar20 = (char *)(iVar8 + iVar11 + 1);" (assignment_expression "pcVar20 = (char *)(iVar8 + iVar11 + 1)" identifier = (cast_expression "(char *)(iVar8 + iVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11 + 1)" ( (binary_expression "iVar8 + iVar11 + 1" (binary_expression "iVar8 + iVar11" identifier + identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" identifier = identifier) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar9)" identifier = (cast_expression "(char *)(iVar8 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) )))) ;) (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar21 = pcVar20;" (assignment_expression "pcVar21 = pcVar20" identifier = identifier) ;) (expression_statement "pcVar22 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar22 = (char *)(iVar8 + iVar11)" identifier = (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (if_statement "if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }" if (parenthesized_expression "(cVar19 == '\"')" ( (binary_expression "cVar19 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }" { (expression_statement "iVar12 = iVar11 + 3;" (assignment_expression "iVar12 = iVar11 + 3" identifier = (binary_expression "iVar11 + 3" identifier + number_literal)) ;) (expression_statement "*(char *)(iVar8 + iVar11) = '\"';" (assignment_expression "*(char *)(iVar8 + iVar11) = '\"'" (pointer_expression "*(char *)(iVar8 + iVar11)" * (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) (expression_statement "pcVar21 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar21 = (char *)(iVar8 + iVar9)" identifier = (cast_expression "(char *)(iVar8 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) )))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) })) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (expression_statement "*pcVar22 = *pcVar13;" (assignment_expression "*pcVar22 = *pcVar13" (pointer_expression "*pcVar22" * identifier) = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "cVar19 = pcVar13[1];" (assignment_expression "cVar19 = pcVar13[1]" identifier = (subscript_expression "pcVar13[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar19 != '\0')" ( (binary_expression "cVar19 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "*pcVar21 = '\"';" (assignment_expression "*pcVar21 = '\"'" (pointer_expression "*pcVar21" * identifier) = (char_literal "'\"'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;" if (parenthesized_expression "(*(int *)(pcVar29 + 0xc) == 0)" ( (binary_expression "*(int *)(pcVar29 + 0xc) == 0" (pointer_expression "*(int *)(pcVar29 + 0xc)" * (cast_expression "(int *)(pcVar29 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0xc)" ( (binary_expression "pcVar29 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00097904;" goto statement_identifier ;)) (expression_statement "*pcVar15 = '|';" (assignment_expression "*pcVar15 = '|'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'|'" ' character ')) ;) (expression_statement "pcVar29 = *(char **)(pcVar29 + 0xc);" (assignment_expression "pcVar29 = *(char **)(pcVar29 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar29 + 0xc)" * (cast_expression "(char **)(pcVar29 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0xc)" ( (binary_expression "pcVar29 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar11 + 2;" (assignment_expression "iVar12 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar29 != (char *)0x0)" ( (binary_expression "pcVar29 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (labeled_statement "LAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" statement_identifier : (if_statement "if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" if (parenthesized_expression "(*pcVar23 != '\0')" ( (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" { (expression_statement "*pcVar15 = ' ';" (assignment_expression "*pcVar15 = ' '" (pointer_expression "*pcVar15" * identifier) = (char_literal "' '" ' character ')) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12 + 2);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12 + 2)" identifier = (cast_expression "(char *)(iVar8 + iVar12 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12 + 2)" ( (binary_expression "iVar8 + iVar12 + 2" (binary_expression "iVar8 + iVar12" identifier + identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a" (pointer_expression "*(undefined1 *)(iVar8 + iVar12 + 1)" * (cast_expression "(undefined1 *)(iVar8 + iVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12 + 1)" ( (binary_expression "iVar8 + iVar12 + 1" (binary_expression "iVar8 + iVar12" identifier + identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "*pcVar15 = '\0';" (assignment_expression "*pcVar15 = '\0'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4 = puVar26;" (assignment_expression "puVar4 = puVar26" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar4 = puVar25;\n            }" { (expression_statement "puVar4 = puVar25;" (assignment_expression "puVar4 = puVar25" identifier = identifier) ;) })) (expression_statement "iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);" (assignment_expression "iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8)" identifier = (call_expression "(*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(iVar2,puVar3 + 0x5624,puVar4,iVar8)" ( identifier , (binary_expression "puVar3 + 0x5624" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) (if_statement "if (iVar2 == 0) goto LAB_00097a9c;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00097a9c;" goto statement_identifier ;)) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + 0x10;" (assignment_expression "pcVar23 = pcVar23 + 0x10" identifier = (binary_expression "pcVar23 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar28 + 0x10))" ( (binary_expression "iVar5 < *(int *)(iVar28 + 0x10)" identifier < (pointer_expression "*(int *)(iVar28 + 0x10)" * (cast_expression "(int *)(iVar28 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x10)" ( (binary_expression "iVar28 + 0x10" identifier + number_literal) ))))) )) ;) })) (if_statement "if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }" if (parenthesized_expression "((int)puVar6[2] <= local_2c + 1)" ( (binary_expression "(int)puVar6[2] <= local_2c + 1" (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ])) <= (binary_expression "local_2c + 1" identifier + number_literal)) )) (compound_statement "{\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }" { (if_statement "if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }" if (parenthesized_expression "(1 < (int)puVar6[2])" ( (binary_expression "1 < (int)puVar6[2]" number_literal < (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }" { (expression_statement "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);" (assignment_expression "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" identifier = (call_expression "FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" identifier (argument_list "(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" ( identifier , (binary_expression "PTR_UINT_0015b5fc + -0x753c" identifier + number_literal) , (pointer_expression "*puVar6" * identifier) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar28 = puVar6[local_2c + 4];" (assignment_expression "iVar28 = puVar6[local_2c + 4]" identifier = (subscript_expression "puVar6[local_2c + 4]" identifier [ (binary_expression "local_2c + 4" identifier + number_literal) ])) ;) (expression_statement "iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);" (assignment_expression "iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" identifier = (call_expression "(*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x5c20" identifier + number_literal) )))) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;) })) }) (else_clause "else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" else (compound_statement "{\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" { (if_statement "if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }" { (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x5c88;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x5c88" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x5c88" identifier + number_literal)) ;) }) (else_clause "else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" else (if_statement "if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }" { (expression_statement "puVar25 = PTR_UINT_0015b5fc + -0x7554;" (assignment_expression "puVar25 = PTR_UINT_0015b5fc + -0x7554" identifier = (binary_expression "PTR_UINT_0015b5fc + -0x7554" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" else (compound_statement "{\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" { (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x540c;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x540c" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x540c" identifier + number_literal)) ;) }))))) (if_statement "if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }" { (expression_statement "piVar27 = param_2 + 8;" (assignment_expression "piVar27 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_LAB_0015b5e8 + 0x56a8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8 + 0x56a8" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x56a8" identifier + number_literal)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar24 = PTR_LAB_0015b5e8 + 0x53f4" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_UINT_0015b5fc + -0x570c;" (assignment_expression "puVar4 = PTR_UINT_0015b5fc + -0x570c" identifier = (binary_expression "PTR_UINT_0015b5fc + -0x570c" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_00097660(param_1,*piVar27);" (assignment_expression "iVar5 = FUN_00097660(param_1,*piVar27)" identifier = (call_expression "FUN_00097660(param_1,*piVar27)" identifier (argument_list "(param_1,*piVar27)" ( identifier , (pointer_expression "*piVar27" * identifier) )))) ;) (while_statement "while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }" { (if_statement "if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }" { (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar28);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar28)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar28)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar16 = puVar24;" (assignment_expression "puVar16 = puVar24" identifier = identifier) ;) (if_statement "if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" if (parenthesized_expression "((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0))" ( (binary_expression "(*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)" (parenthesized_expression "(*(uint *)*piVar27 == 9)" ( (binary_expression "*(uint *)*piVar27 == 9" (pointer_expression "*(uint *)*piVar27" * (cast_expression "(uint *)*piVar27" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier))) == number_literal) )) || (parenthesized_expression "((*(uint *)*piVar27 & 0xfffffffb) == 0)" ( (binary_expression "(*(uint *)*piVar27 & 0xfffffffb) == 0" (parenthesized_expression "(*(uint *)*piVar27 & 0xfffffffb)" ( (binary_expression "*(uint *)*piVar27 & 0xfffffffb" (pointer_expression "*(uint *)*piVar27" * (cast_expression "(uint *)*piVar27" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" { (expression_statement "puVar17 = puVar24;" (assignment_expression "puVar17 = puVar24" identifier = identifier) ;) (expression_statement "puVar18 = puVar24;" (assignment_expression "puVar18 = puVar24" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar16 = puVar25;\n          }" { (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" identifier = identifier) ;) })) }) (else_clause "else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" else (compound_statement "{\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" { (expression_statement "puVar17 = puVar3;" (assignment_expression "puVar17 = puVar3" identifier = identifier) ;) (expression_statement "puVar18 = puVar4;" (assignment_expression "puVar18 = puVar4" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar16 = puVar25;\n          }" { (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" identifier = identifier) ;) })) }))) (expression_statement "iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);" (assignment_expression "iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" identifier = (call_expression "FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" identifier (argument_list "(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" ( identifier , (binary_expression "puVar26 + -0x7534" identifier + number_literal) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar27 = piVar27 + 1;" (assignment_expression "piVar27 = piVar27 + 1" identifier = (binary_expression "piVar27 + 1" identifier + number_literal)) ;) (if_statement "if (param_2[7] <= iVar2) {\n          return iVar28;\n        }" if (parenthesized_expression "(param_2[7] <= iVar2)" ( (binary_expression "param_2[7] <= iVar2" (subscript_expression "param_2[7]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\n          return iVar28;\n        }" { (return_statement "return iVar28;" return identifier ;) })) (expression_statement "iVar5 = FUN_00097660(param_1,*piVar27);" (assignment_expression "iVar5 = FUN_00097660(param_1,*piVar27)" identifier = (call_expression "FUN_00097660(param_1,*piVar27)" identifier (argument_list "(param_1,*piVar27)" ( identifier , (pointer_expression "*piVar27" * identifier) )))) ;) })) })) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "char * fts5ExprPrint(Fts5Config *pConfig,Fts5ExprNode *pExpr)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  Fts5ExprNearset *pFVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  char cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  char *pcVar20;\n  Fts5ExprTerm *pFVar21;\n  undefined *puVar22;\n  Fts5Colset *zApp;\n  Fts5ExprPhrase *pFVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  Fts5ExprNode **ppFVar26;\n  char *pcVar27;\n  Fts5ExprTerm *pFVar28;\n  int iStack_2c;\n  \n  puVar25 = PTR_DAT_0015b5fc;\n  iVar2 = pExpr->eType;\n  if (iVar2 == 0) {\n    pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return pcVar27;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    pFVar6 = pExpr->pNear;\n    zApp = pFVar6->pColset;\n    if ((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }\n  }\n  return (char *)0x0;\n}\n\n" (function_definition "char * fts5ExprPrint(Fts5Config *pConfig,Fts5ExprNode *pExpr)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  Fts5ExprNearset *pFVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  char cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  char *pcVar20;\n  Fts5ExprTerm *pFVar21;\n  undefined *puVar22;\n  Fts5Colset *zApp;\n  Fts5ExprPhrase *pFVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  Fts5ExprNode **ppFVar26;\n  char *pcVar27;\n  Fts5ExprTerm *pFVar28;\n  int iStack_2c;\n  \n  puVar25 = PTR_DAT_0015b5fc;\n  iVar2 = pExpr->eType;\n  if (iVar2 == 0) {\n    pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return pcVar27;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    pFVar6 = pExpr->pNear;\n    zApp = pFVar6->pColset;\n    if ((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }\n  }\n  return (char *)0x0;\n}" primitive_type (pointer_declarator "* fts5ExprPrint(Fts5Config *pConfig,Fts5ExprNode *pExpr)" * (function_declarator "fts5ExprPrint(Fts5Config *pConfig,Fts5ExprNode *pExpr)" identifier (parameter_list "(Fts5Config *pConfig,Fts5ExprNode *pExpr)" ( (parameter_declaration "Fts5Config *pConfig" type_identifier (pointer_declarator "*pConfig" * identifier)) , (parameter_declaration "Fts5ExprNode *pExpr" type_identifier (pointer_declarator "*pExpr" * identifier)) )))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  Fts5ExprNearset *pFVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  uint uVar13;\n  undefined *puVar14;\n  undefined *puVar15;\n  undefined *puVar16;\n  char cVar17;\n  char *pcVar18;\n  char *pcVar19;\n  char *pcVar20;\n  Fts5ExprTerm *pFVar21;\n  undefined *puVar22;\n  Fts5Colset *zApp;\n  Fts5ExprPhrase *pFVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  Fts5ExprNode **ppFVar26;\n  char *pcVar27;\n  Fts5ExprTerm *pFVar28;\n  int iStack_2c;\n  \n  puVar25 = PTR_DAT_0015b5fc;\n  iVar2 = pExpr->eType;\n  if (iVar2 == 0) {\n    pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return pcVar27;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    pFVar6 = pExpr->pNear;\n    zApp = pFVar6->pColset;\n    if ((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }\n  }\n  return (char *)0x0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "Fts5ExprNearset *pFVar6;" type_identifier (pointer_declarator "*pFVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "undefined *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "char cVar17;" primitive_type identifier ;) (declaration "char *pcVar18;" primitive_type (pointer_declarator "*pcVar18" * identifier) ;) (declaration "char *pcVar19;" primitive_type (pointer_declarator "*pcVar19" * identifier) ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "Fts5ExprTerm *pFVar21;" type_identifier (pointer_declarator "*pFVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "Fts5Colset *zApp;" type_identifier (pointer_declarator "*zApp" * identifier) ;) (declaration "Fts5ExprPhrase *pFVar23;" type_identifier (pointer_declarator "*pFVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "Fts5ExprNode **ppFVar26;" type_identifier (pointer_declarator "**ppFVar26" * (pointer_declarator "*ppFVar26" * identifier)) ;) (declaration "char *pcVar27;" primitive_type (pointer_declarator "*pcVar27" * identifier) ;) (declaration "Fts5ExprTerm *pFVar28;" type_identifier (pointer_declarator "*pFVar28" * identifier) ;) (declaration "int iStack_2c;" primitive_type identifier ;) (expression_statement "puVar25 = PTR_DAT_0015b5fc;" (assignment_expression "puVar25 = PTR_DAT_0015b5fc" identifier = identifier) ;) (expression_statement "iVar2 = pExpr->eType;" (assignment_expression "iVar2 = pExpr->eType" identifier = (field_expression "pExpr->eType" identifier -> field_identifier)) ;) (if_statement "if (iVar2 == 0) {\n    pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return pcVar27;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return pcVar27;\n  }" { (expression_statement "pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);" (assignment_expression "pcVar27 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" identifier = (call_expression "sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" identifier (argument_list "(PTR_LAB_0015b5e8 + 0x5314)" ( (binary_expression "PTR_LAB_0015b5e8 + 0x5314" identifier + number_literal) )))) ;) (return_statement "return pcVar27;" return identifier ;) })) (if_statement "if ((iVar2 == 9) || (iVar2 == 4)) {\n    pFVar6 = pExpr->pNear;\n    zApp = pFVar6->pColset;\n    if ((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }\n  }" if (parenthesized_expression "((iVar2 == 9) || (iVar2 == 4))" ( (binary_expression "(iVar2 == 9) || (iVar2 == 4)" (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) ))) )) (compound_statement "{\n    pFVar6 = pExpr->pNear;\n    zApp = pFVar6->pColset;\n    if ((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }\n  }" { (expression_statement "pFVar6 = pExpr->pNear;" (assignment_expression "pFVar6 = pExpr->pNear" identifier = (field_expression "pExpr->pNear" identifier -> field_identifier)) ;) (expression_statement "zApp = pFVar6->pColset;" (assignment_expression "zApp = pFVar6->pColset" identifier = (field_expression "pFVar6->pColset" identifier -> field_identifier)) ;) (if_statement "if ((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)) {\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }" if (parenthesized_expression "((zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0))" ( (binary_expression "(zApp == (Fts5Colset *)0x0) ||\n       (zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)" (parenthesized_expression "(zApp == (Fts5Colset *)0x0)" ( (binary_expression "zApp == (Fts5Colset *)0x0" identifier == (cast_expression "(Fts5Colset *)0x0" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0)" ( (comma_expression "zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]]), zApp != (Fts5Colset *)0x0" (assignment_expression "zApp = (Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]])" identifier = (cast_expression "(Fts5Colset *)\n               fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]])" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts5PrintfAppend((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]])" identifier (argument_list "((char *)0x0,PTR_DAT_0015b5fc + -0x754c,\n                                pConfig->azCol[zApp->aiCol[0]])" ( (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , (binary_expression "PTR_DAT_0015b5fc + -0x754c" identifier + number_literal) , (subscript_expression "pConfig->azCol[zApp->aiCol[0]]" (field_expression "pConfig->azCol" identifier -> field_identifier) [ (subscript_expression "zApp->aiCol[0]" (field_expression "zApp->aiCol" identifier -> field_identifier) [ number_literal ]) ]) ))))) , (binary_expression "zApp != (Fts5Colset *)0x0" identifier != (cast_expression "(Fts5Colset *)0x0" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }\n      pFVar23 = pFVar6->apPhrase[0];\n      pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      iStack_2c = 0;\n      puVar25 = PTR_DAT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);\n    }" { (if_statement "if (pFVar6->nPhrase < 2) {\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }\n      else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }" if (parenthesized_expression "(pFVar6->nPhrase < 2)" ( (binary_expression "pFVar6->nPhrase < 2" (field_expression "pFVar6->nPhrase" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n        if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }\n      }" { (if_statement "if (pFVar6->nPhrase != 1) {\n          return (char *)zApp;\n        }" if (parenthesized_expression "(pFVar6->nPhrase != 1)" ( (binary_expression "pFVar6->nPhrase != 1" (field_expression "pFVar6->nPhrase" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n          return (char *)zApp;\n        }" { (return_statement "return (char *)zApp;" return (cast_expression "(char *)zApp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) }) (else_clause "else {\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }" else (compound_statement "{\n        zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);\n        if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }\n        if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }\n      }" { (expression_statement "zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544);" (assignment_expression "zApp = (Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544)" identifier = (cast_expression "(Fts5Colset *)fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544)" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x7544)" identifier (argument_list "((char *)zApp,PTR_DAT_0015b5fc + -0x7544)" ( (cast_expression "(char *)zApp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "PTR_DAT_0015b5fc + -0x7544" identifier + number_literal) ))))) ;) (if_statement "if (zApp == (Fts5Colset *)0x0) {\n          return (char *)0x0;\n        }" if (parenthesized_expression "(zApp == (Fts5Colset *)0x0)" ( (binary_expression "zApp == (Fts5Colset *)0x0" identifier == (cast_expression "(Fts5Colset *)0x0" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return (char *)0x0;\n        }" { (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (if_statement "if (pFVar6->nPhrase < 1) {\n          return (char *)zApp;\n        }" if (parenthesized_expression "(pFVar6->nPhrase < 1)" ( (binary_expression "pFVar6->nPhrase < 1" (field_expression "pFVar6->nPhrase" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n          return (char *)zApp;\n        }" { (return_statement "return (char *)zApp;" return (cast_expression "(char *)zApp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) }))) (expression_statement "pFVar23 = pFVar6->apPhrase[0];" (assignment_expression "pFVar23 = pFVar6->apPhrase[0]" identifier = (subscript_expression "pFVar6->apPhrase[0]" (field_expression "pFVar6->apPhrase" identifier -> field_identifier) [ number_literal ])) ;) (expression_statement "pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154);" (assignment_expression "pcVar7 = (code *)(PTR_LAB_0015b71c + 0x7154)" identifier = (cast_expression "(code *)(PTR_LAB_0015b71c + 0x7154)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b71c + 0x7154)" ( (binary_expression "PTR_LAB_0015b71c + 0x7154" identifier + number_literal) )))) ;) (expression_statement "puVar24 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar24 = PTR_LAB_0015b5e8 + 0x53f4" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal)) ;) (expression_statement "iStack_2c = 0;" (assignment_expression "iStack_2c = 0" identifier = number_literal) ;) (expression_statement "puVar25 = PTR_DAT_0015b5fc + -0x7558;" (assignment_expression "puVar25 = PTR_DAT_0015b5fc + -0x7558" identifier = (binary_expression "PTR_DAT_0015b5fc + -0x7558" identifier + number_literal)) ;) (do_statement "do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      } while (zApp != (Fts5Colset *)0x0);" do (compound_statement "{\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }\n        if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }\n        pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];\n        zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);\n        iStack_2c = iStack_2c + 1;\n      }" { (expression_statement "puVar3 = PTR_LAB_0015b5e8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8" identifier = identifier) ;) (if_statement "if (0 < pFVar23->nTerm) {\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }" if (parenthesized_expression "(0 < pFVar23->nTerm)" ( (binary_expression "0 < pFVar23->nTerm" number_literal < (field_expression "pFVar23->nTerm" identifier -> field_identifier)) )) (compound_statement "{\n          pFVar21 = pFVar23->aTerm;\n          iVar2 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);\n        }" { (expression_statement "pFVar21 = pFVar23->aTerm;" (assignment_expression "pFVar21 = pFVar23->aTerm" identifier = (field_expression "pFVar23->aTerm" identifier -> field_identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          } while (iVar2 < pFVar23->nTerm);" do (compound_statement "{\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar13 = 0;\n            pFVar28 = pFVar21;\n            do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }\n            iVar12 = 0;\n            pFVar28 = pFVar21;\n            do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);\n            pcVar5 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar5 = '\0';\n            puVar4 = puVar25;\n            if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }\n            zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;\n            iVar2 = iVar2 + 1;\n            pFVar21 = pFVar21 + 1;\n          }" { (expression_statement "iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm);" (assignment_expression "iVar8 = (*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm)" identifier = (call_expression "(*(code *)PTR_strlen_0015b9c4)(pFVar21->zTerm)" (parenthesized_expression "(*(code *)PTR_strlen_0015b9c4)" ( (pointer_expression "*(code *)PTR_strlen_0015b9c4" * (cast_expression "(code *)PTR_strlen_0015b9c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pFVar21->zTerm)" ( (field_expression "pFVar21->zTerm" identifier -> field_identifier) )))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar8 * 2 + 5;" (assignment_expression "iVar8 = iVar8 * 2 + 5" identifier = (binary_expression "iVar8 * 2 + 5" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "uVar13 = 0;" (assignment_expression "uVar13 = 0" identifier = number_literal) ;) (expression_statement "pFVar28 = pFVar21;" (assignment_expression "pFVar28 = pFVar21" identifier = identifier) ;) (do_statement "do {\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);" do (compound_statement "{\n              uVar10 = uVar13 + iVar8;\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);\n              uVar13 = uVar10;\n            }" { (expression_statement "uVar10 = uVar13 + iVar8;" (assignment_expression "uVar10 = uVar13 + iVar8" identifier = (binary_expression "uVar13 + iVar8" identifier + identifier)) ;) (expression_statement "pFVar28 = pFVar28->pSynonym;" (assignment_expression "pFVar28 = pFVar28->pSynonym" identifier = (field_expression "pFVar28->pSynonym" identifier -> field_identifier)) ;) (expression_statement "iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f);" (assignment_expression "iVar12 = (uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f)" identifier = (binary_expression "(uint)(uVar10 < uVar13) + iVar12 + (iVar8 >> 0x1f)" (binary_expression "(uint)(uVar10 < uVar13) + iVar12" (call_expression "(uint)(uVar10 < uVar13)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar13)" ( (binary_expression "uVar10 < uVar13" identifier < identifier) ))) + identifier) + (parenthesized_expression "(iVar8 >> 0x1f)" ( (binary_expression "iVar8 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "uVar13 = uVar10;" (assignment_expression "uVar13 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pFVar28 != (Fts5ExprTerm *)0x0)" ( (binary_expression "pFVar28 != (Fts5ExprTerm *)0x0" identifier != (cast_expression "(Fts5ExprTerm *)0x0" ( (type_descriptor "Fts5ExprTerm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);" (assignment_expression "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015b760" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015b760" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);\n              return (char *)0x0;\n            }" { (labeled_statement "LAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(zApp);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(zApp);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(zApp)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(zApp)" ( identifier ))) ;)) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pFVar28 = pFVar21;" (assignment_expression "pFVar28 = pFVar21" identifier = identifier) ;) (do_statement "do {\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            } while (pFVar28 != (Fts5ExprTerm *)0x0);" do (compound_statement "{\n              pcVar27 = pFVar28->zTerm;\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar17 = *pcVar27;\n              iVar11 = iVar12 + 1;\n              if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }\n              *pcVar19 = '\"';\n              if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;\n              *pcVar5 = '|';\n              pFVar28 = pFVar28->pSynonym;\n              iVar12 = iVar11 + 2;\n            }" { (expression_statement "pcVar27 = pFVar28->zTerm;" (assignment_expression "pcVar27 = pFVar28->zTerm" identifier = (field_expression "pFVar28->zTerm" identifier -> field_identifier)) ;) (expression_statement "*(undefined1 *)(iVar8 + iVar12) = 0x22;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12) = 0x22" (pointer_expression "*(undefined1 *)(iVar8 + iVar12)" * (cast_expression "(undefined1 *)(iVar8 + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) = number_literal) ;) (expression_statement "cVar17 = *pcVar27;" (assignment_expression "cVar17 = *pcVar27" identifier = (pointer_expression "*pcVar27" * identifier)) ;) (expression_statement "iVar11 = iVar12 + 1;" (assignment_expression "iVar11 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (cVar17 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }" if (parenthesized_expression "(cVar17 == '\0')" ( (binary_expression "cVar17 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar12 = iVar12 + 2;\n                pcVar19 = (char *)(iVar8 + iVar11);\n                pcVar5 = (char *)(iVar8 + iVar12);\n              }" { (expression_statement "iVar12 = iVar12 + 2;" (assignment_expression "iVar12 = iVar12 + 2" identifier = (binary_expression "iVar12 + 2" identifier + number_literal)) ;) (expression_statement "pcVar19 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar19 = (char *)(iVar8 + iVar11)" identifier = (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (expression_statement "pcVar5 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar5 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) }) (else_clause "else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }" else (compound_statement "{\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');\n              }" { (do_statement "do {\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                } while (cVar17 != '\0');" do (compound_statement "{\n                  iVar9 = iVar11 + 2;\n                  pcVar18 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar5 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar19 = pcVar18;\n                  pcVar20 = (char *)(iVar8 + iVar11);\n                  if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar20 = *pcVar27;\n                  cVar17 = pcVar27[1];\n                  pcVar27 = pcVar27 + 1;\n                }" { (expression_statement "iVar9 = iVar11 + 2;" (assignment_expression "iVar9 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) (expression_statement "pcVar18 = (char *)(iVar8 + iVar11 + 1);" (assignment_expression "pcVar18 = (char *)(iVar8 + iVar11 + 1)" identifier = (cast_expression "(char *)(iVar8 + iVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11 + 1)" ( (binary_expression "iVar8 + iVar11 + 1" (binary_expression "iVar8 + iVar11" identifier + identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" identifier = identifier) ;) (expression_statement "pcVar5 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar5 = (char *)(iVar8 + iVar9)" identifier = (cast_expression "(char *)(iVar8 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) )))) ;) (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar19 = pcVar18;" (assignment_expression "pcVar19 = pcVar18" identifier = identifier) ;) (expression_statement "pcVar20 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar20 = (char *)(iVar8 + iVar11)" identifier = (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (if_statement "if (cVar17 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }" if (parenthesized_expression "(cVar17 == '\"')" ( (binary_expression "cVar17 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar5 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar19 = (char *)(iVar8 + iVar9);\n                    pcVar20 = pcVar18;\n                  }" { (expression_statement "iVar12 = iVar11 + 3;" (assignment_expression "iVar12 = iVar11 + 3" identifier = (binary_expression "iVar11 + 3" identifier + number_literal)) ;) (expression_statement "*(char *)(iVar8 + iVar11) = '\"';" (assignment_expression "*(char *)(iVar8 + iVar11) = '\"'" (pointer_expression "*(char *)(iVar8 + iVar11)" * (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "pcVar5 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar5 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) (expression_statement "pcVar19 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar19 = (char *)(iVar8 + iVar9)" identifier = (cast_expression "(char *)(iVar8 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) )))) ;) (expression_statement "pcVar20 = pcVar18;" (assignment_expression "pcVar20 = pcVar18" identifier = identifier) ;) })) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (expression_statement "*pcVar20 = *pcVar27;" (assignment_expression "*pcVar20 = *pcVar27" (pointer_expression "*pcVar20" * identifier) = (pointer_expression "*pcVar27" * identifier)) ;) (expression_statement "cVar17 = pcVar27[1];" (assignment_expression "cVar17 = pcVar27[1]" identifier = (subscript_expression "pcVar27[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar27 = pcVar27 + 1;" (assignment_expression "pcVar27 = pcVar27 + 1" identifier = (binary_expression "pcVar27 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar17 != '\0')" ( (binary_expression "cVar17 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "*pcVar19 = '\"';" (assignment_expression "*pcVar19 = '\"'" (pointer_expression "*pcVar19" * identifier) = (char_literal "'\"'" ' escape_sequence ')) ;) (if_statement "if (pFVar28->pSynonym == (Fts5ExprTerm *)0x0) goto LAB_00097904;" if (parenthesized_expression "(pFVar28->pSynonym == (Fts5ExprTerm *)0x0)" ( (binary_expression "pFVar28->pSynonym == (Fts5ExprTerm *)0x0" (field_expression "pFVar28->pSynonym" identifier -> field_identifier) == (cast_expression "(Fts5ExprTerm *)0x0" ( (type_descriptor "Fts5ExprTerm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00097904;" goto statement_identifier ;)) (expression_statement "*pcVar5 = '|';" (assignment_expression "*pcVar5 = '|'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'|'" ' character ')) ;) (expression_statement "pFVar28 = pFVar28->pSynonym;" (assignment_expression "pFVar28 = pFVar28->pSynonym" identifier = (field_expression "pFVar28->pSynonym" identifier -> field_identifier)) ;) (expression_statement "iVar12 = iVar11 + 2;" (assignment_expression "iVar12 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pFVar28 != (Fts5ExprTerm *)0x0)" ( (binary_expression "pFVar28 != (Fts5ExprTerm *)0x0" identifier != (cast_expression "(Fts5ExprTerm *)0x0" ( (type_descriptor "Fts5ExprTerm *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar5 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar5 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (labeled_statement "LAB_00097904:\n            if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" statement_identifier : (if_statement "if (pFVar21->bPrefix != '\0') {\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" if (parenthesized_expression "(pFVar21->bPrefix != '\0')" ( (binary_expression "pFVar21->bPrefix != '\0'" (field_expression "pFVar21->bPrefix" identifier -> field_identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *pcVar5 = ' ';\n              pcVar5 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" { (expression_statement "*pcVar5 = ' ';" (assignment_expression "*pcVar5 = ' '" (pointer_expression "*pcVar5" * identifier) = (char_literal "' '" ' character ')) ;) (expression_statement "pcVar5 = (char *)(iVar8 + iVar12 + 2);" (assignment_expression "pcVar5 = (char *)(iVar8 + iVar12 + 2)" identifier = (cast_expression "(char *)(iVar8 + iVar12 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12 + 2)" ( (binary_expression "iVar8 + iVar12 + 2" (binary_expression "iVar8 + iVar12" identifier + identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a" (pointer_expression "*(undefined1 *)(iVar8 + iVar12 + 1)" * (cast_expression "(undefined1 *)(iVar8 + iVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12 + 1)" ( (binary_expression "iVar8 + iVar12 + 1" (binary_expression "iVar8 + iVar12" identifier + identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "*pcVar5 = '\0';" (assignment_expression "*pcVar5 = '\0'" (pointer_expression "*pcVar5" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4 = puVar25;" (assignment_expression "puVar4 = puVar25" identifier = identifier) ;) (if_statement "if (iVar2 == 0) {\n              puVar4 = puVar24;\n            }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar4 = puVar24;\n            }" { (expression_statement "puVar4 = puVar24;" (assignment_expression "puVar4 = puVar24" identifier = identifier) ;) })) (expression_statement "zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8);" (assignment_expression "zApp = (Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8)" identifier = (cast_expression "(Fts5Colset *)(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8)" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar7)(zApp,puVar3 + 0x5624,puVar4,iVar8)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(zApp,puVar3 + 0x5624,puVar4,iVar8)" ( identifier , (binary_expression "puVar3 + 0x5624" identifier + number_literal) , identifier , identifier ))))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) (if_statement "if (zApp == (Fts5Colset *)0x0) goto LAB_00097a9c;" if (parenthesized_expression "(zApp == (Fts5Colset *)0x0)" ( (binary_expression "zApp == (Fts5Colset *)0x0" identifier == (cast_expression "(Fts5Colset *)0x0" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00097a9c;" goto statement_identifier ;)) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "pFVar21 = pFVar21 + 1;" (assignment_expression "pFVar21 = pFVar21 + 1" identifier = (binary_expression "pFVar21 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 < pFVar23->nTerm)" ( (binary_expression "iVar2 < pFVar23->nTerm" identifier < (field_expression "pFVar23->nTerm" identifier -> field_identifier)) )) ;) })) (if_statement "if (pFVar6->nPhrase <= iStack_2c + 1) {\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }" if (parenthesized_expression "(pFVar6->nPhrase <= iStack_2c + 1)" ( (binary_expression "pFVar6->nPhrase <= iStack_2c + 1" (field_expression "pFVar6->nPhrase" identifier -> field_identifier) <= (binary_expression "iStack_2c + 1" identifier + number_literal)) )) (compound_statement "{\n          if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }\n          return (char *)zApp;\n        }" { (if_statement "if (1 < pFVar6->nPhrase) {\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }" if (parenthesized_expression "(1 < pFVar6->nPhrase)" ( (binary_expression "1 < pFVar6->nPhrase" number_literal < (field_expression "pFVar6->nPhrase" identifier -> field_identifier)) )) (compound_statement "{\n            pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);\n            return pcVar27;\n          }" { (expression_statement "pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear);" (assignment_expression "pcVar27 = fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear)" identifier = (call_expression "fts5PrintfAppend((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear)" identifier (argument_list "((char *)zApp,PTR_DAT_0015b5fc + -0x753c,pFVar6->nNear)" ( (cast_expression "(char *)zApp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "PTR_DAT_0015b5fc + -0x753c" identifier + number_literal) , (field_expression "pFVar6->nNear" identifier -> field_identifier) )))) ;) (return_statement "return pcVar27;" return identifier ;) })) (return_statement "return (char *)zApp;" return (cast_expression "(char *)zApp" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ;) })) (expression_statement "pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3];" (assignment_expression "pFVar23 = pFVar6[1].apPhrase[iStack_2c + -3]" identifier = (subscript_expression "pFVar6[1].apPhrase[iStack_2c + -3]" (field_expression "pFVar6[1].apPhrase" (subscript_expression "pFVar6[1]" identifier [ number_literal ]) . field_identifier) [ (binary_expression "iStack_2c + -3" identifier + number_literal) ])) ;) (expression_statement "zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20);" (assignment_expression "zApp = (Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20)" identifier = (cast_expression "(Fts5Colset *)(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20)" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar7)(zApp,PTR_LAB_0015b5e8 + 0x5c20)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(zApp,PTR_LAB_0015b5e8 + 0x5c20)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x5c20" identifier + number_literal) ))))) ;) (expression_statement "iStack_2c = iStack_2c + 1;" (assignment_expression "iStack_2c = iStack_2c + 1" identifier = (binary_expression "iStack_2c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(zApp != (Fts5Colset *)0x0)" ( (binary_expression "zApp != (Fts5Colset *)0x0" identifier != (cast_expression "(Fts5Colset *)0x0" ( (type_descriptor "Fts5Colset *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) })) }) (else_clause "else {\n    if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }\n  }" else (compound_statement "{\n    if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }\n  }" { (if_statement "if (iVar2 == 2) {\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar24 = PTR_LAB_0015b5e8 + 0x5c88;\n    }" { (expression_statement "puVar24 = PTR_LAB_0015b5e8 + 0x5c88;" (assignment_expression "puVar24 = PTR_LAB_0015b5e8 + 0x5c88" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x5c88" identifier + number_literal)) ;) }) (else_clause "else if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }" else (if_statement "if (iVar2 == 3) {\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n      puVar24 = PTR_DAT_0015b5fc + -0x7554;\n    }" { (expression_statement "puVar24 = PTR_DAT_0015b5fc + -0x7554;" (assignment_expression "puVar24 = PTR_DAT_0015b5fc + -0x7554" identifier = (binary_expression "PTR_DAT_0015b5fc + -0x7554" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }" else (compound_statement "{\n      puVar24 = PTR_LAB_0015b5e8 + 0x540c;\n    }" { (expression_statement "puVar24 = PTR_LAB_0015b5e8 + 0x540c;" (assignment_expression "puVar24 = PTR_LAB_0015b5e8 + 0x540c" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x540c" identifier + number_literal)) ;) }))))) (if_statement "if (0 < pExpr->nChild) {\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }" if (parenthesized_expression "(0 < pExpr->nChild)" ( (binary_expression "0 < pExpr->nChild" number_literal < (field_expression "pExpr->nChild" identifier -> field_identifier)) )) (compound_statement "{\n      ppFVar26 = pExpr->apChild;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      pcVar27 = (char *)0x0;\n      puVar22 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_DAT_0015b5fc + -0x570c;\n      pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }\n    }" { (expression_statement "ppFVar26 = pExpr->apChild;" (assignment_expression "ppFVar26 = pExpr->apChild" identifier = (field_expression "pExpr->apChild" identifier -> field_identifier)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_LAB_0015b5e8 + 0x56a8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8 + 0x56a8" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x56a8" identifier + number_literal)) ;) (expression_statement "pcVar27 = (char *)0x0;" (assignment_expression "pcVar27 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "puVar22 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar22 = PTR_LAB_0015b5e8 + 0x53f4" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_DAT_0015b5fc + -0x570c;" (assignment_expression "puVar4 = PTR_DAT_0015b5fc + -0x570c" identifier = (binary_expression "PTR_DAT_0015b5fc + -0x570c" identifier + number_literal)) ;) (expression_statement "pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);" (assignment_expression "pcVar5 = fts5ExprPrint(pConfig,*ppFVar26)" identifier = (call_expression "fts5ExprPrint(pConfig,*ppFVar26)" identifier (argument_list "(pConfig,*ppFVar26)" ( identifier , (pointer_expression "*ppFVar26" * identifier) )))) ;) (while_statement "while( true ) {\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }\n        puVar14 = puVar22;\n        if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);\n        if (pcVar27 == (char *)0x0) break;\n        iVar2 = iVar2 + 1;\n        ppFVar26 = ppFVar26 + 1;\n        if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }\n        pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);\n      }" { (if_statement "if (pcVar5 == (char *)0x0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          (*(code *)PTR_sqlite3_free_0015b620)(pcVar27);\n          return (char *)0x0;\n        }" { (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(pcVar27);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(pcVar27)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar27)" ( identifier ))) ;) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })) (expression_statement "puVar14 = puVar22;" (assignment_expression "puVar14 = puVar22" identifier = identifier) ;) (if_statement "if (((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)) {\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }\n        else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }" if (parenthesized_expression "(((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0))" ( (binary_expression "((*ppFVar26)->eType == 9) || (((*ppFVar26)->eType & 0xfffffffbU) == 0)" (parenthesized_expression "((*ppFVar26)->eType == 9)" ( (binary_expression "(*ppFVar26)->eType == 9" (field_expression "(*ppFVar26)->eType" (parenthesized_expression "(*ppFVar26)" ( (pointer_expression "*ppFVar26" * identifier) )) -> field_identifier) == number_literal) )) || (parenthesized_expression "(((*ppFVar26)->eType & 0xfffffffbU) == 0)" ( (binary_expression "((*ppFVar26)->eType & 0xfffffffbU) == 0" (parenthesized_expression "((*ppFVar26)->eType & 0xfffffffbU)" ( (binary_expression "(*ppFVar26)->eType & 0xfffffffbU" (field_expression "(*ppFVar26)->eType" (parenthesized_expression "(*ppFVar26)" ( (pointer_expression "*ppFVar26" * identifier) )) -> field_identifier) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          puVar15 = puVar22;\n          puVar16 = puVar22;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }" { (expression_statement "puVar15 = puVar22;" (assignment_expression "puVar15 = puVar22" identifier = identifier) ;) (expression_statement "puVar16 = puVar22;" (assignment_expression "puVar16 = puVar22" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar14 = puVar24;\n          }" { (expression_statement "puVar14 = puVar24;" (assignment_expression "puVar14 = puVar24" identifier = identifier) ;) })) }) (else_clause "else {\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }" else (compound_statement "{\n          puVar15 = puVar3;\n          puVar16 = puVar4;\n          if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }\n        }" { (expression_statement "puVar15 = puVar3;" (assignment_expression "puVar15 = puVar3" identifier = identifier) ;) (expression_statement "puVar16 = puVar4;" (assignment_expression "puVar16 = puVar4" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n            puVar14 = puVar24;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar14 = puVar24;\n          }" { (expression_statement "puVar14 = puVar24;" (assignment_expression "puVar14 = puVar24" identifier = identifier) ;) })) }))) (expression_statement "pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16);" (assignment_expression "pcVar27 = fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16)" identifier = (call_expression "fts5PrintfAppend(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16)" identifier (argument_list "(pcVar27,puVar25 + -0x7534,puVar14,puVar15,pcVar5,puVar16)" ( identifier , (binary_expression "puVar25 + -0x7534" identifier + number_literal) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (pcVar27 == (char *)0x0) break;" if (parenthesized_expression "(pcVar27 == (char *)0x0)" ( (binary_expression "pcVar27 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "ppFVar26 = ppFVar26 + 1;" (assignment_expression "ppFVar26 = ppFVar26 + 1" identifier = (binary_expression "ppFVar26 + 1" identifier + number_literal)) ;) (if_statement "if (pExpr->nChild <= iVar2) {\n          return pcVar27;\n        }" if (parenthesized_expression "(pExpr->nChild <= iVar2)" ( (binary_expression "pExpr->nChild <= iVar2" (field_expression "pExpr->nChild" identifier -> field_identifier) <= identifier) )) (compound_statement "{\n          return pcVar27;\n        }" { (return_statement "return pcVar27;" return identifier ;) })) (expression_statement "pcVar5 = fts5ExprPrint(pConfig,*ppFVar26);" (assignment_expression "pcVar5 = fts5ExprPrint(pConfig,*ppFVar26)" identifier = (call_expression "fts5ExprPrint(pConfig,*ppFVar26)" identifier (argument_list "(pConfig,*ppFVar26)" ( identifier , (pointer_expression "*ppFVar26" * identifier) )))) ;) })) })) }))) (return_statement "return (char *)0x0;" return (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) ;) })))
(translation_unit "int FUN_00097660(int param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}\n\n" (function_definition "int FUN_00097660(int param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}" primitive_type (function_declarator "FUN_00097660(int param_1,int *param_2)" identifier (parameter_list "(int param_1,int *param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "undefined *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "char *pcVar13;" primitive_type (pointer_declarator "*pcVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "undefined *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "undefined *puVar18;" type_identifier (pointer_declarator "*puVar18" * identifier) ;) (declaration "char cVar19;" primitive_type identifier ;) (declaration "char *pcVar20;" primitive_type (pointer_declarator "*pcVar20" * identifier) ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "char *pcVar22;" primitive_type (pointer_declarator "*pcVar22" * identifier) ;) (declaration "char *pcVar23;" primitive_type (pointer_declarator "*pcVar23" * identifier) ;) (declaration "undefined *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined *puVar25;" type_identifier (pointer_declarator "*puVar25" * identifier) ;) (declaration "undefined *puVar26;" type_identifier (pointer_declarator "*puVar26" * identifier) ;) (declaration "int *piVar27;" primitive_type (pointer_declarator "*piVar27" * identifier) ;) (declaration "int iVar28;" primitive_type identifier ;) (declaration "char *pcVar29;" primitive_type (pointer_declarator "*pcVar29" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar26 = PTR_UINT_0015b5fc;" (assignment_expression "puVar26 = PTR_UINT_0015b5fc" identifier = identifier) ;) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (if_statement "if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }" { (expression_statement "iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);" (assignment_expression "iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" identifier = (call_expression "sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" identifier (argument_list "(PTR_LAB_0015b5e8 + 0x5314)" ( (binary_expression "PTR_LAB_0015b5e8 + 0x5314" identifier + number_literal) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (if_statement "if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" if (parenthesized_expression "((iVar2 == 9) || (iVar2 == 4))" ( (binary_expression "(iVar2 == 9) || (iVar2 == 4)" (parenthesized_expression "(iVar2 == 9)" ( (binary_expression "iVar2 == 9" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 4)" ( (binary_expression "iVar2 == 4" identifier == number_literal) ))) )) (compound_statement "{\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }" { (expression_statement "puVar6 = (undefined4 *)param_2[6];" (assignment_expression "puVar6 = (undefined4 *)param_2[6]" identifier = (cast_expression "(undefined4 *)param_2[6]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[6]" identifier [ number_literal ]))) ;) (expression_statement "iVar2 = puVar6[1];" (assignment_expression "iVar2 = puVar6[1]" identifier = (subscript_expression "puVar6[1]" identifier [ number_literal ])) ;) (if_statement "if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }" if (parenthesized_expression "((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0))" ( (binary_expression "(iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)" (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) || (parenthesized_expression "(iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)" ( (comma_expression "iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0" (assignment_expression "iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" identifier = (call_expression "FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" identifier (argument_list "(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" ( number_literal , (binary_expression "PTR_UINT_0015b5fc + -0x754c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" * (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" ( (binary_expression "*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4" (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) )))) + (binary_expression "*(int *)(iVar2 + 4) * 4" (pointer_expression "*(int *)(iVar2 + 4)" * (cast_expression "(int *)(iVar2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 4)" ( (binary_expression "iVar2 + 4" identifier + number_literal) )))) * number_literal)) )))) )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }" { (if_statement "if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" if (parenthesized_expression "((int)puVar6[2] < 2)" ( (binary_expression "(int)puVar6[2] < 2" (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }" { (if_statement "if (puVar6[2] != 1) {\n          return iVar2;\n        }" if (parenthesized_expression "(puVar6[2] != 1)" ( (binary_expression "puVar6[2] != 1" (subscript_expression "puVar6[2]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n          return iVar2;\n        }" { (return_statement "return iVar2;" return identifier ;) })) }) (else_clause "else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" else (compound_statement "{\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" { (expression_statement "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);" (assignment_expression "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544)" identifier = (call_expression "FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544)" identifier (argument_list "(iVar2,PTR_UINT_0015b5fc + -0x7544)" ( identifier , (binary_expression "PTR_UINT_0015b5fc + -0x7544" identifier + number_literal) )))) ;) (if_statement "if (iVar2 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }" if (parenthesized_expression "((int)puVar6[2] < 1)" ( (binary_expression "(int)puVar6[2] < 1" (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ])) < number_literal) )) (compound_statement "{\n          return iVar2;\n        }" { (return_statement "return iVar2;" return identifier ;) })) }))) (expression_statement "iVar28 = puVar6[3];" (assignment_expression "iVar28 = puVar6[3]" identifier = (subscript_expression "puVar6[3]" identifier [ number_literal ])) ;) (expression_statement "pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);" (assignment_expression "pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154)" identifier = (cast_expression "(code *)(PTR_DAT_0015b71c + 0x7154)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b71c + 0x7154)" ( (binary_expression "PTR_DAT_0015b71c + 0x7154" identifier + number_literal) )))) ;) (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x53f4" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal)) ;) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" identifier = number_literal) ;) (expression_statement "puVar26 = PTR_UINT_0015b5fc + -0x7558;" (assignment_expression "puVar26 = PTR_UINT_0015b5fc + -0x7558" identifier = (binary_expression "PTR_UINT_0015b5fc + -0x7558" identifier + number_literal)) ;) (do_statement "do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);" do (compound_statement "{\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      }" { (expression_statement "puVar3 = PTR_LAB_0015b5e8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8" identifier = identifier) ;) (if_statement "if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }" if (parenthesized_expression "(0 < *(int *)(iVar28 + 0x10))" ( (binary_expression "0 < *(int *)(iVar28 + 0x10)" number_literal < (pointer_expression "*(int *)(iVar28 + 0x10)" * (cast_expression "(int *)(iVar28 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x10)" ( (binary_expression "iVar28 + 0x10" identifier + number_literal) ))))) )) (compound_statement "{\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }" { (expression_statement "pcVar23 = (char *)(iVar28 + 0x14);" (assignment_expression "pcVar23 = (char *)(iVar28 + 0x14)" identifier = (cast_expression "(char *)(iVar28 + 0x14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x14)" ( (binary_expression "iVar28 + 0x14" identifier + number_literal) )))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (do_statement "do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));" do (compound_statement "{\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          }" { (expression_statement "iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));" (assignment_expression "iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4))" identifier = (call_expression "(*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4))" (parenthesized_expression "(*(code *)PTR_strlen_0015b9c4)" ( (pointer_expression "*(code *)PTR_strlen_0015b9c4" * (cast_expression "(code *)PTR_strlen_0015b9c4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(pcVar23 + 4))" ( (pointer_expression "*(undefined4 *)(pcVar23 + 4)" * (cast_expression "(undefined4 *)(pcVar23 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 4)" ( (binary_expression "pcVar23 + 4" identifier + number_literal) )))) )))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar8 = iVar8 * 2 + 5;" (assignment_expression "iVar8 = iVar8 * 2 + 5" identifier = (binary_expression "iVar8 * 2 + 5" (binary_expression "iVar8 * 2" identifier * number_literal) + number_literal)) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "pcVar29 = pcVar23;" (assignment_expression "pcVar29 = pcVar23" identifier = identifier) ;) (do_statement "do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);" do (compound_statement "{\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            }" { (expression_statement "uVar10 = uVar14 + iVar8;" (assignment_expression "uVar10 = uVar14 + iVar8" identifier = (binary_expression "uVar14 + iVar8" identifier + identifier)) ;) (expression_statement "pcVar29 = *(char **)(pcVar29 + 0xc);" (assignment_expression "pcVar29 = *(char **)(pcVar29 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar29 + 0xc)" * (cast_expression "(char **)(pcVar29 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0xc)" ( (binary_expression "pcVar29 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);" (assignment_expression "iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f)" identifier = (binary_expression "(uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f)" (binary_expression "(uint)(uVar10 < uVar14) + iVar12" (call_expression "(uint)(uVar10 < uVar14)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < uVar14)" ( (binary_expression "uVar10 < uVar14" identifier < identifier) ))) + identifier) + (parenthesized_expression "(iVar8 >> 0x1f)" ( (binary_expression "iVar8 >> 0x1f" identifier >> number_literal) )))) ;) (expression_statement "uVar14 = uVar10;" (assignment_expression "uVar14 = uVar10" identifier = identifier) ;) }) while (parenthesized_expression "(pcVar29 != (char *)0x0)" ( (binary_expression "pcVar29 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);" (assignment_expression "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015b760" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015b760" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar12)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }" { (labeled_statement "LAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar2);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar2)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar2)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "pcVar29 = pcVar23;" (assignment_expression "pcVar29 = pcVar23" identifier = identifier) ;) (do_statement "do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);" do (compound_statement "{\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            }" { (expression_statement "pcVar13 = *(char **)(pcVar29 + 4);" (assignment_expression "pcVar13 = *(char **)(pcVar29 + 4)" identifier = (pointer_expression "*(char **)(pcVar29 + 4)" * (cast_expression "(char **)(pcVar29 + 4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 4)" ( (binary_expression "pcVar29 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(iVar8 + iVar12) = 0x22;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12) = 0x22" (pointer_expression "*(undefined1 *)(iVar8 + iVar12)" * (cast_expression "(undefined1 *)(iVar8 + iVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) = number_literal) ;) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" identifier = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "iVar11 = iVar12 + 1;" (assignment_expression "iVar11 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (if_statement "if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" if (parenthesized_expression "(cVar19 == '\0')" ( (binary_expression "cVar19 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }" { (expression_statement "iVar12 = iVar12 + 2;" (assignment_expression "iVar12 = iVar12 + 2" identifier = (binary_expression "iVar12 + 2" identifier + number_literal)) ;) (expression_statement "pcVar21 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar21 = (char *)(iVar8 + iVar11)" identifier = (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) }) (else_clause "else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" else (compound_statement "{\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" { (do_statement "do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');" do (compound_statement "{\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                }" { (expression_statement "iVar9 = iVar11 + 2;" (assignment_expression "iVar9 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) (expression_statement "pcVar20 = (char *)(iVar8 + iVar11 + 1);" (assignment_expression "pcVar20 = (char *)(iVar8 + iVar11 + 1)" identifier = (cast_expression "(char *)(iVar8 + iVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11 + 1)" ( (binary_expression "iVar8 + iVar11 + 1" (binary_expression "iVar8 + iVar11" identifier + identifier) + number_literal) )))) ;) (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" identifier = identifier) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar9)" identifier = (cast_expression "(char *)(iVar8 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) )))) ;) (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" identifier = (binary_expression "iVar11 + 1" identifier + number_literal)) ;) (expression_statement "pcVar21 = pcVar20;" (assignment_expression "pcVar21 = pcVar20" identifier = identifier) ;) (expression_statement "pcVar22 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar22 = (char *)(iVar8 + iVar11)" identifier = (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) ;) (if_statement "if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }" if (parenthesized_expression "(cVar19 == '\"')" ( (binary_expression "cVar19 == '\"'" identifier == (char_literal "'\"'" ' escape_sequence ')) )) (compound_statement "{\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }" { (expression_statement "iVar12 = iVar11 + 3;" (assignment_expression "iVar12 = iVar11 + 3" identifier = (binary_expression "iVar11 + 3" identifier + number_literal)) ;) (expression_statement "*(char *)(iVar8 + iVar11) = '\"';" (assignment_expression "*(char *)(iVar8 + iVar11) = '\"'" (pointer_expression "*(char *)(iVar8 + iVar11)" * (cast_expression "(char *)(iVar8 + iVar11)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar11)" ( (binary_expression "iVar8 + iVar11" identifier + identifier) )))) = (char_literal "'\"'" ' escape_sequence ')) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" identifier = identifier) ;) (expression_statement "pcVar21 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar21 = (char *)(iVar8 + iVar9)" identifier = (cast_expression "(char *)(iVar8 + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar9)" ( (binary_expression "iVar8 + iVar9" identifier + identifier) )))) ;) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" identifier = identifier) ;) })) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" identifier = identifier) ;) (expression_statement "*pcVar22 = *pcVar13;" (assignment_expression "*pcVar22 = *pcVar13" (pointer_expression "*pcVar22" * identifier) = (pointer_expression "*pcVar13" * identifier)) ;) (expression_statement "cVar19 = pcVar13[1];" (assignment_expression "cVar19 = pcVar13[1]" identifier = (subscript_expression "pcVar13[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" identifier = (binary_expression "pcVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(cVar19 != '\0')" ( (binary_expression "cVar19 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) }))) (expression_statement "*pcVar21 = '\"';" (assignment_expression "*pcVar21 = '\"'" (pointer_expression "*pcVar21" * identifier) = (char_literal "'\"'" ' escape_sequence ')) ;) (if_statement "if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;" if (parenthesized_expression "(*(int *)(pcVar29 + 0xc) == 0)" ( (binary_expression "*(int *)(pcVar29 + 0xc) == 0" (pointer_expression "*(int *)(pcVar29 + 0xc)" * (cast_expression "(int *)(pcVar29 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar29 + 0xc)" ( (binary_expression "pcVar29 + 0xc" identifier + number_literal) )))) == number_literal) )) (goto_statement "goto LAB_00097904;" goto statement_identifier ;)) (expression_statement "*pcVar15 = '|';" (assignment_expression "*pcVar15 = '|'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'|'" ' character ')) ;) (expression_statement "pcVar29 = *(char **)(pcVar29 + 0xc);" (assignment_expression "pcVar29 = *(char **)(pcVar29 + 0xc)" identifier = (pointer_expression "*(char **)(pcVar29 + 0xc)" * (cast_expression "(char **)(pcVar29 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar29 + 0xc)" ( (binary_expression "pcVar29 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iVar11 + 2;" (assignment_expression "iVar12 = iVar11 + 2" identifier = (binary_expression "iVar11 + 2" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar29 != (char *)0x0)" ( (binary_expression "pcVar29 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" identifier = (cast_expression "(char *)(iVar8 + iVar12)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12)" ( (binary_expression "iVar8 + iVar12" identifier + identifier) )))) ;) (labeled_statement "LAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" statement_identifier : (if_statement "if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" if (parenthesized_expression "(*pcVar23 != '\0')" ( (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" { (expression_statement "*pcVar15 = ' ';" (assignment_expression "*pcVar15 = ' '" (pointer_expression "*pcVar15" * identifier) = (char_literal "' '" ' character ')) ;) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12 + 2);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12 + 2)" identifier = (cast_expression "(char *)(iVar8 + iVar12 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12 + 2)" ( (binary_expression "iVar8 + iVar12 + 2" (binary_expression "iVar8 + iVar12" identifier + identifier) + number_literal) )))) ;) (expression_statement "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a" (pointer_expression "*(undefined1 *)(iVar8 + iVar12 + 1)" * (cast_expression "(undefined1 *)(iVar8 + iVar12 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + iVar12 + 1)" ( (binary_expression "iVar8 + iVar12 + 1" (binary_expression "iVar8 + iVar12" identifier + identifier) + number_literal) )))) = number_literal) ;) }))) (expression_statement "*pcVar15 = '\0';" (assignment_expression "*pcVar15 = '\0'" (pointer_expression "*pcVar15" * identifier) = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "puVar4 = puVar26;" (assignment_expression "puVar4 = puVar26" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n              puVar4 = puVar25;\n            }" { (expression_statement "puVar4 = puVar25;" (assignment_expression "puVar4 = puVar25" identifier = identifier) ;) })) (expression_statement "iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);" (assignment_expression "iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8)" identifier = (call_expression "(*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(iVar2,puVar3 + 0x5624,puVar4,iVar8)" ( identifier , (binary_expression "puVar3 + 0x5624" identifier + number_literal) , identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar8)" ( identifier ))) ;) (if_statement "if (iVar2 == 0) goto LAB_00097a9c;" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00097a9c;" goto statement_identifier ;)) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "pcVar23 = pcVar23 + 0x10;" (assignment_expression "pcVar23 = pcVar23 + 0x10" identifier = (binary_expression "pcVar23 + 0x10" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar28 + 0x10))" ( (binary_expression "iVar5 < *(int *)(iVar28 + 0x10)" identifier < (pointer_expression "*(int *)(iVar28 + 0x10)" * (cast_expression "(int *)(iVar28 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar28 + 0x10)" ( (binary_expression "iVar28 + 0x10" identifier + number_literal) ))))) )) ;) })) (if_statement "if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }" if (parenthesized_expression "((int)puVar6[2] <= local_2c + 1)" ( (binary_expression "(int)puVar6[2] <= local_2c + 1" (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ])) <= (binary_expression "local_2c + 1" identifier + number_literal)) )) (compound_statement "{\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }" { (if_statement "if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }" if (parenthesized_expression "(1 < (int)puVar6[2])" ( (binary_expression "1 < (int)puVar6[2]" number_literal < (cast_expression "(int)puVar6[2]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "puVar6[2]" identifier [ number_literal ]))) )) (compound_statement "{\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }" { (expression_statement "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);" (assignment_expression "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" identifier = (call_expression "FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" identifier (argument_list "(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" ( identifier , (binary_expression "PTR_UINT_0015b5fc + -0x753c" identifier + number_literal) , (pointer_expression "*puVar6" * identifier) )))) ;) (return_statement "return iVar2;" return identifier ;) })) (return_statement "return iVar2;" return identifier ;) })) (expression_statement "iVar28 = puVar6[local_2c + 4];" (assignment_expression "iVar28 = puVar6[local_2c + 4]" identifier = (subscript_expression "puVar6[local_2c + 4]" identifier [ (binary_expression "local_2c + 4" identifier + number_literal) ])) ;) (expression_statement "iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);" (assignment_expression "iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" identifier = (call_expression "(*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" ( identifier , (binary_expression "PTR_LAB_0015b5e8 + 0x5c20" identifier + number_literal) )))) ;) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" identifier = (binary_expression "local_2c + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) ;) })) }) (else_clause "else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" else (compound_statement "{\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" { (if_statement "if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" if (parenthesized_expression "(iVar2 == 2)" ( (binary_expression "iVar2 == 2" identifier == number_literal) )) (compound_statement "{\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }" { (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x5c88;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x5c88" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x5c88" identifier + number_literal)) ;) }) (else_clause "else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" else (if_statement "if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" if (parenthesized_expression "(iVar2 == 3)" ( (binary_expression "iVar2 == 3" identifier == number_literal) )) (compound_statement "{\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }" { (expression_statement "puVar25 = PTR_UINT_0015b5fc + -0x7554;" (assignment_expression "puVar25 = PTR_UINT_0015b5fc + -0x7554" identifier = (binary_expression "PTR_UINT_0015b5fc + -0x7554" identifier + number_literal)) ;) }) (else_clause "else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" else (compound_statement "{\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" { (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x540c;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x540c" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x540c" identifier + number_literal)) ;) }))))) (if_statement "if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }" if (parenthesized_expression "(0 < param_2[7])" ( (binary_expression "0 < param_2[7]" number_literal < (subscript_expression "param_2[7]" identifier [ number_literal ])) )) (compound_statement "{\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }" { (expression_statement "piVar27 = param_2 + 8;" (assignment_expression "piVar27 = param_2 + 8" identifier = (binary_expression "param_2 + 8" identifier + number_literal)) ;) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) (expression_statement "puVar3 = PTR_LAB_0015b5e8 + 0x56a8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8 + 0x56a8" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x56a8" identifier + number_literal)) ;) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" identifier = number_literal) ;) (expression_statement "puVar24 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar24 = PTR_LAB_0015b5e8 + 0x53f4" identifier = (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" identifier + number_literal)) ;) (expression_statement "puVar4 = PTR_UINT_0015b5fc + -0x570c;" (assignment_expression "puVar4 = PTR_UINT_0015b5fc + -0x570c" identifier = (binary_expression "PTR_UINT_0015b5fc + -0x570c" identifier + number_literal)) ;) (expression_statement "iVar5 = FUN_00097660(param_1,*piVar27);" (assignment_expression "iVar5 = FUN_00097660(param_1,*piVar27)" identifier = (call_expression "FUN_00097660(param_1,*piVar27)" identifier (argument_list "(param_1,*piVar27)" ( identifier , (pointer_expression "*piVar27" * identifier) )))) ;) (while_statement "while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }" { (if_statement "if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }" { (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar28);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar28)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" * (cast_expression "(code *)PTR_sqlite3_free_0015b620" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar28)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar16 = puVar24;" (assignment_expression "puVar16 = puVar24" identifier = identifier) ;) (if_statement "if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" if (parenthesized_expression "((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0))" ( (binary_expression "(*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)" (parenthesized_expression "(*(uint *)*piVar27 == 9)" ( (binary_expression "*(uint *)*piVar27 == 9" (pointer_expression "*(uint *)*piVar27" * (cast_expression "(uint *)*piVar27" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier))) == number_literal) )) || (parenthesized_expression "((*(uint *)*piVar27 & 0xfffffffb) == 0)" ( (binary_expression "(*(uint *)*piVar27 & 0xfffffffb) == 0" (parenthesized_expression "(*(uint *)*piVar27 & 0xfffffffb)" ( (binary_expression "*(uint *)*piVar27 & 0xfffffffb" (pointer_expression "*(uint *)*piVar27" * (cast_expression "(uint *)*piVar27" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar27" * identifier))) & number_literal) )) == number_literal) ))) )) (compound_statement "{\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" { (expression_statement "puVar17 = puVar24;" (assignment_expression "puVar17 = puVar24" identifier = identifier) ;) (expression_statement "puVar18 = puVar24;" (assignment_expression "puVar18 = puVar24" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar16 = puVar25;\n          }" { (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" identifier = identifier) ;) })) }) (else_clause "else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" else (compound_statement "{\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" { (expression_statement "puVar17 = puVar3;" (assignment_expression "puVar17 = puVar3" identifier = identifier) ;) (expression_statement "puVar18 = puVar4;" (assignment_expression "puVar18 = puVar4" identifier = identifier) ;) (if_statement "if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n            puVar16 = puVar25;\n          }" { (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" identifier = identifier) ;) })) }))) (expression_statement "iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);" (assignment_expression "iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" identifier = (call_expression "FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" identifier (argument_list "(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" ( identifier , (binary_expression "puVar26 + -0x7534" identifier + number_literal) , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar28 == 0) break;" if (parenthesized_expression "(iVar28 == 0)" ( (binary_expression "iVar28 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" identifier = (binary_expression "iVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar27 = piVar27 + 1;" (assignment_expression "piVar27 = piVar27 + 1" identifier = (binary_expression "piVar27 + 1" identifier + number_literal)) ;) (if_statement "if (param_2[7] <= iVar2) {\n          return iVar28;\n        }" if (parenthesized_expression "(param_2[7] <= iVar2)" ( (binary_expression "param_2[7] <= iVar2" (subscript_expression "param_2[7]" identifier [ number_literal ]) <= identifier) )) (compound_statement "{\n          return iVar28;\n        }" { (return_statement "return iVar28;" return identifier ;) })) (expression_statement "iVar5 = FUN_00097660(param_1,*piVar27);" (assignment_expression "iVar5 = FUN_00097660(param_1,*piVar27)" identifier = (call_expression "FUN_00097660(param_1,*piVar27)" identifier (argument_list "(param_1,*piVar27)" ( identifier , (pointer_expression "*piVar27" * identifier) )))) ;) })) })) }))) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) * LIT)) )))) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (return_statement return IDENT ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (return_statement return IDENT ;) })) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < IDENT) ))) + IDENT) + (parenthesized_expression ( (binary_expression IDENT >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' character ')) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= (binary_expression IDENT + LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (pointer_expression * IDENT) )))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ (binary_expression IDENT + LIT) ])) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))))) (if_statement if (parenthesized_expression ( (binary_expression LIT < (subscript_expression IDENT [ LIT ])) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == LIT) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) & LIT) )) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) <= IDENT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) })) })) }))) (return_statement return LIT ;) })))
(function_definition "int FUN_00097660(int param_1,int *param_2)\n\n{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}" (primitive_type "int") (function_declarator "FUN_00097660(int param_1,int *param_2)" (identifier "FUN_00097660") (parameter_list "(int param_1,int *param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  undefined4 *puVar6;\n  code *pcVar7;\n  int iVar8;\n  int iVar9;\n  uint uVar10;\n  int iVar11;\n  int iVar12;\n  char *pcVar13;\n  uint uVar14;\n  char *pcVar15;\n  undefined *puVar16;\n  undefined *puVar17;\n  undefined *puVar18;\n  char cVar19;\n  char *pcVar20;\n  char *pcVar21;\n  char *pcVar22;\n  char *pcVar23;\n  undefined *puVar24;\n  undefined *puVar25;\n  undefined *puVar26;\n  int *piVar27;\n  int iVar28;\n  char *pcVar29;\n  int local_2c;\n  \n  puVar26 = PTR_UINT_0015b5fc;\n  iVar2 = *param_2;\n  if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }\n  if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "undefined *puVar4;" (type_identifier "undefined") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "char *pcVar13;" (primitive_type "char") (pointer_declarator "*pcVar13" (* "*") (identifier "pcVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "undefined *puVar16;" (type_identifier "undefined") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined *puVar17;" (type_identifier "undefined") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "undefined *puVar18;" (type_identifier "undefined") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "char cVar19;" (primitive_type "char") (identifier "cVar19") (; ";")) (declaration "char *pcVar20;" (primitive_type "char") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "char *pcVar21;" (primitive_type "char") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "char *pcVar22;" (primitive_type "char") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "char *pcVar23;" (primitive_type "char") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "undefined *puVar24;" (type_identifier "undefined") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined *puVar25;" (type_identifier "undefined") (pointer_declarator "*puVar25" (* "*") (identifier "puVar25")) (; ";")) (declaration "undefined *puVar26;" (type_identifier "undefined") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "int *piVar27;" (primitive_type "int") (pointer_declarator "*piVar27" (* "*") (identifier "piVar27")) (; ";")) (declaration "int iVar28;" (primitive_type "int") (identifier "iVar28") (; ";")) (declaration "char *pcVar29;" (primitive_type "char") (pointer_declarator "*pcVar29" (* "*") (identifier "pcVar29")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar26 = PTR_UINT_0015b5fc;" (assignment_expression "puVar26 = PTR_UINT_0015b5fc" (identifier "puVar26") (= "=") (identifier "PTR_UINT_0015b5fc")) (; ";")) (expression_statement "iVar2 = *param_2;" (assignment_expression "iVar2 = *param_2" (identifier "iVar2") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (if_statement "if (iVar2 == 0) {\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);\n    return iVar2;\n  }" ({ "{") (expression_statement "iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);" (assignment_expression "iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" (identifier "iVar2") (= "=") (call_expression "sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314)" (identifier "sqlite3_mprintf") (argument_list "(PTR_LAB_0015b5e8 + 0x5314)" (( "(") (binary_expression "PTR_LAB_0015b5e8 + 0x5314" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x5314")) () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (if_statement "if ((iVar2 == 9) || (iVar2 == 4)) {\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }\n  else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" (if "if") (parenthesized_expression "((iVar2 == 9) || (iVar2 == 4))" (( "(") (binary_expression "(iVar2 == 9) || (iVar2 == 4)" (parenthesized_expression "(iVar2 == 9)" (( "(") (binary_expression "iVar2 == 9" (identifier "iVar2") (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "(iVar2 == 4)" (( "(") (binary_expression "iVar2 == 4" (identifier "iVar2") (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n    puVar6 = (undefined4 *)param_2[6];\n    iVar2 = puVar6[1];\n    if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }\n  }" ({ "{") (expression_statement "puVar6 = (undefined4 *)param_2[6];" (assignment_expression "puVar6 = (undefined4 *)param_2[6]" (identifier "puVar6") (= "=") (cast_expression "(undefined4 *)param_2[6]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[6]" (identifier "param_2") ([ "[") (number_literal "6") (] "]")))) (; ";")) (expression_statement "iVar2 = puVar6[1];" (assignment_expression "iVar2 = puVar6[1]" (identifier "iVar2") (= "=") (subscript_expression "puVar6[1]" (identifier "puVar6") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)) {\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }" (if "if") (parenthesized_expression "((iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0))" (( "(") (binary_expression "(iVar2 == 0) ||\n       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)" (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),\n       iVar2 != 0" (assignment_expression "iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" (identifier "iVar2") (= "=") (call_expression "FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" (identifier "FUN_00097154") (argument_list "(0,PTR_UINT_0015b5fc + -0x754c,\n                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4))" (( "(") (number_literal "0") (, ",") (binary_expression "PTR_UINT_0015b5fc + -0x754c" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x754c")) (, ",") (pointer_expression "*(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" (* "*") (cast_expression "(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)" (( "(") (binary_expression "*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4" (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")")))) (+ "+") (binary_expression "*(int *)(iVar2 + 4) * 4" (pointer_expression "*(int *)(iVar2 + 4)" (* "*") (cast_expression "(int *)(iVar2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + 4)" (( "(") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4")) () ")")))) (* "*") (number_literal "4"))) () ")")))) () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n      if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }\n      iVar28 = puVar6[3];\n      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);\n      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;\n      local_2c = 0;\n      puVar26 = PTR_UINT_0015b5fc + -0x7558;\n      do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);\n    }" ({ "{") (if_statement "if ((int)puVar6[2] < 2) {\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }\n      else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" (if "if") (parenthesized_expression "((int)puVar6[2] < 2)" (( "(") (binary_expression "(int)puVar6[2] < 2" (cast_expression "(int)puVar6[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        if (puVar6[2] != 1) {\n          return iVar2;\n        }\n      }" ({ "{") (if_statement "if (puVar6[2] != 1) {\n          return iVar2;\n        }" (if "if") (parenthesized_expression "(puVar6[2] != 1)" (( "(") (binary_expression "puVar6[2] != 1" (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          return iVar2;\n        }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" (else "else") (compound_statement "{\n        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);\n        if (iVar2 == 0) {\n          return 0;\n        }\n        if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }\n      }" ({ "{") (expression_statement "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);" (assignment_expression "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544)" (identifier "iVar2") (= "=") (call_expression "FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544)" (identifier "FUN_00097154") (argument_list "(iVar2,PTR_UINT_0015b5fc + -0x7544)" (( "(") (identifier "iVar2") (, ",") (binary_expression "PTR_UINT_0015b5fc + -0x7544" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x7544")) () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((int)puVar6[2] < 1) {\n          return iVar2;\n        }" (if "if") (parenthesized_expression "((int)puVar6[2] < 1)" (( "(") (binary_expression "(int)puVar6[2] < 1" (cast_expression "(int)puVar6[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          return iVar2;\n        }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar28 = puVar6[3];" (assignment_expression "iVar28 = puVar6[3]" (identifier "iVar28") (= "=") (subscript_expression "puVar6[3]" (identifier "puVar6") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);" (assignment_expression "pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154)" (identifier "pcVar7") (= "=") (cast_expression "(code *)(PTR_DAT_0015b71c + 0x7154)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_0015b71c + 0x7154)" (( "(") (binary_expression "PTR_DAT_0015b71c + 0x7154" (identifier "PTR_DAT_0015b71c") (+ "+") (number_literal "0x7154")) () ")")))) (; ";")) (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x53f4" (identifier "puVar25") (= "=") (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x53f4"))) (; ";")) (expression_statement "local_2c = 0;" (assignment_expression "local_2c = 0" (identifier "local_2c") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar26 = PTR_UINT_0015b5fc + -0x7558;" (assignment_expression "puVar26 = PTR_UINT_0015b5fc + -0x7558" (identifier "puVar26") (= "=") (binary_expression "PTR_UINT_0015b5fc + -0x7558" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x7558"))) (; ";")) (do_statement "do {\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      } while (iVar2 != 0);" (do "do") (compound_statement "{\n        puVar3 = PTR_LAB_0015b5e8;\n        if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }\n        if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }\n        iVar28 = puVar6[local_2c + 4];\n        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);\n        local_2c = local_2c + 1;\n      }" ({ "{") (expression_statement "puVar3 = PTR_LAB_0015b5e8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8" (identifier "puVar3") (= "=") (identifier "PTR_LAB_0015b5e8")) (; ";")) (if_statement "if (0 < *(int *)(iVar28 + 0x10)) {\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar28 + 0x10))" (( "(") (binary_expression "0 < *(int *)(iVar28 + 0x10)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar28 + 0x10)" (* "*") (cast_expression "(int *)(iVar28 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x10)" (( "(") (binary_expression "iVar28 + 0x10" (identifier "iVar28") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (compound_statement "{\n          pcVar23 = (char *)(iVar28 + 0x14);\n          iVar5 = 0;\n          do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));\n        }" ({ "{") (expression_statement "pcVar23 = (char *)(iVar28 + 0x14);" (assignment_expression "pcVar23 = (char *)(iVar28 + 0x14)" (identifier "pcVar23") (= "=") (cast_expression "(char *)(iVar28 + 0x14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x14)" (( "(") (binary_expression "iVar28 + 0x14" (identifier "iVar28") (+ "+") (number_literal "0x14")) () ")")))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          } while (iVar5 < *(int *)(iVar28 + 0x10));" (do "do") (compound_statement "{\n            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));\n            iVar12 = 0;\n            iVar8 = iVar8 * 2 + 5;\n            uVar14 = 0;\n            pcVar29 = pcVar23;\n            do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);\n            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);\n            if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }\n            iVar12 = 0;\n            pcVar29 = pcVar23;\n            do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);\n            pcVar15 = (char *)(iVar8 + iVar12);\nLAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }\n            *pcVar15 = '\0';\n            puVar4 = puVar26;\n            if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }\n            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);\n            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);\n            if (iVar2 == 0) goto LAB_00097a9c;\n            iVar5 = iVar5 + 1;\n            pcVar23 = pcVar23 + 0x10;\n          }" ({ "{") (expression_statement "iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));" (assignment_expression "iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4))" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4))" (parenthesized_expression "(*(code *)PTR_strlen_0015b9c4)" (( "(") (pointer_expression "*(code *)PTR_strlen_0015b9c4" (* "*") (cast_expression "(code *)PTR_strlen_0015b9c4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0015b9c4"))) () ")")) (argument_list "(*(undefined4 *)(pcVar23 + 4))" (( "(") (pointer_expression "*(undefined4 *)(pcVar23 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar23 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 4)" (( "(") (binary_expression "pcVar23 + 4" (identifier "pcVar23") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar8 = iVar8 * 2 + 5;" (assignment_expression "iVar8 = iVar8 * 2 + 5" (identifier "iVar8") (= "=") (binary_expression "iVar8 * 2 + 5" (binary_expression "iVar8 * 2" (identifier "iVar8") (* "*") (number_literal "2")) (+ "+") (number_literal "5"))) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar29 = pcVar23;" (assignment_expression "pcVar29 = pcVar23" (identifier "pcVar29") (= "=") (identifier "pcVar23")) (; ";")) (do_statement "do {\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            } while (pcVar29 != (char *)0x0);" (do "do") (compound_statement "{\n              uVar10 = uVar14 + iVar8;\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);\n              uVar14 = uVar10;\n            }" ({ "{") (expression_statement "uVar10 = uVar14 + iVar8;" (assignment_expression "uVar10 = uVar14 + iVar8" (identifier "uVar10") (= "=") (binary_expression "uVar14 + iVar8" (identifier "uVar14") (+ "+") (identifier "iVar8"))) (; ";")) (expression_statement "pcVar29 = *(char **)(pcVar29 + 0xc);" (assignment_expression "pcVar29 = *(char **)(pcVar29 + 0xc)" (identifier "pcVar29") (= "=") (pointer_expression "*(char **)(pcVar29 + 0xc)" (* "*") (cast_expression "(char **)(pcVar29 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0xc)" (( "(") (binary_expression "pcVar29 + 0xc" (identifier "pcVar29") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);" (assignment_expression "iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f)" (identifier "iVar12") (= "=") (binary_expression "(uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f)" (binary_expression "(uint)(uVar10 < uVar14) + iVar12" (call_expression "(uint)(uVar10 < uVar14)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < uVar14)" (( "(") (binary_expression "uVar10 < uVar14" (identifier "uVar10") (< "<") (identifier "uVar14")) () ")"))) (+ "+") (identifier "iVar12")) (+ "+") (parenthesized_expression "(iVar8 >> 0x1f)" (( "(") (binary_expression "iVar8 >> 0x1f" (identifier "iVar8") (>> ">>") (number_literal "0x1f")) () ")")))) (; ";")) (expression_statement "uVar14 = uVar10;" (assignment_expression "uVar14 = uVar10" (identifier "uVar14") (= "=") (identifier "uVar10")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar29 != (char *)0x0)" (( "(") (binary_expression "pcVar29 != (char *)0x0" (identifier "pcVar29") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);" (assignment_expression "iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" (identifier "iVar8") (= "=") (call_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015b760)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015b760" (* "*") (cast_expression "(code *)PTR_sqlite3_malloc64_0015b760" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_malloc64_0015b760"))) () ")")) (argument_list "(iVar12)" (( "(") (identifier "iVar12") () ")")))) (; ";")) (if_statement "if (iVar8 == 0) {\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }" (if "if") (parenthesized_expression "(iVar8 == 0)" (( "(") (binary_expression "iVar8 == 0" (identifier "iVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);\n              return 0;\n            }" ({ "{") (labeled_statement "LAB_00097a9c:\n              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);" (statement_identifier "LAB_00097a9c") (: ":") (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar2);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar2)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015b620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015b620"))) () ")")) (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar29 = pcVar23;" (assignment_expression "pcVar29 = pcVar23" (identifier "pcVar29") (= "=") (identifier "pcVar23")) (; ";")) (do_statement "do {\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            } while (pcVar29 != (char *)0x0);" (do "do") (compound_statement "{\n              pcVar13 = *(char **)(pcVar29 + 4);\n              *(undefined1 *)(iVar8 + iVar12) = 0x22;\n              cVar19 = *pcVar13;\n              iVar11 = iVar12 + 1;\n              if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }\n              *pcVar21 = '\"';\n              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;\n              *pcVar15 = '|';\n              pcVar29 = *(char **)(pcVar29 + 0xc);\n              iVar12 = iVar11 + 2;\n            }" ({ "{") (expression_statement "pcVar13 = *(char **)(pcVar29 + 4);" (assignment_expression "pcVar13 = *(char **)(pcVar29 + 4)" (identifier "pcVar13") (= "=") (pointer_expression "*(char **)(pcVar29 + 4)" (* "*") (cast_expression "(char **)(pcVar29 + 4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 4)" (( "(") (binary_expression "pcVar29 + 4" (identifier "pcVar29") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(iVar8 + iVar12) = 0x22;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12) = 0x22" (pointer_expression "*(undefined1 *)(iVar8 + iVar12)" (* "*") (cast_expression "(undefined1 *)(iVar8 + iVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12)" (( "(") (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) () ")")))) (= "=") (number_literal "0x22")) (; ";")) (expression_statement "cVar19 = *pcVar13;" (assignment_expression "cVar19 = *pcVar13" (identifier "cVar19") (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "iVar11 = iVar12 + 1;" (assignment_expression "iVar11 = iVar12 + 1" (identifier "iVar11") (= "=") (binary_expression "iVar12 + 1" (identifier "iVar12") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (cVar19 == '\0') {\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }\n              else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" (if "if") (parenthesized_expression "(cVar19 == '\0')" (( "(") (binary_expression "cVar19 == '\0'" (identifier "cVar19") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n                iVar12 = iVar12 + 2;\n                pcVar21 = (char *)(iVar8 + iVar11);\n                pcVar15 = (char *)(iVar8 + iVar12);\n              }" ({ "{") (expression_statement "iVar12 = iVar12 + 2;" (assignment_expression "iVar12 = iVar12 + 2" (identifier "iVar12") (= "=") (binary_expression "iVar12 + 2" (identifier "iVar12") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar21 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar21 = (char *)(iVar8 + iVar11)" (identifier "pcVar21") (= "=") (cast_expression "(char *)(iVar8 + iVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar11)" (( "(") (binary_expression "iVar8 + iVar11" (identifier "iVar8") (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar8 + iVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12)" (( "(") (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" (else "else") (compound_statement "{\n                do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');\n              }" ({ "{") (do_statement "do {\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                } while (cVar19 != '\0');" (do "do") (compound_statement "{\n                  iVar9 = iVar11 + 2;\n                  pcVar20 = (char *)(iVar8 + iVar11 + 1);\n                  iVar12 = iVar9;\n                  pcVar15 = (char *)(iVar8 + iVar9);\n                  iVar1 = iVar11 + 1;\n                  pcVar21 = pcVar20;\n                  pcVar22 = (char *)(iVar8 + iVar11);\n                  if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }\n                  iVar11 = iVar1;\n                  *pcVar22 = *pcVar13;\n                  cVar19 = pcVar13[1];\n                  pcVar13 = pcVar13 + 1;\n                }" ({ "{") (expression_statement "iVar9 = iVar11 + 2;" (assignment_expression "iVar9 = iVar11 + 2" (identifier "iVar9") (= "=") (binary_expression "iVar11 + 2" (identifier "iVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "pcVar20 = (char *)(iVar8 + iVar11 + 1);" (assignment_expression "pcVar20 = (char *)(iVar8 + iVar11 + 1)" (identifier "pcVar20") (= "=") (cast_expression "(char *)(iVar8 + iVar11 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar11 + 1)" (( "(") (binary_expression "iVar8 + iVar11 + 1" (binary_expression "iVar8 + iVar11" (identifier "iVar8") (+ "+") (identifier "iVar11")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar12 = iVar9;" (assignment_expression "iVar12 = iVar9" (identifier "iVar12") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "pcVar15 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar9)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar8 + iVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar9)" (( "(") (binary_expression "iVar8 + iVar9" (identifier "iVar8") (+ "+") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "iVar1 = iVar11 + 1;" (assignment_expression "iVar1 = iVar11 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar11 + 1" (identifier "iVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar21 = pcVar20;" (assignment_expression "pcVar21 = pcVar20" (identifier "pcVar21") (= "=") (identifier "pcVar20")) (; ";")) (expression_statement "pcVar22 = (char *)(iVar8 + iVar11);" (assignment_expression "pcVar22 = (char *)(iVar8 + iVar11)" (identifier "pcVar22") (= "=") (cast_expression "(char *)(iVar8 + iVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar11)" (( "(") (binary_expression "iVar8 + iVar11" (identifier "iVar8") (+ "+") (identifier "iVar11")) () ")")))) (; ";")) (if_statement "if (cVar19 == '\"') {\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }" (if "if") (parenthesized_expression "(cVar19 == '\"')" (( "(") (binary_expression "cVar19 == '\"'" (identifier "cVar19") (== "==") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) () ")")) (compound_statement "{\n                    iVar12 = iVar11 + 3;\n                    *(char *)(iVar8 + iVar11) = '\"';\n                    pcVar15 = (char *)(iVar8 + iVar12);\n                    iVar1 = iVar9;\n                    pcVar21 = (char *)(iVar8 + iVar9);\n                    pcVar22 = pcVar20;\n                  }" ({ "{") (expression_statement "iVar12 = iVar11 + 3;" (assignment_expression "iVar12 = iVar11 + 3" (identifier "iVar12") (= "=") (binary_expression "iVar11 + 3" (identifier "iVar11") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "*(char *)(iVar8 + iVar11) = '\"';" (assignment_expression "*(char *)(iVar8 + iVar11) = '\"'" (pointer_expression "*(char *)(iVar8 + iVar11)" (* "*") (cast_expression "(char *)(iVar8 + iVar11)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar11)" (( "(") (binary_expression "iVar8 + iVar11" (identifier "iVar8") (+ "+") (identifier "iVar11")) () ")")))) (= "=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) (; ";")) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar8 + iVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12)" (( "(") (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) () ")")))) (; ";")) (expression_statement "iVar1 = iVar9;" (assignment_expression "iVar1 = iVar9" (identifier "iVar1") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "pcVar21 = (char *)(iVar8 + iVar9);" (assignment_expression "pcVar21 = (char *)(iVar8 + iVar9)" (identifier "pcVar21") (= "=") (cast_expression "(char *)(iVar8 + iVar9)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar9)" (( "(") (binary_expression "iVar8 + iVar9" (identifier "iVar8") (+ "+") (identifier "iVar9")) () ")")))) (; ";")) (expression_statement "pcVar22 = pcVar20;" (assignment_expression "pcVar22 = pcVar20" (identifier "pcVar22") (= "=") (identifier "pcVar20")) (; ";")) (} "}"))) (expression_statement "iVar11 = iVar1;" (assignment_expression "iVar11 = iVar1" (identifier "iVar11") (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*pcVar22 = *pcVar13;" (assignment_expression "*pcVar22 = *pcVar13" (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) (= "=") (pointer_expression "*pcVar13" (* "*") (identifier "pcVar13"))) (; ";")) (expression_statement "cVar19 = pcVar13[1];" (assignment_expression "cVar19 = pcVar13[1]" (identifier "cVar19") (= "=") (subscript_expression "pcVar13[1]" (identifier "pcVar13") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar13 = pcVar13 + 1;" (assignment_expression "pcVar13 = pcVar13 + 1" (identifier "pcVar13") (= "=") (binary_expression "pcVar13 + 1" (identifier "pcVar13") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar19 != '\0')" (( "(") (binary_expression "cVar19 != '\0'" (identifier "cVar19") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}")))) (expression_statement "*pcVar21 = '\"';" (assignment_expression "*pcVar21 = '\"'" (pointer_expression "*pcVar21" (* "*") (identifier "pcVar21")) (= "=") (char_literal "'\"'" (' "'") (escape_sequence "\"") (' "'"))) (; ";")) (if_statement "if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;" (if "if") (parenthesized_expression "(*(int *)(pcVar29 + 0xc) == 0)" (( "(") (binary_expression "*(int *)(pcVar29 + 0xc) == 0" (pointer_expression "*(int *)(pcVar29 + 0xc)" (* "*") (cast_expression "(int *)(pcVar29 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar29 + 0xc)" (( "(") (binary_expression "pcVar29 + 0xc" (identifier "pcVar29") (+ "+") (number_literal "0xc")) () ")")))) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00097904;" (goto "goto") (statement_identifier "LAB_00097904") (; ";"))) (expression_statement "*pcVar15 = '|';" (assignment_expression "*pcVar15 = '|'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (= "=") (char_literal "'|'" (' "'") (character "|") (' "'"))) (; ";")) (expression_statement "pcVar29 = *(char **)(pcVar29 + 0xc);" (assignment_expression "pcVar29 = *(char **)(pcVar29 + 0xc)" (identifier "pcVar29") (= "=") (pointer_expression "*(char **)(pcVar29 + 0xc)" (* "*") (cast_expression "(char **)(pcVar29 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar29 + 0xc)" (( "(") (binary_expression "pcVar29 + 0xc" (identifier "pcVar29") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "iVar12 = iVar11 + 2;" (assignment_expression "iVar12 = iVar11 + 2" (identifier "iVar12") (= "=") (binary_expression "iVar11 + 2" (identifier "iVar11") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pcVar29 != (char *)0x0)" (( "(") (binary_expression "pcVar29 != (char *)0x0" (identifier "pcVar29") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar8 + iVar12)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12)" (( "(") (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) () ")")))) (; ";")) (labeled_statement "LAB_00097904:\n            if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" (statement_identifier "LAB_00097904") (: ":") (if_statement "if (*pcVar23 != '\0') {\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" (if "if") (parenthesized_expression "(*pcVar23 != '\0')" (( "(") (binary_expression "*pcVar23 != '\0'" (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n              *pcVar15 = ' ';\n              pcVar15 = (char *)(iVar8 + iVar12 + 2);\n              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;\n            }" ({ "{") (expression_statement "*pcVar15 = ' ';" (assignment_expression "*pcVar15 = ' '" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (= "=") (char_literal "' '" (' "'") (character " ") (' "'"))) (; ";")) (expression_statement "pcVar15 = (char *)(iVar8 + iVar12 + 2);" (assignment_expression "pcVar15 = (char *)(iVar8 + iVar12 + 2)" (identifier "pcVar15") (= "=") (cast_expression "(char *)(iVar8 + iVar12 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12 + 2)" (( "(") (binary_expression "iVar8 + iVar12 + 2" (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;" (assignment_expression "*(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a" (pointer_expression "*(undefined1 *)(iVar8 + iVar12 + 1)" (* "*") (cast_expression "(undefined1 *)(iVar8 + iVar12 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar8 + iVar12 + 1)" (( "(") (binary_expression "iVar8 + iVar12 + 1" (binary_expression "iVar8 + iVar12" (identifier "iVar8") (+ "+") (identifier "iVar12")) (+ "+") (number_literal "1")) () ")")))) (= "=") (number_literal "0x2a")) (; ";")) (} "}")))) (expression_statement "*pcVar15 = '\0';" (assignment_expression "*pcVar15 = '\0'" (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15")) (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "puVar4 = puVar26;" (assignment_expression "puVar4 = puVar26" (identifier "puVar4") (= "=") (identifier "puVar26")) (; ";")) (if_statement "if (iVar5 == 0) {\n              puVar4 = puVar25;\n            }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              puVar4 = puVar25;\n            }" ({ "{") (expression_statement "puVar4 = puVar25;" (assignment_expression "puVar4 = puVar25" (identifier "puVar4") (= "=") (identifier "puVar25")) (; ";")) (} "}"))) (expression_statement "iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);" (assignment_expression "iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8)" (identifier "iVar2") (= "=") (call_expression "(*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(iVar2,puVar3 + 0x5624,puVar4,iVar8)" (( "(") (identifier "iVar2") (, ",") (binary_expression "puVar3 + 0x5624" (identifier "puVar3") (+ "+") (number_literal "0x5624")) (, ",") (identifier "puVar4") (, ",") (identifier "iVar8") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015b620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015b620"))) () ")")) (argument_list "(iVar8)" (( "(") (identifier "iVar8") () ")"))) (; ";")) (if_statement "if (iVar2 == 0) goto LAB_00097a9c;" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00097a9c;" (goto "goto") (statement_identifier "LAB_00097a9c") (; ";"))) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pcVar23 = pcVar23 + 0x10;" (assignment_expression "pcVar23 = pcVar23 + 0x10" (identifier "pcVar23") (= "=") (binary_expression "pcVar23 + 0x10" (identifier "pcVar23") (+ "+") (number_literal "0x10"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < *(int *)(iVar28 + 0x10))" (( "(") (binary_expression "iVar5 < *(int *)(iVar28 + 0x10)" (identifier "iVar5") (< "<") (pointer_expression "*(int *)(iVar28 + 0x10)" (* "*") (cast_expression "(int *)(iVar28 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar28 + 0x10)" (( "(") (binary_expression "iVar28 + 0x10" (identifier "iVar28") (+ "+") (number_literal "0x10")) () ")"))))) () ")")) (; ";")) (} "}"))) (if_statement "if ((int)puVar6[2] <= local_2c + 1) {\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }" (if "if") (parenthesized_expression "((int)puVar6[2] <= local_2c + 1)" (( "(") (binary_expression "(int)puVar6[2] <= local_2c + 1" (cast_expression "(int)puVar6[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]"))) (<= "<=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }\n          return iVar2;\n        }" ({ "{") (if_statement "if (1 < (int)puVar6[2]) {\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }" (if "if") (parenthesized_expression "(1 < (int)puVar6[2])" (( "(") (binary_expression "1 < (int)puVar6[2]" (number_literal "1") (< "<") (cast_expression "(int)puVar6[2]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "puVar6[2]" (identifier "puVar6") ([ "[") (number_literal "2") (] "]")))) () ")")) (compound_statement "{\n            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);\n            return iVar2;\n          }" ({ "{") (expression_statement "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);" (assignment_expression "iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" (identifier "iVar2") (= "=") (call_expression "FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" (identifier "FUN_00097154") (argument_list "(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6)" (( "(") (identifier "iVar2") (, ",") (binary_expression "PTR_UINT_0015b5fc + -0x753c" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x753c")) (, ",") (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) () ")")))) (; ";")) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}"))) (expression_statement "iVar28 = puVar6[local_2c + 4];" (assignment_expression "iVar28 = puVar6[local_2c + 4]" (identifier "iVar28") (= "=") (subscript_expression "puVar6[local_2c + 4]" (identifier "puVar6") ([ "[") (binary_expression "local_2c + 4" (identifier "local_2c") (+ "+") (number_literal "4")) (] "]"))) (; ";")) (expression_statement "iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);" (assignment_expression "iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" (identifier "iVar2") (= "=") (call_expression "(*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(iVar2,PTR_LAB_0015b5e8 + 0x5c20)" (( "(") (identifier "iVar2") (, ",") (binary_expression "PTR_LAB_0015b5e8 + 0x5c20" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x5c20")) () ")")))) (; ";")) (expression_statement "local_2c = local_2c + 1;" (assignment_expression "local_2c = local_2c + 1" (identifier "local_2c") (= "=") (binary_expression "local_2c + 1" (identifier "local_2c") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }\n    if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }\n  }" ({ "{") (if_statement "if (iVar2 == 2) {\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }\n    else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" (if "if") (parenthesized_expression "(iVar2 == 2)" (( "(") (binary_expression "iVar2 == 2" (identifier "iVar2") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;\n    }" ({ "{") (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x5c88;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x5c88" (identifier "puVar25") (= "=") (binary_expression "PTR_LAB_0015b5e8 + 0x5c88" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x5c88"))) (; ";")) (} "}")) (else_clause "else if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" (else "else") (if_statement "if (iVar2 == 3) {\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }\n    else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" (if "if") (parenthesized_expression "(iVar2 == 3)" (( "(") (binary_expression "iVar2 == 3" (identifier "iVar2") (== "==") (number_literal "3")) () ")")) (compound_statement "{\n      puVar25 = PTR_UINT_0015b5fc + -0x7554;\n    }" ({ "{") (expression_statement "puVar25 = PTR_UINT_0015b5fc + -0x7554;" (assignment_expression "puVar25 = PTR_UINT_0015b5fc + -0x7554" (identifier "puVar25") (= "=") (binary_expression "PTR_UINT_0015b5fc + -0x7554" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x7554"))) (; ";")) (} "}")) (else_clause "else {\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" (else "else") (compound_statement "{\n      puVar25 = PTR_LAB_0015b5e8 + 0x540c;\n    }" ({ "{") (expression_statement "puVar25 = PTR_LAB_0015b5e8 + 0x540c;" (assignment_expression "puVar25 = PTR_LAB_0015b5e8 + 0x540c" (identifier "puVar25") (= "=") (binary_expression "PTR_LAB_0015b5e8 + 0x540c" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x540c"))) (; ";")) (} "}")))))) (if_statement "if (0 < param_2[7]) {\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }" (if "if") (parenthesized_expression "(0 < param_2[7])" (( "(") (binary_expression "0 < param_2[7]" (number_literal "0") (< "<") (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]"))) () ")")) (compound_statement "{\n      piVar27 = param_2 + 8;\n      iVar2 = 0;\n      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;\n      iVar28 = 0;\n      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;\n      puVar4 = PTR_UINT_0015b5fc + -0x570c;\n      iVar5 = FUN_00097660(param_1,*piVar27);\n      while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }\n    }" ({ "{") (expression_statement "piVar27 = param_2 + 8;" (assignment_expression "piVar27 = param_2 + 8" (identifier "piVar27") (= "=") (binary_expression "param_2 + 8" (identifier "param_2") (+ "+") (number_literal "8"))) (; ";")) (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" (identifier "iVar2") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar3 = PTR_LAB_0015b5e8 + 0x56a8;" (assignment_expression "puVar3 = PTR_LAB_0015b5e8 + 0x56a8" (identifier "puVar3") (= "=") (binary_expression "PTR_LAB_0015b5e8 + 0x56a8" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x56a8"))) (; ";")) (expression_statement "iVar28 = 0;" (assignment_expression "iVar28 = 0" (identifier "iVar28") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar24 = PTR_LAB_0015b5e8 + 0x53f4;" (assignment_expression "puVar24 = PTR_LAB_0015b5e8 + 0x53f4" (identifier "puVar24") (= "=") (binary_expression "PTR_LAB_0015b5e8 + 0x53f4" (identifier "PTR_LAB_0015b5e8") (+ "+") (number_literal "0x53f4"))) (; ";")) (expression_statement "puVar4 = PTR_UINT_0015b5fc + -0x570c;" (assignment_expression "puVar4 = PTR_UINT_0015b5fc + -0x570c" (identifier "puVar4") (= "=") (binary_expression "PTR_UINT_0015b5fc + -0x570c" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "-0x570c"))) (; ";")) (expression_statement "iVar5 = FUN_00097660(param_1,*piVar27);" (assignment_expression "iVar5 = FUN_00097660(param_1,*piVar27)" (identifier "iVar5") (= "=") (call_expression "FUN_00097660(param_1,*piVar27)" (identifier "FUN_00097660") (argument_list "(param_1,*piVar27)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) () ")")))) (; ";")) (while_statement "while( true ) {\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }\n        puVar16 = puVar24;\n        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);\n        if (iVar28 == 0) break;\n        iVar2 = iVar2 + 1;\n        piVar27 = piVar27 + 1;\n        if (param_2[7] <= iVar2) {\n          return iVar28;\n        }\n        iVar5 = FUN_00097660(param_1,*piVar27);\n      }" ({ "{") (if_statement "if (iVar5 == 0) {\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);\n          return 0;\n        }" ({ "{") (expression_statement "(*(code *)PTR_sqlite3_free_0015b620)(iVar28);" (call_expression "(*(code *)PTR_sqlite3_free_0015b620)(iVar28)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015b620)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015b620" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015b620" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015b620"))) () ")")) (argument_list "(iVar28)" (( "(") (identifier "iVar28") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar16 = puVar24;" (assignment_expression "puVar16 = puVar24" (identifier "puVar16") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }\n        else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" (if "if") (parenthesized_expression "((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0))" (( "(") (binary_expression "(*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)" (parenthesized_expression "(*(uint *)*piVar27 == 9)" (( "(") (binary_expression "*(uint *)*piVar27 == 9" (pointer_expression "*(uint *)*piVar27" (* "*") (cast_expression "(uint *)*piVar27" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar27" (* "*") (identifier "piVar27")))) (== "==") (number_literal "9")) () ")")) (|| "||") (parenthesized_expression "((*(uint *)*piVar27 & 0xfffffffb) == 0)" (( "(") (binary_expression "(*(uint *)*piVar27 & 0xfffffffb) == 0" (parenthesized_expression "(*(uint *)*piVar27 & 0xfffffffb)" (( "(") (binary_expression "*(uint *)*piVar27 & 0xfffffffb" (pointer_expression "*(uint *)*piVar27" (* "*") (cast_expression "(uint *)*piVar27" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar27" (* "*") (identifier "piVar27")))) (& "&") (number_literal "0xfffffffb")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n          puVar17 = puVar24;\n          puVar18 = puVar24;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" ({ "{") (expression_statement "puVar17 = puVar24;" (assignment_expression "puVar17 = puVar24" (identifier "puVar17") (= "=") (identifier "puVar24")) (; ";")) (expression_statement "puVar18 = puVar24;" (assignment_expression "puVar18 = puVar24" (identifier "puVar18") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar16 = puVar25;\n          }" ({ "{") (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" (identifier "puVar16") (= "=") (identifier "puVar25")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" (else "else") (compound_statement "{\n          puVar17 = puVar3;\n          puVar18 = puVar4;\n          if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }\n        }" ({ "{") (expression_statement "puVar17 = puVar3;" (assignment_expression "puVar17 = puVar3" (identifier "puVar17") (= "=") (identifier "puVar3")) (; ";")) (expression_statement "puVar18 = puVar4;" (assignment_expression "puVar18 = puVar4" (identifier "puVar18") (= "=") (identifier "puVar4")) (; ";")) (if_statement "if (iVar2 != 0) {\n            puVar16 = puVar25;\n          }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            puVar16 = puVar25;\n          }" ({ "{") (expression_statement "puVar16 = puVar25;" (assignment_expression "puVar16 = puVar25" (identifier "puVar16") (= "=") (identifier "puVar25")) (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);" (assignment_expression "iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" (identifier "iVar28") (= "=") (call_expression "FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" (identifier "FUN_00097154") (argument_list "(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18)" (( "(") (identifier "iVar28") (, ",") (binary_expression "puVar26 + -0x7534" (identifier "puVar26") (+ "+") (number_literal "-0x7534")) (, ",") (identifier "puVar16") (, ",") (identifier "puVar17") (, ",") (identifier "iVar5") (, ",") (identifier "puVar18") () ")")))) (; ";")) (if_statement "if (iVar28 == 0) break;" (if "if") (parenthesized_expression "(iVar28 == 0)" (( "(") (binary_expression "iVar28 == 0" (identifier "iVar28") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar2 = iVar2 + 1;" (assignment_expression "iVar2 = iVar2 + 1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + 1" (identifier "iVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar27 = piVar27 + 1;" (assignment_expression "piVar27 = piVar27 + 1" (identifier "piVar27") (= "=") (binary_expression "piVar27 + 1" (identifier "piVar27") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_2[7] <= iVar2) {\n          return iVar28;\n        }" (if "if") (parenthesized_expression "(param_2[7] <= iVar2)" (( "(") (binary_expression "param_2[7] <= iVar2" (subscript_expression "param_2[7]" (identifier "param_2") ([ "[") (number_literal "7") (] "]")) (<= "<=") (identifier "iVar2")) () ")")) (compound_statement "{\n          return iVar28;\n        }" ({ "{") (return_statement "return iVar28;" (return "return") (identifier "iVar28") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00097660(param_1,*piVar27);" (assignment_expression "iVar5 = FUN_00097660(param_1,*piVar27)" (identifier "iVar5") (= "=") (call_expression "FUN_00097660(param_1,*piVar27)" (identifier "FUN_00097660") (argument_list "(param_1,*piVar27)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*piVar27" (* "*") (identifier "piVar27")) () ")")))) (; ";")) (} "}"))) (} "}"))) (} "}")))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

char * function_1(type_1 *pConfig,type_2 *pExpr)

{
  int iVar1;
  int var_1;
  type_3 *var_17;
  type_3 *puVar4;
  char *var_20;
  type_4 *pFVar6;
  type_5 *pcVar7;
  int var_8;
  int var_15;
  type_6 var_10;
  int var_14;
  int var_11;
  type_6 var_9;
  type_3 *puVar14;
  type_3 *puVar15;
  type_3 *puVar16;
  char var_13;
  char *pcVar18;
  char *pcVar19;
  char *pcVar20;
  type_7 *var_18;
  type_3 *puVar22;
  type_8 *var_4;
  type_9 *pFVar23;
  type_3 *puVar24;
  type_3 *var_21;
  type_2 **var_22;
  char *var_16;
  type_7 *var_12;
  int var_19;
  
  var_21 = var_6;
  var_1 = pExpr->eType;
  if (var_1 == 0) {
    var_16 = var_2(var_3 + 0x5314);
    return var_16;
  }
  if ((var_1 == 9) || (var_1 == 4)) {
    pFVar6 = pExpr->pNear;
    var_4 = pFVar6->pColset;
    if ((var_4 == (type_8 *)0x0) ||
       (var_4 = (type_8 *)
               var_5((char *)0x0,var_6 + -0x754c,
                                pConfig->azCol[var_4->aiCol[0]]), var_4 != (type_8 *)0x0)) {
      if (pFVar6->nPhrase < 2) {
        if (pFVar6->nPhrase != 1) {
          return (char *)var_4;
        }
      }
      else {
        var_4 = (type_8 *)var_5((char *)var_4,var_6 + -0x7544);
        if (var_4 == (type_8 *)0x0) {
          return (char *)0x0;
        }
        if (pFVar6->nPhrase < 1) {
          return (char *)var_4;
        }
      }
      pFVar23 = pFVar6->apPhrase[0];
      pcVar7 = (type_5 *)(var_7 + 0x7154);
      puVar24 = var_3 + 0x53f4;
      var_19 = 0;
      var_21 = var_6 + -0x7558;
      do {
        var_17 = var_3;
        if (0 < pFVar23->nTerm) {
          var_18 = pFVar23->aTerm;
          var_1 = 0;
          do {
            var_8 = (*(type_5 *)PTR_strlen_0015b9c4)(var_18->zTerm);
            var_11 = 0;
            var_8 = var_8 * 2 + 5;
            var_9 = 0;
            var_12 = var_18;
            do {
              var_10 = var_9 + var_8;
              var_12 = var_12->pSynonym;
              var_11 = (type_6)(var_10 < var_9) + var_11 + (var_8 >> 0x1f);
              var_9 = var_10;
            } while (var_12 != (type_7 *)0x0);
            var_8 = (*(type_5 *)PTR_sqlite3_malloc64_0015b760)(var_11);
            if (var_8 == 0) {
LAB_00097a9c:
              (*(type_5 *)PTR_sqlite3_free_0015b620)(var_4);
              return (char *)0x0;
            }
            var_11 = 0;
            var_12 = var_18;
            do {
              var_16 = var_12->zTerm;
              *(type_10 *)(var_8 + var_11) = 0x22;
              var_13 = *var_16;
              var_14 = var_11 + 1;
              if (var_13 == '\0') {
                var_11 = var_11 + 2;
                pcVar19 = (char *)(var_8 + var_14);
                var_20 = (char *)(var_8 + var_11);
              }
              else {
                do {
                  var_15 = var_14 + 2;
                  pcVar18 = (char *)(var_8 + var_14 + 1);
                  var_11 = var_15;
                  var_20 = (char *)(var_8 + var_15);
                  iVar1 = var_14 + 1;
                  pcVar19 = pcVar18;
                  pcVar20 = (char *)(var_8 + var_14);
                  if (var_13 == '\"') {
                    var_11 = var_14 + 3;
                    *(char *)(var_8 + var_14) = '\"';
                    var_20 = (char *)(var_8 + var_11);
                    iVar1 = var_15;
                    pcVar19 = (char *)(var_8 + var_15);
                    pcVar20 = pcVar18;
                  }
                  var_14 = iVar1;
                  *pcVar20 = *var_16;
                  var_13 = var_16[1];
                  var_16 = var_16 + 1;
                } while (var_13 != '\0');
              }
              *pcVar19 = '\"';
              if (var_12->pSynonym == (type_7 *)0x0) goto LAB_00097904;
              *var_20 = '|';
              var_12 = var_12->pSynonym;
              var_11 = var_14 + 2;
            } while (var_12 != (type_7 *)0x0);
            var_20 = (char *)(var_8 + var_11);
LAB_00097904:
            if (var_18->bPrefix != '\0') {
              *var_20 = ' ';
              var_20 = (char *)(var_8 + var_11 + 2);
              *(type_10 *)(var_8 + var_11 + 1) = 0x2a;
            }
            *var_20 = '\0';
            puVar4 = var_21;
            if (var_1 == 0) {
              puVar4 = puVar24;
            }
            var_4 = (type_8 *)(*pcVar7)(var_4,var_17 + 0x5624,puVar4,var_8);
            (*(type_5 *)PTR_sqlite3_free_0015b620)(var_8);
            if (var_4 == (type_8 *)0x0) goto LAB_00097a9c;
            var_1 = var_1 + 1;
            var_18 = var_18 + 1;
          } while (var_1 < pFVar23->nTerm);
        }
        if (pFVar6->nPhrase <= var_19 + 1) {
          if (1 < pFVar6->nPhrase) {
            var_16 = var_5((char *)var_4,var_6 + -0x753c,pFVar6->nNear);
            return var_16;
          }
          return (char *)var_4;
        }
        pFVar23 = pFVar6[1].apPhrase[var_19 + -3];
        var_4 = (type_8 *)(*pcVar7)(var_4,var_3 + 0x5c20);
        var_19 = var_19 + 1;
      } while (var_4 != (type_8 *)0x0);
    }
  }
  else {
    if (var_1 == 2) {
      puVar24 = var_3 + 0x5c88;
    }
    else if (var_1 == 3) {
      puVar24 = var_6 + -0x7554;
    }
    else {
      puVar24 = var_3 + 0x540c;
    }
    if (0 < pExpr->nChild) {
      var_22 = pExpr->apChild;
      var_1 = 0;
      var_17 = var_3 + 0x56a8;
      var_16 = (char *)0x0;
      puVar22 = var_3 + 0x53f4;
      puVar4 = var_6 + -0x570c;
      var_20 = function_1(pConfig,*var_22);
      while( true ) {
        if (var_20 == (char *)0x0) {
          (*(type_5 *)PTR_sqlite3_free_0015b620)(var_16);
          return (char *)0x0;
        }
        puVar14 = puVar22;
        if (((*var_22)->eType == 9) || (((*var_22)->eType & 0xfffffffbU) == 0)) {
          puVar15 = puVar22;
          puVar16 = puVar22;
          if (var_1 != 0) {
            puVar14 = puVar24;
          }
        }
        else {
          puVar15 = var_17;
          puVar16 = puVar4;
          if (var_1 != 0) {
            puVar14 = puVar24;
          }
        }
        var_16 = var_5(var_16,var_21 + -0x7534,puVar14,puVar15,var_20,puVar16);
        if (var_16 == (char *)0x0) break;
        var_1 = var_1 + 1;
        var_22 = var_22 + 1;
        if (pExpr->nChild <= var_1) {
          return var_16;
        }
        var_20 = function_1(pConfig,*var_22);
      }
    }
  }
  return (char *)0x0;
}


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

int MASKED(int param_1,int *param_2)

{
  int iVar1;
  int iVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  undefined4 *puVar6;
  code *pcVar7;
  int iVar8;
  int iVar9;
  uint uVar10;
  int iVar11;
  int iVar12;
  char *pcVar13;
  uint uVar14;
  char *pcVar15;
  undefined *puVar16;
  undefined *puVar17;
  undefined *puVar18;
  char cVar19;
  char *pcVar20;
  char *pcVar21;
  char *pcVar22;
  char *pcVar23;
  undefined *puVar24;
  undefined *puVar25;
  undefined *puVar26;
  int *piVar27;
  int iVar28;
  char *pcVar29;
  int local_2c;
  
  puVar26 = PTR_UINT_0015b5fc;
  iVar2 = *param_2;
  if (iVar2 == 0) {
    iVar2 = sqlite3_mprintf(PTR_LAB_0015b5e8 + 0x5314);
    return iVar2;
  }
  if ((iVar2 == 9) || (iVar2 == 4)) {
    puVar6 = (undefined4 *)param_2[6];
    iVar2 = puVar6[1];
    if ((iVar2 == 0) ||
       (iVar2 = FUN_00097154(0,PTR_UINT_0015b5fc + -0x754c,
                             *(undefined4 *)(*(int *)(param_1 + 0x10) + *(int *)(iVar2 + 4) * 4)),
       iVar2 != 0)) {
      if ((int)puVar6[2] < 2) {
        if (puVar6[2] != 1) {
          return iVar2;
        }
      }
      else {
        iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x7544);
        if (iVar2 == 0) {
          return 0;
        }
        if ((int)puVar6[2] < 1) {
          return iVar2;
        }
      }
      iVar28 = puVar6[3];
      pcVar7 = (code *)(PTR_DAT_0015b71c + 0x7154);
      puVar25 = PTR_LAB_0015b5e8 + 0x53f4;
      local_2c = 0;
      puVar26 = PTR_UINT_0015b5fc + -0x7558;
      do {
        puVar3 = PTR_LAB_0015b5e8;
        if (0 < *(int *)(iVar28 + 0x10)) {
          pcVar23 = (char *)(iVar28 + 0x14);
          iVar5 = 0;
          do {
            iVar8 = (*(code *)PTR_strlen_0015b9c4)(*(undefined4 *)(pcVar23 + 4));
            iVar12 = 0;
            iVar8 = iVar8 * 2 + 5;
            uVar14 = 0;
            pcVar29 = pcVar23;
            do {
              uVar10 = uVar14 + iVar8;
              pcVar29 = *(char **)(pcVar29 + 0xc);
              iVar12 = (uint)(uVar10 < uVar14) + iVar12 + (iVar8 >> 0x1f);
              uVar14 = uVar10;
            } while (pcVar29 != (char *)0x0);
            iVar8 = (*(code *)PTR_sqlite3_malloc64_0015b760)(iVar12);
            if (iVar8 == 0) {
LAB_00097a9c:
              (*(code *)PTR_sqlite3_free_0015b620)(iVar2);
              return 0;
            }
            iVar12 = 0;
            pcVar29 = pcVar23;
            do {
              pcVar13 = *(char **)(pcVar29 + 4);
              *(undefined1 *)(iVar8 + iVar12) = 0x22;
              cVar19 = *pcVar13;
              iVar11 = iVar12 + 1;
              if (cVar19 == '\0') {
                iVar12 = iVar12 + 2;
                pcVar21 = (char *)(iVar8 + iVar11);
                pcVar15 = (char *)(iVar8 + iVar12);
              }
              else {
                do {
                  iVar9 = iVar11 + 2;
                  pcVar20 = (char *)(iVar8 + iVar11 + 1);
                  iVar12 = iVar9;
                  pcVar15 = (char *)(iVar8 + iVar9);
                  iVar1 = iVar11 + 1;
                  pcVar21 = pcVar20;
                  pcVar22 = (char *)(iVar8 + iVar11);
                  if (cVar19 == '\"') {
                    iVar12 = iVar11 + 3;
                    *(char *)(iVar8 + iVar11) = '\"';
                    pcVar15 = (char *)(iVar8 + iVar12);
                    iVar1 = iVar9;
                    pcVar21 = (char *)(iVar8 + iVar9);
                    pcVar22 = pcVar20;
                  }
                  iVar11 = iVar1;
                  *pcVar22 = *pcVar13;
                  cVar19 = pcVar13[1];
                  pcVar13 = pcVar13 + 1;
                } while (cVar19 != '\0');
              }
              *pcVar21 = '\"';
              if (*(int *)(pcVar29 + 0xc) == 0) goto LAB_00097904;
              *pcVar15 = '|';
              pcVar29 = *(char **)(pcVar29 + 0xc);
              iVar12 = iVar11 + 2;
            } while (pcVar29 != (char *)0x0);
            pcVar15 = (char *)(iVar8 + iVar12);
LAB_00097904:
            if (*pcVar23 != '\0') {
              *pcVar15 = ' ';
              pcVar15 = (char *)(iVar8 + iVar12 + 2);
              *(undefined1 *)(iVar8 + iVar12 + 1) = 0x2a;
            }
            *pcVar15 = '\0';
            puVar4 = puVar26;
            if (iVar5 == 0) {
              puVar4 = puVar25;
            }
            iVar2 = (*pcVar7)(iVar2,puVar3 + 0x5624,puVar4,iVar8);
            (*(code *)PTR_sqlite3_free_0015b620)(iVar8);
            if (iVar2 == 0) goto LAB_00097a9c;
            iVar5 = iVar5 + 1;
            pcVar23 = pcVar23 + 0x10;
          } while (iVar5 < *(int *)(iVar28 + 0x10));
        }
        if ((int)puVar6[2] <= local_2c + 1) {
          if (1 < (int)puVar6[2]) {
            iVar2 = FUN_00097154(iVar2,PTR_UINT_0015b5fc + -0x753c,*puVar6);
            return iVar2;
          }
          return iVar2;
        }
        iVar28 = puVar6[local_2c + 4];
        iVar2 = (*pcVar7)(iVar2,PTR_LAB_0015b5e8 + 0x5c20);
        local_2c = local_2c + 1;
      } while (iVar2 != 0);
    }
  }
  else {
    if (iVar2 == 2) {
      puVar25 = PTR_LAB_0015b5e8 + 0x5c88;
    }
    else if (iVar2 == 3) {
      puVar25 = PTR_UINT_0015b5fc + -0x7554;
    }
    else {
      puVar25 = PTR_LAB_0015b5e8 + 0x540c;
    }
    if (0 < param_2[7]) {
      piVar27 = param_2 + 8;
      iVar2 = 0;
      puVar3 = PTR_LAB_0015b5e8 + 0x56a8;
      iVar28 = 0;
      puVar24 = PTR_LAB_0015b5e8 + 0x53f4;
      puVar4 = PTR_UINT_0015b5fc + -0x570c;
      iVar5 = MASKED(param_1,*piVar27);
      while( true ) {
        if (iVar5 == 0) {
          (*(code *)PTR_sqlite3_free_0015b620)(iVar28);
          return 0;
        }
        puVar16 = puVar24;
        if ((*(uint *)*piVar27 == 9) || ((*(uint *)*piVar27 & 0xfffffffb) == 0)) {
          puVar17 = puVar24;
          puVar18 = puVar24;
          if (iVar2 != 0) {
            puVar16 = puVar25;
          }
        }
        else {
          puVar17 = puVar3;
          puVar18 = puVar4;
          if (iVar2 != 0) {
            puVar16 = puVar25;
          }
        }
        iVar28 = FUN_00097154(iVar28,puVar26 + -0x7534,puVar16,puVar17,iVar5,puVar18);
        if (iVar28 == 0) break;
        iVar2 = iVar2 + 1;
        piVar27 = piVar27 + 1;
        if (param_2[7] <= iVar2) {
          return iVar28;
        }
        iVar5 = MASKED(param_1,*piVar27);
      }
    }
  }
  return 0;
}

