
int sessionSelectStmt(sqlite3 *db,char *zDb,char *zTab,int nCol,char **azCol,u8 *abPK,
                     sqlite3_stmt **ppStmt)

{
  sqlite3 *db_00;
  int iVar1;
  u8 *zSql;
  char *nBytes;
  sqlite3_stmt **ppsVar2;
  code *pcVar3;
  code *pcVar4;
  sqlite3_stmt **in_stack_ffffffa0;
  char **ppcStack_5c;
  int rc;
  SessionBuffer buf;
  
  db_00 = *(sqlite3 **)PTR___stack_chk_guard_0018fecc;
  rc = 0;
  nBytes = zTab;
  ppsVar2 = (sqlite3_stmt **)nCol;
  iVar1 = (*(code *)PTR_sqlite3_stricmp_0018fa30)
                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab);
  if (iVar1 == 0) {
    zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)
                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);
    if (zSql == (u8 *)0x0) {
      rc = 7;
      goto LAB_00122948;
    }
    nBytes = (char *)0xffffffff;
  }
  else {
    buf.aBuf = (u8 *)0x0;
    buf.nBuf = 0;
    buf.nAlloc = 0;
    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);
    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);
    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);
    (*pcVar4)(&buf,zDb,&rc);
    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);
    (*pcVar4)(&buf,zTab,&rc);
    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);
    nBytes = (char *)buf.nBuf;
    zSql = buf.aBuf;
    if (0 < nCol) {
      iVar1 = 0;
      do {
        if (abPK[iVar1] != '\0') {
          iVar1 = FUN_00122898();
          return iVar1;
        }
        iVar1 = iVar1 + 1;
      } while (nCol != iVar1);
    }
  }
  zDb = (char *)zSql;
  if (rc == 0) {
    in_stack_ffffffa0 = (sqlite3_stmt **)0x0;
    rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);
    ppsVar2 = ppStmt;
  }
LAB_00122948:
  (*(code *)PTR_sqlite3_free_0018f978)(zSql);
  if (db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc) {
    (*(code *)PTR___stack_chk_fail_0018fea0)();
    iVar1 = sqlite3LockAndPrepare
                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,
                       in_stack_ffffffa0,ppcStack_5c);
    return iVar1;
  }
  return rc;
}



int FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,
                int param_6,undefined4 param_7)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  code *pcVar7;
  code *pcVar8;
  int iVar9;
  int in_t9;
  int iVar10;
  int local_3c;
  int local_38;
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  local_2c = **(int **)(in_t9 + 0x6d7ec);
  local_3c = 0;
  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);
  if (iVar1 == 0) {
    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);
    if (iVar1 == 0) {
      local_3c = 7;
      goto LAB_00122948;
    }
    uVar5 = 0xffffffff;
  }
  else {
    local_38 = 0;
    local_34 = 0;
    local_30 = 0;
    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);
    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);
    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);
    (*pcVar8)(&local_38,param_2,&local_3c);
    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);
    (*pcVar8)(&local_38,param_3,&local_3c);
    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);
    uVar5 = local_34;
    iVar1 = local_38;
    if (0 < param_4) {
      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;
      iVar6 = 0;
      iVar2 = *(int *)(in_t9 + 0x6d4e8);
      iVar10 = *(int *)(in_t9 + 0x6d27c);
      iVar3 = *(int *)(in_t9 + 0x6d4e8);
      iVar9 = *(int *)(in_t9 + 0x6d278);
      do {
        if (*(char *)(param_6 + iVar6) != '\0') {
          (*pcVar7)(&local_38,iVar4,&local_3c);
          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);
          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);
          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);
          iVar4 = iVar9 + 0x4dec;
        }
        iVar6 = iVar6 + 1;
        uVar5 = local_34;
        iVar1 = local_38;
      } while (param_4 != iVar6);
    }
  }
  if (local_3c == 0) {
    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);
  }
LAB_00122948:
  (**(code **)(in_t9 + 0x6d298))(iVar1);
  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {
    (**(code **)(in_t9 + 0x6d7c0))();
    iVar1 = FUN_00121bb8();
    return iVar1;
  }
  return local_3c;
}


lui gp,0x7
addiu gp,gp,0x5240
addu gp,gp,t9
addiu sp,sp,-0x70
sw ra,0x6c(sp)
sw s8,0x68(sp)
sw s7,0x64(sp)
sw s6,0x60(sp)
sw s5,0x5c(sp)
sw s4,0x58(sp)
sw s3,0x54(sp)
sw s2,0x50(sp)
sw s1,0x4c(sp)
sw s0,0x48(sp)
sw gp,0x18(sp)
sw a0,0x28(sp)
or s5,a1,zero
or s7,a2,zero
or s3,a3,zero
lw s6,0x80(sp)
lw s4,0x84(sp)
lw v0,0x88(sp)
sw v0,0x2c(sp)
lw v0,-0x7a54(gp)
lw v0,0x0(v0)
sw v0,0x44(sp)
sw zero,0x34(sp)
or a1,a2,zero
lw a0,-0x7fc4(gp)
addiu a0,a0,-0x3410
lw t9,-0x7ef0(gp)
jalr t9
_nop
lw gp,0x18(sp)
bne v0,zero,0x001227a8
_lw a1,-0x7fc8(gp)
or a1,s5,zero
lw a0,-0x7fc4(gp)
addiu a0,a0,-0x20b4
lw t9,-0x7fbc(gp)
jalr t9
_nop
lw gp,0x18(sp)
beq v0,zero,0x0012279c
_or s0,v0,zero
b 0x0012293c
_li a2,-0x1
li v0,0x7
b 0x00122948
_sw v0,0x34(sp)
sw zero,0x38(sp)
sw zero,0x3c(sp)
sw zero,0x40(sp)
addiu s1,sp,0x34
or a2,s1,zero
addiu a1,a1,0x5788
addiu s0,sp,0x38
or a0,s0,zero
lw s2,-0x7d58(gp)
addiu s2,s2,-0x7efc
or t9,s2,zero
jalr t9
_nop
lw gp,0x18(sp)
or a2,s1,zero
or a1,s5,zero
or a0,s0,zero
lw s5,-0x7d58(gp)
addiu s5,s5,-0x8000
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
or a2,s1,zero
lw a1,-0x7fc4(gp)
addiu a1,a1,0x1440
or a0,s0,zero
or t9,s2,zero
jalr t9
_nop
lw gp,0x18(sp)
or a2,s1,zero
or a1,s7,zero
or a0,s0,zero
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
or a2,s1,zero
lw a1,-0x7fc4(gp)
addiu a1,a1,-0x2044
or a0,s0,zero
or t9,s2,zero
jalr t9
_nop
lw gp,0x18(sp)
blez s3,0x00122934
_lw a1,-0x7fc8(gp)
addiu a1,a1,0x2d20
or s0,zero,zero
or s5,s2,zero
lw v0,-0x7d58(gp)
addiu v0,v0,-0x8000
sw v0,0x20(sp)
lw s8,-0x7fc4(gp)
lw v0,-0x7d58(gp)
addiu v0,v0,-0x7e38
sw v0,0x24(sp)
b 0x0012291c
_lw s7,-0x7fc8(gp)
addiu s1,sp,0x38
or a0,s1,zero
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
sll v0,s0,0x2
addu v0,s6,v0
or a2,s2,zero
lw a1,0x0(v0)
or a0,s1,zero
lw t9,0x20(sp)
jalr t9
_nop
lw gp,0x18(sp)
or a2,s2,zero
addiu a1,s8,-0x203c
or a0,s1,zero
or t9,s5,zero
jalr t9
_nop
lw gp,0x18(sp)
or a2,s2,zero
addiu a1,s0,0x1
or a0,s1,zero
lw t9,0x24(sp)
jalr t9
_nop
lw gp,0x18(sp)
addiu a1,s7,0x4dec
addiu s0,s0,0x1
beq s3,s0,0x00122934
_nop
addu v0,s4,s0
lbu v0,0x0(v0)
beq v0,zero,0x00122910
_addiu s2,sp,0x34
b 0x00122898
_or a2,s2,zero
lw s0,0x38(sp)
lw a2,0x3c(sp)
lw v0,0x34(sp)
beq v0,zero,0x001229a0
_or a1,s0,zero
or a0,s0,zero
lw t9,-0x7fa8(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw v0,0x34(sp)
lw a0,0x44(sp)
lw v1,-0x7a54(gp)
lw v1,0x0(v1)
bne a0,v1,0x001229c4
_lw ra,0x6c(sp)
lw s8,0x68(sp)
lw s7,0x64(sp)
lw s6,0x60(sp)
lw s5,0x5c(sp)
lw s4,0x58(sp)
lw s3,0x54(sp)
lw s2,0x50(sp)
lw s1,0x4c(sp)
lw s0,0x48(sp)
jr ra
_addiu sp,sp,0x70
sw zero,0x10(sp)
lw a3,0x2c(sp)
lw a0,0x28(sp)
lw t9,-0x7fb4(gp)
bal 0x00122140
_nop
lw gp,0x18(sp)
b 0x00122948
_sw v0,0x34(sp)
lw t9,-0x7a80(gp)
jalr t9
_nop
(translation_unit "int FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}\n\n" (function_definition "int FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}" primitive_type (function_declarator "FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = **(int **)(in_t9 + 0x6d7ec);" (assignment_expression "local_2c = **(int **)(in_t9 + 0x6d7ec)" identifier = (pointer_expression "**(int **)(in_t9 + 0x6d7ec)" * (pointer_expression "*(int **)(in_t9 + 0x6d7ec)" * (cast_expression "(int **)(in_t9 + 0x6d7ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d7ec)" ( (binary_expression "in_t9 + 0x6d7ec" identifier + number_literal) )))))) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);" (assignment_expression "iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" identifier = (call_expression "(**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d350))" ( (pointer_expression "**(code **)(in_t9 + 0x6d350)" * (pointer_expression "*(code **)(in_t9 + 0x6d350)" * (cast_expression "(code **)(in_t9 + 0x6d350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d350)" ( (binary_expression "in_t9 + 0x6d350" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" ( (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x3410" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }" { (expression_statement "iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);" (assignment_expression "iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" identifier = (call_expression "(**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d284))" ( (pointer_expression "**(code **)(in_t9 + 0x6d284)" * (pointer_expression "*(code **)(in_t9 + 0x6d284)" * (cast_expression "(code **)(in_t9 + 0x6d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d284)" ( (binary_expression "in_t9 + 0x6d284" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" ( (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x20b4" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      local_3c = 7;\n      goto LAB_00122948;\n    }" { (expression_statement "local_3c = 7;" (assignment_expression "local_3c = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00122948;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" else (compound_statement "{\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);" (assignment_expression "pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" ( (binary_expression "*(int *)(in_t9 + 0x6d4e8) + -0x7efc" (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "*(int *)(in_t9 + 0x6d278) + 0x5788" (pointer_expression "*(int *)(in_t9 + 0x6d278)" * (cast_expression "(int *)(in_t9 + 0x6d278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d278)" ( (binary_expression "in_t9 + 0x6d278" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);" (assignment_expression "pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" ( (binary_expression "*(int *)(in_t9 + 0x6d4e8) + -0x8000" (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar8)(&local_38,param_2,&local_3c);" (call_expression "(*pcVar8)(&local_38,param_2,&local_3c)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_38,param_2,&local_3c)" ( (pointer_expression "&local_38" & identifier) , identifier , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "*(int *)(in_t9 + 0x6d27c) + 0x1440" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar8)(&local_38,param_3,&local_3c);" (call_expression "(*pcVar8)(&local_38,param_3,&local_3c)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_38,param_3,&local_3c)" ( (pointer_expression "&local_38" & identifier) , identifier , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x2044" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "uVar5 = local_34;" (assignment_expression "uVar5 = local_34" identifier = identifier) ;) (expression_statement "iVar1 = local_38;" (assignment_expression "iVar1 = local_38" identifier = identifier) ;) (if_statement "if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }" if (parenthesized_expression "(0 < param_4)" ( (binary_expression "0 < param_4" number_literal < identifier) )) (compound_statement "{\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }" { (expression_statement "iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;" (assignment_expression "iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20" identifier = (binary_expression "*(int *)(in_t9 + 0x6d278) + 0x2d20" (pointer_expression "*(int *)(in_t9 + 0x6d278)" * (cast_expression "(int *)(in_t9 + 0x6d278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d278)" ( (binary_expression "in_t9 + 0x6d278" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(in_t9 + 0x6d4e8);" (assignment_expression "iVar2 = *(int *)(in_t9 + 0x6d4e8)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(in_t9 + 0x6d27c);" (assignment_expression "iVar10 = *(int *)(in_t9 + 0x6d27c)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(in_t9 + 0x6d4e8);" (assignment_expression "iVar3 = *(int *)(in_t9 + 0x6d4e8)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(in_t9 + 0x6d278);" (assignment_expression "iVar9 = *(int *)(in_t9 + 0x6d278)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d278)" * (cast_expression "(int *)(in_t9 + 0x6d278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d278)" ( (binary_expression "in_t9 + 0x6d278" identifier + number_literal) ))))) ;) (do_statement "do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);" do (compound_statement "{\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      }" { (if_statement "if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }" if (parenthesized_expression "(*(char *)(param_6 + iVar6) != '\0')" ( (binary_expression "*(char *)(param_6 + iVar6) != '\0'" (pointer_expression "*(char *)(param_6 + iVar6)" * (cast_expression "(char *)(param_6 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar6)" ( (binary_expression "param_6 + iVar6" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }" { (expression_statement "(*pcVar7)(&local_38,iVar4,&local_3c);" (call_expression "(*pcVar7)(&local_38,iVar4,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,iVar4,&local_3c)" ( (pointer_expression "&local_38" & identifier) , identifier , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);" (call_expression "(*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c)" (parenthesized_expression "(*(code *)(iVar2 + -0x8000))" ( (pointer_expression "*(code *)(iVar2 + -0x8000)" * (cast_expression "(code *)(iVar2 + -0x8000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x8000)" ( (binary_expression "iVar2 + -0x8000" identifier + number_literal) )))) )) (argument_list "(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c)" ( (pointer_expression "&local_38" & identifier) , (pointer_expression "*(undefined4 *)(param_5 + iVar6 * 4)" * (cast_expression "(undefined4 *)(param_5 + iVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + iVar6 * 4)" ( (binary_expression "param_5 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);" (call_expression "(*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,iVar10 + -0x203c,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "iVar10 + -0x203c" identifier + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);" (call_expression "(*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c)" (parenthesized_expression "(*(code *)(iVar3 + -0x7e38))" ( (pointer_expression "*(code *)(iVar3 + -0x7e38)" * (cast_expression "(code *)(iVar3 + -0x7e38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x7e38)" ( (binary_expression "iVar3 + -0x7e38" identifier + number_literal) )))) )) (argument_list "(&local_38,iVar6 + 1,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "iVar6 + 1" identifier + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "iVar4 = iVar9 + 0x4dec;" (assignment_expression "iVar4 = iVar9 + 0x4dec" identifier = (binary_expression "iVar9 + 0x4dec" identifier + number_literal)) ;) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = local_34;" (assignment_expression "uVar5 = local_34" identifier = identifier) ;) (expression_statement "iVar1 = local_38;" (assignment_expression "iVar1 = local_38" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 != iVar6)" ( (binary_expression "param_4 != iVar6" identifier != identifier) )) ;) })) }))) (if_statement "if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }" { (expression_statement "local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);" (assignment_expression "local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0)" identifier = (call_expression "sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0)" identifier (argument_list "(param_1,iVar1,uVar5,param_7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) })) (labeled_statement "LAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);" statement_identifier : (expression_statement "(**(code **)(in_t9 + 0x6d298))(iVar1);" (call_expression "(**(code **)(in_t9 + 0x6d298))(iVar1)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d298))" ( (pointer_expression "**(code **)(in_t9 + 0x6d298)" * (pointer_expression "*(code **)(in_t9 + 0x6d298)" * (cast_expression "(code **)(in_t9 + 0x6d298)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d298)" ( (binary_expression "in_t9 + 0x6d298" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;)) (if_statement "if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }" if (parenthesized_expression "(local_2c != **(int **)(in_t9 + 0x6d7ec))" ( (binary_expression "local_2c != **(int **)(in_t9 + 0x6d7ec)" identifier != (pointer_expression "**(int **)(in_t9 + 0x6d7ec)" * (pointer_expression "*(int **)(in_t9 + 0x6d7ec)" * (cast_expression "(int **)(in_t9 + 0x6d7ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d7ec)" ( (binary_expression "in_t9 + 0x6d7ec" identifier + number_literal) )))))) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }" { (expression_statement "(**(code **)(in_t9 + 0x6d7c0))();" (call_expression "(**(code **)(in_t9 + 0x6d7c0))()" (parenthesized_expression "(**(code **)(in_t9 + 0x6d7c0))" ( (pointer_expression "**(code **)(in_t9 + 0x6d7c0)" * (pointer_expression "*(code **)(in_t9 + 0x6d7c0)" * (cast_expression "(code **)(in_t9 + 0x6d7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d7c0)" ( (binary_expression "in_t9 + 0x6d7c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00121bb8();" (assignment_expression "iVar1 = FUN_00121bb8()" identifier = (call_expression "FUN_00121bb8()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return local_3c;" return identifier ;) })))
(translation_unit "int sessionSelectStmt(sqlite3 *db,char *zDb,char *zTab,int nCol,char **azCol,u8 *abPK,\n                     sqlite3_stmt **ppStmt)\n\n{\n  sqlite3 *db_00;\n  int iVar1;\n  u8 *zSql;\n  char *nBytes;\n  sqlite3_stmt **ppsVar2;\n  code *pcVar3;\n  code *pcVar4;\n  sqlite3_stmt **in_stack_ffffffa0;\n  char **ppcStack_5c;\n  int rc;\n  SessionBuffer buf;\n  \n  db_00 = *(sqlite3 **)PTR___stack_chk_guard_0018fecc;\n  rc = 0;\n  nBytes = zTab;\n  ppsVar2 = (sqlite3_stmt **)nCol;\n  iVar1 = (*(code *)PTR_sqlite3_stricmp_0018fa30)\n                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab);\n  if (iVar1 == 0) {\n    zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);\n    if (zSql == (u8 *)0x0) {\n      rc = 7;\n      goto LAB_00122948;\n    }\n    nBytes = (char *)0xffffffff;\n  }\n  else {\n    buf.aBuf = (u8 *)0x0;\n    buf.nBuf = 0;\n    buf.nAlloc = 0;\n    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);\n    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);\n    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);\n    (*pcVar4)(&buf,zDb,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);\n    (*pcVar4)(&buf,zTab,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);\n    nBytes = (char *)buf.nBuf;\n    zSql = buf.aBuf;\n    if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }\n  }\n  zDb = (char *)zSql;\n  if (rc == 0) {\n    in_stack_ffffffa0 = (sqlite3_stmt **)0x0;\n    rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);\n    ppsVar2 = ppStmt;\n  }\nLAB_00122948:\n  (*(code *)PTR_sqlite3_free_0018f978)(zSql);\n  if (db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc) {\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c);\n    return iVar1;\n  }\n  return rc;\n}\n\n" (function_definition "int sessionSelectStmt(sqlite3 *db,char *zDb,char *zTab,int nCol,char **azCol,u8 *abPK,\n                     sqlite3_stmt **ppStmt)\n\n{\n  sqlite3 *db_00;\n  int iVar1;\n  u8 *zSql;\n  char *nBytes;\n  sqlite3_stmt **ppsVar2;\n  code *pcVar3;\n  code *pcVar4;\n  sqlite3_stmt **in_stack_ffffffa0;\n  char **ppcStack_5c;\n  int rc;\n  SessionBuffer buf;\n  \n  db_00 = *(sqlite3 **)PTR___stack_chk_guard_0018fecc;\n  rc = 0;\n  nBytes = zTab;\n  ppsVar2 = (sqlite3_stmt **)nCol;\n  iVar1 = (*(code *)PTR_sqlite3_stricmp_0018fa30)\n                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab);\n  if (iVar1 == 0) {\n    zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);\n    if (zSql == (u8 *)0x0) {\n      rc = 7;\n      goto LAB_00122948;\n    }\n    nBytes = (char *)0xffffffff;\n  }\n  else {\n    buf.aBuf = (u8 *)0x0;\n    buf.nBuf = 0;\n    buf.nAlloc = 0;\n    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);\n    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);\n    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);\n    (*pcVar4)(&buf,zDb,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);\n    (*pcVar4)(&buf,zTab,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);\n    nBytes = (char *)buf.nBuf;\n    zSql = buf.aBuf;\n    if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }\n  }\n  zDb = (char *)zSql;\n  if (rc == 0) {\n    in_stack_ffffffa0 = (sqlite3_stmt **)0x0;\n    rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);\n    ppsVar2 = ppStmt;\n  }\nLAB_00122948:\n  (*(code *)PTR_sqlite3_free_0018f978)(zSql);\n  if (db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc) {\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c);\n    return iVar1;\n  }\n  return rc;\n}" primitive_type (function_declarator "sessionSelectStmt(sqlite3 *db,char *zDb,char *zTab,int nCol,char **azCol,u8 *abPK,\n                     sqlite3_stmt **ppStmt)" identifier (parameter_list "(sqlite3 *db,char *zDb,char *zTab,int nCol,char **azCol,u8 *abPK,\n                     sqlite3_stmt **ppStmt)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "char *zDb" primitive_type (pointer_declarator "*zDb" * identifier)) , (parameter_declaration "char *zTab" primitive_type (pointer_declarator "*zTab" * identifier)) , (parameter_declaration "int nCol" primitive_type identifier) , (parameter_declaration "char **azCol" primitive_type (pointer_declarator "**azCol" * (pointer_declarator "*azCol" * identifier))) , (parameter_declaration "u8 *abPK" type_identifier (pointer_declarator "*abPK" * identifier)) , (parameter_declaration "sqlite3_stmt **ppStmt" type_identifier (pointer_declarator "**ppStmt" * (pointer_declarator "*ppStmt" * identifier))) ))) (compound_statement "{\n  sqlite3 *db_00;\n  int iVar1;\n  u8 *zSql;\n  char *nBytes;\n  sqlite3_stmt **ppsVar2;\n  code *pcVar3;\n  code *pcVar4;\n  sqlite3_stmt **in_stack_ffffffa0;\n  char **ppcStack_5c;\n  int rc;\n  SessionBuffer buf;\n  \n  db_00 = *(sqlite3 **)PTR___stack_chk_guard_0018fecc;\n  rc = 0;\n  nBytes = zTab;\n  ppsVar2 = (sqlite3_stmt **)nCol;\n  iVar1 = (*(code *)PTR_sqlite3_stricmp_0018fa30)\n                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab);\n  if (iVar1 == 0) {\n    zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);\n    if (zSql == (u8 *)0x0) {\n      rc = 7;\n      goto LAB_00122948;\n    }\n    nBytes = (char *)0xffffffff;\n  }\n  else {\n    buf.aBuf = (u8 *)0x0;\n    buf.nBuf = 0;\n    buf.nAlloc = 0;\n    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);\n    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);\n    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);\n    (*pcVar4)(&buf,zDb,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);\n    (*pcVar4)(&buf,zTab,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);\n    nBytes = (char *)buf.nBuf;\n    zSql = buf.aBuf;\n    if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }\n  }\n  zDb = (char *)zSql;\n  if (rc == 0) {\n    in_stack_ffffffa0 = (sqlite3_stmt **)0x0;\n    rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);\n    ppsVar2 = ppStmt;\n  }\nLAB_00122948:\n  (*(code *)PTR_sqlite3_free_0018f978)(zSql);\n  if (db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc) {\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c);\n    return iVar1;\n  }\n  return rc;\n}" { (declaration "sqlite3 *db_00;" type_identifier (pointer_declarator "*db_00" * identifier) ;) (declaration "int iVar1;" primitive_type identifier ;) (declaration "u8 *zSql;" type_identifier (pointer_declarator "*zSql" * identifier) ;) (declaration "char *nBytes;" primitive_type (pointer_declarator "*nBytes" * identifier) ;) (declaration "sqlite3_stmt **ppsVar2;" type_identifier (pointer_declarator "**ppsVar2" * (pointer_declarator "*ppsVar2" * identifier)) ;) (declaration "code *pcVar3;" type_identifier (pointer_declarator "*pcVar3" * identifier) ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (declaration "sqlite3_stmt **in_stack_ffffffa0;" type_identifier (pointer_declarator "**in_stack_ffffffa0" * (pointer_declarator "*in_stack_ffffffa0" * identifier)) ;) (declaration "char **ppcStack_5c;" primitive_type (pointer_declarator "**ppcStack_5c" * (pointer_declarator "*ppcStack_5c" * identifier)) ;) (declaration "int rc;" primitive_type identifier ;) (declaration "SessionBuffer buf;" type_identifier identifier ;) (expression_statement "db_00 = *(sqlite3 **)PTR___stack_chk_guard_0018fecc;" (assignment_expression "db_00 = *(sqlite3 **)PTR___stack_chk_guard_0018fecc" identifier = (pointer_expression "*(sqlite3 **)PTR___stack_chk_guard_0018fecc" * (cast_expression "(sqlite3 **)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) ;) (expression_statement "rc = 0;" (assignment_expression "rc = 0" identifier = number_literal) ;) (expression_statement "nBytes = zTab;" (assignment_expression "nBytes = zTab" identifier = identifier) ;) (expression_statement "ppsVar2 = (sqlite3_stmt **)nCol;" (assignment_expression "ppsVar2 = (sqlite3_stmt **)nCol" identifier = (cast_expression "(sqlite3_stmt **)nCol" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier)) ;) (expression_statement "iVar1 = (*(code *)PTR_sqlite3_stricmp_0018fa30)\n                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab);" (assignment_expression "iVar1 = (*(code *)PTR_sqlite3_stricmp_0018fa30)\n                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab)" identifier = (call_expression "(*(code *)PTR_sqlite3_stricmp_0018fa30)\n                    (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab)" (parenthesized_expression "(*(code *)PTR_sqlite3_stricmp_0018fa30)" ( (pointer_expression "*(code *)PTR_sqlite3_stricmp_0018fa30" * (cast_expression "(code *)PTR_sqlite3_stricmp_0018fa30" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410,zTab)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x3410" identifier + number_literal) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);\n    if (zSql == (u8 *)0x0) {\n      rc = 7;\n      goto LAB_00122948;\n    }\n    nBytes = (char *)0xffffffff;\n  }\n  else {\n    buf.aBuf = (u8 *)0x0;\n    buf.nBuf = 0;\n    buf.nAlloc = 0;\n    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);\n    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);\n    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);\n    (*pcVar4)(&buf,zDb,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);\n    (*pcVar4)(&buf,zTab,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);\n    nBytes = (char *)buf.nBuf;\n    zSql = buf.aBuf;\n    if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);\n    if (zSql == (u8 *)0x0) {\n      rc = 7;\n      goto LAB_00122948;\n    }\n    nBytes = (char *)0xffffffff;\n  }" { (expression_statement "zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4);" (assignment_expression "zSql = (u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4)" identifier = (cast_expression "(u8 *)(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4)" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)PTR_sqlite3_mprintf_0018f964)\n                           (PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4)" (parenthesized_expression "(*(code *)PTR_sqlite3_mprintf_0018f964)" ( (pointer_expression "*(code *)PTR_sqlite3_mprintf_0018f964" * (cast_expression "(code *)PTR_sqlite3_mprintf_0018f964" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4)" ( (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x20b4" identifier + number_literal) ))))) ;) (if_statement "if (zSql == (u8 *)0x0) {\n      rc = 7;\n      goto LAB_00122948;\n    }" if (parenthesized_expression "(zSql == (u8 *)0x0)" ( (binary_expression "zSql == (u8 *)0x0" identifier == (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      rc = 7;\n      goto LAB_00122948;\n    }" { (expression_statement "rc = 7;" (assignment_expression "rc = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00122948;" goto statement_identifier ;) })) (expression_statement "nBytes = (char *)0xffffffff;" (assignment_expression "nBytes = (char *)0xffffffff" identifier = (cast_expression "(char *)0xffffffff" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    buf.aBuf = (u8 *)0x0;\n    buf.nBuf = 0;\n    buf.nAlloc = 0;\n    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);\n    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);\n    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);\n    (*pcVar4)(&buf,zDb,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);\n    (*pcVar4)(&buf,zTab,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);\n    nBytes = (char *)buf.nBuf;\n    zSql = buf.aBuf;\n    if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }\n  }" else (compound_statement "{\n    buf.aBuf = (u8 *)0x0;\n    buf.nBuf = 0;\n    buf.nAlloc = 0;\n    pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);\n    (*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);\n    pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);\n    (*pcVar4)(&buf,zDb,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);\n    (*pcVar4)(&buf,zTab,&rc);\n    (*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);\n    nBytes = (char *)buf.nBuf;\n    zSql = buf.aBuf;\n    if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }\n  }" { (expression_statement "buf.aBuf = (u8 *)0x0;" (assignment_expression "buf.aBuf = (u8 *)0x0" (field_expression "buf.aBuf" identifier . field_identifier) = (cast_expression "(u8 *)0x0" ( (type_descriptor "u8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "buf.nBuf = 0;" (assignment_expression "buf.nBuf = 0" (field_expression "buf.nBuf" identifier . field_identifier) = number_literal) ;) (expression_statement "buf.nAlloc = 0;" (assignment_expression "buf.nAlloc = 0" (field_expression "buf.nAlloc" identifier . field_identifier) = number_literal) ;) (expression_statement "pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc);" (assignment_expression "pcVar3 = (code *)(PTR_LAB_0018fbc8 + -0x7efc)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbc8 + -0x7efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbc8 + -0x7efc)" ( (binary_expression "PTR_LAB_0018fbc8 + -0x7efc" identifier + number_literal) )))) ;) (expression_statement "(*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc);" (call_expression "(*pcVar3)(&buf,PTR_LAB_0018f958 + 0x5788,&rc)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(&buf,PTR_LAB_0018f958 + 0x5788,&rc)" ( (pointer_expression "&buf" & identifier) , (binary_expression "PTR_LAB_0018f958 + 0x5788" identifier + number_literal) , (pointer_expression "&rc" & identifier) ))) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_0018fbc8 + -0x8000)" identifier = (cast_expression "(code *)(PTR_LAB_0018fbc8 + -0x8000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_0018fbc8 + -0x8000)" ( (binary_expression "PTR_LAB_0018fbc8 + -0x8000" identifier + number_literal) )))) ;) (expression_statement "(*pcVar4)(&buf,zDb,&rc);" (call_expression "(*pcVar4)(&buf,zDb,&rc)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(&buf,zDb,&rc)" ( (pointer_expression "&buf" & identifier) , identifier , (pointer_expression "&rc" & identifier) ))) ;) (expression_statement "(*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc);" (call_expression "(*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440,&rc)" ( (pointer_expression "&buf" & identifier) , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + 0x1440" identifier + number_literal) , (pointer_expression "&rc" & identifier) ))) ;) (expression_statement "(*pcVar4)(&buf,zTab,&rc);" (call_expression "(*pcVar4)(&buf,zTab,&rc)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(&buf,zTab,&rc)" ( (pointer_expression "&buf" & identifier) , identifier , (pointer_expression "&rc" & identifier) ))) ;) (expression_statement "(*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc);" (call_expression "(*pcVar3)(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc)" (parenthesized_expression "(*pcVar3)" ( (pointer_expression "*pcVar3" * identifier) )) (argument_list "(&buf,PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044,&rc)" ( (pointer_expression "&buf" & identifier) , (binary_expression "PTR_s_FROM___q____q_node__WHERE_nodeno_0018f95c + -0x2044" identifier + number_literal) , (pointer_expression "&rc" & identifier) ))) ;) (expression_statement "nBytes = (char *)buf.nBuf;" (assignment_expression "nBytes = (char *)buf.nBuf" identifier = (cast_expression "(char *)buf.nBuf" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (field_expression "buf.nBuf" identifier . field_identifier))) ;) (expression_statement "zSql = buf.aBuf;" (assignment_expression "zSql = buf.aBuf" identifier = (field_expression "buf.aBuf" identifier . field_identifier)) ;) (if_statement "if (0 < nCol) {\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }" if (parenthesized_expression "(0 < nCol)" ( (binary_expression "0 < nCol" number_literal < identifier) )) (compound_statement "{\n      iVar1 = 0;\n      do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) (do_statement "do {\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      } while (nCol != iVar1);" do (compound_statement "{\n        if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }\n        iVar1 = iVar1 + 1;\n      }" { (if_statement "if (abPK[iVar1] != '\0') {\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }" if (parenthesized_expression "(abPK[iVar1] != '\0')" ( (binary_expression "abPK[iVar1] != '\0'" (subscript_expression "abPK[iVar1]" identifier [ identifier ]) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          iVar1 = FUN_00122898();\n          return iVar1;\n        }" { (expression_statement "iVar1 = FUN_00122898();" (assignment_expression "iVar1 = FUN_00122898()" identifier = (call_expression "FUN_00122898()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (expression_statement "iVar1 = iVar1 + 1;" (assignment_expression "iVar1 = iVar1 + 1" identifier = (binary_expression "iVar1 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(nCol != iVar1)" ( (binary_expression "nCol != iVar1" identifier != identifier) )) ;) })) }))) (expression_statement "zDb = (char *)zSql;" (assignment_expression "zDb = (char *)zSql" identifier = (cast_expression "(char *)zSql" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (rc == 0) {\n    in_stack_ffffffa0 = (sqlite3_stmt **)0x0;\n    rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);\n    ppsVar2 = ppStmt;\n  }" if (parenthesized_expression "(rc == 0)" ( (binary_expression "rc == 0" identifier == number_literal) )) (compound_statement "{\n    in_stack_ffffffa0 = (sqlite3_stmt **)0x0;\n    rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);\n    ppsVar2 = ppStmt;\n  }" { (expression_statement "in_stack_ffffffa0 = (sqlite3_stmt **)0x0;" (assignment_expression "in_stack_ffffffa0 = (sqlite3_stmt **)0x0" identifier = (cast_expression "(sqlite3_stmt **)0x0" ( (type_descriptor "sqlite3_stmt **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0);" (assignment_expression "rc = sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0)" identifier = (call_expression "sqlite3_prepare_v2(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0)" identifier (argument_list "(db,(char *)zSql,(int)nBytes,ppStmt,(char **)0x0)" ( identifier , (cast_expression "(char *)zSql" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)nBytes" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (expression_statement "ppsVar2 = ppStmt;" (assignment_expression "ppsVar2 = ppStmt" identifier = identifier) ;) })) (labeled_statement "LAB_00122948:\n  (*(code *)PTR_sqlite3_free_0018f978)(zSql);" statement_identifier : (expression_statement "(*(code *)PTR_sqlite3_free_0018f978)(zSql);" (call_expression "(*(code *)PTR_sqlite3_free_0018f978)(zSql)" (parenthesized_expression "(*(code *)PTR_sqlite3_free_0018f978)" ( (pointer_expression "*(code *)PTR_sqlite3_free_0018f978" * (cast_expression "(code *)PTR_sqlite3_free_0018f978" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(zSql)" ( identifier ))) ;)) (if_statement "if (db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc) {\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c);\n    return iVar1;\n  }" if (parenthesized_expression "(db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc)" ( (binary_expression "db_00 != *(sqlite3 **)PTR___stack_chk_guard_0018fecc" identifier != (pointer_expression "*(sqlite3 **)PTR___stack_chk_guard_0018fecc" * (cast_expression "(sqlite3 **)PTR___stack_chk_guard_0018fecc" ( (type_descriptor "sqlite3 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier))) )) (compound_statement "{\n    (*(code *)PTR___stack_chk_fail_0018fea0)();\n    iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c);\n    return iVar1;\n  }" { (expression_statement "(*(code *)PTR___stack_chk_fail_0018fea0)();" (call_expression "(*(code *)PTR___stack_chk_fail_0018fea0)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_0018fea0)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_0018fea0" * (cast_expression "(code *)PTR___stack_chk_fail_0018fea0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c);" (assignment_expression "iVar1 = sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c)" identifier = (call_expression "sqlite3LockAndPrepare\n                      (db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c)" identifier (argument_list "(db_00,zDb,(int)nBytes,(uint)ppsVar2 & 0xf | 0x80,(Vdbe *)0x0,\n                       in_stack_ffffffa0,ppcStack_5c)" ( identifier , identifier , (cast_expression "(int)nBytes" ( (type_descriptor "int" primitive_type) ) identifier) , (binary_expression "(uint)ppsVar2 & 0xf | 0x80" (binary_expression "(uint)ppsVar2 & 0xf" (cast_expression "(uint)ppsVar2" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) | number_literal) , (cast_expression "(Vdbe *)0x0" ( (type_descriptor "Vdbe *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , identifier )))) ;) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return rc;" return identifier ;) })))
(translation_unit "int FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}\n\n" (function_definition "int FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}" primitive_type (function_declarator "FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int param_5" primitive_type identifier) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "undefined4 param_7" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "code *pcVar7;" type_identifier (pointer_declarator "*pcVar7" * identifier) ;) (declaration "code *pcVar8;" type_identifier (pointer_declarator "*pcVar8" * identifier) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int in_t9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "int local_38;" primitive_type identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "local_2c = **(int **)(in_t9 + 0x6d7ec);" (assignment_expression "local_2c = **(int **)(in_t9 + 0x6d7ec)" identifier = (pointer_expression "**(int **)(in_t9 + 0x6d7ec)" * (pointer_expression "*(int **)(in_t9 + 0x6d7ec)" * (cast_expression "(int **)(in_t9 + 0x6d7ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d7ec)" ( (binary_expression "in_t9 + 0x6d7ec" identifier + number_literal) )))))) ;) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" identifier = number_literal) ;) (expression_statement "iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);" (assignment_expression "iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" identifier = (call_expression "(**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d350))" ( (pointer_expression "**(code **)(in_t9 + 0x6d350)" * (pointer_expression "*(code **)(in_t9 + 0x6d350)" * (cast_expression "(code **)(in_t9 + 0x6d350)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d350)" ( (binary_expression "in_t9 + 0x6d350" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" ( (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x3410" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }" { (expression_statement "iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);" (assignment_expression "iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" identifier = (call_expression "(**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d284))" ( (pointer_expression "**(code **)(in_t9 + 0x6d284)" * (pointer_expression "*(code **)(in_t9 + 0x6d284)" * (cast_expression "(code **)(in_t9 + 0x6d284)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d284)" ( (binary_expression "in_t9 + 0x6d284" identifier + number_literal) ))))) )) (argument_list "(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" ( (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x20b4" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , identifier )))) ;) (if_statement "if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      local_3c = 7;\n      goto LAB_00122948;\n    }" { (expression_statement "local_3c = 7;" (assignment_expression "local_3c = 7" identifier = number_literal) ;) (goto_statement "goto LAB_00122948;" goto statement_identifier ;) })) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" else (compound_statement "{\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" identifier = number_literal) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);" (assignment_expression "pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" ( (binary_expression "*(int *)(in_t9 + 0x6d4e8) + -0x7efc" (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "*(int *)(in_t9 + 0x6d278) + 0x5788" (pointer_expression "*(int *)(in_t9 + 0x6d278)" * (cast_expression "(int *)(in_t9 + 0x6d278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d278)" ( (binary_expression "in_t9 + 0x6d278" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);" (assignment_expression "pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" identifier = (cast_expression "(code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" ( (binary_expression "*(int *)(in_t9 + 0x6d4e8) + -0x8000" (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(*pcVar8)(&local_38,param_2,&local_3c);" (call_expression "(*pcVar8)(&local_38,param_2,&local_3c)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_38,param_2,&local_3c)" ( (pointer_expression "&local_38" & identifier) , identifier , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "*(int *)(in_t9 + 0x6d27c) + 0x1440" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar8)(&local_38,param_3,&local_3c);" (call_expression "(*pcVar8)(&local_38,param_3,&local_3c)" (parenthesized_expression "(*pcVar8)" ( (pointer_expression "*pcVar8" * identifier) )) (argument_list "(&local_38,param_3,&local_3c)" ( (pointer_expression "&local_38" & identifier) , identifier , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x2044" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) )))) + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "uVar5 = local_34;" (assignment_expression "uVar5 = local_34" identifier = identifier) ;) (expression_statement "iVar1 = local_38;" (assignment_expression "iVar1 = local_38" identifier = identifier) ;) (if_statement "if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }" if (parenthesized_expression "(0 < param_4)" ( (binary_expression "0 < param_4" number_literal < identifier) )) (compound_statement "{\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }" { (expression_statement "iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;" (assignment_expression "iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20" identifier = (binary_expression "*(int *)(in_t9 + 0x6d278) + 0x2d20" (pointer_expression "*(int *)(in_t9 + 0x6d278)" * (cast_expression "(int *)(in_t9 + 0x6d278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d278)" ( (binary_expression "in_t9 + 0x6d278" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" identifier = number_literal) ;) (expression_statement "iVar2 = *(int *)(in_t9 + 0x6d4e8);" (assignment_expression "iVar2 = *(int *)(in_t9 + 0x6d4e8)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) ))))) ;) (expression_statement "iVar10 = *(int *)(in_t9 + 0x6d27c);" (assignment_expression "iVar10 = *(int *)(in_t9 + 0x6d27c)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d27c)" * (cast_expression "(int *)(in_t9 + 0x6d27c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d27c)" ( (binary_expression "in_t9 + 0x6d27c" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *(int *)(in_t9 + 0x6d4e8);" (assignment_expression "iVar3 = *(int *)(in_t9 + 0x6d4e8)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" * (cast_expression "(int *)(in_t9 + 0x6d4e8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d4e8)" ( (binary_expression "in_t9 + 0x6d4e8" identifier + number_literal) ))))) ;) (expression_statement "iVar9 = *(int *)(in_t9 + 0x6d278);" (assignment_expression "iVar9 = *(int *)(in_t9 + 0x6d278)" identifier = (pointer_expression "*(int *)(in_t9 + 0x6d278)" * (cast_expression "(int *)(in_t9 + 0x6d278)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_t9 + 0x6d278)" ( (binary_expression "in_t9 + 0x6d278" identifier + number_literal) ))))) ;) (do_statement "do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);" do (compound_statement "{\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      }" { (if_statement "if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }" if (parenthesized_expression "(*(char *)(param_6 + iVar6) != '\0')" ( (binary_expression "*(char *)(param_6 + iVar6) != '\0'" (pointer_expression "*(char *)(param_6 + iVar6)" * (cast_expression "(char *)(param_6 + iVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_6 + iVar6)" ( (binary_expression "param_6 + iVar6" identifier + identifier) )))) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }" { (expression_statement "(*pcVar7)(&local_38,iVar4,&local_3c);" (call_expression "(*pcVar7)(&local_38,iVar4,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,iVar4,&local_3c)" ( (pointer_expression "&local_38" & identifier) , identifier , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);" (call_expression "(*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c)" (parenthesized_expression "(*(code *)(iVar2 + -0x8000))" ( (pointer_expression "*(code *)(iVar2 + -0x8000)" * (cast_expression "(code *)(iVar2 + -0x8000)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x8000)" ( (binary_expression "iVar2 + -0x8000" identifier + number_literal) )))) )) (argument_list "(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c)" ( (pointer_expression "&local_38" & identifier) , (pointer_expression "*(undefined4 *)(param_5 + iVar6 * 4)" * (cast_expression "(undefined4 *)(param_5 + iVar6 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + iVar6 * 4)" ( (binary_expression "param_5 + iVar6 * 4" identifier + (binary_expression "iVar6 * 4" identifier * number_literal)) )))) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);" (call_expression "(*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c)" (parenthesized_expression "(*pcVar7)" ( (pointer_expression "*pcVar7" * identifier) )) (argument_list "(&local_38,iVar10 + -0x203c,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "iVar10 + -0x203c" identifier + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "(*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);" (call_expression "(*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c)" (parenthesized_expression "(*(code *)(iVar3 + -0x7e38))" ( (pointer_expression "*(code *)(iVar3 + -0x7e38)" * (cast_expression "(code *)(iVar3 + -0x7e38)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar3 + -0x7e38)" ( (binary_expression "iVar3 + -0x7e38" identifier + number_literal) )))) )) (argument_list "(&local_38,iVar6 + 1,&local_3c)" ( (pointer_expression "&local_38" & identifier) , (binary_expression "iVar6 + 1" identifier + number_literal) , (pointer_expression "&local_3c" & identifier) ))) ;) (expression_statement "iVar4 = iVar9 + 0x4dec;" (assignment_expression "iVar4 = iVar9 + 0x4dec" identifier = (binary_expression "iVar9 + 0x4dec" identifier + number_literal)) ;) })) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" identifier = (binary_expression "iVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = local_34;" (assignment_expression "uVar5 = local_34" identifier = identifier) ;) (expression_statement "iVar1 = local_38;" (assignment_expression "iVar1 = local_38" identifier = identifier) ;) }) while (parenthesized_expression "(param_4 != iVar6)" ( (binary_expression "param_4 != iVar6" identifier != identifier) )) ;) })) }))) (if_statement "if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }" if (parenthesized_expression "(local_3c == 0)" ( (binary_expression "local_3c == 0" identifier == number_literal) )) (compound_statement "{\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }" { (expression_statement "local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);" (assignment_expression "local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0)" identifier = (call_expression "sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0)" identifier (argument_list "(param_1,iVar1,uVar5,param_7,0)" ( identifier , identifier , identifier , identifier , number_literal )))) ;) })) (labeled_statement "LAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);" statement_identifier : (expression_statement "(**(code **)(in_t9 + 0x6d298))(iVar1);" (call_expression "(**(code **)(in_t9 + 0x6d298))(iVar1)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d298))" ( (pointer_expression "**(code **)(in_t9 + 0x6d298)" * (pointer_expression "*(code **)(in_t9 + 0x6d298)" * (cast_expression "(code **)(in_t9 + 0x6d298)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d298)" ( (binary_expression "in_t9 + 0x6d298" identifier + number_literal) ))))) )) (argument_list "(iVar1)" ( identifier ))) ;)) (if_statement "if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }" if (parenthesized_expression "(local_2c != **(int **)(in_t9 + 0x6d7ec))" ( (binary_expression "local_2c != **(int **)(in_t9 + 0x6d7ec)" identifier != (pointer_expression "**(int **)(in_t9 + 0x6d7ec)" * (pointer_expression "*(int **)(in_t9 + 0x6d7ec)" * (cast_expression "(int **)(in_t9 + 0x6d7ec)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d7ec)" ( (binary_expression "in_t9 + 0x6d7ec" identifier + number_literal) )))))) )) (compound_statement "{\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }" { (expression_statement "(**(code **)(in_t9 + 0x6d7c0))();" (call_expression "(**(code **)(in_t9 + 0x6d7c0))()" (parenthesized_expression "(**(code **)(in_t9 + 0x6d7c0))" ( (pointer_expression "**(code **)(in_t9 + 0x6d7c0)" * (pointer_expression "*(code **)(in_t9 + 0x6d7c0)" * (cast_expression "(code **)(in_t9 + 0x6d7c0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(in_t9 + 0x6d7c0)" ( (binary_expression "in_t9 + 0x6d7c0" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar1 = FUN_00121bb8();" (assignment_expression "iVar1 = FUN_00121bb8()" identifier = (call_expression "FUN_00121bb8()" identifier (argument_list "()" ( )))) ;) (return_statement "return iVar1;" return identifier ;) })) (return_statement "return local_3c;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT )))) ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (return_statement return IDENT ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)\n\n{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}" (primitive_type "int") (function_declarator "FUN_001226e0(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)" (identifier "FUN_001226e0") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,\n                int param_6,undefined4 param_7)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int param_5" (primitive_type "int") (identifier "param_5")) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "undefined4 param_7" (type_identifier "undefined4") (identifier "param_7")) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  int iVar3;\n  int iVar4;\n  undefined4 uVar5;\n  int iVar6;\n  code *pcVar7;\n  code *pcVar8;\n  int iVar9;\n  int in_t9;\n  int iVar10;\n  int local_3c;\n  int local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  int local_2c;\n  \n  local_2c = **(int **)(in_t9 + 0x6d7ec);\n  local_3c = 0;\n  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);\n  if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }\n  if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }\nLAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);\n  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }\n  return local_3c;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "code *pcVar7;" (type_identifier "code") (pointer_declarator "*pcVar7" (* "*") (identifier "pcVar7")) (; ";")) (declaration "code *pcVar8;" (type_identifier "code") (pointer_declarator "*pcVar8" (* "*") (identifier "pcVar8")) (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int in_t9;" (primitive_type "int") (identifier "in_t9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "int local_38;" (primitive_type "int") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "local_2c = **(int **)(in_t9 + 0x6d7ec);" (assignment_expression "local_2c = **(int **)(in_t9 + 0x6d7ec)" (identifier "local_2c") (= "=") (pointer_expression "**(int **)(in_t9 + 0x6d7ec)" (* "*") (pointer_expression "*(int **)(in_t9 + 0x6d7ec)" (* "*") (cast_expression "(int **)(in_t9 + 0x6d7ec)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x6d7ec)" (( "(") (binary_expression "in_t9 + 0x6d7ec" (identifier "in_t9") (+ "+") (number_literal "0x6d7ec")) () ")")))))) (; ";")) (expression_statement "local_3c = 0;" (assignment_expression "local_3c = 0" (identifier "local_3c") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);" (assignment_expression "iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d350))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x6d350)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x6d350)" (* "*") (cast_expression "(code **)(in_t9 + 0x6d350)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x6d350)" (( "(") (binary_expression "in_t9 + 0x6d350" (identifier "in_t9") (+ "+") (number_literal "0x6d350")) () ")"))))) () ")")) (argument_list "(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3)" (( "(") (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x3410" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d27c)" (( "(") (binary_expression "in_t9 + 0x6d27c" (identifier "in_t9") (+ "+") (number_literal "0x6d27c")) () ")")))) (+ "+") (number_literal "-0x3410")) (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }\n  else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);\n    if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }\n    uVar5 = 0xffffffff;\n  }" ({ "{") (expression_statement "iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);" (assignment_expression "iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d284))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x6d284)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x6d284)" (* "*") (cast_expression "(code **)(in_t9 + 0x6d284)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x6d284)" (( "(") (binary_expression "in_t9 + 0x6d284" (identifier "in_t9") (+ "+") (number_literal "0x6d284")) () ")"))))) () ")")) (argument_list "(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2)" (( "(") (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x20b4" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d27c)" (( "(") (binary_expression "in_t9 + 0x6d27c" (identifier "in_t9") (+ "+") (number_literal "0x6d27c")) () ")")))) (+ "+") (number_literal "-0x20b4")) (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (iVar1 == 0) {\n      local_3c = 7;\n      goto LAB_00122948;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_3c = 7;\n      goto LAB_00122948;\n    }" ({ "{") (expression_statement "local_3c = 7;" (assignment_expression "local_3c = 7" (identifier "local_3c") (= "=") (number_literal "7")) (; ";")) (goto_statement "goto LAB_00122948;" (goto "goto") (statement_identifier "LAB_00122948") (; ";")) (} "}"))) (expression_statement "uVar5 = 0xffffffff;" (assignment_expression "uVar5 = 0xffffffff" (identifier "uVar5") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}")) (else_clause "else {\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" (else "else") (compound_statement "{\n    local_38 = 0;\n    local_34 = 0;\n    local_30 = 0;\n    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);\n    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);\n    (*pcVar8)(&local_38,param_2,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);\n    (*pcVar8)(&local_38,param_3,&local_3c);\n    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);\n    uVar5 = local_34;\n    iVar1 = local_38;\n    if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }\n  }" ({ "{") (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_34 = 0;" (assignment_expression "local_34 = 0" (identifier "local_34") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);" (assignment_expression "pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" (identifier "pcVar7") (= "=") (cast_expression "(code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(in_t9 + 0x6d4e8) + -0x7efc)" (( "(") (binary_expression "*(int *)(in_t9 + 0x6d4e8) + -0x7efc" (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d4e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d4e8)" (( "(") (binary_expression "in_t9 + 0x6d4e8" (identifier "in_t9") (+ "+") (number_literal "0x6d4e8")) () ")")))) (+ "+") (number_literal "-0x7efc")) () ")")))) (; ";")) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "*(int *)(in_t9 + 0x6d278) + 0x5788" (pointer_expression "*(int *)(in_t9 + 0x6d278)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d278)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d278)" (( "(") (binary_expression "in_t9 + 0x6d278" (identifier "in_t9") (+ "+") (number_literal "0x6d278")) () ")")))) (+ "+") (number_literal "0x5788")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);" (assignment_expression "pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" (identifier "pcVar8") (= "=") (cast_expression "(code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(in_t9 + 0x6d4e8) + -0x8000)" (( "(") (binary_expression "*(int *)(in_t9 + 0x6d4e8) + -0x8000" (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d4e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d4e8)" (( "(") (binary_expression "in_t9 + 0x6d4e8" (identifier "in_t9") (+ "+") (number_literal "0x6d4e8")) () ")")))) (+ "+") (number_literal "-0x8000")) () ")")))) (; ";")) (expression_statement "(*pcVar8)(&local_38,param_2,&local_3c);" (call_expression "(*pcVar8)(&local_38,param_2,&local_3c)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_38,param_2,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "*(int *)(in_t9 + 0x6d27c) + 0x1440" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d27c)" (( "(") (binary_expression "in_t9 + 0x6d27c" (identifier "in_t9") (+ "+") (number_literal "0x6d27c")) () ")")))) (+ "+") (number_literal "0x1440")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "(*pcVar8)(&local_38,param_3,&local_3c);" (call_expression "(*pcVar8)(&local_38,param_3,&local_3c)" (parenthesized_expression "(*pcVar8)" (( "(") (pointer_expression "*pcVar8" (* "*") (identifier "pcVar8")) () ")")) (argument_list "(&local_38,param_3,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "param_3") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);" (call_expression "(*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "*(int *)(in_t9 + 0x6d27c) + -0x2044" (pointer_expression "*(int *)(in_t9 + 0x6d27c)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d27c)" (( "(") (binary_expression "in_t9 + 0x6d27c" (identifier "in_t9") (+ "+") (number_literal "0x6d27c")) () ")")))) (+ "+") (number_literal "-0x2044")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "uVar5 = local_34;" (assignment_expression "uVar5 = local_34" (identifier "uVar5") (= "=") (identifier "local_34")) (; ";")) (expression_statement "iVar1 = local_38;" (assignment_expression "iVar1 = local_38" (identifier "iVar1") (= "=") (identifier "local_38")) (; ";")) (if_statement "if (0 < param_4) {\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }" (if "if") (parenthesized_expression "(0 < param_4)" (( "(") (binary_expression "0 < param_4" (number_literal "0") (< "<") (identifier "param_4")) () ")")) (compound_statement "{\n      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;\n      iVar6 = 0;\n      iVar2 = *(int *)(in_t9 + 0x6d4e8);\n      iVar10 = *(int *)(in_t9 + 0x6d27c);\n      iVar3 = *(int *)(in_t9 + 0x6d4e8);\n      iVar9 = *(int *)(in_t9 + 0x6d278);\n      do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);\n    }" ({ "{") (expression_statement "iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;" (assignment_expression "iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20" (identifier "iVar4") (= "=") (binary_expression "*(int *)(in_t9 + 0x6d278) + 0x2d20" (pointer_expression "*(int *)(in_t9 + 0x6d278)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d278)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d278)" (( "(") (binary_expression "in_t9 + 0x6d278" (identifier "in_t9") (+ "+") (number_literal "0x6d278")) () ")")))) (+ "+") (number_literal "0x2d20"))) (; ";")) (expression_statement "iVar6 = 0;" (assignment_expression "iVar6 = 0" (identifier "iVar6") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar2 = *(int *)(in_t9 + 0x6d4e8);" (assignment_expression "iVar2 = *(int *)(in_t9 + 0x6d4e8)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d4e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d4e8)" (( "(") (binary_expression "in_t9 + 0x6d4e8" (identifier "in_t9") (+ "+") (number_literal "0x6d4e8")) () ")"))))) (; ";")) (expression_statement "iVar10 = *(int *)(in_t9 + 0x6d27c);" (assignment_expression "iVar10 = *(int *)(in_t9 + 0x6d27c)" (identifier "iVar10") (= "=") (pointer_expression "*(int *)(in_t9 + 0x6d27c)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d27c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d27c)" (( "(") (binary_expression "in_t9 + 0x6d27c" (identifier "in_t9") (+ "+") (number_literal "0x6d27c")) () ")"))))) (; ";")) (expression_statement "iVar3 = *(int *)(in_t9 + 0x6d4e8);" (assignment_expression "iVar3 = *(int *)(in_t9 + 0x6d4e8)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)(in_t9 + 0x6d4e8)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d4e8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d4e8)" (( "(") (binary_expression "in_t9 + 0x6d4e8" (identifier "in_t9") (+ "+") (number_literal "0x6d4e8")) () ")"))))) (; ";")) (expression_statement "iVar9 = *(int *)(in_t9 + 0x6d278);" (assignment_expression "iVar9 = *(int *)(in_t9 + 0x6d278)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(in_t9 + 0x6d278)" (* "*") (cast_expression "(int *)(in_t9 + 0x6d278)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_t9 + 0x6d278)" (( "(") (binary_expression "in_t9 + 0x6d278" (identifier "in_t9") (+ "+") (number_literal "0x6d278")) () ")"))))) (; ";")) (do_statement "do {\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      } while (param_4 != iVar6);" (do "do") (compound_statement "{\n        if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }\n        iVar6 = iVar6 + 1;\n        uVar5 = local_34;\n        iVar1 = local_38;\n      }" ({ "{") (if_statement "if (*(char *)(param_6 + iVar6) != '\0') {\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }" (if "if") (parenthesized_expression "(*(char *)(param_6 + iVar6) != '\0')" (( "(") (binary_expression "*(char *)(param_6 + iVar6) != '\0'" (pointer_expression "*(char *)(param_6 + iVar6)" (* "*") (cast_expression "(char *)(param_6 + iVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_6 + iVar6)" (( "(") (binary_expression "param_6 + iVar6" (identifier "param_6") (+ "+") (identifier "iVar6")) () ")")))) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          (*pcVar7)(&local_38,iVar4,&local_3c);\n          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);\n          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);\n          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);\n          iVar4 = iVar9 + 0x4dec;\n        }" ({ "{") (expression_statement "(*pcVar7)(&local_38,iVar4,&local_3c);" (call_expression "(*pcVar7)(&local_38,iVar4,&local_3c)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(&local_38,iVar4,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (identifier "iVar4") (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "(*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);" (call_expression "(*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c)" (parenthesized_expression "(*(code *)(iVar2 + -0x8000))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x8000)" (* "*") (cast_expression "(code *)(iVar2 + -0x8000)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x8000)" (( "(") (binary_expression "iVar2 + -0x8000" (identifier "iVar2") (+ "+") (number_literal "-0x8000")) () ")")))) () ")")) (argument_list "(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (pointer_expression "*(undefined4 *)(param_5 + iVar6 * 4)" (* "*") (cast_expression "(undefined4 *)(param_5 + iVar6 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + iVar6 * 4)" (( "(") (binary_expression "param_5 + iVar6 * 4" (identifier "param_5") (+ "+") (binary_expression "iVar6 * 4" (identifier "iVar6") (* "*") (number_literal "4"))) () ")")))) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "(*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);" (call_expression "(*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c)" (parenthesized_expression "(*pcVar7)" (( "(") (pointer_expression "*pcVar7" (* "*") (identifier "pcVar7")) () ")")) (argument_list "(&local_38,iVar10 + -0x203c,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "iVar10 + -0x203c" (identifier "iVar10") (+ "+") (number_literal "-0x203c")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "(*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);" (call_expression "(*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c)" (parenthesized_expression "(*(code *)(iVar3 + -0x7e38))" (( "(") (pointer_expression "*(code *)(iVar3 + -0x7e38)" (* "*") (cast_expression "(code *)(iVar3 + -0x7e38)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar3 + -0x7e38)" (( "(") (binary_expression "iVar3 + -0x7e38" (identifier "iVar3") (+ "+") (number_literal "-0x7e38")) () ")")))) () ")")) (argument_list "(&local_38,iVar6 + 1,&local_3c)" (( "(") (pointer_expression "&local_38" (& "&") (identifier "local_38")) (, ",") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1")) (, ",") (pointer_expression "&local_3c" (& "&") (identifier "local_3c")) () ")"))) (; ";")) (expression_statement "iVar4 = iVar9 + 0x4dec;" (assignment_expression "iVar4 = iVar9 + 0x4dec" (identifier "iVar4") (= "=") (binary_expression "iVar9 + 0x4dec" (identifier "iVar9") (+ "+") (number_literal "0x4dec"))) (; ";")) (} "}"))) (expression_statement "iVar6 = iVar6 + 1;" (assignment_expression "iVar6 = iVar6 + 1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + 1" (identifier "iVar6") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = local_34;" (assignment_expression "uVar5 = local_34" (identifier "uVar5") (= "=") (identifier "local_34")) (; ";")) (expression_statement "iVar1 = local_38;" (assignment_expression "iVar1 = local_38" (identifier "iVar1") (= "=") (identifier "local_38")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_4 != iVar6)" (( "(") (binary_expression "param_4 != iVar6" (identifier "param_4") (!= "!=") (identifier "iVar6")) () ")")) (; ";")) (} "}"))) (} "}")))) (if_statement "if (local_3c == 0) {\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }" (if "if") (parenthesized_expression "(local_3c == 0)" (( "(") (binary_expression "local_3c == 0" (identifier "local_3c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);\n  }" ({ "{") (expression_statement "local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);" (assignment_expression "local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0)" (identifier "local_3c") (= "=") (call_expression "sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0)" (identifier "sqlite3_prepare_v2") (argument_list "(param_1,iVar1,uVar5,param_7,0)" (( "(") (identifier "param_1") (, ",") (identifier "iVar1") (, ",") (identifier "uVar5") (, ",") (identifier "param_7") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (labeled_statement "LAB_00122948:\n  (**(code **)(in_t9 + 0x6d298))(iVar1);" (statement_identifier "LAB_00122948") (: ":") (expression_statement "(**(code **)(in_t9 + 0x6d298))(iVar1);" (call_expression "(**(code **)(in_t9 + 0x6d298))(iVar1)" (parenthesized_expression "(**(code **)(in_t9 + 0x6d298))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x6d298)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x6d298)" (* "*") (cast_expression "(code **)(in_t9 + 0x6d298)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x6d298)" (( "(") (binary_expression "in_t9 + 0x6d298" (identifier "in_t9") (+ "+") (number_literal "0x6d298")) () ")"))))) () ")")) (argument_list "(iVar1)" (( "(") (identifier "iVar1") () ")"))) (; ";"))) (if_statement "if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }" (if "if") (parenthesized_expression "(local_2c != **(int **)(in_t9 + 0x6d7ec))" (( "(") (binary_expression "local_2c != **(int **)(in_t9 + 0x6d7ec)" (identifier "local_2c") (!= "!=") (pointer_expression "**(int **)(in_t9 + 0x6d7ec)" (* "*") (pointer_expression "*(int **)(in_t9 + 0x6d7ec)" (* "*") (cast_expression "(int **)(in_t9 + 0x6d7ec)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x6d7ec)" (( "(") (binary_expression "in_t9 + 0x6d7ec" (identifier "in_t9") (+ "+") (number_literal "0x6d7ec")) () ")")))))) () ")")) (compound_statement "{\n    (**(code **)(in_t9 + 0x6d7c0))();\n    iVar1 = FUN_00121bb8();\n    return iVar1;\n  }" ({ "{") (expression_statement "(**(code **)(in_t9 + 0x6d7c0))();" (call_expression "(**(code **)(in_t9 + 0x6d7c0))()" (parenthesized_expression "(**(code **)(in_t9 + 0x6d7c0))" (( "(") (pointer_expression "**(code **)(in_t9 + 0x6d7c0)" (* "*") (pointer_expression "*(code **)(in_t9 + 0x6d7c0)" (* "*") (cast_expression "(code **)(in_t9 + 0x6d7c0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(in_t9 + 0x6d7c0)" (( "(") (binary_expression "in_t9 + 0x6d7c0" (identifier "in_t9") (+ "+") (number_literal "0x6d7c0")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar1 = FUN_00121bb8();" (assignment_expression "iVar1 = FUN_00121bb8()" (identifier "iVar1") (= "=") (call_expression "FUN_00121bb8()" (identifier "FUN_00121bb8") (argument_list "()" (( "(") () ")")))) (; ";")) (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (return_statement "return local_3c;" (return "return") (identifier "local_3c") (; ";")) (} "}")))

int function_1(type_1 *db,char *zDb,char *zTab,int var_6,char **azCol,type_2 *abPK,
                     type_3 **ppStmt)

{
  type_1 *var_10;
  int var_2;
  type_2 *var_3;
  char *nBytes;
  type_3 **ppsVar2;
  type_4 *pcVar3;
  type_4 *pcVar4;
  type_3 **in_stack_ffffffa0;
  char **ppcStack_5c;
  int var_8;
  type_5 buf;
  
  var_10 = *(type_1 **)PTR___stack_chk_guard_0018fecc;
  var_8 = 0;
  nBytes = zTab;
  ppsVar2 = (type_3 **)var_6;
  var_2 = (*(type_4 *)PTR_sqlite3_stricmp_0018fa30)
                    (var_1 + -0x3410,zTab);
  if (var_2 == 0) {
    var_3 = (type_2 *)(*(type_4 *)PTR_sqlite3_mprintf_0018f964)
                           (var_1 + -0x20b4);
    if (var_3 == (type_2 *)0x0) {
      var_8 = 7;
      goto LAB_00122948;
    }
    nBytes = (char *)0xffffffff;
  }
  else {
    buf.aBuf = (type_2 *)0x0;
    buf.nBuf = 0;
    buf.nAlloc = 0;
    pcVar3 = (type_4 *)(var_4 + -0x7efc);
    (*pcVar3)(&buf,var_5 + 0x5788,&var_8);
    pcVar4 = (type_4 *)(var_4 + -0x8000);
    (*pcVar4)(&buf,zDb,&var_8);
    (*pcVar3)(&buf,var_1 + 0x1440,&var_8);
    (*pcVar4)(&buf,zTab,&var_8);
    (*pcVar3)(&buf,var_1 + -0x2044,&var_8);
    nBytes = (char *)buf.nBuf;
    var_3 = buf.aBuf;
    if (0 < var_6) {
      var_2 = 0;
      do {
        if (abPK[var_2] != '\0') {
          var_2 = var_7();
          return var_2;
        }
        var_2 = var_2 + 1;
      } while (var_6 != var_2);
    }
  }
  zDb = (char *)var_3;
  if (var_8 == 0) {
    in_stack_ffffffa0 = (type_3 **)0x0;
    var_8 = var_9(db,(char *)var_3,(int)nBytes,ppStmt,(char **)0x0);
    ppsVar2 = ppStmt;
  }
LAB_00122948:
  (*(type_4 *)PTR_sqlite3_free_0018f978)(var_3);
  if (var_10 != *(type_1 **)PTR___stack_chk_guard_0018fecc) {
    (*(type_4 *)PTR___stack_chk_fail_0018fea0)();
    var_2 = var_11
                      (var_10,zDb,(int)nBytes,(type_6)ppsVar2 & 0xf | 0x80,(type_7 *)0x0,
                       in_stack_ffffffa0,ppcStack_5c);
    return var_2;
  }
  return var_8;
}


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

int MASKED(undefined4 param_1,undefined4 param_2,undefined4 param_3,int param_4,int param_5,
                int param_6,undefined4 param_7)

{
  int iVar1;
  int iVar2;
  int iVar3;
  int iVar4;
  undefined4 uVar5;
  int iVar6;
  code *pcVar7;
  code *pcVar8;
  int iVar9;
  int in_t9;
  int iVar10;
  int local_3c;
  int local_38;
  undefined4 local_34;
  undefined4 local_30;
  int local_2c;
  
  local_2c = **(int **)(in_t9 + 0x6d7ec);
  local_3c = 0;
  iVar1 = (**(code **)(in_t9 + 0x6d350))(*(int *)(in_t9 + 0x6d27c) + -0x3410,param_3);
  if (iVar1 == 0) {
    iVar1 = (**(code **)(in_t9 + 0x6d284))(*(int *)(in_t9 + 0x6d27c) + -0x20b4,param_2);
    if (iVar1 == 0) {
      local_3c = 7;
      goto LAB_00122948;
    }
    uVar5 = 0xffffffff;
  }
  else {
    local_38 = 0;
    local_34 = 0;
    local_30 = 0;
    pcVar7 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x7efc);
    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d278) + 0x5788,&local_3c);
    pcVar8 = (code *)(*(int *)(in_t9 + 0x6d4e8) + -0x8000);
    (*pcVar8)(&local_38,param_2,&local_3c);
    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + 0x1440,&local_3c);
    (*pcVar8)(&local_38,param_3,&local_3c);
    (*pcVar7)(&local_38,*(int *)(in_t9 + 0x6d27c) + -0x2044,&local_3c);
    uVar5 = local_34;
    iVar1 = local_38;
    if (0 < param_4) {
      iVar4 = *(int *)(in_t9 + 0x6d278) + 0x2d20;
      iVar6 = 0;
      iVar2 = *(int *)(in_t9 + 0x6d4e8);
      iVar10 = *(int *)(in_t9 + 0x6d27c);
      iVar3 = *(int *)(in_t9 + 0x6d4e8);
      iVar9 = *(int *)(in_t9 + 0x6d278);
      do {
        if (*(char *)(param_6 + iVar6) != '\0') {
          (*pcVar7)(&local_38,iVar4,&local_3c);
          (*(code *)(iVar2 + -0x8000))(&local_38,*(undefined4 *)(param_5 + iVar6 * 4),&local_3c);
          (*pcVar7)(&local_38,iVar10 + -0x203c,&local_3c);
          (*(code *)(iVar3 + -0x7e38))(&local_38,iVar6 + 1,&local_3c);
          iVar4 = iVar9 + 0x4dec;
        }
        iVar6 = iVar6 + 1;
        uVar5 = local_34;
        iVar1 = local_38;
      } while (param_4 != iVar6);
    }
  }
  if (local_3c == 0) {
    local_3c = sqlite3_prepare_v2(param_1,iVar1,uVar5,param_7,0);
  }
LAB_00122948:
  (**(code **)(in_t9 + 0x6d298))(iVar1);
  if (local_2c != **(int **)(in_t9 + 0x6d7ec)) {
    (**(code **)(in_t9 + 0x6d7c0))();
    iVar1 = FUN_00121bb8();
    return iVar1;
  }
  return local_3c;
}

