
int fts3tokNextMethod(sqlite3_vtab_cursor *pCursor)

{
  int iVar1;
  
  pCursor[3].pVtab = (sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1);
  iVar1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab);
  if (iVar1 != 0) {
    fts3tokResetCursor((Fts3tokCursor *)pCursor);
    if (iVar1 != 0x65) {
      return iVar1;
    }
  }
  return 0;
}



int FUN_0002c664(int *param_1)

{
  int iVar1;
  
  param_1[3] = param_1[3] + 1;
  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))
                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);
  if (iVar1 != 0) {
    FUN_0002c5e4(param_1);
    if (iVar1 != 0x65) {
      return iVar1;
    }
  }
  return 0;
}


lui gp,0x13
addiu gp,gp,0x6f4c
addu gp,gp,t9
addiu sp,sp,-0x30
addiu t0,a0,0x20
addiu v1,a0,0x1c
sw gp,0x18(sp)
addiu a3,a0,0x18
sw s0,0x28(sp)
or s0,a0,zero
sw ra,0x2c(sp)
addiu a2,s0,0x14
lw v0,0xc(a0)
lw t1,0x0(a0)
lw a0,0x8(a0)
addiu v0,v0,0x1
sw v0,0xc(s0)
lw v0,0xc(t1)
sw t0,0x14(sp)
sw v1,0x10(sp)
lw t9,0x14(v0)
jalr t9
_addiu a1,s0,0x10
bne v0,zero,0x0002c6dc
_lw gp,0x18(sp)
lw ra,0x2c(sp)
or v0,zero,zero
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x30
lw t9,-0x7ed8(gp)
or a0,s0,zero
addiu t9,t9,-0x3a1c
bal 0x0002c5e4
_sw v0,0x24(sp)
li v1,0x65
lw v0,0x24(sp)
beq v0,v1,0x0002c6c8
_lw ra,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x30
(translation_unit "int FUN_0002c664(int *param_1)\n\n{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}\n\n" (function_definition "int FUN_0002c664(int *param_1)\n\n{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" primitive_type (function_declarator "FUN_0002c664(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "param_1[3] = param_1[3] + 1;" (assignment_expression "param_1[3] = param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);" (assignment_expression "iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" identifier = (call_expression "(**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" (parenthesized_expression "(**(code **)(*(int *)(*param_1 + 0xc) + 0x14))" ( (pointer_expression "**(code **)(*(int *)(*param_1 + 0xc) + 0x14)" * (pointer_expression "*(code **)(*(int *)(*param_1 + 0xc) + 0x14)" * (cast_expression "(code **)(*(int *)(*param_1 + 0xc) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*param_1 + 0xc) + 0x14)" ( (binary_expression "*(int *)(*param_1 + 0xc) + 0x14" (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" (pointer_expression "*param_1" * identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (binary_expression "param_1 + 4" identifier + number_literal) , (binary_expression "param_1 + 5" identifier + number_literal) , (binary_expression "param_1 + 6" identifier + number_literal) , (binary_expression "param_1 + 7" identifier + number_literal) , (binary_expression "param_1 + 8" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" { (expression_statement "FUN_0002c5e4(param_1);" (call_expression "FUN_0002c5e4(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (iVar1 != 0x65) {\n      return iVar1;\n    }" if (parenthesized_expression "(iVar1 != 0x65)" ( (binary_expression "iVar1 != 0x65" identifier != number_literal) )) (compound_statement "{\n      return iVar1;\n    }" { (return_statement "return iVar1;" return identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int fts3tokNextMethod(sqlite3_vtab_cursor *pCursor)\n\n{\n  int iVar1;\n  \n  pCursor[3].pVtab = (sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1);\n  iVar1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab);\n  if (iVar1 != 0) {\n    fts3tokResetCursor((Fts3tokCursor *)pCursor);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}\n\n" (function_definition "int fts3tokNextMethod(sqlite3_vtab_cursor *pCursor)\n\n{\n  int iVar1;\n  \n  pCursor[3].pVtab = (sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1);\n  iVar1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab);\n  if (iVar1 != 0) {\n    fts3tokResetCursor((Fts3tokCursor *)pCursor);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" primitive_type (function_declarator "fts3tokNextMethod(sqlite3_vtab_cursor *pCursor)" identifier (parameter_list "(sqlite3_vtab_cursor *pCursor)" ( (parameter_declaration "sqlite3_vtab_cursor *pCursor" type_identifier (pointer_declarator "*pCursor" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  pCursor[3].pVtab = (sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1);\n  iVar1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab);\n  if (iVar1 != 0) {\n    fts3tokResetCursor((Fts3tokCursor *)pCursor);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "pCursor[3].pVtab = (sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1);" (assignment_expression "pCursor[3].pVtab = (sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1)" (field_expression "pCursor[3].pVtab" (subscript_expression "pCursor[3]" identifier [ number_literal ]) . field_identifier) = (cast_expression "(sqlite3_vtab *)((int)&(pCursor[3].pVtab)->pModule + 1)" ( (type_descriptor "sqlite3_vtab *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&(pCursor[3].pVtab)->pModule + 1)" ( (binary_expression "(int)&(pCursor[3].pVtab)->pModule + 1" (cast_expression "(int)&(pCursor[3].pVtab)->pModule" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&(pCursor[3].pVtab)->pModule" & (field_expression "(pCursor[3].pVtab)->pModule" (parenthesized_expression "(pCursor[3].pVtab)" ( (field_expression "pCursor[3].pVtab" (subscript_expression "pCursor[3]" identifier [ number_literal ]) . field_identifier) )) -> field_identifier))) + number_literal) )))) ;) (expression_statement "iVar1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab);" (assignment_expression "iVar1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab)" identifier = (call_expression "(*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab)" (parenthesized_expression "(*(pCursor->pVtab[1].pModule)->xDestroy)" ( (pointer_expression "*(pCursor->pVtab[1].pModule)->xDestroy" * (field_expression "(pCursor->pVtab[1].pModule)->xDestroy" (parenthesized_expression "(pCursor->pVtab[1].pModule)" ( (field_expression "pCursor->pVtab[1].pModule" (subscript_expression "pCursor->pVtab[1]" (field_expression "pCursor->pVtab" identifier -> field_identifier) [ number_literal ]) . field_identifier) )) -> field_identifier)) )) (argument_list "(pCursor[2].pVtab)" ( (field_expression "pCursor[2].pVtab" (subscript_expression "pCursor[2]" identifier [ number_literal ]) . field_identifier) )))) ;) (if_statement "if (iVar1 != 0) {\n    fts3tokResetCursor((Fts3tokCursor *)pCursor);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    fts3tokResetCursor((Fts3tokCursor *)pCursor);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" { (expression_statement "fts3tokResetCursor((Fts3tokCursor *)pCursor);" (call_expression "fts3tokResetCursor((Fts3tokCursor *)pCursor)" identifier (argument_list "((Fts3tokCursor *)pCursor)" ( (cast_expression "(Fts3tokCursor *)pCursor" ( (type_descriptor "Fts3tokCursor *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (iVar1 != 0x65) {\n      return iVar1;\n    }" if (parenthesized_expression "(iVar1 != 0x65)" ( (binary_expression "iVar1 != 0x65" identifier != number_literal) )) (compound_statement "{\n      return iVar1;\n    }" { (return_statement "return iVar1;" return identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "int FUN_0002c664(int *param_1)\n\n{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}\n\n" (function_definition "int FUN_0002c664(int *param_1)\n\n{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" primitive_type (function_declarator "FUN_0002c664(int *param_1)" identifier (parameter_list "(int *param_1)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (expression_statement "param_1[3] = param_1[3] + 1;" (assignment_expression "param_1[3] = param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) = (binary_expression "param_1[3] + 1" (subscript_expression "param_1[3]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);" (assignment_expression "iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" identifier = (call_expression "(**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" (parenthesized_expression "(**(code **)(*(int *)(*param_1 + 0xc) + 0x14))" ( (pointer_expression "**(code **)(*(int *)(*param_1 + 0xc) + 0x14)" * (pointer_expression "*(code **)(*(int *)(*param_1 + 0xc) + 0x14)" * (cast_expression "(code **)(*(int *)(*param_1 + 0xc) + 0x14)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(*param_1 + 0xc) + 0x14)" ( (binary_expression "*(int *)(*param_1 + 0xc) + 0x14" (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" (pointer_expression "*param_1" * identifier) + number_literal) )))) + number_literal) ))))) )) (argument_list "(param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (binary_expression "param_1 + 4" identifier + number_literal) , (binary_expression "param_1 + 5" identifier + number_literal) , (binary_expression "param_1 + 6" identifier + number_literal) , (binary_expression "param_1 + 7" identifier + number_literal) , (binary_expression "param_1 + 8" identifier + number_literal) )))) ;) (if_statement "if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" { (expression_statement "FUN_0002c5e4(param_1);" (call_expression "FUN_0002c5e4(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (if_statement "if (iVar1 != 0x65) {\n      return iVar1;\n    }" if (parenthesized_expression "(iVar1 != 0x65)" ( (binary_expression "iVar1 != 0x65" identifier != number_literal) )) (compound_statement "{\n      return iVar1;\n    }" { (return_statement "return iVar1;" return identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) )))) + LIT) ))))) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) })) (return_statement return LIT ;) })))
(function_definition "int FUN_0002c664(int *param_1)\n\n{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" (primitive_type "int") (function_declarator "FUN_0002c664(int *param_1)" (identifier "FUN_0002c664") (parameter_list "(int *param_1)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  int iVar1;\n  \n  param_1[3] = param_1[3] + 1;\n  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);\n  if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (expression_statement "param_1[3] = param_1[3] + 1;" (assignment_expression "param_1[3] = param_1[3] + 1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "param_1[3] + 1" (subscript_expression "param_1[3]" (identifier "param_1") ([ "[") (number_literal "3") (] "]")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);" (assignment_expression "iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" (identifier "iVar1") (= "=") (call_expression "(**(code **)(*(int *)(*param_1 + 0xc) + 0x14))\n                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" (parenthesized_expression "(**(code **)(*(int *)(*param_1 + 0xc) + 0x14))" (( "(") (pointer_expression "**(code **)(*(int *)(*param_1 + 0xc) + 0x14)" (* "*") (pointer_expression "*(code **)(*(int *)(*param_1 + 0xc) + 0x14)" (* "*") (cast_expression "(code **)(*(int *)(*param_1 + 0xc) + 0x14)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(*param_1 + 0xc) + 0x14)" (( "(") (binary_expression "*(int *)(*param_1 + 0xc) + 0x14" (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" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (argument_list "(param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (binary_expression "param_1 + 4" (identifier "param_1") (+ "+") (number_literal "4")) (, ",") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) (, ",") (binary_expression "param_1 + 6" (identifier "param_1") (+ "+") (number_literal "6")) (, ",") (binary_expression "param_1 + 7" (identifier "param_1") (+ "+") (number_literal "7")) (, ",") (binary_expression "param_1 + 8" (identifier "param_1") (+ "+") (number_literal "8")) () ")")))) (; ";")) (if_statement "if (iVar1 != 0) {\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" (if "if") (parenthesized_expression "(iVar1 != 0)" (( "(") (binary_expression "iVar1 != 0" (identifier "iVar1") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_0002c5e4(param_1);\n    if (iVar1 != 0x65) {\n      return iVar1;\n    }\n  }" ({ "{") (expression_statement "FUN_0002c5e4(param_1);" (call_expression "FUN_0002c5e4(param_1)" (identifier "FUN_0002c5e4") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (if_statement "if (iVar1 != 0x65) {\n      return iVar1;\n    }" (if "if") (parenthesized_expression "(iVar1 != 0x65)" (( "(") (binary_expression "iVar1 != 0x65" (identifier "iVar1") (!= "!=") (number_literal "0x65")) () ")")) (compound_statement "{\n      return iVar1;\n    }" ({ "{") (return_statement "return iVar1;" (return "return") (identifier "iVar1") (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

int function_1(type_1 *pCursor)

{
  int var_1;
  
  pCursor[3].pVtab = (type_2 *)((int)&(pCursor[3].pVtab)->pModule + 1);
  var_1 = (*(pCursor->pVtab[1].pModule)->xDestroy)(pCursor[2].pVtab);
  if (var_1 != 0) {
    var_2((type_3 *)pCursor);
    if (var_1 != 0x65) {
      return var_1;
    }
  }
  return 0;
}


(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))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))) right: (number_literal))))))) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement (identifier)))))) (return_statement (number_literal)))))

int MASKED(int *param_1)

{
  int iVar1;
  
  param_1[3] = param_1[3] + 1;
  iVar1 = (**(code **)(*(int *)(*param_1 + 0xc) + 0x14))
                    (param_1[2],param_1 + 4,param_1 + 5,param_1 + 6,param_1 + 7,param_1 + 8);
  if (iVar1 != 0) {
    FUN_0002c5e4(param_1);
    if (iVar1 != 0x65) {
      return iVar1;
    }
  }
  return 0;
}

