
void strftimeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)

{
  bool bVar1;
  int iVar2;
  int iVar3;
  byte *pbVar4;
  byte bVar5;
  int iVar6;
  sqlite3_value *pVal;
  sqlite3_value *context_00;
  byte *z;
  uint uVar7;
  uint uVar8;
  _func_void_void_ptr *xDel;
  int iVar9;
  sqlite3_value **argv_00;
  uint uVar10;
  byte *pbVar11;
  sqlite3_context *unaff_s0;
  int *piVar12;
  DateTime *unaff_s1;
  byte *unaff_s2;
  undefined *puVar13;
  code *pcVar14;
  DateTime DStack_1e0;
  char acStack_1b0 [100];
  int iStack_14c;
  sqlite3_context *psStack_148;
  DateTime *pDStack_144;
  byte *pbStack_140;
  code *pcStack_13c;
  byte *pbStack_114;
  DateTime x;
  DateTime y;
  char zBuf [100];
  
  puVar13 = PTR___stack_chk_guard_0015ba2c;
  iVar2 = *(int *)PTR___stack_chk_guard_0015ba2c;
  pVal = (sqlite3_value *)context;
  z = (byte *)argc;
  argv_00 = argv;
  psStack_148 = unaff_s0;
  if (argc == 0) goto switchD_0006719c_caseD_1;
  pVal = *argv;
  unaff_s2 = sqlite3_value_text(pVal);
  psStack_148 = context;
  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;
  unaff_s1 = &x;
  argv_00 = argv + 1;
  z = (byte *)(argc + -1);
  pVal = (sqlite3_value *)context;
  iVar3 = isDate(context,(int)z,argv_00,unaff_s1);
  if (iVar3 != 0) goto switchD_0006719c_caseD_1;
  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context);
  iVar9 = (int)(char)*unaff_s2;
  if (iVar9 == 0) {
LAB_0006732c:
    pbVar4 = (byte *)zBuf;
  }
  else {
    argv_00 = (sqlite3_value **)0x0;
    uVar10 = 0;
    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);
    uVar7 = 1;
    do {
      argv_00 = (sqlite3_value **)((int)argv_00 + 1);
      bVar1 = iVar9 == 0x25;
      iVar9 = (int)(char)unaff_s2[(int)argv_00];
      if (bVar1) {
        uVar7 = iVar9 - 0x25U & 0xff;
        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);
        z = (byte *)(uVar7 * 4);
        if (argv_00 != (sqlite3_value **)0x0) {
                    /* WARNING: Could not emulate address calculation at 0x00067190 */
                    /* WARNING: Treating indirect jump as call */
          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();
          return;
        }
        goto switchD_0006719c_caseD_1;
      }
      uVar8 = uVar7 + 1;
      uVar10 = (uVar8 < uVar7) + uVar10;
      uVar7 = uVar8;
    } while (iVar9 != 0);
    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;
    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;
    z = (byte *)(uint)(uVar7 < uVar10);
    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {
      pVal = (sqlite3_value *)context;
      sqlite3_result_error_toobig(context);
      goto switchD_0006719c_caseD_1;
    }
    if (*(char *)(iVar3 + 0x51) != '\0') {
LAB_00067704:
      pVal = (sqlite3_value *)context;
      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();
      goto switchD_0006719c_caseD_1;
    }
    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);
    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);
    if (pbVar4 == (byte *)0x0) goto LAB_00067704;
  }
  z = pbVar4;
  pbStack_114 = (byte *)zBuf;
  if (x.validJD == '\0') {
    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);
  }
  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);
  bVar5 = *unaff_s2;
  pbVar4 = z;
  if (bVar5 != 0) {
    iVar9 = 0;
    iVar3 = 0;
    do {
      iVar6 = iVar3 + 1;
      pbVar11 = unaff_s2 + iVar6;
      if (bVar5 == 0x25) {
        iVar6 = iVar3 + 2;
        uVar7 = *pbVar11 - 0x48 & 0xff;
        pbVar11 = unaff_s2 + iVar6;
        if (uVar7 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x00067310 */
                    /* WARNING: Treating indirect jump as call */
          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();
          return;
        }
        *pbVar4 = 0x25;
      }
      else {
        *pbVar4 = bVar5;
      }
      iVar9 = iVar9 + 1;
      pbVar4 = z + iVar9;
      bVar5 = *pbVar11;
      iVar3 = iVar6;
    } while (bVar5 != 0);
  }
  *pbVar4 = 0;
  if (z == pbStack_114) {
    xDel = (_func_void_void_ptr *)0xffffffff;
  }
  else {
    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);
  }
  argv_00 = (sqlite3_value **)0xffffffff;
  pVal = (sqlite3_value *)context;
  sqlite3_result_text(context,(char *)z,-1,xDel);
switchD_0006719c_caseD_1:
  if (iVar2 == *(int *)puVar13) {
    return;
  }
  pcVar14 = datetimeFunc;
  puVar13 = PTR___stack_chk_fail_0015ba10;
  (*(code *)PTR___stack_chk_fail_0015ba10)();
  piVar12 = *(int **)(puVar13 + 0xf425c);
  iStack_14c = *piVar12;
  context_00 = pVal;
  pDStack_144 = unaff_s1;
  pbStack_140 = unaff_s2;
  pcStack_13c = pcVar14;
  iVar2 = isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0);
  if (iVar2 == 0) {
    (*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);
    sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,
                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);
    sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);
    context_00 = pVal;
  }
  if (iStack_14c != *piVar12) {
    (**(code **)(puVar13 + 1000000))();
    datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);
    return;
  }
  return;
}



void FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)

{
  bool bVar1;
  byte *pbVar2;
  byte bVar4;
  int iVar3;
  byte *pbVar5;
  uint uVar6;
  uint uVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  byte *pbVar11;
  byte *unaff_s0;
  undefined1 *unaff_s1;
  byte *unaff_s2;
  code *pcVar12;
  undefined *puVar13;
  int iVar14;
  undefined1 *puVar15;
  undefined4 uVar16;
  undefined1 auStack_138 [24];
  byte *local_114;
  undefined1 local_100 [40];
  char local_d8;
  byte abStack_a0 [100];
  int local_3c;
  
  puVar13 = PTR___stack_chk_guard_0015ba2c;
  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;
  pbVar5 = param_1;
  if (param_2 == 0) goto switchD_0006719c_caseD_1;
  pbVar5 = (byte *)*param_3;
  unaff_s2 = (byte *)sqlite3_value_text();
  unaff_s0 = param_1;
  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;
  unaff_s1 = local_100;
  pbVar5 = param_1;
  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);
  if (iVar3 != 0) goto switchD_0006719c_caseD_1;
  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);
  iVar14 = (int)(char)*unaff_s2;
  if (iVar14 == 0) {
LAB_0006732c:
    pbVar2 = abStack_a0;
  }
  else {
    iVar9 = 0;
    uVar10 = 0;
    pbVar5 = PTR_UINT_0015b5fc + 0xac0;
    uVar6 = 1;
    do {
      iVar9 = iVar9 + 1;
      bVar1 = iVar14 == 0x25;
      iVar14 = (int)(char)unaff_s2[iVar9];
      if (bVar1) {
        uVar6 = iVar14 - 0x25U & 0xff;
        if (uVar6 < 0x53) {
                    /* WARNING: Could not emulate address calculation at 0x00067190 */
                    /* WARNING: Treating indirect jump as call */
          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();
          return;
        }
        goto switchD_0006719c_caseD_1;
      }
      uVar7 = uVar6 + 1;
      uVar10 = (uVar7 < uVar6) + uVar10;
      uVar6 = uVar7;
    } while (iVar14 != 0);
    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;
    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;
    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {
      pbVar5 = param_1;
      sqlite3_result_error_toobig();
      goto switchD_0006719c_caseD_1;
    }
    if ((*(char *)(iVar3 + 0x51) != '\0') ||
       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),
       pbVar2 == (byte *)0x0)) {
      pbVar5 = param_1;
      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();
      goto switchD_0006719c_caseD_1;
    }
  }
  local_114 = abStack_a0;
  if (local_d8 == '\0') {
    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);
  }
  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);
  bVar4 = *unaff_s2;
  pbVar5 = pbVar2;
  if (bVar4 != 0) {
    iVar14 = 0;
    iVar3 = 0;
    do {
      iVar9 = iVar3 + 1;
      pbVar11 = unaff_s2 + iVar9;
      if (bVar4 == 0x25) {
        iVar9 = iVar3 + 2;
        uVar6 = *pbVar11 - 0x48 & 0xff;
        pbVar11 = unaff_s2 + iVar9;
        if (uVar6 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x00067310 */
                    /* WARNING: Treating indirect jump as call */
          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();
          return;
        }
        *pbVar5 = 0x25;
      }
      else {
        *pbVar5 = bVar4;
      }
      iVar14 = iVar14 + 1;
      pbVar5 = pbVar2 + iVar14;
      bVar4 = *pbVar11;
      iVar3 = iVar9;
    } while (bVar4 != 0);
  }
  *pbVar5 = 0;
  if (pbVar2 == local_114) {
    puVar8 = (undefined *)0xffffffff;
  }
  else {
    puVar8 = PTR_LAB_0015b65c + -0x3990;
  }
  pbVar5 = param_1;
  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);
switchD_0006719c_caseD_1:
  if (local_3c != *(int *)puVar13) {
    uVar16 = 0x677d0;
    puVar13 = PTR___stack_chk_fail_0015ba10;
    (*(code *)PTR___stack_chk_fail_0015ba10)();
    puVar15 = auStack_138;
    while( true ) {
      pbVar2 = pbVar5;
      *(byte **)(puVar15 + -0x10) = unaff_s0;
      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;
      *(byte **)(puVar15 + -8) = unaff_s2;
      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;
      *(undefined4 *)(puVar15 + -4) = uVar16;
      unaff_s0 = *(byte **)(puVar13 + 0xf425c);
      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;
      pbVar5 = pbVar2;
      iVar3 = FUN_000637fc();
      iVar14 = *(int *)(puVar15 + -0xb0);
      unaff_s1 = puVar15 + -0xa8;
      if (iVar3 == 0) {
        unaff_s1 = puVar15 + -0x78;
        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);
        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);
        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);
        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);
        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);
        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);
        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);
        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));
        pbVar5 = pbVar2;
        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);
        iVar14 = *(int *)(puVar15 + -0xb0);
      }
      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;
      pcVar12 = *(code **)(iVar14 + -0x7ba0);
      uVar16 = 0x678d8;
      (*pcVar12)();
      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);
      unaff_s2 = pbVar2;
      puVar15 = puVar15 + -0xd8;
    }
    return;
  }
  return;
}


lui gp,0x10
addiu gp,gp,-0x3a80
addu gp,gp,t9
addiu sp,sp,-0x138
sdc1 f22,0x130(sp)
sw s3,0x10c(sp)
sw gp,0x18(sp)
sw ra,0x124(sp)
sw s8,0x120(sp)
sw s7,0x11c(sp)
sw s6,0x118(sp)
sw s5,0x114(sp)
sw s4,0x110(sp)
sw s2,0x108(sp)
sw s1,0x104(sp)
sw s0,0x100(sp)
lw s3,-0x7b84(gp)
sdc1 f20,0x128(sp)
sw a1,0x13c(sp)
lw v0,0x0(s3)
sw v0,0xfc(sp)
bne a1,zero,0x000670d0
_lw t9,-0x7f9c(gp)
lw v1,0xfc(sp)
lw v0,0x0(s3)
bne v1,v0,0x000677c4
_lw ra,0x124(sp)
lw s8,0x120(sp)
lw s7,0x11c(sp)
lw s6,0x118(sp)
lw s5,0x114(sp)
lw s4,0x110(sp)
lw s3,0x10c(sp)
lw s2,0x108(sp)
lw s1,0x104(sp)
lw s0,0x100(sp)
ldc1 f22,0x130(sp)
ldc1 f20,0x128(sp)
jr ra
_addiu sp,sp,0x138
or s0,a0,zero
lw a0,0x0(a2)
bal 0x00062ecc
_sw a2,0x20(sp)
lw gp,0x18(sp)
beq v0,zero,0x0006708c
_or s2,v0,zero
lw t9,-0x7ea0(gp)
addiu s1,sp,0x38
lw a2,0x20(sp)
or a0,s0,zero
lw a1,0x13c(sp)
or a3,s1,zero
addiu t9,t9,0x37fc
addiu a2,a2,0x4
bal 0x000637fc
_addiu a1,a1,-0x1
bne v0,zero,0x0006708c
_lw gp,0x18(sp)
lw t9,-0x7ed0(gp)
jalr t9
_or a0,s0,zero
lb t0,0x0(s2)
beq t0,zero,0x0006732c
_lw gp,0x18(sp)
lw a0,-0x7fb4(gp)
or t1,zero,zero
or t2,zero,zero
li v1,0x1
li t3,0x25
b 0x0006716c
_addiu a0,a0,0xac0
or t0,a1,zero
addiu a3,v1,0x1
or t1,a2,zero
sltu v1,a3,v1
addu t2,v1,t2
beq t0,zero,0x000671f8
_or v1,a3,zero
addiu a2,t1,0x1
addu a1,s2,a2
bne t0,t3,0x00067150
_lb a1,0x0(a1)
addiu a1,a1,-0x25
andi a1,a1,0xff
sltiu a2,a1,0x53
beq a2,zero,0x0006708c
_sll a1,a1,0x2
addu a1,a0,a1
lw a1,0x0(a1)
addu a1,a1,gp
jr a1
_nop
addiu a2,t1,0x2
addiu a1,v1,0x8
addu a3,s2,a2
sltu v1,a1,v1
addu t2,v1,t2
lb t0,0x0(a3)
b 0x00067154
_or v1,a1,zero
addiu a2,t1,0x2
b 0x000671ac
_addiu a1,v1,0x32
addiu a2,t1,0x2
b 0x000671ac
_addiu a1,v1,0x1
addiu a2,t1,0x2
addu a1,s2,a2
b 0x00067154
_lb t0,0x0(a1)
addiu a2,t1,0x2
b 0x000671ac
_addiu a1,v1,0x3
beq t2,zero,0x00067324
_sltiu v1,a3,0x64
lw a0,0x6c(v0)
sra v1,a0,0x1f
sltu a1,v1,t2
bne a1,zero,0x00067720
_lw t9,-0x7e30(gp)
beq t2,v1,0x00067718
_sltu a0,a0,a3
lbu v1,0x51(v0)
bne v1,zero,0x00067704
_lw t9,-0x7ed8(gp)
sra a2,a3,0x1f
addiu t9,t9,-0x2b10
jalr t9
_or a0,v0,zero
lw gp,0x18(sp)
beq v0,zero,0x00067704
_or s7,v0,zero
addiu v0,sp,0x98
sw v0,0x24(sp)
lb v0,0x60(sp)
bne v0,zero,0x00067268
_lw t9,-0x7ed8(gp)
addiu t9,t9,-0x6cf4
jalr t9
_or a0,s1,zero
lw gp,0x18(sp)
lw t9,-0x7ed8(gp)
addiu t9,t9,-0x66f4
jalr t9
_or a0,s1,zero
lb v0,0x0(s2)
beq v0,zero,0x000676c8
_lw gp,0x18(sp)
lw v1,-0x7f1c(gp)
or s5,zero,zero
or s6,zero,zero
or s4,s7,zero
ldc1 f22,-0x7878(v1)
lw v1,-0x7fc8(gp)
sw v1,0x28(sp)
lw v1,-0x7f1c(gp)
ldc1 f20,-0x77b0(v1)
lw v1,-0x7fb4(gp)
addiu v1,v1,0xc0c
b 0x000672d8
_sw v1,0x20(sp)
addiu s5,s5,0x1
sb v0,0x0(s4)
or s6,v1,zero
addu s4,s7,s5
or t3,s4,zero
lb v0,0x0(t2)
beq v0,zero,0x000676cc
_nop
addiu v1,s6,0x1
li a0,0x25
addu t2,s2,v1
bne v0,a0,0x000672b8
_or t3,s4,zero
lbu v0,0x0(t2)
addiu s6,s6,0x2
addiu v0,v0,-0x48
andi v0,v0,0xff
sltiu v1,v0,0x30
beq v1,zero,0x000676ac
_addu s8,s2,s6
lw v1,0x20(sp)
sll v0,v0,0x2
addu v0,v1,v0
lw v0,0x0(v0)
addu v0,v0,gp
jr v0
_nop
beq v1,zero,0x00067200
_nop
addiu v0,sp,0x98
sw v0,0x24(sp)
b 0x0006724c
_or s7,v0,zero
lw v0,0x3c(sp)
lui a1,0x7b9
lw a0,0x38(sp)
lui a3,0x526
ori a1,a1,0x8a00
lw t9,-0x7f10(gp)
addu a1,v0,a1
or a2,zero,zero
sltu v0,a1,v0
addu a0,v0,a0
jalr t9
_ori a3,a3,0x5c00
li a3,0x7
lw gp,0x18(sp)
or a2,zero,zero
or a1,v1,zero
or a0,v0,zero
lw t9,-0x7f14(gp)
jalr t9
_addiu s5,s5,0x1
or t2,s8,zero
addiu v0,v1,0x30
lw gp,0x18(sp)
sb v0,0x0(s4)
addu s4,s7,s5
b 0x000672cc
_or t3,s4,zero
lw t9,-0x7f10(gp)
li a3,0x3e8
lw a1,0x3c(sp)
or a2,zero,zero
lw a0,0x38(sp)
jalr t9
_sw s4,0x2c(sp)
lui a0,0xe75c
lw gp,0x18(sp)
addiu v0,v0,-0x32
ori a0,a0,0x96c0
addu a0,v1,a0
or a1,s4,zero
lw a2,-0x7fb4(gp)
sltu v1,a0,v1
lw t9,-0x7fa0(gp)
addu v0,v1,v0
sw a0,0x14(sp)
li a0,0x1e
addiu a2,a2,-0x74ac
bal 0x000627b4
_sw v0,0x10(sp)
lw gp,0x18(sp)
beq s4,zero,0x0006742c
_lw t3,0x2c(sp)
lw t9,-0x7bec(gp)
jalr t9
_or a0,s4,zero
ext v0,v0,0x0,0x1e
lw gp,0x18(sp)
addu s5,s5,v0
addu s4,s7,s5
or t3,s4,zero
b 0x000672cc
_or t2,s8,zero
lw t9,-0x7fa0(gp)
addiu s5,s5,0x2
lw a3,0x44(sp)
or a1,s4,zero
lw a2,-0x7fc8(gp)
li a0,0x3
addu s4,s7,s5
bal 0x000627b4
_addiu a2,a2,0x70e4
or t2,s8,zero
lw gp,0x18(sp)
b 0x000672cc
_or t3,s4,zero
ldc1 f0,0x58(sp)
c.lt.D f20,f0
bc1f 0x0006747c
_lw a2,-0x7fc8(gp)
mov.D f0,f20
li a0,0x7
lw t9,-0x7fa0(gp)
or a1,s4,zero
sdc1 f0,0x10(sp)
addiu a2,a2,0x70ec
bal 0x000627b4
_sw t3,0x2c(sp)
lw gp,0x18(sp)
bne s4,zero,0x0006740c
_lw t3,0x2c(sp)
b 0x000672cc
_or t2,s8,zero
addiu s5,s5,0x2
lw t9,-0x7fa0(gp)
or a1,s4,zero
b 0x00067444
_lw a3,0x48(sp)
lw v0,0x28(sp)
li a0,0x5
lw t9,-0x7fa0(gp)
or a1,s4,zero
lw a3,0x40(sp)
addiu a2,v0,0x7104
bal 0x000627b4
_sw s4,0x2c(sp)
lw gp,0x18(sp)
bne s4,zero,0x0006740c
_lw t3,0x2c(sp)
b 0x000672cc
_or t2,s8,zero
addiu v1,sp,0x68
or v0,s1,zero
or a0,v1,zero
or t5,v1,zero
lw t3,0x0(v0)
addiu v0,v0,0x10
addiu v1,v1,0x10
lw a3,-0xc(v0)
lw a2,-0x8(v0)
lw a1,-0x4(v0)
sw t3,-0x10(v1)
sw a3,-0xc(v1)
sw a2,-0x8(v1)
bne v0,t5,0x00067504
_sw a1,-0x4(v1)
lw t9,-0x7ed8(gp)
li v0,0x1
sw t2,0x34(sp)
sw v0,0x74(sp)
addiu t9,t9,-0x6cf4
sw v0,0x78(sp)
jalr t9
_sb zero,0x90(sp)
lui t3,0x293
lw t5,0x3c(sp)
lui a3,0x526
lw v0,0x6c(sp)
addiu t3,t3,0x2e00
lw t6,0x38(sp)
or a2,zero,zero
lw a0,0x68(sp)
ori a3,a3,0x5c00
subu v0,t5,v0
lw gp,0x18(sp)
sw t5,0x30(sp)
subu a0,t6,a0
sw t6,0x2c(sp)
addu a1,v0,t3
sltu v1,t5,v0
lw t9,-0x7f10(gp)
subu a0,a0,v1
sltu v0,a1,v0
jalr t9
_addu a0,v0,a0
lui a1,0x293
lw t2,0x34(sp)
li v0,0x57
lw gp,0x18(sp)
ori t3,a1,0x2e00
lw t6,0x2c(sp)
lb a0,0x0(t2)
beq a0,v0,0x00067730
_lw t5,0x30(sp)
lw a2,-0x7fc8(gp)
addiu a3,v1,0x1
lw t9,-0x7fa0(gp)
li a0,0x4
or a1,s4,zero
addiu a2,a2,0x70f4
bal 0x000627b4
_addiu s5,s5,0x3
lw gp,0x18(sp)
addu s4,s7,s5
or t2,s8,zero
b 0x000672cc
_or t3,s4,zero
ldc1 f0,0x58(sp)
addiu s5,s5,0x2
lw a2,-0x7fc8(gp)
or a1,s4,zero
lw t9,-0x7fa0(gp)
li a0,0x3
addu s4,s7,s5
addiu a2,a2,0x70e4
trunc.w.D f0,f0
bal 0x000627b4
_mfc1 a3,f0
or t3,s4,zero
lw gp,0x18(sp)
b 0x000672cc
_or t2,s8,zero
addiu s5,s5,0x2
lw t9,-0x7fa0(gp)
or a1,s4,zero
b 0x00067444
_lw a3,0x50(sp)
lw t9,-0x7f18(gp)
lw a1,0x3c(sp)
lw a0,0x38(sp)
jalr t9
_sw s4,0x2c(sp)
li a0,0x14
div.D f0,f0,f22
lw gp,0x18(sp)
or a1,s4,zero
lw a2,-0x7fc8(gp)
lw t9,-0x7fa0(gp)
addiu a2,a2,0x70fc
bal 0x000627b4
_sdc1 f0,0x10(sp)
lw gp,0x18(sp)
bne s4,zero,0x0006740c
_lw t3,0x2c(sp)
b 0x000672cc
_or t2,s8,zero
addiu s5,s5,0x2
lw t9,-0x7fa0(gp)
or a1,s4,zero
b 0x00067444
_lw a3,0x4c(sp)
addiu s5,s5,0x1
li v0,0x25
or t2,s8,zero
sb v0,0x0(s4)
addu s4,s7,s5
b 0x000672cc
_or t3,s4,zero
or t3,s7,zero
lw v0,0x24(sp)
beq s7,v0,0x000676fc
_sb zero,0x0(t3)
lw a3,-0x7f54(gp)
addiu a3,a3,-0x3990
lw t9,-0x7f34(gp)
li a2,-0x1
or a1,s7,zero
bal 0x0005a2cc
_or a0,s0,zero
b 0x0006708c
_lw gp,0x18(sp)
b 0x000676e0
_li a3,-0x1
lw t9,-0x7e2c(gp)
jalr t9
_or a0,s0,zero
b 0x0006708c
_lw gp,0x18(sp)
beq a0,zero,0x0006721c
_lw t9,-0x7e30(gp)
bal 0x00059f88
_or a0,s0,zero
b 0x0006708c
_lw gp,0x18(sp)
addu a1,t5,t3
lw t9,-0x7f10(gp)
addiu t2,v1,0x7
sltu a0,a1,t5
lui a3,0x526
sw t2,0x2c(sp)
addu a0,a0,t6
or a2,zero,zero
jalr t9
_ori a3,a3,0x5c00
li a3,0x7
lw gp,0x18(sp)
or a2,zero,zero
or a1,v1,zero
or a0,v0,zero
lw t9,-0x7f14(gp)
jalr t9
_addiu s5,s5,0x2
lui v0,0x9249
lw t2,0x2c(sp)
li a0,0x3
addiu v0,v0,0x2493
lw gp,0x18(sp)
or a1,s4,zero
subu t2,t2,v1
mult t2,v0
lw a2,-0x7fc8(gp)
sra a3,t2,0x1f
lw t9,-0x7fa0(gp)
addiu a2,a2,0x70e4
mfhi v0
addu v0,v0,t2
sra v0,v0,0x2
bal 0x000627b4
_subu a3,v0,a3
b 0x000675ec
_lw gp,0x18(sp)
lw t9,-0x7ba0(gp)
jalr t9
_nop
lui gp,0x10
addiu gp,gp,-0x4220
addu gp,gp,t9
addiu sp,sp,-0xd8
lw t9,-0x7ea0(gp)
sw s0,0xc8(sp)
addiu t9,t9,0x37fc
sw gp,0x28(sp)
sw s2,0xd0(sp)
or s2,a0,zero
sw s1,0xcc(sp)
addiu s1,sp,0x30
sw ra,0xd4(sp)
lw s0,-0x7b84(gp)
or a3,s1,zero
lw v0,0x0(s0)
sw v0,0xc4(sp)
bal 0x000637fc
_nop
beq v0,zero,0x00067848
_lw gp,0x28(sp)
lw v1,0xc4(sp)
lw v0,0x0(s0)
bne v1,v0,0x000678cc
_lw ra,0xd4(sp)
lw s2,0xd0(sp)
lw s1,0xcc(sp)
lw s0,0xc8(sp)
jr ra
_addiu sp,sp,0xd8
lw t9,-0x7ed8(gp)
or a0,s1,zero
addiu t9,t9,-0x66f4
jalr t9
_addiu s1,sp,0x60
li a0,0x64
ldc1 f0,0x50(sp)
or a1,s1,zero
lw v1,0x48(sp)
lw gp,0x28(sp)
lw a3,0x38(sp)
sw v1,0x1c(sp)
lw v1,0x44(sp)
lw a2,-0x7fc8(gp)
lw t9,-0x7fa0(gp)
trunc.w.D f0,f0
sw v1,0x18(sp)
lw v1,0x40(sp)
addiu a2,a2,0x710c
sw v1,0x14(sp)
lw v1,0x3c(sp)
swc1 f0,0x20(sp)
bal 0x000627b4
_sw v1,0x10(sp)
li a3,-0x1
lw gp,0x28(sp)
li a2,-0x1
or a1,s1,zero
lw t9,-0x7f34(gp)
bal 0x0005a2cc
_or a0,s2,zero
b 0x00067824
_lw gp,0x28(sp)
lw t9,-0x7ba0(gp)
jalr t9
_nop
lui gp,0x10
addiu gp,gp,-0x4328
addu gp,gp,t9
lw t9,-0x7ea0(gp)
or a2,zero,zero
addiu t9,t9,0x77d0
b 0x000677d0
_or a1,zero,zero
(translation_unit "void FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)" identifier (parameter_list "(byte *param_1,int param_2,undefined4 *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined1 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined1 auStack_138 [24];" type_identifier (array_declarator "auStack_138 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "undefined1 local_100 [40];" type_identifier (array_declarator "local_100 [40]" identifier [ number_literal ]) ;) (declaration "char local_d8;" primitive_type identifier ;) (declaration "byte abStack_a0 [100];" type_identifier (array_declarator "abStack_a0 [100]" identifier [ number_literal ]) ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "puVar13 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar13 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_3c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (if_statement "if (param_2 == 0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "pbVar5 = (byte *)*param_3;" (assignment_expression "pbVar5 = (byte *)*param_3" identifier = (cast_expression "(byte *)*param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "unaff_s2 = (byte *)sqlite3_value_text();" (assignment_expression "unaff_s2 = (byte *)sqlite3_value_text()" identifier = (cast_expression "(byte *)sqlite3_value_text()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text()" identifier (argument_list "()" ( ))))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (if_statement "if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(unaff_s2 == (byte *)0x0)" ( (binary_expression "unaff_s2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "unaff_s1 = local_100;" (assignment_expression "unaff_s1 = local_100" identifier = identifier) ;) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);" (assignment_expression "iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1)" identifier = (call_expression "FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1)" identifier (argument_list "(param_1,param_2 + -1,param_3 + 1,unaff_s1)" ( identifier , (binary_expression "param_2 + -1" identifier + number_literal) , (binary_expression "param_3 + 1" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar3 != 0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1)" identifier = (call_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)" ( (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_0015b6e0" * (cast_expression "(code *)PTR_sqlite3_context_db_handle_0015b6e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar14 = (int)(char)*unaff_s2;" (assignment_expression "iVar14 = (int)(char)*unaff_s2" identifier = (cast_expression "(int)(char)*unaff_s2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*unaff_s2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*unaff_s2" * identifier)))) ;) (if_statement "if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }" { (labeled_statement "LAB_0006732c:\n    pbVar2 = abStack_a0;" statement_identifier : (expression_statement "pbVar2 = abStack_a0;" (assignment_expression "pbVar2 = abStack_a0" identifier = identifier) ;)) }) (else_clause "else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" else (compound_statement "{\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pbVar5 = PTR_UINT_0015b5fc + 0xac0;" (assignment_expression "pbVar5 = PTR_UINT_0015b5fc + 0xac0" identifier = (binary_expression "PTR_UINT_0015b5fc + 0xac0" identifier + number_literal)) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);" do (compound_statement "{\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = iVar14 == 0x25;" (assignment_expression "bVar1 = iVar14 == 0x25" identifier = (binary_expression "iVar14 == 0x25" identifier == number_literal)) ;) (expression_statement "iVar14 = (int)(char)unaff_s2[iVar9];" (assignment_expression "iVar14 = (int)(char)unaff_s2[iVar9]" identifier = (cast_expression "(int)(char)unaff_s2[iVar9]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)unaff_s2[iVar9]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_s2[iVar9]" identifier [ identifier ])))) ;) (if_statement "if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" { (expression_statement "uVar6 = iVar14 - 0x25U & 0xff;" (assignment_expression "uVar6 = iVar14 - 0x25U & 0xff" identifier = (binary_expression "iVar14 - 0x25U & 0xff" (binary_expression "iVar14 - 0x25U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar6 < 0x53) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }" if (parenthesized_expression "(uVar6 < 0x53)" ( (binary_expression "uVar6 < 0x53" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" * (cast_expression "(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" ( (binary_expression "&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(pbVar5 + uVar6 * 4)" * (cast_expression "(int *)(pbVar5 + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + uVar6 * 4)" ( (binary_expression "pbVar5 + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = (uVar7 < uVar6) + uVar10;" (assignment_expression "uVar10 = (uVar7 < uVar6) + uVar10" identifier = (binary_expression "(uVar7 < uVar6) + uVar10" (parenthesized_expression "(uVar7 < uVar6)" ( (binary_expression "uVar7 < uVar6" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) ;) (if_statement "if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;" if (parenthesized_expression "((uVar10 == 0) && (uVar7 < 100))" ( (binary_expression "(uVar10 == 0) && (uVar7 < 100)" (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar7 < 100)" ( (binary_expression "uVar7 < 100" identifier < number_literal) ))) )) (goto_statement "goto LAB_0006732c;" goto statement_identifier ;)) (expression_statement "uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;" (assignment_expression "uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f" identifier = (binary_expression "(int)*(uint *)(iVar3 + 0x6c) >> 0x1f" (cast_expression "(int)*(uint *)(iVar3 + 0x6c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(iVar3 + 0x6c)" * (cast_expression "(uint *)(iVar3 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }" if (parenthesized_expression "((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7))))" ( (binary_expression "(uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))" (parenthesized_expression "(uVar6 < uVar10)" ( (binary_expression "uVar6 < uVar10" identifier < identifier) )) || (parenthesized_expression "((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))" ( (parenthesized_expression "(uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7))" ( (binary_expression "uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)" (binary_expression "uVar10 == uVar6" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar3 + 0x6c) < uVar7)" ( (binary_expression "*(uint *)(iVar3 + 0x6c) < uVar7" (pointer_expression "*(uint *)(iVar3 + 0x6c)" * (cast_expression "(uint *)(iVar3 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }" { (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "sqlite3_result_error_toobig();" (call_expression "sqlite3_result_error_toobig()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" if (parenthesized_expression "((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0))" ( (binary_expression "(*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)" (parenthesized_expression "(*(char *)(iVar3 + 0x51) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x51) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x51)" * (cast_expression "(char *)(iVar3 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x51)" ( (binary_expression "iVar3 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)" ( (comma_expression "pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0" (assignment_expression "pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" identifier = (cast_expression "(byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x2b10)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x2b10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x2b10)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x2b10" identifier + number_literal) )))) )) (argument_list "(iVar3,0,(int)uVar7 >> 0x1f)" ( identifier , number_literal , (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))))) , (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" { (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)();" (call_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)()" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_nomem_0015b784" * (cast_expression "(code *)PTR_sqlite3_result_error_nomem_0015b784" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) }))) (expression_statement "local_114 = abStack_a0;" (assignment_expression "local_114 = abStack_a0" identifier = identifier) ;) (if_statement "if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" if (parenthesized_expression "(local_d8 == '\0')" ( (binary_expression "local_d8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" { (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x6cf4)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x6cf4" identifier + number_literal) )))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) })) (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x66f4)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x66f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x66f4)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x66f4" identifier + number_literal) )))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "bVar4 = *unaff_s2;" (assignment_expression "bVar4 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" identifier = identifier) ;) (if_statement "if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);" do (compound_statement "{\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    }" { (expression_statement "iVar9 = iVar3 + 1;" (assignment_expression "iVar9 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = unaff_s2 + iVar9;" (assignment_expression "pbVar11 = unaff_s2 + iVar9" identifier = (binary_expression "unaff_s2 + iVar9" identifier + identifier)) ;) (if_statement "if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }" if (parenthesized_expression "(bVar4 == 0x25)" ( (binary_expression "bVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }" { (expression_statement "iVar9 = iVar3 + 2;" (assignment_expression "iVar9 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) (expression_statement "uVar6 = *pbVar11 - 0x48 & 0xff;" (assignment_expression "uVar6 = *pbVar11 - 0x48 & 0xff" identifier = (binary_expression "*pbVar11 - 0x48 & 0xff" (binary_expression "*pbVar11 - 0x48" (pointer_expression "*pbVar11" * identifier) - number_literal) & number_literal)) ;) (expression_statement "pbVar11 = unaff_s2 + iVar9;" (assignment_expression "pbVar11 = unaff_s2 + iVar9" identifier = (binary_expression "unaff_s2 + iVar9" identifier + identifier)) ;) (if_statement "if (uVar6 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }" if (parenthesized_expression "(uVar6 < 0x30)" ( (binary_expression "uVar6 < 0x30" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }" { comment comment (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" ( (binary_expression "&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" * (cast_expression "(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" ( (binary_expression "PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c" (binary_expression "PTR_UINT_0015b5fc + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "*pbVar5 = 0x25;" (assignment_expression "*pbVar5 = 0x25" (pointer_expression "*pbVar5" * identifier) = number_literal) ;) }) (else_clause "else {\n        *pbVar5 = bVar4;\n      }" else (compound_statement "{\n        *pbVar5 = bVar4;\n      }" { (expression_statement "*pbVar5 = bVar4;" (assignment_expression "*pbVar5 = bVar4" (pointer_expression "*pbVar5" * identifier) = identifier) ;) }))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar5 = pbVar2 + iVar14;" (assignment_expression "pbVar5 = pbVar2 + iVar14" identifier = (binary_expression "pbVar2 + iVar14" identifier + identifier)) ;) (expression_statement "bVar4 = *pbVar11;" (assignment_expression "bVar4 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "*pbVar5 = 0;" (assignment_expression "*pbVar5 = 0" (pointer_expression "*pbVar5" * identifier) = number_literal) ;) (if_statement "if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" if (parenthesized_expression "(pbVar2 == local_114)" ( (binary_expression "pbVar2 == local_114" identifier == identifier) )) (compound_statement "{\n    puVar8 = (undefined *)0xffffffff;\n  }" { (expression_statement "puVar8 = (undefined *)0xffffffff;" (assignment_expression "puVar8 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" else (compound_statement "{\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" { (expression_statement "puVar8 = PTR_LAB_0015b65c + -0x3990;" (assignment_expression "puVar8 = PTR_LAB_0015b65c + -0x3990" identifier = (binary_expression "PTR_LAB_0015b65c + -0x3990" identifier + number_literal)) ;) }))) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);" (call_expression "sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8)" identifier (argument_list "(param_1,pbVar2,0xffffffff,puVar8)" ( identifier , identifier , number_literal , identifier ))) ;) (labeled_statement "switchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" statement_identifier : (if_statement "if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" if (parenthesized_expression "(local_3c != *(int *)puVar13)" ( (binary_expression "local_3c != *(int *)puVar13" identifier != (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" { (expression_statement "uVar16 = 0x677d0;" (assignment_expression "uVar16 = 0x677d0" identifier = number_literal) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar13 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar15 = auStack_138;" (assignment_expression "puVar15 = auStack_138" identifier = identifier) ;) (while_statement "while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }" { (expression_statement "pbVar2 = pbVar5;" (assignment_expression "pbVar2 = pbVar5" identifier = identifier) ;) (expression_statement "*(byte **)(puVar15 + -0x10) = unaff_s0;" (assignment_expression "*(byte **)(puVar15 + -0x10) = unaff_s0" (pointer_expression "*(byte **)(puVar15 + -0x10)" * (cast_expression "(byte **)(puVar15 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;" (assignment_expression "*(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0" (pointer_expression "*(undefined **)(puVar15 + -0xb0)" * (cast_expression "(undefined **)(puVar15 + -0xb0)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) )))) = (binary_expression "puVar13 + 0xfbde0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar15 + -8) = unaff_s2;" (assignment_expression "*(byte **)(puVar15 + -8) = unaff_s2" (pointer_expression "*(byte **)(puVar15 + -8)" * (cast_expression "(byte **)(puVar15 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = unaff_s1;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = unaff_s1" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -4) = uVar16;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = uVar16" (pointer_expression "*(undefined4 *)(puVar15 + -4)" * (cast_expression "(undefined4 *)(puVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s0 = *(byte **)(puVar13 + 0xf425c);" (assignment_expression "unaff_s0 = *(byte **)(puVar13 + 0xf425c)" identifier = (pointer_expression "*(byte **)(puVar13 + 0xf425c)" * (cast_expression "(byte **)(puVar13 + 0xf425c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0xf425c)" ( (binary_expression "puVar13 + 0xf425c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)unaff_s0" * (cast_expression "(undefined4 *)unaff_s0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" identifier = identifier) ;) (expression_statement "iVar3 = FUN_000637fc();" (assignment_expression "iVar3 = FUN_000637fc()" identifier = (call_expression "FUN_000637fc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar14 = *(int *)(puVar15 + -0xb0);" (assignment_expression "iVar14 = *(int *)(puVar15 + -0xb0)" identifier = (pointer_expression "*(int *)(puVar15 + -0xb0)" * (cast_expression "(int *)(puVar15 + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = puVar15 + -0xa8;" (assignment_expression "unaff_s1 = puVar15 + -0xa8" identifier = (binary_expression "puVar15 + -0xa8" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }" { (expression_statement "unaff_s1 = puVar15 + -0x78;" (assignment_expression "unaff_s1 = puVar15 + -0x78" identifier = (binary_expression "puVar15 + -0x78" identifier + number_literal)) ;) (expression_statement "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);" (call_expression "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8)" (parenthesized_expression "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))" ( (pointer_expression "*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" * (cast_expression "(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" ( (binary_expression "*(int *)(iVar14 + -0x7ed8) + -0x66f4" (pointer_expression "*(int *)(iVar14 + -0x7ed8)" * (cast_expression "(int *)(iVar14 + -0x7ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x7ed8)" ( (binary_expression "iVar14 + -0x7ed8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar15 + -0xa8)" ( (binary_expression "puVar15 + -0xa8" identifier + number_literal) ))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);" (assignment_expression "*(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90)" (pointer_expression "*(undefined4 *)(puVar15 + -0xbc)" * (cast_expression "(undefined4 *)(puVar15 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xbc)" ( (binary_expression "puVar15 + -0xbc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x90)" * (cast_expression "(undefined4 *)(puVar15 + -0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x90)" ( (binary_expression "puVar15 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);" (assignment_expression "iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" identifier = (pointer_expression "*(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" * (cast_expression "(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + -0xb0) + -0x7fc8)" ( (binary_expression "*(int *)(puVar15 + -0xb0) + -0x7fc8" (pointer_expression "*(int *)(puVar15 + -0xb0)" * (cast_expression "(int *)(puVar15 + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc0)" * (cast_expression "(undefined4 *)(puVar15 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc0)" ( (binary_expression "puVar15 + -0xc0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x94)" * (cast_expression "(undefined4 *)(puVar15 + -0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x94)" ( (binary_expression "puVar15 + -0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc4)" * (cast_expression "(undefined4 *)(puVar15 + -0xc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc4)" ( (binary_expression "puVar15 + -0xc4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x98)" * (cast_expression "(undefined4 *)(puVar15 + -0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x98)" ( (binary_expression "puVar15 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);" (assignment_expression "*(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88)" (pointer_expression "*(int *)(puVar15 + -0xb8)" * (cast_expression "(int *)(puVar15 + -0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb8)" ( (binary_expression "puVar15 + -0xb8" identifier + number_literal) )))) = (cast_expression "(int)*(double *)(puVar15 + -0x88)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(double *)(puVar15 + -0x88)" * (cast_expression "(double *)(puVar15 + -0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x88)" ( (binary_expression "puVar15 + -0x88" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -200)" * (cast_expression "(undefined4 *)(puVar15 + -200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -200)" ( (binary_expression "puVar15 + -200" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x9c)" * (cast_expression "(undefined4 *)(puVar15 + -0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x9c)" ( (binary_expression "puVar15 + -0x9c" identifier + number_literal) ))))) ;) (expression_statement "sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));" (call_expression "sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0))" identifier (argument_list "(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0))" ( number_literal , identifier , (binary_expression "iVar3 + 0x710c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar15 + -0xa0)" * (cast_expression "(undefined4 *)(puVar15 + -0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xa0)" ( (binary_expression "puVar15 + -0xa0" identifier + number_literal) )))) ))) ;) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" identifier = identifier) ;) (expression_statement "sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);" (call_expression "sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff)" identifier (argument_list "(pbVar2,unaff_s1,0xffffffff,0xffffffff)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar14 = *(int *)(puVar15 + -0xb0);" (assignment_expression "iVar14 = *(int *)(puVar15 + -0xb0)" identifier = (pointer_expression "*(int *)(puVar15 + -0xb0)" * (cast_expression "(int *)(puVar15 + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;" if (parenthesized_expression "(*(int *)(puVar15 + -0x14) == *(int *)unaff_s0)" ( (binary_expression "*(int *)(puVar15 + -0x14) == *(int *)unaff_s0" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) == (pointer_expression "*(int *)unaff_s0" * (cast_expression "(int *)unaff_s0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = *(code **)(iVar14 + -0x7ba0);" (assignment_expression "pcVar12 = *(code **)(iVar14 + -0x7ba0)" identifier = (pointer_expression "*(code **)(iVar14 + -0x7ba0)" * (cast_expression "(code **)(iVar14 + -0x7ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + -0x7ba0)" ( (binary_expression "iVar14 + -0x7ba0" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 0x678d8;" (assignment_expression "uVar16 = 0x678d8" identifier = number_literal) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);" (assignment_expression "puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" identifier = (cast_expression "(undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" ( (binary_expression "*(int *)(pcVar12 + 0xf3e38) + 0x77d0" (pointer_expression "*(int *)(pcVar12 + 0xf3e38)" * (cast_expression "(int *)(pcVar12 + 0xf3e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0xf3e38)" ( (binary_expression "pcVar12 + 0xf3e38" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s2 = pbVar2;" (assignment_expression "unaff_s2 = pbVar2" identifier = identifier) ;) (expression_statement "puVar15 = puVar15 + -0xd8;" (assignment_expression "puVar15 = puVar15 + -0xd8" identifier = (binary_expression "puVar15 + -0xd8" identifier + number_literal)) ;) })) (return_statement "return;" return ;) }))) (return_statement "return;" return ;) })))
(translation_unit "void strftimeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte bVar5;\n  int iVar6;\n  sqlite3_value *pVal;\n  sqlite3_value *context_00;\n  byte *z;\n  uint uVar7;\n  uint uVar8;\n  _func_void_void_ptr *xDel;\n  int iVar9;\n  sqlite3_value **argv_00;\n  uint uVar10;\n  byte *pbVar11;\n  sqlite3_context *unaff_s0;\n  int *piVar12;\n  DateTime *unaff_s1;\n  byte *unaff_s2;\n  undefined *puVar13;\n  code *pcVar14;\n  DateTime DStack_1e0;\n  char acStack_1b0 [100];\n  int iStack_14c;\n  sqlite3_context *psStack_148;\n  DateTime *pDStack_144;\n  byte *pbStack_140;\n  code *pcStack_13c;\n  byte *pbStack_114;\n  DateTime x;\n  DateTime y;\n  char zBuf [100];\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  iVar2 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pVal = (sqlite3_value *)context;\n  z = (byte *)argc;\n  argv_00 = argv;\n  psStack_148 = unaff_s0;\n  if (argc == 0) goto switchD_0006719c_caseD_1;\n  pVal = *argv;\n  unaff_s2 = sqlite3_value_text(pVal);\n  psStack_148 = context;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = &x;\n  argv_00 = argv + 1;\n  z = (byte *)(argc + -1);\n  pVal = (sqlite3_value *)context;\n  iVar3 = isDate(context,(int)z,argv_00,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context);\n  iVar9 = (int)(char)*unaff_s2;\n  if (iVar9 == 0) {\nLAB_0006732c:\n    pbVar4 = (byte *)zBuf;\n  }\n  else {\n    argv_00 = (sqlite3_value **)0x0;\n    uVar10 = 0;\n    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);\n    uVar7 = 1;\n    do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);\n    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;\n    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    z = (byte *)(uint)(uVar7 < uVar10);\n    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }\n    if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);\n    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);\n    if (pbVar4 == (byte *)0x0) goto LAB_00067704;\n  }\n  z = pbVar4;\n  pbStack_114 = (byte *)zBuf;\n  if (x.validJD == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar5 = *unaff_s2;\n  pbVar4 = z;\n  if (bVar5 != 0) {\n    iVar9 = 0;\n    iVar3 = 0;\n    do {\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    } while (bVar5 != 0);\n  }\n  *pbVar4 = 0;\n  if (z == pbStack_114) {\n    xDel = (_func_void_void_ptr *)0xffffffff;\n  }\n  else {\n    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);\n  }\n  argv_00 = (sqlite3_value **)0xffffffff;\n  pVal = (sqlite3_value *)context;\n  sqlite3_result_text(context,(char *)z,-1,xDel);\nswitchD_0006719c_caseD_1:\n  if (iVar2 == *(int *)puVar13) {\n    return;\n  }\n  pcVar14 = datetimeFunc;\n  puVar13 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar13 + 0xf425c);\n  iStack_14c = *piVar12;\n  context_00 = pVal;\n  pDStack_144 = unaff_s1;\n  pbStack_140 = unaff_s2;\n  pcStack_13c = pcVar14;\n  iVar2 = isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0);\n  if (iVar2 == 0) {\n    (*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);\n    sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);\n    sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);\n    context_00 = pVal;\n  }\n  if (iStack_14c != *piVar12) {\n    (**(code **)(puVar13 + 1000000))();\n    datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void strftimeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)\n\n{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte bVar5;\n  int iVar6;\n  sqlite3_value *pVal;\n  sqlite3_value *context_00;\n  byte *z;\n  uint uVar7;\n  uint uVar8;\n  _func_void_void_ptr *xDel;\n  int iVar9;\n  sqlite3_value **argv_00;\n  uint uVar10;\n  byte *pbVar11;\n  sqlite3_context *unaff_s0;\n  int *piVar12;\n  DateTime *unaff_s1;\n  byte *unaff_s2;\n  undefined *puVar13;\n  code *pcVar14;\n  DateTime DStack_1e0;\n  char acStack_1b0 [100];\n  int iStack_14c;\n  sqlite3_context *psStack_148;\n  DateTime *pDStack_144;\n  byte *pbStack_140;\n  code *pcStack_13c;\n  byte *pbStack_114;\n  DateTime x;\n  DateTime y;\n  char zBuf [100];\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  iVar2 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pVal = (sqlite3_value *)context;\n  z = (byte *)argc;\n  argv_00 = argv;\n  psStack_148 = unaff_s0;\n  if (argc == 0) goto switchD_0006719c_caseD_1;\n  pVal = *argv;\n  unaff_s2 = sqlite3_value_text(pVal);\n  psStack_148 = context;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = &x;\n  argv_00 = argv + 1;\n  z = (byte *)(argc + -1);\n  pVal = (sqlite3_value *)context;\n  iVar3 = isDate(context,(int)z,argv_00,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context);\n  iVar9 = (int)(char)*unaff_s2;\n  if (iVar9 == 0) {\nLAB_0006732c:\n    pbVar4 = (byte *)zBuf;\n  }\n  else {\n    argv_00 = (sqlite3_value **)0x0;\n    uVar10 = 0;\n    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);\n    uVar7 = 1;\n    do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);\n    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;\n    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    z = (byte *)(uint)(uVar7 < uVar10);\n    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }\n    if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);\n    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);\n    if (pbVar4 == (byte *)0x0) goto LAB_00067704;\n  }\n  z = pbVar4;\n  pbStack_114 = (byte *)zBuf;\n  if (x.validJD == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar5 = *unaff_s2;\n  pbVar4 = z;\n  if (bVar5 != 0) {\n    iVar9 = 0;\n    iVar3 = 0;\n    do {\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    } while (bVar5 != 0);\n  }\n  *pbVar4 = 0;\n  if (z == pbStack_114) {\n    xDel = (_func_void_void_ptr *)0xffffffff;\n  }\n  else {\n    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);\n  }\n  argv_00 = (sqlite3_value **)0xffffffff;\n  pVal = (sqlite3_value *)context;\n  sqlite3_result_text(context,(char *)z,-1,xDel);\nswitchD_0006719c_caseD_1:\n  if (iVar2 == *(int *)puVar13) {\n    return;\n  }\n  pcVar14 = datetimeFunc;\n  puVar13 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar13 + 0xf425c);\n  iStack_14c = *piVar12;\n  context_00 = pVal;\n  pDStack_144 = unaff_s1;\n  pbStack_140 = unaff_s2;\n  pcStack_13c = pcVar14;\n  iVar2 = isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0);\n  if (iVar2 == 0) {\n    (*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);\n    sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);\n    sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);\n    context_00 = pVal;\n  }\n  if (iStack_14c != *piVar12) {\n    (**(code **)(puVar13 + 1000000))();\n    datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "strftimeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)" identifier (parameter_list "(sqlite3_context *context,int argc,sqlite3_value **argv)" ( (parameter_declaration "sqlite3_context *context" type_identifier (pointer_declarator "*context" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "sqlite3_value **argv" type_identifier (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) ))) (compound_statement "{\n  bool bVar1;\n  int iVar2;\n  int iVar3;\n  byte *pbVar4;\n  byte bVar5;\n  int iVar6;\n  sqlite3_value *pVal;\n  sqlite3_value *context_00;\n  byte *z;\n  uint uVar7;\n  uint uVar8;\n  _func_void_void_ptr *xDel;\n  int iVar9;\n  sqlite3_value **argv_00;\n  uint uVar10;\n  byte *pbVar11;\n  sqlite3_context *unaff_s0;\n  int *piVar12;\n  DateTime *unaff_s1;\n  byte *unaff_s2;\n  undefined *puVar13;\n  code *pcVar14;\n  DateTime DStack_1e0;\n  char acStack_1b0 [100];\n  int iStack_14c;\n  sqlite3_context *psStack_148;\n  DateTime *pDStack_144;\n  byte *pbStack_140;\n  code *pcStack_13c;\n  byte *pbStack_114;\n  DateTime x;\n  DateTime y;\n  char zBuf [100];\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  iVar2 = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pVal = (sqlite3_value *)context;\n  z = (byte *)argc;\n  argv_00 = argv;\n  psStack_148 = unaff_s0;\n  if (argc == 0) goto switchD_0006719c_caseD_1;\n  pVal = *argv;\n  unaff_s2 = sqlite3_value_text(pVal);\n  psStack_148 = context;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = &x;\n  argv_00 = argv + 1;\n  z = (byte *)(argc + -1);\n  pVal = (sqlite3_value *)context;\n  iVar3 = isDate(context,(int)z,argv_00,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context);\n  iVar9 = (int)(char)*unaff_s2;\n  if (iVar9 == 0) {\nLAB_0006732c:\n    pbVar4 = (byte *)zBuf;\n  }\n  else {\n    argv_00 = (sqlite3_value **)0x0;\n    uVar10 = 0;\n    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);\n    uVar7 = 1;\n    do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);\n    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;\n    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    z = (byte *)(uint)(uVar7 < uVar10);\n    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }\n    if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);\n    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);\n    if (pbVar4 == (byte *)0x0) goto LAB_00067704;\n  }\n  z = pbVar4;\n  pbStack_114 = (byte *)zBuf;\n  if (x.validJD == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar5 = *unaff_s2;\n  pbVar4 = z;\n  if (bVar5 != 0) {\n    iVar9 = 0;\n    iVar3 = 0;\n    do {\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    } while (bVar5 != 0);\n  }\n  *pbVar4 = 0;\n  if (z == pbStack_114) {\n    xDel = (_func_void_void_ptr *)0xffffffff;\n  }\n  else {\n    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);\n  }\n  argv_00 = (sqlite3_value **)0xffffffff;\n  pVal = (sqlite3_value *)context;\n  sqlite3_result_text(context,(char *)z,-1,xDel);\nswitchD_0006719c_caseD_1:\n  if (iVar2 == *(int *)puVar13) {\n    return;\n  }\n  pcVar14 = datetimeFunc;\n  puVar13 = PTR___stack_chk_fail_0015ba10;\n  (*(code *)PTR___stack_chk_fail_0015ba10)();\n  piVar12 = *(int **)(puVar13 + 0xf425c);\n  iStack_14c = *piVar12;\n  context_00 = pVal;\n  pDStack_144 = unaff_s1;\n  pbStack_140 = unaff_s2;\n  pcStack_13c = pcVar14;\n  iVar2 = isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0);\n  if (iVar2 == 0) {\n    (*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);\n    sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);\n    sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);\n    context_00 = pVal;\n  }\n  if (iStack_14c != *piVar12) {\n    (**(code **)(puVar13 + 1000000))();\n    datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);\n    return;\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar4;" type_identifier (pointer_declarator "*pbVar4" * identifier) ;) (declaration "byte bVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "sqlite3_value *pVal;" type_identifier (pointer_declarator "*pVal" * identifier) ;) (declaration "sqlite3_value *context_00;" type_identifier (pointer_declarator "*context_00" * identifier) ;) (declaration "byte *z;" type_identifier (pointer_declarator "*z" * identifier) ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "_func_void_void_ptr *xDel;" type_identifier (pointer_declarator "*xDel" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "sqlite3_value **argv_00;" type_identifier (pointer_declarator "**argv_00" * (pointer_declarator "*argv_00" * identifier)) ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "sqlite3_context *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "DateTime *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "code *pcVar14;" type_identifier (pointer_declarator "*pcVar14" * identifier) ;) (declaration "DateTime DStack_1e0;" type_identifier identifier ;) (declaration "char acStack_1b0 [100];" primitive_type (array_declarator "acStack_1b0 [100]" identifier [ number_literal ]) ;) (declaration "int iStack_14c;" primitive_type identifier ;) (declaration "sqlite3_context *psStack_148;" type_identifier (pointer_declarator "*psStack_148" * identifier) ;) (declaration "DateTime *pDStack_144;" type_identifier (pointer_declarator "*pDStack_144" * identifier) ;) (declaration "byte *pbStack_140;" type_identifier (pointer_declarator "*pbStack_140" * identifier) ;) (declaration "code *pcStack_13c;" type_identifier (pointer_declarator "*pcStack_13c" * identifier) ;) (declaration "byte *pbStack_114;" type_identifier (pointer_declarator "*pbStack_114" * identifier) ;) (declaration "DateTime x;" type_identifier identifier ;) (declaration "DateTime y;" type_identifier identifier ;) (declaration "char zBuf [100];" primitive_type (array_declarator "zBuf [100]" identifier [ number_literal ]) ;) (expression_statement "puVar13 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar13 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "iVar2 = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "iVar2 = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pVal = (sqlite3_value *)context;" (assignment_expression "pVal = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "z = (byte *)argc;" (assignment_expression "z = (byte *)argc" identifier = (cast_expression "(byte *)argc" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "argv_00 = argv;" (assignment_expression "argv_00 = argv" identifier = identifier) ;) (expression_statement "psStack_148 = unaff_s0;" (assignment_expression "psStack_148 = unaff_s0" identifier = identifier) ;) (if_statement "if (argc == 0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(argc == 0)" ( (binary_expression "argc == 0" identifier == number_literal) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "pVal = *argv;" (assignment_expression "pVal = *argv" identifier = (pointer_expression "*argv" * identifier)) ;) (expression_statement "unaff_s2 = sqlite3_value_text(pVal);" (assignment_expression "unaff_s2 = sqlite3_value_text(pVal)" identifier = (call_expression "sqlite3_value_text(pVal)" identifier (argument_list "(pVal)" ( identifier )))) ;) (expression_statement "psStack_148 = context;" (assignment_expression "psStack_148 = context" identifier = identifier) ;) (if_statement "if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(unaff_s2 == (byte *)0x0)" ( (binary_expression "unaff_s2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "unaff_s1 = &x;" (assignment_expression "unaff_s1 = &x" identifier = (pointer_expression "&x" & identifier)) ;) (expression_statement "argv_00 = argv + 1;" (assignment_expression "argv_00 = argv + 1" identifier = (binary_expression "argv + 1" identifier + number_literal)) ;) (expression_statement "z = (byte *)(argc + -1);" (assignment_expression "z = (byte *)(argc + -1)" identifier = (cast_expression "(byte *)(argc + -1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(argc + -1)" ( (binary_expression "argc + -1" identifier + number_literal) )))) ;) (expression_statement "pVal = (sqlite3_value *)context;" (assignment_expression "pVal = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "iVar3 = isDate(context,(int)z,argv_00,unaff_s1);" (assignment_expression "iVar3 = isDate(context,(int)z,argv_00,unaff_s1)" identifier = (call_expression "isDate(context,(int)z,argv_00,unaff_s1)" identifier (argument_list "(context,(int)z,argv_00,unaff_s1)" ( identifier , (cast_expression "(int)z" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar3 != 0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context);" (assignment_expression "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context)" identifier = (call_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(context)" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)" ( (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_0015b6e0" * (cast_expression "(code *)PTR_sqlite3_context_db_handle_0015b6e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(context)" ( identifier )))) ;) (expression_statement "iVar9 = (int)(char)*unaff_s2;" (assignment_expression "iVar9 = (int)(char)*unaff_s2" identifier = (cast_expression "(int)(char)*unaff_s2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*unaff_s2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*unaff_s2" * identifier)))) ;) (if_statement "if (iVar9 == 0) {\nLAB_0006732c:\n    pbVar4 = (byte *)zBuf;\n  }\n  else {\n    argv_00 = (sqlite3_value **)0x0;\n    uVar10 = 0;\n    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);\n    uVar7 = 1;\n    do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);\n    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;\n    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    z = (byte *)(uint)(uVar7 < uVar10);\n    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }\n    if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);\n    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);\n    if (pbVar4 == (byte *)0x0) goto LAB_00067704;\n  }" if (parenthesized_expression "(iVar9 == 0)" ( (binary_expression "iVar9 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006732c:\n    pbVar4 = (byte *)zBuf;\n  }" { (labeled_statement "LAB_0006732c:\n    pbVar4 = (byte *)zBuf;" statement_identifier : (expression_statement "pbVar4 = (byte *)zBuf;" (assignment_expression "pbVar4 = (byte *)zBuf" identifier = (cast_expression "(byte *)zBuf" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) }) (else_clause "else {\n    argv_00 = (sqlite3_value **)0x0;\n    uVar10 = 0;\n    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);\n    uVar7 = 1;\n    do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);\n    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;\n    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    z = (byte *)(uint)(uVar7 < uVar10);\n    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }\n    if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);\n    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);\n    if (pbVar4 == (byte *)0x0) goto LAB_00067704;\n  }" else (compound_statement "{\n    argv_00 = (sqlite3_value **)0x0;\n    uVar10 = 0;\n    pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);\n    uVar7 = 1;\n    do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);\n    if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;\n    uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    z = (byte *)(uint)(uVar7 < uVar10);\n    if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }\n    if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n    argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);\n    pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);\n    if (pbVar4 == (byte *)0x0) goto LAB_00067704;\n  }" { (expression_statement "argv_00 = (sqlite3_value **)0x0;" (assignment_expression "argv_00 = (sqlite3_value **)0x0" identifier = (cast_expression "(sqlite3_value **)0x0" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0);" (assignment_expression "pVal = (sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0)" identifier = (cast_expression "(sqlite3_value *)(PTR_DAT_0015b5fc + 0xac0)" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5fc + 0xac0)" ( (binary_expression "PTR_DAT_0015b5fc + 0xac0" identifier + number_literal) )))) ;) (expression_statement "uVar7 = 1;" (assignment_expression "uVar7 = 1" identifier = number_literal) ;) (do_statement "do {\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    } while (iVar9 != 0);" do (compound_statement "{\n      argv_00 = (sqlite3_value **)((int)argv_00 + 1);\n      bVar1 = iVar9 == 0x25;\n      iVar9 = (int)(char)unaff_s2[(int)argv_00];\n      if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar8 = uVar7 + 1;\n      uVar10 = (uVar8 < uVar7) + uVar10;\n      uVar7 = uVar8;\n    }" { (expression_statement "argv_00 = (sqlite3_value **)((int)argv_00 + 1);" (assignment_expression "argv_00 = (sqlite3_value **)((int)argv_00 + 1)" identifier = (cast_expression "(sqlite3_value **)((int)argv_00 + 1)" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)argv_00 + 1)" ( (binary_expression "(int)argv_00 + 1" (cast_expression "(int)argv_00" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "bVar1 = iVar9 == 0x25;" (assignment_expression "bVar1 = iVar9 == 0x25" identifier = (binary_expression "iVar9 == 0x25" identifier == number_literal)) ;) (expression_statement "iVar9 = (int)(char)unaff_s2[(int)argv_00];" (assignment_expression "iVar9 = (int)(char)unaff_s2[(int)argv_00]" identifier = (cast_expression "(int)(char)unaff_s2[(int)argv_00]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)unaff_s2[(int)argv_00]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_s2[(int)argv_00]" identifier [ (cast_expression "(int)argv_00" ( (type_descriptor "int" primitive_type) ) identifier) ])))) ;) (if_statement "if (bVar1) {\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        uVar7 = iVar9 - 0x25U & 0xff;\n        argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);\n        z = (byte *)(uVar7 * 4);\n        if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" { (expression_statement "uVar7 = iVar9 - 0x25U & 0xff;" (assignment_expression "uVar7 = iVar9 - 0x25U & 0xff" identifier = (binary_expression "iVar9 - 0x25U & 0xff" (binary_expression "iVar9 - 0x25U" identifier - number_literal) & number_literal)) ;) (expression_statement "argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53);" (assignment_expression "argv_00 = (sqlite3_value **)(uint)(uVar7 < 0x53)" identifier = (cast_expression "(sqlite3_value **)(uint)(uVar7 < 0x53)" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(uint)(uVar7 < 0x53)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < 0x53)" ( (binary_expression "uVar7 < 0x53" identifier < number_literal) ))))) ;) (expression_statement "z = (byte *)(uVar7 * 4);" (assignment_expression "z = (byte *)(uVar7 * 4)" identifier = (cast_expression "(byte *)(uVar7 * 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar7 * 4)" ( (binary_expression "uVar7 * 4" identifier * number_literal) )))) ;) (if_statement "if (argv_00 != (sqlite3_value **)0x0) {\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }" if (parenthesized_expression "(argv_00 != (sqlite3_value **)0x0)" ( (binary_expression "argv_00 != (sqlite3_value **)0x0" identifier != (cast_expression "(sqlite3_value **)0x0" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00067190 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();\n          return;\n        }" { comment comment (expression_statement "(*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))();" (call_expression "(*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(z + (int)&pVal->u)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(z + (int)&pVal->u))" * (cast_expression "(code *)(&_gp + *(int *)(z + (int)&pVal->u))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(z + (int)&pVal->u))" ( (binary_expression "&_gp + *(int *)(z + (int)&pVal->u)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(z + (int)&pVal->u)" * (cast_expression "(int *)(z + (int)&pVal->u)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(z + (int)&pVal->u)" ( (binary_expression "z + (int)&pVal->u" identifier + (cast_expression "(int)&pVal->u" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pVal->u" & (field_expression "pVal->u" identifier -> field_identifier)))) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (expression_statement "uVar8 = uVar7 + 1;" (assignment_expression "uVar8 = uVar7 + 1" identifier = (binary_expression "uVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = (uVar8 < uVar7) + uVar10;" (assignment_expression "uVar10 = (uVar8 < uVar7) + uVar10" identifier = (binary_expression "(uVar8 < uVar7) + uVar10" (parenthesized_expression "(uVar8 < uVar7)" ( (binary_expression "uVar8 < uVar7" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar7 = uVar8;" (assignment_expression "uVar7 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(iVar9 != 0)" ( (binary_expression "iVar9 != 0" identifier != number_literal) )) ;) (if_statement "if ((uVar10 == 0) && (uVar8 < 100)) goto LAB_0006732c;" if (parenthesized_expression "((uVar10 == 0) && (uVar8 < 100))" ( (binary_expression "(uVar10 == 0) && (uVar8 < 100)" (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar8 < 100)" ( (binary_expression "uVar8 < 100" identifier < number_literal) ))) )) (goto_statement "goto LAB_0006732c;" goto statement_identifier ;)) (expression_statement "uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;" (assignment_expression "uVar7 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f" identifier = (binary_expression "(int)*(uint *)(iVar3 + 0x6c) >> 0x1f" (cast_expression "(int)*(uint *)(iVar3 + 0x6c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(iVar3 + 0x6c)" * (cast_expression "(uint *)(iVar3 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) ))))) >> number_literal)) ;) (expression_statement "z = (byte *)(uint)(uVar7 < uVar10);" (assignment_expression "z = (byte *)(uint)(uVar7 < uVar10)" identifier = (cast_expression "(byte *)(uint)(uVar7 < uVar10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(uint)(uVar7 < uVar10)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar7 < uVar10)" ( (binary_expression "uVar7 < uVar10" identifier < identifier) ))))) ;) (if_statement "if ((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))) {\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }" if (parenthesized_expression "((z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8))))" ( (binary_expression "(z != (byte *)0x0) || ((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))" (parenthesized_expression "(z != (byte *)0x0)" ( (binary_expression "z != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "((uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)))" ( (parenthesized_expression "(uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8))" ( (binary_expression "uVar10 == uVar7 && (*(uint *)(iVar3 + 0x6c) < uVar8)" (binary_expression "uVar10 == uVar7" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar3 + 0x6c) < uVar8)" ( (binary_expression "*(uint *)(iVar3 + 0x6c) < uVar8" (pointer_expression "*(uint *)(iVar3 + 0x6c)" * (cast_expression "(uint *)(iVar3 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n      pVal = (sqlite3_value *)context;\n      sqlite3_result_error_toobig(context);\n      goto switchD_0006719c_caseD_1;\n    }" { (expression_statement "pVal = (sqlite3_value *)context;" (assignment_expression "pVal = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sqlite3_result_error_toobig(context);" (call_expression "sqlite3_result_error_toobig(context)" identifier (argument_list "(context)" ( identifier ))) ;) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (if_statement "if (*(char *)(iVar3 + 0x51) != '\0') {\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" if (parenthesized_expression "(*(char *)(iVar3 + 0x51) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x51) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x51)" * (cast_expression "(char *)(iVar3 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x51)" ( (binary_expression "iVar3 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\nLAB_00067704:\n      pVal = (sqlite3_value *)context;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" { (labeled_statement "LAB_00067704:\n      pVal = (sqlite3_value *)context;" statement_identifier : (expression_statement "pVal = (sqlite3_value *)context;" (assignment_expression "pVal = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)();" (call_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)()" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_nomem_0015b784" * (cast_expression "(code *)PTR_sqlite3_result_error_nomem_0015b784" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (expression_statement "argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f);" (assignment_expression "argv_00 = (sqlite3_value **)((int)uVar8 >> 0x1f)" identifier = (cast_expression "(sqlite3_value **)((int)uVar8 >> 0x1f)" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)uVar8 >> 0x1f)" ( (binary_expression "(int)uVar8 >> 0x1f" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) (expression_statement "pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3);" (assignment_expression "pbVar4 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3)" identifier = (cast_expression "(byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x2b10)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x2b10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x2b10)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x2b10" identifier + number_literal) )))) )) (argument_list "(iVar3)" ( identifier ))))) ;) (if_statement "if (pbVar4 == (byte *)0x0) goto LAB_00067704;" if (parenthesized_expression "(pbVar4 == (byte *)0x0)" ( (binary_expression "pbVar4 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00067704;" goto statement_identifier ;)) }))) (expression_statement "z = pbVar4;" (assignment_expression "z = pbVar4" identifier = identifier) ;) (expression_statement "pbStack_114 = (byte *)zBuf;" (assignment_expression "pbStack_114 = (byte *)zBuf" identifier = (cast_expression "(byte *)zBuf" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (x.validJD == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" if (parenthesized_expression "(x.validJD == '\0')" ( (binary_expression "x.validJD == '\0'" (field_expression "x.validJD" identifier . field_identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" { (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x6cf4)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x6cf4" identifier + number_literal) )))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) })) (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x66f4)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x66f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x66f4)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x66f4" identifier + number_literal) )))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "bVar5 = *unaff_s2;" (assignment_expression "bVar5 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "pbVar4 = z;" (assignment_expression "pbVar4 = z" identifier = identifier) ;) (if_statement "if (bVar5 != 0) {\n    iVar9 = 0;\n    iVar3 = 0;\n    do {\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    } while (bVar5 != 0);\n  }" if (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar9 = 0;\n    iVar3 = 0;\n    do {\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    } while (bVar5 != 0);\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    } while (bVar5 != 0);" do (compound_statement "{\n      iVar6 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar6;\n      if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }\n      iVar9 = iVar9 + 1;\n      pbVar4 = z + iVar9;\n      bVar5 = *pbVar11;\n      iVar3 = iVar6;\n    }" { (expression_statement "iVar6 = iVar3 + 1;" (assignment_expression "iVar6 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = unaff_s2 + iVar6;" (assignment_expression "pbVar11 = unaff_s2 + iVar6" identifier = (binary_expression "unaff_s2 + iVar6" identifier + identifier)) ;) (if_statement "if (bVar5 == 0x25) {\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }\n      else {\n        *pbVar4 = bVar5;\n      }" if (parenthesized_expression "(bVar5 == 0x25)" ( (binary_expression "bVar5 == 0x25" identifier == number_literal) )) (compound_statement "{\n        iVar6 = iVar3 + 2;\n        uVar7 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar6;\n        if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar4 = 0x25;\n      }" { (expression_statement "iVar6 = iVar3 + 2;" (assignment_expression "iVar6 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) (expression_statement "uVar7 = *pbVar11 - 0x48 & 0xff;" (assignment_expression "uVar7 = *pbVar11 - 0x48 & 0xff" identifier = (binary_expression "*pbVar11 - 0x48 & 0xff" (binary_expression "*pbVar11 - 0x48" (pointer_expression "*pbVar11" * identifier) - number_literal) & number_literal)) ;) (expression_statement "pbVar11 = unaff_s2 + iVar6;" (assignment_expression "pbVar11 = unaff_s2 + iVar6" identifier = (binary_expression "unaff_s2 + iVar6" identifier + identifier)) ;) (if_statement "if (uVar7 < 0x30) {\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }" if (parenthesized_expression "(uVar7 < 0x30)" ( (binary_expression "uVar7 < 0x30" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not emulate address calculation at 0x00067310 */\n                    /* WARNING: Treating indirect jump as call */\n          (*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();\n          return;\n        }" { comment comment (expression_statement "(*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))();" (call_expression "(*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))()" (parenthesized_expression "(*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)))" ( (pointer_expression "*(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c))" * (cast_expression "(code *)(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c))" ( (binary_expression "&_gp + *(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)" (pointer_expression "&_gp" & identifier) + (pointer_expression "*(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)" * (cast_expression "(int *)(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c)" ( (binary_expression "PTR_DAT_0015b5fc + uVar7 * 4 + 0xc0c" (binary_expression "PTR_DAT_0015b5fc + uVar7 * 4" identifier + (binary_expression "uVar7 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "*pbVar4 = 0x25;" (assignment_expression "*pbVar4 = 0x25" (pointer_expression "*pbVar4" * identifier) = number_literal) ;) }) (else_clause "else {\n        *pbVar4 = bVar5;\n      }" else (compound_statement "{\n        *pbVar4 = bVar5;\n      }" { (expression_statement "*pbVar4 = bVar5;" (assignment_expression "*pbVar4 = bVar5" (pointer_expression "*pbVar4" * identifier) = identifier) ;) }))) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "pbVar4 = z + iVar9;" (assignment_expression "pbVar4 = z + iVar9" identifier = (binary_expression "z + iVar9" identifier + identifier)) ;) (expression_statement "bVar5 = *pbVar11;" (assignment_expression "bVar5 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "iVar3 = iVar6;" (assignment_expression "iVar3 = iVar6" identifier = identifier) ;) }) while (parenthesized_expression "(bVar5 != 0)" ( (binary_expression "bVar5 != 0" identifier != number_literal) )) ;) })) (expression_statement "*pbVar4 = 0;" (assignment_expression "*pbVar4 = 0" (pointer_expression "*pbVar4" * identifier) = number_literal) ;) (if_statement "if (z == pbStack_114) {\n    xDel = (_func_void_void_ptr *)0xffffffff;\n  }\n  else {\n    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);\n  }" if (parenthesized_expression "(z == pbStack_114)" ( (binary_expression "z == pbStack_114" identifier == identifier) )) (compound_statement "{\n    xDel = (_func_void_void_ptr *)0xffffffff;\n  }" { (expression_statement "xDel = (_func_void_void_ptr *)0xffffffff;" (assignment_expression "xDel = (_func_void_void_ptr *)0xffffffff" identifier = (cast_expression "(_func_void_void_ptr *)0xffffffff" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);\n  }" else (compound_statement "{\n    xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);\n  }" { (expression_statement "xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990);" (assignment_expression "xDel = (_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990)" identifier = (cast_expression "(_func_void_void_ptr *)(PTR_LAB_0015b65c + -0x3990)" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b65c + -0x3990)" ( (binary_expression "PTR_LAB_0015b65c + -0x3990" identifier + number_literal) )))) ;) }))) (expression_statement "argv_00 = (sqlite3_value **)0xffffffff;" (assignment_expression "argv_00 = (sqlite3_value **)0xffffffff" identifier = (cast_expression "(sqlite3_value **)0xffffffff" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pVal = (sqlite3_value *)context;" (assignment_expression "pVal = (sqlite3_value *)context" identifier = (cast_expression "(sqlite3_value *)context" ( (type_descriptor "sqlite3_value *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "sqlite3_result_text(context,(char *)z,-1,xDel);" (call_expression "sqlite3_result_text(context,(char *)z,-1,xDel)" identifier (argument_list "(context,(char *)z,-1,xDel)" ( identifier , (cast_expression "(char *)z" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , identifier ))) ;) (labeled_statement "switchD_0006719c_caseD_1:\n  if (iVar2 == *(int *)puVar13) {\n    return;\n  }" statement_identifier : (if_statement "if (iVar2 == *(int *)puVar13) {\n    return;\n  }" if (parenthesized_expression "(iVar2 == *(int *)puVar13)" ( (binary_expression "iVar2 == *(int *)puVar13" identifier == (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar14 = datetimeFunc;" (assignment_expression "pcVar14 = datetimeFunc" identifier = identifier) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar13 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar12 = *(int **)(puVar13 + 0xf425c);" (assignment_expression "piVar12 = *(int **)(puVar13 + 0xf425c)" identifier = (pointer_expression "*(int **)(puVar13 + 0xf425c)" * (cast_expression "(int **)(puVar13 + 0xf425c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0xf425c)" ( (binary_expression "puVar13 + 0xf425c" identifier + number_literal) ))))) ;) (expression_statement "iStack_14c = *piVar12;" (assignment_expression "iStack_14c = *piVar12" identifier = (pointer_expression "*piVar12" * identifier)) ;) (expression_statement "context_00 = pVal;" (assignment_expression "context_00 = pVal" identifier = identifier) ;) (expression_statement "pDStack_144 = unaff_s1;" (assignment_expression "pDStack_144 = unaff_s1" identifier = identifier) ;) (expression_statement "pbStack_140 = unaff_s2;" (assignment_expression "pbStack_140 = unaff_s2" identifier = identifier) ;) (expression_statement "pcStack_13c = pcVar14;" (assignment_expression "pcStack_13c = pcVar14" identifier = identifier) ;) (expression_statement "iVar2 = isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0);" (assignment_expression "iVar2 = isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0)" identifier = (call_expression "isDate((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0)" identifier (argument_list "((sqlite3_context *)pVal,(int)z,argv_00,&DStack_1e0)" ( (cast_expression "(sqlite3_context *)pVal" ( (type_descriptor "sqlite3_context *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)z" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (pointer_expression "&DStack_1e0" & identifier) )))) ;) (if_statement "if (iVar2 == 0) {\n    (*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);\n    sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);\n    sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);\n    context_00 = pVal;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    (*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);\n    sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);\n    sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);\n    context_00 = pVal;\n  }" { (expression_statement "(*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0);" (call_expression "(*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))(&DStack_1e0)" (parenthesized_expression "(*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4))" ( (pointer_expression "*(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4)" * (cast_expression "(code *)(*(int *)(puVar13 + 0xf3f08) + -0x66f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0xf3f08) + -0x66f4)" ( (binary_expression "*(int *)(puVar13 + 0xf3f08) + -0x66f4" (pointer_expression "*(int *)(puVar13 + 0xf3f08)" * (cast_expression "(int *)(puVar13 + 0xf3f08)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xf3f08)" ( (binary_expression "puVar13 + 0xf3f08" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(&DStack_1e0)" ( (pointer_expression "&DStack_1e0" & identifier) ))) ;) (expression_statement "sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);" (call_expression "sqlite3_snprintf(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s)" identifier (argument_list "(100,acStack_1b0,(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c),DStack_1e0.Y,\n                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s)" ( number_literal , identifier , (cast_expression "(char *)(*(int *)(puVar13 + 0xf3e18) + 0x710c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar13 + 0xf3e18) + 0x710c)" ( (binary_expression "*(int *)(puVar13 + 0xf3e18) + 0x710c" (pointer_expression "*(int *)(puVar13 + 0xf3e18)" * (cast_expression "(int *)(puVar13 + 0xf3e18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar13 + 0xf3e18)" ( (binary_expression "puVar13 + 0xf3e18" identifier + number_literal) )))) + number_literal) ))) , (field_expression "DStack_1e0.Y" identifier . field_identifier) , (field_expression "DStack_1e0.M" identifier . field_identifier) , (field_expression "DStack_1e0.D" identifier . field_identifier) , (field_expression "DStack_1e0.h" identifier . field_identifier) , (field_expression "DStack_1e0.m" identifier . field_identifier) , (cast_expression "(int)DStack_1e0.s" ( (type_descriptor "int" primitive_type) ) (field_expression "DStack_1e0.s" identifier . field_identifier)) ))) ;) (expression_statement "sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff);" (call_expression "sqlite3_result_text((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff)" identifier (argument_list "((sqlite3_context *)pVal,acStack_1b0,-1,(_func_void_void_ptr *)0xffffffff)" ( (cast_expression "(sqlite3_context *)pVal" ( (type_descriptor "sqlite3_context *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal , (cast_expression "(_func_void_void_ptr *)0xffffffff" ( (type_descriptor "_func_void_void_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) ))) ;) (expression_statement "context_00 = pVal;" (assignment_expression "context_00 = pVal" identifier = identifier) ;) })) (if_statement "if (iStack_14c != *piVar12) {\n    (**(code **)(puVar13 + 1000000))();\n    datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);\n    return;\n  }" if (parenthesized_expression "(iStack_14c != *piVar12)" ( (binary_expression "iStack_14c != *piVar12" identifier != (pointer_expression "*piVar12" * identifier)) )) (compound_statement "{\n    (**(code **)(puVar13 + 1000000))();\n    datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);\n    return;\n  }" { (expression_statement "(**(code **)(puVar13 + 1000000))();" (call_expression "(**(code **)(puVar13 + 1000000))()" (parenthesized_expression "(**(code **)(puVar13 + 1000000))" ( (pointer_expression "**(code **)(puVar13 + 1000000)" * (pointer_expression "*(code **)(puVar13 + 1000000)" * (cast_expression "(code **)(puVar13 + 1000000)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 1000000)" ( (binary_expression "puVar13 + 1000000" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0);" (call_expression "datetimeFunc((sqlite3_context *)context_00,0,(sqlite3_value **)0x0)" identifier (argument_list "((sqlite3_context *)context_00,0,(sqlite3_value **)0x0)" ( (cast_expression "(sqlite3_context *)context_00" ( (type_descriptor "sqlite3_context *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(sqlite3_value **)0x0" ( (type_descriptor "sqlite3_value **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}\n\n" (function_definition "void FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)" identifier (parameter_list "(byte *param_1,int param_2,undefined4 *param_3)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "byte *pbVar2;" type_identifier (pointer_declarator "*pbVar2" * identifier) ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "uint uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *unaff_s0;" type_identifier (pointer_declarator "*unaff_s0" * identifier) ;) (declaration "undefined1 *unaff_s1;" type_identifier (pointer_declarator "*unaff_s1" * identifier) ;) (declaration "byte *unaff_s2;" type_identifier (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "code *pcVar12;" type_identifier (pointer_declarator "*pcVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "undefined1 *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "undefined4 uVar16;" type_identifier identifier ;) (declaration "undefined1 auStack_138 [24];" type_identifier (array_declarator "auStack_138 [24]" identifier [ number_literal ]) ;) (declaration "byte *local_114;" type_identifier (pointer_declarator "*local_114" * identifier) ;) (declaration "undefined1 local_100 [40];" type_identifier (array_declarator "local_100 [40]" identifier [ number_literal ]) ;) (declaration "char local_d8;" primitive_type identifier ;) (declaration "byte abStack_a0 [100];" type_identifier (array_declarator "abStack_a0 [100]" identifier [ number_literal ]) ;) (declaration "int local_3c;" primitive_type identifier ;) (expression_statement "puVar13 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar13 = PTR___stack_chk_guard_0015ba2c" identifier = identifier) ;) (expression_statement "local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_3c = *(int *)PTR___stack_chk_guard_0015ba2c" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" * (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (if_statement "if (param_2 == 0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "pbVar5 = (byte *)*param_3;" (assignment_expression "pbVar5 = (byte *)*param_3" identifier = (cast_expression "(byte *)*param_3" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_3" * identifier))) ;) (expression_statement "unaff_s2 = (byte *)sqlite3_value_text();" (assignment_expression "unaff_s2 = (byte *)sqlite3_value_text()" identifier = (cast_expression "(byte *)sqlite3_value_text()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text()" identifier (argument_list "()" ( ))))) ;) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" identifier = identifier) ;) (if_statement "if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(unaff_s2 == (byte *)0x0)" ( (binary_expression "unaff_s2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "unaff_s1 = local_100;" (assignment_expression "unaff_s1 = local_100" identifier = identifier) ;) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);" (assignment_expression "iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1)" identifier = (call_expression "FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1)" identifier (argument_list "(param_1,param_2 + -1,param_3 + 1,unaff_s1)" ( identifier , (binary_expression "param_2 + -1" identifier + number_literal) , (binary_expression "param_3 + 1" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar3 != 0) goto switchD_0006719c_caseD_1;" if (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;)) (expression_statement "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1)" identifier = (call_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)" ( (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_0015b6e0" * (cast_expression "(code *)PTR_sqlite3_context_db_handle_0015b6e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1)" ( identifier )))) ;) (expression_statement "iVar14 = (int)(char)*unaff_s2;" (assignment_expression "iVar14 = (int)(char)*unaff_s2" identifier = (cast_expression "(int)(char)*unaff_s2" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)*unaff_s2" ( (type_descriptor "char" primitive_type) ) (pointer_expression "*unaff_s2" * identifier)))) ;) (if_statement "if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" if (parenthesized_expression "(iVar14 == 0)" ( (binary_expression "iVar14 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }" { (labeled_statement "LAB_0006732c:\n    pbVar2 = abStack_a0;" statement_identifier : (expression_statement "pbVar2 = abStack_a0;" (assignment_expression "pbVar2 = abStack_a0" identifier = identifier) ;)) }) (else_clause "else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" else (compound_statement "{\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pbVar5 = PTR_UINT_0015b5fc + 0xac0;" (assignment_expression "pbVar5 = PTR_UINT_0015b5fc + 0xac0" identifier = (binary_expression "PTR_UINT_0015b5fc + 0xac0" identifier + number_literal)) ;) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" identifier = number_literal) ;) (do_statement "do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);" do (compound_statement "{\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    }" { (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) (expression_statement "bVar1 = iVar14 == 0x25;" (assignment_expression "bVar1 = iVar14 == 0x25" identifier = (binary_expression "iVar14 == 0x25" identifier == number_literal)) ;) (expression_statement "iVar14 = (int)(char)unaff_s2[iVar9];" (assignment_expression "iVar14 = (int)(char)unaff_s2[iVar9]" identifier = (cast_expression "(int)(char)unaff_s2[iVar9]" ( (type_descriptor "int" primitive_type) ) (cast_expression "(char)unaff_s2[iVar9]" ( (type_descriptor "char" primitive_type) ) (subscript_expression "unaff_s2[iVar9]" identifier [ identifier ])))) ;) (if_statement "if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" if (parenthesized_expression "(bVar1)" ( identifier )) (compound_statement "{\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" { (expression_statement "uVar6 = iVar14 - 0x25U & 0xff;" (assignment_expression "uVar6 = iVar14 - 0x25U & 0xff" identifier = (binary_expression "iVar14 - 0x25U & 0xff" (binary_expression "iVar14 - 0x25U" identifier - number_literal) & number_literal)) ;) (if_statement "if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }" if (parenthesized_expression "(uVar6 < 0x53)" ( (binary_expression "uVar6 < 0x53" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" * (cast_expression "(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" ( (binary_expression "&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(pbVar5 + uVar6 * 4)" * (cast_expression "(int *)(pbVar5 + uVar6 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar5 + uVar6 * 4)" ( (binary_expression "pbVar5 + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" identifier = (binary_expression "uVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = (uVar7 < uVar6) + uVar10;" (assignment_expression "uVar10 = (uVar7 < uVar6) + uVar10" identifier = (binary_expression "(uVar7 < uVar6) + uVar10" (parenthesized_expression "(uVar7 < uVar6)" ( (binary_expression "uVar7 < uVar6" identifier < identifier) )) + identifier)) ;) (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "(iVar14 != 0)" ( (binary_expression "iVar14 != 0" identifier != number_literal) )) ;) (if_statement "if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;" if (parenthesized_expression "((uVar10 == 0) && (uVar7 < 100))" ( (binary_expression "(uVar10 == 0) && (uVar7 < 100)" (parenthesized_expression "(uVar10 == 0)" ( (binary_expression "uVar10 == 0" identifier == number_literal) )) && (parenthesized_expression "(uVar7 < 100)" ( (binary_expression "uVar7 < 100" identifier < number_literal) ))) )) (goto_statement "goto LAB_0006732c;" goto statement_identifier ;)) (expression_statement "uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;" (assignment_expression "uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f" identifier = (binary_expression "(int)*(uint *)(iVar3 + 0x6c) >> 0x1f" (cast_expression "(int)*(uint *)(iVar3 + 0x6c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(uint *)(iVar3 + 0x6c)" * (cast_expression "(uint *)(iVar3 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) ))))) >> number_literal)) ;) (if_statement "if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }" if (parenthesized_expression "((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7))))" ( (binary_expression "(uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))" (parenthesized_expression "(uVar6 < uVar10)" ( (binary_expression "uVar6 < uVar10" identifier < identifier) )) || (parenthesized_expression "((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))" ( (parenthesized_expression "(uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7))" ( (binary_expression "uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)" (binary_expression "uVar10 == uVar6" identifier == identifier) && (parenthesized_expression "(*(uint *)(iVar3 + 0x6c) < uVar7)" ( (binary_expression "*(uint *)(iVar3 + 0x6c) < uVar7" (pointer_expression "*(uint *)(iVar3 + 0x6c)" * (cast_expression "(uint *)(iVar3 + 0x6c)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x6c)" ( (binary_expression "iVar3 + 0x6c" identifier + number_literal) )))) < identifier) ))) )) ))) )) (compound_statement "{\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }" { (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "sqlite3_result_error_toobig();" (call_expression "sqlite3_result_error_toobig()" identifier (argument_list "()" ( ))) ;) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) (if_statement "if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" if (parenthesized_expression "((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0))" ( (binary_expression "(*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)" (parenthesized_expression "(*(char *)(iVar3 + 0x51) != '\0')" ( (binary_expression "*(char *)(iVar3 + 0x51) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x51)" * (cast_expression "(char *)(iVar3 + 0x51)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + 0x51)" ( (binary_expression "iVar3 + 0x51" identifier + number_literal) )))) != (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "(pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)" ( (comma_expression "pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0" (assignment_expression "pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" identifier = (cast_expression "(byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x2b10)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x2b10)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x2b10)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x2b10" identifier + number_literal) )))) )) (argument_list "(iVar3,0,(int)uVar7 >> 0x1f)" ( identifier , number_literal , (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) ))))) , (binary_expression "pbVar2 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" { (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)();" (call_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)()" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)" ( (pointer_expression "*(code *)PTR_sqlite3_result_error_nomem_0015b784" * (cast_expression "(code *)PTR_sqlite3_result_error_nomem_0015b784" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (goto_statement "goto switchD_0006719c_caseD_1;" goto statement_identifier ;) })) }))) (expression_statement "local_114 = abStack_a0;" (assignment_expression "local_114 = abStack_a0" identifier = identifier) ;) (if_statement "if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" if (parenthesized_expression "(local_d8 == '\0')" ( (binary_expression "local_d8 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" { (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x6cf4)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x6cf4" identifier + number_literal) )))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) })) (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))" ( (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x66f4)" * (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x66f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x66f4)" ( (binary_expression "PTR_LAB_0015b6d8 + -0x66f4" identifier + number_literal) )))) )) (argument_list "(unaff_s1)" ( identifier ))) ;) (expression_statement "bVar4 = *unaff_s2;" (assignment_expression "bVar4 = *unaff_s2" identifier = (pointer_expression "*unaff_s2" * identifier)) ;) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" identifier = identifier) ;) (if_statement "if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }" { (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);" do (compound_statement "{\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    }" { (expression_statement "iVar9 = iVar3 + 1;" (assignment_expression "iVar9 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "pbVar11 = unaff_s2 + iVar9;" (assignment_expression "pbVar11 = unaff_s2 + iVar9" identifier = (binary_expression "unaff_s2 + iVar9" identifier + identifier)) ;) (if_statement "if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }" if (parenthesized_expression "(bVar4 == 0x25)" ( (binary_expression "bVar4 == 0x25" identifier == number_literal) )) (compound_statement "{\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }" { (expression_statement "iVar9 = iVar3 + 2;" (assignment_expression "iVar9 = iVar3 + 2" identifier = (binary_expression "iVar3 + 2" identifier + number_literal)) ;) (expression_statement "uVar6 = *pbVar11 - 0x48 & 0xff;" (assignment_expression "uVar6 = *pbVar11 - 0x48 & 0xff" identifier = (binary_expression "*pbVar11 - 0x48 & 0xff" (binary_expression "*pbVar11 - 0x48" (pointer_expression "*pbVar11" * identifier) - number_literal) & number_literal)) ;) (expression_statement "pbVar11 = unaff_s2 + iVar9;" (assignment_expression "pbVar11 = unaff_s2 + iVar9" identifier = (binary_expression "unaff_s2 + iVar9" identifier + identifier)) ;) (if_statement "if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }" if (parenthesized_expression "(uVar6 < 0x30)" ( (binary_expression "uVar6 < 0x30" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }" { (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))" ( (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" * (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" ( (binary_expression "&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" (pointer_expression "&_gp_1" & identifier) + (pointer_expression "*(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" * (cast_expression "(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" ( (binary_expression "PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c" (binary_expression "PTR_UINT_0015b5fc + uVar6 * 4" identifier + (binary_expression "uVar6 * 4" identifier * number_literal)) + number_literal) ))))) )))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (expression_statement "*pbVar5 = 0x25;" (assignment_expression "*pbVar5 = 0x25" (pointer_expression "*pbVar5" * identifier) = number_literal) ;) }) (else_clause "else {\n        *pbVar5 = bVar4;\n      }" else (compound_statement "{\n        *pbVar5 = bVar4;\n      }" { (expression_statement "*pbVar5 = bVar4;" (assignment_expression "*pbVar5 = bVar4" (pointer_expression "*pbVar5" * identifier) = identifier) ;) }))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "pbVar5 = pbVar2 + iVar14;" (assignment_expression "pbVar5 = pbVar2 + iVar14" identifier = (binary_expression "pbVar2 + iVar14" identifier + identifier)) ;) (expression_statement "bVar4 = *pbVar11;" (assignment_expression "bVar4 = *pbVar11" identifier = (pointer_expression "*pbVar11" * identifier)) ;) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" identifier = identifier) ;) }) while (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) ;) })) (expression_statement "*pbVar5 = 0;" (assignment_expression "*pbVar5 = 0" (pointer_expression "*pbVar5" * identifier) = number_literal) ;) (if_statement "if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" if (parenthesized_expression "(pbVar2 == local_114)" ( (binary_expression "pbVar2 == local_114" identifier == identifier) )) (compound_statement "{\n    puVar8 = (undefined *)0xffffffff;\n  }" { (expression_statement "puVar8 = (undefined *)0xffffffff;" (assignment_expression "puVar8 = (undefined *)0xffffffff" identifier = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" else (compound_statement "{\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" { (expression_statement "puVar8 = PTR_LAB_0015b65c + -0x3990;" (assignment_expression "puVar8 = PTR_LAB_0015b65c + -0x3990" identifier = (binary_expression "PTR_LAB_0015b65c + -0x3990" identifier + number_literal)) ;) }))) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" identifier = identifier) ;) (expression_statement "sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);" (call_expression "sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8)" identifier (argument_list "(param_1,pbVar2,0xffffffff,puVar8)" ( identifier , identifier , number_literal , identifier ))) ;) (labeled_statement "switchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" statement_identifier : (if_statement "if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" if (parenthesized_expression "(local_3c != *(int *)puVar13)" ( (binary_expression "local_3c != *(int *)puVar13" identifier != (pointer_expression "*(int *)puVar13" * (cast_expression "(int *)puVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" { (expression_statement "uVar16 = 0x677d0;" (assignment_expression "uVar16 = 0x677d0" identifier = number_literal) ;) (expression_statement "puVar13 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar13 = PTR___stack_chk_fail_0015ba10" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" * (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar15 = auStack_138;" (assignment_expression "puVar15 = auStack_138" identifier = identifier) ;) (while_statement "while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }" { (expression_statement "pbVar2 = pbVar5;" (assignment_expression "pbVar2 = pbVar5" identifier = identifier) ;) (expression_statement "*(byte **)(puVar15 + -0x10) = unaff_s0;" (assignment_expression "*(byte **)(puVar15 + -0x10) = unaff_s0" (pointer_expression "*(byte **)(puVar15 + -0x10)" * (cast_expression "(byte **)(puVar15 + -0x10)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0x10)" ( (binary_expression "puVar15 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;" (assignment_expression "*(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0" (pointer_expression "*(undefined **)(puVar15 + -0xb0)" * (cast_expression "(undefined **)(puVar15 + -0xb0)" ( (type_descriptor "undefined **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) )))) = (binary_expression "puVar13 + 0xfbde0" identifier + number_literal)) ;) (expression_statement "*(byte **)(puVar15 + -8) = unaff_s2;" (assignment_expression "*(byte **)(puVar15 + -8) = unaff_s2" (pointer_expression "*(byte **)(puVar15 + -8)" * (cast_expression "(byte **)(puVar15 + -8)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -8)" ( (binary_expression "puVar15 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = unaff_s1;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = unaff_s1" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" * (cast_expression "(undefined1 **)(puVar15 + -0xc)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar15 + -0xc)" ( (binary_expression "puVar15 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar15 + -4) = uVar16;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = uVar16" (pointer_expression "*(undefined4 *)(puVar15 + -4)" * (cast_expression "(undefined4 *)(puVar15 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -4)" ( (binary_expression "puVar15 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "unaff_s0 = *(byte **)(puVar13 + 0xf425c);" (assignment_expression "unaff_s0 = *(byte **)(puVar13 + 0xf425c)" identifier = (pointer_expression "*(byte **)(puVar13 + 0xf425c)" * (cast_expression "(byte **)(puVar13 + 0xf425c)" ( (type_descriptor "byte **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar13 + 0xf425c)" ( (binary_expression "puVar13 + 0xf425c" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" * (cast_expression "(undefined4 *)(puVar15 + -0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)unaff_s0" * (cast_expression "(undefined4 *)unaff_s0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" identifier = identifier) ;) (expression_statement "iVar3 = FUN_000637fc();" (assignment_expression "iVar3 = FUN_000637fc()" identifier = (call_expression "FUN_000637fc()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar14 = *(int *)(puVar15 + -0xb0);" (assignment_expression "iVar14 = *(int *)(puVar15 + -0xb0)" identifier = (pointer_expression "*(int *)(puVar15 + -0xb0)" * (cast_expression "(int *)(puVar15 + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) ))))) ;) (expression_statement "unaff_s1 = puVar15 + -0xa8;" (assignment_expression "unaff_s1 = puVar15 + -0xa8" identifier = (binary_expression "puVar15 + -0xa8" identifier + number_literal)) ;) (if_statement "if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }" { (expression_statement "unaff_s1 = puVar15 + -0x78;" (assignment_expression "unaff_s1 = puVar15 + -0x78" identifier = (binary_expression "puVar15 + -0x78" identifier + number_literal)) ;) (expression_statement "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);" (call_expression "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8)" (parenthesized_expression "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))" ( (pointer_expression "*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" * (cast_expression "(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" ( (binary_expression "*(int *)(iVar14 + -0x7ed8) + -0x66f4" (pointer_expression "*(int *)(iVar14 + -0x7ed8)" * (cast_expression "(int *)(iVar14 + -0x7ed8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar14 + -0x7ed8)" ( (binary_expression "iVar14 + -0x7ed8" identifier + number_literal) )))) + number_literal) )))) )) (argument_list "(puVar15 + -0xa8)" ( (binary_expression "puVar15 + -0xa8" identifier + number_literal) ))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);" (assignment_expression "*(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90)" (pointer_expression "*(undefined4 *)(puVar15 + -0xbc)" * (cast_expression "(undefined4 *)(puVar15 + -0xbc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xbc)" ( (binary_expression "puVar15 + -0xbc" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x90)" * (cast_expression "(undefined4 *)(puVar15 + -0x90)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x90)" ( (binary_expression "puVar15 + -0x90" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);" (assignment_expression "iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" identifier = (pointer_expression "*(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" * (cast_expression "(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar15 + -0xb0) + -0x7fc8)" ( (binary_expression "*(int *)(puVar15 + -0xb0) + -0x7fc8" (pointer_expression "*(int *)(puVar15 + -0xb0)" * (cast_expression "(int *)(puVar15 + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) )))) + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc0)" * (cast_expression "(undefined4 *)(puVar15 + -0xc0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc0)" ( (binary_expression "puVar15 + -0xc0" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x94)" * (cast_expression "(undefined4 *)(puVar15 + -0x94)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x94)" ( (binary_expression "puVar15 + -0x94" identifier + number_literal) ))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc4)" * (cast_expression "(undefined4 *)(puVar15 + -0xc4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xc4)" ( (binary_expression "puVar15 + -0xc4" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x98)" * (cast_expression "(undefined4 *)(puVar15 + -0x98)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x98)" ( (binary_expression "puVar15 + -0x98" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);" (assignment_expression "*(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88)" (pointer_expression "*(int *)(puVar15 + -0xb8)" * (cast_expression "(int *)(puVar15 + -0xb8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb8)" ( (binary_expression "puVar15 + -0xb8" identifier + number_literal) )))) = (cast_expression "(int)*(double *)(puVar15 + -0x88)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(double *)(puVar15 + -0x88)" * (cast_expression "(double *)(puVar15 + -0x88)" ( (type_descriptor "double *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x88)" ( (binary_expression "puVar15 + -0x88" identifier + number_literal) )))))) ;) (expression_statement "*(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -200)" * (cast_expression "(undefined4 *)(puVar15 + -200)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -200)" ( (binary_expression "puVar15 + -200" identifier + number_literal) )))) = (pointer_expression "*(undefined4 *)(puVar15 + -0x9c)" * (cast_expression "(undefined4 *)(puVar15 + -0x9c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x9c)" ( (binary_expression "puVar15 + -0x9c" identifier + number_literal) ))))) ;) (expression_statement "sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));" (call_expression "sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0))" identifier (argument_list "(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0))" ( number_literal , identifier , (binary_expression "iVar3 + 0x710c" identifier + number_literal) , (pointer_expression "*(undefined4 *)(puVar15 + -0xa0)" * (cast_expression "(undefined4 *)(puVar15 + -0xa0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xa0)" ( (binary_expression "puVar15 + -0xa0" identifier + number_literal) )))) ))) ;) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" identifier = identifier) ;) (expression_statement "sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);" (call_expression "sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff)" identifier (argument_list "(pbVar2,unaff_s1,0xffffffff,0xffffffff)" ( identifier , identifier , number_literal , number_literal ))) ;) (expression_statement "iVar14 = *(int *)(puVar15 + -0xb0);" (assignment_expression "iVar14 = *(int *)(puVar15 + -0xb0)" identifier = (pointer_expression "*(int *)(puVar15 + -0xb0)" * (cast_expression "(int *)(puVar15 + -0xb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0xb0)" ( (binary_expression "puVar15 + -0xb0" identifier + number_literal) ))))) ;) })) (if_statement "if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;" if (parenthesized_expression "(*(int *)(puVar15 + -0x14) == *(int *)unaff_s0)" ( (binary_expression "*(int *)(puVar15 + -0x14) == *(int *)unaff_s0" (pointer_expression "*(int *)(puVar15 + -0x14)" * (cast_expression "(int *)(puVar15 + -0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar15 + -0x14)" ( (binary_expression "puVar15 + -0x14" identifier + number_literal) )))) == (pointer_expression "*(int *)unaff_s0" * (cast_expression "(int *)unaff_s0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (break_statement "break;" break ;)) (expression_statement "pcVar12 = *(code **)(iVar14 + -0x7ba0);" (assignment_expression "pcVar12 = *(code **)(iVar14 + -0x7ba0)" identifier = (pointer_expression "*(code **)(iVar14 + -0x7ba0)" * (cast_expression "(code **)(iVar14 + -0x7ba0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar14 + -0x7ba0)" ( (binary_expression "iVar14 + -0x7ba0" identifier + number_literal) ))))) ;) (expression_statement "uVar16 = 0x678d8;" (assignment_expression "uVar16 = 0x678d8" identifier = number_literal) ;) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" ( (pointer_expression "*pcVar12" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);" (assignment_expression "puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" identifier = (cast_expression "(undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" ( (binary_expression "*(int *)(pcVar12 + 0xf3e38) + 0x77d0" (pointer_expression "*(int *)(pcVar12 + 0xf3e38)" * (cast_expression "(int *)(pcVar12 + 0xf3e38)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar12 + 0xf3e38)" ( (binary_expression "pcVar12 + 0xf3e38" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "unaff_s2 = pbVar2;" (assignment_expression "unaff_s2 = pbVar2" identifier = identifier) ;) (expression_statement "puVar15 = puVar15 + -0xd8;" (assignment_expression "puVar15 = puVar15 + -0xd8" identifier = (binary_expression "puVar15 + -0xd8" identifier + number_literal)) ;) })) (return_statement "return;" return ;) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE 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 (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (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 (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , 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 *)) ) IDENT)) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT - LIT) & 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 (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) >> LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < IDENT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT == IDENT) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < IDENT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (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 , LIT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 (binary_expression (pointer_expression * IDENT) - LIT) & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_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 *)) ) (parenthesized_expression ( (binary_expression (pointer_expression & IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression IDENT * LIT)) + LIT) ))))) )))) )) (argument_list ( ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) )) (argument_list ( (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( LIT , IDENT , (binary_expression IDENT + LIT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (return_statement return ;) }))) (return_statement return ;) })))
(function_definition "void FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)\n\n{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00067030(byte *param_1,int param_2,undefined4 *param_3)" (identifier "FUN_00067030") (parameter_list "(byte *param_1,int param_2,undefined4 *param_3)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  byte *pbVar2;\n  byte bVar4;\n  int iVar3;\n  byte *pbVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined *puVar8;\n  int iVar9;\n  uint uVar10;\n  byte *pbVar11;\n  byte *unaff_s0;\n  undefined1 *unaff_s1;\n  byte *unaff_s2;\n  code *pcVar12;\n  undefined *puVar13;\n  int iVar14;\n  undefined1 *puVar15;\n  undefined4 uVar16;\n  undefined1 auStack_138 [24];\n  byte *local_114;\n  undefined1 local_100 [40];\n  char local_d8;\n  byte abStack_a0 [100];\n  int local_3c;\n  \n  puVar13 = PTR___stack_chk_guard_0015ba2c;\n  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;\n  pbVar5 = param_1;\n  if (param_2 == 0) goto switchD_0006719c_caseD_1;\n  pbVar5 = (byte *)*param_3;\n  unaff_s2 = (byte *)sqlite3_value_text();\n  unaff_s0 = param_1;\n  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;\n  unaff_s1 = local_100;\n  pbVar5 = param_1;\n  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);\n  if (iVar3 != 0) goto switchD_0006719c_caseD_1;\n  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);\n  iVar14 = (int)(char)*unaff_s2;\n  if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }\n  local_114 = abStack_a0;\n  if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }\n  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);\n  bVar4 = *unaff_s2;\n  pbVar5 = pbVar2;\n  if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }\n  *pbVar5 = 0;\n  if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }\n  pbVar5 = param_1;\n  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);\nswitchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "byte *pbVar2;" (type_identifier "byte") (pointer_declarator "*pbVar2" (* "*") (identifier "pbVar2")) (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "uint uVar10;" (type_identifier "uint") (identifier "uVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *unaff_s0;" (type_identifier "byte") (pointer_declarator "*unaff_s0" (* "*") (identifier "unaff_s0")) (; ";")) (declaration "undefined1 *unaff_s1;" (type_identifier "undefined1") (pointer_declarator "*unaff_s1" (* "*") (identifier "unaff_s1")) (; ";")) (declaration "byte *unaff_s2;" (type_identifier "byte") (pointer_declarator "*unaff_s2" (* "*") (identifier "unaff_s2")) (; ";")) (declaration "code *pcVar12;" (type_identifier "code") (pointer_declarator "*pcVar12" (* "*") (identifier "pcVar12")) (; ";")) (declaration "undefined *puVar13;" (type_identifier "undefined") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "undefined1 *puVar15;" (type_identifier "undefined1") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "undefined4 uVar16;" (type_identifier "undefined4") (identifier "uVar16") (; ";")) (declaration "undefined1 auStack_138 [24];" (type_identifier "undefined1") (array_declarator "auStack_138 [24]" (identifier "auStack_138") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "byte *local_114;" (type_identifier "byte") (pointer_declarator "*local_114" (* "*") (identifier "local_114")) (; ";")) (declaration "undefined1 local_100 [40];" (type_identifier "undefined1") (array_declarator "local_100 [40]" (identifier "local_100") ([ "[") (number_literal "40") (] "]")) (; ";")) (declaration "char local_d8;" (primitive_type "char") (identifier "local_d8") (; ";")) (declaration "byte abStack_a0 [100];" (type_identifier "byte") (array_declarator "abStack_a0 [100]" (identifier "abStack_a0") ([ "[") (number_literal "100") (] "]")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (expression_statement "puVar13 = PTR___stack_chk_guard_0015ba2c;" (assignment_expression "puVar13 = PTR___stack_chk_guard_0015ba2c" (identifier "puVar13") (= "=") (identifier "PTR___stack_chk_guard_0015ba2c")) (; ";")) (expression_statement "local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;" (assignment_expression "local_3c = *(int *)PTR___stack_chk_guard_0015ba2c" (identifier "local_3c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ba2c" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ba2c" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ba2c")))) (; ";")) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" (identifier "pbVar5") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (param_2 == 0) goto switchD_0006719c_caseD_1;" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto switchD_0006719c_caseD_1;" (goto "goto") (statement_identifier "switchD_0006719c_caseD_1") (; ";"))) (expression_statement "pbVar5 = (byte *)*param_3;" (assignment_expression "pbVar5 = (byte *)*param_3" (identifier "pbVar5") (= "=") (cast_expression "(byte *)*param_3" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_3" (* "*") (identifier "param_3")))) (; ";")) (expression_statement "unaff_s2 = (byte *)sqlite3_value_text();" (assignment_expression "unaff_s2 = (byte *)sqlite3_value_text()" (identifier "unaff_s2") (= "=") (cast_expression "(byte *)sqlite3_value_text()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_text()" (identifier "sqlite3_value_text") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "unaff_s0 = param_1;" (assignment_expression "unaff_s0 = param_1" (identifier "unaff_s0") (= "=") (identifier "param_1")) (; ";")) (if_statement "if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;" (if "if") (parenthesized_expression "(unaff_s2 == (byte *)0x0)" (( "(") (binary_expression "unaff_s2 == (byte *)0x0" (identifier "unaff_s2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto switchD_0006719c_caseD_1;" (goto "goto") (statement_identifier "switchD_0006719c_caseD_1") (; ";"))) (expression_statement "unaff_s1 = local_100;" (assignment_expression "unaff_s1 = local_100" (identifier "unaff_s1") (= "=") (identifier "local_100")) (; ";")) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" (identifier "pbVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);" (assignment_expression "iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1)" (identifier "iVar3") (= "=") (call_expression "FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1)" (identifier "FUN_000637fc") (argument_list "(param_1,param_2 + -1,param_3 + 1,unaff_s1)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 + -1" (identifier "param_2") (+ "+") (number_literal "-1")) (, ",") (binary_expression "param_3 + 1" (identifier "param_3") (+ "+") (number_literal "1")) (, ",") (identifier "unaff_s1") () ")")))) (; ";")) (if_statement "if (iVar3 != 0) goto switchD_0006719c_caseD_1;" (if "if") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto switchD_0006719c_caseD_1;" (goto "goto") (statement_identifier "switchD_0006719c_caseD_1") (; ";"))) (expression_statement "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);" (assignment_expression "iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1)" (identifier "iVar3") (= "=") (call_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1)" (parenthesized_expression "(*(code *)PTR_sqlite3_context_db_handle_0015b6e0)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_context_db_handle_0015b6e0" (* "*") (cast_expression "(code *)PTR_sqlite3_context_db_handle_0015b6e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_context_db_handle_0015b6e0"))) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (expression_statement "iVar14 = (int)(char)*unaff_s2;" (assignment_expression "iVar14 = (int)(char)*unaff_s2" (identifier "iVar14") (= "=") (cast_expression "(int)(char)*unaff_s2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)*unaff_s2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))))) (; ";")) (if_statement "if (iVar14 == 0) {\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }\n  else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar14 == 0)" (( "(") (binary_expression "iVar14 == 0" (identifier "iVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_0006732c:\n    pbVar2 = abStack_a0;\n  }" ({ "{") (labeled_statement "LAB_0006732c:\n    pbVar2 = abStack_a0;" (statement_identifier "LAB_0006732c") (: ":") (expression_statement "pbVar2 = abStack_a0;" (assignment_expression "pbVar2 = abStack_a0" (identifier "pbVar2") (= "=") (identifier "abStack_a0")) (; ";"))) (} "}")) (else_clause "else {\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" (else "else") (compound_statement "{\n    iVar9 = 0;\n    uVar10 = 0;\n    pbVar5 = PTR_UINT_0015b5fc + 0xac0;\n    uVar6 = 1;\n    do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);\n    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;\n    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;\n    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }\n    if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }\n  }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar5 = PTR_UINT_0015b5fc + 0xac0;" (assignment_expression "pbVar5 = PTR_UINT_0015b5fc + 0xac0" (identifier "pbVar5") (= "=") (binary_expression "PTR_UINT_0015b5fc + 0xac0" (identifier "PTR_UINT_0015b5fc") (+ "+") (number_literal "0xac0"))) (; ";")) (expression_statement "uVar6 = 1;" (assignment_expression "uVar6 = 1" (identifier "uVar6") (= "=") (number_literal "1")) (; ";")) (do_statement "do {\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    } while (iVar14 != 0);" (do "do") (compound_statement "{\n      iVar9 = iVar9 + 1;\n      bVar1 = iVar14 == 0x25;\n      iVar14 = (int)(char)unaff_s2[iVar9];\n      if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }\n      uVar7 = uVar6 + 1;\n      uVar10 = (uVar7 < uVar6) + uVar10;\n      uVar6 = uVar7;\n    }" ({ "{") (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar1 = iVar14 == 0x25;" (assignment_expression "bVar1 = iVar14 == 0x25" (identifier "bVar1") (= "=") (binary_expression "iVar14 == 0x25" (identifier "iVar14") (== "==") (number_literal "0x25"))) (; ";")) (expression_statement "iVar14 = (int)(char)unaff_s2[iVar9];" (assignment_expression "iVar14 = (int)(char)unaff_s2[iVar9]" (identifier "iVar14") (= "=") (cast_expression "(int)(char)unaff_s2[iVar9]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(char)unaff_s2[iVar9]" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (subscript_expression "unaff_s2[iVar9]" (identifier "unaff_s2") ([ "[") (identifier "iVar9") (] "]"))))) (; ";")) (if_statement "if (bVar1) {\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (compound_statement "{\n        uVar6 = iVar14 - 0x25U & 0xff;\n        if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }\n        goto switchD_0006719c_caseD_1;\n      }" ({ "{") (expression_statement "uVar6 = iVar14 - 0x25U & 0xff;" (assignment_expression "uVar6 = iVar14 - 0x25U & 0xff" (identifier "uVar6") (= "=") (binary_expression "iVar14 - 0x25U & 0xff" (binary_expression "iVar14 - 0x25U" (identifier "iVar14") (- "-") (number_literal "0x25U")) (& "&") (number_literal "0xff"))) (; ";")) (if_statement "if (uVar6 < 0x53) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }" (if "if") (parenthesized_expression "(uVar6 < 0x53)" (( "(") (binary_expression "uVar6 < 0x53" (identifier "uVar6") (< "<") (number_literal "0x53")) () ")")) (compound_statement "{\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();\n          return;\n        }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4))" (( "(") (binary_expression "&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(pbVar5 + uVar6 * 4)" (* "*") (cast_expression "(int *)(pbVar5 + uVar6 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar5 + uVar6 * 4)" (( "(") (binary_expression "pbVar5 + uVar6 * 4" (identifier "pbVar5") (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto switchD_0006719c_caseD_1;" (goto "goto") (statement_identifier "switchD_0006719c_caseD_1") (; ";")) (} "}"))) (expression_statement "uVar7 = uVar6 + 1;" (assignment_expression "uVar7 = uVar6 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar6 + 1" (identifier "uVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar10 = (uVar7 < uVar6) + uVar10;" (assignment_expression "uVar10 = (uVar7 < uVar6) + uVar10" (identifier "uVar10") (= "=") (binary_expression "(uVar7 < uVar6) + uVar10" (parenthesized_expression "(uVar7 < uVar6)" (( "(") (binary_expression "uVar7 < uVar6" (identifier "uVar7") (< "<") (identifier "uVar6")) () ")")) (+ "+") (identifier "uVar10"))) (; ";")) (expression_statement "uVar6 = uVar7;" (assignment_expression "uVar6 = uVar7" (identifier "uVar6") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar14 != 0)" (( "(") (binary_expression "iVar14 != 0" (identifier "iVar14") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;" (if "if") (parenthesized_expression "((uVar10 == 0) && (uVar7 < 100))" (( "(") (binary_expression "(uVar10 == 0) && (uVar7 < 100)" (parenthesized_expression "(uVar10 == 0)" (( "(") (binary_expression "uVar10 == 0" (identifier "uVar10") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(uVar7 < 100)" (( "(") (binary_expression "uVar7 < 100" (identifier "uVar7") (< "<") (number_literal "100")) () ")"))) () ")")) (goto_statement "goto LAB_0006732c;" (goto "goto") (statement_identifier "LAB_0006732c") (; ";"))) (expression_statement "uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;" (assignment_expression "uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f" (identifier "uVar6") (= "=") (binary_expression "(int)*(uint *)(iVar3 + 0x6c) >> 0x1f" (cast_expression "(int)*(uint *)(iVar3 + 0x6c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(uint *)(iVar3 + 0x6c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x6c)" (( "(") (binary_expression "iVar3 + 0x6c" (identifier "iVar3") (+ "+") (number_literal "0x6c")) () ")"))))) (>> ">>") (number_literal "0x1f"))) (; ";")) (if_statement "if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }" (if "if") (parenthesized_expression "((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7))))" (( "(") (binary_expression "(uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))" (parenthesized_expression "(uVar6 < uVar10)" (( "(") (binary_expression "uVar6 < uVar10" (identifier "uVar6") (< "<") (identifier "uVar10")) () ")")) (|| "||") (parenthesized_expression "((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))" (( "(") (parenthesized_expression "(uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7))" (( "(") (binary_expression "uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)" (binary_expression "uVar10 == uVar6" (identifier "uVar10") (== "==") (identifier "uVar6")) (&& "&&") (parenthesized_expression "(*(uint *)(iVar3 + 0x6c) < uVar7)" (( "(") (binary_expression "*(uint *)(iVar3 + 0x6c) < uVar7" (pointer_expression "*(uint *)(iVar3 + 0x6c)" (* "*") (cast_expression "(uint *)(iVar3 + 0x6c)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x6c)" (( "(") (binary_expression "iVar3 + 0x6c" (identifier "iVar3") (+ "+") (number_literal "0x6c")) () ")")))) (< "<") (identifier "uVar7")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n      pbVar5 = param_1;\n      sqlite3_result_error_toobig();\n      goto switchD_0006719c_caseD_1;\n    }" ({ "{") (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" (identifier "pbVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "sqlite3_result_error_toobig();" (call_expression "sqlite3_result_error_toobig()" (identifier "sqlite3_result_error_toobig") (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto switchD_0006719c_caseD_1;" (goto "goto") (statement_identifier "switchD_0006719c_caseD_1") (; ";")) (} "}"))) (if_statement "if ((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)) {\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" (if "if") (parenthesized_expression "((*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0))" (( "(") (binary_expression "(*(char *)(iVar3 + 0x51) != '\0') ||\n       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)" (parenthesized_expression "(*(char *)(iVar3 + 0x51) != '\0')" (( "(") (binary_expression "*(char *)(iVar3 + 0x51) != '\0'" (pointer_expression "*(char *)(iVar3 + 0x51)" (* "*") (cast_expression "(char *)(iVar3 + 0x51)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + 0x51)" (( "(") (binary_expression "iVar3 + 0x51" (identifier "iVar3") (+ "+") (number_literal "0x51")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0)" (( "(") (comma_expression "pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),\n       pbVar2 == (byte *)0x0" (assignment_expression "pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" (identifier "pbVar2") (= "=") (cast_expression "(byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x2b10)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x2b10)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x2b10)" (( "(") (binary_expression "PTR_LAB_0015b6d8 + -0x2b10" (identifier "PTR_LAB_0015b6d8") (+ "+") (number_literal "-0x2b10")) () ")")))) () ")")) (argument_list "(iVar3,0,(int)uVar7 >> 0x1f)" (( "(") (identifier "iVar3") (, ",") (number_literal "0") (, ",") (binary_expression "(int)uVar7 >> 0x1f" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "0x1f")) () ")"))))) (, ",") (binary_expression "pbVar2 == (byte *)0x0" (identifier "pbVar2") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n      pbVar5 = param_1;\n      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();\n      goto switchD_0006719c_caseD_1;\n    }" ({ "{") (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" (identifier "pbVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)();" (call_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)()" (parenthesized_expression "(*(code *)PTR_sqlite3_result_error_nomem_0015b784)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_result_error_nomem_0015b784" (* "*") (cast_expression "(code *)PTR_sqlite3_result_error_nomem_0015b784" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_result_error_nomem_0015b784"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (goto_statement "goto switchD_0006719c_caseD_1;" (goto "goto") (statement_identifier "switchD_0006719c_caseD_1") (; ";")) (} "}"))) (} "}")))) (expression_statement "local_114 = abStack_a0;" (assignment_expression "local_114 = abStack_a0" (identifier "local_114") (= "=") (identifier "abStack_a0")) (; ";")) (if_statement "if (local_d8 == '\0') {\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" (if "if") (parenthesized_expression "(local_d8 == '\0')" (( "(") (binary_expression "local_d8 == '\0'" (identifier "local_d8") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);\n  }" ({ "{") (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x6cf4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x6cf4)" (( "(") (binary_expression "PTR_LAB_0015b6d8 + -0x6cf4" (identifier "PTR_LAB_0015b6d8") (+ "+") (number_literal "-0x6cf4")) () ")")))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);" (call_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1)" (parenthesized_expression "(*(code *)(PTR_LAB_0015b6d8 + -0x66f4))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015b6d8 + -0x66f4)" (* "*") (cast_expression "(code *)(PTR_LAB_0015b6d8 + -0x66f4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015b6d8 + -0x66f4)" (( "(") (binary_expression "PTR_LAB_0015b6d8 + -0x66f4" (identifier "PTR_LAB_0015b6d8") (+ "+") (number_literal "-0x66f4")) () ")")))) () ")")) (argument_list "(unaff_s1)" (( "(") (identifier "unaff_s1") () ")"))) (; ";")) (expression_statement "bVar4 = *unaff_s2;" (assignment_expression "bVar4 = *unaff_s2" (identifier "bVar4") (= "=") (pointer_expression "*unaff_s2" (* "*") (identifier "unaff_s2"))) (; ";")) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" (identifier "pbVar5") (= "=") (identifier "pbVar2")) (; ";")) (if_statement "if (bVar4 != 0) {\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }" (if "if") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar14 = 0;\n    iVar3 = 0;\n    do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);\n  }" ({ "{") (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" (identifier "iVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    } while (bVar4 != 0);" (do "do") (compound_statement "{\n      iVar9 = iVar3 + 1;\n      pbVar11 = unaff_s2 + iVar9;\n      if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }\n      iVar14 = iVar14 + 1;\n      pbVar5 = pbVar2 + iVar14;\n      bVar4 = *pbVar11;\n      iVar3 = iVar9;\n    }" ({ "{") (expression_statement "iVar9 = iVar3 + 1;" (assignment_expression "iVar9 = iVar3 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar11 = unaff_s2 + iVar9;" (assignment_expression "pbVar11 = unaff_s2 + iVar9" (identifier "pbVar11") (= "=") (binary_expression "unaff_s2 + iVar9" (identifier "unaff_s2") (+ "+") (identifier "iVar9"))) (; ";")) (if_statement "if (bVar4 == 0x25) {\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }\n      else {\n        *pbVar5 = bVar4;\n      }" (if "if") (parenthesized_expression "(bVar4 == 0x25)" (( "(") (binary_expression "bVar4 == 0x25" (identifier "bVar4") (== "==") (number_literal "0x25")) () ")")) (compound_statement "{\n        iVar9 = iVar3 + 2;\n        uVar6 = *pbVar11 - 0x48 & 0xff;\n        pbVar11 = unaff_s2 + iVar9;\n        if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }\n        *pbVar5 = 0x25;\n      }" ({ "{") (expression_statement "iVar9 = iVar3 + 2;" (assignment_expression "iVar9 = iVar3 + 2" (identifier "iVar9") (= "=") (binary_expression "iVar3 + 2" (identifier "iVar3") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "uVar6 = *pbVar11 - 0x48 & 0xff;" (assignment_expression "uVar6 = *pbVar11 - 0x48 & 0xff" (identifier "uVar6") (= "=") (binary_expression "*pbVar11 - 0x48 & 0xff" (binary_expression "*pbVar11 - 0x48" (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11")) (- "-") (number_literal "0x48")) (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "pbVar11 = unaff_s2 + iVar9;" (assignment_expression "pbVar11 = unaff_s2 + iVar9" (identifier "pbVar11") (= "=") (binary_expression "unaff_s2 + iVar9" (identifier "unaff_s2") (+ "+") (identifier "iVar9"))) (; ";")) (if_statement "if (uVar6 < 0x30) {\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }" (if "if") (parenthesized_expression "(uVar6 < 0x30)" (( "(") (binary_expression "uVar6 < 0x30" (identifier "uVar6") (< "<") (number_literal "0x30")) () ")")) (compound_statement "{\n                    \n                    \n          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();\n          return;\n        }" ({ "{") (expression_statement "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();" (call_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))()" (parenthesized_expression "(*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))" (( "(") (pointer_expression "*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" (* "*") (cast_expression "(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c))" (( "(") (binary_expression "&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) (+ "+") (pointer_expression "*(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" (* "*") (cast_expression "(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)" (( "(") (binary_expression "PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c" (binary_expression "PTR_UINT_0015b5fc + uVar6 * 4" (identifier "PTR_UINT_0015b5fc") (+ "+") (binary_expression "uVar6 * 4" (identifier "uVar6") (* "*") (number_literal "4"))) (+ "+") (number_literal "0xc0c")) () ")"))))) () ")")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*pbVar5 = 0x25;" (assignment_expression "*pbVar5 = 0x25" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (= "=") (number_literal "0x25")) (; ";")) (} "}")) (else_clause "else {\n        *pbVar5 = bVar4;\n      }" (else "else") (compound_statement "{\n        *pbVar5 = bVar4;\n      }" ({ "{") (expression_statement "*pbVar5 = bVar4;" (assignment_expression "*pbVar5 = bVar4" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (= "=") (identifier "bVar4")) (; ";")) (} "}")))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar5 = pbVar2 + iVar14;" (assignment_expression "pbVar5 = pbVar2 + iVar14" (identifier "pbVar5") (= "=") (binary_expression "pbVar2 + iVar14" (identifier "pbVar2") (+ "+") (identifier "iVar14"))) (; ";")) (expression_statement "bVar4 = *pbVar11;" (assignment_expression "bVar4 = *pbVar11" (identifier "bVar4") (= "=") (pointer_expression "*pbVar11" (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "iVar3 = iVar9;" (assignment_expression "iVar3 = iVar9" (identifier "iVar3") (= "=") (identifier "iVar9")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar4 != 0)" (( "(") (binary_expression "bVar4 != 0" (identifier "bVar4") (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))) (expression_statement "*pbVar5 = 0;" (assignment_expression "*pbVar5 = 0" (pointer_expression "*pbVar5" (* "*") (identifier "pbVar5")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (pbVar2 == local_114) {\n    puVar8 = (undefined *)0xffffffff;\n  }\n  else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" (if "if") (parenthesized_expression "(pbVar2 == local_114)" (( "(") (binary_expression "pbVar2 == local_114" (identifier "pbVar2") (== "==") (identifier "local_114")) () ")")) (compound_statement "{\n    puVar8 = (undefined *)0xffffffff;\n  }" ({ "{") (expression_statement "puVar8 = (undefined *)0xffffffff;" (assignment_expression "puVar8 = (undefined *)0xffffffff" (identifier "puVar8") (= "=") (cast_expression "(undefined *)0xffffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (} "}")) (else_clause "else {\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" (else "else") (compound_statement "{\n    puVar8 = PTR_LAB_0015b65c + -0x3990;\n  }" ({ "{") (expression_statement "puVar8 = PTR_LAB_0015b65c + -0x3990;" (assignment_expression "puVar8 = PTR_LAB_0015b65c + -0x3990" (identifier "puVar8") (= "=") (binary_expression "PTR_LAB_0015b65c + -0x3990" (identifier "PTR_LAB_0015b65c") (+ "+") (number_literal "-0x3990"))) (; ";")) (} "}")))) (expression_statement "pbVar5 = param_1;" (assignment_expression "pbVar5 = param_1" (identifier "pbVar5") (= "=") (identifier "param_1")) (; ";")) (expression_statement "sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);" (call_expression "sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8)" (identifier "sqlite3_result_text") (argument_list "(param_1,pbVar2,0xffffffff,puVar8)" (( "(") (identifier "param_1") (, ",") (identifier "pbVar2") (, ",") (number_literal "0xffffffff") (, ",") (identifier "puVar8") () ")"))) (; ";")) (labeled_statement "switchD_0006719c_caseD_1:\n  if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" (statement_identifier "switchD_0006719c_caseD_1") (: ":") (if_statement "if (local_3c != *(int *)puVar13) {\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" (if "if") (parenthesized_expression "(local_3c != *(int *)puVar13)" (( "(") (binary_expression "local_3c != *(int *)puVar13" (identifier "local_3c") (!= "!=") (pointer_expression "*(int *)puVar13" (* "*") (cast_expression "(int *)puVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar13")))) () ")")) (compound_statement "{\n    uVar16 = 0x677d0;\n    puVar13 = PTR___stack_chk_fail_0015ba10;\n    (*(code *)PTR___stack_chk_fail_0015ba10)();\n    puVar15 = auStack_138;\n    while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }\n    return;\n  }" ({ "{") (expression_statement "uVar16 = 0x677d0;" (assignment_expression "uVar16 = 0x677d0" (identifier "uVar16") (= "=") (number_literal "0x677d0")) (; ";")) (expression_statement "puVar13 = PTR___stack_chk_fail_0015ba10;" (assignment_expression "puVar13 = PTR___stack_chk_fail_0015ba10" (identifier "puVar13") (= "=") (identifier "PTR___stack_chk_fail_0015ba10")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ba10)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ba10)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ba10)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ba10" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ba10" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ba10"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar15 = auStack_138;" (assignment_expression "puVar15 = auStack_138" (identifier "puVar15") (= "=") (identifier "auStack_138")) (; ";")) (while_statement "while( true ) {\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n      pbVar2 = pbVar5;\n      *(byte **)(puVar15 + -0x10) = unaff_s0;\n      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;\n      *(byte **)(puVar15 + -8) = unaff_s2;\n      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;\n      *(undefined4 *)(puVar15 + -4) = uVar16;\n      unaff_s0 = *(byte **)(puVar13 + 0xf425c);\n      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;\n      pbVar5 = pbVar2;\n      iVar3 = FUN_000637fc();\n      iVar14 = *(int *)(puVar15 + -0xb0);\n      unaff_s1 = puVar15 + -0xa8;\n      if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }\n      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;\n      pcVar12 = *(code **)(iVar14 + -0x7ba0);\n      uVar16 = 0x678d8;\n      (*pcVar12)();\n      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);\n      unaff_s2 = pbVar2;\n      puVar15 = puVar15 + -0xd8;\n    }" ({ "{") (expression_statement "pbVar2 = pbVar5;" (assignment_expression "pbVar2 = pbVar5" (identifier "pbVar2") (= "=") (identifier "pbVar5")) (; ";")) (expression_statement "*(byte **)(puVar15 + -0x10) = unaff_s0;" (assignment_expression "*(byte **)(puVar15 + -0x10) = unaff_s0" (pointer_expression "*(byte **)(puVar15 + -0x10)" (* "*") (cast_expression "(byte **)(puVar15 + -0x10)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0x10)" (( "(") (binary_expression "puVar15 + -0x10" (identifier "puVar15") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "unaff_s0")) (; ";")) (expression_statement "*(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;" (assignment_expression "*(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0" (pointer_expression "*(undefined **)(puVar15 + -0xb0)" (* "*") (cast_expression "(undefined **)(puVar15 + -0xb0)" (( "(") (type_descriptor "undefined **" (type_identifier "undefined") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xb0)" (( "(") (binary_expression "puVar15 + -0xb0" (identifier "puVar15") (+ "+") (number_literal "-0xb0")) () ")")))) (= "=") (binary_expression "puVar13 + 0xfbde0" (identifier "puVar13") (+ "+") (number_literal "0xfbde0"))) (; ";")) (expression_statement "*(byte **)(puVar15 + -8) = unaff_s2;" (assignment_expression "*(byte **)(puVar15 + -8) = unaff_s2" (pointer_expression "*(byte **)(puVar15 + -8)" (* "*") (cast_expression "(byte **)(puVar15 + -8)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -8)" (( "(") (binary_expression "puVar15 + -8" (identifier "puVar15") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "unaff_s2")) (; ";")) (expression_statement "*(undefined1 **)(puVar15 + -0xc) = unaff_s1;" (assignment_expression "*(undefined1 **)(puVar15 + -0xc) = unaff_s1" (pointer_expression "*(undefined1 **)(puVar15 + -0xc)" (* "*") (cast_expression "(undefined1 **)(puVar15 + -0xc)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar15 + -0xc)" (( "(") (binary_expression "puVar15 + -0xc" (identifier "puVar15") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "unaff_s1")) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -4) = uVar16;" (assignment_expression "*(undefined4 *)(puVar15 + -4) = uVar16" (pointer_expression "*(undefined4 *)(puVar15 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -4)" (( "(") (binary_expression "puVar15 + -4" (identifier "puVar15") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "unaff_s0 = *(byte **)(puVar13 + 0xf425c);" (assignment_expression "unaff_s0 = *(byte **)(puVar13 + 0xf425c)" (identifier "unaff_s0") (= "=") (pointer_expression "*(byte **)(puVar13 + 0xf425c)" (* "*") (cast_expression "(byte **)(puVar13 + 0xf425c)" (( "(") (type_descriptor "byte **" (type_identifier "byte") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar13 + 0xf425c)" (( "(") (binary_expression "puVar13 + 0xf425c" (identifier "puVar13") (+ "+") (number_literal "0xf425c")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;" (assignment_expression "*(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0" (pointer_expression "*(undefined4 *)(puVar15 + -0x14)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)unaff_s0" (* "*") (cast_expression "(undefined4 *)unaff_s0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s0")))) (; ";")) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" (identifier "pbVar5") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "iVar3 = FUN_000637fc();" (assignment_expression "iVar3 = FUN_000637fc()" (identifier "iVar3") (= "=") (call_expression "FUN_000637fc()" (identifier "FUN_000637fc") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar14 = *(int *)(puVar15 + -0xb0);" (assignment_expression "iVar14 = *(int *)(puVar15 + -0xb0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(puVar15 + -0xb0)" (* "*") (cast_expression "(int *)(puVar15 + -0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xb0)" (( "(") (binary_expression "puVar15 + -0xb0" (identifier "puVar15") (+ "+") (number_literal "-0xb0")) () ")"))))) (; ";")) (expression_statement "unaff_s1 = puVar15 + -0xa8;" (assignment_expression "unaff_s1 = puVar15 + -0xa8" (identifier "unaff_s1") (= "=") (binary_expression "puVar15 + -0xa8" (identifier "puVar15") (+ "+") (number_literal "-0xa8"))) (; ";")) (if_statement "if (iVar3 == 0) {\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        unaff_s1 = puVar15 + -0x78;\n        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);\n        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);\n        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);\n        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);\n        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);\n        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);\n        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);\n        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));\n        pbVar5 = pbVar2;\n        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);\n        iVar14 = *(int *)(puVar15 + -0xb0);\n      }" ({ "{") (expression_statement "unaff_s1 = puVar15 + -0x78;" (assignment_expression "unaff_s1 = puVar15 + -0x78" (identifier "unaff_s1") (= "=") (binary_expression "puVar15 + -0x78" (identifier "puVar15") (+ "+") (number_literal "-0x78"))) (; ";")) (expression_statement "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);" (call_expression "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8)" (parenthesized_expression "(*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))" (( "(") (pointer_expression "*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" (* "*") (cast_expression "(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(iVar14 + -0x7ed8) + -0x66f4)" (( "(") (binary_expression "*(int *)(iVar14 + -0x7ed8) + -0x66f4" (pointer_expression "*(int *)(iVar14 + -0x7ed8)" (* "*") (cast_expression "(int *)(iVar14 + -0x7ed8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar14 + -0x7ed8)" (( "(") (binary_expression "iVar14 + -0x7ed8" (identifier "iVar14") (+ "+") (number_literal "-0x7ed8")) () ")")))) (+ "+") (number_literal "-0x66f4")) () ")")))) () ")")) (argument_list "(puVar15 + -0xa8)" (( "(") (binary_expression "puVar15 + -0xa8" (identifier "puVar15") (+ "+") (number_literal "-0xa8")) () ")"))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);" (assignment_expression "*(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90)" (pointer_expression "*(undefined4 *)(puVar15 + -0xbc)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xbc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xbc)" (( "(") (binary_expression "puVar15 + -0xbc" (identifier "puVar15") (+ "+") (number_literal "-0xbc")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + -0x90)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x90)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x90)" (( "(") (binary_expression "puVar15 + -0x90" (identifier "puVar15") (+ "+") (number_literal "-0x90")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);" (assignment_expression "iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" (* "*") (cast_expression "(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar15 + -0xb0) + -0x7fc8)" (( "(") (binary_expression "*(int *)(puVar15 + -0xb0) + -0x7fc8" (pointer_expression "*(int *)(puVar15 + -0xb0)" (* "*") (cast_expression "(int *)(puVar15 + -0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xb0)" (( "(") (binary_expression "puVar15 + -0xb0" (identifier "puVar15") (+ "+") (number_literal "-0xb0")) () ")")))) (+ "+") (number_literal "-0x7fc8")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc0)" (( "(") (binary_expression "puVar15 + -0xc0" (identifier "puVar15") (+ "+") (number_literal "-0xc0")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + -0x94)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x94)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x94)" (( "(") (binary_expression "puVar15 + -0x94" (identifier "puVar15") (+ "+") (number_literal "-0x94")) () ")"))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);" (assignment_expression "*(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98)" (pointer_expression "*(undefined4 *)(puVar15 + -0xc4)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xc4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xc4)" (( "(") (binary_expression "puVar15 + -0xc4" (identifier "puVar15") (+ "+") (number_literal "-0xc4")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + -0x98)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x98)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x98)" (( "(") (binary_expression "puVar15 + -0x98" (identifier "puVar15") (+ "+") (number_literal "-0x98")) () ")"))))) (; ";")) (expression_statement "*(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);" (assignment_expression "*(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88)" (pointer_expression "*(int *)(puVar15 + -0xb8)" (* "*") (cast_expression "(int *)(puVar15 + -0xb8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xb8)" (( "(") (binary_expression "puVar15 + -0xb8" (identifier "puVar15") (+ "+") (number_literal "-0xb8")) () ")")))) (= "=") (cast_expression "(int)*(double *)(puVar15 + -0x88)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(double *)(puVar15 + -0x88)" (* "*") (cast_expression "(double *)(puVar15 + -0x88)" (( "(") (type_descriptor "double *" (primitive_type "double") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x88)" (( "(") (binary_expression "puVar15 + -0x88" (identifier "puVar15") (+ "+") (number_literal "-0x88")) () ")")))))) (; ";")) (expression_statement "*(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);" (assignment_expression "*(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c)" (pointer_expression "*(undefined4 *)(puVar15 + -200)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -200)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -200)" (( "(") (binary_expression "puVar15 + -200" (identifier "puVar15") (+ "+") (number_literal "-200")) () ")")))) (= "=") (pointer_expression "*(undefined4 *)(puVar15 + -0x9c)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0x9c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x9c)" (( "(") (binary_expression "puVar15 + -0x9c" (identifier "puVar15") (+ "+") (number_literal "-0x9c")) () ")"))))) (; ";")) (expression_statement "sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));" (call_expression "sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0))" (identifier "sqlite3_snprintf") (argument_list "(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0))" (( "(") (number_literal "100") (, ",") (identifier "unaff_s1") (, ",") (binary_expression "iVar3 + 0x710c" (identifier "iVar3") (+ "+") (number_literal "0x710c")) (, ",") (pointer_expression "*(undefined4 *)(puVar15 + -0xa0)" (* "*") (cast_expression "(undefined4 *)(puVar15 + -0xa0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xa0)" (( "(") (binary_expression "puVar15 + -0xa0" (identifier "puVar15") (+ "+") (number_literal "-0xa0")) () ")")))) () ")"))) (; ";")) (expression_statement "pbVar5 = pbVar2;" (assignment_expression "pbVar5 = pbVar2" (identifier "pbVar5") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);" (call_expression "sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff)" (identifier "sqlite3_result_text") (argument_list "(pbVar2,unaff_s1,0xffffffff,0xffffffff)" (( "(") (identifier "pbVar2") (, ",") (identifier "unaff_s1") (, ",") (number_literal "0xffffffff") (, ",") (number_literal "0xffffffff") () ")"))) (; ";")) (expression_statement "iVar14 = *(int *)(puVar15 + -0xb0);" (assignment_expression "iVar14 = *(int *)(puVar15 + -0xb0)" (identifier "iVar14") (= "=") (pointer_expression "*(int *)(puVar15 + -0xb0)" (* "*") (cast_expression "(int *)(puVar15 + -0xb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0xb0)" (( "(") (binary_expression "puVar15 + -0xb0" (identifier "puVar15") (+ "+") (number_literal "-0xb0")) () ")"))))) (; ";")) (} "}"))) (if_statement "if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;" (if "if") (parenthesized_expression "(*(int *)(puVar15 + -0x14) == *(int *)unaff_s0)" (( "(") (binary_expression "*(int *)(puVar15 + -0x14) == *(int *)unaff_s0" (pointer_expression "*(int *)(puVar15 + -0x14)" (* "*") (cast_expression "(int *)(puVar15 + -0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar15 + -0x14)" (( "(") (binary_expression "puVar15 + -0x14" (identifier "puVar15") (+ "+") (number_literal "-0x14")) () ")")))) (== "==") (pointer_expression "*(int *)unaff_s0" (* "*") (cast_expression "(int *)unaff_s0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "unaff_s0")))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar12 = *(code **)(iVar14 + -0x7ba0);" (assignment_expression "pcVar12 = *(code **)(iVar14 + -0x7ba0)" (identifier "pcVar12") (= "=") (pointer_expression "*(code **)(iVar14 + -0x7ba0)" (* "*") (cast_expression "(code **)(iVar14 + -0x7ba0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar14 + -0x7ba0)" (( "(") (binary_expression "iVar14 + -0x7ba0" (identifier "iVar14") (+ "+") (number_literal "-0x7ba0")) () ")"))))) (; ";")) (expression_statement "uVar16 = 0x678d8;" (assignment_expression "uVar16 = 0x678d8" (identifier "uVar16") (= "=") (number_literal "0x678d8")) (; ";")) (expression_statement "(*pcVar12)();" (call_expression "(*pcVar12)()" (parenthesized_expression "(*pcVar12)" (( "(") (pointer_expression "*pcVar12" (* "*") (identifier "pcVar12")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);" (assignment_expression "puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" (identifier "puVar13") (= "=") (cast_expression "(undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcVar12 + 0xf3e38) + 0x77d0)" (( "(") (binary_expression "*(int *)(pcVar12 + 0xf3e38) + 0x77d0" (pointer_expression "*(int *)(pcVar12 + 0xf3e38)" (* "*") (cast_expression "(int *)(pcVar12 + 0xf3e38)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar12 + 0xf3e38)" (( "(") (binary_expression "pcVar12 + 0xf3e38" (identifier "pcVar12") (+ "+") (number_literal "0xf3e38")) () ")")))) (+ "+") (number_literal "0x77d0")) () ")")))) (; ";")) (expression_statement "unaff_s2 = pbVar2;" (assignment_expression "unaff_s2 = pbVar2" (identifier "unaff_s2") (= "=") (identifier "pbVar2")) (; ";")) (expression_statement "puVar15 = puVar15 + -0xd8;" (assignment_expression "puVar15 = puVar15 + -0xd8" (identifier "puVar15") (= "=") (binary_expression "puVar15 + -0xd8" (identifier "puVar15") (+ "+") (number_literal "-0xd8"))) (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *context,int var_1,type_2 **var_4)

{
  bool bVar1;
  int var_22;
  int var_6;
  type_3 *var_16;
  type_3 var_17;
  int var_18;
  type_2 *pVal;
  type_2 *context_00;
  type_3 *var_11;
  type_4 var_9;
  type_4 var_12;
  type_5 *xDel;
  int var_7;
  type_2 **var_10;
  type_4 var_13;
  type_3 *pbVar11;
  type_1 *unaff_s0;
  int *piVar12;
  type_6 *unaff_s1;
  type_3 *var_3;
  type_7 *var_23;
  type_8 *pcVar14;
  type_6 DStack_1e0;
  char acStack_1b0 [100];
  int var_25;
  type_1 *psStack_148;
  type_6 *pDStack_144;
  type_3 *pbStack_140;
  type_8 *pcStack_13c;
  type_3 *var_19;
  type_6 x;
  type_6 y;
  char zBuf [100];
  
  var_23 = PTR___stack_chk_guard_0015ba2c;
  var_22 = *(int *)PTR___stack_chk_guard_0015ba2c;
  pVal = (type_2 *)context;
  var_11 = (type_3 *)var_1;
  var_10 = var_4;
  psStack_148 = unaff_s0;
  if (var_1 == 0) goto switchD_0006719c_caseD_1;
  pVal = *var_4;
  var_3 = var_2(pVal);
  psStack_148 = context;
  if (var_3 == (type_3 *)0x0) goto switchD_0006719c_caseD_1;
  unaff_s1 = &x;
  var_10 = var_4 + 1;
  var_11 = (type_3 *)(var_1 + -1);
  pVal = (type_2 *)context;
  var_6 = var_5(context,(int)var_11,var_10,unaff_s1);
  if (var_6 != 0) goto switchD_0006719c_caseD_1;
  var_6 = (*(type_8 *)PTR_sqlite3_context_db_handle_0015b6e0)(context);
  var_7 = (int)(char)*var_3;
  if (var_7 == 0) {
LAB_0006732c:
    var_16 = (type_3 *)zBuf;
  }
  else {
    var_10 = (type_2 **)0x0;
    var_13 = 0;
    pVal = (type_2 *)(var_8 + 0xac0);
    var_9 = 1;
    do {
      var_10 = (type_2 **)((int)var_10 + 1);
      bVar1 = var_7 == 0x25;
      var_7 = (int)(char)var_3[(int)var_10];
      if (bVar1) {
        var_9 = var_7 - 0x25U & 0xff;
        var_10 = (type_2 **)(type_4)(var_9 < 0x53);
        var_11 = (type_3 *)(var_9 * 4);
        if (var_10 != (type_2 **)0x0) {
                    /* WARNING: Could not emulate address calculation at 0x00067190 */
                    /* WARNING: Treating indirect jump as call */
          (*(type_8 *)(&_gp + *(int *)(var_11 + (int)&pVal->u)))();
          return;
        }
        goto switchD_0006719c_caseD_1;
      }
      var_12 = var_9 + 1;
      var_13 = (var_12 < var_9) + var_13;
      var_9 = var_12;
    } while (var_7 != 0);
    if ((var_13 == 0) && (var_12 < 100)) goto LAB_0006732c;
    var_9 = (int)*(type_4 *)(var_6 + 0x6c) >> 0x1f;
    var_11 = (type_3 *)(type_4)(var_9 < var_13);
    if ((var_11 != (type_3 *)0x0) || ((var_13 == var_9 && (*(type_4 *)(var_6 + 0x6c) < var_12)))) {
      pVal = (type_2 *)context;
      var_14(context);
      goto switchD_0006719c_caseD_1;
    }
    if (*(char *)(var_6 + 0x51) != '\0') {
LAB_00067704:
      pVal = (type_2 *)context;
      (*(type_8 *)PTR_sqlite3_result_error_nomem_0015b784)();
      goto switchD_0006719c_caseD_1;
    }
    var_10 = (type_2 **)((int)var_12 >> 0x1f);
    var_16 = (type_3 *)(*(type_8 *)(var_15 + -0x2b10))(var_6);
    if (var_16 == (type_3 *)0x0) goto LAB_00067704;
  }
  var_11 = var_16;
  var_19 = (type_3 *)zBuf;
  if (x.validJD == '\0') {
    (*(type_8 *)(var_15 + -0x6cf4))(unaff_s1);
  }
  (*(type_8 *)(var_15 + -0x66f4))(unaff_s1);
  var_17 = *var_3;
  var_16 = var_11;
  if (var_17 != 0) {
    var_7 = 0;
    var_6 = 0;
    do {
      var_18 = var_6 + 1;
      pbVar11 = var_3 + var_18;
      if (var_17 == 0x25) {
        var_18 = var_6 + 2;
        var_9 = *pbVar11 - 0x48 & 0xff;
        pbVar11 = var_3 + var_18;
        if (var_9 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x00067310 */
                    /* WARNING: Treating indirect jump as call */
          (*(type_8 *)(&_gp + *(int *)(var_8 + var_9 * 4 + 0xc0c)))();
          return;
        }
        *var_16 = 0x25;
      }
      else {
        *var_16 = var_17;
      }
      var_7 = var_7 + 1;
      var_16 = var_11 + var_7;
      var_17 = *pbVar11;
      var_6 = var_18;
    } while (var_17 != 0);
  }
  *var_16 = 0;
  if (var_11 == var_19) {
    xDel = (type_5 *)0xffffffff;
  }
  else {
    xDel = (type_5 *)(var_20 + -0x3990);
  }
  var_10 = (type_2 **)0xffffffff;
  pVal = (type_2 *)context;
  var_21(context,(char *)var_11,-1,xDel);
switchD_0006719c_caseD_1:
  if (var_22 == *(int *)var_23) {
    return;
  }
  pcVar14 = var_26;
  var_23 = PTR___stack_chk_fail_0015ba10;
  (*(type_8 *)PTR___stack_chk_fail_0015ba10)();
  piVar12 = *(int **)(var_23 + 0xf425c);
  var_25 = *piVar12;
  context_00 = pVal;
  pDStack_144 = unaff_s1;
  pbStack_140 = var_3;
  pcStack_13c = pcVar14;
  var_22 = var_5((type_1 *)pVal,(int)var_11,var_10,&DStack_1e0);
  if (var_22 == 0) {
    (*(type_8 *)(*(int *)(var_23 + 0xf3f08) + -0x66f4))(&DStack_1e0);
    var_24(100,acStack_1b0,(char *)(*(int *)(var_23 + 0xf3e18) + 0x710c),DStack_1e0.Y,
                     DStack_1e0.M,DStack_1e0.D,DStack_1e0.h,DStack_1e0.m,(int)DStack_1e0.s);
    var_21((type_1 *)pVal,acStack_1b0,-1,(type_5 *)0xffffffff);
    context_00 = pVal;
  }
  if (var_25 != *piVar12) {
    (**(type_8 **)(var_23 + 1000000))();
    var_26((type_1 *)context_00,0,(type_2 **)0x0);
    return;
  }
  return;
}


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

void MASKED(byte *param_1,int param_2,undefined4 *param_3)

{
  bool bVar1;
  byte *pbVar2;
  byte bVar4;
  int iVar3;
  byte *pbVar5;
  uint uVar6;
  uint uVar7;
  undefined *puVar8;
  int iVar9;
  uint uVar10;
  byte *pbVar11;
  byte *unaff_s0;
  undefined1 *unaff_s1;
  byte *unaff_s2;
  code *pcVar12;
  undefined *puVar13;
  int iVar14;
  undefined1 *puVar15;
  undefined4 uVar16;
  undefined1 auStack_138 [24];
  byte *local_114;
  undefined1 local_100 [40];
  char local_d8;
  byte abStack_a0 [100];
  int local_3c;
  
  puVar13 = PTR___stack_chk_guard_0015ba2c;
  local_3c = *(int *)PTR___stack_chk_guard_0015ba2c;
  pbVar5 = param_1;
  if (param_2 == 0) goto switchD_0006719c_caseD_1;
  pbVar5 = (byte *)*param_3;
  unaff_s2 = (byte *)sqlite3_value_text();
  unaff_s0 = param_1;
  if (unaff_s2 == (byte *)0x0) goto switchD_0006719c_caseD_1;
  unaff_s1 = local_100;
  pbVar5 = param_1;
  iVar3 = FUN_000637fc(param_1,param_2 + -1,param_3 + 1,unaff_s1);
  if (iVar3 != 0) goto switchD_0006719c_caseD_1;
  iVar3 = (*(code *)PTR_sqlite3_context_db_handle_0015b6e0)(param_1);
  iVar14 = (int)(char)*unaff_s2;
  if (iVar14 == 0) {
LAB_0006732c:
    pbVar2 = abStack_a0;
  }
  else {
    iVar9 = 0;
    uVar10 = 0;
    pbVar5 = PTR_UINT_0015b5fc + 0xac0;
    uVar6 = 1;
    do {
      iVar9 = iVar9 + 1;
      bVar1 = iVar14 == 0x25;
      iVar14 = (int)(char)unaff_s2[iVar9];
      if (bVar1) {
        uVar6 = iVar14 - 0x25U & 0xff;
        if (uVar6 < 0x53) {
                    /* WARNING: Could not emulate address calculation at 0x00067190 */
                    /* WARNING: Treating indirect jump as call */
          (*(code *)(&_gp_1 + *(int *)(pbVar5 + uVar6 * 4)))();
          return;
        }
        goto switchD_0006719c_caseD_1;
      }
      uVar7 = uVar6 + 1;
      uVar10 = (uVar7 < uVar6) + uVar10;
      uVar6 = uVar7;
    } while (iVar14 != 0);
    if ((uVar10 == 0) && (uVar7 < 100)) goto LAB_0006732c;
    uVar6 = (int)*(uint *)(iVar3 + 0x6c) >> 0x1f;
    if ((uVar6 < uVar10) || ((uVar10 == uVar6 && (*(uint *)(iVar3 + 0x6c) < uVar7)))) {
      pbVar5 = param_1;
      sqlite3_result_error_toobig();
      goto switchD_0006719c_caseD_1;
    }
    if ((*(char *)(iVar3 + 0x51) != '\0') ||
       (pbVar2 = (byte *)(*(code *)(PTR_LAB_0015b6d8 + -0x2b10))(iVar3,0,(int)uVar7 >> 0x1f),
       pbVar2 == (byte *)0x0)) {
      pbVar5 = param_1;
      (*(code *)PTR_sqlite3_result_error_nomem_0015b784)();
      goto switchD_0006719c_caseD_1;
    }
  }
  local_114 = abStack_a0;
  if (local_d8 == '\0') {
    (*(code *)(PTR_LAB_0015b6d8 + -0x6cf4))(unaff_s1);
  }
  (*(code *)(PTR_LAB_0015b6d8 + -0x66f4))(unaff_s1);
  bVar4 = *unaff_s2;
  pbVar5 = pbVar2;
  if (bVar4 != 0) {
    iVar14 = 0;
    iVar3 = 0;
    do {
      iVar9 = iVar3 + 1;
      pbVar11 = unaff_s2 + iVar9;
      if (bVar4 == 0x25) {
        iVar9 = iVar3 + 2;
        uVar6 = *pbVar11 - 0x48 & 0xff;
        pbVar11 = unaff_s2 + iVar9;
        if (uVar6 < 0x30) {
                    /* WARNING: Could not emulate address calculation at 0x00067310 */
                    /* WARNING: Treating indirect jump as call */
          (*(code *)(&_gp_1 + *(int *)(PTR_UINT_0015b5fc + uVar6 * 4 + 0xc0c)))();
          return;
        }
        *pbVar5 = 0x25;
      }
      else {
        *pbVar5 = bVar4;
      }
      iVar14 = iVar14 + 1;
      pbVar5 = pbVar2 + iVar14;
      bVar4 = *pbVar11;
      iVar3 = iVar9;
    } while (bVar4 != 0);
  }
  *pbVar5 = 0;
  if (pbVar2 == local_114) {
    puVar8 = (undefined *)0xffffffff;
  }
  else {
    puVar8 = PTR_LAB_0015b65c + -0x3990;
  }
  pbVar5 = param_1;
  sqlite3_result_text(param_1,pbVar2,0xffffffff,puVar8);
switchD_0006719c_caseD_1:
  if (local_3c != *(int *)puVar13) {
    uVar16 = 0x677d0;
    puVar13 = PTR___stack_chk_fail_0015ba10;
    (*(code *)PTR___stack_chk_fail_0015ba10)();
    puVar15 = auStack_138;
    while( true ) {
      pbVar2 = pbVar5;
      *(byte **)(puVar15 + -0x10) = unaff_s0;
      *(undefined **)(puVar15 + -0xb0) = puVar13 + 0xfbde0;
      *(byte **)(puVar15 + -8) = unaff_s2;
      *(undefined1 **)(puVar15 + -0xc) = unaff_s1;
      *(undefined4 *)(puVar15 + -4) = uVar16;
      unaff_s0 = *(byte **)(puVar13 + 0xf425c);
      *(undefined4 *)(puVar15 + -0x14) = *(undefined4 *)unaff_s0;
      pbVar5 = pbVar2;
      iVar3 = FUN_000637fc();
      iVar14 = *(int *)(puVar15 + -0xb0);
      unaff_s1 = puVar15 + -0xa8;
      if (iVar3 == 0) {
        unaff_s1 = puVar15 + -0x78;
        (*(code *)(*(int *)(iVar14 + -0x7ed8) + -0x66f4))(puVar15 + -0xa8);
        *(undefined4 *)(puVar15 + -0xbc) = *(undefined4 *)(puVar15 + -0x90);
        iVar3 = *(int *)(*(int *)(puVar15 + -0xb0) + -0x7fc8);
        *(undefined4 *)(puVar15 + -0xc0) = *(undefined4 *)(puVar15 + -0x94);
        *(undefined4 *)(puVar15 + -0xc4) = *(undefined4 *)(puVar15 + -0x98);
        *(int *)(puVar15 + -0xb8) = (int)*(double *)(puVar15 + -0x88);
        *(undefined4 *)(puVar15 + -200) = *(undefined4 *)(puVar15 + -0x9c);
        sqlite3_snprintf(100,unaff_s1,iVar3 + 0x710c,*(undefined4 *)(puVar15 + -0xa0));
        pbVar5 = pbVar2;
        sqlite3_result_text(pbVar2,unaff_s1,0xffffffff,0xffffffff);
        iVar14 = *(int *)(puVar15 + -0xb0);
      }
      if (*(int *)(puVar15 + -0x14) == *(int *)unaff_s0) break;
      pcVar12 = *(code **)(iVar14 + -0x7ba0);
      uVar16 = 0x678d8;
      (*pcVar12)();
      puVar13 = (undefined *)(*(int *)(pcVar12 + 0xf3e38) + 0x77d0);
      unaff_s2 = pbVar2;
      puVar15 = puVar15 + -0xd8;
    }
    return;
  }
  return;
}

