
void checkAppendMsg(IntegrityCk *pCheck,char *zFormat,...)

{
  byte bVar1;
  undefined *puVar2;
  int iVar3;
  u32 uVar4;
  BtShared *pCheck_00;
  Pager *pBt;
  MemPage *key;
  MemPage *zFormat_00;
  char *zFormat_01;
  undefined4 *******in_a2;
  byte *pbVar5;
  Pgno in_a3;
  uint uVar6;
  int *piVar7;
  char *unaff_s2;
  StrAccum *unaff_s3;
  undefined *puVar8;
  code *pcVar9;
  undefined4 ******local_res8;
  Pgno local_resc;
  byte bStack_59;
  Pgno PStack_58;
  int iStack_54;
  IntegrityCk *pIStack_50;
  undefined *puStack_4c;
  char *pcStack_48;
  StrAccum *pSStack_44;
  va_list ap;
  
  puVar2 = PTR___stack_chk_guard_000f5568;
  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;
  pCheck_00 = (BtShared *)pCheck;
  key = (MemPage *)zFormat;
  pcStack_48 = unaff_s2;
  local_res8 = in_a2;
  local_resc = in_a3;
  if (pCheck->mxErr != 0) {
    uVar4 = (pCheck->errMsg).nChar;
    pCheck->mxErr = pCheck->mxErr + -1;
    in_a2 = &local_res8;
    unaff_s3 = &pCheck->errMsg;
    pCheck->nErr = pCheck->nErr + 1;
    if (uVar4 != 0) {
      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);
    }
    if (pCheck->zPfx != (char *)0x0) {
      in_a3 = pCheck->v2;
      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);
    }
    pCheck_00 = (BtShared *)unaff_s3;
    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();
    pcStack_48 = zFormat;
    if ((pCheck->errMsg).accError == '\a') {
      pCheck->bOomFault = 1;
    }
  }
  if (iVar3 == *(int *)puVar2) {
    return;
  }
  puVar8 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  puStack_4c = puVar2;
  piVar7 = *(int **)(puVar8 + 0xa78d4);
  iStack_54 = *piVar7;
  pBt = pCheck_00->pPager;
  zFormat_00 = key;
  pIStack_50 = pCheck;
  pSStack_44 = unaff_s3;
  iVar3 = ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58);
  if (iVar3 == 0) {
    if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {
      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);
      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,
                     (undefined4 *******)(uint)bStack_59,PStack_58);
      pBt = (Pager *)pCheck_00;
    }
  }
  else {
    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {
      pCheck_00->btsFlags = 0;
      pCheck_00->maxLocal = 1;
    }
    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);
    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);
    pBt = (Pager *)pCheck_00;
  }
  if (iStack_54 != *piVar7) {
    pcVar9 = *(code **)(puVar8 + 0xa78ac);
    (*pcVar9)();
    if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {
      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);
    }
    else {
      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));
      bVar1 = *pbVar5;
      uVar6 = 1 << ((uint)zFormat_00 & 7);
      if ((bVar1 & uVar6) == 0) {
        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {
          return;
        }
        *pbVar5 = bVar1 | (byte)uVar6;
        return;
      }
      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);
    }
    checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);
    return;
  }
  return;
}



int FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  uint uVar6;
  byte *pbVar7;
  int *piVar8;
  undefined *puVar9;
  undefined4 ******local_res8;
  int local_resc;
  byte bStack_59;
  int iStack_58;
  
  puVar9 = PTR___stack_chk_guard_000f5568;
  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;
  piVar4 = param_1;
  local_res8 = param_3;
  local_resc = param_4;
  if (param_1[4] != 0) {
    param_1[4] = param_1[4] + -1;
    param_3 = &local_res8;
    piVar4 = param_1 + 10;
    param_1[5] = param_1[5] + 1;
    if (param_1[0xe] != 0) {
      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);
    }
    if (param_1[7] != 0) {
      param_4 = param_1[9];
      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);
    }
    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();
    if (*(char *)(param_1 + 0xf) == '\a') {
      param_1[6] = 1;
    }
  }
  if (iVar3 == *(int *)puVar9) {
    return *(int *)puVar9;
  }
  puVar9 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  piVar8 = *(int **)(puVar9 + 0xa78d4);
  iVar3 = *piVar8;
  piVar5 = (int *)*piVar4;
  uVar6 = param_2;
  iVar2 = FUN_00044ef0();
  if (iVar2 == 0) {
    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {
      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;
      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,
                   iStack_58);
      piVar5 = piVar4;
    }
  }
  else {
    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {
      piVar4[6] = 1;
    }
    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;
    FUN_0004db7c(piVar4,uVar6,param_2);
    piVar5 = piVar4;
  }
  iVar2 = *piVar8;
  if (iVar3 != iVar2) {
    (**(code **)(puVar9 + 0xa78ac))();
    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {
      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));
      bVar1 = *pbVar7;
      uVar6 = 1 << (uVar6 & 7);
      if ((bVar1 & uVar6) == 0) {
        if (*(int *)(piVar5[0x11] + 0x110) != 0) {
          return 1;
        }
        *pbVar7 = bVar1 | (byte)uVar6;
        return 0;
      }
    }
    FUN_0004db7c();
    return 1;
  }
  return iVar2;
}


lui gp,0xb
addiu gp,gp,-0x8dc
addu gp,gp,t9
addiu sp,sp,-0x38
sw s1,0x28(sp)
sw a2,0x40(sp)
sw a3,0x44(sp)
lw s1,-0x7d38(gp)
lw v0,0x10(a0)
sw gp,0x10(sp)
sw ra,0x34(sp)
sw s3,0x30(sp)
sw s2,0x2c(sp)
sw s0,0x24(sp)
lw v1,0x0(s1)
sw v1,0x1c(sp)
bne v0,zero,0x0004dbec
_or s0,a0,zero
lw v1,0x1c(sp)
lw v0,0x0(s1)
bne v1,v0,0x0004dc88
_lw ra,0x34(sp)
lw s3,0x30(sp)
lw s2,0x2c(sp)
lw s1,0x28(sp)
lw s0,0x24(sp)
jr ra
_addiu sp,sp,0x38
lw v1,0x14(a0)
addiu v0,v0,-0x1
lw a0,0x38(a0)
or s2,a1,zero
sw v0,0x10(s0)
addiu v0,v1,0x1
addiu v1,sp,0x40
addiu s3,s0,0x28
sw v0,0x14(s0)
bne a0,zero,0x0004dc68
_sw v1,0x18(sp)
lw a1,0x1c(s0)
beq a1,zero,0x0004dc38
_lw t9,-0x7f54(gp)
or a0,s3,zero
lw a3,0x24(s0)
jalr t9
_lw a2,0x20(s0)
lw gp,0x10(sp)
lw t9,-0x7f20(gp)
or a1,s2,zero
lw a2,0x18(sp)
jalr t9
_or a0,s3,zero
li v0,0x7
lbu v1,0x3c(s0)
bne v1,v0,0x0004dbc4
_lw gp,0x10(sp)
li v0,0x1
b 0x0004dbc4
_sw v0,0x18(s0)
lw a1,-0x7fd4(gp)
li a2,0x1
lw t9,-0x7d58(gp)
or a0,s3,zero
jalr t9
_addiu a1,a1,0x7924
b 0x0004dc18
_lw gp,0x10(sp)
lw t9,-0x7d60(gp)
jalr t9
_nop
(translation_unit "int FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)" identifier (parameter_list "(int *param_1,uint param_2,undefined4 *******param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 *******param_3" type_identifier (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 ******local_res8;" type_identifier (pointer_declarator "******local_res8" * (pointer_declarator "*****local_res8" * (pointer_declarator "****local_res8" * (pointer_declarator "***local_res8" * (pointer_declarator "**local_res8" * (pointer_declarator "*local_res8" * identifier)))))) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "byte bStack_59;" type_identifier identifier ;) (declaration "int iStack_58;" primitive_type identifier ;) (expression_statement "puVar9 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar4 = param_1;" (assignment_expression "piVar4 = param_1" identifier = identifier) ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (if_statement "if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }" if (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }" { (expression_statement "param_1[4] = param_1[4] + -1;" (assignment_expression "param_1[4] = param_1[4] + -1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "param_1[4] + -1" (subscript_expression "param_1[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_3 = &local_res8;" (assignment_expression "param_3 = &local_res8" identifier = (pointer_expression "&local_res8" & identifier)) ;) (expression_statement "piVar4 = param_1 + 10;" (assignment_expression "piVar4 = param_1 + 10" identifier = (binary_expression "param_1 + 10" identifier + number_literal)) ;) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }" if (parenthesized_expression "(param_1[0xe] != 0)" ( (binary_expression "param_1[0xe] != 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }" { (expression_statement "(*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);" (call_expression "(*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1)" (parenthesized_expression "(*(code *)PTR_sqlite3_str_append_000f5548)" ( (pointer_expression "*(code *)PTR_sqlite3_str_append_000f5548" * (cast_expression "(code *)PTR_sqlite3_str_append_000f5548" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4,PTR_LAB_000f52cc + 0x7924,1)" ( identifier , (binary_expression "PTR_LAB_000f52cc + 0x7924" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }" if (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }" { (expression_statement "param_4 = param_1[9];" (assignment_expression "param_4 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);" (call_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8])" (parenthesized_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)" ( (pointer_expression "*(code *)PTR_sqlite3_str_appendf_000f534c" * (cast_expression "(code *)PTR_sqlite3_str_appendf_000f534c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4,param_1[7],param_1[8])" ( identifier , (subscript_expression "param_1[7]" identifier [ number_literal ]) , (subscript_expression "param_1[8]" identifier [ number_literal ]) ))) ;) })) (expression_statement "(*(code *)PTR_sqlite3_str_vappendf_000f5380)();" (call_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)()" (parenthesized_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)" ( (pointer_expression "*(code *)PTR_sqlite3_str_vappendf_000f5380" * (cast_expression "(code *)PTR_sqlite3_str_vappendf_000f5380" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0xf) == '\a')" ( (binary_expression "*(char *)(param_1 + 0xf) == '\a'" (pointer_expression "*(char *)(param_1 + 0xf)" * (cast_expression "(char *)(param_1 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) == (char_literal "'\a'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[6] = 1;\n    }" { (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) })) })) (if_statement "if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar9)" ( (binary_expression "iVar3 == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)puVar9;\n  }" { (return_statement "return *(int *)puVar9;" return (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "puVar9 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar9 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(puVar9 + 0xa78d4);" (assignment_expression "piVar8 = *(int **)(puVar9 + 0xa78d4)" identifier = (pointer_expression "*(int **)(puVar9 + 0xa78d4)" * (cast_expression "(int **)(puVar9 + 0xa78d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xa78d4)" ( (binary_expression "puVar9 + 0xa78d4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar8;" (assignment_expression "iVar3 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar5 = (int *)*piVar4;" (assignment_expression "piVar5 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar6 = param_2;" (assignment_expression "uVar6 = param_2" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00044ef0();" (assignment_expression "iVar2 = FUN_00044ef0()" identifier = (call_expression "FUN_00044ef0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }" { (if_statement "if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }" if (parenthesized_expression "(((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58))" ( (binary_expression "((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)" (parenthesized_expression "((undefined4 *******)(uint)bStack_59 != param_3)" ( (binary_expression "(undefined4 *******)(uint)bStack_59 != param_3" (cast_expression "(undefined4 *******)(uint)bStack_59" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_59" ( (type_descriptor "uint" type_identifier) ) identifier)) != identifier) )) || (parenthesized_expression "(param_4 != iStack_58)" ( (binary_expression "param_4 != iStack_58" identifier != identifier) ))) )) (compound_statement "{\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }" { (expression_statement "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;" (assignment_expression "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948" identifier = (binary_expression "*(int *)(puVar9 + 0xa7638) + 0x7948" (pointer_expression "*(int *)(puVar9 + 0xa7638)" * (cast_expression "(int *)(puVar9 + 0xa7638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xa7638)" ( (binary_expression "puVar9 + 0xa7638" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);" (call_expression "FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58)" identifier (argument_list "(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(undefined4 *******)(uint)bStack_59" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_59" ( (type_descriptor "uint" type_identifier) ) identifier)) , identifier ))) ;) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" identifier = identifier) ;) })) }) (else_clause "else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" else (compound_statement "{\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" { (if_statement "if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }" if (parenthesized_expression "((iVar2 == 7) || (iVar2 == 0xc0a))" ( (binary_expression "(iVar2 == 7) || (iVar2 == 0xc0a)" (parenthesized_expression "(iVar2 == 7)" ( (binary_expression "iVar2 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 0xc0a)" ( (binary_expression "iVar2 == 0xc0a" identifier == number_literal) ))) )) (compound_statement "{\n      piVar4[6] = 1;\n    }" { (expression_statement "piVar4[6] = 1;" (assignment_expression "piVar4[6] = 1" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;" (assignment_expression "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928" identifier = (binary_expression "*(int *)(puVar9 + 0xa7638) + 0x7928" (pointer_expression "*(int *)(puVar9 + 0xa7638)" * (cast_expression "(int *)(puVar9 + 0xa7638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xa7638)" ( (binary_expression "puVar9 + 0xa7638" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_0004db7c(piVar4,uVar6,param_2);" (call_expression "FUN_0004db7c(piVar4,uVar6,param_2)" identifier (argument_list "(piVar4,uVar6,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" identifier = identifier) ;) }))) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }" if (parenthesized_expression "(iVar3 != iVar2)" ( (binary_expression "iVar3 != iVar2" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }" { (expression_statement "(**(code **)(puVar9 + 0xa78ac))();" (call_expression "(**(code **)(puVar9 + 0xa78ac))()" (parenthesized_expression "(**(code **)(puVar9 + 0xa78ac))" ( (pointer_expression "**(code **)(puVar9 + 0xa78ac)" * (pointer_expression "*(code **)(puVar9 + 0xa78ac)" * (cast_expression "(code **)(puVar9 + 0xa78ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xa78ac)" ( (binary_expression "puVar9 + 0xa78ac" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }" if (parenthesized_expression "((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0))" ( (binary_expression "(uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)" (parenthesized_expression "(uVar6 <= (uint)piVar5[3])" ( (binary_expression "uVar6 <= (uint)piVar5[3]" identifier <= (cast_expression "(uint)piVar5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar5[3]" identifier [ number_literal ]))) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }" { (expression_statement "pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));" (assignment_expression "pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3))" identifier = (cast_expression "(byte *)(piVar5[2] + (uVar6 >> 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[2] + (uVar6 >> 3))" ( (binary_expression "piVar5[2] + (uVar6 >> 3)" (subscript_expression "piVar5[2]" identifier [ number_literal ]) + (parenthesized_expression "(uVar6 >> 3)" ( (binary_expression "uVar6 >> 3" identifier >> number_literal) ))) )))) ;) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (expression_statement "uVar6 = 1 << (uVar6 & 7);" (assignment_expression "uVar6 = 1 << (uVar6 & 7)" identifier = (binary_expression "1 << (uVar6 & 7)" number_literal << (parenthesized_expression "(uVar6 & 7)" ( (binary_expression "uVar6 & 7" identifier & number_literal) )))) ;) (if_statement "if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }" if (parenthesized_expression "((bVar1 & uVar6) == 0)" ( (binary_expression "(bVar1 & uVar6) == 0" (parenthesized_expression "(bVar1 & uVar6)" ( (binary_expression "bVar1 & uVar6" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }" { (if_statement "if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }" if (parenthesized_expression "(*(int *)(piVar5[0x11] + 0x110) != 0)" ( (binary_expression "*(int *)(piVar5[0x11] + 0x110) != 0" (pointer_expression "*(int *)(piVar5[0x11] + 0x110)" * (cast_expression "(int *)(piVar5[0x11] + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[0x11] + 0x110)" ( (binary_expression "piVar5[0x11] + 0x110" (subscript_expression "piVar5[0x11]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*pbVar7 = bVar1 | (byte)uVar6;" (assignment_expression "*pbVar7 = bVar1 | (byte)uVar6" (pointer_expression "*pbVar7" * identifier) = (binary_expression "bVar1 | (byte)uVar6" identifier | (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "FUN_0004db7c();" (call_expression "FUN_0004db7c()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit "void checkAppendMsg(IntegrityCk *pCheck,char *zFormat,...)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  u32 uVar4;\n  BtShared *pCheck_00;\n  Pager *pBt;\n  MemPage *key;\n  MemPage *zFormat_00;\n  char *zFormat_01;\n  undefined4 *******in_a2;\n  byte *pbVar5;\n  Pgno in_a3;\n  uint uVar6;\n  int *piVar7;\n  char *unaff_s2;\n  StrAccum *unaff_s3;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 ******local_res8;\n  Pgno local_resc;\n  byte bStack_59;\n  Pgno PStack_58;\n  int iStack_54;\n  IntegrityCk *pIStack_50;\n  undefined *puStack_4c;\n  char *pcStack_48;\n  StrAccum *pSStack_44;\n  va_list ap;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  pCheck_00 = (BtShared *)pCheck;\n  key = (MemPage *)zFormat;\n  pcStack_48 = unaff_s2;\n  local_res8 = in_a2;\n  local_resc = in_a3;\n  if (pCheck->mxErr != 0) {\n    uVar4 = (pCheck->errMsg).nChar;\n    pCheck->mxErr = pCheck->mxErr + -1;\n    in_a2 = &local_res8;\n    unaff_s3 = &pCheck->errMsg;\n    pCheck->nErr = pCheck->nErr + 1;\n    if (uVar4 != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (pCheck->zPfx != (char *)0x0) {\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }\n    pCheck_00 = (BtShared *)unaff_s3;\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    pcStack_48 = zFormat;\n    if ((pCheck->errMsg).accError == '\a') {\n      pCheck->bOomFault = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar2) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puStack_4c = puVar2;\n  piVar7 = *(int **)(puVar8 + 0xa78d4);\n  iStack_54 = *piVar7;\n  pBt = pCheck_00->pPager;\n  zFormat_00 = key;\n  pIStack_50 = pCheck;\n  pSStack_44 = unaff_s3;\n  iVar3 = ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58);\n  if (iVar3 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }\n  }\n  else {\n    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }\n    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);\n    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);\n    pBt = (Pager *)pCheck_00;\n  }\n  if (iStack_54 != *piVar7) {\n    pcVar9 = *(code **)(puVar8 + 0xa78ac);\n    (*pcVar9)();\n    if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }\n    else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }\n    checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void checkAppendMsg(IntegrityCk *pCheck,char *zFormat,...)\n\n{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  u32 uVar4;\n  BtShared *pCheck_00;\n  Pager *pBt;\n  MemPage *key;\n  MemPage *zFormat_00;\n  char *zFormat_01;\n  undefined4 *******in_a2;\n  byte *pbVar5;\n  Pgno in_a3;\n  uint uVar6;\n  int *piVar7;\n  char *unaff_s2;\n  StrAccum *unaff_s3;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 ******local_res8;\n  Pgno local_resc;\n  byte bStack_59;\n  Pgno PStack_58;\n  int iStack_54;\n  IntegrityCk *pIStack_50;\n  undefined *puStack_4c;\n  char *pcStack_48;\n  StrAccum *pSStack_44;\n  va_list ap;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  pCheck_00 = (BtShared *)pCheck;\n  key = (MemPage *)zFormat;\n  pcStack_48 = unaff_s2;\n  local_res8 = in_a2;\n  local_resc = in_a3;\n  if (pCheck->mxErr != 0) {\n    uVar4 = (pCheck->errMsg).nChar;\n    pCheck->mxErr = pCheck->mxErr + -1;\n    in_a2 = &local_res8;\n    unaff_s3 = &pCheck->errMsg;\n    pCheck->nErr = pCheck->nErr + 1;\n    if (uVar4 != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (pCheck->zPfx != (char *)0x0) {\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }\n    pCheck_00 = (BtShared *)unaff_s3;\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    pcStack_48 = zFormat;\n    if ((pCheck->errMsg).accError == '\a') {\n      pCheck->bOomFault = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar2) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puStack_4c = puVar2;\n  piVar7 = *(int **)(puVar8 + 0xa78d4);\n  iStack_54 = *piVar7;\n  pBt = pCheck_00->pPager;\n  zFormat_00 = key;\n  pIStack_50 = pCheck;\n  pSStack_44 = unaff_s3;\n  iVar3 = ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58);\n  if (iVar3 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }\n  }\n  else {\n    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }\n    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);\n    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);\n    pBt = (Pager *)pCheck_00;\n  }\n  if (iStack_54 != *piVar7) {\n    pcVar9 = *(code **)(puVar8 + 0xa78ac);\n    (*pcVar9)();\n    if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }\n    else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }\n    checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "checkAppendMsg(IntegrityCk *pCheck,char *zFormat,...)" identifier (parameter_list "(IntegrityCk *pCheck,char *zFormat,...)" ( (parameter_declaration "IntegrityCk *pCheck" type_identifier (pointer_declarator "*pCheck" * identifier)) , (parameter_declaration "char *zFormat" primitive_type (pointer_declarator "*zFormat" * identifier)) , (variadic_parameter "..." ...) ))) (compound_statement "{\n  byte bVar1;\n  undefined *puVar2;\n  int iVar3;\n  u32 uVar4;\n  BtShared *pCheck_00;\n  Pager *pBt;\n  MemPage *key;\n  MemPage *zFormat_00;\n  char *zFormat_01;\n  undefined4 *******in_a2;\n  byte *pbVar5;\n  Pgno in_a3;\n  uint uVar6;\n  int *piVar7;\n  char *unaff_s2;\n  StrAccum *unaff_s3;\n  undefined *puVar8;\n  code *pcVar9;\n  undefined4 ******local_res8;\n  Pgno local_resc;\n  byte bStack_59;\n  Pgno PStack_58;\n  int iStack_54;\n  IntegrityCk *pIStack_50;\n  undefined *puStack_4c;\n  char *pcStack_48;\n  StrAccum *pSStack_44;\n  va_list ap;\n  \n  puVar2 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  pCheck_00 = (BtShared *)pCheck;\n  key = (MemPage *)zFormat;\n  pcStack_48 = unaff_s2;\n  local_res8 = in_a2;\n  local_resc = in_a3;\n  if (pCheck->mxErr != 0) {\n    uVar4 = (pCheck->errMsg).nChar;\n    pCheck->mxErr = pCheck->mxErr + -1;\n    in_a2 = &local_res8;\n    unaff_s3 = &pCheck->errMsg;\n    pCheck->nErr = pCheck->nErr + 1;\n    if (uVar4 != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (pCheck->zPfx != (char *)0x0) {\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }\n    pCheck_00 = (BtShared *)unaff_s3;\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    pcStack_48 = zFormat;\n    if ((pCheck->errMsg).accError == '\a') {\n      pCheck->bOomFault = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar2) {\n    return;\n  }\n  puVar8 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  puStack_4c = puVar2;\n  piVar7 = *(int **)(puVar8 + 0xa78d4);\n  iStack_54 = *piVar7;\n  pBt = pCheck_00->pPager;\n  zFormat_00 = key;\n  pIStack_50 = pCheck;\n  pSStack_44 = unaff_s3;\n  iVar3 = ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58);\n  if (iVar3 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }\n  }\n  else {\n    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }\n    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);\n    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);\n    pBt = (Pager *)pCheck_00;\n  }\n  if (iStack_54 != *piVar7) {\n    pcVar9 = *(code **)(puVar8 + 0xa78ac);\n    (*pcVar9)();\n    if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }\n    else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }\n    checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);\n    return;\n  }\n  return;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "undefined *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "u32 uVar4;" type_identifier identifier ;) (declaration "BtShared *pCheck_00;" type_identifier (pointer_declarator "*pCheck_00" * identifier) ;) (declaration "Pager *pBt;" type_identifier (pointer_declarator "*pBt" * identifier) ;) (declaration "MemPage *key;" type_identifier (pointer_declarator "*key" * identifier) ;) (declaration "MemPage *zFormat_00;" type_identifier (pointer_declarator "*zFormat_00" * identifier) ;) (declaration "char *zFormat_01;" primitive_type (pointer_declarator "*zFormat_01" * identifier) ;) (declaration "undefined4 *******in_a2;" type_identifier (pointer_declarator "*******in_a2" * (pointer_declarator "******in_a2" * (pointer_declarator "*****in_a2" * (pointer_declarator "****in_a2" * (pointer_declarator "***in_a2" * (pointer_declarator "**in_a2" * (pointer_declarator "*in_a2" * identifier))))))) ;) (declaration "byte *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "Pgno in_a3;" type_identifier identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "int *piVar7;" primitive_type (pointer_declarator "*piVar7" * identifier) ;) (declaration "char *unaff_s2;" primitive_type (pointer_declarator "*unaff_s2" * identifier) ;) (declaration "StrAccum *unaff_s3;" type_identifier (pointer_declarator "*unaff_s3" * identifier) ;) (declaration "undefined *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "code *pcVar9;" type_identifier (pointer_declarator "*pcVar9" * identifier) ;) (declaration "undefined4 ******local_res8;" type_identifier (pointer_declarator "******local_res8" * (pointer_declarator "*****local_res8" * (pointer_declarator "****local_res8" * (pointer_declarator "***local_res8" * (pointer_declarator "**local_res8" * (pointer_declarator "*local_res8" * identifier)))))) ;) (declaration "Pgno local_resc;" type_identifier identifier ;) (declaration "byte bStack_59;" type_identifier identifier ;) (declaration "Pgno PStack_58;" type_identifier identifier ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "IntegrityCk *pIStack_50;" type_identifier (pointer_declarator "*pIStack_50" * identifier) ;) (declaration "undefined *puStack_4c;" type_identifier (pointer_declarator "*puStack_4c" * identifier) ;) (declaration "char *pcStack_48;" primitive_type (pointer_declarator "*pcStack_48" * identifier) ;) (declaration "StrAccum *pSStack_44;" type_identifier (pointer_declarator "*pSStack_44" * identifier) ;) (declaration "va_list ap;" type_identifier identifier ;) (expression_statement "puVar2 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pCheck_00 = (BtShared *)pCheck;" (assignment_expression "pCheck_00 = (BtShared *)pCheck" identifier = (cast_expression "(BtShared *)pCheck" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "key = (MemPage *)zFormat;" (assignment_expression "key = (MemPage *)zFormat" identifier = (cast_expression "(MemPage *)zFormat" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcStack_48 = unaff_s2;" (assignment_expression "pcStack_48 = unaff_s2" identifier = identifier) ;) (expression_statement "local_res8 = in_a2;" (assignment_expression "local_res8 = in_a2" identifier = identifier) ;) (expression_statement "local_resc = in_a3;" (assignment_expression "local_resc = in_a3" identifier = identifier) ;) (if_statement "if (pCheck->mxErr != 0) {\n    uVar4 = (pCheck->errMsg).nChar;\n    pCheck->mxErr = pCheck->mxErr + -1;\n    in_a2 = &local_res8;\n    unaff_s3 = &pCheck->errMsg;\n    pCheck->nErr = pCheck->nErr + 1;\n    if (uVar4 != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (pCheck->zPfx != (char *)0x0) {\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }\n    pCheck_00 = (BtShared *)unaff_s3;\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    pcStack_48 = zFormat;\n    if ((pCheck->errMsg).accError == '\a') {\n      pCheck->bOomFault = 1;\n    }\n  }" if (parenthesized_expression "(pCheck->mxErr != 0)" ( (binary_expression "pCheck->mxErr != 0" (field_expression "pCheck->mxErr" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n    uVar4 = (pCheck->errMsg).nChar;\n    pCheck->mxErr = pCheck->mxErr + -1;\n    in_a2 = &local_res8;\n    unaff_s3 = &pCheck->errMsg;\n    pCheck->nErr = pCheck->nErr + 1;\n    if (uVar4 != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (pCheck->zPfx != (char *)0x0) {\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }\n    pCheck_00 = (BtShared *)unaff_s3;\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    pcStack_48 = zFormat;\n    if ((pCheck->errMsg).accError == '\a') {\n      pCheck->bOomFault = 1;\n    }\n  }" { (expression_statement "uVar4 = (pCheck->errMsg).nChar;" (assignment_expression "uVar4 = (pCheck->errMsg).nChar" identifier = (field_expression "(pCheck->errMsg).nChar" (parenthesized_expression "(pCheck->errMsg)" ( (field_expression "pCheck->errMsg" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pCheck->mxErr = pCheck->mxErr + -1;" (assignment_expression "pCheck->mxErr = pCheck->mxErr + -1" (field_expression "pCheck->mxErr" identifier -> field_identifier) = (binary_expression "pCheck->mxErr + -1" (field_expression "pCheck->mxErr" identifier -> field_identifier) + number_literal)) ;) (expression_statement "in_a2 = &local_res8;" (assignment_expression "in_a2 = &local_res8" identifier = (pointer_expression "&local_res8" & identifier)) ;) (expression_statement "unaff_s3 = &pCheck->errMsg;" (assignment_expression "unaff_s3 = &pCheck->errMsg" identifier = (pointer_expression "&pCheck->errMsg" & (field_expression "pCheck->errMsg" identifier -> field_identifier))) ;) (expression_statement "pCheck->nErr = pCheck->nErr + 1;" (assignment_expression "pCheck->nErr = pCheck->nErr + 1" (field_expression "pCheck->nErr" identifier -> field_identifier) = (binary_expression "pCheck->nErr + 1" (field_expression "pCheck->nErr" identifier -> field_identifier) + number_literal)) ;) (if_statement "if (uVar4 != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }" if (parenthesized_expression "(uVar4 != 0)" ( (binary_expression "uVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      (*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);\n    }" { (expression_statement "(*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1);" (call_expression "(*(code *)PTR_sqlite3_str_append_000f5548)(unaff_s3,PTR_LAB_000f52cc + 0x7924,1)" (parenthesized_expression "(*(code *)PTR_sqlite3_str_append_000f5548)" ( (pointer_expression "*(code *)PTR_sqlite3_str_append_000f5548" * (cast_expression "(code *)PTR_sqlite3_str_append_000f5548" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,PTR_LAB_000f52cc + 0x7924,1)" ( identifier , (binary_expression "PTR_LAB_000f52cc + 0x7924" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if (pCheck->zPfx != (char *)0x0) {\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }" if (parenthesized_expression "(pCheck->zPfx != (char *)0x0)" ( (binary_expression "pCheck->zPfx != (char *)0x0" (field_expression "pCheck->zPfx" identifier -> field_identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      in_a3 = pCheck->v2;\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);\n    }" { (expression_statement "in_a3 = pCheck->v2;" (assignment_expression "in_a3 = pCheck->v2" identifier = (field_expression "pCheck->v2" identifier -> field_identifier)) ;) (expression_statement "(*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1);" (call_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)(unaff_s3,pCheck->zPfx,pCheck->v1)" (parenthesized_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)" ( (pointer_expression "*(code *)PTR_sqlite3_str_appendf_000f534c" * (cast_expression "(code *)PTR_sqlite3_str_appendf_000f534c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(unaff_s3,pCheck->zPfx,pCheck->v1)" ( identifier , (field_expression "pCheck->zPfx" identifier -> field_identifier) , (field_expression "pCheck->v1" identifier -> field_identifier) ))) ;) })) (expression_statement "pCheck_00 = (BtShared *)unaff_s3;" (assignment_expression "pCheck_00 = (BtShared *)unaff_s3" identifier = (cast_expression "(BtShared *)unaff_s3" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "(*(code *)PTR_sqlite3_str_vappendf_000f5380)();" (call_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)()" (parenthesized_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)" ( (pointer_expression "*(code *)PTR_sqlite3_str_vappendf_000f5380" * (cast_expression "(code *)PTR_sqlite3_str_vappendf_000f5380" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_48 = zFormat;" (assignment_expression "pcStack_48 = zFormat" identifier = identifier) ;) (if_statement "if ((pCheck->errMsg).accError == '\a') {\n      pCheck->bOomFault = 1;\n    }" if (parenthesized_expression "((pCheck->errMsg).accError == '\a')" ( (binary_expression "(pCheck->errMsg).accError == '\a'" (field_expression "(pCheck->errMsg).accError" (parenthesized_expression "(pCheck->errMsg)" ( (field_expression "pCheck->errMsg" identifier -> field_identifier) )) . field_identifier) == (char_literal "'\a'" ' escape_sequence ')) )) (compound_statement "{\n      pCheck->bOomFault = 1;\n    }" { (expression_statement "pCheck->bOomFault = 1;" (assignment_expression "pCheck->bOomFault = 1" (field_expression "pCheck->bOomFault" identifier -> field_identifier) = number_literal) ;) })) })) (if_statement "if (iVar3 == *(int *)puVar2) {\n    return;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar2)" ( (binary_expression "iVar3 == *(int *)puVar2" identifier == (pointer_expression "*(int *)puVar2" * (cast_expression "(int *)puVar2" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "puVar8 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar8 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "puStack_4c = puVar2;" (assignment_expression "puStack_4c = puVar2" identifier = identifier) ;) (expression_statement "piVar7 = *(int **)(puVar8 + 0xa78d4);" (assignment_expression "piVar7 = *(int **)(puVar8 + 0xa78d4)" identifier = (pointer_expression "*(int **)(puVar8 + 0xa78d4)" * (cast_expression "(int **)(puVar8 + 0xa78d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0xa78d4)" ( (binary_expression "puVar8 + 0xa78d4" identifier + number_literal) ))))) ;) (expression_statement "iStack_54 = *piVar7;" (assignment_expression "iStack_54 = *piVar7" identifier = (pointer_expression "*piVar7" * identifier)) ;) (expression_statement "pBt = pCheck_00->pPager;" (assignment_expression "pBt = pCheck_00->pPager" identifier = (field_expression "pCheck_00->pPager" identifier -> field_identifier)) ;) (expression_statement "zFormat_00 = key;" (assignment_expression "zFormat_00 = key" identifier = identifier) ;) (expression_statement "pIStack_50 = pCheck;" (assignment_expression "pIStack_50 = pCheck" identifier = identifier) ;) (expression_statement "pSStack_44 = unaff_s3;" (assignment_expression "pSStack_44 = unaff_s3" identifier = identifier) ;) (expression_statement "iVar3 = ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58);" (assignment_expression "iVar3 = ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58)" identifier = (call_expression "ptrmapGet((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58)" identifier (argument_list "((BtShared *)pBt,(Pgno)key,&bStack_59,&PStack_58)" ( (cast_expression "(BtShared *)pBt" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(Pgno)key" ( (type_descriptor "Pgno" type_identifier) ) identifier) , (pointer_expression "&bStack_59" & identifier) , (pointer_expression "&PStack_58" & identifier) )))) ;) (if_statement "if (iVar3 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }\n  }\n  else {\n    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }\n    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);\n    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);\n    pBt = (Pager *)pCheck_00;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }\n  }" { (if_statement "if (((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)) {\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }" if (parenthesized_expression "(((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58))" ( (binary_expression "((undefined4 *******)(uint)bStack_59 != in_a2) || (in_a3 != PStack_58)" (parenthesized_expression "((undefined4 *******)(uint)bStack_59 != in_a2)" ( (binary_expression "(undefined4 *******)(uint)bStack_59 != in_a2" (cast_expression "(undefined4 *******)(uint)bStack_59" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_59" ( (type_descriptor "uint" type_identifier) ) identifier)) != identifier) )) || (parenthesized_expression "(in_a3 != PStack_58)" ( (binary_expression "in_a3 != PStack_58" identifier != identifier) ))) )) (compound_statement "{\n      zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);\n      checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);\n      pBt = (Pager *)pCheck_00;\n    }" { (expression_statement "zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948);" (assignment_expression "zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948)" identifier = (cast_expression "(MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7948)" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0xa7638) + 0x7948)" ( (binary_expression "*(int *)(puVar8 + 0xa7638) + 0x7948" (pointer_expression "*(int *)(puVar8 + 0xa7638)" * (cast_expression "(int *)(puVar8 + 0xa7638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xa7638)" ( (binary_expression "puVar8 + 0xa7638" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58);" (call_expression "checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58)" identifier (argument_list "((IntegrityCk *)pCheck_00,(char *)zFormat_00,key,in_a2,in_a3,\n                     (undefined4 *******)(uint)bStack_59,PStack_58)" ( (cast_expression "(IntegrityCk *)pCheck_00" ( (type_descriptor "IntegrityCk *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)zFormat_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier , (cast_expression "(undefined4 *******)(uint)bStack_59" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_59" ( (type_descriptor "uint" type_identifier) ) identifier)) , identifier ))) ;) (expression_statement "pBt = (Pager *)pCheck_00;" (assignment_expression "pBt = (Pager *)pCheck_00" identifier = (cast_expression "(Pager *)pCheck_00" ( (type_descriptor "Pager *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) }) (else_clause "else {\n    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }\n    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);\n    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);\n    pBt = (Pager *)pCheck_00;\n  }" else (compound_statement "{\n    if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }\n    zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);\n    checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);\n    pBt = (Pager *)pCheck_00;\n  }" { (if_statement "if ((iVar3 == 7) || (iVar3 == 0xc0a)) {\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }" if (parenthesized_expression "((iVar3 == 7) || (iVar3 == 0xc0a))" ( (binary_expression "(iVar3 == 7) || (iVar3 == 0xc0a)" (parenthesized_expression "(iVar3 == 7)" ( (binary_expression "iVar3 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar3 == 0xc0a)" ( (binary_expression "iVar3 == 0xc0a" identifier == number_literal) ))) )) (compound_statement "{\n      pCheck_00->btsFlags = 0;\n      pCheck_00->maxLocal = 1;\n    }" { (expression_statement "pCheck_00->btsFlags = 0;" (assignment_expression "pCheck_00->btsFlags = 0" (field_expression "pCheck_00->btsFlags" identifier -> field_identifier) = number_literal) ;) (expression_statement "pCheck_00->maxLocal = 1;" (assignment_expression "pCheck_00->maxLocal = 1" (field_expression "pCheck_00->maxLocal" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928);" (assignment_expression "zFormat_00 = (MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928)" identifier = (cast_expression "(MemPage *)(*(int *)(puVar8 + 0xa7638) + 0x7928)" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar8 + 0xa7638) + 0x7928)" ( (binary_expression "*(int *)(puVar8 + 0xa7638) + 0x7928" (pointer_expression "*(int *)(puVar8 + 0xa7638)" * (cast_expression "(int *)(puVar8 + 0xa7638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar8 + 0xa7638)" ( (binary_expression "puVar8 + 0xa7638" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key);" (call_expression "checkAppendMsg((IntegrityCk *)pCheck_00,(char *)zFormat_00,key)" identifier (argument_list "((IntegrityCk *)pCheck_00,(char *)zFormat_00,key)" ( (cast_expression "(IntegrityCk *)pCheck_00" ( (type_descriptor "IntegrityCk *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)zFormat_00" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pBt = (Pager *)pCheck_00;" (assignment_expression "pBt = (Pager *)pCheck_00" identifier = (cast_expression "(Pager *)pCheck_00" ( (type_descriptor "Pager *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (if_statement "if (iStack_54 != *piVar7) {\n    pcVar9 = *(code **)(puVar8 + 0xa78ac);\n    (*pcVar9)();\n    if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }\n    else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }\n    checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);\n    return;\n  }" if (parenthesized_expression "(iStack_54 != *piVar7)" ( (binary_expression "iStack_54 != *piVar7" identifier != (pointer_expression "*piVar7" * identifier)) )) (compound_statement "{\n    pcVar9 = *(code **)(puVar8 + 0xa78ac);\n    (*pcVar9)();\n    if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }\n    else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }\n    checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);\n    return;\n  }" { (expression_statement "pcVar9 = *(code **)(puVar8 + 0xa78ac);" (assignment_expression "pcVar9 = *(code **)(puVar8 + 0xa78ac)" identifier = (pointer_expression "*(code **)(puVar8 + 0xa78ac)" * (cast_expression "(code **)(puVar8 + 0xa78ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar8 + 0xa78ac)" ( (binary_expression "puVar8 + 0xa78ac" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar9)();" (call_expression "(*pcVar9)()" (parenthesized_expression "(*pcVar9)" ( (pointer_expression "*pcVar9" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if ((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)) {\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }\n    else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }" if (parenthesized_expression "((((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0))" ( (binary_expression "(((BtShared *)pBt)->pPage1 < zFormat_00) || (zFormat_00 == (MemPage *)0x0)" (parenthesized_expression "(((BtShared *)pBt)->pPage1 < zFormat_00)" ( (binary_expression "((BtShared *)pBt)->pPage1 < zFormat_00" (field_expression "((BtShared *)pBt)->pPage1" (parenthesized_expression "((BtShared *)pBt)" ( (cast_expression "(BtShared *)pBt" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) < identifier) )) || (parenthesized_expression "(zFormat_00 == (MemPage *)0x0)" ( (binary_expression "zFormat_00 == (MemPage *)0x0" identifier == (cast_expression "(MemPage *)0x0" ( (type_descriptor "MemPage *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);\n    }" { (expression_statement "zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980);" (assignment_expression "zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980)" identifier = (cast_expression "(char *)(*(int *)(pcVar9 + 0xa750c) + 0x7980)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar9 + 0xa750c) + 0x7980)" ( (binary_expression "*(int *)(pcVar9 + 0xa750c) + 0x7980" (pointer_expression "*(int *)(pcVar9 + 0xa750c)" * (cast_expression "(int *)(pcVar9 + 0xa750c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0xa750c)" ( (binary_expression "pcVar9 + 0xa750c" identifier + number_literal) )))) + number_literal) )))) ;) }) (else_clause "else {\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }" else (compound_statement "{\n      pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));\n      bVar1 = *pbVar5;\n      uVar6 = 1 << ((uint)zFormat_00 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }\n      zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);\n    }" { (expression_statement "pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48));" (assignment_expression "pbVar5 = (byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48))" identifier = (cast_expression "(byte *)((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48))" ( (binary_expression "(int)((BtShared *)pBt)->pCursor->aiIdx + (((uint)zFormat_00 >> 3) - 0x48)" (cast_expression "(int)((BtShared *)pBt)->pCursor->aiIdx" ( (type_descriptor "int" primitive_type) ) (field_expression "((BtShared *)pBt)->pCursor->aiIdx" (field_expression "((BtShared *)pBt)->pCursor" (parenthesized_expression "((BtShared *)pBt)" ( (cast_expression "(BtShared *)pBt" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) -> field_identifier)) + (parenthesized_expression "(((uint)zFormat_00 >> 3) - 0x48)" ( (binary_expression "((uint)zFormat_00 >> 3) - 0x48" (parenthesized_expression "((uint)zFormat_00 >> 3)" ( (binary_expression "(uint)zFormat_00 >> 3" (cast_expression "(uint)zFormat_00" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal) )) - number_literal) ))) )))) ;) (expression_statement "bVar1 = *pbVar5;" (assignment_expression "bVar1 = *pbVar5" identifier = (pointer_expression "*pbVar5" * identifier)) ;) (expression_statement "uVar6 = 1 << ((uint)zFormat_00 & 7);" (assignment_expression "uVar6 = 1 << ((uint)zFormat_00 & 7)" identifier = (binary_expression "1 << ((uint)zFormat_00 & 7)" number_literal << (parenthesized_expression "((uint)zFormat_00 & 7)" ( (binary_expression "(uint)zFormat_00 & 7" (cast_expression "(uint)zFormat_00" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (if_statement "if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }" if (parenthesized_expression "((bVar1 & uVar6) == 0)" ( (binary_expression "(bVar1 & uVar6) == 0" (parenthesized_expression "(bVar1 & uVar6)" ( (binary_expression "bVar1 & uVar6" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }\n        *pbVar5 = bVar1 | (byte)uVar6;\n        return;\n      }" { (if_statement "if (*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0) {\n          return;\n        }" if (parenthesized_expression "(*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0)" ( (binary_expression "*(int *)(((BtShared *)pBt)->nRef + 0x110) != 0" (pointer_expression "*(int *)(((BtShared *)pBt)->nRef + 0x110)" * (cast_expression "(int *)(((BtShared *)pBt)->nRef + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((BtShared *)pBt)->nRef + 0x110)" ( (binary_expression "((BtShared *)pBt)->nRef + 0x110" (field_expression "((BtShared *)pBt)->nRef" (parenthesized_expression "((BtShared *)pBt)" ( (cast_expression "(BtShared *)pBt" ( (type_descriptor "BtShared *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )) -> field_identifier) + number_literal) )))) != number_literal) )) (compound_statement "{\n          return;\n        }" { (return_statement "return;" return ;) })) (expression_statement "*pbVar5 = bVar1 | (byte)uVar6;" (assignment_expression "*pbVar5 = bVar1 | (byte)uVar6" (pointer_expression "*pbVar5" * identifier) = (binary_expression "bVar1 | (byte)uVar6" identifier | (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (return_statement "return;" return ;) })) (expression_statement "zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998);" (assignment_expression "zFormat_01 = (char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998)" identifier = (cast_expression "(char *)(*(int *)(pcVar9 + 0xa750c) + 0x7998)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar9 + 0xa750c) + 0x7998)" ( (binary_expression "*(int *)(pcVar9 + 0xa750c) + 0x7998" (pointer_expression "*(int *)(pcVar9 + 0xa750c)" * (cast_expression "(int *)(pcVar9 + 0xa750c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar9 + 0xa750c)" ( (binary_expression "pcVar9 + 0xa750c" identifier + number_literal) )))) + number_literal) )))) ;) }))) (expression_statement "checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00);" (call_expression "checkAppendMsg((IntegrityCk *)pBt,zFormat_01,zFormat_00)" identifier (argument_list "((IntegrityCk *)pBt,zFormat_01,zFormat_00)" ( (cast_expression "(IntegrityCk *)pBt" ( (type_descriptor "IntegrityCk *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "int FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}\n\n" (function_definition "int FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}" primitive_type (function_declarator "FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)" identifier (parameter_list "(int *param_1,uint param_2,undefined4 *******param_3,int param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "undefined4 *******param_3" type_identifier (pointer_declarator "*******param_3" * (pointer_declarator "******param_3" * (pointer_declarator "*****param_3" * (pointer_declarator "****param_3" * (pointer_declarator "***param_3" * (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier)))))))) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "byte *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "int *piVar8;" primitive_type (pointer_declarator "*piVar8" * identifier) ;) (declaration "undefined *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "undefined4 ******local_res8;" type_identifier (pointer_declarator "******local_res8" * (pointer_declarator "*****local_res8" * (pointer_declarator "****local_res8" * (pointer_declarator "***local_res8" * (pointer_declarator "**local_res8" * (pointer_declarator "*local_res8" * identifier)))))) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "byte bStack_59;" type_identifier identifier ;) (declaration "int iStack_58;" primitive_type identifier ;) (expression_statement "puVar9 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000f5568" identifier = identifier) ;) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000f5568" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" * (cast_expression "(int *)PTR___stack_chk_guard_000f5568" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "piVar4 = param_1;" (assignment_expression "piVar4 = param_1" identifier = identifier) ;) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" identifier = identifier) ;) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" identifier = identifier) ;) (if_statement "if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }" if (parenthesized_expression "(param_1[4] != 0)" ( (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }" { (expression_statement "param_1[4] = param_1[4] + -1;" (assignment_expression "param_1[4] = param_1[4] + -1" (subscript_expression "param_1[4]" identifier [ number_literal ]) = (binary_expression "param_1[4] + -1" (subscript_expression "param_1[4]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "param_3 = &local_res8;" (assignment_expression "param_3 = &local_res8" identifier = (pointer_expression "&local_res8" & identifier)) ;) (expression_statement "piVar4 = param_1 + 10;" (assignment_expression "piVar4 = param_1 + 10" identifier = (binary_expression "param_1 + 10" identifier + number_literal)) ;) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) = (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" identifier [ number_literal ]) + number_literal)) ;) (if_statement "if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }" if (parenthesized_expression "(param_1[0xe] != 0)" ( (binary_expression "param_1[0xe] != 0" (subscript_expression "param_1[0xe]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }" { (expression_statement "(*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);" (call_expression "(*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1)" (parenthesized_expression "(*(code *)PTR_sqlite3_str_append_000f5548)" ( (pointer_expression "*(code *)PTR_sqlite3_str_append_000f5548" * (cast_expression "(code *)PTR_sqlite3_str_append_000f5548" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4,PTR_LAB_000f52cc + 0x7924,1)" ( identifier , (binary_expression "PTR_LAB_000f52cc + 0x7924" identifier + number_literal) , number_literal ))) ;) })) (if_statement "if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }" if (parenthesized_expression "(param_1[7] != 0)" ( (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }" { (expression_statement "param_4 = param_1[9];" (assignment_expression "param_4 = param_1[9]" identifier = (subscript_expression "param_1[9]" identifier [ number_literal ])) ;) (expression_statement "(*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);" (call_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8])" (parenthesized_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)" ( (pointer_expression "*(code *)PTR_sqlite3_str_appendf_000f534c" * (cast_expression "(code *)PTR_sqlite3_str_appendf_000f534c" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(piVar4,param_1[7],param_1[8])" ( identifier , (subscript_expression "param_1[7]" identifier [ number_literal ]) , (subscript_expression "param_1[8]" identifier [ number_literal ]) ))) ;) })) (expression_statement "(*(code *)PTR_sqlite3_str_vappendf_000f5380)();" (call_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)()" (parenthesized_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)" ( (pointer_expression "*(code *)PTR_sqlite3_str_vappendf_000f5380" * (cast_expression "(code *)PTR_sqlite3_str_vappendf_000f5380" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (if_statement "if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }" if (parenthesized_expression "(*(char *)(param_1 + 0xf) == '\a')" ( (binary_expression "*(char *)(param_1 + 0xf) == '\a'" (pointer_expression "*(char *)(param_1 + 0xf)" * (cast_expression "(char *)(param_1 + 0xf)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf)" ( (binary_expression "param_1 + 0xf" identifier + number_literal) )))) == (char_literal "'\a'" ' escape_sequence ')) )) (compound_statement "{\n      param_1[6] = 1;\n    }" { (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" identifier [ number_literal ]) = number_literal) ;) })) })) (if_statement "if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }" if (parenthesized_expression "(iVar3 == *(int *)puVar9)" ( (binary_expression "iVar3 == *(int *)puVar9" identifier == (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return *(int *)puVar9;\n  }" { (return_statement "return *(int *)puVar9;" return (pointer_expression "*(int *)puVar9" * (cast_expression "(int *)puVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "puVar9 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar9 = PTR___stack_chk_fail_000f5540" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" * (cast_expression "(code *)PTR___stack_chk_fail_000f5540" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar8 = *(int **)(puVar9 + 0xa78d4);" (assignment_expression "piVar8 = *(int **)(puVar9 + 0xa78d4)" identifier = (pointer_expression "*(int **)(puVar9 + 0xa78d4)" * (cast_expression "(int **)(puVar9 + 0xa78d4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xa78d4)" ( (binary_expression "puVar9 + 0xa78d4" identifier + number_literal) ))))) ;) (expression_statement "iVar3 = *piVar8;" (assignment_expression "iVar3 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (expression_statement "piVar5 = (int *)*piVar4;" (assignment_expression "piVar5 = (int *)*piVar4" identifier = (cast_expression "(int *)*piVar4" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar4" * identifier))) ;) (expression_statement "uVar6 = param_2;" (assignment_expression "uVar6 = param_2" identifier = identifier) ;) (expression_statement "iVar2 = FUN_00044ef0();" (assignment_expression "iVar2 = FUN_00044ef0()" identifier = (call_expression "FUN_00044ef0()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }" { (if_statement "if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }" if (parenthesized_expression "(((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58))" ( (binary_expression "((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)" (parenthesized_expression "((undefined4 *******)(uint)bStack_59 != param_3)" ( (binary_expression "(undefined4 *******)(uint)bStack_59 != param_3" (cast_expression "(undefined4 *******)(uint)bStack_59" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_59" ( (type_descriptor "uint" type_identifier) ) identifier)) != identifier) )) || (parenthesized_expression "(param_4 != iStack_58)" ( (binary_expression "param_4 != iStack_58" identifier != identifier) ))) )) (compound_statement "{\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }" { (expression_statement "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;" (assignment_expression "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948" identifier = (binary_expression "*(int *)(puVar9 + 0xa7638) + 0x7948" (pointer_expression "*(int *)(puVar9 + 0xa7638)" * (cast_expression "(int *)(puVar9 + 0xa7638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xa7638)" ( (binary_expression "puVar9 + 0xa7638" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);" (call_expression "FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58)" identifier (argument_list "(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58)" ( identifier , identifier , identifier , identifier , identifier , (cast_expression "(undefined4 *******)(uint)bStack_59" ( (type_descriptor "undefined4 *******" type_identifier (abstract_pointer_declarator "*******" * (abstract_pointer_declarator "******" * (abstract_pointer_declarator "*****" * (abstract_pointer_declarator "****" * (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))))))) ) (cast_expression "(uint)bStack_59" ( (type_descriptor "uint" type_identifier) ) identifier)) , identifier ))) ;) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" identifier = identifier) ;) })) }) (else_clause "else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" else (compound_statement "{\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" { (if_statement "if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }" if (parenthesized_expression "((iVar2 == 7) || (iVar2 == 0xc0a))" ( (binary_expression "(iVar2 == 7) || (iVar2 == 0xc0a)" (parenthesized_expression "(iVar2 == 7)" ( (binary_expression "iVar2 == 7" identifier == number_literal) )) || (parenthesized_expression "(iVar2 == 0xc0a)" ( (binary_expression "iVar2 == 0xc0a" identifier == number_literal) ))) )) (compound_statement "{\n      piVar4[6] = 1;\n    }" { (expression_statement "piVar4[6] = 1;" (assignment_expression "piVar4[6] = 1" (subscript_expression "piVar4[6]" identifier [ number_literal ]) = number_literal) ;) })) (expression_statement "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;" (assignment_expression "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928" identifier = (binary_expression "*(int *)(puVar9 + 0xa7638) + 0x7928" (pointer_expression "*(int *)(puVar9 + 0xa7638)" * (cast_expression "(int *)(puVar9 + 0xa7638)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 0xa7638)" ( (binary_expression "puVar9 + 0xa7638" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_0004db7c(piVar4,uVar6,param_2);" (call_expression "FUN_0004db7c(piVar4,uVar6,param_2)" identifier (argument_list "(piVar4,uVar6,param_2)" ( identifier , identifier , identifier ))) ;) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" identifier = identifier) ;) }))) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" identifier = (pointer_expression "*piVar8" * identifier)) ;) (if_statement "if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }" if (parenthesized_expression "(iVar3 != iVar2)" ( (binary_expression "iVar3 != iVar2" identifier != identifier) )) (compound_statement "{\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }" { (expression_statement "(**(code **)(puVar9 + 0xa78ac))();" (call_expression "(**(code **)(puVar9 + 0xa78ac))()" (parenthesized_expression "(**(code **)(puVar9 + 0xa78ac))" ( (pointer_expression "**(code **)(puVar9 + 0xa78ac)" * (pointer_expression "*(code **)(puVar9 + 0xa78ac)" * (cast_expression "(code **)(puVar9 + 0xa78ac)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 0xa78ac)" ( (binary_expression "puVar9 + 0xa78ac" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (if_statement "if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }" if (parenthesized_expression "((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0))" ( (binary_expression "(uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)" (parenthesized_expression "(uVar6 <= (uint)piVar5[3])" ( (binary_expression "uVar6 <= (uint)piVar5[3]" identifier <= (cast_expression "(uint)piVar5[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "piVar5[3]" identifier [ number_literal ]))) )) && (parenthesized_expression "(uVar6 != 0)" ( (binary_expression "uVar6 != 0" identifier != number_literal) ))) )) (compound_statement "{\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }" { (expression_statement "pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));" (assignment_expression "pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3))" identifier = (cast_expression "(byte *)(piVar5[2] + (uVar6 >> 3))" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[2] + (uVar6 >> 3))" ( (binary_expression "piVar5[2] + (uVar6 >> 3)" (subscript_expression "piVar5[2]" identifier [ number_literal ]) + (parenthesized_expression "(uVar6 >> 3)" ( (binary_expression "uVar6 >> 3" identifier >> number_literal) ))) )))) ;) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" identifier = (pointer_expression "*pbVar7" * identifier)) ;) (expression_statement "uVar6 = 1 << (uVar6 & 7);" (assignment_expression "uVar6 = 1 << (uVar6 & 7)" identifier = (binary_expression "1 << (uVar6 & 7)" number_literal << (parenthesized_expression "(uVar6 & 7)" ( (binary_expression "uVar6 & 7" identifier & number_literal) )))) ;) (if_statement "if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }" if (parenthesized_expression "((bVar1 & uVar6) == 0)" ( (binary_expression "(bVar1 & uVar6) == 0" (parenthesized_expression "(bVar1 & uVar6)" ( (binary_expression "bVar1 & uVar6" identifier & identifier) )) == number_literal) )) (compound_statement "{\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }" { (if_statement "if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }" if (parenthesized_expression "(*(int *)(piVar5[0x11] + 0x110) != 0)" ( (binary_expression "*(int *)(piVar5[0x11] + 0x110) != 0" (pointer_expression "*(int *)(piVar5[0x11] + 0x110)" * (cast_expression "(int *)(piVar5[0x11] + 0x110)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(piVar5[0x11] + 0x110)" ( (binary_expression "piVar5[0x11] + 0x110" (subscript_expression "piVar5[0x11]" identifier [ number_literal ]) + number_literal) )))) != number_literal) )) (compound_statement "{\n          return 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "*pbVar7 = bVar1 | (byte)uVar6;" (assignment_expression "*pbVar7 = bVar1 | (byte)uVar6" (pointer_expression "*pbVar7" * identifier) = (binary_expression "bVar1 | (byte)uVar6" identifier | (cast_expression "(byte)uVar6" ( (type_descriptor "byte" type_identifier) ) identifier))) ;) (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "FUN_0004db7c();" (call_expression "FUN_0004db7c()" identifier (argument_list "()" ( ))) ;) (return_statement "return 1;" return number_literal ;) })) (return_statement "return iVar2;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))))) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * (pointer_declarator * IDENT)))))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) ))) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) != IDENT) )) || (parenthesized_expression ( (binary_expression IDENT != IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))))))) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (parenthesized_expression ( (binary_expression IDENT >> LIT) ))) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression IDENT & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & IDENT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT | (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (return_statement return LIT ;) })) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (return_statement return LIT ;) })) (return_statement return IDENT ;) })))
(function_definition "int FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)\n\n{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}" (primitive_type "int") (function_declarator "FUN_0004db7c(int *param_1,uint param_2,undefined4 *******param_3,int param_4)" (identifier "FUN_0004db7c") (parameter_list "(int *param_1,uint param_2,undefined4 *******param_3,int param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "undefined4 *******param_3" (type_identifier "undefined4") (pointer_declarator "*******param_3" (* "*") (pointer_declarator "******param_3" (* "*") (pointer_declarator "*****param_3" (* "*") (pointer_declarator "****param_3" (* "*") (pointer_declarator "***param_3" (* "*") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))))))))) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  int iVar3;\n  int *piVar4;\n  int *piVar5;\n  uint uVar6;\n  byte *pbVar7;\n  int *piVar8;\n  undefined *puVar9;\n  undefined4 ******local_res8;\n  int local_resc;\n  byte bStack_59;\n  int iStack_58;\n  \n  puVar9 = PTR___stack_chk_guard_000f5568;\n  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;\n  piVar4 = param_1;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }\n  if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }\n  puVar9 = PTR___stack_chk_fail_000f5540;\n  (*(code *)PTR___stack_chk_fail_000f5540)();\n  piVar8 = *(int **)(puVar9 + 0xa78d4);\n  iVar3 = *piVar8;\n  piVar5 = (int *)*piVar4;\n  uVar6 = param_2;\n  iVar2 = FUN_00044ef0();\n  if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }\n  iVar2 = *piVar8;\n  if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }\n  return iVar2;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "byte *pbVar7;" (type_identifier "byte") (pointer_declarator "*pbVar7" (* "*") (identifier "pbVar7")) (; ";")) (declaration "int *piVar8;" (primitive_type "int") (pointer_declarator "*piVar8" (* "*") (identifier "piVar8")) (; ";")) (declaration "undefined *puVar9;" (type_identifier "undefined") (pointer_declarator "*puVar9" (* "*") (identifier "puVar9")) (; ";")) (declaration "undefined4 ******local_res8;" (type_identifier "undefined4") (pointer_declarator "******local_res8" (* "*") (pointer_declarator "*****local_res8" (* "*") (pointer_declarator "****local_res8" (* "*") (pointer_declarator "***local_res8" (* "*") (pointer_declarator "**local_res8" (* "*") (pointer_declarator "*local_res8" (* "*") (identifier "local_res8"))))))) (; ";")) (declaration "int local_resc;" (primitive_type "int") (identifier "local_resc") (; ";")) (declaration "byte bStack_59;" (type_identifier "byte") (identifier "bStack_59") (; ";")) (declaration "int iStack_58;" (primitive_type "int") (identifier "iStack_58") (; ";")) (expression_statement "puVar9 = PTR___stack_chk_guard_000f5568;" (assignment_expression "puVar9 = PTR___stack_chk_guard_000f5568" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_guard_000f5568")) (; ";")) (expression_statement "iVar3 = *(int *)PTR___stack_chk_guard_000f5568;" (assignment_expression "iVar3 = *(int *)PTR___stack_chk_guard_000f5568" (identifier "iVar3") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000f5568" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000f5568" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000f5568")))) (; ";")) (expression_statement "piVar4 = param_1;" (assignment_expression "piVar4 = param_1" (identifier "piVar4") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_res8 = param_3;" (assignment_expression "local_res8 = param_3" (identifier "local_res8") (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_resc = param_4;" (assignment_expression "local_resc = param_4" (identifier "local_resc") (= "=") (identifier "param_4")) (; ";")) (if_statement "if (param_1[4] != 0) {\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }" (if "if") (parenthesized_expression "(param_1[4] != 0)" (( "(") (binary_expression "param_1[4] != 0" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[4] = param_1[4] + -1;\n    param_3 = &local_res8;\n    piVar4 = param_1 + 10;\n    param_1[5] = param_1[5] + 1;\n    if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }\n    if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }\n    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();\n    if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }\n  }" ({ "{") (expression_statement "param_1[4] = param_1[4] + -1;" (assignment_expression "param_1[4] = param_1[4] + -1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (= "=") (binary_expression "param_1[4] + -1" (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_3 = &local_res8;" (assignment_expression "param_3 = &local_res8" (identifier "param_3") (= "=") (pointer_expression "&local_res8" (& "&") (identifier "local_res8"))) (; ";")) (expression_statement "piVar4 = param_1 + 10;" (assignment_expression "piVar4 = param_1 + 10" (identifier "piVar4") (= "=") (binary_expression "param_1 + 10" (identifier "param_1") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "param_1[5] = param_1[5] + 1;" (assignment_expression "param_1[5] = param_1[5] + 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (= "=") (binary_expression "param_1[5] + 1" (subscript_expression "param_1[5]" (identifier "param_1") ([ "[") (number_literal "5") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_1[0xe] != 0) {\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }" (if "if") (parenthesized_expression "(param_1[0xe] != 0)" (( "(") (binary_expression "param_1[0xe] != 0" (subscript_expression "param_1[0xe]" (identifier "param_1") ([ "[") (number_literal "0xe") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);\n    }" ({ "{") (expression_statement "(*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);" (call_expression "(*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1)" (parenthesized_expression "(*(code *)PTR_sqlite3_str_append_000f5548)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_str_append_000f5548" (* "*") (cast_expression "(code *)PTR_sqlite3_str_append_000f5548" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_str_append_000f5548"))) () ")")) (argument_list "(piVar4,PTR_LAB_000f52cc + 0x7924,1)" (( "(") (identifier "piVar4") (, ",") (binary_expression "PTR_LAB_000f52cc + 0x7924" (identifier "PTR_LAB_000f52cc") (+ "+") (number_literal "0x7924")) (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_1[7] != 0) {\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }" (if "if") (parenthesized_expression "(param_1[7] != 0)" (( "(") (binary_expression "param_1[7] != 0" (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      param_4 = param_1[9];\n      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);\n    }" ({ "{") (expression_statement "param_4 = param_1[9];" (assignment_expression "param_4 = param_1[9]" (identifier "param_4") (= "=") (subscript_expression "param_1[9]" (identifier "param_1") ([ "[") (number_literal "9") (] "]"))) (; ";")) (expression_statement "(*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);" (call_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8])" (parenthesized_expression "(*(code *)PTR_sqlite3_str_appendf_000f534c)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_str_appendf_000f534c" (* "*") (cast_expression "(code *)PTR_sqlite3_str_appendf_000f534c" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_str_appendf_000f534c"))) () ")")) (argument_list "(piVar4,param_1[7],param_1[8])" (( "(") (identifier "piVar4") (, ",") (subscript_expression "param_1[7]" (identifier "param_1") ([ "[") (number_literal "7") (] "]")) (, ",") (subscript_expression "param_1[8]" (identifier "param_1") ([ "[") (number_literal "8") (] "]")) () ")"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_sqlite3_str_vappendf_000f5380)();" (call_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)()" (parenthesized_expression "(*(code *)PTR_sqlite3_str_vappendf_000f5380)" (( "(") (pointer_expression "*(code *)PTR_sqlite3_str_vappendf_000f5380" (* "*") (cast_expression "(code *)PTR_sqlite3_str_vappendf_000f5380" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_sqlite3_str_vappendf_000f5380"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (*(char *)(param_1 + 0xf) == '\a') {\n      param_1[6] = 1;\n    }" (if "if") (parenthesized_expression "(*(char *)(param_1 + 0xf) == '\a')" (( "(") (binary_expression "*(char *)(param_1 + 0xf) == '\a'" (pointer_expression "*(char *)(param_1 + 0xf)" (* "*") (cast_expression "(char *)(param_1 + 0xf)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf)" (( "(") (binary_expression "param_1 + 0xf" (identifier "param_1") (+ "+") (number_literal "0xf")) () ")")))) (== "==") (char_literal "'\a'" (' "'") (escape_sequence "\a") (' "'"))) () ")")) (compound_statement "{\n      param_1[6] = 1;\n    }" ({ "{") (expression_statement "param_1[6] = 1;" (assignment_expression "param_1[6] = 1" (subscript_expression "param_1[6]" (identifier "param_1") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (} "}"))) (if_statement "if (iVar3 == *(int *)puVar9) {\n    return *(int *)puVar9;\n  }" (if "if") (parenthesized_expression "(iVar3 == *(int *)puVar9)" (( "(") (binary_expression "iVar3 == *(int *)puVar9" (identifier "iVar3") (== "==") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9")))) () ")")) (compound_statement "{\n    return *(int *)puVar9;\n  }" ({ "{") (return_statement "return *(int *)puVar9;" (return "return") (pointer_expression "*(int *)puVar9" (* "*") (cast_expression "(int *)puVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar9"))) (; ";")) (} "}"))) (expression_statement "puVar9 = PTR___stack_chk_fail_000f5540;" (assignment_expression "puVar9 = PTR___stack_chk_fail_000f5540" (identifier "puVar9") (= "=") (identifier "PTR___stack_chk_fail_000f5540")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000f5540)();" (call_expression "(*(code *)PTR___stack_chk_fail_000f5540)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000f5540)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000f5540" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000f5540" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000f5540"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar8 = *(int **)(puVar9 + 0xa78d4);" (assignment_expression "piVar8 = *(int **)(puVar9 + 0xa78d4)" (identifier "piVar8") (= "=") (pointer_expression "*(int **)(puVar9 + 0xa78d4)" (* "*") (cast_expression "(int **)(puVar9 + 0xa78d4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xa78d4)" (( "(") (binary_expression "puVar9 + 0xa78d4" (identifier "puVar9") (+ "+") (number_literal "0xa78d4")) () ")"))))) (; ";")) (expression_statement "iVar3 = *piVar8;" (assignment_expression "iVar3 = *piVar8" (identifier "iVar3") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (expression_statement "piVar5 = (int *)*piVar4;" (assignment_expression "piVar5 = (int *)*piVar4" (identifier "piVar5") (= "=") (cast_expression "(int *)*piVar4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar4" (* "*") (identifier "piVar4")))) (; ";")) (expression_statement "uVar6 = param_2;" (assignment_expression "uVar6 = param_2" (identifier "uVar6") (= "=") (identifier "param_2")) (; ";")) (expression_statement "iVar2 = FUN_00044ef0();" (assignment_expression "iVar2 = FUN_00044ef0()" (identifier "iVar2") (= "=") (call_expression "FUN_00044ef0()" (identifier "FUN_00044ef0") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }\n  else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }\n  }" ({ "{") (if_statement "if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }" (if "if") (parenthesized_expression "(((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58))" (( "(") (binary_expression "((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)" (parenthesized_expression "((undefined4 *******)(uint)bStack_59 != param_3)" (( "(") (binary_expression "(undefined4 *******)(uint)bStack_59 != param_3" (cast_expression "(undefined4 *******)(uint)bStack_59" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (cast_expression "(uint)bStack_59" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_59"))) (!= "!=") (identifier "param_3")) () ")")) (|| "||") (parenthesized_expression "(param_4 != iStack_58)" (( "(") (binary_expression "param_4 != iStack_58" (identifier "param_4") (!= "!=") (identifier "iStack_58")) () ")"))) () ")")) (compound_statement "{\n      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;\n      FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);\n      piVar5 = piVar4;\n    }" ({ "{") (expression_statement "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;" (assignment_expression "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948" (identifier "uVar6") (= "=") (binary_expression "*(int *)(puVar9 + 0xa7638) + 0x7948" (pointer_expression "*(int *)(puVar9 + 0xa7638)" (* "*") (cast_expression "(int *)(puVar9 + 0xa7638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xa7638)" (( "(") (binary_expression "puVar9 + 0xa7638" (identifier "puVar9") (+ "+") (number_literal "0xa7638")) () ")")))) (+ "+") (number_literal "0x7948"))) (; ";")) (expression_statement "FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58);" (call_expression "FUN_0004db7c(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58)" (identifier "FUN_0004db7c") (argument_list "(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,\n                   iStack_58)" (( "(") (identifier "piVar4") (, ",") (identifier "uVar6") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (cast_expression "(undefined4 *******)(uint)bStack_59" (( "(") (type_descriptor "undefined4 *******" (type_identifier "undefined4") (abstract_pointer_declarator "*******" (* "*") (abstract_pointer_declarator "******" (* "*") (abstract_pointer_declarator "*****" (* "*") (abstract_pointer_declarator "****" (* "*") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))))))) () ")") (cast_expression "(uint)bStack_59" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bStack_59"))) (, ",") (identifier "iStack_58") () ")"))) (; ";")) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" (identifier "piVar5") (= "=") (identifier "piVar4")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" (else "else") (compound_statement "{\n    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }\n    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;\n    FUN_0004db7c(piVar4,uVar6,param_2);\n    piVar5 = piVar4;\n  }" ({ "{") (if_statement "if ((iVar2 == 7) || (iVar2 == 0xc0a)) {\n      piVar4[6] = 1;\n    }" (if "if") (parenthesized_expression "((iVar2 == 7) || (iVar2 == 0xc0a))" (( "(") (binary_expression "(iVar2 == 7) || (iVar2 == 0xc0a)" (parenthesized_expression "(iVar2 == 7)" (( "(") (binary_expression "iVar2 == 7" (identifier "iVar2") (== "==") (number_literal "7")) () ")")) (|| "||") (parenthesized_expression "(iVar2 == 0xc0a)" (( "(") (binary_expression "iVar2 == 0xc0a" (identifier "iVar2") (== "==") (number_literal "0xc0a")) () ")"))) () ")")) (compound_statement "{\n      piVar4[6] = 1;\n    }" ({ "{") (expression_statement "piVar4[6] = 1;" (assignment_expression "piVar4[6] = 1" (subscript_expression "piVar4[6]" (identifier "piVar4") ([ "[") (number_literal "6") (] "]")) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;" (assignment_expression "uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928" (identifier "uVar6") (= "=") (binary_expression "*(int *)(puVar9 + 0xa7638) + 0x7928" (pointer_expression "*(int *)(puVar9 + 0xa7638)" (* "*") (cast_expression "(int *)(puVar9 + 0xa7638)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar9 + 0xa7638)" (( "(") (binary_expression "puVar9 + 0xa7638" (identifier "puVar9") (+ "+") (number_literal "0xa7638")) () ")")))) (+ "+") (number_literal "0x7928"))) (; ";")) (expression_statement "FUN_0004db7c(piVar4,uVar6,param_2);" (call_expression "FUN_0004db7c(piVar4,uVar6,param_2)" (identifier "FUN_0004db7c") (argument_list "(piVar4,uVar6,param_2)" (( "(") (identifier "piVar4") (, ",") (identifier "uVar6") (, ",") (identifier "param_2") () ")"))) (; ";")) (expression_statement "piVar5 = piVar4;" (assignment_expression "piVar5 = piVar4" (identifier "piVar5") (= "=") (identifier "piVar4")) (; ";")) (} "}")))) (expression_statement "iVar2 = *piVar8;" (assignment_expression "iVar2 = *piVar8" (identifier "iVar2") (= "=") (pointer_expression "*piVar8" (* "*") (identifier "piVar8"))) (; ";")) (if_statement "if (iVar3 != iVar2) {\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }" (if "if") (parenthesized_expression "(iVar3 != iVar2)" (( "(") (binary_expression "iVar3 != iVar2" (identifier "iVar3") (!= "!=") (identifier "iVar2")) () ")")) (compound_statement "{\n    (**(code **)(puVar9 + 0xa78ac))();\n    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }\n    FUN_0004db7c();\n    return 1;\n  }" ({ "{") (expression_statement "(**(code **)(puVar9 + 0xa78ac))();" (call_expression "(**(code **)(puVar9 + 0xa78ac))()" (parenthesized_expression "(**(code **)(puVar9 + 0xa78ac))" (( "(") (pointer_expression "**(code **)(puVar9 + 0xa78ac)" (* "*") (pointer_expression "*(code **)(puVar9 + 0xa78ac)" (* "*") (cast_expression "(code **)(puVar9 + 0xa78ac)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar9 + 0xa78ac)" (( "(") (binary_expression "puVar9 + 0xa78ac" (identifier "puVar9") (+ "+") (number_literal "0xa78ac")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0))" (( "(") (binary_expression "(uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)" (parenthesized_expression "(uVar6 <= (uint)piVar5[3])" (( "(") (binary_expression "uVar6 <= (uint)piVar5[3]" (identifier "uVar6") (<= "<=") (cast_expression "(uint)piVar5[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "piVar5[3]" (identifier "piVar5") ([ "[") (number_literal "3") (] "]")))) () ")")) (&& "&&") (parenthesized_expression "(uVar6 != 0)" (( "(") (binary_expression "uVar6 != 0" (identifier "uVar6") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));\n      bVar1 = *pbVar7;\n      uVar6 = 1 << (uVar6 & 7);\n      if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }\n    }" ({ "{") (expression_statement "pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));" (assignment_expression "pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3))" (identifier "pbVar7") (= "=") (cast_expression "(byte *)(piVar5[2] + (uVar6 >> 3))" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5[2] + (uVar6 >> 3))" (( "(") (binary_expression "piVar5[2] + (uVar6 >> 3)" (subscript_expression "piVar5[2]" (identifier "piVar5") ([ "[") (number_literal "2") (] "]")) (+ "+") (parenthesized_expression "(uVar6 >> 3)" (( "(") (binary_expression "uVar6 >> 3" (identifier "uVar6") (>> ">>") (number_literal "3")) () ")"))) () ")")))) (; ";")) (expression_statement "bVar1 = *pbVar7;" (assignment_expression "bVar1 = *pbVar7" (identifier "bVar1") (= "=") (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7"))) (; ";")) (expression_statement "uVar6 = 1 << (uVar6 & 7);" (assignment_expression "uVar6 = 1 << (uVar6 & 7)" (identifier "uVar6") (= "=") (binary_expression "1 << (uVar6 & 7)" (number_literal "1") (<< "<<") (parenthesized_expression "(uVar6 & 7)" (( "(") (binary_expression "uVar6 & 7" (identifier "uVar6") (& "&") (number_literal "7")) () ")")))) (; ";")) (if_statement "if ((bVar1 & uVar6) == 0) {\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }" (if "if") (parenthesized_expression "((bVar1 & uVar6) == 0)" (( "(") (binary_expression "(bVar1 & uVar6) == 0" (parenthesized_expression "(bVar1 & uVar6)" (( "(") (binary_expression "bVar1 & uVar6" (identifier "bVar1") (& "&") (identifier "uVar6")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }\n        *pbVar7 = bVar1 | (byte)uVar6;\n        return 0;\n      }" ({ "{") (if_statement "if (*(int *)(piVar5[0x11] + 0x110) != 0) {\n          return 1;\n        }" (if "if") (parenthesized_expression "(*(int *)(piVar5[0x11] + 0x110) != 0)" (( "(") (binary_expression "*(int *)(piVar5[0x11] + 0x110) != 0" (pointer_expression "*(int *)(piVar5[0x11] + 0x110)" (* "*") (cast_expression "(int *)(piVar5[0x11] + 0x110)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(piVar5[0x11] + 0x110)" (( "(") (binary_expression "piVar5[0x11] + 0x110" (subscript_expression "piVar5[0x11]" (identifier "piVar5") ([ "[") (number_literal "0x11") (] "]")) (+ "+") (number_literal "0x110")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          return 1;\n        }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "*pbVar7 = bVar1 | (byte)uVar6;" (assignment_expression "*pbVar7 = bVar1 | (byte)uVar6" (pointer_expression "*pbVar7" (* "*") (identifier "pbVar7")) (= "=") (binary_expression "bVar1 | (byte)uVar6" (identifier "bVar1") (| "|") (cast_expression "(byte)uVar6" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar6")))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "FUN_0004db7c();" (call_expression "FUN_0004db7c()" (identifier "FUN_0004db7c") (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (return_statement "return iVar2;" (return "return") (identifier "iVar2") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier))))))))) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))))))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (char_literal (escape_sequence)))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (identifier) (identifier) (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))))))) value: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier))))) (return_statement (number_literal)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (return_statement (number_literal)))) (return_statement (identifier)))))

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

{
  byte bVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  int *piVar5;
  uint uVar6;
  byte *pbVar7;
  int *piVar8;
  undefined *puVar9;
  undefined4 ******local_res8;
  int local_resc;
  byte bStack_59;
  int iStack_58;
  
  puVar9 = PTR___stack_chk_guard_000f5568;
  iVar3 = *(int *)PTR___stack_chk_guard_000f5568;
  piVar4 = param_1;
  local_res8 = param_3;
  local_resc = param_4;
  if (param_1[4] != 0) {
    param_1[4] = param_1[4] + -1;
    param_3 = &local_res8;
    piVar4 = param_1 + 10;
    param_1[5] = param_1[5] + 1;
    if (param_1[0xe] != 0) {
      (*(code *)PTR_sqlite3_str_append_000f5548)(piVar4,PTR_LAB_000f52cc + 0x7924,1);
    }
    if (param_1[7] != 0) {
      param_4 = param_1[9];
      (*(code *)PTR_sqlite3_str_appendf_000f534c)(piVar4,param_1[7],param_1[8]);
    }
    (*(code *)PTR_sqlite3_str_vappendf_000f5380)();
    if (*(char *)(param_1 + 0xf) == '\a') {
      param_1[6] = 1;
    }
  }
  if (iVar3 == *(int *)puVar9) {
    return *(int *)puVar9;
  }
  puVar9 = PTR___stack_chk_fail_000f5540;
  (*(code *)PTR___stack_chk_fail_000f5540)();
  piVar8 = *(int **)(puVar9 + 0xa78d4);
  iVar3 = *piVar8;
  piVar5 = (int *)*piVar4;
  uVar6 = param_2;
  iVar2 = FUN_00044ef0();
  if (iVar2 == 0) {
    if (((undefined4 *******)(uint)bStack_59 != param_3) || (param_4 != iStack_58)) {
      uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7948;
      MASKED(piVar4,uVar6,param_2,param_3,param_4,(undefined4 *******)(uint)bStack_59,
                   iStack_58);
      piVar5 = piVar4;
    }
  }
  else {
    if ((iVar2 == 7) || (iVar2 == 0xc0a)) {
      piVar4[6] = 1;
    }
    uVar6 = *(int *)(puVar9 + 0xa7638) + 0x7928;
    MASKED(piVar4,uVar6,param_2);
    piVar5 = piVar4;
  }
  iVar2 = *piVar8;
  if (iVar3 != iVar2) {
    (**(code **)(puVar9 + 0xa78ac))();
    if ((uVar6 <= (uint)piVar5[3]) && (uVar6 != 0)) {
      pbVar7 = (byte *)(piVar5[2] + (uVar6 >> 3));
      bVar1 = *pbVar7;
      uVar6 = 1 << (uVar6 & 7);
      if ((bVar1 & uVar6) == 0) {
        if (*(int *)(piVar5[0x11] + 0x110) != 0) {
          return 1;
        }
        *pbVar7 = bVar1 | (byte)uVar6;
        return 0;
      }
    }
    MASKED();
    return 1;
  }
  return iVar2;
}

