
int statConnect(sqlite3 *db,void *pAux,int argc,char **argv,sqlite3_vtab **ppVtab,char **pzErr)

{
  long lVar1;
  int iVar2;
  int iVar3;
  size_t sVar4;
  sqlite3_vtab *psVar5;
  char *pcVar6;
  long in_FS_OFFSET;
  Token nm;
  
  lVar1 = *(long *)(in_FS_OFFSET + 0x28);
  if (argc < 4) {
    iVar2 = 0;
  }
  else {
    nm.z = argv[3];
    if (nm.z == (char *)0x0) {
      nm.n = 0;
    }
    else {
      sVar4 = strlen(nm.z);
      nm.n = (uint)sVar4 & 0x3fffffff;
    }
    iVar2 = sqlite3FindDb(db,&nm);
    if (iVar2 < 0) {
      iVar3 = 1;
      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);
      *pzErr = pcVar6;
      goto LAB_001bd06d;
    }
  }
  iVar3 = sqlite3_declare_vtab
                    (db,
                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"
                    );
  psVar5 = (sqlite3_vtab *)0x0;
  if (iVar3 == 0) {
    psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);
    if (psVar5 == (sqlite3_vtab *)0x0) {
      iVar3 = 7;
    }
    else {
      *(undefined8 *)&psVar5[1].nRef = 0;
      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;
      psVar5->pModule = (sqlite3_module *)0x0;
      psVar5->nRef = 0;
      *(undefined4 *)&psVar5->field_0xc = 0;
      psVar5[1].pModule = (sqlite3_module *)db;
      psVar5[1].nRef = iVar2;
    }
  }
  *ppVtab = psVar5;
LAB_001bd06d:
  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar3;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



int FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,
                undefined8 *param_6)

{
  int iVar1;
  int iVar2;
  size_t sVar3;
  undefined1 (*pauVar4) [16];
  undefined8 uVar5;
  long in_FS_OFFSET;
  char *local_48;
  uint local_40;
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_3 < 4) {
    iVar1 = 0;
  }
  else {
    local_48 = *(char **)(param_4 + 0x18);
    if (local_48 == (char *)0x0) {
      local_40 = 0;
    }
    else {
      sVar3 = strlen(local_48);
      local_40 = (uint)sVar3 & 0x3fffffff;
    }
    iVar1 = FUN_0011cc00(param_1,&local_48);
    if (iVar1 < 0) {
      iVar2 = 1;
      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));
      *param_6 = uVar5;
      goto LAB_001bd06d;
    }
  }
  iVar2 = FUN_001bc4b0(param_1,
                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"
                      );
  pauVar4 = (undefined1 (*) [16])0x0;
  if (iVar2 == 0) {
    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);
    if (pauVar4 == (undefined1 (*) [16])0x0) {
      iVar2 = 7;
    }
    else {
      *(undefined8 *)pauVar4[2] = 0;
      pauVar4[1] = (undefined1  [16])0x0;
      *pauVar4 = (undefined1  [16])0x0;
      *(undefined8 *)(pauVar4[1] + 8) = param_1;
      *(int *)pauVar4[2] = iVar1;
    }
  }
  *param_5 = pauVar4;
LAB_001bd06d:
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R14
PUSH R13
MOV R13,R8
PUSH R12
PUSH RBP
MOV RBP,RDI
PUSH RBX
SUB RSP,0x20
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x18],RAX
XOR EAX,EAX
CMP EDX,0x3
JLE 0x001bd090
MOV RDI,qword ptr [RCX + 0x18]
MOV RBX,RCX
MOV R14,R9
MOV qword ptr [RSP],RDI
TEST RDI,RDI
JZ 0x001bd0c8
CALL 0x0010a120
AND EAX,0x3fffffff
MOV RSI,RSP
MOV RDI,RBP
MOV dword ptr [RSP + 0x8],EAX
CALL 0x0011cc00
MOV R12D,EAX
TEST EAX,EAX
JS 0x001bd0d0
LEA RSI,[0x1f9258]
MOV RDI,RBP
CALL 0x001bc4b0
MOV EBX,EAX
XOR EAX,EAX
TEST EBX,EBX
JZ 0x001bd098
MOV qword ptr [R13],RAX
MOV RCX,qword ptr [RSP + 0x18]
XOR RCX,qword ptr FS:[0x28]
MOV EAX,EBX
JNZ 0x001bd0fa
ADD RSP,0x20
POP RBX
POP RBP
POP R12
POP R13
POP R14
RET
XOR R12D,R12D
JMP 0x001bd052
MOV EDI,0x28
CALL 0x00133310
TEST RAX,RAX
JZ 0x001bd0f0
PXOR XMM0,XMM0
MOV qword ptr [RAX + 0x20],0x0
MOVUPS xmmword ptr [RAX + 0x10],XMM0
MOVUPS xmmword ptr [RAX],XMM0
MOV qword ptr [RAX + 0x18],RBP
MOV dword ptr [RAX + 0x20],R12D
JMP 0x001bd069
XOR EAX,EAX
JMP 0x001bd038
MOV RSI,qword ptr [RBX + 0x18]
LEA RDI,[0x1ea57c]
XOR EAX,EAX
MOV EBX,0x1
CALL 0x00163f20
MOV qword ptr [R14],RAX
JMP 0x001bd06d
MOV EBX,0x7
JMP 0x001bd069
CALL 0x0010a140
(translation_unit "int FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (expression_statement "undefined1 (*pauVar4) [16];" (subscript_expression "undefined1 (*pauVar4) [16]" (call_expression "undefined1 (*pauVar4)" identifier (argument_list "(*pauVar4)" ( (pointer_expression "*pauVar4" * identifier) ))) [ number_literal ]) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" if (parenthesized_expression "(param_3 < 4)" ( (binary_expression "param_3 < 4" identifier < number_literal) )) (compound_statement "{\n    iVar1 = 0;\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" else (compound_statement "{\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" { (expression_statement "local_48 = *(char **)(param_4 + 0x18);" (assignment_expression "local_48 = *(char **)(param_4 + 0x18)" identifier = (pointer_expression "*(char **)(param_4 + 0x18)" * (cast_expression "(char **)(param_4 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" if (parenthesized_expression "(local_48 == (char *)0x0)" ( (binary_expression "local_48 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_40 = 0;\n    }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" else (compound_statement "{\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" { (expression_statement "sVar3 = strlen(local_48);" (assignment_expression "sVar3 = strlen(local_48)" identifier = (call_expression "strlen(local_48)" identifier (argument_list "(local_48)" ( identifier )))) ;) (expression_statement "local_40 = (uint)sVar3 & 0x3fffffff;" (assignment_expression "local_40 = (uint)sVar3 & 0x3fffffff" identifier = (binary_expression "(uint)sVar3 & 0x3fffffff" (cast_expression "(uint)sVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) }))) (expression_statement "iVar1 = FUN_0011cc00(param_1,&local_48);" (assignment_expression "iVar1 = FUN_0011cc00(param_1,&local_48)" identifier = (call_expression "FUN_0011cc00(param_1,&local_48)" identifier (argument_list "(param_1,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (expression_statement "uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));" (assignment_expression "uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18))" identifier = (call_expression "FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18))" identifier (argument_list "("no such database: %s",*(undefined8 *)(param_4 + 0x18))" ( (string_literal ""no such database: %s"" " string_content ") , (pointer_expression "*(undefined8 *)(param_4 + 0x18)" * (cast_expression "(undefined8 *)(param_4 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "*param_6 = uVar5;" (assignment_expression "*param_6 = uVar5" (pointer_expression "*param_6" * identifier) = identifier) ;) (goto_statement "goto LAB_001bd06d;" goto statement_identifier ;) })) }))) (expression_statement "iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      );" (assignment_expression "iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      )" identifier = (call_expression "FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      )" identifier (argument_list "(param_1,\n                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                      )" ( identifier , (string_literal ""CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "pauVar4 = (undefined1 (*) [16])0x0;" (assignment_expression "pauVar4 = (undefined1 (*) [16])0x0" identifier = (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) ;) (if_statement "if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }" { (expression_statement "pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);" (assignment_expression "pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28)" identifier = (cast_expression "(undefined1 (*) [16])FUN_00133310(0x28)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (call_expression "FUN_00133310(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (if_statement "if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" if (parenthesized_expression "(pauVar4 == (undefined1 (*) [16])0x0)" ( (binary_expression "pauVar4 == (undefined1 (*) [16])0x0" identifier == (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) )) (compound_statement "{\n      iVar2 = 7;\n    }" { (expression_statement "iVar2 = 7;" (assignment_expression "iVar2 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" else (compound_statement "{\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" { (expression_statement "*(undefined8 *)pauVar4[2] = 0;" (assignment_expression "*(undefined8 *)pauVar4[2] = 0" (pointer_expression "*(undefined8 *)pauVar4[2]" * (cast_expression "(undefined8 *)pauVar4[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pauVar4[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "pauVar4[1] = (undefined1  [16])0x0;" (assignment_expression "pauVar4[1] = (undefined1  [16])0x0" (subscript_expression "pauVar4[1]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "*pauVar4 = (undefined1  [16])0x0;" (assignment_expression "*pauVar4 = (undefined1  [16])0x0" (pointer_expression "*pauVar4" * identifier) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "*(undefined8 *)(pauVar4[1] + 8) = param_1;" (assignment_expression "*(undefined8 *)(pauVar4[1] + 8) = param_1" (pointer_expression "*(undefined8 *)(pauVar4[1] + 8)" * (cast_expression "(undefined8 *)(pauVar4[1] + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pauVar4[1] + 8)" ( (binary_expression "pauVar4[1] + 8" (subscript_expression "pauVar4[1]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)pauVar4[2] = iVar1;" (assignment_expression "*(int *)pauVar4[2] = iVar1" (pointer_expression "*(int *)pauVar4[2]" * (cast_expression "(int *)pauVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pauVar4[2]" identifier [ number_literal ]))) = identifier) ;) }))) })) (expression_statement "*param_5 = pauVar4;" (assignment_expression "*param_5 = pauVar4" (pointer_expression "*param_5" * identifier) = identifier) ;) (labeled_statement "LAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int statConnect(sqlite3 *db,void *pAux,int argc,char **argv,sqlite3_vtab **ppVtab,char **pzErr)\n\n{\n  long lVar1;\n  int iVar2;\n  int iVar3;\n  size_t sVar4;\n  sqlite3_vtab *psVar5;\n  char *pcVar6;\n  long in_FS_OFFSET;\n  Token nm;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (argc < 4) {\n    iVar2 = 0;\n  }\n  else {\n    nm.z = argv[3];\n    if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }\n    iVar2 = sqlite3FindDb(db,&nm);\n    if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar3 = sqlite3_declare_vtab\n                    (db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    );\n  psVar5 = (sqlite3_vtab *)0x0;\n  if (iVar3 == 0) {\n    psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);\n    if (psVar5 == (sqlite3_vtab *)0x0) {\n      iVar3 = 7;\n    }\n    else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }\n  }\n  *ppVtab = psVar5;\nLAB_001bd06d:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int statConnect(sqlite3 *db,void *pAux,int argc,char **argv,sqlite3_vtab **ppVtab,char **pzErr)\n\n{\n  long lVar1;\n  int iVar2;\n  int iVar3;\n  size_t sVar4;\n  sqlite3_vtab *psVar5;\n  char *pcVar6;\n  long in_FS_OFFSET;\n  Token nm;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (argc < 4) {\n    iVar2 = 0;\n  }\n  else {\n    nm.z = argv[3];\n    if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }\n    iVar2 = sqlite3FindDb(db,&nm);\n    if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar3 = sqlite3_declare_vtab\n                    (db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    );\n  psVar5 = (sqlite3_vtab *)0x0;\n  if (iVar3 == 0) {\n    psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);\n    if (psVar5 == (sqlite3_vtab *)0x0) {\n      iVar3 = 7;\n    }\n    else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }\n  }\n  *ppVtab = psVar5;\nLAB_001bd06d:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "statConnect(sqlite3 *db,void *pAux,int argc,char **argv,sqlite3_vtab **ppVtab,char **pzErr)" identifier (parameter_list "(sqlite3 *db,void *pAux,int argc,char **argv,sqlite3_vtab **ppVtab,char **pzErr)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "void *pAux" primitive_type (pointer_declarator "*pAux" * identifier)) , (parameter_declaration "int argc" primitive_type identifier) , (parameter_declaration "char **argv" primitive_type (pointer_declarator "**argv" * (pointer_declarator "*argv" * identifier))) , (parameter_declaration "sqlite3_vtab **ppVtab" type_identifier (pointer_declarator "**ppVtab" * (pointer_declarator "*ppVtab" * identifier))) , (parameter_declaration "char **pzErr" primitive_type (pointer_declarator "**pzErr" * (pointer_declarator "*pzErr" * identifier))) ))) (compound_statement "{\n  long lVar1;\n  int iVar2;\n  int iVar3;\n  size_t sVar4;\n  sqlite3_vtab *psVar5;\n  char *pcVar6;\n  long in_FS_OFFSET;\n  Token nm;\n  \n  lVar1 = *(long *)(in_FS_OFFSET + 0x28);\n  if (argc < 4) {\n    iVar2 = 0;\n  }\n  else {\n    nm.z = argv[3];\n    if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }\n    iVar2 = sqlite3FindDb(db,&nm);\n    if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar3 = sqlite3_declare_vtab\n                    (db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    );\n  psVar5 = (sqlite3_vtab *)0x0;\n  if (iVar3 == 0) {\n    psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);\n    if (psVar5 == (sqlite3_vtab *)0x0) {\n      iVar3 = 7;\n    }\n    else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }\n  }\n  *ppVtab = psVar5;\nLAB_001bd06d:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "long lVar1;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "size_t sVar4;" primitive_type identifier ;) (declaration "sqlite3_vtab *psVar5;" type_identifier (pointer_declarator "*psVar5" * identifier) ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "Token nm;" type_identifier identifier ;) (expression_statement "lVar1 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar1 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (argc < 4) {\n    iVar2 = 0;\n  }\n  else {\n    nm.z = argv[3];\n    if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }\n    iVar2 = sqlite3FindDb(db,&nm);\n    if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }\n  }" if (parenthesized_expression "(argc < 4)" ( (binary_expression "argc < 4" identifier < number_literal) )) (compound_statement "{\n    iVar2 = 0;\n  }" { (expression_statement "iVar2 = 0;" (assignment_expression "iVar2 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    nm.z = argv[3];\n    if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }\n    iVar2 = sqlite3FindDb(db,&nm);\n    if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }\n  }" else (compound_statement "{\n    nm.z = argv[3];\n    if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }\n    iVar2 = sqlite3FindDb(db,&nm);\n    if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }\n  }" { (expression_statement "nm.z = argv[3];" (assignment_expression "nm.z = argv[3]" (field_expression "nm.z" identifier . field_identifier) = (subscript_expression "argv[3]" identifier [ number_literal ])) ;) (if_statement "if (nm.z == (char *)0x0) {\n      nm.n = 0;\n    }\n    else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }" if (parenthesized_expression "(nm.z == (char *)0x0)" ( (binary_expression "nm.z == (char *)0x0" (field_expression "nm.z" identifier . field_identifier) == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      nm.n = 0;\n    }" { (expression_statement "nm.n = 0;" (assignment_expression "nm.n = 0" (field_expression "nm.n" identifier . field_identifier) = number_literal) ;) }) (else_clause "else {\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }" else (compound_statement "{\n      sVar4 = strlen(nm.z);\n      nm.n = (uint)sVar4 & 0x3fffffff;\n    }" { (expression_statement "sVar4 = strlen(nm.z);" (assignment_expression "sVar4 = strlen(nm.z)" identifier = (call_expression "strlen(nm.z)" identifier (argument_list "(nm.z)" ( (field_expression "nm.z" identifier . field_identifier) )))) ;) (expression_statement "nm.n = (uint)sVar4 & 0x3fffffff;" (assignment_expression "nm.n = (uint)sVar4 & 0x3fffffff" (field_expression "nm.n" identifier . field_identifier) = (binary_expression "(uint)sVar4 & 0x3fffffff" (cast_expression "(uint)sVar4" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) }))) (expression_statement "iVar2 = sqlite3FindDb(db,&nm);" (assignment_expression "iVar2 = sqlite3FindDb(db,&nm)" identifier = (call_expression "sqlite3FindDb(db,&nm)" identifier (argument_list "(db,&nm)" ( identifier , (pointer_expression "&nm" & identifier) )))) ;) (if_statement "if (iVar2 < 0) {\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar3 = 1;\n      pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);\n      *pzErr = pcVar6;\n      goto LAB_001bd06d;\n    }" { (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "pcVar6 = sqlite3_mprintf("no such database: %s",argv[3]);" (assignment_expression "pcVar6 = sqlite3_mprintf("no such database: %s",argv[3])" identifier = (call_expression "sqlite3_mprintf("no such database: %s",argv[3])" identifier (argument_list "("no such database: %s",argv[3])" ( (string_literal ""no such database: %s"" " string_content ") , (subscript_expression "argv[3]" identifier [ number_literal ]) )))) ;) (expression_statement "*pzErr = pcVar6;" (assignment_expression "*pzErr = pcVar6" (pointer_expression "*pzErr" * identifier) = identifier) ;) (goto_statement "goto LAB_001bd06d;" goto statement_identifier ;) })) }))) (expression_statement "iVar3 = sqlite3_declare_vtab\n                    (db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    );" (assignment_expression "iVar3 = sqlite3_declare_vtab\n                    (db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    )" identifier = (call_expression "sqlite3_declare_vtab\n                    (db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    )" identifier (argument_list "(db,\n                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"\n                    )" ( identifier , (string_literal ""CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") )))) ;) (expression_statement "psVar5 = (sqlite3_vtab *)0x0;" (assignment_expression "psVar5 = (sqlite3_vtab *)0x0" identifier = (cast_expression "(sqlite3_vtab *)0x0" ( (type_descriptor "sqlite3_vtab *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (iVar3 == 0) {\n    psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);\n    if (psVar5 == (sqlite3_vtab *)0x0) {\n      iVar3 = 7;\n    }\n    else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);\n    if (psVar5 == (sqlite3_vtab *)0x0) {\n      iVar3 = 7;\n    }\n    else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }\n  }" { (expression_statement "psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28);" (assignment_expression "psVar5 = (sqlite3_vtab *)sqlite3_malloc64(0x28)" identifier = (cast_expression "(sqlite3_vtab *)sqlite3_malloc64(0x28)" ( (type_descriptor "sqlite3_vtab *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "sqlite3_malloc64(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (if_statement "if (psVar5 == (sqlite3_vtab *)0x0) {\n      iVar3 = 7;\n    }\n    else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }" if (parenthesized_expression "(psVar5 == (sqlite3_vtab *)0x0)" ( (binary_expression "psVar5 == (sqlite3_vtab *)0x0" identifier == (cast_expression "(sqlite3_vtab *)0x0" ( (type_descriptor "sqlite3_vtab *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar3 = 7;\n    }" { (expression_statement "iVar3 = 7;" (assignment_expression "iVar3 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }" else (compound_statement "{\n      *(undefined8 *)&psVar5[1].nRef = 0;\n      *(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;\n      psVar5->pModule = (sqlite3_module *)0x0;\n      psVar5->nRef = 0;\n      *(undefined4 *)&psVar5->field_0xc = 0;\n      psVar5[1].pModule = (sqlite3_module *)db;\n      psVar5[1].nRef = iVar2;\n    }" { (expression_statement "*(undefined8 *)&psVar5[1].nRef = 0;" (assignment_expression "*(undefined8 *)&psVar5[1].nRef = 0" (pointer_expression "*(undefined8 *)&psVar5[1].nRef" * (cast_expression "(undefined8 *)&psVar5[1].nRef" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar5[1].nRef" & (field_expression "psVar5[1].nRef" (subscript_expression "psVar5[1]" identifier [ number_literal ]) . field_identifier)))) = number_literal) ;) (expression_statement "*(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0;" (assignment_expression "*(undefined1 (*) [16])&psVar5->zErrMsg = (undefined1  [16])0x0" (pointer_expression "*(undefined1 (*) [16])&psVar5->zErrMsg" * (cast_expression "(undefined1 (*) [16])&psVar5->zErrMsg" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (pointer_expression "&psVar5->zErrMsg" & (field_expression "psVar5->zErrMsg" identifier -> field_identifier)))) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "psVar5->pModule = (sqlite3_module *)0x0;" (assignment_expression "psVar5->pModule = (sqlite3_module *)0x0" (field_expression "psVar5->pModule" identifier -> field_identifier) = (cast_expression "(sqlite3_module *)0x0" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "psVar5->nRef = 0;" (assignment_expression "psVar5->nRef = 0" (field_expression "psVar5->nRef" identifier -> field_identifier) = number_literal) ;) (expression_statement "*(undefined4 *)&psVar5->field_0xc = 0;" (assignment_expression "*(undefined4 *)&psVar5->field_0xc = 0" (pointer_expression "*(undefined4 *)&psVar5->field_0xc" * (cast_expression "(undefined4 *)&psVar5->field_0xc" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&psVar5->field_0xc" & (field_expression "psVar5->field_0xc" identifier -> field_identifier)))) = number_literal) ;) (expression_statement "psVar5[1].pModule = (sqlite3_module *)db;" (assignment_expression "psVar5[1].pModule = (sqlite3_module *)db" (field_expression "psVar5[1].pModule" (subscript_expression "psVar5[1]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(sqlite3_module *)db" ( (type_descriptor "sqlite3_module *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "psVar5[1].nRef = iVar2;" (assignment_expression "psVar5[1].nRef = iVar2" (field_expression "psVar5[1].nRef" (subscript_expression "psVar5[1]" identifier [ number_literal ]) . field_identifier) = identifier) ;) }))) })) (expression_statement "*ppVtab = psVar5;" (assignment_expression "*ppVtab = psVar5" (pointer_expression "*ppVtab" * identifier) = identifier) ;) (labeled_statement "LAB_001bd06d:\n  if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" statement_identifier : (if_statement "if (lVar1 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar3;\n  }" if (parenthesized_expression "(lVar1 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar1 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar3;\n  }" { (return_statement "return iVar3;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)" identifier (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "undefined8 param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "undefined8 *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "size_t sVar3;" primitive_type identifier ;) (expression_statement "undefined1 (*pauVar4) [16];" (subscript_expression "undefined1 (*pauVar4) [16]" (call_expression "undefined1 (*pauVar4)" identifier (argument_list "(*pauVar4)" ( (pointer_expression "*pauVar4" * identifier) ))) [ number_literal ]) ;) (declaration "undefined8 uVar5;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "char *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "long local_30;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" if (parenthesized_expression "(param_3 < 4)" ( (binary_expression "param_3 < 4" identifier < number_literal) )) (compound_statement "{\n    iVar1 = 0;\n  }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) (else_clause "else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" else (compound_statement "{\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" { (expression_statement "local_48 = *(char **)(param_4 + 0x18);" (assignment_expression "local_48 = *(char **)(param_4 + 0x18)" identifier = (pointer_expression "*(char **)(param_4 + 0x18)" * (cast_expression "(char **)(param_4 + 0x18)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" if (parenthesized_expression "(local_48 == (char *)0x0)" ( (binary_expression "local_48 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      local_40 = 0;\n    }" { (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" else (compound_statement "{\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" { (expression_statement "sVar3 = strlen(local_48);" (assignment_expression "sVar3 = strlen(local_48)" identifier = (call_expression "strlen(local_48)" identifier (argument_list "(local_48)" ( identifier )))) ;) (expression_statement "local_40 = (uint)sVar3 & 0x3fffffff;" (assignment_expression "local_40 = (uint)sVar3 & 0x3fffffff" identifier = (binary_expression "(uint)sVar3 & 0x3fffffff" (cast_expression "(uint)sVar3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal)) ;) }))) (expression_statement "iVar1 = FUN_0011cc00(param_1,&local_48);" (assignment_expression "iVar1 = FUN_0011cc00(param_1,&local_48)" identifier = (call_expression "FUN_0011cc00(param_1,&local_48)" identifier (argument_list "(param_1,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }" { (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" identifier = number_literal) ;) (expression_statement "uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));" (assignment_expression "uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18))" identifier = (call_expression "FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18))" identifier (argument_list "("no such database: %s",*(undefined8 *)(param_4 + 0x18))" ( (string_literal ""no such database: %s"" " string_content ") , (pointer_expression "*(undefined8 *)(param_4 + 0x18)" * (cast_expression "(undefined8 *)(param_4 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_4 + 0x18)" ( (binary_expression "param_4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "*param_6 = uVar5;" (assignment_expression "*param_6 = uVar5" (pointer_expression "*param_6" * identifier) = identifier) ;) (goto_statement "goto LAB_001bd06d;" goto statement_identifier ;) })) }))) (expression_statement "iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );" (assignment_expression "iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      )" identifier = (call_expression "FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      )" identifier (argument_list "(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      )" ( identifier , (string_literal ""CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"" " string_content ") )))) ;) (expression_statement "pauVar4 = (undefined1 (*) [16])0x0;" (assignment_expression "pauVar4 = (undefined1 (*) [16])0x0" identifier = (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) ;) (if_statement "if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }" { (expression_statement "pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);" (assignment_expression "pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28)" identifier = (cast_expression "(undefined1 (*) [16])FUN_00133310(0x28)" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) (call_expression "FUN_00133310(0x28)" identifier (argument_list "(0x28)" ( number_literal ))))) ;) (if_statement "if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" if (parenthesized_expression "(pauVar4 == (undefined1 (*) [16])0x0)" ( (binary_expression "pauVar4 == (undefined1 (*) [16])0x0" identifier == (cast_expression "(undefined1 (*) [16])0x0" ( (type_descriptor "undefined1 (*) [16]" type_identifier (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" ( (abstract_pointer_declarator "*" *) )) [ number_literal ])) ) number_literal)) )) (compound_statement "{\n      iVar2 = 7;\n    }" { (expression_statement "iVar2 = 7;" (assignment_expression "iVar2 = 7" identifier = number_literal) ;) }) (else_clause "else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" else (compound_statement "{\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" { (expression_statement "*(undefined8 *)pauVar4[2] = 0;" (assignment_expression "*(undefined8 *)pauVar4[2] = 0" (pointer_expression "*(undefined8 *)pauVar4[2]" * (cast_expression "(undefined8 *)pauVar4[2]" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "pauVar4[2]" identifier [ number_literal ]))) = number_literal) ;) (expression_statement "pauVar4[1] = (undefined1  [16])0x0;" (assignment_expression "pauVar4[1] = (undefined1  [16])0x0" (subscript_expression "pauVar4[1]" identifier [ number_literal ]) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "*pauVar4 = (undefined1  [16])0x0;" (assignment_expression "*pauVar4 = (undefined1  [16])0x0" (pointer_expression "*pauVar4" * identifier) = (cast_expression "(undefined1  [16])0x0" ( (type_descriptor "undefined1  [16]" type_identifier (abstract_array_declarator "[16]" [ number_literal ])) ) number_literal)) ;) (expression_statement "*(undefined8 *)(pauVar4[1] + 8) = param_1;" (assignment_expression "*(undefined8 *)(pauVar4[1] + 8) = param_1" (pointer_expression "*(undefined8 *)(pauVar4[1] + 8)" * (cast_expression "(undefined8 *)(pauVar4[1] + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pauVar4[1] + 8)" ( (binary_expression "pauVar4[1] + 8" (subscript_expression "pauVar4[1]" identifier [ number_literal ]) + number_literal) )))) = identifier) ;) (expression_statement "*(int *)pauVar4[2] = iVar1;" (assignment_expression "*(int *)pauVar4[2] = iVar1" (pointer_expression "*(int *)pauVar4[2]" * (cast_expression "(int *)pauVar4[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "pauVar4[2]" identifier [ number_literal ]))) = identifier) ;) }))) })) (expression_statement "*param_5 = pauVar4;" (assignment_expression "*param_5 = pauVar4" (pointer_expression "*param_5" * identifier) = identifier) ;) (labeled_statement "LAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" statement_identifier : (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" if (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" identifier == (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n    return iVar2;\n  }" { (return_statement "return iVar2;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (subscript_expression (call_expression IDENT (argument_list ( (pointer_expression * IDENT) ))) [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (string_literal " string_content ") , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_array_declarator (abstract_parenthesized_declarator ( (abstract_pointer_declarator *) )) [ LIT ])) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE (abstract_array_declarator [ LIT ])) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) = IDENT) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)\n\n{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "FUN_001bcff0(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)" (identifier "FUN_001bcff0") (parameter_list "(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,\n                undefined8 *param_6)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "undefined8 param_2" (type_identifier "undefined8") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "undefined8 *param_5" (type_identifier "undefined8") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "undefined8 *param_6" (type_identifier "undefined8") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  int iVar1;\n  int iVar2;\n  size_t sVar3;\n  undefined1 (*pauVar4) [16];\n  undefined8 uVar5;\n  long in_FS_OFFSET;\n  char *local_48;\n  uint local_40;\n  long local_30;\n  \n  local_30 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }\n  iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );\n  pauVar4 = (undefined1 (*) [16])0x0;\n  if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }\n  *param_5 = pauVar4;\nLAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "size_t sVar3;" (primitive_type "size_t") (identifier "sVar3") (; ";")) (expression_statement "undefined1 (*pauVar4) [16];" (subscript_expression "undefined1 (*pauVar4) [16]" (call_expression "undefined1 (*pauVar4)" (identifier "undefined1") (argument_list "(*pauVar4)" (( "(") (pointer_expression "*pauVar4" (* "*") (identifier "pauVar4")) () ")"))) ([ "[") (number_literal "16") (] "]")) (; ";")) (declaration "undefined8 uVar5;" (type_identifier "undefined8") (identifier "uVar5") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "char *local_48;" (primitive_type "char") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "uint local_40;" (type_identifier "uint") (identifier "local_40") (; ";")) (declaration "long local_30;" (sized_type_specifier "long" (long "long")) (identifier "local_30") (; ";")) (expression_statement "local_30 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_30 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_3 < 4) {\n    iVar1 = 0;\n  }\n  else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 < 4)" (( "(") (binary_expression "param_3 < 4" (identifier "param_3") (< "<") (number_literal "4")) () ")")) (compound_statement "{\n    iVar1 = 0;\n  }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" (else "else") (compound_statement "{\n    local_48 = *(char **)(param_4 + 0x18);\n    if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }\n    iVar1 = FUN_0011cc00(param_1,&local_48);\n    if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }\n  }" ({ "{") (expression_statement "local_48 = *(char **)(param_4 + 0x18);" (assignment_expression "local_48 = *(char **)(param_4 + 0x18)" (identifier "local_48") (= "=") (pointer_expression "*(char **)(param_4 + 0x18)" (* "*") (cast_expression "(char **)(param_4 + 0x18)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (local_48 == (char *)0x0) {\n      local_40 = 0;\n    }\n    else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" (if "if") (parenthesized_expression "(local_48 == (char *)0x0)" (( "(") (binary_expression "local_48 == (char *)0x0" (identifier "local_48") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      local_40 = 0;\n    }" ({ "{") (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" (else "else") (compound_statement "{\n      sVar3 = strlen(local_48);\n      local_40 = (uint)sVar3 & 0x3fffffff;\n    }" ({ "{") (expression_statement "sVar3 = strlen(local_48);" (assignment_expression "sVar3 = strlen(local_48)" (identifier "sVar3") (= "=") (call_expression "strlen(local_48)" (identifier "strlen") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")")))) (; ";")) (expression_statement "local_40 = (uint)sVar3 & 0x3fffffff;" (assignment_expression "local_40 = (uint)sVar3 & 0x3fffffff" (identifier "local_40") (= "=") (binary_expression "(uint)sVar3 & 0x3fffffff" (cast_expression "(uint)sVar3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "sVar3")) (& "&") (number_literal "0x3fffffff"))) (; ";")) (} "}")))) (expression_statement "iVar1 = FUN_0011cc00(param_1,&local_48);" (assignment_expression "iVar1 = FUN_0011cc00(param_1,&local_48)" (identifier "iVar1") (= "=") (call_expression "FUN_0011cc00(param_1,&local_48)" (identifier "FUN_0011cc00") (argument_list "(param_1,&local_48)" (( "(") (identifier "param_1") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (if_statement "if (iVar1 < 0) {\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar2 = 1;\n      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));\n      *param_6 = uVar5;\n      goto LAB_001bd06d;\n    }" ({ "{") (expression_statement "iVar2 = 1;" (assignment_expression "iVar2 = 1" (identifier "iVar2") (= "=") (number_literal "1")) (; ";")) (expression_statement "uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));" (assignment_expression "uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18))" (identifier "uVar5") (= "=") (call_expression "FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18))" (identifier "FUN_00163f20") (argument_list "("no such database: %s",*(undefined8 *)(param_4 + 0x18))" (( "(") (string_literal ""no such database: %s"" (" """) (string_content "no such database: %s") (" """)) (, ",") (pointer_expression "*(undefined8 *)(param_4 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_4 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_4 + 0x18)" (( "(") (binary_expression "param_4 + 0x18" (identifier "param_4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "*param_6 = uVar5;" (assignment_expression "*param_6 = uVar5" (pointer_expression "*param_6" (* "*") (identifier "param_6")) (= "=") (identifier "uVar5")) (; ";")) (goto_statement "goto LAB_001bd06d;" (goto "goto") (statement_identifier "LAB_001bd06d") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      );" (assignment_expression "iVar2 = FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      )" (identifier "iVar2") (= "=") (call_expression "FUN_001bc4b0(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      )" (identifier "FUN_001bc4b0") (argument_list "(param_1,\n                       "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"\n                      )" (( "(") (identifier "param_1") (, ",") (string_literal ""CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );"" (" """) (string_content "CREATE TABLE xx(   name       TEXT,               path       TEXT,               pageno     INTEGER,            pagetype   TEXT,               ncell      INTEGER,            payload    INTEGER,            unused     INTEGER,            mx_payload INTEGER,            pgoffset   INTEGER,            pgsize     INTEGER,            schema     TEXT HIDDEN       );") (" """)) () ")")))) (; ";")) (expression_statement "pauVar4 = (undefined1 (*) [16])0x0;" (assignment_expression "pauVar4 = (undefined1 (*) [16])0x0" (identifier "pauVar4") (= "=") (cast_expression "(undefined1 (*) [16])0x0" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (iVar2 == 0) {\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);\n    if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }\n  }" ({ "{") (expression_statement "pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);" (assignment_expression "pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28)" (identifier "pauVar4") (= "=") (cast_expression "(undefined1 (*) [16])FUN_00133310(0x28)" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (call_expression "FUN_00133310(0x28)" (identifier "FUN_00133310") (argument_list "(0x28)" (( "(") (number_literal "0x28") () ")"))))) (; ";")) (if_statement "if (pauVar4 == (undefined1 (*) [16])0x0) {\n      iVar2 = 7;\n    }\n    else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" (if "if") (parenthesized_expression "(pauVar4 == (undefined1 (*) [16])0x0)" (( "(") (binary_expression "pauVar4 == (undefined1 (*) [16])0x0" (identifier "pauVar4") (== "==") (cast_expression "(undefined1 (*) [16])0x0" (( "(") (type_descriptor "undefined1 (*) [16]" (type_identifier "undefined1") (abstract_array_declarator "(*) [16]" (abstract_parenthesized_declarator "(*)" (( "(") (abstract_pointer_declarator "*" (* "*")) () ")")) ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar2 = 7;\n    }" ({ "{") (expression_statement "iVar2 = 7;" (assignment_expression "iVar2 = 7" (identifier "iVar2") (= "=") (number_literal "7")) (; ";")) (} "}")) (else_clause "else {\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" (else "else") (compound_statement "{\n      *(undefined8 *)pauVar4[2] = 0;\n      pauVar4[1] = (undefined1  [16])0x0;\n      *pauVar4 = (undefined1  [16])0x0;\n      *(undefined8 *)(pauVar4[1] + 8) = param_1;\n      *(int *)pauVar4[2] = iVar1;\n    }" ({ "{") (expression_statement "*(undefined8 *)pauVar4[2] = 0;" (assignment_expression "*(undefined8 *)pauVar4[2] = 0" (pointer_expression "*(undefined8 *)pauVar4[2]" (* "*") (cast_expression "(undefined8 *)pauVar4[2]" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pauVar4[2]" (identifier "pauVar4") ([ "[") (number_literal "2") (] "]")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pauVar4[1] = (undefined1  [16])0x0;" (assignment_expression "pauVar4[1] = (undefined1  [16])0x0" (subscript_expression "pauVar4[1]" (identifier "pauVar4") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*pauVar4 = (undefined1  [16])0x0;" (assignment_expression "*pauVar4 = (undefined1  [16])0x0" (pointer_expression "*pauVar4" (* "*") (identifier "pauVar4")) (= "=") (cast_expression "(undefined1  [16])0x0" (( "(") (type_descriptor "undefined1  [16]" (type_identifier "undefined1") (abstract_array_declarator "[16]" ([ "[") (number_literal "16") (] "]"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*(undefined8 *)(pauVar4[1] + 8) = param_1;" (assignment_expression "*(undefined8 *)(pauVar4[1] + 8) = param_1" (pointer_expression "*(undefined8 *)(pauVar4[1] + 8)" (* "*") (cast_expression "(undefined8 *)(pauVar4[1] + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pauVar4[1] + 8)" (( "(") (binary_expression "pauVar4[1] + 8" (subscript_expression "pauVar4[1]" (identifier "pauVar4") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(int *)pauVar4[2] = iVar1;" (assignment_expression "*(int *)pauVar4[2] = iVar1" (pointer_expression "*(int *)pauVar4[2]" (* "*") (cast_expression "(int *)pauVar4[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "pauVar4[2]" (identifier "pauVar4") ([ "[") (number_literal "2") (] "]")))) (= "=") (identifier "iVar1")) (; ";")) (} "}")))) (} "}"))) (expression_statement "*param_5 = pauVar4;" (assignment_expression "*param_5 = pauVar4" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "pauVar4")) (; ";")) (labeled_statement "LAB_001bd06d:\n  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" (statement_identifier "LAB_001bd06d") (: ":") (if_statement "if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar2;\n  }" (if "if") (parenthesized_expression "(local_30 == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_30 == *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_30") (== "==") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n    return iVar2;\n  }" ({ "{") (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(type_1 *db,void *pAux,int var_2,char **argv,type_2 **ppVtab,char **pzErr)

{
  long var_11;
  int var_5;
  int var_8;
  size_t sVar4;
  type_2 *var_10;
  char *pcVar6;
  long var_1;
  type_3 nm;
  
  var_11 = *(long *)(var_1 + 0x28);
  if (var_2 < 4) {
    var_5 = 0;
  }
  else {
    nm.z = argv[3];
    if (nm.z == (char *)0x0) {
      nm.n = 0;
    }
    else {
      sVar4 = var_3(nm.z);
      nm.n = (type_4)sVar4 & 0x3fffffff;
    }
    var_5 = var_4(db,&nm);
    if (var_5 < 0) {
      var_8 = 1;
      pcVar6 = var_6("no such database: %s",argv[3]);
      *pzErr = pcVar6;
      goto LAB_001bd06d;
    }
  }
  var_8 = var_7
                    (db,
                     "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"
                    );
  var_10 = (type_2 *)0x0;
  if (var_8 == 0) {
    var_10 = (type_2 *)var_9(0x28);
    if (var_10 == (type_2 *)0x0) {
      var_8 = 7;
    }
    else {
      *(type_5 *)&var_10[1].nRef = 0;
      *(type_6 (*) [16])&var_10->zErrMsg = (type_6  [16])0x0;
      var_10->pModule = (type_7 *)0x0;
      var_10->nRef = 0;
      *(type_8 *)&var_10->field_0xc = 0;
      var_10[1].pModule = (type_7 *)db;
      var_10[1].nRef = var_5;
    }
  }
  *ppVtab = var_10;
LAB_001bd06d:
  if (var_11 == *(long *)(var_1 + 0x28)) {
    return var_8;
  }
                    /* WARNING: Subroutine does not return */
  var_12();
}


(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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (sized_type_specifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (subscript_expression argument: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)))) index: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (sized_type_specifier) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (string_literal (string_content)) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (goto_statement label: (statement_identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (string_literal (string_content)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator declarator: (abstract_parenthesized_declarator (abstract_pointer_declarator)) size: (number_literal))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (number_literal))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_array_declarator size: (number_literal))) value: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))) right: (identifier)))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (sized_type_specifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (return_statement (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))))))

int MASKED(undefined8 param_1,undefined8 param_2,int param_3,long param_4,undefined8 *param_5,
                undefined8 *param_6)

{
  int iVar1;
  int iVar2;
  size_t sVar3;
  undefined1 (*pauVar4) [16];
  undefined8 uVar5;
  long in_FS_OFFSET;
  char *local_48;
  uint local_40;
  long local_30;
  
  local_30 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_3 < 4) {
    iVar1 = 0;
  }
  else {
    local_48 = *(char **)(param_4 + 0x18);
    if (local_48 == (char *)0x0) {
      local_40 = 0;
    }
    else {
      sVar3 = strlen(local_48);
      local_40 = (uint)sVar3 & 0x3fffffff;
    }
    iVar1 = FUN_0011cc00(param_1,&local_48);
    if (iVar1 < 0) {
      iVar2 = 1;
      uVar5 = FUN_00163f20("no such database: %s",*(undefined8 *)(param_4 + 0x18));
      *param_6 = uVar5;
      goto LAB_001bd06d;
    }
  }
  iVar2 = FUN_001bc4b0(param_1,
                       "CREATE TABLE xx(   name       TEXT,             /* Name of table or index */  path       TEXT,             /* Path to page from root */  pageno     INTEGER,          /* Page number */  pagetype   TEXT,             /* \'internal\', \'leaf\' or \'overflow\' */  ncell      INTEGER,          /* Cells on page (0 for overflow) */  payload    INTEGER,          /* Bytes of payload on this page */  unused     INTEGER,          /* Bytes of unused space on this page */  mx_payload INTEGER,          /* Largest payload size of all cells */  pgoffset   INTEGER,          /* Offset of page in file */  pgsize     INTEGER,          /* Size of the page */  schema     TEXT HIDDEN       /* Database schema being analyzed */);"
                      );
  pauVar4 = (undefined1 (*) [16])0x0;
  if (iVar2 == 0) {
    pauVar4 = (undefined1 (*) [16])FUN_00133310(0x28);
    if (pauVar4 == (undefined1 (*) [16])0x0) {
      iVar2 = 7;
    }
    else {
      *(undefined8 *)pauVar4[2] = 0;
      pauVar4[1] = (undefined1  [16])0x0;
      *pauVar4 = (undefined1  [16])0x0;
      *(undefined8 *)(pauVar4[1] + 8) = param_1;
      *(int *)pauVar4[2] = iVar1;
    }
  }
  *param_5 = pauVar4;
LAB_001bd06d:
  if (local_30 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar2;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

