
int sqlite3_load_extension(sqlite3 *db,char *zFile,char *zProc,char **pzErrMsg)

{
  char cVar1;
  char cVar2;
  undefined *puVar3;
  undefined *puVar4;
  char *pcVar5;
  _func_void *p_Var6;
  int iVar7;
  undefined4 uVar8;
  char *pcVar9;
  void **ppvVar10;
  sqlite3_vfs *psVar11;
  uint uVar12;
  char *unaff_s3;
  char *unaff_s5;
  uint uVar13;
  int local_38;
  uint local_34;
  char *zErrmsg;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_0015ca30;
  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;
  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex);
  psVar11 = db->pVfs;
  zErrmsg = (char *)0x0;
  if (zFile == (char *)0x0) {
    local_34 = 0;
    local_38 = 300;
  }
  else {
    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);
    local_34 = local_34 & 0x3fffffff;
    local_38 = local_34 + 300;
  }
  if (pzErrMsg == (char **)0x0) {
    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;
  }
  else {
    *pzErrMsg = (char *)0x0;
    if (-1 < (int)db->flags << 0xf) {
      uVar12 = 1;
      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);
      *pzErrMsg = pcVar5;
      goto LAB_00095a88;
    }
  }
  unaff_s5 = zProc;
  if (zProc == (char *)0x0) {
    unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;
  }
  unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,zFile);
  if (unaff_s3 == (char *)0x0) {
    pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048
                            );
    unaff_s3 = pcVar5;
    if (pcVar5 == (char *)0x0) goto LAB_00095ea8;
    unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);
    (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);
    if (unaff_s3 == (char *)0x0) {
      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;
      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);
      *pzErrMsg = zErrmsg;
      if (zErrmsg == (char *)0x0) goto LAB_00095a84;
      uVar12 = 1;
      (*(code *)PTR_sqlite3_snprintf_0015c628)
                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);
      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);
      goto LAB_00095a88;
    }
  }
  p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);
  if (p_Var6 != (_func_void *)0x0) {
    unaff_s5 = (char *)0x0;
    goto LAB_000959fc;
  }
  pcVar5 = (char *)0x0;
  if (zProc != (char *)0x0) goto LAB_00095b60;
  if (zFile == (char *)0x0) {
    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);
    if (unaff_s5 != (char *)0x0) {
      pcVar5 = (char *)0x0;
      uVar12 = 0;
      uVar13 = 0xffffffff;
      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);
      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);
      *(undefined4 *)(unaff_s5 + 4) = uVar8;
      goto LAB_00095d98;
    }
  }
  else {
    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);
    uVar12 = uVar12 & 0x3fffffff;
    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);
    if (unaff_s5 != (char *)0x0) {
      uVar13 = uVar12 - 1;
      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);
      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);
      *(undefined4 *)(unaff_s5 + 4) = uVar8;
      if (uVar12 == 0) goto LAB_00095f14;
      if (zFile[uVar13] != '/') {
        while( true ) {
          uVar12 = uVar13;
          uVar13 = uVar12 - 1;
          if (uVar13 == 0xffffffff) break;
          pcVar5 = zFile + uVar12;
          if (zFile[uVar13] == '/') goto LAB_00095d98;
        }
        uVar12 = 0;
        pcVar5 = zFile;
        goto LAB_00095d98;
      }
      pcVar5 = zFile + uVar12;
      goto LAB_00095d98;
    }
  }
  (*psVar11->xDlClose)(psVar11,unaff_s3);
LAB_00095ea8:
  do {
    uVar12 = 7;
LAB_00095a88:
    while( true ) {
      while( true ) {
        while( true ) {
          if (db->mallocFailed == '\0') {
            zFile = (char *)(uVar12 & db->errMask);
          }
          else {
            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);
          }
          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);
          if (local_2c == *(int *)puVar4) {
            return (int)zFile;
          }
          (*(code *)PTR___stack_chk_fail_0015ca14)();
LAB_00095f14:
          uVar13 = 0xffffffff;
          uVar12 = 0;
          pcVar5 = zFile;
LAB_00095d98:
          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);
          puVar3 = PTR_DAT_0015c698;
          if (iVar7 == 0) {
            uVar12 = uVar13 + 4;
            pcVar5 = zFile + uVar12;
          }
          uVar13 = (uint)*pcVar5;
          pcVar5 = unaff_s5 + 8;
          if ((uVar13 != 0) && (uVar13 != 0x2e)) {
            iVar7 = 8;
            pcVar9 = zFile + uVar12 + 1;
            do {
              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {
                iVar7 = iVar7 + 1;
                *pcVar5 = puVar3[uVar13 - 0x70f8];
                pcVar5 = unaff_s5 + iVar7;
              }
              uVar13 = (uint)*pcVar9;
            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));
          }
          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];
          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];
          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);
          pcVar5[4] = cVar1;
          pcVar5[5] = cVar2;
          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);
          pcVar5 = unaff_s5;
          if (p_Var6 != (_func_void *)0x0) break;
LAB_00095b60:
          if (pzErrMsg != (char **)0x0) {
            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);
            uVar13 = (uVar12 & 0x3fffffff) + local_38;
            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)
                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);
            *pzErrMsg = zErrmsg;
            if (zErrmsg != (char *)0x0) {
              (*(code *)PTR_sqlite3_snprintf_0015c628)
                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);
              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);
            }
          }
          uVar12 = 1;
          (*psVar11->xDlClose)(psVar11,unaff_s3);
          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);
        }
LAB_000959fc:
        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);
        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);
        if (iVar7 == 0) break;
        uVar12 = 0;
        if (iVar7 != 0x100) {
          if (pzErrMsg != (char **)0x0) {
            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);
            *pzErrMsg = pcVar5;
          }
          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);
          (*psVar11->xDlClose)(psVar11,unaff_s3);
LAB_00095a84:
          uVar12 = 1;
        }
      }
      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);
      if (psVar11 == (sqlite3_vfs *)0x0) break;
      ppvVar10 = db->aExtension;
      if (0 < db->nExtension) {
        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);
        ppvVar10 = db->aExtension;
      }
      if (ppvVar10 != (void **)0x0) {
        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);
      }
      db->aExtension = (void **)psVar11;
      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);
      db->nExtension = db->nExtension + 1;
      psVar11->iVersion = (int)unaff_s3;
      uVar12 = 0;
    }
  } while( true );
}



char * sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  code *pcVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  char *pcVar9;
  int *piVar10;
  uint uVar11;
  int unaff_s3;
  undefined4 *unaff_s5;
  uint uVar12;
  int local_38;
  uint local_34;
  int local_30;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_0015ca30;
  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;
  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);
  piVar10 = (int *)*param_1;
  local_30 = 0;
  if (param_2 == (char *)0x0) {
    local_34 = 0;
    local_38 = 300;
  }
  else {
    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);
    local_34 = local_34 & 0x3fffffff;
    local_38 = local_34 + 300;
  }
  if (param_4 == (int *)0x0) {
    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;
  }
  else {
    *param_4 = 0;
    if (-1 < (int)(param_1[9] << 0xf)) {
      uVar11 = 1;
      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);
      *param_4 = iVar5;
      goto LAB_00095a88;
    }
  }
  unaff_s5 = param_3;
  if (param_3 == (undefined4 *)0x0) {
    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);
  }
  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);
  if (unaff_s3 == 0) {
    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,
                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);
    unaff_s3 = iVar5;
    if (iVar5 == 0) goto LAB_00095ea8;
    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);
    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);
    if (unaff_s3 == 0) {
      if (param_4 == (int *)0x0) goto LAB_00095a84;
      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);
      *param_4 = local_30;
      if (local_30 == 0) goto LAB_00095a84;
      uVar11 = 1;
      (*(code *)PTR_sqlite3_snprintf_0015c628)
                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);
      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);
      goto LAB_00095a88;
    }
  }
  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);
  if (pcVar6 != (code *)0x0) {
    unaff_s5 = (undefined4 *)0x0;
    goto LAB_000959fc;
  }
  puVar8 = (undefined4 *)0x0;
  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;
  if (param_2 == (char *)0x0) {
    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);
    if (unaff_s5 != (undefined4 *)0x0) {
      pcVar9 = (char *)0x0;
      uVar11 = 0;
      uVar12 = 0xffffffff;
      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);
      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);
      unaff_s5[1] = uVar7;
      goto LAB_00095d98;
    }
  }
  else {
    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);
    uVar11 = uVar11 & 0x3fffffff;
    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);
    if (unaff_s5 != (undefined4 *)0x0) {
      uVar12 = uVar11 - 1;
      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);
      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);
      unaff_s5[1] = uVar7;
      if (uVar11 == 0) goto LAB_00095f14;
      if (param_2[uVar12] != '/') {
        while( true ) {
          uVar11 = uVar12;
          uVar12 = uVar11 - 1;
          if (uVar12 == 0xffffffff) break;
          pcVar9 = param_2 + uVar11;
          if (param_2[uVar12] == '/') goto LAB_00095d98;
        }
        uVar11 = 0;
        pcVar9 = param_2;
        goto LAB_00095d98;
      }
      pcVar9 = param_2 + uVar11;
      goto LAB_00095d98;
    }
  }
  (*(code *)piVar10[0xd])(piVar10,unaff_s3);
LAB_00095ea8:
  do {
    uVar11 = 7;
LAB_00095a88:
    while( true ) {
      while( true ) {
        while( true ) {
          if (*(char *)((int)param_1 + 0x51) == '\0') {
            param_2 = (char *)(uVar11 & param_1[0x11]);
          }
          else {
            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);
          }
          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);
          if (local_2c == *(int *)puVar4) {
            return param_2;
          }
          (*(code *)PTR___stack_chk_fail_0015ca14)();
LAB_00095f14:
          uVar12 = 0xffffffff;
          uVar11 = 0;
          pcVar9 = param_2;
LAB_00095d98:
          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);
          puVar3 = PTR_DAT_0015c698;
          if (iVar5 == 0) {
            uVar11 = uVar12 + 4;
            pcVar9 = param_2 + uVar11;
          }
          uVar12 = (uint)*pcVar9;
          puVar8 = unaff_s5 + 2;
          if ((uVar12 != 0) && (uVar12 != 0x2e)) {
            iVar5 = 8;
            pcVar9 = param_2 + uVar11 + 1;
            do {
              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {
                iVar5 = iVar5 + 1;
                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];
                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);
              }
              uVar12 = (uint)*pcVar9;
            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));
          }
          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];
          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];
          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);
          *(undefined1 *)(puVar8 + 1) = uVar1;
          *(undefined1 *)((int)puVar8 + 5) = uVar2;
          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);
          puVar8 = unaff_s5;
          if (pcVar6 != (code *)0x0) break;
LAB_00095b60:
          if (param_4 != (int *)0x0) {
            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);
            uVar12 = (uVar11 & 0x3fffffff) + local_38;
            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)
                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);
            *param_4 = local_30;
            if (local_30 != 0) {
              (*(code *)PTR_sqlite3_snprintf_0015c628)
                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);
              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);
            }
          }
          uVar11 = 1;
          (*(code *)piVar10[0xd])(piVar10,unaff_s3);
          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);
        }
LAB_000959fc:
        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);
        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);
        if (iVar5 == 0) break;
        uVar11 = 0;
        if (iVar5 != 0x100) {
          if (param_4 != (int *)0x0) {
            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);
            *param_4 = iVar5;
          }
          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);
          (*(code *)piVar10[0xd])(piVar10,unaff_s3);
LAB_00095a84:
          uVar11 = 1;
        }
      }
      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);
      if (piVar10 == (int *)0x0) break;
      iVar5 = param_1[0x30];
      if (0 < (int)param_1[0x2f]) {
        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);
        iVar5 = param_1[0x30];
      }
      if (iVar5 != 0) {
        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);
      }
      param_1[0x30] = piVar10;
      piVar10 = piVar10 + param_1[0x2f];
      param_1[0x2f] = param_1[0x2f] + 1;
      *piVar10 = unaff_s3;
      uVar11 = 0;
    }
  } while( true );
}


lui gp,0xd
addiu gp,gp,-0x12f0
addu gp,gp,t9
addiu sp,sp,-0x60
lw t9,-0x7efc(gp)
sw s6,0x50(sp)
sw gp,0x18(sp)
sw s8,0x58(sp)
or s8,a2,zero
sw s4,0x48(sp)
or s4,a3,zero
sw s2,0x40(sp)
or s2,a1,zero
sw s1,0x3c(sp)
sw s0,0x38(sp)
or s0,a0,zero
sw ra,0x5c(sp)
sw s7,0x54(sp)
sw s5,0x4c(sp)
sw s3,0x44(sp)
lw s6,-0x7b80(gp)
lw a0,0xc(a0)
lw v0,0x0(s6)
sw v0,0x34(sp)
jalr t9
_nop
lw gp,0x18(sp)
lw s1,0x0(s0)
beq s2,zero,0x00095b40
_sw zero,0x30(sp)
lw t9,-0x7be8(gp)
jalr t9
_or a0,s2,zero
ext v0,v0,0x0,0x1e
lw gp,0x18(sp)
addiu s7,v0,0x12c
sw v0,0x2c(sp)
sra v0,s7,0x1f
sw s7,0x28(sp)
sw v0,0x24(sp)
beq s4,zero,0x00095aec
_nop
sw zero,0x0(s4)
lw v0,0x24(s0)
ext v0,v0,0x10,0x1
beq v0,zero,0x00095b24
_lw a0,-0x7fc8(gp)
beq s8,zero,0x00095b04
_lw s5,-0x7fbc(gp)
or s5,s8,zero
lw t9,0x28(s1)
or a1,s2,zero
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
bne v0,zero,0x000959d8
_or s3,v0,zero
lw a2,-0x7fbc(gp)
or a1,s2,zero
lw a0,-0x7fbc(gp)
lw t9,-0x7fc0(gp)
addiu a2,a2,-0x7048
bal 0x00092fe8
_addiu a0,a0,-0x1e6c
lw gp,0x18(sp)
beq v0,zero,0x00095ea8
_or s3,v0,zero
lw t9,0x28(s1)
or a0,s1,zero
jalr t9
_or a1,v0,zero
or a0,s3,zero
lw gp,0x18(sp)
lw t9,-0x7fc4(gp)
jalr t9
_or s3,v0,zero
beq s3,zero,0x00095c90
_lw gp,0x18(sp)
lw t9,0x30(s1)
or a2,s5,zero
or a1,s3,zero
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
beq v0,zero,0x00095b58
_or s7,v0,zero
or s5,zero,zero
lw t9,-0x7fc4(gp)
jalr t9
_or a0,s5,zero
addiu a1,sp,0x30
lw gp,0x18(sp)
or a0,s0,zero
or t9,s7,zero
lw a2,-0x7fd8(gp)
jalr t9
_addiu a2,a2,-0x53c8
lw gp,0x18(sp)
beq v0,zero,0x00095c08
_or s2,v0,zero
li v0,0x100
beq s2,v0,0x00095a88
_or s2,zero,zero
beq s4,zero,0x00095a64
_lw a0,0x30(sp)
or a1,a0,zero
lw a0,-0x7fbc(gp)
lw t9,-0x7fc0(gp)
bal 0x00092fe8
_addiu a0,a0,-0x6fe8
lw a0,0x30(sp)
lw gp,0x18(sp)
sw v0,0x0(s4)
lw t9,-0x7fc4(gp)
jalr t9
_nop
or a1,s3,zero
lw t9,0x34(s1)
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
li s2,0x1
lbu v0,0x51(s0)
bne v0,zero,0x00095b0c
_lw t9,-0x7eec(gp)
lw v0,0x44(s0)
and s2,s2,v0
lw t9,-0x7ef8(gp)
jalr t9
_lw a0,0xc(s0)
or v0,s2,zero
lw a0,0x34(sp)
lw v1,0x0(s6)
bne a0,v1,0x00095f08
_lw gp,0x18(sp)
lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
lw v0,0x24(s0)
ext v0,v0,0x10,0x1
beq v0,zero,0x00095a84
_nop
bne s8,zero,0x00095964
_lw s5,-0x7fbc(gp)
b 0x00095968
_addiu s5,s5,-0x7060
addiu t9,t9,0x7eb8
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
b 0x00095a9c
_or s2,v0,zero
li s2,0x1
lw t9,-0x7fc0(gp)
bal 0x00092fe8
_addiu a0,a0,0x7e54
lw gp,0x18(sp)
b 0x00095a88
_sw v0,0x0(s4)
li v0,0x12c
sw zero,0x24(sp)
li s7,0x12c
sw zero,0x2c(sp)
b 0x00095940
_sw v0,0x28(sp)
beq s8,zero,0x00095cf4
_or s7,zero,zero
beq s4,zero,0x00095bdc
_lw t9,-0x7be8(gp)
jalr t9
_or a0,s5,zero
lw v1,0x28(sp)
ext v0,v0,0x0,0x1e
lw gp,0x18(sp)
addu s8,v0,v1
lw v1,0x24(sp)
lw t9,-0x7e4c(gp)
sltu v0,s8,v0
addu a0,v0,v1
jalr t9
_or a1,s8,zero
lw gp,0x18(sp)
sw v0,0x30(sp)
beq v0,zero,0x00095bdc
_sw v0,0x0(s4)
lw a2,-0x7fbc(gp)
or a1,v0,zero
lw t9,-0x7f88(gp)
or a0,s8,zero
or a3,s5,zero
sw s2,0x10(sp)
jalr t9
_addiu a2,a2,-0x7014
addiu a1,s8,-0x1
lw t9,0x2c(s1)
or a0,s1,zero
jalr t9
_lw a2,0x30(sp)
lw t9,0x34(s1)
or a0,s1,zero
or a1,s3,zero
jalr t9
_li s2,0x1
lw gp,0x18(sp)
lw t9,-0x7fc4(gp)
jalr t9
_or a0,s7,zero
b 0x00095a88
_lw gp,0x18(sp)
lw a3,0xbc(s0)
or a2,zero,zero
lw t9,-0x7ed4(gp)
or a0,s0,zero
addiu a3,a3,0x1
addiu t9,t9,-0x2110
jalr t9
_sll a3,a3,0x2
lw gp,0x18(sp)
beq v0,zero,0x00095ea8
_or s1,v0,zero
lw a2,0xbc(s0)
blez a2,0x00095c58
_lw a1,0xc0(s0)
lw t9,-0x7b7c(gp)
sll a2,a2,0x2
jalr t9
_or a0,v0,zero
lw gp,0x18(sp)
lw a1,0xc0(s0)
beq a1,zero,0x00095c70
_lw t9,-0x7ed4(gp)
addiu t9,t9,-0x4dac
jalr t9
_or a0,s0,zero
lw gp,0x18(sp)
lw v0,0xbc(s0)
sw s1,0xc0(s0)
sll v1,v0,0x2
addiu v0,v0,0x1
addu s1,s1,v1
sw v0,0xbc(s0)
b 0x00095a88
_sw s3,0x0(s1)
beq s4,zero,0x00095a84
_lw t9,-0x7e4c(gp)
lw a0,0x24(sp)
jalr t9
_lw a1,0x28(sp)
lw gp,0x18(sp)
sw v0,0x30(sp)
beq v0,zero,0x00095a84
_sw v0,0x0(s4)
lw a2,-0x7fbc(gp)
or a3,s2,zero
lw t9,-0x7f88(gp)
or a1,v0,zero
or a0,s7,zero
addiu a2,a2,-0x7044
jalr t9
_li s2,0x1
or a0,s1,zero
lw v0,0x2c(sp)
lw t9,0x2c(s1)
lw a2,0x30(sp)
jalr t9
_addiu a1,v0,0x12b
b 0x00095a88
_lw gp,0x18(sp)
beq s2,zero,0x00095eb0
_lw t9,-0x7be8(gp)
jalr t9
_or a0,s2,zero
or a0,zero,zero
lw gp,0x18(sp)
ext v1,v0,0x0,0x1e
addiu a1,v1,0x1e
lw t9,-0x7e4c(gp)
jalr t9
_sw v1,0x2c(sp)
lw gp,0x18(sp)
or s5,v0,zero
beq v0,zero,0x00095e94
_lw v1,0x2c(sp)
lw v0,-0x7fbc(gp)
addiu s8,v1,-0x1
addiu a1,v0,-0x7020
lw a0,-0x7020(v0)
lw v0,0x4(a1)
swl a0,0x0(s5)
swr a0,0x3(s5)
swl v0,0x4(s5)
beq v1,zero,0x00095f14
_swr v0,0x7(s5)
addu v0,s2,s8
li a0,0x2f
lb v0,0x0(v0)
beq v0,a0,0x00095efc
_or s7,s8,zero
b 0x00095d84
_li v1,-0x1
lb v0,0x0(v0)
beq v0,a0,0x00095d98
_addu a3,s2,s8
or s8,s7,zero
addiu s7,s8,-0x1
bne s7,v1,0x00095d74
_addu v0,s2,s7
or s8,zero,zero
or a3,s2,zero
lw a1,-0x7fc8(gp)
li a2,0x3
lw t9,-0x7ea4(gp)
or a0,a3,zero
sw a3,0x2c(sp)
jalr t9
_addiu a1,a1,0x7070
lw gp,0x18(sp)
bne v0,zero,0x00095dc8
_lw a3,0x2c(sp)
addiu s8,s7,0x4
addu a3,s2,s8
lb v0,0x0(a3)
beq v0,zero,0x00095e48
_addiu a3,s5,0x8
li v1,0x2e
beq v0,v1,0x00095e48
_lw t0,-0x7f18(gp)
addiu a0,s8,0x1
lw t2,-0x7f18(gp)
li a2,0x8
addu a0,s2,a0
addiu t0,t0,-0x71f8
addiu t2,t2,-0x70f8
li t1,0x2e
b 0x00095e0c
_or a1,a3,zero
beq v0,t1,0x00095e48
_addiu a0,a0,0x1
andi v1,v0,0xff
addu v1,t0,v1
lbu v1,0x0(v1)
andi v1,v1,0x2
beq v1,zero,0x00095e3c
_or a3,a1,zero
addu v0,v0,t2
addiu a2,a2,0x1
lbu v0,0x0(v0)
sb v0,0x0(a1)
addu a1,s5,a2
or a3,a1,zero
lb v0,0x0(a0)
bne v0,zero,0x00095e04
_nop
lw v0,-0x7fbc(gp)
or a2,s5,zero
or a1,s3,zero
addiu v1,v0,-0x118
lw v0,-0x118(v0)
lbu t0,0x4(v1)
lbu v1,0x5(v1)
swl v0,0x0(a3)
swr v0,0x3(a3)
sb t0,0x4(a3)
sb v1,0x5(a3)
lw t9,0x30(s1)
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
bne v0,zero,0x000959fc
_or s7,v0,zero
b 0x00095b60
_or s7,s5,zero
lw t9,0x34(s1)
or a1,s3,zero
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
b 0x00095a88
_li s2,0x7
lw t9,-0x7e4c(gp)
li a1,0x1e
jalr t9
_or a0,zero,zero
lw gp,0x18(sp)
beq v0,zero,0x00095e94
_or s5,v0,zero
lw v0,-0x7fbc(gp)
or a3,zero,zero
or s8,zero,zero
li s7,-0x1
addiu a0,v0,-0x7020
lw v1,-0x7020(v0)
lw v0,0x4(a0)
swl v1,0x0(s5)
swr v1,0x3(s5)
swl v0,0x4(s5)
b 0x00095d98
_swr v0,0x7(s5)
addu a3,s2,v1
b 0x00095d98
_or s8,v1,zero
lw t9,-0x7b9c(gp)
jalr t9
_nop
or a3,s2,zero
li s7,-0x1
b 0x00095d98
_or s8,zero,zero
(translation_unit "char * sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}\n\n" (function_definition "char * sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" * (function_declarator "sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" identifier (parameter_list "(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier 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 "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);" (call_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3])" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)" ( (pointer_expression "*(code *)PTR_sqlite3_mutex_enter_0015c6b4" * (cast_expression "(code *)PTR_sqlite3_mutex_enter_0015c6b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar10 = (int *)*param_1;" (assignment_expression "piVar10 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_34 = 0;\n    local_38 = 300;\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 300;" (assignment_expression "local_38 = 300" identifier = number_literal) ;) }) (else_clause "else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" else (compound_statement "{\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" { (expression_statement "local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_34 = local_34 & 0x3fffffff;" (assignment_expression "local_34 = local_34 & 0x3fffffff" identifier = (binary_expression "local_34 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "local_38 = local_34 + 300;" (assignment_expression "local_38 = local_34 + 300" identifier = (binary_expression "local_34 + 300" identifier + number_literal)) ;) }))) (if_statement "if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }" { (if_statement "if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;" if (parenthesized_expression "(-1 < (int)(param_1[9] << 0xf))" ( (binary_expression "-1 < (int)(param_1[9] << 0xf)" number_literal < (cast_expression "(int)(param_1[9] << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1[9] << 0xf)" ( (binary_expression "param_1[9] << 0xf" (subscript_expression "param_1[9]" identifier [ number_literal ]) << number_literal) )))) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) }) (else_clause "else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" else (compound_statement "{\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) (if_statement "if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }" if (parenthesized_expression "(-1 < (int)(param_1[9] << 0xf))" ( (binary_expression "-1 < (int)(param_1[9] << 0xf)" number_literal < (cast_expression "(int)(param_1[9] << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1[9] << 0xf)" ( (binary_expression "param_1[9] << 0xf" (subscript_expression "param_1[9]" identifier [ number_literal ]) << number_literal) )))) )) (compound_statement "{\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" identifier = (call_expression "sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" identifier (argument_list "(PTR_LAB_0015c5e8 + 0x7e54)" ( (binary_expression "PTR_LAB_0015c5e8 + 0x7e54" identifier + number_literal) )))) ;) (expression_statement "*param_4 = iVar5;" (assignment_expression "*param_4 = iVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto LAB_00095a88;" goto statement_identifier ;) })) }))) (expression_statement "unaff_s5 = param_3;" (assignment_expression "unaff_s5 = param_3" identifier = identifier) ;) (if_statement "if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }" if (parenthesized_expression "(param_3 == (undefined4 *)0x0)" ( (binary_expression "param_3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }" { (expression_statement "unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);" (assignment_expression "unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" identifier = (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7060" identifier + number_literal) )))) ;) })) (expression_statement "unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);" (assignment_expression "unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2)" identifier = (call_expression "(*(code *)piVar10[10])(piVar10,param_2)" (parenthesized_expression "(*(code *)piVar10[10])" ( (pointer_expression "*(code *)piVar10[10]" * (cast_expression "(code *)piVar10[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[10]" identifier [ number_literal ]))) )) (argument_list "(piVar10,param_2)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }" { (expression_statement "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" identifier = (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" identifier (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x1e6c" identifier + number_literal) , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7048" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = iVar5;" (assignment_expression "unaff_s3 = iVar5" identifier = identifier) ;) (if_statement "if (iVar5 == 0) goto LAB_00095ea8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095ea8;" goto statement_identifier ;)) (expression_statement "unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);" (assignment_expression "unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5)" identifier = (call_expression "(*(code *)piVar10[10])(piVar10,iVar5)" (parenthesized_expression "(*(code *)piVar10[10])" ( (pointer_expression "*(code *)piVar10[10]" * (cast_expression "(code *)piVar10[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[10]" identifier [ number_literal ]))) )) (argument_list "(piVar10,iVar5)" ( identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(iVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_00095a84;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) (expression_statement "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);" (assignment_expression "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_38)" ( number_literal , identifier )))) ;) (expression_statement "*param_4 = local_30;" (assignment_expression "*param_4 = local_30" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_30 == 0) goto LAB_00095a84;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2)" ( identifier , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7044" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);" (call_expression "(*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30)" (parenthesized_expression "(*(code *)piVar10[0xb])" ( (pointer_expression "*(code *)piVar10[0xb]" * (cast_expression "(code *)piVar10[0xb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xb]" identifier [ number_literal ]))) )) (argument_list "(piVar10,local_34 + 299,local_30)" ( identifier , (binary_expression "local_34 + 299" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_00095a88;" goto statement_identifier ;) })) })) (expression_statement "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);" (assignment_expression "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" identifier = (cast_expression "(code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (parenthesized_expression "(*(code *)piVar10[0xc])" ( (pointer_expression "*(code *)piVar10[0xc]" * (cast_expression "(code *)piVar10[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xc]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3,unaff_s5)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }" if (parenthesized_expression "(pcVar6 != (code *)0x0)" ( (binary_expression "pcVar6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }" { (expression_statement "unaff_s5 = (undefined4 *)0x0;" (assignment_expression "unaff_s5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000959fc;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined4 *)0x0;" (assignment_expression "puVar8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00095b60;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }" { (expression_statement "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);" (assignment_expression "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x1e)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }" if (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" ( (binary_expression "unaff_s5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }" { (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" identifier + number_literal) ))))) ;) (expression_statement "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*unaff_s5" * identifier) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5[1] = uVar7;" (assignment_expression "unaff_s5[1] = uVar7" (subscript_expression "unaff_s5[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" else (compound_statement "{\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" { (expression_statement "uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar11 = uVar11 & 0x3fffffff;" (assignment_expression "uVar11 = uVar11 & 0x3fffffff" identifier = (binary_expression "uVar11 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);" (assignment_expression "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,uVar11 + 0x1e)" ( number_literal , (binary_expression "uVar11 + 0x1e" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }" if (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" ( (binary_expression "unaff_s5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }" { (expression_statement "uVar12 = uVar11 - 1;" (assignment_expression "uVar12 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" identifier + number_literal) ))))) ;) (expression_statement "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*unaff_s5" * identifier) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5[1] = uVar7;" (assignment_expression "unaff_s5[1] = uVar7" (subscript_expression "unaff_s5[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar11 == 0) goto LAB_00095f14;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095f14;" goto statement_identifier ;)) (if_statement "if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }" if (parenthesized_expression "(param_2[uVar12] != '/')" ( (binary_expression "param_2[uVar12] != '/'" (subscript_expression "param_2[uVar12]" identifier [ identifier ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }" { (while_statement "while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }" { (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" identifier = identifier) ;) (expression_statement "uVar12 = uVar11 - 1;" (assignment_expression "uVar12 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (if_statement "if (uVar12 == 0xffffffff) break;" if (parenthesized_expression "(uVar12 == 0xffffffff)" ( (binary_expression "uVar12 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" identifier = (binary_expression "param_2 + uVar11" identifier + identifier)) ;) (if_statement "if (param_2[uVar12] == '/') goto LAB_00095d98;" if (parenthesized_expression "(param_2[uVar12] == '/')" ( (binary_expression "param_2[uVar12] == '/'" (subscript_expression "param_2[uVar12]" identifier [ identifier ]) == (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;)) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = param_2;" (assignment_expression "pcVar9 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" identifier = (binary_expression "param_2 + uVar11" identifier + identifier)) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" ( (pointer_expression "*(code *)piVar10[0xd]" * (cast_expression "(code *)piVar10[0xd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xd]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );" do (compound_statement "{\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  }" { (expression_statement "uVar11 = 7;" (assignment_expression "uVar11 = 7" identifier = number_literal) ;) (labeled_statement "LAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" statement_identifier : (while_statement "while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" { (while_statement "while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }" { (while_statement "while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }" { (if_statement "if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x51) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x51) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x51)" * (cast_expression "(char *)((int)param_1 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x51)" ( (binary_expression "(int)param_1 + 0x51" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }" { (expression_statement "param_2 = (char *)(uVar11 & param_1[0x11]);" (assignment_expression "param_2 = (char *)(uVar11 & param_1[0x11])" identifier = (cast_expression "(char *)(uVar11 & param_1[0x11])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 & param_1[0x11])" ( (binary_expression "uVar11 & param_1[0x11]" identifier & (subscript_expression "param_1[0x11]" identifier [ number_literal ])) )))) ;) }) (else_clause "else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" else (compound_statement "{\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" { (expression_statement "param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);" (assignment_expression "param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" * (cast_expression "(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6c4 + 0x7eb8)" ( (binary_expression "PTR_LAB_0015c6c4 + 0x7eb8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) }))) (expression_statement "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);" (call_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3])" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)" ( (pointer_expression "*(code *)PTR_sqlite3_mutex_leave_0015c6b8" * (cast_expression "(code *)PTR_sqlite3_mutex_leave_0015c6b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) (if_statement "if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n            return param_2;\n          }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00095f14:\n          uVar12 = 0xffffffff;" statement_identifier : (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = param_2;" (assignment_expression "pcVar9 = param_2" identifier = identifier) ;) (labeled_statement "LAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);" statement_identifier : (expression_statement "iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" identifier = (call_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" (parenthesized_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)" ( (pointer_expression "*(code *)PTR_sqlite3_strnicmp_0015c70c" * (cast_expression "(code *)PTR_sqlite3_strnicmp_0015c70c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" ( identifier , (binary_expression "PTR_LAB_0015c5e8 + 0x7070" identifier + number_literal) , number_literal )))) ;)) (expression_statement "puVar3 = PTR_DAT_0015c698;" (assignment_expression "puVar3 = PTR_DAT_0015c698" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }" { (expression_statement "uVar11 = uVar12 + 4;" (assignment_expression "uVar11 = uVar12 + 4" identifier = (binary_expression "uVar12 + 4" identifier + number_literal)) ;) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" identifier = (binary_expression "param_2 + uVar11" identifier + identifier)) ;) })) (expression_statement "uVar12 = (uint)*pcVar9;" (assignment_expression "uVar12 = (uint)*pcVar9" identifier = (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar8 = unaff_s5 + 2;" (assignment_expression "puVar8 = unaff_s5 + 2" identifier = (binary_expression "unaff_s5 + 2" identifier + number_literal)) ;) (if_statement "if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }" if (parenthesized_expression "((uVar12 != 0) && (uVar12 != 0x2e))" ( (binary_expression "(uVar12 != 0) && (uVar12 != 0x2e)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar12 != 0x2e)" ( (binary_expression "uVar12 != 0x2e" identifier != number_literal) ))) )) (compound_statement "{\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pcVar9 = param_2 + uVar11 + 1;" (assignment_expression "pcVar9 = param_2 + uVar11 + 1" identifier = (binary_expression "param_2 + uVar11 + 1" (binary_expression "param_2 + uVar11" identifier + identifier) + number_literal)) ;) (do_statement "do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));" do (compound_statement "{\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            }" { (if_statement "if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }" if (parenthesized_expression "((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0)" ( (binary_expression "(puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0" (parenthesized_expression "(puVar3[(uVar12 & 0xff) - 0x71f8] & 2)" ( (binary_expression "puVar3[(uVar12 & 0xff) - 0x71f8] & 2" (subscript_expression "puVar3[(uVar12 & 0xff) - 0x71f8]" identifier [ (binary_expression "(uVar12 & 0xff) - 0x71f8" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) - number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];" (assignment_expression "*(undefined *)puVar8 = puVar3[uVar12 - 0x70f8]" (pointer_expression "*(undefined *)puVar8" * (cast_expression "(undefined *)puVar8" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "puVar3[uVar12 - 0x70f8]" identifier [ (binary_expression "uVar12 - 0x70f8" identifier - number_literal) ])) ;) (expression_statement "puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);" (assignment_expression "puVar8 = (undefined4 *)((int)unaff_s5 + iVar5)" identifier = (cast_expression "(undefined4 *)((int)unaff_s5 + iVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + iVar5)" ( (binary_expression "(int)unaff_s5 + iVar5" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "uVar12 = (uint)*pcVar9;" (assignment_expression "uVar12 = (uint)*pcVar9" identifier = (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e))" ( (binary_expression "(uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar9 = pcVar9 + 1, uVar12 != 0x2e)" ( (comma_expression "pcVar9 = pcVar9 + 1, uVar12 != 0x2e" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) , (binary_expression "uVar12 != 0x2e" identifier != number_literal)) ))) )) ;) })) (expression_statement "uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];" (assignment_expression "uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114]" identifier = (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x114]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];" (assignment_expression "uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113]" identifier = (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x113]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);" (assignment_expression "*puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x118)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x118" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar8 + 1) = uVar1;" (assignment_expression "*(undefined1 *)(puVar8 + 1) = uVar1" (pointer_expression "*(undefined1 *)(puVar8 + 1)" * (cast_expression "(undefined1 *)(puVar8 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 5) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar8 + 5) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar8 + 5)" * (cast_expression "(undefined1 *)((int)puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 5)" ( (binary_expression "(int)puVar8 + 5" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);" (assignment_expression "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" identifier = (cast_expression "(code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (parenthesized_expression "(*(code *)piVar10[0xc])" ( (pointer_expression "*(code *)piVar10[0xc]" * (cast_expression "(code *)piVar10[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xc]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3,unaff_s5)" ( identifier , identifier , identifier ))))) ;) (expression_statement "puVar8 = unaff_s5;" (assignment_expression "puVar8 = unaff_s5" identifier = identifier) ;) (if_statement "if (pcVar6 != (code *)0x0) break;" if (parenthesized_expression "(pcVar6 != (code *)0x0)" ( (binary_expression "pcVar6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" statement_identifier : (if_statement "if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" { (expression_statement "uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);" (assignment_expression "uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "uVar12 = (uVar11 & 0x3fffffff) + local_38;" (assignment_expression "uVar12 = (uVar11 & 0x3fffffff) + local_38" identifier = (binary_expression "(uVar11 & 0x3fffffff) + local_38" (parenthesized_expression "(uVar11 & 0x3fffffff)" ( (binary_expression "uVar11 & 0x3fffffff" identifier & number_literal) )) + identifier)) ;) (expression_statement "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);" (assignment_expression "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12 < (uVar11 & 0x3fffffff),uVar12)" ( (binary_expression "uVar12 < (uVar11 & 0x3fffffff)" identifier < (parenthesized_expression "(uVar11 & 0x3fffffff)" ( (binary_expression "uVar11 & 0x3fffffff" identifier & number_literal) ))) , identifier )))) ;) (expression_statement "*param_4 = local_30;" (assignment_expression "*param_4 = local_30" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }" { (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2)" ( identifier , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7014" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);" (call_expression "(*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30)" (parenthesized_expression "(*(code *)piVar10[0xb])" ( (pointer_expression "*(code *)piVar10[0xb]" * (cast_expression "(code *)piVar10[0xb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xb]" identifier [ number_literal ]))) )) (argument_list "(piVar10,uVar12 - 1,local_30)" ( identifier , (binary_expression "uVar12 - 1" identifier - number_literal) , identifier ))) ;) })) }))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" ( (pointer_expression "*(code *)piVar10[0xd]" * (cast_expression "(code *)piVar10[0xd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xd]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(puVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) })) (labeled_statement "LAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);" (assignment_expression "iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" identifier = (call_expression "(*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" ( identifier , (pointer_expression "&local_30" & identifier) , (binary_expression "PTR_DAT_0015c5d8 + -0x53c8" identifier + number_literal) )))) ;) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }" if (parenthesized_expression "(iVar5 != 0x100)" ( (binary_expression "iVar5 != 0x100" identifier != number_literal) )) (compound_statement "{\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }" { (if_statement "if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }" { (expression_statement "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" identifier = (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" identifier (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x6fe8" identifier + number_literal) , identifier )))) ;) (expression_statement "*param_4 = iVar5;" (assignment_expression "*param_4 = iVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(local_30);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(local_30)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" ( (pointer_expression "*(code *)piVar10[0xd]" * (cast_expression "(code *)piVar10[0xd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xd]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00095a84:\n          uVar11 = 1;" statement_identifier : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;)) })) })) (expression_statement "piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);" (assignment_expression "piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x2110)" * (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x2110)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6dc + -0x2110)" ( (binary_expression "PTR_LAB_0015c6dc + -0x2110" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (piVar10 == (int *)0x0) break;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = param_1[0x30];" (assignment_expression "iVar5 = param_1[0x30]" identifier = (subscript_expression "param_1[0x30]" identifier [ number_literal ])) ;) (if_statement "if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }" if (parenthesized_expression "(0 < (int)param_1[0x2f])" ( (binary_expression "0 < (int)param_1[0x2f]" number_literal < (cast_expression "(int)param_1[0x2f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x2f]" identifier [ number_literal ]))) )) (compound_statement "{\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }" { (expression_statement "(*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" ( (pointer_expression "*(code *)PTR_memcpy_0015ca34" * (cast_expression "(code *)PTR_memcpy_0015ca34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10,iVar5,param_1[0x2f] << 2)" ( identifier , identifier , (binary_expression "param_1[0x2f] << 2" (subscript_expression "param_1[0x2f]" identifier [ number_literal ]) << number_literal) ))) ;) (expression_statement "iVar5 = param_1[0x30];" (assignment_expression "iVar5 = param_1[0x30]" identifier = (subscript_expression "param_1[0x30]" identifier [ number_literal ])) ;) })) (if_statement "if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }" { (expression_statement "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);" (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x4dac)" * (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x4dac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6dc + -0x4dac)" ( (binary_expression "PTR_LAB_0015c6dc + -0x4dac" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "param_1[0x30] = piVar10;" (assignment_expression "param_1[0x30] = piVar10" (subscript_expression "param_1[0x30]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10 = piVar10 + param_1[0x2f];" (assignment_expression "piVar10 = piVar10 + param_1[0x2f]" identifier = (binary_expression "piVar10 + param_1[0x2f]" identifier + (subscript_expression "param_1[0x2f]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x2f] = param_1[0x2f] + 1;" (assignment_expression "param_1[0x2f] = param_1[0x2f] + 1" (subscript_expression "param_1[0x2f]" identifier [ number_literal ]) = (binary_expression "param_1[0x2f] + 1" (subscript_expression "param_1[0x2f]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar10 = unaff_s3;" (assignment_expression "*piVar10 = unaff_s3" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "int sqlite3_load_extension(sqlite3 *db,char *zFile,char *zProc,char **pzErrMsg)\n\n{\n  char cVar1;\n  char cVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  _func_void *p_Var6;\n  int iVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  void **ppvVar10;\n  sqlite3_vfs *psVar11;\n  uint uVar12;\n  char *unaff_s3;\n  char *unaff_s5;\n  uint uVar13;\n  int local_38;\n  uint local_34;\n  char *zErrmsg;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex);\n  psVar11 = db->pVfs;\n  zErrmsg = (char *)0x0;\n  if (zFile == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (pzErrMsg == (char **)0x0) {\n    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;\n  }\n  else {\n    *pzErrMsg = (char *)0x0;\n    if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = zProc;\n  if (zProc == (char *)0x0) {\n    unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;\n  }\n  unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,zFile);\n  if (unaff_s3 == (char *)0x0) {\n    pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            );\n    unaff_s3 = pcVar5;\n    if (pcVar5 == (char *)0x0) goto LAB_00095ea8;\n    unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n    if (unaff_s3 == (char *)0x0) {\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }\n  }\n  p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n  if (p_Var6 != (_func_void *)0x0) {\n    unaff_s5 = (char *)0x0;\n    goto LAB_000959fc;\n  }\n  pcVar5 = (char *)0x0;\n  if (zProc != (char *)0x0) goto LAB_00095b60;\n  if (zFile == (char *)0x0) {\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    uVar12 = uVar12 & 0x3fffffff;\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }\n  }\n  (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar12 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }\n  } while( true );\n}\n\n" (function_definition "int sqlite3_load_extension(sqlite3 *db,char *zFile,char *zProc,char **pzErrMsg)\n\n{\n  char cVar1;\n  char cVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  _func_void *p_Var6;\n  int iVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  void **ppvVar10;\n  sqlite3_vfs *psVar11;\n  uint uVar12;\n  char *unaff_s3;\n  char *unaff_s5;\n  uint uVar13;\n  int local_38;\n  uint local_34;\n  char *zErrmsg;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex);\n  psVar11 = db->pVfs;\n  zErrmsg = (char *)0x0;\n  if (zFile == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (pzErrMsg == (char **)0x0) {\n    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;\n  }\n  else {\n    *pzErrMsg = (char *)0x0;\n    if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = zProc;\n  if (zProc == (char *)0x0) {\n    unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;\n  }\n  unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,zFile);\n  if (unaff_s3 == (char *)0x0) {\n    pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            );\n    unaff_s3 = pcVar5;\n    if (pcVar5 == (char *)0x0) goto LAB_00095ea8;\n    unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n    if (unaff_s3 == (char *)0x0) {\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }\n  }\n  p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n  if (p_Var6 != (_func_void *)0x0) {\n    unaff_s5 = (char *)0x0;\n    goto LAB_000959fc;\n  }\n  pcVar5 = (char *)0x0;\n  if (zProc != (char *)0x0) goto LAB_00095b60;\n  if (zFile == (char *)0x0) {\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    uVar12 = uVar12 & 0x3fffffff;\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }\n  }\n  (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar12 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }\n  } while( true );\n}" primitive_type (function_declarator "sqlite3_load_extension(sqlite3 *db,char *zFile,char *zProc,char **pzErrMsg)" identifier (parameter_list "(sqlite3 *db,char *zFile,char *zProc,char **pzErrMsg)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "char *zFile" primitive_type (pointer_declarator "*zFile" * identifier)) , (parameter_declaration "char *zProc" primitive_type (pointer_declarator "*zProc" * identifier)) , (parameter_declaration "char **pzErrMsg" primitive_type (pointer_declarator "**pzErrMsg" * (pointer_declarator "*pzErrMsg" * identifier))) ))) (compound_statement "{\n  char cVar1;\n  char cVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  char *pcVar5;\n  _func_void *p_Var6;\n  int iVar7;\n  undefined4 uVar8;\n  char *pcVar9;\n  void **ppvVar10;\n  sqlite3_vfs *psVar11;\n  uint uVar12;\n  char *unaff_s3;\n  char *unaff_s5;\n  uint uVar13;\n  int local_38;\n  uint local_34;\n  char *zErrmsg;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex);\n  psVar11 = db->pVfs;\n  zErrmsg = (char *)0x0;\n  if (zFile == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (pzErrMsg == (char **)0x0) {\n    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;\n  }\n  else {\n    *pzErrMsg = (char *)0x0;\n    if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = zProc;\n  if (zProc == (char *)0x0) {\n    unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;\n  }\n  unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,zFile);\n  if (unaff_s3 == (char *)0x0) {\n    pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            );\n    unaff_s3 = pcVar5;\n    if (pcVar5 == (char *)0x0) goto LAB_00095ea8;\n    unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n    if (unaff_s3 == (char *)0x0) {\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }\n  }\n  p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n  if (p_Var6 != (_func_void *)0x0) {\n    unaff_s5 = (char *)0x0;\n    goto LAB_000959fc;\n  }\n  pcVar5 = (char *)0x0;\n  if (zProc != (char *)0x0) goto LAB_00095b60;\n  if (zFile == (char *)0x0) {\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    uVar12 = uVar12 & 0x3fffffff;\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }\n  }\n  (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar12 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }\n  } while( true );\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "char cVar2;" 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 "_func_void *p_Var6;" type_identifier (pointer_declarator "*p_Var6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 uVar8;" type_identifier identifier ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "void **ppvVar10;" primitive_type (pointer_declarator "**ppvVar10" * (pointer_declarator "*ppvVar10" * identifier)) ;) (declaration "sqlite3_vfs *psVar11;" type_identifier (pointer_declarator "*psVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "char *unaff_s3;" primitive_type (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "char *unaff_s5;" primitive_type (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint uVar13;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "char *zErrmsg;" primitive_type (pointer_declarator "*zErrmsg" * identifier) ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex);" (call_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex)" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)" ( (pointer_expression "*(code *)PTR_sqlite3_mutex_enter_0015c6b4" * (cast_expression "(code *)PTR_sqlite3_mutex_enter_0015c6b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(db->mutex)" ( (field_expression "db->mutex" identifier -> field_identifier) ))) ;) (expression_statement "psVar11 = db->pVfs;" (assignment_expression "psVar11 = db->pVfs" identifier = (field_expression "db->pVfs" identifier -> field_identifier)) ;) (expression_statement "zErrmsg = (char *)0x0;" (assignment_expression "zErrmsg = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (zFile == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" if (parenthesized_expression "(zFile == (char *)0x0)" ( (binary_expression "zFile == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_34 = 0;\n    local_38 = 300;\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 300;" (assignment_expression "local_38 = 300" identifier = number_literal) ;) }) (else_clause "else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" else (compound_statement "{\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" { (expression_statement "local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile);" (assignment_expression "local_34 = (*(code *)PTR_strlen_0015c9c8)(zFile)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(zFile)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(zFile)" ( identifier )))) ;) (expression_statement "local_34 = local_34 & 0x3fffffff;" (assignment_expression "local_34 = local_34 & 0x3fffffff" identifier = (binary_expression "local_34 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "local_38 = local_34 + 300;" (assignment_expression "local_38 = local_34 + 300" identifier = (binary_expression "local_34 + 300" identifier + number_literal)) ;) }))) (if_statement "if (pzErrMsg == (char **)0x0) {\n    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;\n  }\n  else {\n    *pzErrMsg = (char *)0x0;\n    if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }\n  }" if (parenthesized_expression "(pzErrMsg == (char **)0x0)" ( (binary_expression "pzErrMsg == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;\n  }" { (if_statement "if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;" if (parenthesized_expression "(-1 < (int)db->flags << 0xf)" ( (binary_expression "-1 < (int)db->flags << 0xf" number_literal < (binary_expression "(int)db->flags << 0xf" (cast_expression "(int)db->flags" ( (type_descriptor "int" primitive_type) ) (field_expression "db->flags" identifier -> field_identifier)) << number_literal)) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) }) (else_clause "else {\n    *pzErrMsg = (char *)0x0;\n    if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }\n  }" else (compound_statement "{\n    *pzErrMsg = (char *)0x0;\n    if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }\n  }" { (expression_statement "*pzErrMsg = (char *)0x0;" (assignment_expression "*pzErrMsg = (char *)0x0" (pointer_expression "*pzErrMsg" * identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (-1 < (int)db->flags << 0xf) {\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }" if (parenthesized_expression "(-1 < (int)db->flags << 0xf)" ( (binary_expression "-1 < (int)db->flags << 0xf" number_literal < (binary_expression "(int)db->flags << 0xf" (cast_expression "(int)db->flags" ( (type_descriptor "int" primitive_type) ) (field_expression "db->flags" identifier -> field_identifier)) << number_literal)) )) (compound_statement "{\n      uVar12 = 1;\n      pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *pzErrMsg = pcVar5;\n      goto LAB_00095a88;\n    }" { (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);" (assignment_expression "pcVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" identifier = (call_expression "sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" identifier (argument_list "(PTR_LAB_0015c5e8 + 0x7e54)" ( (binary_expression "PTR_LAB_0015c5e8 + 0x7e54" identifier + number_literal) )))) ;) (expression_statement "*pzErrMsg = pcVar5;" (assignment_expression "*pzErrMsg = pcVar5" (pointer_expression "*pzErrMsg" * identifier) = identifier) ;) (goto_statement "goto LAB_00095a88;" goto statement_identifier ;) })) }))) (expression_statement "unaff_s5 = zProc;" (assignment_expression "unaff_s5 = zProc" identifier = identifier) ;) (if_statement "if (zProc == (char *)0x0) {\n    unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;\n  }" if (parenthesized_expression "(zProc == (char *)0x0)" ( (binary_expression "zProc == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;\n  }" { (expression_statement "unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060;" (assignment_expression "unaff_s5 = PTR_s_LE_FTS4_0015c5f4 + -0x7060" identifier = (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7060" identifier + number_literal)) ;) })) (expression_statement "unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,zFile);" (assignment_expression "unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,zFile)" identifier = (cast_expression "(char *)(*psVar11->xDlOpen)(psVar11,zFile)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*psVar11->xDlOpen)(psVar11,zFile)" (parenthesized_expression "(*psVar11->xDlOpen)" ( (pointer_expression "*psVar11->xDlOpen" * (field_expression "psVar11->xDlOpen" identifier -> field_identifier)) )) (argument_list "(psVar11,zFile)" ( identifier , identifier ))))) ;) (if_statement "if (unaff_s3 == (char *)0x0) {\n    pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            );\n    unaff_s3 = pcVar5;\n    if (pcVar5 == (char *)0x0) goto LAB_00095ea8;\n    unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n    if (unaff_s3 == (char *)0x0) {\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }\n  }" if (parenthesized_expression "(unaff_s3 == (char *)0x0)" ( (binary_expression "unaff_s3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            );\n    unaff_s3 = pcVar5;\n    if (pcVar5 == (char *)0x0) goto LAB_00095ea8;\n    unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n    if (unaff_s3 == (char *)0x0) {\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }\n  }" { (expression_statement "pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            );" (assignment_expression "pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            )" identifier = (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            )" identifier (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,zFile,PTR_s_LE_FTS4_0015c5f4 + -0x7048\n                            )" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x1e6c" identifier + number_literal) , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7048" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = pcVar5;" (assignment_expression "unaff_s3 = pcVar5" identifier = identifier) ;) (if_statement "if (pcVar5 == (char *)0x0) goto LAB_00095ea8;" 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)) )) (goto_statement "goto LAB_00095ea8;" goto statement_identifier ;)) (expression_statement "unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5);" (assignment_expression "unaff_s3 = (char *)(*psVar11->xDlOpen)(psVar11,pcVar5)" identifier = (cast_expression "(char *)(*psVar11->xDlOpen)(psVar11,pcVar5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*psVar11->xDlOpen)(psVar11,pcVar5)" (parenthesized_expression "(*psVar11->xDlOpen)" ( (pointer_expression "*psVar11->xDlOpen" * (field_expression "psVar11->xDlOpen" identifier -> field_identifier)) )) (argument_list "(psVar11,pcVar5)" ( identifier , identifier ))))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;) (if_statement "if (unaff_s3 == (char *)0x0) {\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }" if (parenthesized_expression "(unaff_s3 == (char *)0x0)" ( (binary_expression "unaff_s3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pzErrMsg == (char **)0x0) goto LAB_00095a84;\n      zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *pzErrMsg = zErrmsg;\n      if (zErrmsg == (char *)0x0) goto LAB_00095a84;\n      uVar12 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);\n      (*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);\n      goto LAB_00095a88;\n    }" { (if_statement "if (pzErrMsg == (char **)0x0) goto LAB_00095a84;" if (parenthesized_expression "(pzErrMsg == (char **)0x0)" ( (binary_expression "pzErrMsg == (char **)0x0" identifier == (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) (expression_statement "zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);" (assignment_expression "zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" identifier = (cast_expression "(char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_38)" ( number_literal , identifier ))))) ;) (expression_statement "*pzErrMsg = zErrmsg;" (assignment_expression "*pzErrMsg = zErrmsg" (pointer_expression "*pzErrMsg" * identifier) = identifier) ;) (if_statement "if (zErrmsg == (char *)0x0) goto LAB_00095a84;" if (parenthesized_expression "(zErrmsg == (char *)0x0)" ( (binary_expression "zErrmsg == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7044,zFile)" ( identifier , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7044" identifier + number_literal) , identifier ))) ;) (expression_statement "(*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg);" (call_expression "(*psVar11->xDlError)(psVar11,local_34 + 299,zErrmsg)" (parenthesized_expression "(*psVar11->xDlError)" ( (pointer_expression "*psVar11->xDlError" * (field_expression "psVar11->xDlError" identifier -> field_identifier)) )) (argument_list "(psVar11,local_34 + 299,zErrmsg)" ( identifier , (binary_expression "local_34 + 299" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_00095a88;" goto statement_identifier ;) })) })) (expression_statement "p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);" (assignment_expression "p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5)" identifier = (call_expression "(*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5)" (parenthesized_expression "(*psVar11->xDlSym)" ( (pointer_expression "*psVar11->xDlSym" * (field_expression "psVar11->xDlSym" identifier -> field_identifier)) )) (argument_list "(psVar11,unaff_s3,unaff_s5)" ( identifier , identifier , identifier )))) ;) (if_statement "if (p_Var6 != (_func_void *)0x0) {\n    unaff_s5 = (char *)0x0;\n    goto LAB_000959fc;\n  }" if (parenthesized_expression "(p_Var6 != (_func_void *)0x0)" ( (binary_expression "p_Var6 != (_func_void *)0x0" identifier != (cast_expression "(_func_void *)0x0" ( (type_descriptor "_func_void *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (char *)0x0;\n    goto LAB_000959fc;\n  }" { (expression_statement "unaff_s5 = (char *)0x0;" (assignment_expression "unaff_s5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000959fc;" goto statement_identifier ;) })) (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (zProc != (char *)0x0) goto LAB_00095b60;" if (parenthesized_expression "(zProc != (char *)0x0)" ( (binary_expression "zProc != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00095b60;" goto statement_identifier ;)) (if_statement "if (zFile == (char *)0x0) {\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    uVar12 = uVar12 & 0x3fffffff;\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }\n  }" if (parenthesized_expression "(zFile == (char *)0x0)" ( (binary_expression "zFile == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }\n  }" { (expression_statement "unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);" (assignment_expression "unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" identifier = (cast_expression "(char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x1e)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s5 != (char *)0x0) {\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }" if (parenthesized_expression "(unaff_s5 != (char *)0x0)" ( (binary_expression "unaff_s5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar5 = (char *)0x0;\n      uVar12 = 0;\n      uVar13 = 0xffffffff;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      goto LAB_00095d98;\n    }" { (expression_statement "pcVar5 = (char *)0x0;" (assignment_expression "pcVar5 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*(undefined4 *)unaff_s5" * (cast_expression "(undefined4 *)unaff_s5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_s5 + 4) = uVar8;" (assignment_expression "*(undefined4 *)(unaff_s5 + 4) = uVar8" (pointer_expression "*(undefined4 *)(unaff_s5 + 4)" * (cast_expression "(undefined4 *)(unaff_s5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 4)" ( (binary_expression "unaff_s5 + 4" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    uVar12 = uVar12 & 0x3fffffff;\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }\n  }" else (compound_statement "{\n    uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);\n    uVar12 = uVar12 & 0x3fffffff;\n    unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);\n    if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }\n  }" { (expression_statement "uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile);" (assignment_expression "uVar12 = (*(code *)PTR_strlen_0015c9c8)(zFile)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(zFile)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(zFile)" ( identifier )))) ;) (expression_statement "uVar12 = uVar12 & 0x3fffffff;" (assignment_expression "uVar12 = uVar12 & 0x3fffffff" identifier = (binary_expression "uVar12 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e);" (assignment_expression "unaff_s5 = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e)" identifier = (cast_expression "(char *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar12 + 0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,uVar12 + 0x1e)" ( number_literal , (binary_expression "uVar12 + 0x1e" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s5 != (char *)0x0) {\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }" if (parenthesized_expression "(unaff_s5 != (char *)0x0)" ( (binary_expression "unaff_s5 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar13 = uVar12 - 1;\n      uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      *(undefined4 *)(unaff_s5 + 4) = uVar8;\n      if (uVar12 == 0) goto LAB_00095f14;\n      if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }\n      pcVar5 = zFile + uVar12;\n      goto LAB_00095d98;\n    }" { (expression_statement "uVar13 = uVar12 - 1;" (assignment_expression "uVar13 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (expression_statement "uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*(undefined4 *)unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*(undefined4 *)unaff_s5" * (cast_expression "(undefined4 *)unaff_s5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(unaff_s5 + 4) = uVar8;" (assignment_expression "*(undefined4 *)(unaff_s5 + 4) = uVar8" (pointer_expression "*(undefined4 *)(unaff_s5 + 4)" * (cast_expression "(undefined4 *)(unaff_s5 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(unaff_s5 + 4)" ( (binary_expression "unaff_s5 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if (uVar12 == 0) goto LAB_00095f14;" if (parenthesized_expression "(uVar12 == 0)" ( (binary_expression "uVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095f14;" goto statement_identifier ;)) (if_statement "if (zFile[uVar13] != '/') {\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }" if (parenthesized_expression "(zFile[uVar13] != '/')" ( (binary_expression "zFile[uVar13] != '/'" (subscript_expression "zFile[uVar13]" identifier [ identifier ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n        while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }\n        uVar12 = 0;\n        pcVar5 = zFile;\n        goto LAB_00095d98;\n      }" { (while_statement "while( true ) {\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar12 = uVar13;\n          uVar13 = uVar12 - 1;\n          if (uVar13 == 0xffffffff) break;\n          pcVar5 = zFile + uVar12;\n          if (zFile[uVar13] == '/') goto LAB_00095d98;\n        }" { (expression_statement "uVar12 = uVar13;" (assignment_expression "uVar12 = uVar13" identifier = identifier) ;) (expression_statement "uVar13 = uVar12 - 1;" (assignment_expression "uVar13 = uVar12 - 1" identifier = (binary_expression "uVar12 - 1" identifier - number_literal)) ;) (if_statement "if (uVar13 == 0xffffffff) break;" if (parenthesized_expression "(uVar13 == 0xffffffff)" ( (binary_expression "uVar13 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar5 = zFile + uVar12;" (assignment_expression "pcVar5 = zFile + uVar12" identifier = (binary_expression "zFile + uVar12" identifier + identifier)) ;) (if_statement "if (zFile[uVar13] == '/') goto LAB_00095d98;" if (parenthesized_expression "(zFile[uVar13] == '/')" ( (binary_expression "zFile[uVar13] == '/'" (subscript_expression "zFile[uVar13]" identifier [ identifier ]) == (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;)) })) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = zFile;" (assignment_expression "pcVar5 = zFile" identifier = identifier) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) (expression_statement "pcVar5 = zFile + uVar12;" (assignment_expression "pcVar5 = zFile + uVar12" identifier = (binary_expression "zFile + uVar12" identifier + identifier)) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) }))) (expression_statement "(*psVar11->xDlClose)(psVar11,unaff_s3);" (call_expression "(*psVar11->xDlClose)(psVar11,unaff_s3)" (parenthesized_expression "(*psVar11->xDlClose)" ( (pointer_expression "*psVar11->xDlClose" * (field_expression "psVar11->xDlClose" identifier -> field_identifier)) )) (argument_list "(psVar11,unaff_s3)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00095ea8:\n  do {\n    uVar12 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    uVar12 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }\n  } while( true );" do (compound_statement "{\n    uVar12 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }\n  }" { (expression_statement "uVar12 = 7;" (assignment_expression "uVar12 = 7" identifier = number_literal) ;) (labeled_statement "LAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }" statement_identifier : (while_statement "while( true ) {\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }\n      psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);\n      if (psVar11 == (sqlite3_vfs *)0x0) break;\n      ppvVar10 = db->aExtension;\n      if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }\n      if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }\n      db->aExtension = (void **)psVar11;\n      psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);\n      db->nExtension = db->nExtension + 1;\n      psVar11->iVersion = (int)unaff_s3;\n      uVar12 = 0;\n    }" { (while_statement "while( true ) {\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar7 == 0) break;\n        uVar12 = 0;\n        if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }\n      }" { (while_statement "while( true ) {\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);\n          if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar13 = 0xffffffff;\n          uVar12 = 0;\n          pcVar5 = zFile;\nLAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }\n          uVar13 = (uint)*pcVar5;\n          pcVar5 = unaff_s5 + 8;\n          if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }\n          cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          pcVar5[4] = cVar1;\n          pcVar5[5] = cVar2;\n          p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);\n          pcVar5 = unaff_s5;\n          if (p_Var6 != (_func_void *)0x0) break;\nLAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }\n          uVar12 = 1;\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);\n        }" { (if_statement "if (db->mallocFailed == '\0') {\n            zFile = (char *)(uVar12 & db->errMask);\n          }\n          else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }" if (parenthesized_expression "(db->mallocFailed == '\0')" ( (binary_expression "db->mallocFailed == '\0'" (field_expression "db->mallocFailed" identifier -> field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            zFile = (char *)(uVar12 & db->errMask);\n          }" { (expression_statement "zFile = (char *)(uVar12 & db->errMask);" (assignment_expression "zFile = (char *)(uVar12 & db->errMask)" identifier = (cast_expression "(char *)(uVar12 & db->errMask)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar12 & db->errMask)" ( (binary_expression "uVar12 & db->errMask" identifier & (field_expression "db->errMask" identifier -> field_identifier)) )))) ;) }) (else_clause "else {\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }" else (compound_statement "{\n            zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);\n          }" { (expression_statement "zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db);" (assignment_expression "zFile = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db)" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" * (cast_expression "(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6c4 + 0x7eb8)" ( (binary_expression "PTR_LAB_0015c6c4 + 0x7eb8" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) }))) (expression_statement "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);" (call_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex)" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)" ( (pointer_expression "*(code *)PTR_sqlite3_mutex_leave_0015c6b8" * (cast_expression "(code *)PTR_sqlite3_mutex_leave_0015c6b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(db->mutex)" ( (field_expression "db->mutex" identifier -> field_identifier) ))) ;) (if_statement "if (local_2c == *(int *)puVar4) {\n            return (int)zFile;\n          }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n            return (int)zFile;\n          }" { (return_statement "return (int)zFile;" return (cast_expression "(int)zFile" ( (type_descriptor "int" primitive_type) ) identifier) ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00095f14:\n          uVar13 = 0xffffffff;" statement_identifier : (expression_statement "uVar13 = 0xffffffff;" (assignment_expression "uVar13 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "pcVar5 = zFile;" (assignment_expression "pcVar5 = zFile" identifier = identifier) ;) (labeled_statement "LAB_00095d98:\n          iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);" statement_identifier : (expression_statement "iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3);" (assignment_expression "iVar7 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3)" identifier = (call_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3)" (parenthesized_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)" ( (pointer_expression "*(code *)PTR_sqlite3_strnicmp_0015c70c" * (cast_expression "(code *)PTR_sqlite3_strnicmp_0015c70c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5,PTR_LAB_0015c5e8 + 0x7070,3)" ( identifier , (binary_expression "PTR_LAB_0015c5e8 + 0x7070" identifier + number_literal) , number_literal )))) ;)) (expression_statement "puVar3 = PTR_DAT_0015c698;" (assignment_expression "puVar3 = PTR_DAT_0015c698" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar12 = uVar13 + 4;\n            pcVar5 = zFile + uVar12;\n          }" { (expression_statement "uVar12 = uVar13 + 4;" (assignment_expression "uVar12 = uVar13 + 4" identifier = (binary_expression "uVar13 + 4" identifier + number_literal)) ;) (expression_statement "pcVar5 = zFile + uVar12;" (assignment_expression "pcVar5 = zFile + uVar12" identifier = (binary_expression "zFile + uVar12" identifier + identifier)) ;) })) (expression_statement "uVar13 = (uint)*pcVar5;" (assignment_expression "uVar13 = (uint)*pcVar5" identifier = (binary_expression "(uint)*pcVar5" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "pcVar5 = unaff_s5 + 8;" (assignment_expression "pcVar5 = unaff_s5 + 8" identifier = (binary_expression "unaff_s5 + 8" identifier + number_literal)) ;) (if_statement "if ((uVar13 != 0) && (uVar13 != 0x2e)) {\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }" if (parenthesized_expression "((uVar13 != 0) && (uVar13 != 0x2e))" ( (binary_expression "(uVar13 != 0) && (uVar13 != 0x2e)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar13 != 0x2e)" ( (binary_expression "uVar13 != 0x2e" identifier != number_literal) ))) )) (compound_statement "{\n            iVar7 = 8;\n            pcVar9 = zFile + uVar12 + 1;\n            do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));\n          }" { (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "pcVar9 = zFile + uVar12 + 1;" (assignment_expression "pcVar9 = zFile + uVar12 + 1" identifier = (binary_expression "zFile + uVar12 + 1" (binary_expression "zFile + uVar12" identifier + identifier) + number_literal)) ;) (do_statement "do {\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            } while ((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e));" do (compound_statement "{\n              if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }\n              uVar13 = (uint)*pcVar9;\n            }" { (if_statement "if ((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }" if (parenthesized_expression "((puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0)" ( (binary_expression "(puVar3[(uVar13 & 0xff) - 0x71f8] & 2) != 0" (parenthesized_expression "(puVar3[(uVar13 & 0xff) - 0x71f8] & 2)" ( (binary_expression "puVar3[(uVar13 & 0xff) - 0x71f8] & 2" (subscript_expression "puVar3[(uVar13 & 0xff) - 0x71f8]" identifier [ (binary_expression "(uVar13 & 0xff) - 0x71f8" (parenthesized_expression "(uVar13 & 0xff)" ( (binary_expression "uVar13 & 0xff" identifier & number_literal) )) - number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar7 = iVar7 + 1;\n                *pcVar5 = puVar3[uVar13 - 0x70f8];\n                pcVar5 = unaff_s5 + iVar7;\n              }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "*pcVar5 = puVar3[uVar13 - 0x70f8];" (assignment_expression "*pcVar5 = puVar3[uVar13 - 0x70f8]" (pointer_expression "*pcVar5" * identifier) = (subscript_expression "puVar3[uVar13 - 0x70f8]" identifier [ (binary_expression "uVar13 - 0x70f8" identifier - number_literal) ])) ;) (expression_statement "pcVar5 = unaff_s5 + iVar7;" (assignment_expression "pcVar5 = unaff_s5 + iVar7" identifier = (binary_expression "unaff_s5 + iVar7" identifier + identifier)) ;) })) (expression_statement "uVar13 = (uint)*pcVar9;" (assignment_expression "uVar13 = (uint)*pcVar9" identifier = (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e))" ( (binary_expression "(uVar13 != 0) && (pcVar9 = pcVar9 + 1, uVar13 != 0x2e)" (parenthesized_expression "(uVar13 != 0)" ( (binary_expression "uVar13 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar9 = pcVar9 + 1, uVar13 != 0x2e)" ( (comma_expression "pcVar9 = pcVar9 + 1, uVar13 != 0x2e" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) , (binary_expression "uVar13 != 0x2e" identifier != number_literal)) ))) )) ;) })) (expression_statement "cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];" (assignment_expression "cVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114]" identifier = (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x114]" identifier [ number_literal ])) ;) (expression_statement "cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];" (assignment_expression "cVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113]" identifier = (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x113]" identifier [ number_literal ])) ;) (expression_statement "*(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);" (assignment_expression "*(undefined4 *)pcVar5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (pointer_expression "*(undefined4 *)pcVar5" * (cast_expression "(undefined4 *)pcVar5" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x118)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x118" identifier + number_literal) ))))) ;) (expression_statement "pcVar5[4] = cVar1;" (assignment_expression "pcVar5[4] = cVar1" (subscript_expression "pcVar5[4]" identifier [ number_literal ]) = identifier) ;) (expression_statement "pcVar5[5] = cVar2;" (assignment_expression "pcVar5[5] = cVar2" (subscript_expression "pcVar5[5]" identifier [ number_literal ]) = identifier) ;) (expression_statement "p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5);" (assignment_expression "p_Var6 = (*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5)" identifier = (call_expression "(*psVar11->xDlSym)(psVar11,unaff_s3,unaff_s5)" (parenthesized_expression "(*psVar11->xDlSym)" ( (pointer_expression "*psVar11->xDlSym" * (field_expression "psVar11->xDlSym" identifier -> field_identifier)) )) (argument_list "(psVar11,unaff_s3,unaff_s5)" ( identifier , identifier , identifier )))) ;) (expression_statement "pcVar5 = unaff_s5;" (assignment_expression "pcVar5 = unaff_s5" identifier = identifier) ;) (if_statement "if (p_Var6 != (_func_void *)0x0) break;" if (parenthesized_expression "(p_Var6 != (_func_void *)0x0)" ( (binary_expression "p_Var6 != (_func_void *)0x0" identifier != (cast_expression "(_func_void *)0x0" ( (type_descriptor "_func_void *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00095b60:\n          if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }" statement_identifier : (if_statement "if (pzErrMsg != (char **)0x0) {\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }" if (parenthesized_expression "(pzErrMsg != (char **)0x0)" ( (binary_expression "pzErrMsg != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar13 = (uVar12 & 0x3fffffff) + local_38;\n            zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);\n            *pzErrMsg = zErrmsg;\n            if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }\n          }" { (expression_statement "uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);" (assignment_expression "uVar12 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "uVar13 = (uVar12 & 0x3fffffff) + local_38;" (assignment_expression "uVar13 = (uVar12 & 0x3fffffff) + local_38" identifier = (binary_expression "(uVar12 & 0x3fffffff) + local_38" (parenthesized_expression "(uVar12 & 0x3fffffff)" ( (binary_expression "uVar12 & 0x3fffffff" identifier & number_literal) )) + identifier)) ;) (expression_statement "zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13);" (assignment_expression "zErrmsg = (char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13)" identifier = (cast_expression "(char *)(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                        (uVar13 < (uVar12 & 0x3fffffff),uVar13)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar13 < (uVar12 & 0x3fffffff),uVar13)" ( (binary_expression "uVar13 < (uVar12 & 0x3fffffff)" identifier < (parenthesized_expression "(uVar12 & 0x3fffffff)" ( (binary_expression "uVar12 & 0x3fffffff" identifier & number_literal) ))) , identifier ))))) ;) (expression_statement "*pzErrMsg = zErrmsg;" (assignment_expression "*pzErrMsg = zErrmsg" (pointer_expression "*pzErrMsg" * identifier) = identifier) ;) (if_statement "if (zErrmsg != (char *)0x0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }" if (parenthesized_expression "(zErrmsg != (char *)0x0)" ( (binary_expression "zErrmsg != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);\n              (*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);\n            }" { (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar13,zErrmsg,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,zFile)" ( identifier , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7014" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg);" (call_expression "(*psVar11->xDlError)(psVar11,uVar13 - 1,zErrmsg)" (parenthesized_expression "(*psVar11->xDlError)" ( (pointer_expression "*psVar11->xDlError" * (field_expression "psVar11->xDlError" identifier -> field_identifier)) )) (argument_list "(psVar11,uVar13 - 1,zErrmsg)" ( identifier , (binary_expression "uVar13 - 1" identifier - number_literal) , identifier ))) ;) })) }))) (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;) (expression_statement "(*psVar11->xDlClose)(psVar11,unaff_s3);" (call_expression "(*psVar11->xDlClose)(psVar11,unaff_s3)" (parenthesized_expression "(*psVar11->xDlClose)" ( (pointer_expression "*psVar11->xDlClose" * (field_expression "psVar11->xDlClose" identifier -> field_identifier)) )) (argument_list "(psVar11,unaff_s3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(pcVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar5)" ( identifier ))) ;) })) (labeled_statement "LAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8);" (assignment_expression "iVar7 = (*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8)" identifier = (call_expression "(*p_Var6)(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8)" (parenthesized_expression "(*p_Var6)" ( (pointer_expression "*p_Var6" * identifier) )) (argument_list "(db,&zErrmsg,PTR_DAT_0015c5d8 + -0x53c8)" ( identifier , (pointer_expression "&zErrmsg" & identifier) , (binary_expression "PTR_DAT_0015c5d8 + -0x53c8" identifier + number_literal) )))) ;) (if_statement "if (iVar7 == 0) break;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if (iVar7 != 0x100) {\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }" if (parenthesized_expression "(iVar7 != 0x100)" ( (binary_expression "iVar7 != 0x100" identifier != number_literal) )) (compound_statement "{\n          if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);\n          (*psVar11->xDlClose)(psVar11,unaff_s3);\nLAB_00095a84:\n          uVar12 = 1;\n        }" { (if_statement "if (pzErrMsg != (char **)0x0) {\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }" if (parenthesized_expression "(pzErrMsg != (char **)0x0)" ( (binary_expression "pzErrMsg != (char **)0x0" identifier != (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n            pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);\n            *pzErrMsg = pcVar5;\n          }" { (expression_statement "pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg);" (assignment_expression "pcVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg)" identifier = (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg)" identifier (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,zErrmsg)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x6fe8" identifier + number_literal) , identifier )))) ;) (expression_statement "*pzErrMsg = pcVar5;" (assignment_expression "*pzErrMsg = pcVar5" (pointer_expression "*pzErrMsg" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(zErrmsg)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(zErrmsg)" ( identifier ))) ;) (expression_statement "(*psVar11->xDlClose)(psVar11,unaff_s3);" (call_expression "(*psVar11->xDlClose)(psVar11,unaff_s3)" (parenthesized_expression "(*psVar11->xDlClose)" ( (pointer_expression "*psVar11->xDlClose" * (field_expression "psVar11->xDlClose" identifier -> field_identifier)) )) (argument_list "(psVar11,unaff_s3)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00095a84:\n          uVar12 = 1;" statement_identifier : (expression_statement "uVar12 = 1;" (assignment_expression "uVar12 = 1" identifier = number_literal) ;)) })) })) (expression_statement "psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db);" (assignment_expression "psVar11 = (sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db)" identifier = (cast_expression "(sqlite3_vfs *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db)" ( (type_descriptor "sqlite3_vfs *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x2110)" * (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x2110)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6dc + -0x2110)" ( (binary_expression "PTR_LAB_0015c6dc + -0x2110" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))))) ;) (if_statement "if (psVar11 == (sqlite3_vfs *)0x0) break;" if (parenthesized_expression "(psVar11 == (sqlite3_vfs *)0x0)" ( (binary_expression "psVar11 == (sqlite3_vfs *)0x0" identifier == (cast_expression "(sqlite3_vfs *)0x0" ( (type_descriptor "sqlite3_vfs *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "ppvVar10 = db->aExtension;" (assignment_expression "ppvVar10 = db->aExtension" identifier = (field_expression "db->aExtension" identifier -> field_identifier)) ;) (if_statement "if (0 < db->nExtension) {\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }" if (parenthesized_expression "(0 < db->nExtension)" ( (binary_expression "0 < db->nExtension" number_literal < (field_expression "db->nExtension" identifier -> field_identifier)) )) (compound_statement "{\n        (*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);\n        ppvVar10 = db->aExtension;\n      }" { (expression_statement "(*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(psVar11,ppvVar10,db->nExtension << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" ( (pointer_expression "*(code *)PTR_memcpy_0015ca34" * (cast_expression "(code *)PTR_memcpy_0015ca34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(psVar11,ppvVar10,db->nExtension << 2)" ( identifier , identifier , (binary_expression "db->nExtension << 2" (field_expression "db->nExtension" identifier -> field_identifier) << number_literal) ))) ;) (expression_statement "ppvVar10 = db->aExtension;" (assignment_expression "ppvVar10 = db->aExtension" identifier = (field_expression "db->aExtension" identifier -> field_identifier)) ;) })) (if_statement "if (ppvVar10 != (void **)0x0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }" if (parenthesized_expression "(ppvVar10 != (void **)0x0)" ( (binary_expression "ppvVar10 != (void **)0x0" identifier != (cast_expression "(void **)0x0" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);\n      }" { (expression_statement "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db);" (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(db)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x4dac)" * (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x4dac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6dc + -0x4dac)" ( (binary_expression "PTR_LAB_0015c6dc + -0x4dac" identifier + number_literal) )))) )) (argument_list "(db)" ( identifier ))) ;) })) (expression_statement "db->aExtension = (void **)psVar11;" (assignment_expression "db->aExtension = (void **)psVar11" (field_expression "db->aExtension" identifier -> field_identifier) = (cast_expression "(void **)psVar11" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension);" (assignment_expression "psVar11 = (sqlite3_vfs *)(&psVar11->iVersion + db->nExtension)" identifier = (cast_expression "(sqlite3_vfs *)(&psVar11->iVersion + db->nExtension)" ( (type_descriptor "sqlite3_vfs *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&psVar11->iVersion + db->nExtension)" ( (binary_expression "&psVar11->iVersion + db->nExtension" (pointer_expression "&psVar11->iVersion" & (field_expression "psVar11->iVersion" identifier -> field_identifier)) + (field_expression "db->nExtension" identifier -> field_identifier)) )))) ;) (expression_statement "db->nExtension = db->nExtension + 1;" (assignment_expression "db->nExtension = db->nExtension + 1" (field_expression "db->nExtension" identifier -> field_identifier) = (binary_expression "db->nExtension + 1" (field_expression "db->nExtension" identifier -> field_identifier) + number_literal)) ;) (expression_statement "psVar11->iVersion = (int)unaff_s3;" (assignment_expression "psVar11->iVersion = (int)unaff_s3" (field_expression "psVar11->iVersion" identifier -> field_identifier) = (cast_expression "(int)unaff_s3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit "char * sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}\n\n" (function_definition "char * sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}" primitive_type (pointer_declarator "* sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" * (function_declarator "sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" identifier (parameter_list "(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "char *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int *param_4" primitive_type (pointer_declarator "*param_4" * identifier)) )))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}" { (declaration "undefined1 uVar1;" type_identifier identifier ;) (declaration "undefined1 uVar2;" type_identifier 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 "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "undefined4 uVar7;" type_identifier identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "char *pcVar9;" primitive_type (pointer_declarator "*pcVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "uint uVar11;" type_identifier identifier ;) (declaration "int unaff_s3;" primitive_type identifier ;) (declaration "undefined4 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "uint local_34;" type_identifier identifier ;) (declaration "int local_30;" primitive_type identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);" (call_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3])" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)" ( (pointer_expression "*(code *)PTR_sqlite3_mutex_enter_0015c6b4" * (cast_expression "(code *)PTR_sqlite3_mutex_enter_0015c6b4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) (expression_statement "piVar10 = (int *)*param_1;" (assignment_expression "piVar10 = (int *)*param_1" identifier = (cast_expression "(int *)*param_1" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_1" * identifier))) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (if_statement "if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    local_34 = 0;\n    local_38 = 300;\n  }" { (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_38 = 300;" (assignment_expression "local_38 = 300" identifier = number_literal) ;) }) (else_clause "else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" else (compound_statement "{\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" { (expression_statement "local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "local_34 = local_34 & 0x3fffffff;" (assignment_expression "local_34 = local_34 & 0x3fffffff" identifier = (binary_expression "local_34 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "local_38 = local_34 + 300;" (assignment_expression "local_38 = local_34 + 300" identifier = (binary_expression "local_34 + 300" identifier + number_literal)) ;) }))) (if_statement "if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }" { (if_statement "if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;" if (parenthesized_expression "(-1 < (int)(param_1[9] << 0xf))" ( (binary_expression "-1 < (int)(param_1[9] << 0xf)" number_literal < (cast_expression "(int)(param_1[9] << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1[9] << 0xf)" ( (binary_expression "param_1[9] << 0xf" (subscript_expression "param_1[9]" identifier [ number_literal ]) << number_literal) )))) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) }) (else_clause "else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" else (compound_statement "{\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" { (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" * identifier) = number_literal) ;) (if_statement "if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }" if (parenthesized_expression "(-1 < (int)(param_1[9] << 0xf))" ( (binary_expression "-1 < (int)(param_1[9] << 0xf)" number_literal < (cast_expression "(int)(param_1[9] << 0xf)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(param_1[9] << 0xf)" ( (binary_expression "param_1[9] << 0xf" (subscript_expression "param_1[9]" identifier [ number_literal ]) << number_literal) )))) )) (compound_statement "{\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }" { (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" identifier = (call_expression "sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" identifier (argument_list "(PTR_LAB_0015c5e8 + 0x7e54)" ( (binary_expression "PTR_LAB_0015c5e8 + 0x7e54" identifier + number_literal) )))) ;) (expression_statement "*param_4 = iVar5;" (assignment_expression "*param_4 = iVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) (goto_statement "goto LAB_00095a88;" goto statement_identifier ;) })) }))) (expression_statement "unaff_s5 = param_3;" (assignment_expression "unaff_s5 = param_3" identifier = identifier) ;) (if_statement "if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }" if (parenthesized_expression "(param_3 == (undefined4 *)0x0)" ( (binary_expression "param_3 == (undefined4 *)0x0" identifier == (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }" { (expression_statement "unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);" (assignment_expression "unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" identifier = (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7060" identifier + number_literal) )))) ;) })) (expression_statement "unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);" (assignment_expression "unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2)" identifier = (call_expression "(*(code *)piVar10[10])(piVar10,param_2)" (parenthesized_expression "(*(code *)piVar10[10])" ( (pointer_expression "*(code *)piVar10[10]" * (cast_expression "(code *)piVar10[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[10]" identifier [ number_literal ]))) )) (argument_list "(piVar10,param_2)" ( identifier , identifier )))) ;) (if_statement "if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }" { (expression_statement "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" identifier = (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" identifier (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x1e6c" identifier + number_literal) , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7048" identifier + number_literal) )))) ;) (expression_statement "unaff_s3 = iVar5;" (assignment_expression "unaff_s3 = iVar5" identifier = identifier) ;) (if_statement "if (iVar5 == 0) goto LAB_00095ea8;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095ea8;" goto statement_identifier ;)) (expression_statement "unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);" (assignment_expression "unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5)" identifier = (call_expression "(*(code *)piVar10[10])(piVar10,iVar5)" (parenthesized_expression "(*(code *)piVar10[10])" ( (pointer_expression "*(code *)piVar10[10]" * (cast_expression "(code *)piVar10[10]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[10]" identifier [ number_literal ]))) )) (argument_list "(piVar10,iVar5)" ( identifier , identifier )))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(iVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar5)" ( identifier ))) ;) (if_statement "if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }" if (parenthesized_expression "(unaff_s3 == 0)" ( (binary_expression "unaff_s3 == 0" identifier == number_literal) )) (compound_statement "{\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }" { (if_statement "if (param_4 == (int *)0x0) goto LAB_00095a84;" if (parenthesized_expression "(param_4 == (int *)0x0)" ( (binary_expression "param_4 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) (expression_statement "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);" (assignment_expression "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,local_38)" ( number_literal , identifier )))) ;) (expression_statement "*param_4 = local_30;" (assignment_expression "*param_4 = local_30" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_30 == 0) goto LAB_00095a84;" if (parenthesized_expression "(local_30 == 0)" ( (binary_expression "local_30 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095a84;" goto statement_identifier ;)) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2)" ( identifier , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7044" identifier + number_literal) , identifier ))) ;) (expression_statement "(*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);" (call_expression "(*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30)" (parenthesized_expression "(*(code *)piVar10[0xb])" ( (pointer_expression "*(code *)piVar10[0xb]" * (cast_expression "(code *)piVar10[0xb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xb]" identifier [ number_literal ]))) )) (argument_list "(piVar10,local_34 + 299,local_30)" ( identifier , (binary_expression "local_34 + 299" identifier + number_literal) , identifier ))) ;) (goto_statement "goto LAB_00095a88;" goto statement_identifier ;) })) })) (expression_statement "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);" (assignment_expression "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" identifier = (cast_expression "(code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (parenthesized_expression "(*(code *)piVar10[0xc])" ( (pointer_expression "*(code *)piVar10[0xc]" * (cast_expression "(code *)piVar10[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xc]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3,unaff_s5)" ( identifier , identifier , identifier ))))) ;) (if_statement "if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }" if (parenthesized_expression "(pcVar6 != (code *)0x0)" ( (binary_expression "pcVar6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }" { (expression_statement "unaff_s5 = (undefined4 *)0x0;" (assignment_expression "unaff_s5 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_000959fc;" goto statement_identifier ;) })) (expression_statement "puVar8 = (undefined4 *)0x0;" (assignment_expression "puVar8 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;" if (parenthesized_expression "(param_3 != (undefined4 *)0x0)" ( (binary_expression "param_3 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00095b60;" goto statement_identifier ;)) (if_statement "if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" if (parenthesized_expression "(param_2 == (char *)0x0)" ( (binary_expression "param_2 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }" { (expression_statement "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);" (assignment_expression "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,0x1e)" ( number_literal , number_literal ))))) ;) (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }" if (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" ( (binary_expression "unaff_s5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }" { (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (expression_statement "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" identifier + number_literal) ))))) ;) (expression_statement "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*unaff_s5" * identifier) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5[1] = uVar7;" (assignment_expression "unaff_s5[1] = uVar7" (subscript_expression "unaff_s5[1]" identifier [ number_literal ]) = identifier) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) }) (else_clause "else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" else (compound_statement "{\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" { (expression_statement "uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_2)" ( identifier )))) ;) (expression_statement "uVar11 = uVar11 & 0x3fffffff;" (assignment_expression "uVar11 = uVar11 & 0x3fffffff" identifier = (binary_expression "uVar11 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);" (assignment_expression "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" identifier = (cast_expression "(undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(0,uVar11 + 0x1e)" ( number_literal , (binary_expression "uVar11 + 0x1e" identifier + number_literal) ))))) ;) (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }" if (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" ( (binary_expression "unaff_s5 != (undefined4 *)0x0" identifier != (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }" { (expression_statement "uVar12 = uVar11 - 1;" (assignment_expression "uVar12 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (expression_statement "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" identifier = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" identifier + number_literal) ))))) ;) (expression_statement "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*unaff_s5" * identifier) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" identifier + number_literal) ))))) ;) (expression_statement "unaff_s5[1] = uVar7;" (assignment_expression "unaff_s5[1] = uVar7" (subscript_expression "unaff_s5[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (uVar11 == 0) goto LAB_00095f14;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00095f14;" goto statement_identifier ;)) (if_statement "if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }" if (parenthesized_expression "(param_2[uVar12] != '/')" ( (binary_expression "param_2[uVar12] != '/'" (subscript_expression "param_2[uVar12]" identifier [ identifier ]) != (char_literal "'/'" ' character ')) )) (compound_statement "{\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }" { (while_statement "while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }" { (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" identifier = identifier) ;) (expression_statement "uVar12 = uVar11 - 1;" (assignment_expression "uVar12 = uVar11 - 1" identifier = (binary_expression "uVar11 - 1" identifier - number_literal)) ;) (if_statement "if (uVar12 == 0xffffffff) break;" if (parenthesized_expression "(uVar12 == 0xffffffff)" ( (binary_expression "uVar12 == 0xffffffff" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" identifier = (binary_expression "param_2 + uVar11" identifier + identifier)) ;) (if_statement "if (param_2[uVar12] == '/') goto LAB_00095d98;" if (parenthesized_expression "(param_2[uVar12] == '/')" ( (binary_expression "param_2[uVar12] == '/'" (subscript_expression "param_2[uVar12]" identifier [ identifier ]) == (char_literal "'/'" ' character ')) )) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;)) })) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = param_2;" (assignment_expression "pcVar9 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" identifier = (binary_expression "param_2 + uVar11" identifier + identifier)) ;) (goto_statement "goto LAB_00095d98;" goto statement_identifier ;) })) }))) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" ( (pointer_expression "*(code *)piVar10[0xd]" * (cast_expression "(code *)piVar10[0xd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xd]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );" statement_identifier : (do_statement "do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );" do (compound_statement "{\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  }" { (expression_statement "uVar11 = 7;" (assignment_expression "uVar11 = 7" identifier = number_literal) ;) (labeled_statement "LAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" statement_identifier : (while_statement "while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" { (while_statement "while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }" { (while_statement "while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }" { (if_statement "if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" if (parenthesized_expression "(*(char *)((int)param_1 + 0x51) == '\0')" ( (binary_expression "*(char *)((int)param_1 + 0x51) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x51)" * (cast_expression "(char *)((int)param_1 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_1 + 0x51)" ( (binary_expression "(int)param_1 + 0x51" (cast_expression "(int)param_1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }" { (expression_statement "param_2 = (char *)(uVar11 & param_1[0x11]);" (assignment_expression "param_2 = (char *)(uVar11 & param_1[0x11])" identifier = (cast_expression "(char *)(uVar11 & param_1[0x11])" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 & param_1[0x11])" ( (binary_expression "uVar11 & param_1[0x11]" identifier & (subscript_expression "param_1[0x11]" identifier [ number_literal ])) )))) ;) }) (else_clause "else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" else (compound_statement "{\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" { (expression_statement "param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);" (assignment_expression "param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" identifier = (cast_expression "(char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" * (cast_expression "(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6c4 + 0x7eb8)" ( (binary_expression "PTR_LAB_0015c6c4 + 0x7eb8" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) }))) (expression_statement "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);" (call_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3])" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)" ( (pointer_expression "*(code *)PTR_sqlite3_mutex_leave_0015c6b8" * (cast_expression "(code *)PTR_sqlite3_mutex_leave_0015c6b8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[3])" ( (subscript_expression "param_1[3]" identifier [ number_literal ]) ))) ;) (if_statement "if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }" if (parenthesized_expression "(local_2c == *(int *)puVar4)" ( (binary_expression "local_2c == *(int *)puVar4" identifier == (pointer_expression "*(int *)puVar4" * (cast_expression "(int *)puVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n            return param_2;\n          }" { (return_statement "return param_2;" return identifier ;) })) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (labeled_statement "LAB_00095f14:\n          uVar12 = 0xffffffff;" statement_identifier : (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "pcVar9 = param_2;" (assignment_expression "pcVar9 = param_2" identifier = identifier) ;) (labeled_statement "LAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);" statement_identifier : (expression_statement "iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" identifier = (call_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" (parenthesized_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)" ( (pointer_expression "*(code *)PTR_sqlite3_strnicmp_0015c70c" * (cast_expression "(code *)PTR_sqlite3_strnicmp_0015c70c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" ( identifier , (binary_expression "PTR_LAB_0015c5e8 + 0x7070" identifier + number_literal) , number_literal )))) ;)) (expression_statement "puVar3 = PTR_DAT_0015c698;" (assignment_expression "puVar3 = PTR_DAT_0015c698" identifier = identifier) ;) (if_statement "if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }" { (expression_statement "uVar11 = uVar12 + 4;" (assignment_expression "uVar11 = uVar12 + 4" identifier = (binary_expression "uVar12 + 4" identifier + number_literal)) ;) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" identifier = (binary_expression "param_2 + uVar11" identifier + identifier)) ;) })) (expression_statement "uVar12 = (uint)*pcVar9;" (assignment_expression "uVar12 = (uint)*pcVar9" identifier = (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) (expression_statement "puVar8 = unaff_s5 + 2;" (assignment_expression "puVar8 = unaff_s5 + 2" identifier = (binary_expression "unaff_s5 + 2" identifier + number_literal)) ;) (if_statement "if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }" if (parenthesized_expression "((uVar12 != 0) && (uVar12 != 0x2e))" ( (binary_expression "(uVar12 != 0) && (uVar12 != 0x2e)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(uVar12 != 0x2e)" ( (binary_expression "uVar12 != 0x2e" identifier != number_literal) ))) )) (compound_statement "{\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }" { (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" identifier = number_literal) ;) (expression_statement "pcVar9 = param_2 + uVar11 + 1;" (assignment_expression "pcVar9 = param_2 + uVar11 + 1" identifier = (binary_expression "param_2 + uVar11 + 1" (binary_expression "param_2 + uVar11" identifier + identifier) + number_literal)) ;) (do_statement "do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));" do (compound_statement "{\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            }" { (if_statement "if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }" if (parenthesized_expression "((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0)" ( (binary_expression "(puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0" (parenthesized_expression "(puVar3[(uVar12 & 0xff) - 0x71f8] & 2)" ( (binary_expression "puVar3[(uVar12 & 0xff) - 0x71f8] & 2" (subscript_expression "puVar3[(uVar12 & 0xff) - 0x71f8]" identifier [ (binary_expression "(uVar12 & 0xff) - 0x71f8" (parenthesized_expression "(uVar12 & 0xff)" ( (binary_expression "uVar12 & 0xff" identifier & number_literal) )) - number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];" (assignment_expression "*(undefined *)puVar8 = puVar3[uVar12 - 0x70f8]" (pointer_expression "*(undefined *)puVar8" * (cast_expression "(undefined *)puVar8" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = (subscript_expression "puVar3[uVar12 - 0x70f8]" identifier [ (binary_expression "uVar12 - 0x70f8" identifier - number_literal) ])) ;) (expression_statement "puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);" (assignment_expression "puVar8 = (undefined4 *)((int)unaff_s5 + iVar5)" identifier = (cast_expression "(undefined4 *)((int)unaff_s5 + iVar5)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)unaff_s5 + iVar5)" ( (binary_expression "(int)unaff_s5 + iVar5" (cast_expression "(int)unaff_s5" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) })) (expression_statement "uVar12 = (uint)*pcVar9;" (assignment_expression "uVar12 = (uint)*pcVar9" identifier = (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ;) }) while (parenthesized_expression "((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e))" ( (binary_expression "(uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e)" (parenthesized_expression "(uVar12 != 0)" ( (binary_expression "uVar12 != 0" identifier != number_literal) )) && (parenthesized_expression "(pcVar9 = pcVar9 + 1, uVar12 != 0x2e)" ( (comma_expression "pcVar9 = pcVar9 + 1, uVar12 != 0x2e" (assignment_expression "pcVar9 = pcVar9 + 1" identifier = (binary_expression "pcVar9 + 1" identifier + number_literal)) , (binary_expression "uVar12 != 0x2e" identifier != number_literal)) ))) )) ;) })) (expression_statement "uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];" (assignment_expression "uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114]" identifier = (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x114]" identifier [ number_literal ])) ;) (expression_statement "uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];" (assignment_expression "uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113]" identifier = (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x113]" identifier [ number_literal ])) ;) (expression_statement "*puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);" (assignment_expression "*puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (pointer_expression "*puVar8" * identifier) = (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" * (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x118)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x118" identifier + number_literal) ))))) ;) (expression_statement "*(undefined1 *)(puVar8 + 1) = uVar1;" (assignment_expression "*(undefined1 *)(puVar8 + 1) = uVar1" (pointer_expression "*(undefined1 *)(puVar8 + 1)" * (cast_expression "(undefined1 *)(puVar8 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 1)" ( (binary_expression "puVar8 + 1" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)puVar8 + 5) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar8 + 5) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar8 + 5)" * (cast_expression "(undefined1 *)((int)puVar8 + 5)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)puVar8 + 5)" ( (binary_expression "(int)puVar8 + 5" (cast_expression "(int)puVar8" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = identifier) ;) (expression_statement "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);" (assignment_expression "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" identifier = (cast_expression "(code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (parenthesized_expression "(*(code *)piVar10[0xc])" ( (pointer_expression "*(code *)piVar10[0xc]" * (cast_expression "(code *)piVar10[0xc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xc]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3,unaff_s5)" ( identifier , identifier , identifier ))))) ;) (expression_statement "puVar8 = unaff_s5;" (assignment_expression "puVar8 = unaff_s5" identifier = identifier) ;) (if_statement "if (pcVar6 != (code *)0x0) break;" if (parenthesized_expression "(pcVar6 != (code *)0x0)" ( (binary_expression "pcVar6 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" statement_identifier : (if_statement "if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" { (expression_statement "uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);" (assignment_expression "uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5)" identifier = (call_expression "(*(code *)PTR_strlen_0015c9c8)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" ( (pointer_expression "*(code *)PTR_strlen_0015c9c8" * (cast_expression "(code *)PTR_strlen_0015c9c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier )))) ;) (expression_statement "uVar12 = (uVar11 & 0x3fffffff) + local_38;" (assignment_expression "uVar12 = (uVar11 & 0x3fffffff) + local_38" identifier = (binary_expression "(uVar11 & 0x3fffffff) + local_38" (parenthesized_expression "(uVar11 & 0x3fffffff)" ( (binary_expression "uVar11 & 0x3fffffff" identifier & number_literal) )) + identifier)) ;) (expression_statement "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);" (assignment_expression "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12)" identifier = (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" ( (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" * (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12 < (uVar11 & 0x3fffffff),uVar12)" ( (binary_expression "uVar12 < (uVar11 & 0x3fffffff)" identifier < (parenthesized_expression "(uVar11 & 0x3fffffff)" ( (binary_expression "uVar11 & 0x3fffffff" identifier & number_literal) ))) , identifier )))) ;) (expression_statement "*param_4 = local_30;" (assignment_expression "*param_4 = local_30" (pointer_expression "*param_4" * identifier) = identifier) ;) (if_statement "if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }" if (parenthesized_expression "(local_30 != 0)" ( (binary_expression "local_30 != 0" identifier != number_literal) )) (compound_statement "{\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }" { (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" ( (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" * (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2)" ( identifier , identifier , (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7014" identifier + number_literal) , identifier , identifier ))) ;) (expression_statement "(*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);" (call_expression "(*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30)" (parenthesized_expression "(*(code *)piVar10[0xb])" ( (pointer_expression "*(code *)piVar10[0xb]" * (cast_expression "(code *)piVar10[0xb]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xb]" identifier [ number_literal ]))) )) (argument_list "(piVar10,uVar12 - 1,local_30)" ( identifier , (binary_expression "uVar12 - 1" identifier - number_literal) , identifier ))) ;) })) }))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" ( (pointer_expression "*(code *)piVar10[0xd]" * (cast_expression "(code *)piVar10[0xd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xd]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3)" ( identifier , identifier ))) ;) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(puVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar8)" ( identifier ))) ;) })) (labeled_statement "LAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s5)" ( identifier ))) ;)) (expression_statement "iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);" (assignment_expression "iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" identifier = (call_expression "(*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" (parenthesized_expression "(*pcVar6)" ( (pointer_expression "*pcVar6" * identifier) )) (argument_list "(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" ( identifier , (pointer_expression "&local_30" & identifier) , (binary_expression "PTR_DAT_0015c5d8 + -0x53c8" identifier + number_literal) )))) ;) (if_statement "if (iVar5 == 0) break;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (if_statement "if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }" if (parenthesized_expression "(iVar5 != 0x100)" ( (binary_expression "iVar5 != 0x100" identifier != number_literal) )) (compound_statement "{\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }" { (if_statement "if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }" if (parenthesized_expression "(param_4 != (int *)0x0)" ( (binary_expression "param_4 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }" { (expression_statement "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" identifier = (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" identifier (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" ( (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x6fe8" identifier + number_literal) , identifier )))) ;) (expression_statement "*param_4 = iVar5;" (assignment_expression "*param_4 = iVar5" (pointer_expression "*param_4" * identifier) = identifier) ;) })) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(local_30);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(local_30)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" * (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_30)" ( identifier ))) ;) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" ( (pointer_expression "*(code *)piVar10[0xd]" * (cast_expression "(code *)piVar10[0xd]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar10[0xd]" identifier [ number_literal ]))) )) (argument_list "(piVar10,unaff_s3)" ( identifier , identifier ))) ;) (labeled_statement "LAB_00095a84:\n          uVar11 = 1;" statement_identifier : (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" identifier = number_literal) ;)) })) })) (expression_statement "piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);" (assignment_expression "piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" identifier = (cast_expression "(int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x2110)" * (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x2110)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6dc + -0x2110)" ( (binary_expression "PTR_LAB_0015c6dc + -0x2110" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))))) ;) (if_statement "if (piVar10 == (int *)0x0) break;" if (parenthesized_expression "(piVar10 == (int *)0x0)" ( (binary_expression "piVar10 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (break_statement "break;" break ;)) (expression_statement "iVar5 = param_1[0x30];" (assignment_expression "iVar5 = param_1[0x30]" identifier = (subscript_expression "param_1[0x30]" identifier [ number_literal ])) ;) (if_statement "if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }" if (parenthesized_expression "(0 < (int)param_1[0x2f])" ( (binary_expression "0 < (int)param_1[0x2f]" number_literal < (cast_expression "(int)param_1[0x2f]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_1[0x2f]" identifier [ number_literal ]))) )) (compound_statement "{\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }" { (expression_statement "(*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" ( (pointer_expression "*(code *)PTR_memcpy_0015ca34" * (cast_expression "(code *)PTR_memcpy_0015ca34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar10,iVar5,param_1[0x2f] << 2)" ( identifier , identifier , (binary_expression "param_1[0x2f] << 2" (subscript_expression "param_1[0x2f]" identifier [ number_literal ]) << number_literal) ))) ;) (expression_statement "iVar5 = param_1[0x30];" (assignment_expression "iVar5 = param_1[0x30]" identifier = (subscript_expression "param_1[0x30]" identifier [ number_literal ])) ;) })) (if_statement "if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }" { (expression_statement "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);" (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))" ( (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x4dac)" * (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x4dac)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c6dc + -0x4dac)" ( (binary_expression "PTR_LAB_0015c6dc + -0x4dac" identifier + number_literal) )))) )) (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "param_1[0x30] = piVar10;" (assignment_expression "param_1[0x30] = piVar10" (subscript_expression "param_1[0x30]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar10 = piVar10 + param_1[0x2f];" (assignment_expression "piVar10 = piVar10 + param_1[0x2f]" identifier = (binary_expression "piVar10 + param_1[0x2f]" identifier + (subscript_expression "param_1[0x2f]" identifier [ number_literal ]))) ;) (expression_statement "param_1[0x2f] = param_1[0x2f] + 1;" (assignment_expression "param_1[0x2f] = param_1[0x2f] + 1" (subscript_expression "param_1[0x2f]" identifier [ number_literal ]) = (binary_expression "param_1[0x2f] + 1" (subscript_expression "param_1[0x2f]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "*piVar10 = unaff_s3;" (assignment_expression "*piVar10 = unaff_s3" (pointer_expression "*piVar10" * identifier) = identifier) ;) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) }))) }) while (parenthesized_expression "( true )" ( true )) ;)) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) )))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) )))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , 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) , IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( 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) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( LIT , (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) != (char_literal ' character ')) )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT & (subscript_expression IDENT [ LIT ])) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) }))) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (subscript_expression IDENT [ (binary_expression IDENT - LIT) ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT != LIT)) ))) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT < (parenthesized_expression ( (binary_expression IDENT & LIT) ))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 , IDENT , (binary_expression IDENT + LIT) , IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , (binary_expression IDENT - LIT) , IDENT ))) ;) })) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , (pointer_expression & IDENT) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_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 , IDENT , (binary_expression (subscript_expression IDENT [ LIT ]) << LIT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (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 *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }) while (parenthesized_expression ( BOOL )) ;)) })))
(function_definition "char * sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)\n\n{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}" (primitive_type "char") (pointer_declarator "* sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" (* "*") (function_declarator "sqlite3_load_extension(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" (identifier "sqlite3_load_extension") (parameter_list "(undefined4 *param_1,char *param_2,undefined4 *param_3,int *param_4)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "char *param_2" (primitive_type "char") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "int *param_4" (primitive_type "int") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")")))) (compound_statement "{\n  undefined1 uVar1;\n  undefined1 uVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  int iVar5;\n  code *pcVar6;\n  undefined4 uVar7;\n  undefined4 *puVar8;\n  char *pcVar9;\n  int *piVar10;\n  uint uVar11;\n  int unaff_s3;\n  undefined4 *unaff_s5;\n  uint uVar12;\n  int local_38;\n  uint local_34;\n  int local_30;\n  int local_2c;\n  \n  puVar4 = PTR___stack_chk_guard_0015ca30;\n  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;\n  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);\n  piVar10 = (int *)*param_1;\n  local_30 = 0;\n  if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }\n  if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }\n  unaff_s5 = param_3;\n  if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }\n  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);\n  if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }\n  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n  if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }\n  puVar8 = (undefined4 *)0x0;\n  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;\n  if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }\n  (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );\n}" ({ "{") (declaration "undefined1 uVar1;" (type_identifier "undefined1") (identifier "uVar1") (; ";")) (declaration "undefined1 uVar2;" (type_identifier "undefined1") (identifier "uVar2") (; ";")) (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 "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "undefined4 uVar7;" (type_identifier "undefined4") (identifier "uVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "char *pcVar9;" (primitive_type "char") (pointer_declarator "*pcVar9" (* "*") (identifier "pcVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "uint uVar11;" (type_identifier "uint") (identifier "uVar11") (; ";")) (declaration "int unaff_s3;" (primitive_type "int") (identifier "unaff_s3") (; ";")) (declaration "undefined4 *unaff_s5;" (type_identifier "undefined4") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (identifier "local_34") (; ";")) (declaration "int local_30;" (primitive_type "int") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar4 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar4 = PTR___stack_chk_guard_0015ca30" (identifier "puVar4") (= "=") (identifier "PTR___stack_chk_guard_0015ca30")) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_0015ca30" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ca30")))) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);" (call_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3])" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_enter_0015c6b4)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_mutex_enter_0015c6b4" (* "*") (cast_expression "(code *)PTR_sqlite3_mutex_enter_0015c6b4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_mutex_enter_0015c6b4"))) () ")")) (argument_list "(param_1[3])" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (expression_statement "piVar10 = (int *)*param_1;" (assignment_expression "piVar10 = (int *)*param_1" (identifier "piVar10") (= "=") (cast_expression "(int *)*param_1" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 == (char *)0x0) {\n    local_34 = 0;\n    local_38 = 300;\n  }\n  else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    local_34 = 0;\n    local_38 = 300;\n  }" ({ "{") (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_38 = 300;" (assignment_expression "local_38 = 300" (identifier "local_38") (= "=") (number_literal "300")) (; ";")) (} "}")) (else_clause "else {\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" (else "else") (compound_statement "{\n    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    local_34 = local_34 & 0x3fffffff;\n    local_38 = local_34 + 300;\n  }" ({ "{") (expression_statement "local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2)" (identifier "local_34") (= "=") (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" (( "(") (pointer_expression "*(code *)PTR_strlen_0015c9c8" (* "*") (cast_expression "(code *)PTR_strlen_0015c9c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0015c9c8"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "local_34 = local_34 & 0x3fffffff;" (assignment_expression "local_34 = local_34 & 0x3fffffff" (identifier "local_34") (= "=") (binary_expression "local_34 & 0x3fffffff" (identifier "local_34") (& "&") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "local_38 = local_34 + 300;" (assignment_expression "local_38 = local_34 + 300" (identifier "local_38") (= "=") (binary_expression "local_34 + 300" (identifier "local_34") (+ "+") (number_literal "300"))) (; ";")) (} "}")))) (if_statement "if (param_4 == (int *)0x0) {\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }\n  else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;\n  }" ({ "{") (if_statement "if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;" (if "if") (parenthesized_expression "(-1 < (int)(param_1[9] << 0xf))" (( "(") (binary_expression "-1 < (int)(param_1[9] << 0xf)" (number_literal "-1") (< "<") (cast_expression "(int)(param_1[9] << 0xf)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1[9] << 0xf)" (( "(") (binary_expression "param_1[9] << 0xf" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (<< "<<") (number_literal "0xf")) () ")")))) () ")")) (goto_statement "goto LAB_00095a84;" (goto "goto") (statement_identifier "LAB_00095a84") (; ";"))) (} "}")) (else_clause "else {\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" (else "else") (compound_statement "{\n    *param_4 = 0;\n    if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }\n  }" ({ "{") (expression_statement "*param_4 = 0;" (assignment_expression "*param_4 = 0" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (-1 < (int)(param_1[9] << 0xf)) {\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }" (if "if") (parenthesized_expression "(-1 < (int)(param_1[9] << 0xf))" (( "(") (binary_expression "-1 < (int)(param_1[9] << 0xf)" (number_literal "-1") (< "<") (cast_expression "(int)(param_1[9] << 0xf)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(param_1[9] << 0xf)" (( "(") (binary_expression "param_1[9] << 0xf" (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]")) (<< "<<") (number_literal "0xf")) () ")")))) () ")")) (compound_statement "{\n      uVar11 = 1;\n      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);\n      *param_4 = iVar5;\n      goto LAB_00095a88;\n    }" ({ "{") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" (identifier "iVar5") (= "=") (call_expression "sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54)" (identifier "sqlite3_mprintf") (argument_list "(PTR_LAB_0015c5e8 + 0x7e54)" (( "(") (binary_expression "PTR_LAB_0015c5e8 + 0x7e54" (identifier "PTR_LAB_0015c5e8") (+ "+") (number_literal "0x7e54")) () ")")))) (; ";")) (expression_statement "*param_4 = iVar5;" (assignment_expression "*param_4 = iVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar5")) (; ";")) (goto_statement "goto LAB_00095a88;" (goto "goto") (statement_identifier "LAB_00095a88") (; ";")) (} "}"))) (} "}")))) (expression_statement "unaff_s5 = param_3;" (assignment_expression "unaff_s5 = param_3" (identifier "unaff_s5") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (param_3 == (undefined4 *)0x0) {\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }" (if "if") (parenthesized_expression "(param_3 == (undefined4 *)0x0)" (( "(") (binary_expression "param_3 == (undefined4 *)0x0" (identifier "param_3") (== "==") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);\n  }" ({ "{") (expression_statement "unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);" (assignment_expression "unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7060)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7060" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x7060")) () ")")))) (; ";")) (} "}"))) (expression_statement "unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);" (assignment_expression "unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2)" (identifier "unaff_s3") (= "=") (call_expression "(*(code *)piVar10[10])(piVar10,param_2)" (parenthesized_expression "(*(code *)piVar10[10])" (( "(") (pointer_expression "*(code *)piVar10[10]" (* "*") (cast_expression "(code *)piVar10[10]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[10]" (identifier "piVar10") ([ "[") (number_literal "10") (] "]")))) () ")")) (argument_list "(piVar10,param_2)" (( "(") (identifier "piVar10") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (unaff_s3 == 0) {\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }" (if "if") (parenthesized_expression "(unaff_s3 == 0)" (( "(") (binary_expression "unaff_s3 == 0" (identifier "unaff_s3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);\n    unaff_s3 = iVar5;\n    if (iVar5 == 0) goto LAB_00095ea8;\n    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);\n    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);\n    if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }\n  }" ({ "{") (expression_statement "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" (identifier "iVar5") (= "=") (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" (identifier "sqlite3_mprintf") (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,\n                            PTR_s_LE_FTS4_0015c5f4 + -0x7048)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x1e6c" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x1e6c")) (, ",") (identifier "param_2") (, ",") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7048" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x7048")) () ")")))) (; ";")) (expression_statement "unaff_s3 = iVar5;" (assignment_expression "unaff_s3 = iVar5" (identifier "unaff_s3") (= "=") (identifier "iVar5")) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00095ea8;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00095ea8;" (goto "goto") (statement_identifier "LAB_00095ea8") (; ";"))) (expression_statement "unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);" (assignment_expression "unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5)" (identifier "unaff_s3") (= "=") (call_expression "(*(code *)piVar10[10])(piVar10,iVar5)" (parenthesized_expression "(*(code *)piVar10[10])" (( "(") (pointer_expression "*(code *)piVar10[10]" (* "*") (cast_expression "(code *)piVar10[10]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[10]" (identifier "piVar10") ([ "[") (number_literal "10") (] "]")))) () ")")) (argument_list "(piVar10,iVar5)" (( "(") (identifier "piVar10") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(iVar5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015c5ec"))) () ")")) (argument_list "(iVar5)" (( "(") (identifier "iVar5") () ")"))) (; ";")) (if_statement "if (unaff_s3 == 0) {\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }" (if "if") (parenthesized_expression "(unaff_s3 == 0)" (( "(") (binary_expression "unaff_s3 == 0" (identifier "unaff_s3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (param_4 == (int *)0x0) goto LAB_00095a84;\n      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);\n      *param_4 = local_30;\n      if (local_30 == 0) goto LAB_00095a84;\n      uVar11 = 1;\n      (*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);\n      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);\n      goto LAB_00095a88;\n    }" ({ "{") (if_statement "if (param_4 == (int *)0x0) goto LAB_00095a84;" (if "if") (parenthesized_expression "(param_4 == (int *)0x0)" (( "(") (binary_expression "param_4 == (int *)0x0" (identifier "param_4") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00095a84;" (goto "goto") (statement_identifier "LAB_00095a84") (; ";"))) (expression_statement "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);" (assignment_expression "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" (identifier "local_30") (= "=") (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" (* "*") (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_malloc64_0015c764"))) () ")")) (argument_list "(0,local_38)" (( "(") (number_literal "0") (, ",") (identifier "local_38") () ")")))) (; ";")) (expression_statement "*param_4 = local_30;" (assignment_expression "*param_4 = local_30" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 == 0) goto LAB_00095a84;" (if "if") (parenthesized_expression "(local_30 == 0)" (( "(") (binary_expression "local_30 == 0" (identifier "local_30") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00095a84;" (goto "goto") (statement_identifier "LAB_00095a84") (; ";"))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" (* "*") (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_snprintf_0015c628"))) () ")")) (argument_list "(local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2)" (( "(") (identifier "local_38") (, ",") (identifier "local_30") (, ",") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7044" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x7044")) (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);" (call_expression "(*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30)" (parenthesized_expression "(*(code *)piVar10[0xb])" (( "(") (pointer_expression "*(code *)piVar10[0xb]" (* "*") (cast_expression "(code *)piVar10[0xb]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xb]" (identifier "piVar10") ([ "[") (number_literal "0xb") (] "]")))) () ")")) (argument_list "(piVar10,local_34 + 299,local_30)" (( "(") (identifier "piVar10") (, ",") (binary_expression "local_34 + 299" (identifier "local_34") (+ "+") (number_literal "299")) (, ",") (identifier "local_30") () ")"))) (; ";")) (goto_statement "goto LAB_00095a88;" (goto "goto") (statement_identifier "LAB_00095a88") (; ";")) (} "}"))) (} "}"))) (expression_statement "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);" (assignment_expression "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (parenthesized_expression "(*(code *)piVar10[0xc])" (( "(") (pointer_expression "*(code *)piVar10[0xc]" (* "*") (cast_expression "(code *)piVar10[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xc]" (identifier "piVar10") ([ "[") (number_literal "0xc") (] "]")))) () ")")) (argument_list "(piVar10,unaff_s3,unaff_s5)" (( "(") (identifier "piVar10") (, ",") (identifier "unaff_s3") (, ",") (identifier "unaff_s5") () ")"))))) (; ";")) (if_statement "if (pcVar6 != (code *)0x0) {\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }" (if "if") (parenthesized_expression "(pcVar6 != (code *)0x0)" (( "(") (binary_expression "pcVar6 != (code *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    unaff_s5 = (undefined4 *)0x0;\n    goto LAB_000959fc;\n  }" ({ "{") (expression_statement "unaff_s5 = (undefined4 *)0x0;" (assignment_expression "unaff_s5 = (undefined4 *)0x0" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_000959fc;" (goto "goto") (statement_identifier "LAB_000959fc") (; ";")) (} "}"))) (expression_statement "puVar8 = (undefined4 *)0x0;" (assignment_expression "puVar8 = (undefined4 *)0x0" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;" (if "if") (parenthesized_expression "(param_3 != (undefined4 *)0x0)" (( "(") (binary_expression "param_3 != (undefined4 *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00095b60;" (goto "goto") (statement_identifier "LAB_00095b60") (; ";"))) (if_statement "if (param_2 == (char *)0x0) {\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }\n  else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" (if "if") (parenthesized_expression "(param_2 == (char *)0x0)" (( "(") (binary_expression "param_2 == (char *)0x0" (identifier "param_2") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }\n  }" ({ "{") (expression_statement "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);" (assignment_expression "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" (* "*") (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_malloc64_0015c764"))) () ")")) (argument_list "(0,0x1e)" (( "(") (number_literal "0") (, ",") (number_literal "0x1e") () ")"))))) (; ";")) (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }" (if "if") (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" (( "(") (binary_expression "unaff_s5 != (undefined4 *)0x0" (identifier "unaff_s5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar9 = (char *)0x0;\n      uVar11 = 0;\n      uVar12 = 0xffffffff;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      goto LAB_00095d98;\n    }" ({ "{") (expression_statement "pcVar9 = (char *)0x0;" (assignment_expression "pcVar9 = (char *)0x0" (identifier "pcVar9") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (* "*") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x701c")) () ")"))))) (; ";")) (expression_statement "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (= "=") (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (* "*") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x7020")) () ")"))))) (; ";")) (expression_statement "unaff_s5[1] = uVar7;" (assignment_expression "unaff_s5[1] = uVar7" (subscript_expression "unaff_s5[1]" (identifier "unaff_s5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (goto_statement "goto LAB_00095d98;" (goto "goto") (statement_identifier "LAB_00095d98") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" (else "else") (compound_statement "{\n    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);\n    uVar11 = uVar11 & 0x3fffffff;\n    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);\n    if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }\n  }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);" (assignment_expression "uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strlen_0015c9c8)(param_2)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" (( "(") (pointer_expression "*(code *)PTR_strlen_0015c9c8" (* "*") (cast_expression "(code *)PTR_strlen_0015c9c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0015c9c8"))) () ")")) (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (expression_statement "uVar11 = uVar11 & 0x3fffffff;" (assignment_expression "uVar11 = uVar11 & 0x3fffffff" (identifier "uVar11") (= "=") (binary_expression "uVar11 & 0x3fffffff" (identifier "uVar11") (& "&") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);" (assignment_expression "unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" (identifier "unaff_s5") (= "=") (cast_expression "(undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" (* "*") (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_malloc64_0015c764"))) () ")")) (argument_list "(0,uVar11 + 0x1e)" (( "(") (number_literal "0") (, ",") (binary_expression "uVar11 + 0x1e" (identifier "uVar11") (+ "+") (number_literal "0x1e")) () ")"))))) (; ";")) (if_statement "if (unaff_s5 != (undefined4 *)0x0) {\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }" (if "if") (parenthesized_expression "(unaff_s5 != (undefined4 *)0x0)" (( "(") (binary_expression "unaff_s5 != (undefined4 *)0x0" (identifier "unaff_s5") (!= "!=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      uVar12 = uVar11 - 1;\n      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);\n      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);\n      unaff_s5[1] = uVar7;\n      if (uVar11 == 0) goto LAB_00095f14;\n      if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }\n      pcVar9 = param_2 + uVar11;\n      goto LAB_00095d98;\n    }" ({ "{") (expression_statement "uVar12 = uVar11 - 1;" (assignment_expression "uVar12 = uVar11 - 1" (identifier "uVar12") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);" (assignment_expression "uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (identifier "uVar7") (= "=") (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (* "*") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x701c)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x701c" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x701c")) () ")"))))) (; ";")) (expression_statement "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);" (assignment_expression "*unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (pointer_expression "*unaff_s5" (* "*") (identifier "unaff_s5")) (= "=") (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (* "*") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x7020)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7020" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x7020")) () ")"))))) (; ";")) (expression_statement "unaff_s5[1] = uVar7;" (assignment_expression "unaff_s5[1] = uVar7" (subscript_expression "unaff_s5[1]" (identifier "unaff_s5") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (uVar11 == 0) goto LAB_00095f14;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00095f14;" (goto "goto") (statement_identifier "LAB_00095f14") (; ";"))) (if_statement "if (param_2[uVar12] != '/') {\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }" (if "if") (parenthesized_expression "(param_2[uVar12] != '/')" (( "(") (binary_expression "param_2[uVar12] != '/'" (subscript_expression "param_2[uVar12]" (identifier "param_2") ([ "[") (identifier "uVar12") (] "]")) (!= "!=") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n        while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }\n        uVar11 = 0;\n        pcVar9 = param_2;\n        goto LAB_00095d98;\n      }" ({ "{") (while_statement "while( true ) {\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          uVar11 = uVar12;\n          uVar12 = uVar11 - 1;\n          if (uVar12 == 0xffffffff) break;\n          pcVar9 = param_2 + uVar11;\n          if (param_2[uVar12] == '/') goto LAB_00095d98;\n        }" ({ "{") (expression_statement "uVar11 = uVar12;" (assignment_expression "uVar11 = uVar12" (identifier "uVar11") (= "=") (identifier "uVar12")) (; ";")) (expression_statement "uVar12 = uVar11 - 1;" (assignment_expression "uVar12 = uVar11 - 1" (identifier "uVar12") (= "=") (binary_expression "uVar11 - 1" (identifier "uVar11") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (uVar12 == 0xffffffff) break;" (if "if") (parenthesized_expression "(uVar12 == 0xffffffff)" (( "(") (binary_expression "uVar12 == 0xffffffff" (identifier "uVar12") (== "==") (number_literal "0xffffffff")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" (identifier "pcVar9") (= "=") (binary_expression "param_2 + uVar11" (identifier "param_2") (+ "+") (identifier "uVar11"))) (; ";")) (if_statement "if (param_2[uVar12] == '/') goto LAB_00095d98;" (if "if") (parenthesized_expression "(param_2[uVar12] == '/')" (( "(") (binary_expression "param_2[uVar12] == '/'" (subscript_expression "param_2[uVar12]" (identifier "param_2") ([ "[") (identifier "uVar12") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (goto_statement "goto LAB_00095d98;" (goto "goto") (statement_identifier "LAB_00095d98") (; ";"))) (} "}"))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar9 = param_2;" (assignment_expression "pcVar9 = param_2" (identifier "pcVar9") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto LAB_00095d98;" (goto "goto") (statement_identifier "LAB_00095d98") (; ";")) (} "}"))) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" (identifier "pcVar9") (= "=") (binary_expression "param_2 + uVar11" (identifier "param_2") (+ "+") (identifier "uVar11"))) (; ";")) (goto_statement "goto LAB_00095d98;" (goto "goto") (statement_identifier "LAB_00095d98") (; ";")) (} "}"))) (} "}")))) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" (( "(") (pointer_expression "*(code *)piVar10[0xd]" (* "*") (cast_expression "(code *)piVar10[0xd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xd]" (identifier "piVar10") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (argument_list "(piVar10,unaff_s3)" (( "(") (identifier "piVar10") (, ",") (identifier "unaff_s3") () ")"))) (; ";")) (labeled_statement "LAB_00095ea8:\n  do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );" (statement_identifier "LAB_00095ea8") (: ":") (do_statement "do {\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  } while( true );" (do "do") (compound_statement "{\n    uVar11 = 7;\nLAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }\n  }" ({ "{") (expression_statement "uVar11 = 7;" (assignment_expression "uVar11 = 7" (identifier "uVar11") (= "=") (number_literal "7")) (; ";")) (labeled_statement "LAB_00095a88:\n    while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" (statement_identifier "LAB_00095a88") (: ":") (while_statement "while( true ) {\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }\n      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);\n      if (piVar10 == (int *)0x0) break;\n      iVar5 = param_1[0x30];\n      if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }\n      if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }\n      param_1[0x30] = piVar10;\n      piVar10 = piVar10 + param_1[0x2f];\n      param_1[0x2f] = param_1[0x2f] + 1;\n      *piVar10 = unaff_s3;\n      uVar11 = 0;\n    }" ({ "{") (while_statement "while( true ) {\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }\nLAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);\n        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);\n        if (iVar5 == 0) break;\n        uVar11 = 0;\n        if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }\n          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);\n          if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }\n          (*(code *)PTR___stack_chk_fail_0015ca14)();\nLAB_00095f14:\n          uVar12 = 0xffffffff;\n          uVar11 = 0;\n          pcVar9 = param_2;\nLAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);\n          puVar3 = PTR_DAT_0015c698;\n          if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }\n          uVar12 = (uint)*pcVar9;\n          puVar8 = unaff_s5 + 2;\n          if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }\n          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];\n          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];\n          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);\n          *(undefined1 *)(puVar8 + 1) = uVar1;\n          *(undefined1 *)((int)puVar8 + 5) = uVar2;\n          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);\n          puVar8 = unaff_s5;\n          if (pcVar6 != (code *)0x0) break;\nLAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }\n          uVar11 = 1;\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\n          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);\n        }" ({ "{") (if_statement "if (*(char *)((int)param_1 + 0x51) == '\0') {\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }\n          else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" (if "if") (parenthesized_expression "(*(char *)((int)param_1 + 0x51) == '\0')" (( "(") (binary_expression "*(char *)((int)param_1 + 0x51) == '\0'" (pointer_expression "*(char *)((int)param_1 + 0x51)" (* "*") (cast_expression "(char *)((int)param_1 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_1 + 0x51)" (( "(") (binary_expression "(int)param_1 + 0x51" (cast_expression "(int)param_1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_1")) (+ "+") (number_literal "0x51")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n            param_2 = (char *)(uVar11 & param_1[0x11]);\n          }" ({ "{") (expression_statement "param_2 = (char *)(uVar11 & param_1[0x11]);" (assignment_expression "param_2 = (char *)(uVar11 & param_1[0x11])" (identifier "param_2") (= "=") (cast_expression "(char *)(uVar11 & param_1[0x11])" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar11 & param_1[0x11])" (( "(") (binary_expression "uVar11 & param_1[0x11]" (identifier "uVar11") (& "&") (subscript_expression "param_1[0x11]" (identifier "param_1") ([ "[") (number_literal "0x11") (] "]"))) () ")")))) (; ";")) (} "}")) (else_clause "else {\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" (else "else") (compound_statement "{\n            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);\n          }" ({ "{") (expression_statement "param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);" (assignment_expression "param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" (identifier "param_2") (= "=") (cast_expression "(char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" (* "*") (cast_expression "(code *)(PTR_LAB_0015c6c4 + 0x7eb8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015c6c4 + 0x7eb8)" (( "(") (binary_expression "PTR_LAB_0015c6c4 + 0x7eb8" (identifier "PTR_LAB_0015c6c4") (+ "+") (number_literal "0x7eb8")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (} "}")))) (expression_statement "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);" (call_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3])" (parenthesized_expression "(*(code *)PTR_sqlite3_mutex_leave_0015c6b8)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_mutex_leave_0015c6b8" (* "*") (cast_expression "(code *)PTR_sqlite3_mutex_leave_0015c6b8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_mutex_leave_0015c6b8"))) () ")")) (argument_list "(param_1[3])" (( "(") (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) () ")"))) (; ";")) (if_statement "if (local_2c == *(int *)puVar4) {\n            return param_2;\n          }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar4)" (( "(") (binary_expression "local_2c == *(int *)puVar4" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar4" (* "*") (cast_expression "(int *)puVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar4")))) () ")")) (compound_statement "{\n            return param_2;\n          }" ({ "{") (return_statement "return param_2;" (return "return") (identifier "param_2") (; ";")) (} "}"))) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ca14"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (labeled_statement "LAB_00095f14:\n          uVar12 = 0xffffffff;" (statement_identifier "LAB_00095f14") (: ":") (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (number_literal "0xffffffff")) (; ";"))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar9 = param_2;" (assignment_expression "pcVar9 = param_2" (identifier "pcVar9") (= "=") (identifier "param_2")) (; ";")) (labeled_statement "LAB_00095d98:\n          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);" (statement_identifier "LAB_00095d98") (: ":") (expression_statement "iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);" (assignment_expression "iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" (identifier "iVar5") (= "=") (call_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" (parenthesized_expression "(*(code *)PTR_sqlite3_strnicmp_0015c70c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_strnicmp_0015c70c" (* "*") (cast_expression "(code *)PTR_sqlite3_strnicmp_0015c70c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_strnicmp_0015c70c"))) () ")")) (argument_list "(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3)" (( "(") (identifier "pcVar9") (, ",") (binary_expression "PTR_LAB_0015c5e8 + 0x7070" (identifier "PTR_LAB_0015c5e8") (+ "+") (number_literal "0x7070")) (, ",") (number_literal "3") () ")")))) (; ";"))) (expression_statement "puVar3 = PTR_DAT_0015c698;" (assignment_expression "puVar3 = PTR_DAT_0015c698" (identifier "puVar3") (= "=") (identifier "PTR_DAT_0015c698")) (; ";")) (if_statement "if (iVar5 == 0) {\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            uVar11 = uVar12 + 4;\n            pcVar9 = param_2 + uVar11;\n          }" ({ "{") (expression_statement "uVar11 = uVar12 + 4;" (assignment_expression "uVar11 = uVar12 + 4" (identifier "uVar11") (= "=") (binary_expression "uVar12 + 4" (identifier "uVar12") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "pcVar9 = param_2 + uVar11;" (assignment_expression "pcVar9 = param_2 + uVar11" (identifier "pcVar9") (= "=") (binary_expression "param_2 + uVar11" (identifier "param_2") (+ "+") (identifier "uVar11"))) (; ";")) (} "}"))) (expression_statement "uVar12 = (uint)*pcVar9;" (assignment_expression "uVar12 = (uint)*pcVar9" (identifier "uVar12") (= "=") (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar9"))) (; ";")) (expression_statement "puVar8 = unaff_s5 + 2;" (assignment_expression "puVar8 = unaff_s5 + 2" (identifier "puVar8") (= "=") (binary_expression "unaff_s5 + 2" (identifier "unaff_s5") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((uVar12 != 0) && (uVar12 != 0x2e)) {\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }" (if "if") (parenthesized_expression "((uVar12 != 0) && (uVar12 != 0x2e))" (( "(") (binary_expression "(uVar12 != 0) && (uVar12 != 0x2e)" (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar12 != 0x2e)" (( "(") (binary_expression "uVar12 != 0x2e" (identifier "uVar12") (!= "!=") (number_literal "0x2e")) () ")"))) () ")")) (compound_statement "{\n            iVar5 = 8;\n            pcVar9 = param_2 + uVar11 + 1;\n            do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));\n          }" ({ "{") (expression_statement "iVar5 = 8;" (assignment_expression "iVar5 = 8" (identifier "iVar5") (= "=") (number_literal "8")) (; ";")) (expression_statement "pcVar9 = param_2 + uVar11 + 1;" (assignment_expression "pcVar9 = param_2 + uVar11 + 1" (identifier "pcVar9") (= "=") (binary_expression "param_2 + uVar11 + 1" (binary_expression "param_2 + uVar11" (identifier "param_2") (+ "+") (identifier "uVar11")) (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));" (do "do") (compound_statement "{\n              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }\n              uVar12 = (uint)*pcVar9;\n            }" ({ "{") (if_statement "if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }" (if "if") (parenthesized_expression "((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0)" (( "(") (binary_expression "(puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0" (parenthesized_expression "(puVar3[(uVar12 & 0xff) - 0x71f8] & 2)" (( "(") (binary_expression "puVar3[(uVar12 & 0xff) - 0x71f8] & 2" (subscript_expression "puVar3[(uVar12 & 0xff) - 0x71f8]" (identifier "puVar3") ([ "[") (binary_expression "(uVar12 & 0xff) - 0x71f8" (parenthesized_expression "(uVar12 & 0xff)" (( "(") (binary_expression "uVar12 & 0xff" (identifier "uVar12") (& "&") (number_literal "0xff")) () ")")) (- "-") (number_literal "0x71f8")) (] "]")) (& "&") (number_literal "2")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                iVar5 = iVar5 + 1;\n                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];\n                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);\n              }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];" (assignment_expression "*(undefined *)puVar8 = puVar3[uVar12 - 0x70f8]" (pointer_expression "*(undefined *)puVar8" (* "*") (cast_expression "(undefined *)puVar8" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar8"))) (= "=") (subscript_expression "puVar3[uVar12 - 0x70f8]" (identifier "puVar3") ([ "[") (binary_expression "uVar12 - 0x70f8" (identifier "uVar12") (- "-") (number_literal "0x70f8")) (] "]"))) (; ";")) (expression_statement "puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);" (assignment_expression "puVar8 = (undefined4 *)((int)unaff_s5 + iVar5)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)((int)unaff_s5 + iVar5)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)unaff_s5 + iVar5)" (( "(") (binary_expression "(int)unaff_s5 + iVar5" (cast_expression "(int)unaff_s5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "unaff_s5")) (+ "+") (identifier "iVar5")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar12 = (uint)*pcVar9;" (assignment_expression "uVar12 = (uint)*pcVar9" (identifier "uVar12") (= "=") (binary_expression "(uint)*pcVar9" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "pcVar9"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e))" (( "(") (binary_expression "(uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e)" (parenthesized_expression "(uVar12 != 0)" (( "(") (binary_expression "uVar12 != 0" (identifier "uVar12") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar9 = pcVar9 + 1, uVar12 != 0x2e)" (( "(") (comma_expression "pcVar9 = pcVar9 + 1, uVar12 != 0x2e" (assignment_expression "pcVar9 = pcVar9 + 1" (identifier "pcVar9") (= "=") (binary_expression "pcVar9 + 1" (identifier "pcVar9") (+ "+") (number_literal "1"))) (, ",") (binary_expression "uVar12 != 0x2e" (identifier "uVar12") (!= "!=") (number_literal "0x2e"))) () ")"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];" (assignment_expression "uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114]" (identifier "uVar1") (= "=") (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x114]" (identifier "PTR_s_LE_FTS4_0015c5f4") ([ "[") (number_literal "-0x114") (] "]"))) (; ";")) (expression_statement "uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];" (assignment_expression "uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113]" (identifier "uVar2") (= "=") (subscript_expression "PTR_s_LE_FTS4_0015c5f4[-0x113]" (identifier "PTR_s_LE_FTS4_0015c5f4") ([ "[") (number_literal "-0x113") (] "]"))) (; ";")) (expression_statement "*puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);" (assignment_expression "*puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (pointer_expression "*puVar8" (* "*") (identifier "puVar8")) (= "=") (pointer_expression "*(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (* "*") (cast_expression "(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_s_LE_FTS4_0015c5f4 + -0x118)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x118" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x118")) () ")"))))) (; ";")) (expression_statement "*(undefined1 *)(puVar8 + 1) = uVar1;" (assignment_expression "*(undefined1 *)(puVar8 + 1) = uVar1" (pointer_expression "*(undefined1 *)(puVar8 + 1)" (* "*") (cast_expression "(undefined1 *)(puVar8 + 1)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar8 + 1)" (( "(") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1")) () ")")))) (= "=") (identifier "uVar1")) (; ";")) (expression_statement "*(undefined1 *)((int)puVar8 + 5) = uVar2;" (assignment_expression "*(undefined1 *)((int)puVar8 + 5) = uVar2" (pointer_expression "*(undefined1 *)((int)puVar8 + 5)" (* "*") (cast_expression "(undefined1 *)((int)puVar8 + 5)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)puVar8 + 5)" (( "(") (binary_expression "(int)puVar8 + 5" (cast_expression "(int)puVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar8")) (+ "+") (number_literal "5")) () ")")))) (= "=") (identifier "uVar2")) (; ";")) (expression_statement "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);" (assignment_expression "pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (identifier "pcVar6") (= "=") (cast_expression "(code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5)" (parenthesized_expression "(*(code *)piVar10[0xc])" (( "(") (pointer_expression "*(code *)piVar10[0xc]" (* "*") (cast_expression "(code *)piVar10[0xc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xc]" (identifier "piVar10") ([ "[") (number_literal "0xc") (] "]")))) () ")")) (argument_list "(piVar10,unaff_s3,unaff_s5)" (( "(") (identifier "piVar10") (, ",") (identifier "unaff_s3") (, ",") (identifier "unaff_s5") () ")"))))) (; ";")) (expression_statement "puVar8 = unaff_s5;" (assignment_expression "puVar8 = unaff_s5" (identifier "puVar8") (= "=") (identifier "unaff_s5")) (; ";")) (if_statement "if (pcVar6 != (code *)0x0) break;" (if "if") (parenthesized_expression "(pcVar6 != (code *)0x0)" (( "(") (binary_expression "pcVar6 != (code *)0x0" (identifier "pcVar6") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_00095b60:\n          if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" (statement_identifier "LAB_00095b60") (: ":") (if_statement "if (param_4 != (int *)0x0) {\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);\n            uVar12 = (uVar11 & 0x3fffffff) + local_38;\n            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);\n            *param_4 = local_30;\n            if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }\n          }" ({ "{") (expression_statement "uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);" (assignment_expression "uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5)" (identifier "uVar11") (= "=") (call_expression "(*(code *)PTR_strlen_0015c9c8)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_strlen_0015c9c8)" (( "(") (pointer_expression "*(code *)PTR_strlen_0015c9c8" (* "*") (cast_expression "(code *)PTR_strlen_0015c9c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_0015c9c8"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")")))) (; ";")) (expression_statement "uVar12 = (uVar11 & 0x3fffffff) + local_38;" (assignment_expression "uVar12 = (uVar11 & 0x3fffffff) + local_38" (identifier "uVar12") (= "=") (binary_expression "(uVar11 & 0x3fffffff) + local_38" (parenthesized_expression "(uVar11 & 0x3fffffff)" (( "(") (binary_expression "uVar11 & 0x3fffffff" (identifier "uVar11") (& "&") (number_literal "0x3fffffff")) () ")")) (+ "+") (identifier "local_38"))) (; ";")) (expression_statement "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);" (assignment_expression "local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12)" (identifier "local_30") (= "=") (call_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)\n                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12)" (parenthesized_expression "(*(code *)PTR_sqlite3_malloc64_0015c764)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_malloc64_0015c764" (* "*") (cast_expression "(code *)PTR_sqlite3_malloc64_0015c764" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_malloc64_0015c764"))) () ")")) (argument_list "(uVar12 < (uVar11 & 0x3fffffff),uVar12)" (( "(") (binary_expression "uVar12 < (uVar11 & 0x3fffffff)" (identifier "uVar12") (< "<") (parenthesized_expression "(uVar11 & 0x3fffffff)" (( "(") (binary_expression "uVar11 & 0x3fffffff" (identifier "uVar11") (& "&") (number_literal "0x3fffffff")) () ")"))) (, ",") (identifier "uVar12") () ")")))) (; ";")) (expression_statement "*param_4 = local_30;" (assignment_expression "*param_4 = local_30" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "local_30")) (; ";")) (if_statement "if (local_30 != 0) {\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }" (if "if") (parenthesized_expression "(local_30 != 0)" (( "(") (binary_expression "local_30 != 0" (identifier "local_30") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              (*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);\n              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);\n            }" ({ "{") (expression_statement "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);" (call_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)\n                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2)" (parenthesized_expression "(*(code *)PTR_sqlite3_snprintf_0015c628)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_snprintf_0015c628" (* "*") (cast_expression "(code *)PTR_sqlite3_snprintf_0015c628" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_snprintf_0015c628"))) () ")")) (argument_list "(uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2)" (( "(") (identifier "uVar12") (, ",") (identifier "local_30") (, ",") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x7014" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x7014")) (, ",") (identifier "unaff_s5") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "(*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);" (call_expression "(*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30)" (parenthesized_expression "(*(code *)piVar10[0xb])" (( "(") (pointer_expression "*(code *)piVar10[0xb]" (* "*") (cast_expression "(code *)piVar10[0xb]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xb]" (identifier "piVar10") ([ "[") (number_literal "0xb") (] "]")))) () ")")) (argument_list "(piVar10,uVar12 - 1,local_30)" (( "(") (identifier "piVar10") (, ",") (binary_expression "uVar12 - 1" (identifier "uVar12") (- "-") (number_literal "1")) (, ",") (identifier "local_30") () ")"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";")) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" (( "(") (pointer_expression "*(code *)piVar10[0xd]" (* "*") (cast_expression "(code *)piVar10[0xd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xd]" (identifier "piVar10") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (argument_list "(piVar10,unaff_s3)" (( "(") (identifier "piVar10") (, ",") (identifier "unaff_s3") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(puVar8)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015c5ec"))) () ")")) (argument_list "(puVar8)" (( "(") (identifier "puVar8") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_000959fc:\n        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" (statement_identifier "LAB_000959fc") (: ":") (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015c5ec"))) () ")")) (argument_list "(unaff_s5)" (( "(") (identifier "unaff_s5") () ")"))) (; ";"))) (expression_statement "iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);" (assignment_expression "iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" (identifier "iVar5") (= "=") (call_expression "(*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" (parenthesized_expression "(*pcVar6)" (( "(") (pointer_expression "*pcVar6" (* "*") (identifier "pcVar6")) () ")")) (argument_list "(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) (, ",") (binary_expression "PTR_DAT_0015c5d8 + -0x53c8" (identifier "PTR_DAT_0015c5d8") (+ "+") (number_literal "-0x53c8")) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) break;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (if_statement "if (iVar5 != 0x100) {\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }" (if "if") (parenthesized_expression "(iVar5 != 0x100)" (( "(") (binary_expression "iVar5 != 0x100" (identifier "iVar5") (!= "!=") (number_literal "0x100")) () ")")) (compound_statement "{\n          if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }\n          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);\n          (*(code *)piVar10[0xd])(piVar10,unaff_s3);\nLAB_00095a84:\n          uVar11 = 1;\n        }" ({ "{") (if_statement "if (param_4 != (int *)0x0) {\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }" (if "if") (parenthesized_expression "(param_4 != (int *)0x0)" (( "(") (binary_expression "param_4 != (int *)0x0" (identifier "param_4") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);\n            *param_4 = iVar5;\n          }" ({ "{") (expression_statement "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);" (assignment_expression "iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" (identifier "iVar5") (= "=") (call_expression "sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" (identifier "sqlite3_mprintf") (argument_list "(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30)" (( "(") (binary_expression "PTR_s_LE_FTS4_0015c5f4 + -0x6fe8" (identifier "PTR_s_LE_FTS4_0015c5f4") (+ "+") (number_literal "-0x6fe8")) (, ",") (identifier "local_30") () ")")))) (; ";")) (expression_statement "*param_4 = iVar5;" (assignment_expression "*param_4 = iVar5" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (identifier "iVar5")) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_sqlite3_free_0015c5ec)(local_30);" (call_expression "(*(code *)PTR_sqlite3_free_0015c5ec)(local_30)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0015c5ec)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_free_0015c5ec" (* "*") (cast_expression "(code *)PTR_sqlite3_free_0015c5ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_free_0015c5ec"))) () ")")) (argument_list "(local_30)" (( "(") (identifier "local_30") () ")"))) (; ";")) (expression_statement "(*(code *)piVar10[0xd])(piVar10,unaff_s3);" (call_expression "(*(code *)piVar10[0xd])(piVar10,unaff_s3)" (parenthesized_expression "(*(code *)piVar10[0xd])" (( "(") (pointer_expression "*(code *)piVar10[0xd]" (* "*") (cast_expression "(code *)piVar10[0xd]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar10[0xd]" (identifier "piVar10") ([ "[") (number_literal "0xd") (] "]")))) () ")")) (argument_list "(piVar10,unaff_s3)" (( "(") (identifier "piVar10") (, ",") (identifier "unaff_s3") () ")"))) (; ";")) (labeled_statement "LAB_00095a84:\n          uVar11 = 1;" (statement_identifier "LAB_00095a84") (: ":") (expression_statement "uVar11 = 1;" (assignment_expression "uVar11 = 1" (identifier "uVar11") (= "=") (number_literal "1")) (; ";"))) (} "}"))) (} "}"))) (expression_statement "piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);" (assignment_expression "piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" (identifier "piVar10") (= "=") (cast_expression "(int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x2110))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x2110)" (* "*") (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x2110)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015c6dc + -0x2110)" (( "(") (binary_expression "PTR_LAB_0015c6dc + -0x2110" (identifier "PTR_LAB_0015c6dc") (+ "+") (number_literal "-0x2110")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))))) (; ";")) (if_statement "if (piVar10 == (int *)0x0) break;" (if "if") (parenthesized_expression "(piVar10 == (int *)0x0)" (( "(") (binary_expression "piVar10 == (int *)0x0" (identifier "piVar10") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "iVar5 = param_1[0x30];" (assignment_expression "iVar5 = param_1[0x30]" (identifier "iVar5") (= "=") (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]"))) (; ";")) (if_statement "if (0 < (int)param_1[0x2f]) {\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }" (if "if") (parenthesized_expression "(0 < (int)param_1[0x2f])" (( "(") (binary_expression "0 < (int)param_1[0x2f]" (number_literal "0") (< "<") (cast_expression "(int)param_1[0x2f]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_1[0x2f]" (identifier "param_1") ([ "[") (number_literal "0x2f") (] "]")))) () ")")) (compound_statement "{\n        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);\n        iVar5 = param_1[0x30];\n      }" ({ "{") (expression_statement "(*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);" (call_expression "(*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2)" (parenthesized_expression "(*(code *)PTR_memcpy_0015ca34)" (( "(") (pointer_expression "*(code *)PTR_memcpy_0015ca34" (* "*") (cast_expression "(code *)PTR_memcpy_0015ca34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcpy_0015ca34"))) () ")")) (argument_list "(piVar10,iVar5,param_1[0x2f] << 2)" (( "(") (identifier "piVar10") (, ",") (identifier "iVar5") (, ",") (binary_expression "param_1[0x2f] << 2" (subscript_expression "param_1[0x2f]" (identifier "param_1") ([ "[") (number_literal "0x2f") (] "]")) (<< "<<") (number_literal "2")) () ")"))) (; ";")) (expression_statement "iVar5 = param_1[0x30];" (assignment_expression "iVar5 = param_1[0x30]" (identifier "iVar5") (= "=") (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]"))) (; ";")) (} "}"))) (if_statement "if (iVar5 != 0) {\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);\n      }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);" (call_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c6dc + -0x4dac))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015c6dc + -0x4dac)" (* "*") (cast_expression "(code *)(PTR_LAB_0015c6dc + -0x4dac)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015c6dc + -0x4dac)" (( "(") (binary_expression "PTR_LAB_0015c6dc + -0x4dac" (identifier "PTR_LAB_0015c6dc") (+ "+") (number_literal "-0x4dac")) () ")")))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "param_1[0x30] = piVar10;" (assignment_expression "param_1[0x30] = piVar10" (subscript_expression "param_1[0x30]" (identifier "param_1") ([ "[") (number_literal "0x30") (] "]")) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "piVar10 = piVar10 + param_1[0x2f];" (assignment_expression "piVar10 = piVar10 + param_1[0x2f]" (identifier "piVar10") (= "=") (binary_expression "piVar10 + param_1[0x2f]" (identifier "piVar10") (+ "+") (subscript_expression "param_1[0x2f]" (identifier "param_1") ([ "[") (number_literal "0x2f") (] "]")))) (; ";")) (expression_statement "param_1[0x2f] = param_1[0x2f] + 1;" (assignment_expression "param_1[0x2f] = param_1[0x2f] + 1" (subscript_expression "param_1[0x2f]" (identifier "param_1") ([ "[") (number_literal "0x2f") (] "]")) (= "=") (binary_expression "param_1[0x2f] + 1" (subscript_expression "param_1[0x2f]" (identifier "param_1") ([ "[") (number_literal "0x2f") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar10 = unaff_s3;" (assignment_expression "*piVar10 = unaff_s3" (pointer_expression "*piVar10" (* "*") (identifier "piVar10")) (= "=") (identifier "unaff_s3")) (; ";")) (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" (identifier "uVar11") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (} "}")))

int function_1(type_1 *db,char *var_1,char *var_6,char **var_3)

{
  char cVar1;
  char cVar2;
  type_2 *puVar3;
  type_2 *puVar4;
  char *var_9;
  type_3 *var_11;
  int var_17;
  type_4 uVar8;
  char *var_18;
  void **var_23;
  type_5 *var_22;
  type_6 var_13;
  char *var_8;
  char *var_12;
  type_6 var_14;
  int var_19;
  type_6 var_2;
  char *var_10;
  int var_16;
  
  puVar4 = PTR___stack_chk_guard_0015ca30;
  var_16 = *(int *)PTR___stack_chk_guard_0015ca30;
  (*(type_7 *)PTR_sqlite3_mutex_enter_0015c6b4)(db->mutex);
  var_22 = db->pVfs;
  var_10 = (char *)0x0;
  if (var_1 == (char *)0x0) {
    var_2 = 0;
    var_19 = 300;
  }
  else {
    var_2 = (*(type_7 *)PTR_strlen_0015c9c8)(var_1);
    var_2 = var_2 & 0x3fffffff;
    var_19 = var_2 + 300;
  }
  if (var_3 == (char **)0x0) {
    if (-1 < (int)db->flags << 0xf) goto LAB_00095a84;
  }
  else {
    *var_3 = (char *)0x0;
    if (-1 < (int)db->flags << 0xf) {
      var_13 = 1;
      var_9 = var_4(var_5 + 0x7e54);
      *var_3 = var_9;
      goto LAB_00095a88;
    }
  }
  var_12 = var_6;
  if (var_6 == (char *)0x0) {
    var_12 = var_7 + -0x7060;
  }
  var_8 = (char *)(*var_22->xDlOpen)(var_22,var_1);
  if (var_8 == (char *)0x0) {
    var_9 = var_4(var_7 + -0x1e6c,var_1,var_7 + -0x7048
                            );
    var_8 = var_9;
    if (var_9 == (char *)0x0) goto LAB_00095ea8;
    var_8 = (char *)(*var_22->xDlOpen)(var_22,var_9);
    (*(type_7 *)PTR_sqlite3_free_0015c5ec)(var_9);
    if (var_8 == (char *)0x0) {
      if (var_3 == (char **)0x0) goto LAB_00095a84;
      var_10 = (char *)(*(type_7 *)PTR_sqlite3_malloc64_0015c764)(0,var_19);
      *var_3 = var_10;
      if (var_10 == (char *)0x0) goto LAB_00095a84;
      var_13 = 1;
      (*(type_7 *)PTR_sqlite3_snprintf_0015c628)
                (var_19,var_10,var_7 + -0x7044,var_1);
      (*var_22->xDlError)(var_22,var_2 + 299,var_10);
      goto LAB_00095a88;
    }
  }
  var_11 = (*var_22->xDlSym)(var_22,var_8,var_12);
  if (var_11 != (type_3 *)0x0) {
    var_12 = (char *)0x0;
    goto LAB_000959fc;
  }
  var_9 = (char *)0x0;
  if (var_6 != (char *)0x0) goto LAB_00095b60;
  if (var_1 == (char *)0x0) {
    var_12 = (char *)(*(type_7 *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);
    if (var_12 != (char *)0x0) {
      var_9 = (char *)0x0;
      var_13 = 0;
      var_14 = 0xffffffff;
      uVar8 = *(type_4 *)(var_7 + -0x701c);
      *(type_4 *)var_12 = *(type_4 *)(var_7 + -0x7020);
      *(type_4 *)(var_12 + 4) = uVar8;
      goto LAB_00095d98;
    }
  }
  else {
    var_13 = (*(type_7 *)PTR_strlen_0015c9c8)(var_1);
    var_13 = var_13 & 0x3fffffff;
    var_12 = (char *)(*(type_7 *)PTR_sqlite3_malloc64_0015c764)(0,var_13 + 0x1e);
    if (var_12 != (char *)0x0) {
      var_14 = var_13 - 1;
      uVar8 = *(type_4 *)(var_7 + -0x701c);
      *(type_4 *)var_12 = *(type_4 *)(var_7 + -0x7020);
      *(type_4 *)(var_12 + 4) = uVar8;
      if (var_13 == 0) goto LAB_00095f14;
      if (var_1[var_14] != '/') {
        while( true ) {
          var_13 = var_14;
          var_14 = var_13 - 1;
          if (var_14 == 0xffffffff) break;
          var_9 = var_1 + var_13;
          if (var_1[var_14] == '/') goto LAB_00095d98;
        }
        var_13 = 0;
        var_9 = var_1;
        goto LAB_00095d98;
      }
      var_9 = var_1 + var_13;
      goto LAB_00095d98;
    }
  }
  (*var_22->xDlClose)(var_22,var_8);
LAB_00095ea8:
  do {
    var_13 = 7;
LAB_00095a88:
    while( true ) {
      while( true ) {
        while( true ) {
          if (db->mallocFailed == '\0') {
            var_1 = (char *)(var_13 & db->errMask);
          }
          else {
            var_1 = (char *)(*(type_7 *)(var_15 + 0x7eb8))(db);
          }
          (*(type_7 *)PTR_sqlite3_mutex_leave_0015c6b8)(db->mutex);
          if (var_16 == *(int *)puVar4) {
            return (int)var_1;
          }
          (*(type_7 *)PTR___stack_chk_fail_0015ca14)();
LAB_00095f14:
          var_14 = 0xffffffff;
          var_13 = 0;
          var_9 = var_1;
LAB_00095d98:
          var_17 = (*(type_7 *)PTR_sqlite3_strnicmp_0015c70c)(var_9,var_5 + 0x7070,3);
          puVar3 = PTR_DAT_0015c698;
          if (var_17 == 0) {
            var_13 = var_14 + 4;
            var_9 = var_1 + var_13;
          }
          var_14 = (type_6)*var_9;
          var_9 = var_12 + 8;
          if ((var_14 != 0) && (var_14 != 0x2e)) {
            var_17 = 8;
            var_18 = var_1 + var_13 + 1;
            do {
              if ((puVar3[(var_14 & 0xff) - 0x71f8] & 2) != 0) {
                var_17 = var_17 + 1;
                *var_9 = puVar3[var_14 - 0x70f8];
                var_9 = var_12 + var_17;
              }
              var_14 = (type_6)*var_18;
            } while ((var_14 != 0) && (var_18 = var_18 + 1, var_14 != 0x2e));
          }
          cVar1 = var_7[-0x114];
          cVar2 = var_7[-0x113];
          *(type_4 *)var_9 = *(type_4 *)(var_7 + -0x118);
          var_9[4] = cVar1;
          var_9[5] = cVar2;
          var_11 = (*var_22->xDlSym)(var_22,var_8,var_12);
          var_9 = var_12;
          if (var_11 != (type_3 *)0x0) break;
LAB_00095b60:
          if (var_3 != (char **)0x0) {
            var_13 = (*(type_7 *)PTR_strlen_0015c9c8)(var_12);
            var_14 = (var_13 & 0x3fffffff) + var_19;
            var_10 = (char *)(*(type_7 *)PTR_sqlite3_malloc64_0015c764)
                                        (var_14 < (var_13 & 0x3fffffff),var_14);
            *var_3 = var_10;
            if (var_10 != (char *)0x0) {
              (*(type_7 *)PTR_sqlite3_snprintf_0015c628)
                        (var_14,var_10,var_7 + -0x7014,var_12,var_1);
              (*var_22->xDlError)(var_22,var_14 - 1,var_10);
            }
          }
          var_13 = 1;
          (*var_22->xDlClose)(var_22,var_8);
          (*(type_7 *)PTR_sqlite3_free_0015c5ec)(var_9);
        }
LAB_000959fc:
        (*(type_7 *)PTR_sqlite3_free_0015c5ec)(var_12);
        var_17 = (*var_11)(db,&var_10,var_20 + -0x53c8);
        if (var_17 == 0) break;
        var_13 = 0;
        if (var_17 != 0x100) {
          if (var_3 != (char **)0x0) {
            var_9 = var_4(var_7 + -0x6fe8,var_10);
            *var_3 = var_9;
          }
          (*(type_7 *)PTR_sqlite3_free_0015c5ec)(var_10);
          (*var_22->xDlClose)(var_22,var_8);
LAB_00095a84:
          var_13 = 1;
        }
      }
      var_22 = (type_5 *)(*(type_7 *)(var_21 + -0x2110))(db);
      if (var_22 == (type_5 *)0x0) break;
      var_23 = db->aExtension;
      if (0 < db->nExtension) {
        (*(type_7 *)PTR_memcpy_0015ca34)(var_22,var_23,db->nExtension << 2);
        var_23 = db->aExtension;
      }
      if (var_23 != (void **)0x0) {
        (*(type_7 *)(var_21 + -0x4dac))(db);
      }
      db->aExtension = (void **)var_22;
      var_22 = (type_5 *)(&var_22->iVersion + db->nExtension);
      db->nExtension = db->nExtension + 1;
      var_22->iVersion = (int)var_8;
      var_13 = 0;
    }
  } while( true );
}


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

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

{
  undefined1 uVar1;
  undefined1 uVar2;
  undefined *puVar3;
  undefined *puVar4;
  int iVar5;
  code *pcVar6;
  undefined4 uVar7;
  undefined4 *puVar8;
  char *pcVar9;
  int *piVar10;
  uint uVar11;
  int unaff_s3;
  undefined4 *unaff_s5;
  uint uVar12;
  int local_38;
  uint local_34;
  int local_30;
  int local_2c;
  
  puVar4 = PTR___stack_chk_guard_0015ca30;
  local_2c = *(int *)PTR___stack_chk_guard_0015ca30;
  (*(code *)PTR_sqlite3_mutex_enter_0015c6b4)(param_1[3]);
  piVar10 = (int *)*param_1;
  local_30 = 0;
  if (param_2 == (char *)0x0) {
    local_34 = 0;
    local_38 = 300;
  }
  else {
    local_34 = (*(code *)PTR_strlen_0015c9c8)(param_2);
    local_34 = local_34 & 0x3fffffff;
    local_38 = local_34 + 300;
  }
  if (param_4 == (int *)0x0) {
    if (-1 < (int)(param_1[9] << 0xf)) goto LAB_00095a84;
  }
  else {
    *param_4 = 0;
    if (-1 < (int)(param_1[9] << 0xf)) {
      uVar11 = 1;
      iVar5 = sqlite3_mprintf(PTR_LAB_0015c5e8 + 0x7e54);
      *param_4 = iVar5;
      goto LAB_00095a88;
    }
  }
  unaff_s5 = param_3;
  if (param_3 == (undefined4 *)0x0) {
    unaff_s5 = (undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7060);
  }
  unaff_s3 = (*(code *)piVar10[10])(piVar10,param_2);
  if (unaff_s3 == 0) {
    iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x1e6c,param_2,
                            PTR_s_LE_FTS4_0015c5f4 + -0x7048);
    unaff_s3 = iVar5;
    if (iVar5 == 0) goto LAB_00095ea8;
    unaff_s3 = (*(code *)piVar10[10])(piVar10,iVar5);
    (*(code *)PTR_sqlite3_free_0015c5ec)(iVar5);
    if (unaff_s3 == 0) {
      if (param_4 == (int *)0x0) goto LAB_00095a84;
      local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)(0,local_38);
      *param_4 = local_30;
      if (local_30 == 0) goto LAB_00095a84;
      uVar11 = 1;
      (*(code *)PTR_sqlite3_snprintf_0015c628)
                (local_38,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7044,param_2);
      (*(code *)piVar10[0xb])(piVar10,local_34 + 299,local_30);
      goto LAB_00095a88;
    }
  }
  pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);
  if (pcVar6 != (code *)0x0) {
    unaff_s5 = (undefined4 *)0x0;
    goto LAB_000959fc;
  }
  puVar8 = (undefined4 *)0x0;
  if (param_3 != (undefined4 *)0x0) goto LAB_00095b60;
  if (param_2 == (char *)0x0) {
    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,0x1e);
    if (unaff_s5 != (undefined4 *)0x0) {
      pcVar9 = (char *)0x0;
      uVar11 = 0;
      uVar12 = 0xffffffff;
      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);
      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);
      unaff_s5[1] = uVar7;
      goto LAB_00095d98;
    }
  }
  else {
    uVar11 = (*(code *)PTR_strlen_0015c9c8)(param_2);
    uVar11 = uVar11 & 0x3fffffff;
    unaff_s5 = (undefined4 *)(*(code *)PTR_sqlite3_malloc64_0015c764)(0,uVar11 + 0x1e);
    if (unaff_s5 != (undefined4 *)0x0) {
      uVar12 = uVar11 - 1;
      uVar7 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x701c);
      *unaff_s5 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x7020);
      unaff_s5[1] = uVar7;
      if (uVar11 == 0) goto LAB_00095f14;
      if (param_2[uVar12] != '/') {
        while( true ) {
          uVar11 = uVar12;
          uVar12 = uVar11 - 1;
          if (uVar12 == 0xffffffff) break;
          pcVar9 = param_2 + uVar11;
          if (param_2[uVar12] == '/') goto LAB_00095d98;
        }
        uVar11 = 0;
        pcVar9 = param_2;
        goto LAB_00095d98;
      }
      pcVar9 = param_2 + uVar11;
      goto LAB_00095d98;
    }
  }
  (*(code *)piVar10[0xd])(piVar10,unaff_s3);
LAB_00095ea8:
  do {
    uVar11 = 7;
LAB_00095a88:
    while( true ) {
      while( true ) {
        while( true ) {
          if (*(char *)((int)param_1 + 0x51) == '\0') {
            param_2 = (char *)(uVar11 & param_1[0x11]);
          }
          else {
            param_2 = (char *)(*(code *)(PTR_LAB_0015c6c4 + 0x7eb8))(param_1);
          }
          (*(code *)PTR_sqlite3_mutex_leave_0015c6b8)(param_1[3]);
          if (local_2c == *(int *)puVar4) {
            return param_2;
          }
          (*(code *)PTR___stack_chk_fail_0015ca14)();
LAB_00095f14:
          uVar12 = 0xffffffff;
          uVar11 = 0;
          pcVar9 = param_2;
LAB_00095d98:
          iVar5 = (*(code *)PTR_sqlite3_strnicmp_0015c70c)(pcVar9,PTR_LAB_0015c5e8 + 0x7070,3);
          puVar3 = PTR_DAT_0015c698;
          if (iVar5 == 0) {
            uVar11 = uVar12 + 4;
            pcVar9 = param_2 + uVar11;
          }
          uVar12 = (uint)*pcVar9;
          puVar8 = unaff_s5 + 2;
          if ((uVar12 != 0) && (uVar12 != 0x2e)) {
            iVar5 = 8;
            pcVar9 = param_2 + uVar11 + 1;
            do {
              if ((puVar3[(uVar12 & 0xff) - 0x71f8] & 2) != 0) {
                iVar5 = iVar5 + 1;
                *(undefined *)puVar8 = puVar3[uVar12 - 0x70f8];
                puVar8 = (undefined4 *)((int)unaff_s5 + iVar5);
              }
              uVar12 = (uint)*pcVar9;
            } while ((uVar12 != 0) && (pcVar9 = pcVar9 + 1, uVar12 != 0x2e));
          }
          uVar1 = PTR_s_LE_FTS4_0015c5f4[-0x114];
          uVar2 = PTR_s_LE_FTS4_0015c5f4[-0x113];
          *puVar8 = *(undefined4 *)(PTR_s_LE_FTS4_0015c5f4 + -0x118);
          *(undefined1 *)(puVar8 + 1) = uVar1;
          *(undefined1 *)((int)puVar8 + 5) = uVar2;
          pcVar6 = (code *)(*(code *)piVar10[0xc])(piVar10,unaff_s3,unaff_s5);
          puVar8 = unaff_s5;
          if (pcVar6 != (code *)0x0) break;
LAB_00095b60:
          if (param_4 != (int *)0x0) {
            uVar11 = (*(code *)PTR_strlen_0015c9c8)(unaff_s5);
            uVar12 = (uVar11 & 0x3fffffff) + local_38;
            local_30 = (*(code *)PTR_sqlite3_malloc64_0015c764)
                                 (uVar12 < (uVar11 & 0x3fffffff),uVar12);
            *param_4 = local_30;
            if (local_30 != 0) {
              (*(code *)PTR_sqlite3_snprintf_0015c628)
                        (uVar12,local_30,PTR_s_LE_FTS4_0015c5f4 + -0x7014,unaff_s5,param_2);
              (*(code *)piVar10[0xb])(piVar10,uVar12 - 1,local_30);
            }
          }
          uVar11 = 1;
          (*(code *)piVar10[0xd])(piVar10,unaff_s3);
          (*(code *)PTR_sqlite3_free_0015c5ec)(puVar8);
        }
LAB_000959fc:
        (*(code *)PTR_sqlite3_free_0015c5ec)(unaff_s5);
        iVar5 = (*pcVar6)(param_1,&local_30,PTR_DAT_0015c5d8 + -0x53c8);
        if (iVar5 == 0) break;
        uVar11 = 0;
        if (iVar5 != 0x100) {
          if (param_4 != (int *)0x0) {
            iVar5 = sqlite3_mprintf(PTR_s_LE_FTS4_0015c5f4 + -0x6fe8,local_30);
            *param_4 = iVar5;
          }
          (*(code *)PTR_sqlite3_free_0015c5ec)(local_30);
          (*(code *)piVar10[0xd])(piVar10,unaff_s3);
LAB_00095a84:
          uVar11 = 1;
        }
      }
      piVar10 = (int *)(*(code *)(PTR_LAB_0015c6dc + -0x2110))(param_1);
      if (piVar10 == (int *)0x0) break;
      iVar5 = param_1[0x30];
      if (0 < (int)param_1[0x2f]) {
        (*(code *)PTR_memcpy_0015ca34)(piVar10,iVar5,param_1[0x2f] << 2);
        iVar5 = param_1[0x30];
      }
      if (iVar5 != 0) {
        (*(code *)(PTR_LAB_0015c6dc + -0x4dac))(param_1);
      }
      param_1[0x30] = piVar10;
      piVar10 = piVar10 + param_1[0x2f];
      param_1[0x2f] = param_1[0x2f] + 1;
      *piVar10 = unaff_s3;
      uVar11 = 0;
    }
  } while( true );
}

