
u8 getSafetyLevel(char *z,int omitFull,u8 dflt)

{
  undefined *puVar1;
  undefined3 extraout_var;
  uint uVar2;
  int iVar3;
  uint uVar4;
  char *pcVar5;
  u8 uVar6;
  int *pValue;
  undefined3 in_register_00000018;
  uint uVar7;
  uint N;
  int iVar8;
  undefined *puVar9;
  int iVar10;
  undefined *puVar11;
  undefined *puVar12;
  undefined *puVar13;
  int x;
  char *pcStack_1c;
  
  puVar1 = PTR___stack_chk_guard_00190e24;
  uVar7 = CONCAT31(in_register_00000018,dflt);
  pcStack_1c = *(char **)PTR___stack_chk_guard_00190e24;
  if ((PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0) {
    pValue = (int *)omitFull;
    uVar2 = (*(code *)PTR_strlen_00190d80)();
    N = 2;
    uVar2 = uVar2 & 0x3fffffff;
    iVar8 = 0;
    iVar10 = 8;
    puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;
    puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;
    puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;
    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;
    while (((N != uVar2 ||
            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),
            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {
      iVar8 = iVar8 + 1;
      uVar4 = uVar7;
      if (iVar8 == iVar10) break;
      N = (uint)(byte)puVar9[iVar8];
    }
  }
  else {
    pValue = &x;
    x = 0;
    sqlite3GetInt32(z,pValue);
    uVar4 = x & 0xff;
    N = uVar7;
  }
  if (pcStack_1c == *(char **)puVar1) {
    return (u8)uVar4;
  }
  pcVar5 = pcStack_1c;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  pcVar5 = sqlite3_uri_parameter(pcVar5,(char *)pValue);
  if (pcVar5 == (char *)0x0) {
    return N != 0;
  }
  uVar6 = getSafetyLevel(pcVar5,1,N != 0);
  return CONCAT31(extraout_var,uVar6) != 0;
}



uint FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  undefined *puVar6;
  int iVar7;
  undefined *puVar8;
  undefined *puVar9;
  undefined *puVar10;
  undefined *puVar11;
  uint local_20;
  int local_1c;
  
  puVar11 = PTR___stack_chk_guard_00190e24;
  local_1c = *(int *)PTR___stack_chk_guard_00190e24;
  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {
    uVar1 = (*(code *)PTR_strlen_00190d80)();
    uVar4 = 2;
    uVar1 = uVar1 & 0x3fffffff;
    iVar5 = 0;
    iVar7 = 8;
    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;
    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;
    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;
    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;
    while (((uVar4 != uVar1 ||
            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||
           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {
      iVar5 = iVar5 + 1;
      uVar3 = param_3;
      if (iVar5 == iVar7) break;
      uVar4 = (uint)(byte)puVar6[iVar5];
    }
  }
  else {
    local_20 = 0;
    FUN_00048534(param_1,&local_20);
    uVar3 = local_20 & 0xff;
    uVar4 = param_3;
  }
  if (local_1c == *(int *)puVar11) {
    return uVar3;
  }
  puVar11 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puVar11 = puVar11 + 0x13095c;
  iVar5 = sqlite3_uri_parameter();
  if (iVar5 == 0) {
    return (uint)(uVar4 != 0);
  }
  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);
  return (uint)(iVar5 != 0);
}


lui gp,0x13
addiu gp,gp,0xaac
addu gp,gp,t9
addiu sp,sp,-0x38
lw v1,-0x7d8c(gp)
sw s1,0x28(sp)
addiu v1,v1,-0x3d18
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s0,0x24(sp)
lbu v0,0x0(a0)
lw s1,-0x7afc(gp)
addu v0,v0,v1
lw v1,0x0(s1)
lbu v0,0x0(v0)
sw v1,0x1c(sp)
andi v0,v0,0x4
bne v0,zero,0x00067f98
_nop
lw t9,-0x7ba0(gp)
or s2,a2,zero
or s0,a0,zero
jalr t9
_or s3,a1,zero
li a2,0x2
lw gp,0x10(sp)
ext t3,v0,0x0,0x1e
or t1,zero,zero
li t4,0x8
lw t6,-0x7fc4(gp)
lw t5,-0x7fc4(gp)
lw t9,-0x7d78(gp)
lw t7,-0x7fc4(gp)
addiu t6,t6,0x6928
lw t2,-0x7fc4(gp)
addiu t5,t5,0x690c
addiu t9,t9,0x27e4
addiu t7,t7,0x6904
b 0x00067f2c
_addiu t2,t2,0x6930
addiu t1,t1,0x1
beq t1,t4,0x00067f6c
_addu v0,t2,t1
lbu a2,0x0(v0)
bne a2,t3,0x00067f1c
_addu v0,t6,t1
or a1,s0,zero
lbu a0,0x0(v0)
bal 0x000527e4
_addu a0,t5,a0
bne v0,zero,0x00067f1c
_lw gp,0x10(sp)
addu v0,t7,t1
beq s3,zero,0x00067f68
_lbu v0,0x0(v0)
sltiu v1,v0,0x2
beq v1,zero,0x00067f20
_addiu t1,t1,0x1
addiu t1,t1,-0x1
or s2,v0,zero
lw a0,0x1c(sp)
or v0,s2,zero
lw v1,0x0(s1)
bne a0,v1,0x00067fb8
_lw ra,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
lw t9,-0x7d78(gp)
addiu a1,sp,0x18
addiu t9,t9,-0x7acc
bal 0x00048534
_sw zero,0x18(sp)
lw gp,0x10(sp)
b 0x00067f6c
_lbu s2,0x1b(sp)
lw t9,-0x7b28(gp)
jalr t9
_nop
(translation_unit "uint FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}\n\n" (function_definition "uint FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}" type_identifier (function_declarator "FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)" identifier (parameter_list "(byte *param_1,int param_2,uint param_3,undefined4 param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar11 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00190e24" * (cast_expression "(int *)PTR___stack_chk_guard_00190e24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" if (parenthesized_expression "((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0)" ( (binary_expression "(PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0" (parenthesized_expression "(PTR_DAT_00190b94[*param_1 - 0x3d18] & 4)" ( (binary_expression "PTR_DAT_00190b94[*param_1 - 0x3d18] & 4" (subscript_expression "PTR_DAT_00190b94[*param_1 - 0x3d18]" identifier [ (binary_expression "*param_1 - 0x3d18" (pointer_expression "*param_1" * identifier) - number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }" { (expression_statement "uVar1 = (*(code *)PTR_strlen_00190d80)();" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00190d80)()" identifier = (call_expression "(*(code *)PTR_strlen_00190d80)()" (parenthesized_expression "(*(code *)PTR_strlen_00190d80)" ( (pointer_expression "*(code *)PTR_strlen_00190d80" * (cast_expression "(code *)PTR_strlen_00190d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (expression_statement "uVar1 = uVar1 & 0x3fffffff;" (assignment_expression "uVar1 = uVar1 & 0x3fffffff" identifier = (binary_expression "uVar1 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;" (assignment_expression "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;" (assignment_expression "puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" identifier + number_literal)) ;) (expression_statement "puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;" (assignment_expression "puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;" (assignment_expression "puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" identifier + number_literal)) ;) (while_statement "while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }" while (parenthesized_expression "(((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))))" ( (parenthesized_expression "((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))" ( (binary_expression "(uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))" (parenthesized_expression "(uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0))" ( (binary_expression "uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)" (binary_expression "uVar4 != uVar1" identifier != identifier) || (parenthesized_expression "(iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0" (assignment_expression "iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1)" identifier = (call_expression "FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1)" identifier (argument_list "(puVar8 + (byte)puVar9[iVar5],param_1)" ( (binary_expression "puVar8 + (byte)puVar9[iVar5]" identifier + (cast_expression "(byte)puVar9[iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar9[iVar5]" identifier [ identifier ]))) , identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))" ( (parenthesized_expression "(uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))" ( (comma_expression "uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)" (assignment_expression "uVar3 = (uint)(byte)puVar10[iVar5]" identifier = (cast_expression "(uint)(byte)puVar10[iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar10[iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar10[iVar5]" identifier [ identifier ])))) , (binary_expression "param_2 != 0 && (1 < uVar3)" (binary_expression "param_2 != 0" identifier != number_literal) && (parenthesized_expression "(1 < uVar3)" ( (binary_expression "1 < uVar3" number_literal < identifier) )))) )) ))) )) )) (compound_statement "{\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = param_3;" (assignment_expression "uVar3 = param_3" identifier = identifier) ;) (if_statement "if (iVar5 == iVar7) break;" if (parenthesized_expression "(iVar5 == iVar7)" ( (binary_expression "iVar5 == iVar7" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = (uint)(byte)puVar6[iVar5];" (assignment_expression "uVar4 = (uint)(byte)puVar6[iVar5]" identifier = (cast_expression "(uint)(byte)puVar6[iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar6[iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar6[iVar5]" identifier [ identifier ])))) ;) })) }) (else_clause "else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" else (compound_statement "{\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" { (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00048534(param_1,&local_20);" (call_expression "FUN_00048534(param_1,&local_20)" identifier (argument_list "(param_1,&local_20)" ( identifier , (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "uVar3 = local_20 & 0xff;" (assignment_expression "uVar3 = local_20 & 0xff" identifier = (binary_expression "local_20 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar4 = param_3;" (assignment_expression "uVar4 = param_3" identifier = identifier) ;) }))) (if_statement "if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar11)" ( (binary_expression "local_1c == *(int *)puVar11" identifier == (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "puVar11 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar11 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar11 = puVar11 + 0x13095c;" (assignment_expression "puVar11 = puVar11 + 0x13095c" identifier = (binary_expression "puVar11 + 0x13095c" identifier + number_literal)) ;) (expression_statement "iVar5 = sqlite3_uri_parameter();" (assignment_expression "iVar5 = sqlite3_uri_parameter()" identifier = (call_expression "sqlite3_uri_parameter()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return (uint)(uVar4 != 0);\n  }" { (return_statement "return (uint)(uVar4 != 0);" return (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) ;) })) (expression_statement "iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);" (assignment_expression "iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" identifier = (call_expression "FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" identifier (argument_list "(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" ( identifier , number_literal , (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) , identifier , identifier )))) ;) (return_statement "return (uint)(iVar5 != 0);" return (call_expression "(uint)(iVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) ))) ;) })))
(translation_unit "u8 getSafetyLevel(char *z,int omitFull,u8 dflt)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  char *pcVar5;\n  u8 uVar6;\n  int *pValue;\n  undefined3 in_register_00000018;\n  uint uVar7;\n  uint N;\n  int iVar8;\n  undefined *puVar9;\n  int iVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  int x;\n  char *pcStack_1c;\n  \n  puVar1 = PTR___stack_chk_guard_00190e24;\n  uVar7 = CONCAT31(in_register_00000018,dflt);\n  pcStack_1c = *(char **)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0) {\n    pValue = (int *)omitFull;\n    uVar2 = (*(code *)PTR_strlen_00190d80)();\n    N = 2;\n    uVar2 = uVar2 & 0x3fffffff;\n    iVar8 = 0;\n    iVar10 = 8;\n    puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }\n  }\n  else {\n    pValue = &x;\n    x = 0;\n    sqlite3GetInt32(z,pValue);\n    uVar4 = x & 0xff;\n    N = uVar7;\n  }\n  if (pcStack_1c == *(char **)puVar1) {\n    return (u8)uVar4;\n  }\n  pcVar5 = pcStack_1c;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  pcVar5 = sqlite3_uri_parameter(pcVar5,(char *)pValue);\n  if (pcVar5 == (char *)0x0) {\n    return N != 0;\n  }\n  uVar6 = getSafetyLevel(pcVar5,1,N != 0);\n  return CONCAT31(extraout_var,uVar6) != 0;\n}\n\n" (function_definition "u8 getSafetyLevel(char *z,int omitFull,u8 dflt)\n\n{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  char *pcVar5;\n  u8 uVar6;\n  int *pValue;\n  undefined3 in_register_00000018;\n  uint uVar7;\n  uint N;\n  int iVar8;\n  undefined *puVar9;\n  int iVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  int x;\n  char *pcStack_1c;\n  \n  puVar1 = PTR___stack_chk_guard_00190e24;\n  uVar7 = CONCAT31(in_register_00000018,dflt);\n  pcStack_1c = *(char **)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0) {\n    pValue = (int *)omitFull;\n    uVar2 = (*(code *)PTR_strlen_00190d80)();\n    N = 2;\n    uVar2 = uVar2 & 0x3fffffff;\n    iVar8 = 0;\n    iVar10 = 8;\n    puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }\n  }\n  else {\n    pValue = &x;\n    x = 0;\n    sqlite3GetInt32(z,pValue);\n    uVar4 = x & 0xff;\n    N = uVar7;\n  }\n  if (pcStack_1c == *(char **)puVar1) {\n    return (u8)uVar4;\n  }\n  pcVar5 = pcStack_1c;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  pcVar5 = sqlite3_uri_parameter(pcVar5,(char *)pValue);\n  if (pcVar5 == (char *)0x0) {\n    return N != 0;\n  }\n  uVar6 = getSafetyLevel(pcVar5,1,N != 0);\n  return CONCAT31(extraout_var,uVar6) != 0;\n}" type_identifier (function_declarator "getSafetyLevel(char *z,int omitFull,u8 dflt)" identifier (parameter_list "(char *z,int omitFull,u8 dflt)" ( (parameter_declaration "char *z" primitive_type (pointer_declarator "*z" * identifier)) , (parameter_declaration "int omitFull" primitive_type identifier) , (parameter_declaration "u8 dflt" type_identifier identifier) ))) (compound_statement "{\n  undefined *puVar1;\n  undefined3 extraout_var;\n  uint uVar2;\n  int iVar3;\n  uint uVar4;\n  char *pcVar5;\n  u8 uVar6;\n  int *pValue;\n  undefined3 in_register_00000018;\n  uint uVar7;\n  uint N;\n  int iVar8;\n  undefined *puVar9;\n  int iVar10;\n  undefined *puVar11;\n  undefined *puVar12;\n  undefined *puVar13;\n  int x;\n  char *pcStack_1c;\n  \n  puVar1 = PTR___stack_chk_guard_00190e24;\n  uVar7 = CONCAT31(in_register_00000018,dflt);\n  pcStack_1c = *(char **)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0) {\n    pValue = (int *)omitFull;\n    uVar2 = (*(code *)PTR_strlen_00190d80)();\n    N = 2;\n    uVar2 = uVar2 & 0x3fffffff;\n    iVar8 = 0;\n    iVar10 = 8;\n    puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }\n  }\n  else {\n    pValue = &x;\n    x = 0;\n    sqlite3GetInt32(z,pValue);\n    uVar4 = x & 0xff;\n    N = uVar7;\n  }\n  if (pcStack_1c == *(char **)puVar1) {\n    return (u8)uVar4;\n  }\n  pcVar5 = pcStack_1c;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  pcVar5 = sqlite3_uri_parameter(pcVar5,(char *)pValue);\n  if (pcVar5 == (char *)0x0) {\n    return N != 0;\n  }\n  uVar6 = getSafetyLevel(pcVar5,1,N != 0);\n  return CONCAT31(extraout_var,uVar6) != 0;\n}" { (declaration "undefined *puVar1;" type_identifier (pointer_declarator "*puVar1" * identifier) ;) (declaration "undefined3 extraout_var;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "char *pcVar5;" primitive_type (pointer_declarator "*pcVar5" * identifier) ;) (declaration "u8 uVar6;" type_identifier identifier ;) (declaration "int *pValue;" primitive_type (pointer_declarator "*pValue" * identifier) ;) (declaration "undefined3 in_register_00000018;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint N;" type_identifier identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "undefined *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "int x;" primitive_type identifier ;) (declaration "char *pcStack_1c;" primitive_type (pointer_declarator "*pcStack_1c" * identifier) ;) (expression_statement "puVar1 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar1 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "uVar7 = CONCAT31(in_register_00000018,dflt);" (assignment_expression "uVar7 = CONCAT31(in_register_00000018,dflt)" identifier = (call_expression "CONCAT31(in_register_00000018,dflt)" identifier (argument_list "(in_register_00000018,dflt)" ( identifier , identifier )))) ;) (expression_statement "pcStack_1c = *(char **)PTR___stack_chk_guard_00190e24;" (assignment_expression "pcStack_1c = *(char **)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(char **)PTR___stack_chk_guard_00190e24" * (cast_expression "(char **)PTR___stack_chk_guard_00190e24" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (if_statement "if ((PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0) {\n    pValue = (int *)omitFull;\n    uVar2 = (*(code *)PTR_strlen_00190d80)();\n    N = 2;\n    uVar2 = uVar2 & 0x3fffffff;\n    iVar8 = 0;\n    iVar10 = 8;\n    puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }\n  }\n  else {\n    pValue = &x;\n    x = 0;\n    sqlite3GetInt32(z,pValue);\n    uVar4 = x & 0xff;\n    N = uVar7;\n  }" if (parenthesized_expression "((PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0)" ( (binary_expression "(PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4) == 0" (parenthesized_expression "(PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4)" ( (binary_expression "PTR_DAT_00190b94[(byte)*z - 0x3d18] & 4" (subscript_expression "PTR_DAT_00190b94[(byte)*z - 0x3d18]" identifier [ (binary_expression "(byte)*z - 0x3d18" (binary_expression "(byte)*z" (parenthesized_expression "(byte)" ( identifier )) * identifier) - number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n    pValue = (int *)omitFull;\n    uVar2 = (*(code *)PTR_strlen_00190d80)();\n    N = 2;\n    uVar2 = uVar2 & 0x3fffffff;\n    iVar8 = 0;\n    iVar10 = 8;\n    puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }\n  }" { (expression_statement "pValue = (int *)omitFull;" (assignment_expression "pValue = (int *)omitFull" identifier = (cast_expression "(int *)omitFull" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "uVar2 = (*(code *)PTR_strlen_00190d80)();" (assignment_expression "uVar2 = (*(code *)PTR_strlen_00190d80)()" identifier = (call_expression "(*(code *)PTR_strlen_00190d80)()" (parenthesized_expression "(*(code *)PTR_strlen_00190d80)" ( (pointer_expression "*(code *)PTR_strlen_00190d80" * (cast_expression "(code *)PTR_strlen_00190d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "N = 2;" (assignment_expression "N = 2" identifier = number_literal) ;) (expression_statement "uVar2 = uVar2 & 0x3fffffff;" (assignment_expression "uVar2 = uVar2 & 0x3fffffff" identifier = (binary_expression "uVar2 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 8;" (assignment_expression "iVar10 = 8" identifier = number_literal) ;) (expression_statement "puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;" (assignment_expression "puVar12 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" identifier + number_literal)) ;) (expression_statement "puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;" (assignment_expression "puVar11 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" identifier + number_literal)) ;) (expression_statement "puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;" (assignment_expression "puVar13 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" identifier + number_literal)) ;) (expression_statement "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;" (assignment_expression "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" identifier + number_literal)) ;) (while_statement "while (((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))) {\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }" while (parenthesized_expression "(((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4)))))" ( (parenthesized_expression "((N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))))" ( (binary_expression "(N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)) || ((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4)))" (parenthesized_expression "(N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0))" ( (binary_expression "N != uVar2 ||\n            (pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)" (binary_expression "N != uVar2" identifier != identifier) || (parenthesized_expression "(pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0)" ( (comma_expression "pValue = (int *)z, iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0" (assignment_expression "pValue = (int *)z" identifier = (cast_expression "(int *)z" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N),\n            iVar3 != 0" (assignment_expression "iVar3 = sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N)" identifier = (call_expression "sqlite3_strnicmp(puVar11 + (byte)puVar12[iVar8],z,N)" identifier (argument_list "(puVar11 + (byte)puVar12[iVar8],z,N)" ( (binary_expression "puVar11 + (byte)puVar12[iVar8]" identifier + (cast_expression "(byte)puVar12[iVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar12[iVar8]" identifier [ identifier ]))) , identifier , identifier )))) , (binary_expression "iVar3 != 0" identifier != number_literal))) ))) )) || (parenthesized_expression "((uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4)))" ( (parenthesized_expression "(uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4))" ( (comma_expression "uVar4 = (uint)(byte)puVar13[iVar8], omitFull != 0 && (1 < uVar4)" (assignment_expression "uVar4 = (uint)(byte)puVar13[iVar8]" identifier = (cast_expression "(uint)(byte)puVar13[iVar8]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar13[iVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar13[iVar8]" identifier [ identifier ])))) , (binary_expression "omitFull != 0 && (1 < uVar4)" (binary_expression "omitFull != 0" identifier != number_literal) && (parenthesized_expression "(1 < uVar4)" ( (binary_expression "1 < uVar4" number_literal < identifier) )))) )) ))) )) )) (compound_statement "{\n      iVar8 = iVar8 + 1;\n      uVar4 = uVar7;\n      if (iVar8 == iVar10) break;\n      N = (uint)(byte)puVar9[iVar8];\n    }" { (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = uVar7;" (assignment_expression "uVar4 = uVar7" identifier = identifier) ;) (if_statement "if (iVar8 == iVar10) break;" if (parenthesized_expression "(iVar8 == iVar10)" ( (binary_expression "iVar8 == iVar10" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "N = (uint)(byte)puVar9[iVar8];" (assignment_expression "N = (uint)(byte)puVar9[iVar8]" identifier = (cast_expression "(uint)(byte)puVar9[iVar8]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar9[iVar8]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar9[iVar8]" identifier [ identifier ])))) ;) })) }) (else_clause "else {\n    pValue = &x;\n    x = 0;\n    sqlite3GetInt32(z,pValue);\n    uVar4 = x & 0xff;\n    N = uVar7;\n  }" else (compound_statement "{\n    pValue = &x;\n    x = 0;\n    sqlite3GetInt32(z,pValue);\n    uVar4 = x & 0xff;\n    N = uVar7;\n  }" { (expression_statement "pValue = &x;" (assignment_expression "pValue = &x" identifier = (pointer_expression "&x" & identifier)) ;) (expression_statement "x = 0;" (assignment_expression "x = 0" identifier = number_literal) ;) (expression_statement "sqlite3GetInt32(z,pValue);" (call_expression "sqlite3GetInt32(z,pValue)" identifier (argument_list "(z,pValue)" ( identifier , identifier ))) ;) (expression_statement "uVar4 = x & 0xff;" (assignment_expression "uVar4 = x & 0xff" identifier = (binary_expression "x & 0xff" identifier & number_literal)) ;) (expression_statement "N = uVar7;" (assignment_expression "N = uVar7" identifier = identifier) ;) }))) (if_statement "if (pcStack_1c == *(char **)puVar1) {\n    return (u8)uVar4;\n  }" if (parenthesized_expression "(pcStack_1c == *(char **)puVar1)" ( (binary_expression "pcStack_1c == *(char **)puVar1" identifier == (pointer_expression "*(char **)puVar1" * (cast_expression "(char **)puVar1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    return (u8)uVar4;\n  }" { (return_statement "return (u8)uVar4;" return (cast_expression "(u8)uVar4" ( (type_descriptor "u8" type_identifier) ) identifier) ;) })) (expression_statement "pcVar5 = pcStack_1c;" (assignment_expression "pcVar5 = pcStack_1c" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar5 = sqlite3_uri_parameter(pcVar5,(char *)pValue);" (assignment_expression "pcVar5 = sqlite3_uri_parameter(pcVar5,(char *)pValue)" identifier = (call_expression "sqlite3_uri_parameter(pcVar5,(char *)pValue)" identifier (argument_list "(pcVar5,(char *)pValue)" ( identifier , (cast_expression "(char *)pValue" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (pcVar5 == (char *)0x0) {\n    return N != 0;\n  }" if (parenthesized_expression "(pcVar5 == (char *)0x0)" ( (binary_expression "pcVar5 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return N != 0;\n  }" { (return_statement "return N != 0;" return (binary_expression "N != 0" identifier != number_literal) ;) })) (expression_statement "uVar6 = getSafetyLevel(pcVar5,1,N != 0);" (assignment_expression "uVar6 = getSafetyLevel(pcVar5,1,N != 0)" identifier = (call_expression "getSafetyLevel(pcVar5,1,N != 0)" identifier (argument_list "(pcVar5,1,N != 0)" ( identifier , number_literal , (binary_expression "N != 0" identifier != number_literal) )))) ;) (return_statement "return CONCAT31(extraout_var,uVar6) != 0;" return (binary_expression "CONCAT31(extraout_var,uVar6) != 0" (call_expression "CONCAT31(extraout_var,uVar6)" identifier (argument_list "(extraout_var,uVar6)" ( identifier , identifier ))) != number_literal) ;) })))
(translation_unit "uint FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}\n\n" (function_definition "uint FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}" type_identifier (function_declarator "FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)" identifier (parameter_list "(byte *param_1,int param_2,uint param_3,undefined4 param_4)" ( (parameter_declaration "byte *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}" { (declaration "uint uVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "uint uVar3;" type_identifier identifier ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "uint local_20;" type_identifier identifier ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "puVar11 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00190e24" identifier = identifier) ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_00190e24" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00190e24" * (cast_expression "(int *)PTR___stack_chk_guard_00190e24" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" if (parenthesized_expression "((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0)" ( (binary_expression "(PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0" (parenthesized_expression "(PTR_DAT_00190b94[*param_1 - 0x3d18] & 4)" ( (binary_expression "PTR_DAT_00190b94[*param_1 - 0x3d18] & 4" (subscript_expression "PTR_DAT_00190b94[*param_1 - 0x3d18]" identifier [ (binary_expression "*param_1 - 0x3d18" (pointer_expression "*param_1" * identifier) - number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }" { (expression_statement "uVar1 = (*(code *)PTR_strlen_00190d80)();" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00190d80)()" identifier = (call_expression "(*(code *)PTR_strlen_00190d80)()" (parenthesized_expression "(*(code *)PTR_strlen_00190d80)" ( (pointer_expression "*(code *)PTR_strlen_00190d80" * (cast_expression "(code *)PTR_strlen_00190d80" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" identifier = number_literal) ;) (expression_statement "uVar1 = uVar1 & 0x3fffffff;" (assignment_expression "uVar1 = uVar1 & 0x3fffffff" identifier = (binary_expression "uVar1 & 0x3fffffff" identifier & number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" identifier = number_literal) ;) (expression_statement "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;" (assignment_expression "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" identifier + number_literal)) ;) (expression_statement "puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;" (assignment_expression "puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" identifier + number_literal)) ;) (expression_statement "puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;" (assignment_expression "puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" identifier + number_literal)) ;) (expression_statement "puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;" (assignment_expression "puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" identifier = (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" identifier + number_literal)) ;) (while_statement "while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }" while (parenthesized_expression "(((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))))" ( (parenthesized_expression "((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))" ( (binary_expression "(uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))" (parenthesized_expression "(uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0))" ( (binary_expression "uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)" (binary_expression "uVar4 != uVar1" identifier != identifier) || (parenthesized_expression "(iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)" ( (comma_expression "iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0" (assignment_expression "iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1)" identifier = (call_expression "FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1)" identifier (argument_list "(puVar8 + (byte)puVar9[iVar5],param_1)" ( (binary_expression "puVar8 + (byte)puVar9[iVar5]" identifier + (cast_expression "(byte)puVar9[iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar9[iVar5]" identifier [ identifier ]))) , identifier )))) , (binary_expression "iVar2 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))" ( (parenthesized_expression "(uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))" ( (comma_expression "uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)" (assignment_expression "uVar3 = (uint)(byte)puVar10[iVar5]" identifier = (cast_expression "(uint)(byte)puVar10[iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar10[iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar10[iVar5]" identifier [ identifier ])))) , (binary_expression "param_2 != 0 && (1 < uVar3)" (binary_expression "param_2 != 0" identifier != number_literal) && (parenthesized_expression "(1 < uVar3)" ( (binary_expression "1 < uVar3" number_literal < identifier) )))) )) ))) )) )) (compound_statement "{\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = param_3;" (assignment_expression "uVar3 = param_3" identifier = identifier) ;) (if_statement "if (iVar5 == iVar7) break;" if (parenthesized_expression "(iVar5 == iVar7)" ( (binary_expression "iVar5 == iVar7" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "uVar4 = (uint)(byte)puVar6[iVar5];" (assignment_expression "uVar4 = (uint)(byte)puVar6[iVar5]" identifier = (cast_expression "(uint)(byte)puVar6[iVar5]" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(byte)puVar6[iVar5]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "puVar6[iVar5]" identifier [ identifier ])))) ;) })) }) (else_clause "else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" else (compound_statement "{\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" { (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" identifier = number_literal) ;) (expression_statement "FUN_00048534(param_1,&local_20);" (call_expression "FUN_00048534(param_1,&local_20)" identifier (argument_list "(param_1,&local_20)" ( identifier , (pointer_expression "&local_20" & identifier) ))) ;) (expression_statement "uVar3 = local_20 & 0xff;" (assignment_expression "uVar3 = local_20 & 0xff" identifier = (binary_expression "local_20 & 0xff" identifier & number_literal)) ;) (expression_statement "uVar4 = param_3;" (assignment_expression "uVar4 = param_3" identifier = identifier) ;) }))) (if_statement "if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }" if (parenthesized_expression "(local_1c == *(int *)puVar11)" ( (binary_expression "local_1c == *(int *)puVar11" identifier == (pointer_expression "*(int *)puVar11" * (cast_expression "(int *)puVar11" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return uVar3;\n  }" { (return_statement "return uVar3;" return identifier ;) })) (expression_statement "puVar11 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar11 = PTR___stack_chk_fail_00190df8" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" * (cast_expression "(code *)PTR___stack_chk_fail_00190df8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puVar11 = puVar11 + 0x13095c;" (assignment_expression "puVar11 = puVar11 + 0x13095c" identifier = (binary_expression "puVar11 + 0x13095c" identifier + number_literal)) ;) (expression_statement "iVar5 = sqlite3_uri_parameter();" (assignment_expression "iVar5 = sqlite3_uri_parameter()" identifier = (call_expression "sqlite3_uri_parameter()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return (uint)(uVar4 != 0);\n  }" { (return_statement "return (uint)(uVar4 != 0);" return (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) ;) })) (expression_statement "iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);" (assignment_expression "iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" identifier = (call_expression "FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" identifier (argument_list "(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" ( identifier , number_literal , (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) ))) , identifier , identifier )))) ;) (return_statement "return (uint)(iVar5 != 0);" return (call_expression "(uint)(iVar5 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (pointer_expression * IDENT) - LIT) ]) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT != IDENT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) , (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression LIT < IDENT) )))) )) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ])))) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (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 IDENT ;) })) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))) , IDENT , IDENT )))) ;) (return_statement return (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT != LIT) ))) ;) })))
(function_definition "uint FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)\n\n{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}" (type_identifier "uint") (function_declarator "FUN_00067e74(byte *param_1,int param_2,uint param_3,undefined4 param_4)" (identifier "FUN_00067e74") (parameter_list "(byte *param_1,int param_2,uint param_3,undefined4 param_4)" (( "(") (parameter_declaration "byte *param_1" (type_identifier "byte") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  uint uVar1;\n  int iVar2;\n  uint uVar3;\n  uint uVar4;\n  int iVar5;\n  undefined *puVar6;\n  int iVar7;\n  undefined *puVar8;\n  undefined *puVar9;\n  undefined *puVar10;\n  undefined *puVar11;\n  uint local_20;\n  int local_1c;\n  \n  puVar11 = PTR___stack_chk_guard_00190e24;\n  local_1c = *(int *)PTR___stack_chk_guard_00190e24;\n  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }\n  if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }\n  puVar11 = PTR___stack_chk_fail_00190df8;\n  (*(code *)PTR___stack_chk_fail_00190df8)();\n  puVar11 = puVar11 + 0x13095c;\n  iVar5 = sqlite3_uri_parameter();\n  if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }\n  iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);\n  return (uint)(iVar5 != 0);\n}" ({ "{") (declaration "uint uVar1;" (type_identifier "uint") (identifier "uVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "uint uVar3;" (type_identifier "uint") (identifier "uVar3") (; ";")) (declaration "uint uVar4;" (type_identifier "uint") (identifier "uVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined *puVar8;" (type_identifier "undefined") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined *puVar10;" (type_identifier "undefined") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined *puVar11;" (type_identifier "undefined") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "uint local_20;" (type_identifier "uint") (identifier "local_20") (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "puVar11 = PTR___stack_chk_guard_00190e24;" (assignment_expression "puVar11 = PTR___stack_chk_guard_00190e24" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_guard_00190e24")) (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_00190e24;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_00190e24" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00190e24" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00190e24" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00190e24")))) (; ";")) (if_statement "if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }\n  else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" (if "if") (parenthesized_expression "((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0)" (( "(") (binary_expression "(PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0" (parenthesized_expression "(PTR_DAT_00190b94[*param_1 - 0x3d18] & 4)" (( "(") (binary_expression "PTR_DAT_00190b94[*param_1 - 0x3d18] & 4" (subscript_expression "PTR_DAT_00190b94[*param_1 - 0x3d18]" (identifier "PTR_DAT_00190b94") ([ "[") (binary_expression "*param_1 - 0x3d18" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (- "-") (number_literal "0x3d18")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    uVar1 = (*(code *)PTR_strlen_00190d80)();\n    uVar4 = 2;\n    uVar1 = uVar1 & 0x3fffffff;\n    iVar5 = 0;\n    iVar7 = 8;\n    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;\n    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;\n    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;\n    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;\n    while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }\n  }" ({ "{") (expression_statement "uVar1 = (*(code *)PTR_strlen_00190d80)();" (assignment_expression "uVar1 = (*(code *)PTR_strlen_00190d80)()" (identifier "uVar1") (= "=") (call_expression "(*(code *)PTR_strlen_00190d80)()" (parenthesized_expression "(*(code *)PTR_strlen_00190d80)" (( "(") (pointer_expression "*(code *)PTR_strlen_00190d80" (* "*") (cast_expression "(code *)PTR_strlen_00190d80" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_strlen_00190d80"))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "uVar4 = 2;" (assignment_expression "uVar4 = 2" (identifier "uVar4") (= "=") (number_literal "2")) (; ";")) (expression_statement "uVar1 = uVar1 & 0x3fffffff;" (assignment_expression "uVar1 = uVar1 & 0x3fffffff" (identifier "uVar1") (= "=") (binary_expression "uVar1 & 0x3fffffff" (identifier "uVar1") (& "&") (number_literal "0x3fffffff"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = 8;" (assignment_expression "iVar7 = 8" (identifier "iVar7") (= "=") (number_literal "8")) (; ";")) (expression_statement "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;" (assignment_expression "puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" (identifier "puVar9") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "0x6928"))) (; ";")) (expression_statement "puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;" (assignment_expression "puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" (identifier "puVar8") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "0x690c"))) (; ";")) (expression_statement "puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;" (assignment_expression "puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" (identifier "puVar10") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "0x6904"))) (; ";")) (expression_statement "puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;" (assignment_expression "puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" (identifier "puVar6") (= "=") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "0x6930"))) (; ";")) (while_statement "while (((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }" (while "while") (parenthesized_expression "(((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))))" (( "(") (parenthesized_expression "((uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))" (( "(") (binary_expression "(uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||\n           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))" (parenthesized_expression "(uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0))" (( "(") (binary_expression "uVar4 != uVar1 ||\n            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)" (binary_expression "uVar4 != uVar1" (identifier "uVar4") (!= "!=") (identifier "uVar1")) (|| "||") (parenthesized_expression "(iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)" (( "(") (comma_expression "iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0" (assignment_expression "iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1)" (identifier "iVar2") (= "=") (call_expression "FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1)" (identifier "FUN_000527e4") (argument_list "(puVar8 + (byte)puVar9[iVar5],param_1)" (( "(") (binary_expression "puVar8 + (byte)puVar9[iVar5]" (identifier "puVar8") (+ "+") (cast_expression "(byte)puVar9[iVar5]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar9[iVar5]" (identifier "puVar9") ([ "[") (identifier "iVar5") (] "]")))) (, ",") (identifier "param_1") () ")")))) (, ",") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)))" (( "(") (parenthesized_expression "(uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))" (( "(") (comma_expression "uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3)" (assignment_expression "uVar3 = (uint)(byte)puVar10[iVar5]" (identifier "uVar3") (= "=") (cast_expression "(uint)(byte)puVar10[iVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar10[iVar5]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar10[iVar5]" (identifier "puVar10") ([ "[") (identifier "iVar5") (] "]"))))) (, ",") (binary_expression "param_2 != 0 && (1 < uVar3)" (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(1 < uVar3)" (( "(") (binary_expression "1 < uVar3" (number_literal "1") (< "<") (identifier "uVar3")) () ")")))) () ")")) () ")"))) () ")")) () ")")) (compound_statement "{\n      iVar5 = iVar5 + 1;\n      uVar3 = param_3;\n      if (iVar5 == iVar7) break;\n      uVar4 = (uint)(byte)puVar6[iVar5];\n    }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = param_3;" (assignment_expression "uVar3 = param_3" (identifier "uVar3") (= "=") (identifier "param_3")) (; ";")) (if_statement "if (iVar5 == iVar7) break;" (if "if") (parenthesized_expression "(iVar5 == iVar7)" (( "(") (binary_expression "iVar5 == iVar7" (identifier "iVar5") (== "==") (identifier "iVar7")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar4 = (uint)(byte)puVar6[iVar5];" (assignment_expression "uVar4 = (uint)(byte)puVar6[iVar5]" (identifier "uVar4") (= "=") (cast_expression "(uint)(byte)puVar6[iVar5]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (cast_expression "(byte)puVar6[iVar5]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "puVar6[iVar5]" (identifier "puVar6") ([ "[") (identifier "iVar5") (] "]"))))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" (else "else") (compound_statement "{\n    local_20 = 0;\n    FUN_00048534(param_1,&local_20);\n    uVar3 = local_20 & 0xff;\n    uVar4 = param_3;\n  }" ({ "{") (expression_statement "local_20 = 0;" (assignment_expression "local_20 = 0" (identifier "local_20") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_00048534(param_1,&local_20);" (call_expression "FUN_00048534(param_1,&local_20)" (identifier "FUN_00048534") (argument_list "(param_1,&local_20)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_20" (& "&") (identifier "local_20")) () ")"))) (; ";")) (expression_statement "uVar3 = local_20 & 0xff;" (assignment_expression "uVar3 = local_20 & 0xff" (identifier "uVar3") (= "=") (binary_expression "local_20 & 0xff" (identifier "local_20") (& "&") (number_literal "0xff"))) (; ";")) (expression_statement "uVar4 = param_3;" (assignment_expression "uVar4 = param_3" (identifier "uVar4") (= "=") (identifier "param_3")) (; ";")) (} "}")))) (if_statement "if (local_1c == *(int *)puVar11) {\n    return uVar3;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)puVar11)" (( "(") (binary_expression "local_1c == *(int *)puVar11" (identifier "local_1c") (== "==") (pointer_expression "*(int *)puVar11" (* "*") (cast_expression "(int *)puVar11" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar11")))) () ")")) (compound_statement "{\n    return uVar3;\n  }" ({ "{") (return_statement "return uVar3;" (return "return") (identifier "uVar3") (; ";")) (} "}"))) (expression_statement "puVar11 = PTR___stack_chk_fail_00190df8;" (assignment_expression "puVar11 = PTR___stack_chk_fail_00190df8" (identifier "puVar11") (= "=") (identifier "PTR___stack_chk_fail_00190df8")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_00190df8)();" (call_expression "(*(code *)PTR___stack_chk_fail_00190df8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_00190df8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_00190df8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_00190df8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_00190df8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "puVar11 = puVar11 + 0x13095c;" (assignment_expression "puVar11 = puVar11 + 0x13095c" (identifier "puVar11") (= "=") (binary_expression "puVar11 + 0x13095c" (identifier "puVar11") (+ "+") (number_literal "0x13095c"))) (; ";")) (expression_statement "iVar5 = sqlite3_uri_parameter();" (assignment_expression "iVar5 = sqlite3_uri_parameter()" (identifier "iVar5") (= "=") (call_expression "sqlite3_uri_parameter()" (identifier "sqlite3_uri_parameter") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n    return (uint)(uVar4 != 0);\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return (uint)(uVar4 != 0);\n  }" ({ "{") (return_statement "return (uint)(uVar4 != 0);" (return "return") (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);" (assignment_expression "iVar5 = FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" (identifier "iVar5") (= "=") (call_expression "FUN_00067e74(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" (identifier "FUN_00067e74") (argument_list "(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11)" (( "(") (identifier "iVar5") (, ",") (number_literal "1") (, ",") (call_expression "(uint)(uVar4 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar4 != 0)" (( "(") (binary_expression "uVar4 != 0" (identifier "uVar4") (!= "!=") (number_literal "0")) () ")"))) (, ",") (identifier "param_4") (, ",") (identifier "puVar11") () ")")))) (; ";")) (return_statement "return (uint)(iVar5 != 0);" (return "return") (call_expression "(uint)(iVar5 != 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")"))) (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (while_statement condition: (parenthesized_expression (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier)))) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (break_statement)) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) (identifier) (identifier))))) (return_statement (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal))))))))

uint MASKED(byte *param_1,int param_2,uint param_3,undefined4 param_4)

{
  uint uVar1;
  int iVar2;
  uint uVar3;
  uint uVar4;
  int iVar5;
  undefined *puVar6;
  int iVar7;
  undefined *puVar8;
  undefined *puVar9;
  undefined *puVar10;
  undefined *puVar11;
  uint local_20;
  int local_1c;
  
  puVar11 = PTR___stack_chk_guard_00190e24;
  local_1c = *(int *)PTR___stack_chk_guard_00190e24;
  if ((PTR_DAT_00190b94[*param_1 - 0x3d18] & 4) == 0) {
    uVar1 = (*(code *)PTR_strlen_00190d80)();
    uVar4 = 2;
    uVar1 = uVar1 & 0x3fffffff;
    iVar5 = 0;
    iVar7 = 8;
    puVar9 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6928;
    puVar8 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x690c;
    puVar10 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6904;
    puVar6 = PTR_s_o_page_from_root____pageno_INTEG_0019095c + 0x6930;
    while (((uVar4 != uVar1 ||
            (iVar2 = FUN_000527e4(puVar8 + (byte)puVar9[iVar5],param_1), iVar2 != 0)) ||
           ((uVar3 = (uint)(byte)puVar10[iVar5], param_2 != 0 && (1 < uVar3))))) {
      iVar5 = iVar5 + 1;
      uVar3 = param_3;
      if (iVar5 == iVar7) break;
      uVar4 = (uint)(byte)puVar6[iVar5];
    }
  }
  else {
    local_20 = 0;
    FUN_00048534(param_1,&local_20);
    uVar3 = local_20 & 0xff;
    uVar4 = param_3;
  }
  if (local_1c == *(int *)puVar11) {
    return uVar3;
  }
  puVar11 = PTR___stack_chk_fail_00190df8;
  (*(code *)PTR___stack_chk_fail_00190df8)();
  puVar11 = puVar11 + 0x13095c;
  iVar5 = sqlite3_uri_parameter();
  if (iVar5 == 0) {
    return (uint)(uVar4 != 0);
  }
  iVar5 = MASKED(iVar5,1,(uint)(uVar4 != 0),param_4,puVar11);
  return (uint)(iVar5 != 0);
}

