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

{
  byte bVar1;
  bool bVar2;
  undefined4 uVar3;
  int iVar4;
  int iVar5;
  byte *pbVar6;
  int iVar7;
  byte *pbVar8;
  byte *pbVar9;
  byte *pbVar10;
  sqlite3_value *pVal;
  byte *pbVar11;
  undefined *puVar12;
  uchar *z;
  int local_14;
  
  puVar12 = PTR___stack_chk_guard_0015ca30;
  pVal = *argv;
  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;
  z = sqlite3_value_text(pVal);
  if ((z != (uchar *)0x0) && (*z != '\0')) {
    uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);
    (*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);
    pVal = (sqlite3_value *)context;
  }
  if (local_14 == *(int *)puVar12) {
    return;
  }
  puVar12 = PTR___stack_chk_fail_0015ca14;
  (*(code *)PTR___stack_chk_fail_0015ca14)();
  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(*argv);
  iVar5 = (**(code **)(puVar12 + 0xf6bfc))(argv[1]);
  if ((iVar4 != 5) && (iVar5 != 5)) {
    pbVar6 = (byte *)sqlite3_value_bytes(*argv);
    iVar7 = sqlite3_value_bytes(argv[1]);
    if (iVar7 < 1) {
                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);
      return;
    }
    if ((iVar4 == 4) && (iVar5 == 4)) {
      bVar2 = false;
      pbVar8 = (byte *)sqlite3_value_blob(*argv);
      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);
    }
    else {
      bVar2 = true;
      pbVar8 = sqlite3_value_text(*argv);
      pbVar9 = sqlite3_value_text(argv[1]);
    }
    if (pbVar9 != (byte *)0x0) {
      if (pbVar6 != (byte *)0x0) {
        if (pbVar8 == (byte *)0x0) {
          return;
        }
        bVar1 = *pbVar9;
        if ((int)pbVar6 < iVar7) {
LAB_00065c84:
                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);
          return;
        }
        pbVar10 = pbVar6;
        pbVar6 = (byte *)0x1;
        if (*pbVar8 == bVar1) goto LAB_00065be0;
        do {
          pbVar11 = pbVar8 + (int)pbVar10;
          do {
            pbVar6 = pbVar6 + 1;
            do {
              pbVar10 = pbVar11 + (-1 - (int)pbVar8);
              pbVar8 = pbVar8 + 1;
              if (!bVar2) break;
            } while ((*pbVar8 & 0xc0) == 0x80);
            if ((int)pbVar10 < iVar7) goto LAB_00065c84;
            pbVar11 = pbVar8 + (int)pbVar10;
          } while (*pbVar8 != bVar1);
LAB_00065be0:
          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);
        } while (iVar4 != 0);
        if ((int)pbVar10 < iVar7) {
          pbVar6 = (byte *)0x0;
        }
      }
                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);
      return;
    }
  }
  return;
}



void FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)

{
  byte bVar1;
  bool bVar2;
  int iVar3;
  int iVar4;
  byte *pbVar5;
  int iVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  undefined4 uVar10;
  byte *pbVar11;
  undefined *puVar12;
  char *local_18;
  int local_14;
  
  puVar12 = PTR___stack_chk_guard_0015ca30;
  uVar10 = *param_3;
  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;
  local_18 = (char *)sqlite3_value_text();
  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {
    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);
    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);
    uVar10 = param_1;
  }
  if (local_14 == *(int *)puVar12) {
    return;
  }
  puVar12 = PTR___stack_chk_fail_0015ca14;
  (*(code *)PTR___stack_chk_fail_0015ca14)();
  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);
  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);
  if ((iVar3 != 5) && (iVar4 != 5)) {
    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);
    iVar6 = sqlite3_value_bytes(param_3[1]);
    if (iVar6 < 1) {
                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);
      return;
    }
    if ((iVar3 == 4) && (iVar4 == 4)) {
      bVar2 = false;
      pbVar7 = (byte *)sqlite3_value_blob();
      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);
    }
    else {
      bVar2 = true;
      pbVar7 = (byte *)sqlite3_value_text(*param_3);
      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);
    }
    if (pbVar8 != (byte *)0x0) {
      if (pbVar5 != (byte *)0x0) {
        if (pbVar7 == (byte *)0x0) {
          return;
        }
        bVar1 = *pbVar8;
        if ((int)pbVar5 < iVar6) {
LAB_00065c84:
                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);
          return;
        }
        pbVar9 = pbVar5;
        pbVar5 = (byte *)0x1;
        if (*pbVar7 == bVar1) goto LAB_00065be0;
        do {
          pbVar11 = pbVar7 + (int)pbVar9;
          do {
            pbVar5 = pbVar5 + 1;
            do {
              pbVar9 = pbVar11 + (-1 - (int)pbVar7);
              pbVar7 = pbVar7 + 1;
              if (!bVar2) break;
            } while ((*pbVar7 & 0xc0) == 0x80);
            if ((int)pbVar9 < iVar6) goto LAB_00065c84;
            pbVar11 = pbVar7 + (int)pbVar9;
          } while (*pbVar7 != bVar1);
LAB_00065be0:
          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);
        } while (iVar3 != 0);
        if ((int)pbVar9 < iVar6) {
          pbVar5 = (byte *)0x0;
        }
      }
                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);
      return;
    }
  }
  return;
}


lui gp,0x10
addiu gp,gp,-0x13c8
addu gp,gp,t9
addiu sp,sp,-0x30
lw t9,-0x7f78(gp)
sw s0,0x24(sp)
sw gp,0x10(sp)
sw s1,0x28(sp)
or s1,a0,zero
sw ra,0x2c(sp)
lw s0,-0x7b80(gp)
lw a0,0x0(a2)
lw v0,0x0(s0)
sw v0,0x1c(sp)
bal 0x000637fc
_nop
lw gp,0x10(sp)
beq v0,zero,0x000659d0
_sw v0,0x18(sp)
lbu v0,0x0(v0)
bne v0,zero,0x000659f0
_lw t9,-0x7f44(gp)
lw v1,0x1c(sp)
lw v0,0x0(s0)
bne v1,v0,0x00065a18
_lw ra,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x30
addiu t9,t9,-0x2f40
jalr t9
_addiu a0,sp,0x18
or a0,s1,zero
lw gp,0x10(sp)
lw t9,-0x7ec4(gp)
jalr t9
_or a1,v0,zero
b 0x000659d0
_lw gp,0x10(sp)
lw t9,-0x7b9c(gp)
jalr t9
_nop
lui gp,0x10
addiu gp,gp,-0x1474
addu gp,gp,t9
addiu sp,sp,-0x48
lw t9,-0x7f90(gp)
sw gp,0x10(sp)
sw ra,0x44(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
or s0,a2,zero
sw s8,0x40(sp)
sw s7,0x3c(sp)
sw s6,0x38(sp)
sw s5,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw a0,0x1c(sp)
jalr t9
_lw a0,0x0(a2)
lw gp,0x10(sp)
or s1,v0,zero
lw t9,-0x7f90(gp)
jalr t9
_lw a0,0x4(s0)
li v1,0x5
beq s1,v1,0x00065b08
_lw gp,0x10(sp)
beq v0,v1,0x00065b08
_or s4,v0,zero
lw t9,-0x7f7c(gp)
bal 0x00063580
_lw a0,0x0(s0)
lw gp,0x10(sp)
or s3,v0,zero
lw t9,-0x7f7c(gp)
bal 0x00063580
_lw a0,0x4(s0)
lw gp,0x10(sp)
blez v0,0x00065c44
_or s8,v0,zero
li v0,0x4
bne s1,v0,0x00065b38
_lw a0,0x0(s0)
bne s4,s1,0x00065b3c
_lw t9,-0x7f78(gp)
lw t9,-0x7f80(gp)
bal 0x00063860
_or s4,zero,zero
lw gp,0x10(sp)
lw a0,0x4(s0)
lw t9,-0x7f80(gp)
bal 0x00063860
_or s0,v0,zero
lw gp,0x10(sp)
b 0x00065b60
_or s1,v0,zero
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x48
lw t9,-0x7f78(gp)
bal 0x000637fc
_li s4,0x1
lw gp,0x10(sp)
lw a0,0x4(s0)
lw t9,-0x7f78(gp)
bal 0x000637fc
_or s0,v0,zero
lw gp,0x10(sp)
or s1,v0,zero
beq s1,zero,0x00065b0c
_lw ra,0x44(sp)
beq s3,zero,0x00065c0c
_or a1,s3,zero
beq s0,zero,0x00065b0c
_slt v0,s3,s8
lbu s2,0x0(s1)
bne v0,zero,0x00065c84
_li s7,0x1
lbu v0,0x0(s0)
li s6,-0x40
beq v0,s2,0x00065be0
_li s5,0x80
addu a2,s0,s3
or a0,s0,zero
addiu s7,s7,0x1
b 0x00065bb8
_addiu a2,a2,-0x1
lbu v1,0x0(a0)
and v1,s6,v1
bne v1,s5,0x00065bc8
_or s3,v0,zero
subu v0,a2,a0
bne s4,zero,0x00065ba8
_addiu a0,a0,0x1
or s3,v0,zero
slt v0,v0,s8
bne v0,zero,0x00065c84
_or s0,a0,zero
lbu v0,0x0(s0)
bne v0,s2,0x00065b98
_addu a2,s0,s3
lw t9,-0x7b90(gp)
or a2,s8,zero
or a1,s1,zero
jalr t9
_or a0,s0,zero
bne v0,zero,0x00065b94
_lw gp,0x10(sp)
slt a2,s3,s8
or s3,s7,zero
movn s3,zero,a2
or a1,s3,zero
lw a0,0x1c(sp)
lw ra,0x44(sp)
lw s8,0x40(sp)
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw t9,-0x7ec4(gp)
jr t9
_addiu sp,sp,0x48
li s3,0x1
lw a0,0x1c(sp)
lw ra,0x44(sp)
lw s8,0x40(sp)
or a1,s3,zero
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw t9,-0x7ec4(gp)
jr t9
_addiu sp,sp,0x48
or s3,zero,zero
lw a0,0x1c(sp)
lw ra,0x44(sp)
lw s8,0x40(sp)
or a1,s3,zero
lw s7,0x3c(sp)
lw s6,0x38(sp)
lw s5,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
lw t9,-0x7ec4(gp)
jr t9
_addiu sp,sp,0x48
(translation_unit "void FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar12 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "uVar10 = *param_3;" (assignment_expression "uVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_18 = (char *)sqlite3_value_text();" (assignment_expression "local_18 = (char *)sqlite3_value_text()" identifier = (cast_expression "(char *)sqlite3_value_text()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }" if (parenthesized_expression "((local_18 != (char *)0x0) && (*local_18 != '\0'))" ( (binary_expression "(local_18 != (char *)0x0) && (*local_18 != '\0')" (parenthesized_expression "(local_18 != (char *)0x0)" ( (binary_expression "local_18 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_18 != '\0')" ( (binary_expression "*local_18 != '\0'" (pointer_expression "*local_18" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }" { (expression_statement "uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);" (assignment_expression "uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18)" identifier = (call_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))" ( (pointer_expression "*(code *)(PTR_LAB_0015c66c + -0x2f40)" * (cast_expression "(code *)(PTR_LAB_0015c66c + -0x2f40)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c66c + -0x2f40)" ( (binary_expression "PTR_LAB_0015c66c + -0x2f40" identifier + number_literal) )))) )) (argument_list "(&local_18)" ( (pointer_expression "&local_18" & identifier) )))) ;) (expression_statement "(*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);" (call_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)" ( (pointer_expression "*(code *)PTR_sqlite3_result_int_0015c6ec" * (cast_expression "(code *)PTR_sqlite3_result_int_0015c6ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar10)" ( identifier , identifier ))) ;) (expression_statement "uVar10 = param_1;" (assignment_expression "uVar10 = param_1" identifier = identifier) ;) })) (if_statement "if (local_14 == *(int *)puVar12) {\n    return;\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar12)" ( (binary_expression "local_14 == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar12 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar12 = PTR___stack_chk_fail_0015ca14" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3)" identifier = (call_expression "(**(code **)(puVar12 + 0xf6bfc))(*param_3)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" * (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" * (cast_expression "(code **)(puVar12 + 0xf6bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6bfc)" ( (binary_expression "puVar12 + 0xf6bfc" identifier + number_literal) ))))) )) (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);" (assignment_expression "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1])" identifier = (call_expression "(**(code **)(puVar12 + 0xf6bfc))(param_3[1])" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" * (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" * (cast_expression "(code **)(puVar12 + 0xf6bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6bfc)" ( (binary_expression "puVar12 + 0xf6bfc" identifier + number_literal) ))))) )) (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }" if (parenthesized_expression "((iVar3 != 5) && (iVar4 != 5))" ( (binary_expression "(iVar3 != 5) && (iVar4 != 5)" (parenthesized_expression "(iVar3 != 5)" ( (binary_expression "iVar3 != 5" identifier != number_literal) )) && (parenthesized_expression "(iVar4 != 5)" ( (binary_expression "iVar4 != 5" identifier != number_literal) ))) )) (compound_statement "{\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }" { (expression_statement "pbVar5 = (byte *)sqlite3_value_bytes(*param_3);" (assignment_expression "pbVar5 = (byte *)sqlite3_value_bytes(*param_3)" identifier = (cast_expression "(byte *)sqlite3_value_bytes(*param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_bytes(*param_3)" identifier (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) ))))) ;) (expression_statement "iVar6 = sqlite3_value_bytes(param_3[1]);" (assignment_expression "iVar6 = sqlite3_value_bytes(param_3[1])" identifier = (call_expression "sqlite3_value_bytes(param_3[1])" identifier (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }" { comment comment (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,1);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,1)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(uVar10,1)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" if (parenthesized_expression "((iVar3 == 4) && (iVar4 == 4))" ( (binary_expression "(iVar3 == 4) && (iVar4 == 4)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) && (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) ))) )) (compound_statement "{\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pbVar7 = (byte *)sqlite3_value_blob();" (assignment_expression "pbVar7 = (byte *)sqlite3_value_blob()" identifier = (cast_expression "(byte *)sqlite3_value_blob()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_blob()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_blob(param_3[1])" identifier = (cast_expression "(byte *)sqlite3_value_blob(param_3[1])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_blob(param_3[1])" identifier (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) ))))) ;) }) (else_clause "else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" else (compound_statement "{\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pbVar7 = (byte *)sqlite3_value_text(*param_3);" (assignment_expression "pbVar7 = (byte *)sqlite3_value_text(*param_3)" identifier = (cast_expression "(byte *)sqlite3_value_text(*param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text(*param_3)" identifier (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) ))))) ;) (expression_statement "pbVar8 = (byte *)sqlite3_value_text(param_3[1]);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_text(param_3[1])" identifier = (cast_expression "(byte *)sqlite3_value_text(param_3[1])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text(param_3[1])" identifier (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) ))))) ;) }))) (if_statement "if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }" if (parenthesized_expression "(pbVar8 != (byte *)0x0)" ( (binary_expression "pbVar8 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }" { (if_statement "if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }" if (parenthesized_expression "(pbVar5 != (byte *)0x0)" ( (binary_expression "pbVar5 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }" { (if_statement "if (pbVar7 == (byte *)0x0) {\n          return;\n        }" if (parenthesized_expression "(pbVar7 == (byte *)0x0)" ( (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) (if_statement "if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }" if (parenthesized_expression "((int)pbVar5 < iVar6)" ( (binary_expression "(int)pbVar5 < iVar6" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }" { (labeled_statement "LAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);" statement_identifier : comment comment (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,0);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,0)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(uVar10,0)" ( identifier , number_literal ))) ;)) (return_statement "return;" return ;) })) (expression_statement "pbVar9 = pbVar5;" (assignment_expression "pbVar9 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar5 = (byte *)0x1;" (assignment_expression "pbVar5 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pbVar7 == bVar1) goto LAB_00065be0;" if (parenthesized_expression "(*pbVar7 == bVar1)" ( (binary_expression "*pbVar7 == bVar1" (pointer_expression "*pbVar7" * identifier) == identifier) )) (goto_statement "goto LAB_00065be0;" goto statement_identifier ;)) (do_statement "do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);" do (compound_statement "{\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        }" { (expression_statement "pbVar11 = pbVar7 + (int)pbVar9;" (assignment_expression "pbVar11 = pbVar7 + (int)pbVar9" identifier = (binary_expression "pbVar7 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (do_statement "do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);" do (compound_statement "{\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            }" { (expression_statement "pbVar9 = pbVar11 + (-1 - (int)pbVar7);" (assignment_expression "pbVar9 = pbVar11 + (-1 - (int)pbVar7)" identifier = (binary_expression "pbVar11 + (-1 - (int)pbVar7)" identifier + (parenthesized_expression "(-1 - (int)pbVar7)" ( (binary_expression "-1 - (int)pbVar7" number_literal - (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (!bVar2) break;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((*pbVar7 & 0xc0) == 0x80)" ( (binary_expression "(*pbVar7 & 0xc0) == 0x80" (parenthesized_expression "(*pbVar7 & 0xc0)" ( (binary_expression "*pbVar7 & 0xc0" (pointer_expression "*pbVar7" * identifier) & number_literal) )) == number_literal) )) ;) (if_statement "if ((int)pbVar9 < iVar6) goto LAB_00065c84;" if (parenthesized_expression "((int)pbVar9 < iVar6)" ( (binary_expression "(int)pbVar9 < iVar6" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00065c84;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar7 + (int)pbVar9;" (assignment_expression "pbVar11 = pbVar7 + (int)pbVar9" identifier = (binary_expression "pbVar7 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "(*pbVar7 != bVar1)" ( (binary_expression "*pbVar7 != bVar1" (pointer_expression "*pbVar7" * identifier) != identifier) )) ;) (labeled_statement "LAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);" statement_identifier : (expression_statement "iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6)" identifier = (call_expression "(**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6ffc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6ffc)" * (pointer_expression "*(code **)(puVar12 + 0xf6ffc)" * (cast_expression "(code **)(puVar12 + 0xf6ffc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6ffc)" ( (binary_expression "puVar12 + 0xf6ffc" identifier + number_literal) ))))) )) (argument_list "(pbVar7,pbVar8,iVar6)" ( identifier , identifier , identifier )))) ;)) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (if_statement "if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }" if (parenthesized_expression "((int)pbVar9 < iVar6)" ( (binary_expression "(int)pbVar9 < iVar6" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n          pbVar5 = (byte *)0x0;\n        }" { (expression_statement "pbVar5 = (byte *)0x0;" (assignment_expression "pbVar5 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) comment comment (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(uVar10,pbVar5)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void unicodeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  sqlite3_value *pVal;\n  byte *pbVar11;\n  undefined *puVar12;\n  uchar *z;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  pVal = *argv;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  z = sqlite3_value_text(pVal);\n  if ((z != (uchar *)0x0) && (*z != '\0')) {\n    uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);\n    pVal = (sqlite3_value *)context;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(*argv);\n  iVar5 = (**(code **)(puVar12 + 0xf6bfc))(argv[1]);\n  if ((iVar4 != 5) && (iVar5 != 5)) {\n    pbVar6 = (byte *)sqlite3_value_bytes(*argv);\n    iVar7 = sqlite3_value_bytes(argv[1]);\n    if (iVar7 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }\n    if ((iVar4 == 4) && (iVar5 == 4)) {\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }\n    if (pbVar9 != (byte *)0x0) {\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void unicodeFunc(sqlite3_context *context,int argc,sqlite3_value **argv)\n\n{\n  byte bVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  sqlite3_value *pVal;\n  byte *pbVar11;\n  undefined *puVar12;\n  uchar *z;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  pVal = *argv;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  z = sqlite3_value_text(pVal);\n  if ((z != (uchar *)0x0) && (*z != '\0')) {\n    uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);\n    pVal = (sqlite3_value *)context;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(*argv);\n  iVar5 = (**(code **)(puVar12 + 0xf6bfc))(argv[1]);\n  if ((iVar4 != 5) && (iVar5 != 5)) {\n    pbVar6 = (byte *)sqlite3_value_bytes(*argv);\n    iVar7 = sqlite3_value_bytes(argv[1]);\n    if (iVar7 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }\n    if ((iVar4 == 4) && (iVar5 == 4)) {\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }\n    if (pbVar9 != (byte *)0x0) {\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "unicodeFunc(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  byte bVar1;\n  bool bVar2;\n  undefined4 uVar3;\n  int iVar4;\n  int iVar5;\n  byte *pbVar6;\n  int iVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  byte *pbVar10;\n  sqlite3_value *pVal;\n  byte *pbVar11;\n  undefined *puVar12;\n  uchar *z;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  pVal = *argv;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  z = sqlite3_value_text(pVal);\n  if ((z != (uchar *)0x0) && (*z != '\0')) {\n    uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);\n    pVal = (sqlite3_value *)context;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(*argv);\n  iVar5 = (**(code **)(puVar12 + 0xf6bfc))(argv[1]);\n  if ((iVar4 != 5) && (iVar5 != 5)) {\n    pbVar6 = (byte *)sqlite3_value_bytes(*argv);\n    iVar7 = sqlite3_value_bytes(argv[1]);\n    if (iVar7 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }\n    if ((iVar4 == 4) && (iVar5 == 4)) {\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }\n    if (pbVar9 != (byte *)0x0) {\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "byte *pbVar6;" type_identifier (pointer_declarator "*pbVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "byte *pbVar10;" type_identifier (pointer_declarator "*pbVar10" * identifier) ;) (declaration "sqlite3_value *pVal;" type_identifier (pointer_declarator "*pVal" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "uchar *z;" type_identifier (pointer_declarator "*z" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar12 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "pVal = *argv;" (assignment_expression "pVal = *argv" identifier = (pointer_expression "*argv" * identifier)) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "z = sqlite3_value_text(pVal);" (assignment_expression "z = sqlite3_value_text(pVal)" identifier = (call_expression "sqlite3_value_text(pVal)" identifier (argument_list "(pVal)" ( identifier )))) ;) (if_statement "if ((z != (uchar *)0x0) && (*z != '\0')) {\n    uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);\n    pVal = (sqlite3_value *)context;\n  }" if (parenthesized_expression "((z != (uchar *)0x0) && (*z != '\0'))" ( (binary_expression "(z != (uchar *)0x0) && (*z != '\0')" (parenthesized_expression "(z != (uchar *)0x0)" ( (binary_expression "z != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*z != '\0')" ( (binary_expression "*z != '\0'" (pointer_expression "*z" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);\n    pVal = (sqlite3_value *)context;\n  }" { (expression_statement "uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z);" (assignment_expression "uVar3 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z)" identifier = (call_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))(&z)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))" ( (pointer_expression "*(code *)(PTR_LAB_0015c66c + -0x2f40)" * (cast_expression "(code *)(PTR_LAB_0015c66c + -0x2f40)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c66c + -0x2f40)" ( (binary_expression "PTR_LAB_0015c66c + -0x2f40" identifier + number_literal) )))) )) (argument_list "(&z)" ( (pointer_expression "&z" & identifier) )))) ;) (expression_statement "(*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3);" (call_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)(context,uVar3)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)" ( (pointer_expression "*(code *)PTR_sqlite3_result_int_0015c6ec" * (cast_expression "(code *)PTR_sqlite3_result_int_0015c6ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(context,uVar3)" ( identifier , 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)) ;) })) (if_statement "if (local_14 == *(int *)puVar12) {\n    return;\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar12)" ( (binary_expression "local_14 == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar12 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar12 = PTR___stack_chk_fail_0015ca14" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(*argv);" (assignment_expression "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(*argv)" identifier = (call_expression "(**(code **)(puVar12 + 0xf6bfc))(*argv)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" * (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" * (cast_expression "(code **)(puVar12 + 0xf6bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6bfc)" ( (binary_expression "puVar12 + 0xf6bfc" identifier + number_literal) ))))) )) (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) )))) ;) (expression_statement "iVar5 = (**(code **)(puVar12 + 0xf6bfc))(argv[1]);" (assignment_expression "iVar5 = (**(code **)(puVar12 + 0xf6bfc))(argv[1])" identifier = (call_expression "(**(code **)(puVar12 + 0xf6bfc))(argv[1])" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" * (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" * (cast_expression "(code **)(puVar12 + 0xf6bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6bfc)" ( (binary_expression "puVar12 + 0xf6bfc" identifier + number_literal) ))))) )) (argument_list "(argv[1])" ( (subscript_expression "argv[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar4 != 5) && (iVar5 != 5)) {\n    pbVar6 = (byte *)sqlite3_value_bytes(*argv);\n    iVar7 = sqlite3_value_bytes(argv[1]);\n    if (iVar7 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }\n    if ((iVar4 == 4) && (iVar5 == 4)) {\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }\n    if (pbVar9 != (byte *)0x0) {\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }\n  }" if (parenthesized_expression "((iVar4 != 5) && (iVar5 != 5))" ( (binary_expression "(iVar4 != 5) && (iVar5 != 5)" (parenthesized_expression "(iVar4 != 5)" ( (binary_expression "iVar4 != 5" identifier != number_literal) )) && (parenthesized_expression "(iVar5 != 5)" ( (binary_expression "iVar5 != 5" identifier != number_literal) ))) )) (compound_statement "{\n    pbVar6 = (byte *)sqlite3_value_bytes(*argv);\n    iVar7 = sqlite3_value_bytes(argv[1]);\n    if (iVar7 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }\n    if ((iVar4 == 4) && (iVar5 == 4)) {\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }\n    if (pbVar9 != (byte *)0x0) {\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }\n  }" { (expression_statement "pbVar6 = (byte *)sqlite3_value_bytes(*argv);" (assignment_expression "pbVar6 = (byte *)sqlite3_value_bytes(*argv)" identifier = (cast_expression "(byte *)sqlite3_value_bytes(*argv)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_bytes(*argv)" identifier (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) ))))) ;) (expression_statement "iVar7 = sqlite3_value_bytes(argv[1]);" (assignment_expression "iVar7 = sqlite3_value_bytes(argv[1])" identifier = (call_expression "sqlite3_value_bytes(argv[1])" identifier (argument_list "(argv[1])" ( (subscript_expression "argv[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar7 < 1) {\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }" if (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,1);\n      return;\n    }" { comment comment (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(pVal,1);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(pVal,1)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(pVal,1)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((iVar4 == 4) && (iVar5 == 4)) {\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }" if (parenthesized_expression "((iVar4 == 4) && (iVar5 == 4))" ( (binary_expression "(iVar4 == 4) && (iVar5 == 4)" (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) )) && (parenthesized_expression "(iVar5 == 4)" ( (binary_expression "iVar5 == 4" identifier == number_literal) ))) )) (compound_statement "{\n      bVar2 = false;\n      pbVar8 = (byte *)sqlite3_value_blob(*argv);\n      pbVar9 = (byte *)sqlite3_value_blob(argv[1]);\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pbVar8 = (byte *)sqlite3_value_blob(*argv);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_blob(*argv)" identifier = (cast_expression "(byte *)sqlite3_value_blob(*argv)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_blob(*argv)" identifier (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) ))))) ;) (expression_statement "pbVar9 = (byte *)sqlite3_value_blob(argv[1]);" (assignment_expression "pbVar9 = (byte *)sqlite3_value_blob(argv[1])" identifier = (cast_expression "(byte *)sqlite3_value_blob(argv[1])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_blob(argv[1])" identifier (argument_list "(argv[1])" ( (subscript_expression "argv[1]" identifier [ number_literal ]) ))))) ;) }) (else_clause "else {\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }" else (compound_statement "{\n      bVar2 = true;\n      pbVar8 = sqlite3_value_text(*argv);\n      pbVar9 = sqlite3_value_text(argv[1]);\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pbVar8 = sqlite3_value_text(*argv);" (assignment_expression "pbVar8 = sqlite3_value_text(*argv)" identifier = (call_expression "sqlite3_value_text(*argv)" identifier (argument_list "(*argv)" ( (pointer_expression "*argv" * identifier) )))) ;) (expression_statement "pbVar9 = sqlite3_value_text(argv[1]);" (assignment_expression "pbVar9 = sqlite3_value_text(argv[1])" identifier = (call_expression "sqlite3_value_text(argv[1])" identifier (argument_list "(argv[1])" ( (subscript_expression "argv[1]" identifier [ number_literal ]) )))) ;) }))) (if_statement "if (pbVar9 != (byte *)0x0) {\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }" if (parenthesized_expression "(pbVar9 != (byte *)0x0)" ( (binary_expression "pbVar9 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }\n                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      (**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);\n      return;\n    }" { (if_statement "if (pbVar6 != (byte *)0x0) {\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }" if (parenthesized_expression "(pbVar6 != (byte *)0x0)" ( (binary_expression "pbVar6 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pbVar8 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar9;\n        if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }\n        pbVar10 = pbVar6;\n        pbVar6 = (byte *)0x1;\n        if (*pbVar8 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);\n        if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }\n      }" { (if_statement "if (pbVar8 == (byte *)0x0) {\n          return;\n        }" if (parenthesized_expression "(pbVar8 == (byte *)0x0)" ( (binary_expression "pbVar8 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "bVar1 = *pbVar9;" (assignment_expression "bVar1 = *pbVar9" identifier = (pointer_expression "*pbVar9" * identifier)) ;) (if_statement "if ((int)pbVar6 < iVar7) {\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }" if (parenthesized_expression "((int)pbVar6 < iVar7)" ( (binary_expression "(int)pbVar6 < iVar7" (cast_expression "(int)pbVar6" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\nLAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);\n          return;\n        }" { (labeled_statement "LAB_00065c84:\n                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n          (**(code **)(puVar12 + 0xf6cc8))(pVal,0);" statement_identifier : comment comment (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(pVal,0);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(pVal,0)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(pVal,0)" ( identifier , number_literal ))) ;)) (return_statement "return;" return ;) })) (expression_statement "pbVar10 = pbVar6;" (assignment_expression "pbVar10 = pbVar6" identifier = identifier) ;) (expression_statement "pbVar6 = (byte *)0x1;" (assignment_expression "pbVar6 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pbVar8 == bVar1) goto LAB_00065be0;" if (parenthesized_expression "(*pbVar8 == bVar1)" ( (binary_expression "*pbVar8 == bVar1" (pointer_expression "*pbVar8" * identifier) == identifier) )) (goto_statement "goto LAB_00065be0;" goto statement_identifier ;)) (do_statement "do {\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        } while (iVar4 != 0);" do (compound_statement "{\n          pbVar11 = pbVar8 + (int)pbVar10;\n          do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);\nLAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);\n        }" { (expression_statement "pbVar11 = pbVar8 + (int)pbVar10;" (assignment_expression "pbVar11 = pbVar8 + (int)pbVar10" identifier = (binary_expression "pbVar8 + (int)pbVar10" identifier + (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          } while (*pbVar8 != bVar1);" do (compound_statement "{\n            pbVar6 = pbVar6 + 1;\n            do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);\n            if ((int)pbVar10 < iVar7) goto LAB_00065c84;\n            pbVar11 = pbVar8 + (int)pbVar10;\n          }" { (expression_statement "pbVar6 = pbVar6 + 1;" (assignment_expression "pbVar6 = pbVar6 + 1" identifier = (binary_expression "pbVar6 + 1" identifier + number_literal)) ;) (do_statement "do {\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar8 & 0xc0) == 0x80);" do (compound_statement "{\n              pbVar10 = pbVar11 + (-1 - (int)pbVar8);\n              pbVar8 = pbVar8 + 1;\n              if (!bVar2) break;\n            }" { (expression_statement "pbVar10 = pbVar11 + (-1 - (int)pbVar8);" (assignment_expression "pbVar10 = pbVar11 + (-1 - (int)pbVar8)" identifier = (binary_expression "pbVar11 + (-1 - (int)pbVar8)" identifier + (parenthesized_expression "(-1 - (int)pbVar8)" ( (binary_expression "-1 - (int)pbVar8" number_literal - (cast_expression "(int)pbVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar8 = pbVar8 + 1;" (assignment_expression "pbVar8 = pbVar8 + 1" identifier = (binary_expression "pbVar8 + 1" identifier + number_literal)) ;) (if_statement "if (!bVar2) break;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((*pbVar8 & 0xc0) == 0x80)" ( (binary_expression "(*pbVar8 & 0xc0) == 0x80" (parenthesized_expression "(*pbVar8 & 0xc0)" ( (binary_expression "*pbVar8 & 0xc0" (pointer_expression "*pbVar8" * identifier) & number_literal) )) == number_literal) )) ;) (if_statement "if ((int)pbVar10 < iVar7) goto LAB_00065c84;" if (parenthesized_expression "((int)pbVar10 < iVar7)" ( (binary_expression "(int)pbVar10 < iVar7" (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00065c84;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar8 + (int)pbVar10;" (assignment_expression "pbVar11 = pbVar8 + (int)pbVar10" identifier = (binary_expression "pbVar8 + (int)pbVar10" identifier + (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "(*pbVar8 != bVar1)" ( (binary_expression "*pbVar8 != bVar1" (pointer_expression "*pbVar8" * identifier) != identifier) )) ;) (labeled_statement "LAB_00065be0:\n          iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);" statement_identifier : (expression_statement "iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7);" (assignment_expression "iVar4 = (**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7)" identifier = (call_expression "(**(code **)(puVar12 + 0xf6ffc))(pbVar8,pbVar9,iVar7)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6ffc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6ffc)" * (pointer_expression "*(code **)(puVar12 + 0xf6ffc)" * (cast_expression "(code **)(puVar12 + 0xf6ffc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6ffc)" ( (binary_expression "puVar12 + 0xf6ffc" identifier + number_literal) ))))) )) (argument_list "(pbVar8,pbVar9,iVar7)" ( identifier , identifier , identifier )))) ;)) }) while (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) ;) (if_statement "if ((int)pbVar10 < iVar7) {\n          pbVar6 = (byte *)0x0;\n        }" if (parenthesized_expression "((int)pbVar10 < iVar7)" ( (binary_expression "(int)pbVar10 < iVar7" (cast_expression "(int)pbVar10" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n          pbVar6 = (byte *)0x0;\n        }" { (expression_statement "pbVar6 = (byte *)0x0;" (assignment_expression "pbVar6 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) comment comment (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(pVal,pbVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(pVal,pbVar6)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 *param_3" type_identifier (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "byte *pbVar8;" type_identifier (pointer_declarator "*pbVar8" * identifier) ;) (declaration "byte *pbVar9;" type_identifier (pointer_declarator "*pbVar9" * identifier) ;) (declaration "undefined4 uVar10;" type_identifier identifier ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "char *local_18;" primitive_type (pointer_declarator "*local_18" * identifier) ;) (declaration "int local_14;" primitive_type identifier ;) (expression_statement "puVar12 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar12 = PTR___stack_chk_guard_0015ca30" identifier = identifier) ;) (expression_statement "uVar10 = *param_3;" (assignment_expression "uVar10 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0015ca30" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" * (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "local_18 = (char *)sqlite3_value_text();" (assignment_expression "local_18 = (char *)sqlite3_value_text()" identifier = (cast_expression "(char *)sqlite3_value_text()" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text()" identifier (argument_list "()" ( ))))) ;) (if_statement "if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }" if (parenthesized_expression "((local_18 != (char *)0x0) && (*local_18 != '\0'))" ( (binary_expression "(local_18 != (char *)0x0) && (*local_18 != '\0')" (parenthesized_expression "(local_18 != (char *)0x0)" ( (binary_expression "local_18 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(*local_18 != '\0')" ( (binary_expression "*local_18 != '\0'" (pointer_expression "*local_18" * identifier) != (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }" { (expression_statement "uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);" (assignment_expression "uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18)" identifier = (call_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))" ( (pointer_expression "*(code *)(PTR_LAB_0015c66c + -0x2f40)" * (cast_expression "(code *)(PTR_LAB_0015c66c + -0x2f40)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0015c66c + -0x2f40)" ( (binary_expression "PTR_LAB_0015c66c + -0x2f40" identifier + number_literal) )))) )) (argument_list "(&local_18)" ( (pointer_expression "&local_18" & identifier) )))) ;) (expression_statement "(*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);" (call_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)" ( (pointer_expression "*(code *)PTR_sqlite3_result_int_0015c6ec" * (cast_expression "(code *)PTR_sqlite3_result_int_0015c6ec" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1,uVar10)" ( identifier , identifier ))) ;) (expression_statement "uVar10 = param_1;" (assignment_expression "uVar10 = param_1" identifier = identifier) ;) })) (if_statement "if (local_14 == *(int *)puVar12) {\n    return;\n  }" if (parenthesized_expression "(local_14 == *(int *)puVar12)" ( (binary_expression "local_14 == *(int *)puVar12" identifier == (pointer_expression "*(int *)puVar12" * (cast_expression "(int *)puVar12" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar12 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar12 = PTR___stack_chk_fail_0015ca14" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" * (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3)" identifier = (call_expression "(**(code **)(puVar12 + 0xf6bfc))(*param_3)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" * (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" * (cast_expression "(code **)(puVar12 + 0xf6bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6bfc)" ( (binary_expression "puVar12 + 0xf6bfc" identifier + number_literal) ))))) )) (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);" (assignment_expression "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1])" identifier = (call_expression "(**(code **)(puVar12 + 0xf6bfc))(param_3[1])" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" * (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" * (cast_expression "(code **)(puVar12 + 0xf6bfc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6bfc)" ( (binary_expression "puVar12 + 0xf6bfc" identifier + number_literal) ))))) )) (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) )))) ;) (if_statement "if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }" if (parenthesized_expression "((iVar3 != 5) && (iVar4 != 5))" ( (binary_expression "(iVar3 != 5) && (iVar4 != 5)" (parenthesized_expression "(iVar3 != 5)" ( (binary_expression "iVar3 != 5" identifier != number_literal) )) && (parenthesized_expression "(iVar4 != 5)" ( (binary_expression "iVar4 != 5" identifier != number_literal) ))) )) (compound_statement "{\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }" { (expression_statement "pbVar5 = (byte *)sqlite3_value_bytes(*param_3);" (assignment_expression "pbVar5 = (byte *)sqlite3_value_bytes(*param_3)" identifier = (cast_expression "(byte *)sqlite3_value_bytes(*param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_bytes(*param_3)" identifier (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) ))))) ;) (expression_statement "iVar6 = sqlite3_value_bytes(param_3[1]);" (assignment_expression "iVar6 = sqlite3_value_bytes(param_3[1])" identifier = (call_expression "sqlite3_value_bytes(param_3[1])" identifier (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) )))) ;) (if_statement "if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }" if (parenthesized_expression "(iVar6 < 1)" ( (binary_expression "iVar6 < 1" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }" { (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,1);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,1)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(uVar10,1)" ( identifier , number_literal ))) ;) (return_statement "return;" return ;) })) (if_statement "if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" if (parenthesized_expression "((iVar3 == 4) && (iVar4 == 4))" ( (binary_expression "(iVar3 == 4) && (iVar4 == 4)" (parenthesized_expression "(iVar3 == 4)" ( (binary_expression "iVar3 == 4" identifier == number_literal) )) && (parenthesized_expression "(iVar4 == 4)" ( (binary_expression "iVar4 == 4" identifier == number_literal) ))) )) (compound_statement "{\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }" { (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pbVar7 = (byte *)sqlite3_value_blob();" (assignment_expression "pbVar7 = (byte *)sqlite3_value_blob()" identifier = (cast_expression "(byte *)sqlite3_value_blob()" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_blob()" identifier (argument_list "()" ( ))))) ;) (expression_statement "pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_blob(param_3[1])" identifier = (cast_expression "(byte *)sqlite3_value_blob(param_3[1])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_blob(param_3[1])" identifier (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) ))))) ;) }) (else_clause "else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" else (compound_statement "{\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" { (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "pbVar7 = (byte *)sqlite3_value_text(*param_3);" (assignment_expression "pbVar7 = (byte *)sqlite3_value_text(*param_3)" identifier = (cast_expression "(byte *)sqlite3_value_text(*param_3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text(*param_3)" identifier (argument_list "(*param_3)" ( (pointer_expression "*param_3" * identifier) ))))) ;) (expression_statement "pbVar8 = (byte *)sqlite3_value_text(param_3[1]);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_text(param_3[1])" identifier = (cast_expression "(byte *)sqlite3_value_text(param_3[1])" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_value_text(param_3[1])" identifier (argument_list "(param_3[1])" ( (subscript_expression "param_3[1]" identifier [ number_literal ]) ))))) ;) }))) (if_statement "if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }" if (parenthesized_expression "(pbVar8 != (byte *)0x0)" ( (binary_expression "pbVar8 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }" { (if_statement "if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }" if (parenthesized_expression "(pbVar5 != (byte *)0x0)" ( (binary_expression "pbVar5 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }" { (if_statement "if (pbVar7 == (byte *)0x0) {\n          return;\n        }" if (parenthesized_expression "(pbVar7 == (byte *)0x0)" ( (binary_expression "pbVar7 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" identifier = (pointer_expression "*pbVar8" * identifier)) ;) (if_statement "if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }" if (parenthesized_expression "((int)pbVar5 < iVar6)" ( (binary_expression "(int)pbVar5 < iVar6" (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }" { (labeled_statement "LAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);" statement_identifier : (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,0);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,0)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(uVar10,0)" ( identifier , number_literal ))) ;)) (return_statement "return;" return ;) })) (expression_statement "pbVar9 = pbVar5;" (assignment_expression "pbVar9 = pbVar5" identifier = identifier) ;) (expression_statement "pbVar5 = (byte *)0x1;" (assignment_expression "pbVar5 = (byte *)0x1" identifier = (cast_expression "(byte *)0x1" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pbVar7 == bVar1) goto LAB_00065be0;" if (parenthesized_expression "(*pbVar7 == bVar1)" ( (binary_expression "*pbVar7 == bVar1" (pointer_expression "*pbVar7" * identifier) == identifier) )) (goto_statement "goto LAB_00065be0;" goto statement_identifier ;)) (do_statement "do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);" do (compound_statement "{\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        }" { (expression_statement "pbVar11 = pbVar7 + (int)pbVar9;" (assignment_expression "pbVar11 = pbVar7 + (int)pbVar9" identifier = (binary_expression "pbVar7 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);" do (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          }" { (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" identifier = (binary_expression "pbVar5 + 1" identifier + number_literal)) ;) (do_statement "do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);" do (compound_statement "{\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            }" { (expression_statement "pbVar9 = pbVar11 + (-1 - (int)pbVar7);" (assignment_expression "pbVar9 = pbVar11 + (-1 - (int)pbVar7)" identifier = (binary_expression "pbVar11 + (-1 - (int)pbVar7)" identifier + (parenthesized_expression "(-1 - (int)pbVar7)" ( (binary_expression "-1 - (int)pbVar7" number_literal - (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" identifier = (binary_expression "pbVar7 + 1" identifier + number_literal)) ;) (if_statement "if (!bVar2) break;" if (parenthesized_expression "(!bVar2)" ( (unary_expression "!bVar2" ! identifier) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "((*pbVar7 & 0xc0) == 0x80)" ( (binary_expression "(*pbVar7 & 0xc0) == 0x80" (parenthesized_expression "(*pbVar7 & 0xc0)" ( (binary_expression "*pbVar7 & 0xc0" (pointer_expression "*pbVar7" * identifier) & number_literal) )) == number_literal) )) ;) (if_statement "if ((int)pbVar9 < iVar6) goto LAB_00065c84;" if (parenthesized_expression "((int)pbVar9 < iVar6)" ( (binary_expression "(int)pbVar9 < iVar6" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (goto_statement "goto LAB_00065c84;" goto statement_identifier ;)) (expression_statement "pbVar11 = pbVar7 + (int)pbVar9;" (assignment_expression "pbVar11 = pbVar7 + (int)pbVar9" identifier = (binary_expression "pbVar7 + (int)pbVar9" identifier + (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) while (parenthesized_expression "(*pbVar7 != bVar1)" ( (binary_expression "*pbVar7 != bVar1" (pointer_expression "*pbVar7" * identifier) != identifier) )) ;) (labeled_statement "LAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);" statement_identifier : (expression_statement "iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6)" identifier = (call_expression "(**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6ffc))" ( (pointer_expression "**(code **)(puVar12 + 0xf6ffc)" * (pointer_expression "*(code **)(puVar12 + 0xf6ffc)" * (cast_expression "(code **)(puVar12 + 0xf6ffc)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6ffc)" ( (binary_expression "puVar12 + 0xf6ffc" identifier + number_literal) ))))) )) (argument_list "(pbVar7,pbVar8,iVar6)" ( identifier , identifier , identifier )))) ;)) }) while (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) ;) (if_statement "if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }" if (parenthesized_expression "((int)pbVar9 < iVar6)" ( (binary_expression "(int)pbVar9 < iVar6" (cast_expression "(int)pbVar9" ( (type_descriptor "int" primitive_type) ) identifier) < identifier) )) (compound_statement "{\n          pbVar5 = (byte *)0x0;\n        }" { (expression_statement "pbVar5 = (byte *)0x0;" (assignment_expression "pbVar5 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) })) (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" ( (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" * (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" * (cast_expression "(code **)(puVar12 + 0xf6cc8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar12 + 0xf6cc8)" ( (binary_expression "puVar12 + 0xf6cc8" identifier + number_literal) ))))) )) (argument_list "(uVar10,pbVar5)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (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 = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;) (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT ))) ;)) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) & LIT) )) == LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != IDENT) )) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })) })) (return_statement return ;) })))
(function_definition "void FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)\n\n{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00065978(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" (identifier "FUN_00065978") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 *param_3)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *param_3" (type_identifier "undefined4") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  byte bVar1;\n  bool bVar2;\n  int iVar3;\n  int iVar4;\n  byte *pbVar5;\n  int iVar6;\n  byte *pbVar7;\n  byte *pbVar8;\n  byte *pbVar9;\n  undefined4 uVar10;\n  byte *pbVar11;\n  undefined *puVar12;\n  char *local_18;\n  int local_14;\n  \n  puVar12 = PTR___stack_chk_guard_0015ca30;\n  uVar10 = *param_3;\n  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;\n  local_18 = (char *)sqlite3_value_text();\n  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }\n  if (local_14 == *(int *)puVar12) {\n    return;\n  }\n  puVar12 = PTR___stack_chk_fail_0015ca14;\n  (*(code *)PTR___stack_chk_fail_0015ca14)();\n  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);\n  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);\n  if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }\n  return;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "byte *pbVar5;" (type_identifier "byte") (pointer_declarator "*pbVar5" (* "*") (identifier "pbVar5")) (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "byte *pbVar8;" (type_identifier "byte") (pointer_declarator "*pbVar8" (* "*") (identifier "pbVar8")) (; ";")) (declaration "byte *pbVar9;" (type_identifier "byte") (pointer_declarator "*pbVar9" (* "*") (identifier "pbVar9")) (; ";")) (declaration "undefined4 uVar10;" (type_identifier "undefined4") (identifier "uVar10") (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "undefined *puVar12;" (type_identifier "undefined") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "char *local_18;" (primitive_type "char") (pointer_declarator "*local_18" (* "*") (identifier "local_18")) (; ";")) (declaration "int local_14;" (primitive_type "int") (identifier "local_14") (; ";")) (expression_statement "puVar12 = PTR___stack_chk_guard_0015ca30;" (assignment_expression "puVar12 = PTR___stack_chk_guard_0015ca30" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_guard_0015ca30")) (; ";")) (expression_statement "uVar10 = *param_3;" (assignment_expression "uVar10 = *param_3" (identifier "uVar10") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (expression_statement "local_14 = *(int *)PTR___stack_chk_guard_0015ca30;" (assignment_expression "local_14 = *(int *)PTR___stack_chk_guard_0015ca30" (identifier "local_14") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_0015ca30" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_0015ca30" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_0015ca30")))) (; ";")) (expression_statement "local_18 = (char *)sqlite3_value_text();" (assignment_expression "local_18 = (char *)sqlite3_value_text()" (identifier "local_18") (= "=") (cast_expression "(char *)sqlite3_value_text()" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_text()" (identifier "sqlite3_value_text") (argument_list "()" (( "(") () ")"))))) (; ";")) (if_statement "if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }" (if "if") (parenthesized_expression "((local_18 != (char *)0x0) && (*local_18 != '\0'))" (( "(") (binary_expression "(local_18 != (char *)0x0) && (*local_18 != '\0')" (parenthesized_expression "(local_18 != (char *)0x0)" (( "(") (binary_expression "local_18 != (char *)0x0" (identifier "local_18") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(*local_18 != '\0')" (( "(") (binary_expression "*local_18 != '\0'" (pointer_expression "*local_18" (* "*") (identifier "local_18")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);\n    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);\n    uVar10 = param_1;\n  }" ({ "{") (expression_statement "uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);" (assignment_expression "uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18)" (identifier "uVar10") (= "=") (call_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18)" (parenthesized_expression "(*(code *)(PTR_LAB_0015c66c + -0x2f40))" (( "(") (pointer_expression "*(code *)(PTR_LAB_0015c66c + -0x2f40)" (* "*") (cast_expression "(code *)(PTR_LAB_0015c66c + -0x2f40)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_0015c66c + -0x2f40)" (( "(") (binary_expression "PTR_LAB_0015c66c + -0x2f40" (identifier "PTR_LAB_0015c66c") (+ "+") (number_literal "-0x2f40")) () ")")))) () ")")) (argument_list "(&local_18)" (( "(") (pointer_expression "&local_18" (& "&") (identifier "local_18")) () ")")))) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);" (call_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10)" (parenthesized_expression "(*(code *)PTR_sqlite3_result_int_0015c6ec)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_result_int_0015c6ec" (* "*") (cast_expression "(code *)PTR_sqlite3_result_int_0015c6ec" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_result_int_0015c6ec"))) () ")")) (argument_list "(param_1,uVar10)" (( "(") (identifier "param_1") (, ",") (identifier "uVar10") () ")"))) (; ";")) (expression_statement "uVar10 = param_1;" (assignment_expression "uVar10 = param_1" (identifier "uVar10") (= "=") (identifier "param_1")) (; ";")) (} "}"))) (if_statement "if (local_14 == *(int *)puVar12) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_14 == *(int *)puVar12)" (( "(") (binary_expression "local_14 == *(int *)puVar12" (identifier "local_14") (== "==") (pointer_expression "*(int *)puVar12" (* "*") (cast_expression "(int *)puVar12" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar12")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "puVar12 = PTR___stack_chk_fail_0015ca14;" (assignment_expression "puVar12 = PTR___stack_chk_fail_0015ca14" (identifier "puVar12") (= "=") (identifier "PTR___stack_chk_fail_0015ca14")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_0015ca14)();" (call_expression "(*(code *)PTR___stack_chk_fail_0015ca14)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0015ca14)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_0015ca14" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_0015ca14" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_0015ca14"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar12 + 0xf6bfc))(*param_3)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" (( "(") (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" (* "*") (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" (* "*") (cast_expression "(code **)(puVar12 + 0xf6bfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0xf6bfc)" (( "(") (binary_expression "puVar12 + 0xf6bfc" (identifier "puVar12") (+ "+") (number_literal "0xf6bfc")) () ")"))))) () ")")) (argument_list "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);" (assignment_expression "iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1])" (identifier "iVar4") (= "=") (call_expression "(**(code **)(puVar12 + 0xf6bfc))(param_3[1])" (parenthesized_expression "(**(code **)(puVar12 + 0xf6bfc))" (( "(") (pointer_expression "**(code **)(puVar12 + 0xf6bfc)" (* "*") (pointer_expression "*(code **)(puVar12 + 0xf6bfc)" (* "*") (cast_expression "(code **)(puVar12 + 0xf6bfc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0xf6bfc)" (( "(") (binary_expression "puVar12 + 0xf6bfc" (identifier "puVar12") (+ "+") (number_literal "0xf6bfc")) () ")"))))) () ")")) (argument_list "(param_3[1])" (( "(") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if ((iVar3 != 5) && (iVar4 != 5)) {\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }" (if "if") (parenthesized_expression "((iVar3 != 5) && (iVar4 != 5))" (( "(") (binary_expression "(iVar3 != 5) && (iVar4 != 5)" (parenthesized_expression "(iVar3 != 5)" (( "(") (binary_expression "iVar3 != 5" (identifier "iVar3") (!= "!=") (number_literal "5")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 != 5)" (( "(") (binary_expression "iVar4 != 5" (identifier "iVar4") (!= "!=") (number_literal "5")) () ")"))) () ")")) (compound_statement "{\n    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);\n    iVar6 = sqlite3_value_bytes(param_3[1]);\n    if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }\n    if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }\n    if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }\n  }" ({ "{") (expression_statement "pbVar5 = (byte *)sqlite3_value_bytes(*param_3);" (assignment_expression "pbVar5 = (byte *)sqlite3_value_bytes(*param_3)" (identifier "pbVar5") (= "=") (cast_expression "(byte *)sqlite3_value_bytes(*param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_bytes(*param_3)" (identifier "sqlite3_value_bytes") (argument_list "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")"))))) (; ";")) (expression_statement "iVar6 = sqlite3_value_bytes(param_3[1]);" (assignment_expression "iVar6 = sqlite3_value_bytes(param_3[1])" (identifier "iVar6") (= "=") (call_expression "sqlite3_value_bytes(param_3[1])" (identifier "sqlite3_value_bytes") (argument_list "(param_3[1])" (( "(") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) () ")")))) (; ";")) (if_statement "if (iVar6 < 1) {\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }" (if "if") (parenthesized_expression "(iVar6 < 1)" (( "(") (binary_expression "iVar6 < 1" (identifier "iVar6") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);\n      return;\n    }" ({ "{") (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,1);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,1)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" (( "(") (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" (* "*") (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" (* "*") (cast_expression "(code **)(puVar12 + 0xf6cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0xf6cc8)" (( "(") (binary_expression "puVar12 + 0xf6cc8" (identifier "puVar12") (+ "+") (number_literal "0xf6cc8")) () ")"))))) () ")")) (argument_list "(uVar10,1)" (( "(") (identifier "uVar10") (, ",") (number_literal "1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if ((iVar3 == 4) && (iVar4 == 4)) {\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }\n    else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" (if "if") (parenthesized_expression "((iVar3 == 4) && (iVar4 == 4))" (( "(") (binary_expression "(iVar3 == 4) && (iVar4 == 4)" (parenthesized_expression "(iVar3 == 4)" (( "(") (binary_expression "iVar3 == 4" (identifier "iVar3") (== "==") (number_literal "4")) () ")")) (&& "&&") (parenthesized_expression "(iVar4 == 4)" (( "(") (binary_expression "iVar4 == 4" (identifier "iVar4") (== "==") (number_literal "4")) () ")"))) () ")")) (compound_statement "{\n      bVar2 = false;\n      pbVar7 = (byte *)sqlite3_value_blob();\n      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);\n    }" ({ "{") (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "pbVar7 = (byte *)sqlite3_value_blob();" (assignment_expression "pbVar7 = (byte *)sqlite3_value_blob()" (identifier "pbVar7") (= "=") (cast_expression "(byte *)sqlite3_value_blob()" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_blob()" (identifier "sqlite3_value_blob") (argument_list "()" (( "(") () ")"))))) (; ";")) (expression_statement "pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_blob(param_3[1])" (identifier "pbVar8") (= "=") (cast_expression "(byte *)sqlite3_value_blob(param_3[1])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_blob(param_3[1])" (identifier "sqlite3_value_blob") (argument_list "(param_3[1])" (( "(") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" (else "else") (compound_statement "{\n      bVar2 = true;\n      pbVar7 = (byte *)sqlite3_value_text(*param_3);\n      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);\n    }" ({ "{") (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "pbVar7 = (byte *)sqlite3_value_text(*param_3);" (assignment_expression "pbVar7 = (byte *)sqlite3_value_text(*param_3)" (identifier "pbVar7") (= "=") (cast_expression "(byte *)sqlite3_value_text(*param_3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_text(*param_3)" (identifier "sqlite3_value_text") (argument_list "(*param_3)" (( "(") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")"))))) (; ";")) (expression_statement "pbVar8 = (byte *)sqlite3_value_text(param_3[1]);" (assignment_expression "pbVar8 = (byte *)sqlite3_value_text(param_3[1])" (identifier "pbVar8") (= "=") (cast_expression "(byte *)sqlite3_value_text(param_3[1])" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "sqlite3_value_text(param_3[1])" (identifier "sqlite3_value_text") (argument_list "(param_3[1])" (( "(") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (pbVar8 != (byte *)0x0) {\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }" (if "if") (parenthesized_expression "(pbVar8 != (byte *)0x0)" (( "(") (binary_expression "pbVar8 != (byte *)0x0" (identifier "pbVar8") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }\n                    \n                    \n      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);\n      return;\n    }" ({ "{") (if_statement "if (pbVar5 != (byte *)0x0) {\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }" (if "if") (parenthesized_expression "(pbVar5 != (byte *)0x0)" (( "(") (binary_expression "pbVar5 != (byte *)0x0" (identifier "pbVar5") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        if (pbVar7 == (byte *)0x0) {\n          return;\n        }\n        bVar1 = *pbVar8;\n        if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }\n        pbVar9 = pbVar5;\n        pbVar5 = (byte *)0x1;\n        if (*pbVar7 == bVar1) goto LAB_00065be0;\n        do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);\n        if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }\n      }" ({ "{") (if_statement "if (pbVar7 == (byte *)0x0) {\n          return;\n        }" (if "if") (parenthesized_expression "(pbVar7 == (byte *)0x0)" (( "(") (binary_expression "pbVar7 == (byte *)0x0" (identifier "pbVar7") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return;\n        }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "bVar1 = *pbVar8;" (assignment_expression "bVar1 = *pbVar8" (identifier "bVar1") (= "=") (pointer_expression "*pbVar8" (* "*") (identifier "pbVar8"))) (; ";")) (if_statement "if ((int)pbVar5 < iVar6) {\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }" (if "if") (parenthesized_expression "((int)pbVar5 < iVar6)" (( "(") (binary_expression "(int)pbVar5 < iVar6" (cast_expression "(int)pbVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar5")) (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\nLAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);\n          return;\n        }" ({ "{") (labeled_statement "LAB_00065c84:\n                    \n                    \n          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);" (statement_identifier "LAB_00065c84") (: ":") (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,0);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,0)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" (( "(") (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" (* "*") (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" (* "*") (cast_expression "(code **)(puVar12 + 0xf6cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0xf6cc8)" (( "(") (binary_expression "puVar12 + 0xf6cc8" (identifier "puVar12") (+ "+") (number_literal "0xf6cc8")) () ")"))))) () ")")) (argument_list "(uVar10,0)" (( "(") (identifier "uVar10") (, ",") (number_literal "0") () ")"))) (; ";"))) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pbVar9 = pbVar5;" (assignment_expression "pbVar9 = pbVar5" (identifier "pbVar9") (= "=") (identifier "pbVar5")) (; ";")) (expression_statement "pbVar5 = (byte *)0x1;" (assignment_expression "pbVar5 = (byte *)0x1" (identifier "pbVar5") (= "=") (cast_expression "(byte *)0x1" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (*pbVar7 == bVar1) goto LAB_00065be0;" (if "if") (parenthesized_expression "(*pbVar7 == bVar1)" (( "(") (binary_expression "*pbVar7 == bVar1" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (== "==") (identifier "bVar1")) () ")")) (goto_statement "goto LAB_00065be0;" (goto "goto") (statement_identifier "LAB_00065be0") (; ";"))) (do_statement "do {\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        } while (iVar3 != 0);" (do "do") (compound_statement "{\n          pbVar11 = pbVar7 + (int)pbVar9;\n          do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);\nLAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);\n        }" ({ "{") (expression_statement "pbVar11 = pbVar7 + (int)pbVar9;" (assignment_expression "pbVar11 = pbVar7 + (int)pbVar9" (identifier "pbVar11") (= "=") (binary_expression "pbVar7 + (int)pbVar9" (identifier "pbVar7") (+ "+") (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")))) (; ";")) (do_statement "do {\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          } while (*pbVar7 != bVar1);" (do "do") (compound_statement "{\n            pbVar5 = pbVar5 + 1;\n            do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);\n            if ((int)pbVar9 < iVar6) goto LAB_00065c84;\n            pbVar11 = pbVar7 + (int)pbVar9;\n          }" ({ "{") (expression_statement "pbVar5 = pbVar5 + 1;" (assignment_expression "pbVar5 = pbVar5 + 1" (identifier "pbVar5") (= "=") (binary_expression "pbVar5 + 1" (identifier "pbVar5") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            } while ((*pbVar7 & 0xc0) == 0x80);" (do "do") (compound_statement "{\n              pbVar9 = pbVar11 + (-1 - (int)pbVar7);\n              pbVar7 = pbVar7 + 1;\n              if (!bVar2) break;\n            }" ({ "{") (expression_statement "pbVar9 = pbVar11 + (-1 - (int)pbVar7);" (assignment_expression "pbVar9 = pbVar11 + (-1 - (int)pbVar7)" (identifier "pbVar9") (= "=") (binary_expression "pbVar11 + (-1 - (int)pbVar7)" (identifier "pbVar11") (+ "+") (parenthesized_expression "(-1 - (int)pbVar7)" (( "(") (binary_expression "-1 - (int)pbVar7" (number_literal "-1") (- "-") (cast_expression "(int)pbVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar7"))) () ")")))) (; ";")) (expression_statement "pbVar7 = pbVar7 + 1;" (assignment_expression "pbVar7 = pbVar7 + 1" (identifier "pbVar7") (= "=") (binary_expression "pbVar7 + 1" (identifier "pbVar7") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (!bVar2) break;" (if "if") (parenthesized_expression "(!bVar2)" (( "(") (unary_expression "!bVar2" (! "!") (identifier "bVar2")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "((*pbVar7 & 0xc0) == 0x80)" (( "(") (binary_expression "(*pbVar7 & 0xc0) == 0x80" (parenthesized_expression "(*pbVar7 & 0xc0)" (( "(") (binary_expression "*pbVar7 & 0xc0" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (& "&") (number_literal "0xc0")) () ")")) (== "==") (number_literal "0x80")) () ")")) (; ";")) (if_statement "if ((int)pbVar9 < iVar6) goto LAB_00065c84;" (if "if") (parenthesized_expression "((int)pbVar9 < iVar6)" (( "(") (binary_expression "(int)pbVar9 < iVar6" (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")) (< "<") (identifier "iVar6")) () ")")) (goto_statement "goto LAB_00065c84;" (goto "goto") (statement_identifier "LAB_00065c84") (; ";"))) (expression_statement "pbVar11 = pbVar7 + (int)pbVar9;" (assignment_expression "pbVar11 = pbVar7 + (int)pbVar9" (identifier "pbVar11") (= "=") (binary_expression "pbVar7 + (int)pbVar9" (identifier "pbVar7") (+ "+") (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(*pbVar7 != bVar1)" (( "(") (binary_expression "*pbVar7 != bVar1" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (!= "!=") (identifier "bVar1")) () ")")) (; ";")) (labeled_statement "LAB_00065be0:\n          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);" (statement_identifier "LAB_00065be0") (: ":") (expression_statement "iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);" (assignment_expression "iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6)" (identifier "iVar3") (= "=") (call_expression "(**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6ffc))" (( "(") (pointer_expression "**(code **)(puVar12 + 0xf6ffc)" (* "*") (pointer_expression "*(code **)(puVar12 + 0xf6ffc)" (* "*") (cast_expression "(code **)(puVar12 + 0xf6ffc)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0xf6ffc)" (( "(") (binary_expression "puVar12 + 0xf6ffc" (identifier "puVar12") (+ "+") (number_literal "0xf6ffc")) () ")"))))) () ")")) (argument_list "(pbVar7,pbVar8,iVar6)" (( "(") (identifier "pbVar7") (, ",") (identifier "pbVar8") (, ",") (identifier "iVar6") () ")")))) (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if ((int)pbVar9 < iVar6) {\n          pbVar5 = (byte *)0x0;\n        }" (if "if") (parenthesized_expression "((int)pbVar9 < iVar6)" (( "(") (binary_expression "(int)pbVar9 < iVar6" (cast_expression "(int)pbVar9" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar9")) (< "<") (identifier "iVar6")) () ")")) (compound_statement "{\n          pbVar5 = (byte *)0x0;\n        }" ({ "{") (expression_statement "pbVar5 = (byte *)0x0;" (assignment_expression "pbVar5 = (byte *)0x0" (identifier "pbVar5") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);" (call_expression "(**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5)" (parenthesized_expression "(**(code **)(puVar12 + 0xf6cc8))" (( "(") (pointer_expression "**(code **)(puVar12 + 0xf6cc8)" (* "*") (pointer_expression "*(code **)(puVar12 + 0xf6cc8)" (* "*") (cast_expression "(code **)(puVar12 + 0xf6cc8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar12 + 0xf6cc8)" (( "(") (binary_expression "puVar12 + 0xf6cc8" (identifier "puVar12") (+ "+") (number_literal "0xf6cc8")) () ")"))))) () ")")) (argument_list "(uVar10,pbVar5)" (( "(") (identifier "uVar10") (, ",") (identifier "pbVar5") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (char_literal (escape_sequence)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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 (return_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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (pointer_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))))))) arguments: (argument_list (identifier) (number_literal)))) (return_statement))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (false))) (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (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 (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 (subscript_expression argument: (identifier) index: (number_literal)))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (number_literal))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (break_statement))) condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier) (identifier))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (identifier)))) (return_statement))))) (return_statement))))

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

{
  byte bVar1;
  bool bVar2;
  int iVar3;
  int iVar4;
  byte *pbVar5;
  int iVar6;
  byte *pbVar7;
  byte *pbVar8;
  byte *pbVar9;
  undefined4 uVar10;
  byte *pbVar11;
  undefined *puVar12;
  char *local_18;
  int local_14;
  
  puVar12 = PTR___stack_chk_guard_0015ca30;
  uVar10 = *param_3;
  local_14 = *(int *)PTR___stack_chk_guard_0015ca30;
  local_18 = (char *)sqlite3_value_text();
  if ((local_18 != (char *)0x0) && (*local_18 != '\0')) {
    uVar10 = (*(code *)(PTR_LAB_0015c66c + -0x2f40))(&local_18);
    (*(code *)PTR_sqlite3_result_int_0015c6ec)(param_1,uVar10);
    uVar10 = param_1;
  }
  if (local_14 == *(int *)puVar12) {
    return;
  }
  puVar12 = PTR___stack_chk_fail_0015ca14;
  (*(code *)PTR___stack_chk_fail_0015ca14)();
  iVar3 = (**(code **)(puVar12 + 0xf6bfc))(*param_3);
  iVar4 = (**(code **)(puVar12 + 0xf6bfc))(param_3[1]);
  if ((iVar3 != 5) && (iVar4 != 5)) {
    pbVar5 = (byte *)sqlite3_value_bytes(*param_3);
    iVar6 = sqlite3_value_bytes(param_3[1]);
    if (iVar6 < 1) {
                    /* WARNING: Could not recover jumptable at 0x00065c7c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puVar12 + 0xf6cc8))(uVar10,1);
      return;
    }
    if ((iVar3 == 4) && (iVar4 == 4)) {
      bVar2 = false;
      pbVar7 = (byte *)sqlite3_value_blob();
      pbVar8 = (byte *)sqlite3_value_blob(param_3[1]);
    }
    else {
      bVar2 = true;
      pbVar7 = (byte *)sqlite3_value_text(*param_3);
      pbVar8 = (byte *)sqlite3_value_text(param_3[1]);
    }
    if (pbVar8 != (byte *)0x0) {
      if (pbVar5 != (byte *)0x0) {
        if (pbVar7 == (byte *)0x0) {
          return;
        }
        bVar1 = *pbVar8;
        if ((int)pbVar5 < iVar6) {
LAB_00065c84:
                    /* WARNING: Could not recover jumptable at 0x00065cbc. Too many branches */
                    /* WARNING: Treating indirect jump as call */
          (**(code **)(puVar12 + 0xf6cc8))(uVar10,0);
          return;
        }
        pbVar9 = pbVar5;
        pbVar5 = (byte *)0x1;
        if (*pbVar7 == bVar1) goto LAB_00065be0;
        do {
          pbVar11 = pbVar7 + (int)pbVar9;
          do {
            pbVar5 = pbVar5 + 1;
            do {
              pbVar9 = pbVar11 + (-1 - (int)pbVar7);
              pbVar7 = pbVar7 + 1;
              if (!bVar2) break;
            } while ((*pbVar7 & 0xc0) == 0x80);
            if ((int)pbVar9 < iVar6) goto LAB_00065c84;
            pbVar11 = pbVar7 + (int)pbVar9;
          } while (*pbVar7 != bVar1);
LAB_00065be0:
          iVar3 = (**(code **)(puVar12 + 0xf6ffc))(pbVar7,pbVar8,iVar6);
        } while (iVar3 != 0);
        if ((int)pbVar9 < iVar6) {
          pbVar5 = (byte *)0x0;
        }
      }
                    /* WARNING: Could not recover jumptable at 0x00065c3c. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      (**(code **)(puVar12 + 0xf6cc8))(uVar10,pbVar5);
      return;
    }
  }
  return;
}

