
int sqlite3ExprCheckIN(Parse *pParse,Expr *pIn)

{
  u8 uVar1;
  uint uVar2;
  int iVar3;
  Expr *pEVar4;
  
  pEVar4 = pIn->pLeft;
  uVar1 = pEVar4->op;
  if (uVar1 == 0xa4) {
    uVar1 = pEVar4->op2;
  }
  uVar2 = pIn->flags & 0x800;
  if (uVar1 == 0xa5) {
    iVar3 = ((pEVar4->x).pList)->nExpr;
  }
  else {
    if (uVar1 != '\x7f') {
      if (uVar2 == 0) {
        return 0;
      }
      iVar3 = 1;
      goto LAB_00095b04;
    }
    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;
  }
  if (uVar2 == 0) {
    if (iVar3 == 1) {
      return 0;
    }
    sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);
    return 1;
  }
LAB_00095b04:
  if (((pIn->x).pSelect)->pEList->nExpr == iVar3) {
    return 0;
  }
  sqlite3ErrorMsg(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);
  return 1;
}



undefined4 FUN_00095aac(undefined4 param_1,int param_2)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  char *pcVar4;
  
  pcVar4 = *(char **)(param_2 + 0xc);
  cVar1 = *pcVar4;
  if (cVar1 == -0x5c) {
    cVar1 = pcVar4[0x28];
  }
  uVar2 = *(uint *)(param_2 + 4) & 0x800;
  if (cVar1 == -0x5b) {
    iVar3 = **(int **)(pcVar4 + 0x14);
  }
  else {
    if (cVar1 != '\x7f') {
      if (uVar2 == 0) {
        return 0;
      }
      iVar3 = 1;
      goto LAB_00095b04;
    }
    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);
  }
  if (uVar2 == 0) {
    if (iVar3 == 1) {
      return 0;
    }
    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);
    return 1;
  }
LAB_00095b04:
  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {
    return 0;
  }
  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);
  return 1;
}


lui gp,0x10
addiu gp,gp,0x2e74
addu gp,gp,t9
addiu sp,sp,-0x20
li v1,0xa4
sw gp,0x10(sp)
sw ra,0x1c(sp)
lw t0,0xc(a1)
lbu v0,0x0(t0)
bne v0,v1,0x00095adc
_nop
lbu v0,0x28(t0)
lw v1,0x4(a1)
li a2,0xa5
beq v0,a2,0x00095b64
_andi v1,v1,0x800
li a2,0x7f
beq v0,a2,0x00095b28
_nop
beq v1,zero,0x00095b1c
_lw ra,0x1c(sp)
li a3,0x1
lw v0,0x14(a1)
lw v0,0x0(v0)
lw a2,0x0(v0)
bne a2,a3,0x00095b70
_lw a1,-0x7fc4(gp)
lw ra,0x1c(sp)
or v0,zero,zero
jr ra
_addiu sp,sp,0x20
lw v0,0x14(t0)
lw v0,0x0(v0)
lw a3,0x0(v0)
bne v1,zero,0x00095b04
_li v0,0x1
beq a3,v0,0x00095b18
_lw t9,-0x7d44(gp)
addiu a2,t0,0x14
addiu t9,t9,0x5310
bal 0x00095310
_lw a1,0x4(t0)
li v0,0x1
lw ra,0x1c(sp)
jr ra
_addiu sp,sp,0x20
lw v0,0x14(t0)
b 0x00095b34
_lw a3,0x0(v0)
lw t9,-0x7d44(gp)
addiu t9,t9,0x5160
bal 0x00095160
_addiu a1,a1,-0x5af4
li v0,0x1
lw ra,0x1c(sp)
jr ra
_addiu sp,sp,0x20
(translation_unit "undefined4 FUN_00095aac(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00095aac(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" type_identifier (function_declarator "FUN_00095aac(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar4 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar4 = *(char **)(param_2 + 0xc)" identifier = (pointer_expression "*(char **)(param_2 + 0xc)" * (cast_expression "(char **)(param_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (if_statement "if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }" if (parenthesized_expression "(cVar1 == -0x5c)" ( (binary_expression "cVar1 == -0x5c" identifier == number_literal) )) (compound_statement "{\n    cVar1 = pcVar4[0x28];\n  }" { (expression_statement "cVar1 = pcVar4[0x28];" (assignment_expression "cVar1 = pcVar4[0x28]" identifier = (subscript_expression "pcVar4[0x28]" identifier [ number_literal ])) ;) })) (expression_statement "uVar2 = *(uint *)(param_2 + 4) & 0x800;" (assignment_expression "uVar2 = *(uint *)(param_2 + 4) & 0x800" identifier = (binary_expression "*(uint *)(param_2 + 4) & 0x800" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" if (parenthesized_expression "(cVar1 == -0x5b)" ( (binary_expression "cVar1 == -0x5b" identifier == number_literal) )) (compound_statement "{\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }" { (expression_statement "iVar3 = **(int **)(pcVar4 + 0x14);" (assignment_expression "iVar3 = **(int **)(pcVar4 + 0x14)" identifier = (pointer_expression "**(int **)(pcVar4 + 0x14)" * (pointer_expression "*(int **)(pcVar4 + 0x14)" * (cast_expression "(int **)(pcVar4 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x14)" ( (binary_expression "pcVar4 + 0x14" identifier + number_literal) )))))) ;) }) (else_clause "else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" else (compound_statement "{\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" { (if_statement "if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" if (parenthesized_expression "(cVar1 != '\x7f')" ( (binary_expression "cVar1 != '\x7f'" identifier != (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" { (if_statement "if (uVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00095b04;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);" (assignment_expression "iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14)" identifier = (pointer_expression "*(int *)**(undefined4 **)(pcVar4 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(pcVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar4 + 0x14)" * (pointer_expression "*(undefined4 **)(pcVar4 + 0x14)" * (cast_expression "(undefined4 **)(pcVar4 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x14)" ( (binary_expression "pcVar4 + 0x14" identifier + number_literal) )))))))) ;) }))) (if_statement "if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }" { (if_statement "if (iVar3 == 1) {\n      return 0;\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);" (call_expression "FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14)" identifier (argument_list "(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar4 + 4)" * (cast_expression "(undefined4 *)(pcVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 4)" ( (binary_expression "pcVar4 + 4" identifier + number_literal) )))) , (binary_expression "pcVar4 + 0x14" identifier + number_literal) ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }" statement_identifier : (if_statement "if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }" if (parenthesized_expression "(*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3)" ( (binary_expression "*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3" (pointer_expression "*(int *)**(undefined4 **)(param_2 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(param_2 + 0x14)" * (pointer_expression "*(undefined4 **)(param_2 + 0x14)" * (cast_expression "(undefined4 **)(param_2 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))))) == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);" (call_expression "FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" identifier (argument_list "(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4" identifier + number_literal) ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "int sqlite3ExprCheckIN(Parse *pParse,Expr *pIn)\n\n{\n  u8 uVar1;\n  uint uVar2;\n  int iVar3;\n  Expr *pEVar4;\n  \n  pEVar4 = pIn->pLeft;\n  uVar1 = pEVar4->op;\n  if (uVar1 == 0xa4) {\n    uVar1 = pEVar4->op2;\n  }\n  uVar2 = pIn->flags & 0x800;\n  if (uVar1 == 0xa5) {\n    iVar3 = ((pEVar4->x).pList)->nExpr;\n  }\n  else {\n    if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);\n    return 1;\n  }\nLAB_00095b04:\n  if (((pIn->x).pSelect)->pEList->nExpr == iVar3) {\n    return 0;\n  }\n  sqlite3ErrorMsg(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}\n\n" (function_definition "int sqlite3ExprCheckIN(Parse *pParse,Expr *pIn)\n\n{\n  u8 uVar1;\n  uint uVar2;\n  int iVar3;\n  Expr *pEVar4;\n  \n  pEVar4 = pIn->pLeft;\n  uVar1 = pEVar4->op;\n  if (uVar1 == 0xa4) {\n    uVar1 = pEVar4->op2;\n  }\n  uVar2 = pIn->flags & 0x800;\n  if (uVar1 == 0xa5) {\n    iVar3 = ((pEVar4->x).pList)->nExpr;\n  }\n  else {\n    if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);\n    return 1;\n  }\nLAB_00095b04:\n  if (((pIn->x).pSelect)->pEList->nExpr == iVar3) {\n    return 0;\n  }\n  sqlite3ErrorMsg(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" primitive_type (function_declarator "sqlite3ExprCheckIN(Parse *pParse,Expr *pIn)" identifier (parameter_list "(Parse *pParse,Expr *pIn)" ( (parameter_declaration "Parse *pParse" type_identifier (pointer_declarator "*pParse" * identifier)) , (parameter_declaration "Expr *pIn" type_identifier (pointer_declarator "*pIn" * identifier)) ))) (compound_statement "{\n  u8 uVar1;\n  uint uVar2;\n  int iVar3;\n  Expr *pEVar4;\n  \n  pEVar4 = pIn->pLeft;\n  uVar1 = pEVar4->op;\n  if (uVar1 == 0xa4) {\n    uVar1 = pEVar4->op2;\n  }\n  uVar2 = pIn->flags & 0x800;\n  if (uVar1 == 0xa5) {\n    iVar3 = ((pEVar4->x).pList)->nExpr;\n  }\n  else {\n    if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);\n    return 1;\n  }\nLAB_00095b04:\n  if (((pIn->x).pSelect)->pEList->nExpr == iVar3) {\n    return 0;\n  }\n  sqlite3ErrorMsg(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" { (declaration "u8 uVar1;" type_identifier identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "Expr *pEVar4;" type_identifier (pointer_declarator "*pEVar4" * identifier) ;) (expression_statement "pEVar4 = pIn->pLeft;" (assignment_expression "pEVar4 = pIn->pLeft" identifier = (field_expression "pIn->pLeft" identifier -> field_identifier)) ;) (expression_statement "uVar1 = pEVar4->op;" (assignment_expression "uVar1 = pEVar4->op" identifier = (field_expression "pEVar4->op" identifier -> field_identifier)) ;) (if_statement "if (uVar1 == 0xa4) {\n    uVar1 = pEVar4->op2;\n  }" if (parenthesized_expression "(uVar1 == 0xa4)" ( (binary_expression "uVar1 == 0xa4" identifier == number_literal) )) (compound_statement "{\n    uVar1 = pEVar4->op2;\n  }" { (expression_statement "uVar1 = pEVar4->op2;" (assignment_expression "uVar1 = pEVar4->op2" identifier = (field_expression "pEVar4->op2" identifier -> field_identifier)) ;) })) (expression_statement "uVar2 = pIn->flags & 0x800;" (assignment_expression "uVar2 = pIn->flags & 0x800" identifier = (binary_expression "pIn->flags & 0x800" (field_expression "pIn->flags" identifier -> field_identifier) & number_literal)) ;) (if_statement "if (uVar1 == 0xa5) {\n    iVar3 = ((pEVar4->x).pList)->nExpr;\n  }\n  else {\n    if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;\n  }" if (parenthesized_expression "(uVar1 == 0xa5)" ( (binary_expression "uVar1 == 0xa5" identifier == number_literal) )) (compound_statement "{\n    iVar3 = ((pEVar4->x).pList)->nExpr;\n  }" { (expression_statement "iVar3 = ((pEVar4->x).pList)->nExpr;" (assignment_expression "iVar3 = ((pEVar4->x).pList)->nExpr" identifier = (field_expression "((pEVar4->x).pList)->nExpr" (parenthesized_expression "((pEVar4->x).pList)" ( (field_expression "(pEVar4->x).pList" (parenthesized_expression "(pEVar4->x)" ( (field_expression "pEVar4->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier)) ;) }) (else_clause "else {\n    if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;\n  }" else (compound_statement "{\n    if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;\n  }" { (if_statement "if (uVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" if (parenthesized_expression "(uVar1 != '\x7f')" ( (binary_expression "uVar1 != '\x7f'" identifier != (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" { (if_statement "if (uVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00095b04;" goto statement_identifier ;) })) (expression_statement "iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr;" (assignment_expression "iVar3 = ((pEVar4->x).pSelect)->pEList->nExpr" identifier = (field_expression "((pEVar4->x).pSelect)->pEList->nExpr" (field_expression "((pEVar4->x).pSelect)->pEList" (parenthesized_expression "((pEVar4->x).pSelect)" ( (field_expression "(pEVar4->x).pSelect" (parenthesized_expression "(pEVar4->x)" ( (field_expression "pEVar4->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier)) ;) }))) (if_statement "if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);\n    return 1;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (iVar3 == 1) {\n      return 0;\n    }\n    sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);\n    return 1;\n  }" { (if_statement "if (iVar3 == 1) {\n      return 0;\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x);" (call_expression "sqlite3VectorErrorMsg(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x)" identifier (argument_list "(pParse,(Expr *)pEVar4->flags,(Expr *)&pEVar4->x)" ( identifier , (cast_expression "(Expr *)pEVar4->flags" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "pEVar4->flags" identifier -> field_identifier)) , (cast_expression "(Expr *)&pEVar4->x" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&pEVar4->x" & (field_expression "pEVar4->x" identifier -> field_identifier))) ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00095b04:\n  if (((pIn->x).pSelect)->pEList->nExpr == iVar3) {\n    return 0;\n  }" statement_identifier : (if_statement "if (((pIn->x).pSelect)->pEList->nExpr == iVar3) {\n    return 0;\n  }" if (parenthesized_expression "(((pIn->x).pSelect)->pEList->nExpr == iVar3)" ( (binary_expression "((pIn->x).pSelect)->pEList->nExpr == iVar3" (field_expression "((pIn->x).pSelect)->pEList->nExpr" (field_expression "((pIn->x).pSelect)->pEList" (parenthesized_expression "((pIn->x).pSelect)" ( (field_expression "(pIn->x).pSelect" (parenthesized_expression "(pIn->x)" ( (field_expression "pIn->x" identifier -> field_identifier) )) . field_identifier) )) -> field_identifier) -> field_identifier) == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "sqlite3ErrorMsg(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);" (call_expression "sqlite3ErrorMsg(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" identifier (argument_list "(pParse,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4" identifier + number_literal) ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "undefined4 FUN_00095aac(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}\n\n" (function_definition "undefined4 FUN_00095aac(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" type_identifier (function_declarator "FUN_00095aac(undefined4 param_1,int param_2)" identifier (parameter_list "(undefined4 param_1,int param_2)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) ))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "char *pcVar4;" primitive_type (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "pcVar4 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar4 = *(char **)(param_2 + 0xc)" identifier = (pointer_expression "*(char **)(param_2 + 0xc)" * (cast_expression "(char **)(param_2 + 0xc)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0xc)" ( (binary_expression "param_2 + 0xc" identifier + number_literal) ))))) ;) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" identifier = (pointer_expression "*pcVar4" * identifier)) ;) (if_statement "if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }" if (parenthesized_expression "(cVar1 == -0x5c)" ( (binary_expression "cVar1 == -0x5c" identifier == number_literal) )) (compound_statement "{\n    cVar1 = pcVar4[0x28];\n  }" { (expression_statement "cVar1 = pcVar4[0x28];" (assignment_expression "cVar1 = pcVar4[0x28]" identifier = (subscript_expression "pcVar4[0x28]" identifier [ number_literal ])) ;) })) (expression_statement "uVar2 = *(uint *)(param_2 + 4) & 0x800;" (assignment_expression "uVar2 = *(uint *)(param_2 + 4) & 0x800" identifier = (binary_expression "*(uint *)(param_2 + 4) & 0x800" (pointer_expression "*(uint *)(param_2 + 4)" * (cast_expression "(uint *)(param_2 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) )))) & number_literal)) ;) (if_statement "if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" if (parenthesized_expression "(cVar1 == -0x5b)" ( (binary_expression "cVar1 == -0x5b" identifier == number_literal) )) (compound_statement "{\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }" { (expression_statement "iVar3 = **(int **)(pcVar4 + 0x14);" (assignment_expression "iVar3 = **(int **)(pcVar4 + 0x14)" identifier = (pointer_expression "**(int **)(pcVar4 + 0x14)" * (pointer_expression "*(int **)(pcVar4 + 0x14)" * (cast_expression "(int **)(pcVar4 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x14)" ( (binary_expression "pcVar4 + 0x14" identifier + number_literal) )))))) ;) }) (else_clause "else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" else (compound_statement "{\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" { (if_statement "if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" if (parenthesized_expression "(cVar1 != '\x7f')" ( (binary_expression "cVar1 != '\x7f'" identifier != (char_literal "'\x7f'" ' escape_sequence ')) )) (compound_statement "{\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" { (if_statement "if (uVar2 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00095b04;" goto statement_identifier ;) })) (expression_statement "iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);" (assignment_expression "iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14)" identifier = (pointer_expression "*(int *)**(undefined4 **)(pcVar4 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(pcVar4 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(pcVar4 + 0x14)" * (pointer_expression "*(undefined4 **)(pcVar4 + 0x14)" * (cast_expression "(undefined4 **)(pcVar4 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar4 + 0x14)" ( (binary_expression "pcVar4 + 0x14" identifier + number_literal) )))))))) ;) }))) (if_statement "if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }" if (parenthesized_expression "(uVar2 == 0)" ( (binary_expression "uVar2 == 0" identifier == number_literal) )) (compound_statement "{\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }" { (if_statement "if (iVar3 == 1) {\n      return 0;\n    }" if (parenthesized_expression "(iVar3 == 1)" ( (binary_expression "iVar3 == 1" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);" (call_expression "FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14)" identifier (argument_list "(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14)" ( identifier , (pointer_expression "*(undefined4 *)(pcVar4 + 4)" * (cast_expression "(undefined4 *)(pcVar4 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar4 + 4)" ( (binary_expression "pcVar4 + 4" identifier + number_literal) )))) , (binary_expression "pcVar4 + 0x14" identifier + number_literal) ))) ;) (return_statement "return 1;" return number_literal ;) })) (labeled_statement "LAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }" statement_identifier : (if_statement "if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }" if (parenthesized_expression "(*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3)" ( (binary_expression "*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3" (pointer_expression "*(int *)**(undefined4 **)(param_2 + 0x14)" * (cast_expression "(int *)**(undefined4 **)(param_2 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "**(undefined4 **)(param_2 + 0x14)" * (pointer_expression "*(undefined4 **)(param_2 + 0x14)" * (cast_expression "(undefined4 **)(param_2 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))))) == identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) }))) (expression_statement "FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);" (call_expression "FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" identifier (argument_list "(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" ( identifier , (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4" identifier + number_literal) ))) ;) (return_statement "return 1;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression IDENT + LIT) ))) ;) (return_statement return LIT ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))))) == IDENT) )) (compound_statement { (return_statement return LIT ;) }))) (expression_statement (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 FUN_00095aac(undefined4 param_1,int param_2)\n\n{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" (type_identifier "undefined4") (function_declarator "FUN_00095aac(undefined4 param_1,int param_2)" (identifier "FUN_00095aac") (parameter_list "(undefined4 param_1,int param_2)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")"))) (compound_statement "{\n  char cVar1;\n  uint uVar2;\n  int iVar3;\n  char *pcVar4;\n  \n  pcVar4 = *(char **)(param_2 + 0xc);\n  cVar1 = *pcVar4;\n  if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }\n  uVar2 = *(uint *)(param_2 + 4) & 0x800;\n  if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }\n  if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }\nLAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }\n  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);\n  return 1;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "char *pcVar4;" (primitive_type "char") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (expression_statement "pcVar4 = *(char **)(param_2 + 0xc);" (assignment_expression "pcVar4 = *(char **)(param_2 + 0xc)" (identifier "pcVar4") (= "=") (pointer_expression "*(char **)(param_2 + 0xc)" (* "*") (cast_expression "(char **)(param_2 + 0xc)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0xc)" (( "(") (binary_expression "param_2 + 0xc" (identifier "param_2") (+ "+") (number_literal "0xc")) () ")"))))) (; ";")) (expression_statement "cVar1 = *pcVar4;" (assignment_expression "cVar1 = *pcVar4" (identifier "cVar1") (= "=") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4"))) (; ";")) (if_statement "if (cVar1 == -0x5c) {\n    cVar1 = pcVar4[0x28];\n  }" (if "if") (parenthesized_expression "(cVar1 == -0x5c)" (( "(") (binary_expression "cVar1 == -0x5c" (identifier "cVar1") (== "==") (number_literal "-0x5c")) () ")")) (compound_statement "{\n    cVar1 = pcVar4[0x28];\n  }" ({ "{") (expression_statement "cVar1 = pcVar4[0x28];" (assignment_expression "cVar1 = pcVar4[0x28]" (identifier "cVar1") (= "=") (subscript_expression "pcVar4[0x28]" (identifier "pcVar4") ([ "[") (number_literal "0x28") (] "]"))) (; ";")) (} "}"))) (expression_statement "uVar2 = *(uint *)(param_2 + 4) & 0x800;" (assignment_expression "uVar2 = *(uint *)(param_2 + 4) & 0x800" (identifier "uVar2") (= "=") (binary_expression "*(uint *)(param_2 + 4) & 0x800" (pointer_expression "*(uint *)(param_2 + 4)" (* "*") (cast_expression "(uint *)(param_2 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")")))) (& "&") (number_literal "0x800"))) (; ";")) (if_statement "if (cVar1 == -0x5b) {\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }\n  else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" (if "if") (parenthesized_expression "(cVar1 == -0x5b)" (( "(") (binary_expression "cVar1 == -0x5b" (identifier "cVar1") (== "==") (number_literal "-0x5b")) () ")")) (compound_statement "{\n    iVar3 = **(int **)(pcVar4 + 0x14);\n  }" ({ "{") (expression_statement "iVar3 = **(int **)(pcVar4 + 0x14);" (assignment_expression "iVar3 = **(int **)(pcVar4 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "**(int **)(pcVar4 + 0x14)" (* "*") (pointer_expression "*(int **)(pcVar4 + 0x14)" (* "*") (cast_expression "(int **)(pcVar4 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x14)" (( "(") (binary_expression "pcVar4 + 0x14" (identifier "pcVar4") (+ "+") (number_literal "0x14")) () ")")))))) (; ";")) (} "}")) (else_clause "else {\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" (else "else") (compound_statement "{\n    if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }\n    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);\n  }" ({ "{") (if_statement "if (cVar1 != '\x7f') {\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" (if "if") (parenthesized_expression "(cVar1 != '\x7f')" (( "(") (binary_expression "cVar1 != '\x7f'" (identifier "cVar1") (!= "!=") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'"))) () ")")) (compound_statement "{\n      if (uVar2 == 0) {\n        return 0;\n      }\n      iVar3 = 1;\n      goto LAB_00095b04;\n    }" ({ "{") (if_statement "if (uVar2 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00095b04;" (goto "goto") (statement_identifier "LAB_00095b04") (; ";")) (} "}"))) (expression_statement "iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);" (assignment_expression "iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14)" (identifier "iVar3") (= "=") (pointer_expression "*(int *)**(undefined4 **)(pcVar4 + 0x14)" (* "*") (cast_expression "(int *)**(undefined4 **)(pcVar4 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(pcVar4 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(pcVar4 + 0x14)" (* "*") (cast_expression "(undefined4 **)(pcVar4 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar4 + 0x14)" (( "(") (binary_expression "pcVar4 + 0x14" (identifier "pcVar4") (+ "+") (number_literal "0x14")) () ")")))))))) (; ";")) (} "}")))) (if_statement "if (uVar2 == 0) {\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }" (if "if") (parenthesized_expression "(uVar2 == 0)" (( "(") (binary_expression "uVar2 == 0" (identifier "uVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (iVar3 == 1) {\n      return 0;\n    }\n    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);\n    return 1;\n  }" ({ "{") (if_statement "if (iVar3 == 1) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar3 == 1)" (( "(") (binary_expression "iVar3 == 1" (identifier "iVar3") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);" (call_expression "FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14)" (identifier "FUN_00095310") (argument_list "(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*(undefined4 *)(pcVar4 + 4)" (* "*") (cast_expression "(undefined4 *)(pcVar4 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar4 + 4)" (( "(") (binary_expression "pcVar4 + 4" (identifier "pcVar4") (+ "+") (number_literal "4")) () ")")))) (, ",") (binary_expression "pcVar4 + 0x14" (identifier "pcVar4") (+ "+") (number_literal "0x14")) () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (labeled_statement "LAB_00095b04:\n  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }" (statement_identifier "LAB_00095b04") (: ":") (if_statement "if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3)" (( "(") (binary_expression "*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3" (pointer_expression "*(int *)**(undefined4 **)(param_2 + 0x14)" (* "*") (cast_expression "(int *)**(undefined4 **)(param_2 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "**(undefined4 **)(param_2 + 0x14)" (* "*") (pointer_expression "*(undefined4 **)(param_2 + 0x14)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")"))))))) (== "==") (identifier "iVar3")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);" (call_expression "FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" (identifier "FUN_00095160") (argument_list "(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4)" (( "(") (identifier "param_1") (, ",") (binary_expression "PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4" (identifier "PTR_s_o_page_from_root____pageno_INTEG_0019095c") (+ "+") (number_literal "-0x5af4")) () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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))))))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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)))))))) right: (identifier))) consequence: (compound_statement (return_statement (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal))))) (return_statement (number_literal)))))

undefined4 MASKED(undefined4 param_1,int param_2)

{
  char cVar1;
  uint uVar2;
  int iVar3;
  char *pcVar4;
  
  pcVar4 = *(char **)(param_2 + 0xc);
  cVar1 = *pcVar4;
  if (cVar1 == -0x5c) {
    cVar1 = pcVar4[0x28];
  }
  uVar2 = *(uint *)(param_2 + 4) & 0x800;
  if (cVar1 == -0x5b) {
    iVar3 = **(int **)(pcVar4 + 0x14);
  }
  else {
    if (cVar1 != '\x7f') {
      if (uVar2 == 0) {
        return 0;
      }
      iVar3 = 1;
      goto LAB_00095b04;
    }
    iVar3 = *(int *)**(undefined4 **)(pcVar4 + 0x14);
  }
  if (uVar2 == 0) {
    if (iVar3 == 1) {
      return 0;
    }
    FUN_00095310(param_1,*(undefined4 *)(pcVar4 + 4),pcVar4 + 0x14);
    return 1;
  }
LAB_00095b04:
  if (*(int *)**(undefined4 **)(param_2 + 0x14) == iVar3) {
    return 0;
  }
  FUN_00095160(param_1,PTR_s_o_page_from_root____pageno_INTEG_0019095c + -0x5af4);
  return 1;
}

