
/* WARNING: Unknown calling convention */

void * sqlite3_get_auxdata(sqlite3_context *pCtx,int iArg)

{
  AuxData *pAVar1;
  
  pAVar1 = pCtx->pVdbe->pAuxData;
  if (pAVar1 == (AuxData *)0x0) {
    pAVar1 = (AuxData *)0x0;
  }
  else {
    do {
      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {
        return pAVar1->pAux;
      }
      pAVar1 = pAVar1->pNextAux;
    } while (pAVar1 != (AuxData *)0x0);
  }
  return pAVar1;
}



int * sqlite3_get_auxdata(int param_1,int param_2)

{
  int *piVar1;
  
  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);
  if (piVar1 == (int *)0x0) {
    piVar1 = (int *)0x0;
  }
  else {
    do {
      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {
        return (int *)piVar1[2];
      }
      piVar1 = (int *)piVar1[4];
    } while (piVar1 != (int *)0x0);
  }
  return piVar1;
}


lw v0,0xc(a0)
lw v0,0xd8(v0)
bne v0,zero,0x0001f7d8
_nop
b 0x0001f804
_nop
lw v0,0x10(v0)
beq v0,zero,0x0001f804
_nop
lw v1,0x4(v0)
bne v1,a1,0x0001f7cc
_nop
lw a2,0x0(v0)
lw v1,0x10(a0)
beq a2,v1,0x0001f7fc
_nop
bgez a1,0x0001f7cc
_nop
jr ra
_lw v0,0x8(v0)
jr ra
_nop
(translation_unit "int * sqlite3_get_auxdata(int param_1,int param_2)\n\n{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}\n\n" (function_definition "int * sqlite3_get_auxdata(int param_1,int param_2)\n\n{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}" primitive_type (pointer_declarator "* sqlite3_get_auxdata(int param_1,int param_2)" * (function_declarator "sqlite3_get_auxdata(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (expression_statement "piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);" (assignment_expression "piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8)" identifier = (pointer_expression "*(int **)(*(int *)(param_1 + 0xc) + 0xd8)" * (cast_expression "(int **)(*(int *)(param_1 + 0xc) + 0xd8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0xd8)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0xd8" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" if (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar1 = (int *)0x0;\n  }" { (expression_statement "piVar1 = (int *)0x0;" (assignment_expression "piVar1 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" else (compound_statement "{\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" { (do_statement "do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);" do (compound_statement "{\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    }" { (if_statement "if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }" if (parenthesized_expression "((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0))))" ( (binary_expression "(piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))" (parenthesized_expression "(piVar1[1] == param_2)" ( (binary_expression "piVar1[1] == param_2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) == identifier) )) && (parenthesized_expression "((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))" ( (parenthesized_expression "(*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0))" ( (binary_expression "*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)" (binary_expression "*piVar1 == *(int *)(param_1 + 0x10)" (pointer_expression "*piVar1" * identifier) == (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) ))) )) ))) )) (compound_statement "{\n        return (int *)piVar1[2];\n      }" { (return_statement "return (int *)piVar1[2];" return (cast_expression "(int *)piVar1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) })) (expression_statement "piVar1 = (int *)piVar1[4];" (assignment_expression "piVar1 = (int *)piVar1[4]" identifier = (cast_expression "(int *)piVar1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit "/* WARNING: Unknown calling convention */\n\nvoid * sqlite3_get_auxdata(sqlite3_context *pCtx,int iArg)\n\n{\n  AuxData *pAVar1;\n  \n  pAVar1 = pCtx->pVdbe->pAuxData;\n  if (pAVar1 == (AuxData *)0x0) {\n    pAVar1 = (AuxData *)0x0;\n  }\n  else {\n    do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);\n  }\n  return pAVar1;\n}\n\n" comment (function_definition "void * sqlite3_get_auxdata(sqlite3_context *pCtx,int iArg)\n\n{\n  AuxData *pAVar1;\n  \n  pAVar1 = pCtx->pVdbe->pAuxData;\n  if (pAVar1 == (AuxData *)0x0) {\n    pAVar1 = (AuxData *)0x0;\n  }\n  else {\n    do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);\n  }\n  return pAVar1;\n}" primitive_type (pointer_declarator "* sqlite3_get_auxdata(sqlite3_context *pCtx,int iArg)" * (function_declarator "sqlite3_get_auxdata(sqlite3_context *pCtx,int iArg)" identifier (parameter_list "(sqlite3_context *pCtx,int iArg)" ( (parameter_declaration "sqlite3_context *pCtx" type_identifier (pointer_declarator "*pCtx" * identifier)) , (parameter_declaration "int iArg" primitive_type identifier) )))) (compound_statement "{\n  AuxData *pAVar1;\n  \n  pAVar1 = pCtx->pVdbe->pAuxData;\n  if (pAVar1 == (AuxData *)0x0) {\n    pAVar1 = (AuxData *)0x0;\n  }\n  else {\n    do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);\n  }\n  return pAVar1;\n}" { (declaration "AuxData *pAVar1;" type_identifier (pointer_declarator "*pAVar1" * identifier) ;) (expression_statement "pAVar1 = pCtx->pVdbe->pAuxData;" (assignment_expression "pAVar1 = pCtx->pVdbe->pAuxData" identifier = (field_expression "pCtx->pVdbe->pAuxData" (field_expression "pCtx->pVdbe" identifier -> field_identifier) -> field_identifier)) ;) (if_statement "if (pAVar1 == (AuxData *)0x0) {\n    pAVar1 = (AuxData *)0x0;\n  }\n  else {\n    do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);\n  }" if (parenthesized_expression "(pAVar1 == (AuxData *)0x0)" ( (binary_expression "pAVar1 == (AuxData *)0x0" identifier == (cast_expression "(AuxData *)0x0" ( (type_descriptor "AuxData *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pAVar1 = (AuxData *)0x0;\n  }" { (expression_statement "pAVar1 = (AuxData *)0x0;" (assignment_expression "pAVar1 = (AuxData *)0x0" identifier = (cast_expression "(AuxData *)0x0" ( (type_descriptor "AuxData *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);\n  }" else (compound_statement "{\n    do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);\n  }" { (do_statement "do {\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    } while (pAVar1 != (AuxData *)0x0);" do (compound_statement "{\n      if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }\n      pAVar1 = pAVar1->pNextAux;\n    }" { (if_statement "if ((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))) {\n        return pAVar1->pAux;\n      }" if (parenthesized_expression "((pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0))))" ( (binary_expression "(pAVar1->iAuxArg == iArg) && ((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))" (parenthesized_expression "(pAVar1->iAuxArg == iArg)" ( (binary_expression "pAVar1->iAuxArg == iArg" (field_expression "pAVar1->iAuxArg" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "((pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)))" ( (parenthesized_expression "(pAVar1->iAuxOp == pCtx->iOp || (iArg < 0))" ( (binary_expression "pAVar1->iAuxOp == pCtx->iOp || (iArg < 0)" (binary_expression "pAVar1->iAuxOp == pCtx->iOp" (field_expression "pAVar1->iAuxOp" identifier -> field_identifier) == (field_expression "pCtx->iOp" identifier -> field_identifier)) || (parenthesized_expression "(iArg < 0)" ( (binary_expression "iArg < 0" identifier < number_literal) ))) )) ))) )) (compound_statement "{\n        return pAVar1->pAux;\n      }" { (return_statement "return pAVar1->pAux;" return (field_expression "pAVar1->pAux" identifier -> field_identifier) ;) })) (expression_statement "pAVar1 = pAVar1->pNextAux;" (assignment_expression "pAVar1 = pAVar1->pNextAux" identifier = (field_expression "pAVar1->pNextAux" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(pAVar1 != (AuxData *)0x0)" ( (binary_expression "pAVar1 != (AuxData *)0x0" identifier != (cast_expression "(AuxData *)0x0" ( (type_descriptor "AuxData *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (return_statement "return pAVar1;" return identifier ;) })))
(translation_unit "int * sqlite3_get_auxdata(int param_1,int param_2)\n\n{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}\n\n" (function_definition "int * sqlite3_get_auxdata(int param_1,int param_2)\n\n{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}" primitive_type (pointer_declarator "* sqlite3_get_auxdata(int param_1,int param_2)" * (function_declarator "sqlite3_get_auxdata(int param_1,int param_2)" identifier (parameter_list "(int param_1,int param_2)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "int param_2" primitive_type identifier) )))) (compound_statement "{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (expression_statement "piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);" (assignment_expression "piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8)" identifier = (pointer_expression "*(int **)(*(int *)(param_1 + 0xc) + 0xd8)" * (cast_expression "(int **)(*(int *)(param_1 + 0xc) + 0xd8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0xd8)" ( (binary_expression "*(int *)(param_1 + 0xc) + 0xd8" (pointer_expression "*(int *)(param_1 + 0xc)" * (cast_expression "(int *)(param_1 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xc)" ( (binary_expression "param_1 + 0xc" identifier + number_literal) )))) + number_literal) ))))) ;) (if_statement "if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" if (parenthesized_expression "(piVar1 == (int *)0x0)" ( (binary_expression "piVar1 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    piVar1 = (int *)0x0;\n  }" { (expression_statement "piVar1 = (int *)0x0;" (assignment_expression "piVar1 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" else (compound_statement "{\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" { (do_statement "do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);" do (compound_statement "{\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    }" { (if_statement "if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }" if (parenthesized_expression "((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0))))" ( (binary_expression "(piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))" (parenthesized_expression "(piVar1[1] == param_2)" ( (binary_expression "piVar1[1] == param_2" (subscript_expression "piVar1[1]" identifier [ number_literal ]) == identifier) )) && (parenthesized_expression "((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))" ( (parenthesized_expression "(*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0))" ( (binary_expression "*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)" (binary_expression "*piVar1 == *(int *)(param_1 + 0x10)" (pointer_expression "*piVar1" * identifier) == (pointer_expression "*(int *)(param_1 + 0x10)" * (cast_expression "(int *)(param_1 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x10)" ( (binary_expression "param_1 + 0x10" identifier + number_literal) ))))) || (parenthesized_expression "(param_2 < 0)" ( (binary_expression "param_2 < 0" identifier < number_literal) ))) )) ))) )) (compound_statement "{\n        return (int *)piVar1[2];\n      }" { (return_statement "return (int *)piVar1[2];" return (cast_expression "(int *)piVar1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[2]" identifier [ number_literal ])) ;) })) (expression_statement "piVar1 = (int *)piVar1[4];" (assignment_expression "piVar1 = (int *)piVar1[4]" identifier = (cast_expression "(int *)piVar1[4]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar1[4]" identifier [ number_literal ]))) ;) }) while (parenthesized_expression "(piVar1 != (int *)0x0)" ( (binary_expression "piVar1 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) }))) (return_statement "return piVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) )))) (compound_statement { (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 (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == IDENT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (pointer_expression * IDENT) == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) || (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) ))) )) (compound_statement { (return_statement return (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) }))) (return_statement return IDENT ;) })))
(function_definition "int * sqlite3_get_auxdata(int param_1,int param_2)\n\n{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}" (primitive_type "int") (pointer_declarator "* sqlite3_get_auxdata(int param_1,int param_2)" (* "*") (function_declarator "sqlite3_get_auxdata(int param_1,int param_2)" (identifier "sqlite3_get_auxdata") (parameter_list "(int param_1,int param_2)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) () ")")))) (compound_statement "{\n  int *piVar1;\n  \n  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);\n  if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }\n  return piVar1;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (expression_statement "piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);" (assignment_expression "piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8)" (identifier "piVar1") (= "=") (pointer_expression "*(int **)(*(int *)(param_1 + 0xc) + 0xd8)" (* "*") (cast_expression "(int **)(*(int *)(param_1 + 0xc) + 0xd8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(param_1 + 0xc) + 0xd8)" (( "(") (binary_expression "*(int *)(param_1 + 0xc) + 0xd8" (pointer_expression "*(int *)(param_1 + 0xc)" (* "*") (cast_expression "(int *)(param_1 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xc)" (( "(") (binary_expression "param_1 + 0xc" (identifier "param_1") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0xd8")) () ")"))))) (; ";")) (if_statement "if (piVar1 == (int *)0x0) {\n    piVar1 = (int *)0x0;\n  }\n  else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" (if "if") (parenthesized_expression "(piVar1 == (int *)0x0)" (( "(") (binary_expression "piVar1 == (int *)0x0" (identifier "piVar1") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    piVar1 = (int *)0x0;\n  }" ({ "{") (expression_statement "piVar1 = (int *)0x0;" (assignment_expression "piVar1 = (int *)0x0" (identifier "piVar1") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" (else "else") (compound_statement "{\n    do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);\n  }" ({ "{") (do_statement "do {\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    } while (piVar1 != (int *)0x0);" (do "do") (compound_statement "{\n      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }\n      piVar1 = (int *)piVar1[4];\n    }" ({ "{") (if_statement "if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {\n        return (int *)piVar1[2];\n      }" (if "if") (parenthesized_expression "((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0))))" (( "(") (binary_expression "(piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))" (parenthesized_expression "(piVar1[1] == param_2)" (( "(") (binary_expression "piVar1[1] == param_2" (subscript_expression "piVar1[1]" (identifier "piVar1") ([ "[") (number_literal "1") (] "]")) (== "==") (identifier "param_2")) () ")")) (&& "&&") (parenthesized_expression "((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))" (( "(") (parenthesized_expression "(*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0))" (( "(") (binary_expression "*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)" (binary_expression "*piVar1 == *(int *)(param_1 + 0x10)" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (== "==") (pointer_expression "*(int *)(param_1 + 0x10)" (* "*") (cast_expression "(int *)(param_1 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x10)" (( "(") (binary_expression "param_1 + 0x10" (identifier "param_1") (+ "+") (number_literal "0x10")) () ")"))))) (|| "||") (parenthesized_expression "(param_2 < 0)" (( "(") (binary_expression "param_2 < 0" (identifier "param_2") (< "<") (number_literal "0")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n        return (int *)piVar1[2];\n      }" ({ "{") (return_statement "return (int *)piVar1[2];" (return "return") (cast_expression "(int *)piVar1[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[2]" (identifier "piVar1") ([ "[") (number_literal "2") (] "]"))) (; ";")) (} "}"))) (expression_statement "piVar1 = (int *)piVar1[4];" (assignment_expression "piVar1 = (int *)piVar1[4]" (identifier "piVar1") (= "=") (cast_expression "(int *)piVar1[4]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar1[4]" (identifier "piVar1") ([ "[") (number_literal "4") (] "]")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(piVar1 != (int *)0x0)" (( "(") (binary_expression "piVar1 != (int *)0x0" (identifier "piVar1") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (; ";")) (} "}")))) (return_statement "return piVar1;" (return "return") (identifier "piVar1") (; ";")) (} "}")))

/* WARNING: Unknown calling convention */

void * function_1(type_1 *pCtx,int var_2)

{
  type_2 *var_1;
  
  var_1 = pCtx->pVdbe->pAuxData;
  if (var_1 == (type_2 *)0x0) {
    var_1 = (type_2 *)0x0;
  }
  else {
    do {
      if ((var_1->iAuxArg == var_2) && ((var_1->iAuxOp == pCtx->iOp || (var_2 < 0)))) {
        return var_1->pAux;
      }
      var_1 = var_1->pNextAux;
    } while (var_1 != (type_2 *)0x0);
  }
  return var_1;
}


(translation_unit (function_definition type: (primitive_type) declarator: (pointer_declarator declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier))))) body: (compound_statement (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: (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))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) right: (parenthesized_expression (parenthesized_expression (binary_expression left: (binary_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (return_statement (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))))) (return_statement (identifier)))))

int * MASKED(int param_1,int param_2)

{
  int *piVar1;
  
  piVar1 = *(int **)(*(int *)(param_1 + 0xc) + 0xd8);
  if (piVar1 == (int *)0x0) {
    piVar1 = (int *)0x0;
  }
  else {
    do {
      if ((piVar1[1] == param_2) && ((*piVar1 == *(int *)(param_1 + 0x10) || (param_2 < 0)))) {
        return (int *)piVar1[2];
      }
      piVar1 = (int *)piVar1[4];
    } while (piVar1 != (int *)0x0);
  }
  return piVar1;
}

