
void exprListDeleteNN(sqlite3 *db,ExprList *pList)

{
  char **ppcVar1;
  ExprList_item *pEVar2;
  int iVar3;
  code *UNRECOVERED_JUMPTABLE;
  
  pEVar2 = pList->a;
  iVar3 = pList->nExpr;
  UNRECOVERED_JUMPTABLE = (code *)(PTR_LAB_000f52ec + -0x7728);
  do {
    iVar3 = iVar3 + -1;
    if (pEVar2->pExpr != (Expr *)0x0) {
      sqlite3ExprDeleteNN(db,pEVar2->pExpr);
    }
    ppcVar1 = &pEVar2->zEName;
    pEVar2 = pEVar2 + 1;
    if (*ppcVar1 != (char *)0x0) {
      (*UNRECOVERED_JUMPTABLE)(db);
    }
  } while (0 < iVar3);
                    /* WARNING: Could not recover jumptable at 0x00053b60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*UNRECOVERED_JUMPTABLE)(db,pList);
  return;
}



void FUN_00053aa4(undefined4 param_1,int *param_2)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  code *pcVar4;
  
  piVar2 = param_2 + 1;
  iVar3 = *param_2;
  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);
  do {
    iVar3 = iVar3 + -1;
    if (*piVar2 != 0) {
      FUN_00053940(param_1);
    }
    piVar1 = piVar2 + 1;
    piVar2 = piVar2 + 4;
    if (*piVar1 != 0) {
      (*pcVar4)(param_1);
    }
  } while (0 < iVar3);
  (*pcVar4)(param_1,param_2);
  return;
}


lui gp,0xb
addiu gp,gp,-0x6804
addu gp,gp,t9
addiu sp,sp,-0x38
sw s4,0x2c(sp)
sw s3,0x28(sp)
sw s1,0x20(sp)
sw s0,0x1c(sp)
addiu s0,a1,0x4
sw s5,0x30(sp)
or s5,a1,zero
sw s2,0x24(sp)
or s2,a0,zero
sw gp,0x10(sp)
sw ra,0x34(sp)
lw s3,-0x7fb4(gp)
lw s4,-0x7f94(gp)
lw s1,0x0(a1)
addiu s3,s3,-0x7728
addiu s4,s4,0x3940
lw a1,0x0(s0)
addiu s1,s1,-0x1
beq a1,zero,0x00053b14
_or a0,s2,zero
or t9,s4,zero
bal 0x00053940
_nop
lw gp,0x10(sp)
lw a1,0x4(s0)
or a0,s2,zero
beq a1,zero,0x00053b34
_addiu s0,s0,0x10
or t9,s3,zero
jalr t9
_nop
lw gp,0x10(sp)
bgtz s1,0x00053af4
_lw ra,0x34(sp)
or a1,s5,zero
lw s4,0x2c(sp)
or a0,s2,zero
lw s5,0x30(sp)
or t9,s3,zero
lw s2,0x24(sp)
lw s3,0x28(sp)
lw s1,0x20(sp)
lw s0,0x1c(sp)
jr t9
_addiu sp,sp,0x38
(translation_unit "void FUN_00053aa4(undefined4 param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}\n\n" (function_definition "void FUN_00053aa4(undefined4 param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}" primitive_type (function_declarator "FUN_00053aa4(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 (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "piVar2 = param_2 + 1;" (assignment_expression "piVar2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" ( (binary_expression "PTR_LAB_000f52ec + -0x7728" identifier + number_literal) )))) ;) (do_statement "do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);" do (compound_statement "{\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  }" { (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n      FUN_00053940(param_1);\n    }" { (expression_statement "FUN_00053940(param_1);" (call_expression "FUN_00053940(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "piVar1 = piVar2 + 1;" (assignment_expression "piVar1 = piVar2 + 1" identifier = (binary_expression "piVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n      (*pcVar4)(param_1);\n    }" { (expression_statement "(*pcVar4)(param_1);" (call_expression "(*pcVar4)(param_1)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_1)" ( identifier ))) ;) })) }) while (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) ;) (expression_statement "(*pcVar4)(param_1,param_2);" (call_expression "(*pcVar4)(param_1,param_2)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void exprListDeleteNN(sqlite3 *db,ExprList *pList)\n\n{\n  char **ppcVar1;\n  ExprList_item *pEVar2;\n  int iVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  pEVar2 = pList->a;\n  iVar3 = pList->nExpr;\n  UNRECOVERED_JUMPTABLE = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (pEVar2->pExpr != (Expr *)0x0) {\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }\n    ppcVar1 = &pEVar2->zEName;\n    pEVar2 = pEVar2 + 1;\n    if (*ppcVar1 != (char *)0x0) {\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }\n  } while (0 < iVar3);\n                    /* WARNING: Could not recover jumptable at 0x00053b60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*UNRECOVERED_JUMPTABLE)(db,pList);\n  return;\n}\n\n" (function_definition "void exprListDeleteNN(sqlite3 *db,ExprList *pList)\n\n{\n  char **ppcVar1;\n  ExprList_item *pEVar2;\n  int iVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  pEVar2 = pList->a;\n  iVar3 = pList->nExpr;\n  UNRECOVERED_JUMPTABLE = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (pEVar2->pExpr != (Expr *)0x0) {\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }\n    ppcVar1 = &pEVar2->zEName;\n    pEVar2 = pEVar2 + 1;\n    if (*ppcVar1 != (char *)0x0) {\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }\n  } while (0 < iVar3);\n                    /* WARNING: Could not recover jumptable at 0x00053b60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*UNRECOVERED_JUMPTABLE)(db,pList);\n  return;\n}" primitive_type (function_declarator "exprListDeleteNN(sqlite3 *db,ExprList *pList)" identifier (parameter_list "(sqlite3 *db,ExprList *pList)" ( (parameter_declaration "sqlite3 *db" type_identifier (pointer_declarator "*db" * identifier)) , (parameter_declaration "ExprList *pList" type_identifier (pointer_declarator "*pList" * identifier)) ))) (compound_statement "{\n  char **ppcVar1;\n  ExprList_item *pEVar2;\n  int iVar3;\n  code *UNRECOVERED_JUMPTABLE;\n  \n  pEVar2 = pList->a;\n  iVar3 = pList->nExpr;\n  UNRECOVERED_JUMPTABLE = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (pEVar2->pExpr != (Expr *)0x0) {\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }\n    ppcVar1 = &pEVar2->zEName;\n    pEVar2 = pEVar2 + 1;\n    if (*ppcVar1 != (char *)0x0) {\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }\n  } while (0 < iVar3);\n                    /* WARNING: Could not recover jumptable at 0x00053b60. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*UNRECOVERED_JUMPTABLE)(db,pList);\n  return;\n}" { (declaration "char **ppcVar1;" primitive_type (pointer_declarator "**ppcVar1" * (pointer_declarator "*ppcVar1" * identifier)) ;) (declaration "ExprList_item *pEVar2;" type_identifier (pointer_declarator "*pEVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *UNRECOVERED_JUMPTABLE;" type_identifier (pointer_declarator "*UNRECOVERED_JUMPTABLE" * identifier) ;) (expression_statement "pEVar2 = pList->a;" (assignment_expression "pEVar2 = pList->a" identifier = (field_expression "pList->a" identifier -> field_identifier)) ;) (expression_statement "iVar3 = pList->nExpr;" (assignment_expression "iVar3 = pList->nExpr" identifier = (field_expression "pList->nExpr" identifier -> field_identifier)) ;) (expression_statement "UNRECOVERED_JUMPTABLE = (code *)(PTR_LAB_000f52ec + -0x7728);" (assignment_expression "UNRECOVERED_JUMPTABLE = (code *)(PTR_LAB_000f52ec + -0x7728)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" ( (binary_expression "PTR_LAB_000f52ec + -0x7728" identifier + number_literal) )))) ;) (do_statement "do {\n    iVar3 = iVar3 + -1;\n    if (pEVar2->pExpr != (Expr *)0x0) {\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }\n    ppcVar1 = &pEVar2->zEName;\n    pEVar2 = pEVar2 + 1;\n    if (*ppcVar1 != (char *)0x0) {\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }\n  } while (0 < iVar3);" do (compound_statement "{\n    iVar3 = iVar3 + -1;\n    if (pEVar2->pExpr != (Expr *)0x0) {\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }\n    ppcVar1 = &pEVar2->zEName;\n    pEVar2 = pEVar2 + 1;\n    if (*ppcVar1 != (char *)0x0) {\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }\n  }" { (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (pEVar2->pExpr != (Expr *)0x0) {\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }" if (parenthesized_expression "(pEVar2->pExpr != (Expr *)0x0)" ( (binary_expression "pEVar2->pExpr != (Expr *)0x0" (field_expression "pEVar2->pExpr" identifier -> field_identifier) != (cast_expression "(Expr *)0x0" ( (type_descriptor "Expr *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      sqlite3ExprDeleteNN(db,pEVar2->pExpr);\n    }" { (expression_statement "sqlite3ExprDeleteNN(db,pEVar2->pExpr);" (call_expression "sqlite3ExprDeleteNN(db,pEVar2->pExpr)" identifier (argument_list "(db,pEVar2->pExpr)" ( identifier , (field_expression "pEVar2->pExpr" identifier -> field_identifier) ))) ;) })) (expression_statement "ppcVar1 = &pEVar2->zEName;" (assignment_expression "ppcVar1 = &pEVar2->zEName" identifier = (pointer_expression "&pEVar2->zEName" & (field_expression "pEVar2->zEName" identifier -> field_identifier))) ;) (expression_statement "pEVar2 = pEVar2 + 1;" (assignment_expression "pEVar2 = pEVar2 + 1" identifier = (binary_expression "pEVar2 + 1" identifier + number_literal)) ;) (if_statement "if (*ppcVar1 != (char *)0x0) {\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }" if (parenthesized_expression "(*ppcVar1 != (char *)0x0)" ( (binary_expression "*ppcVar1 != (char *)0x0" (pointer_expression "*ppcVar1" * identifier) != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      (*UNRECOVERED_JUMPTABLE)(db);\n    }" { (expression_statement "(*UNRECOVERED_JUMPTABLE)(db);" (call_expression "(*UNRECOVERED_JUMPTABLE)(db)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(db)" ( identifier ))) ;) })) }) while (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) ;) comment comment (expression_statement "(*UNRECOVERED_JUMPTABLE)(db,pList);" (call_expression "(*UNRECOVERED_JUMPTABLE)(db,pList)" (parenthesized_expression "(*UNRECOVERED_JUMPTABLE)" ( (pointer_expression "*UNRECOVERED_JUMPTABLE" * identifier) )) (argument_list "(db,pList)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00053aa4(undefined4 param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}\n\n" (function_definition "void FUN_00053aa4(undefined4 param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}" primitive_type (function_declarator "FUN_00053aa4(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 (pointer_declarator "*param_2" * identifier)) ))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}" { (declaration "int *piVar1;" primitive_type (pointer_declarator "*piVar1" * identifier) ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "code *pcVar4;" type_identifier (pointer_declarator "*pcVar4" * identifier) ;) (expression_statement "piVar2 = param_2 + 1;" (assignment_expression "piVar2 = param_2 + 1" identifier = (binary_expression "param_2 + 1" identifier + number_literal)) ;) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" identifier = (pointer_expression "*param_2" * identifier)) ;) (expression_statement "pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728)" identifier = (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" ( (binary_expression "PTR_LAB_000f52ec + -0x7728" identifier + number_literal) )))) ;) (do_statement "do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);" do (compound_statement "{\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  }" { (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" identifier = (binary_expression "iVar3 + -1" identifier + number_literal)) ;) (if_statement "if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }" if (parenthesized_expression "(*piVar2 != 0)" ( (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" * identifier) != number_literal) )) (compound_statement "{\n      FUN_00053940(param_1);\n    }" { (expression_statement "FUN_00053940(param_1);" (call_expression "FUN_00053940(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) })) (expression_statement "piVar1 = piVar2 + 1;" (assignment_expression "piVar1 = piVar2 + 1" identifier = (binary_expression "piVar2 + 1" identifier + number_literal)) ;) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" identifier = (binary_expression "piVar2 + 4" identifier + number_literal)) ;) (if_statement "if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }" if (parenthesized_expression "(*piVar1 != 0)" ( (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" * identifier) != number_literal) )) (compound_statement "{\n      (*pcVar4)(param_1);\n    }" { (expression_statement "(*pcVar4)(param_1);" (call_expression "(*pcVar4)(param_1)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_1)" ( identifier ))) ;) })) }) while (parenthesized_expression "(0 < iVar3)" ( (binary_expression "0 < iVar3" number_literal < identifier) )) ;) (expression_statement "(*pcVar4)(param_1,param_2);" (call_expression "(*pcVar4)(param_1,param_2)" (parenthesized_expression "(*pcVar4)" ( (pointer_expression "*pcVar4" * identifier) )) (argument_list "(param_1,param_2)" ( identifier , identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT ))) ;) })) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))) ;) (return_statement return ;) })))
(function_definition "void FUN_00053aa4(undefined4 param_1,int *param_2)\n\n{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00053aa4(undefined4 param_1,int *param_2)" (identifier "FUN_00053aa4") (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") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) () ")"))) (compound_statement "{\n  int *piVar1;\n  int *piVar2;\n  int iVar3;\n  code *pcVar4;\n  \n  piVar2 = param_2 + 1;\n  iVar3 = *param_2;\n  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);\n  do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);\n  (*pcVar4)(param_1,param_2);\n  return;\n}" ({ "{") (declaration "int *piVar1;" (primitive_type "int") (pointer_declarator "*piVar1" (* "*") (identifier "piVar1")) (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "code *pcVar4;" (type_identifier "code") (pointer_declarator "*pcVar4" (* "*") (identifier "pcVar4")) (; ";")) (expression_statement "piVar2 = param_2 + 1;" (assignment_expression "piVar2 = param_2 + 1" (identifier "piVar2") (= "=") (binary_expression "param_2 + 1" (identifier "param_2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar3 = *param_2;" (assignment_expression "iVar3 = *param_2" (identifier "iVar3") (= "=") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (; ";")) (expression_statement "pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);" (assignment_expression "pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728)" (identifier "pcVar4") (= "=") (cast_expression "(code *)(PTR_LAB_000f52ec + -0x7728)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_000f52ec + -0x7728)" (( "(") (binary_expression "PTR_LAB_000f52ec + -0x7728" (identifier "PTR_LAB_000f52ec") (+ "+") (number_literal "-0x7728")) () ")")))) (; ";")) (do_statement "do {\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  } while (0 < iVar3);" (do "do") (compound_statement "{\n    iVar3 = iVar3 + -1;\n    if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }\n    piVar1 = piVar2 + 1;\n    piVar2 = piVar2 + 4;\n    if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }\n  }" ({ "{") (expression_statement "iVar3 = iVar3 + -1;" (assignment_expression "iVar3 = iVar3 + -1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (*piVar2 != 0) {\n      FUN_00053940(param_1);\n    }" (if "if") (parenthesized_expression "(*piVar2 != 0)" (( "(") (binary_expression "*piVar2 != 0" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      FUN_00053940(param_1);\n    }" ({ "{") (expression_statement "FUN_00053940(param_1);" (call_expression "FUN_00053940(param_1)" (identifier "FUN_00053940") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (expression_statement "piVar1 = piVar2 + 1;" (assignment_expression "piVar1 = piVar2 + 1" (identifier "piVar1") (= "=") (binary_expression "piVar2 + 1" (identifier "piVar2") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar2 = piVar2 + 4;" (assignment_expression "piVar2 = piVar2 + 4" (identifier "piVar2") (= "=") (binary_expression "piVar2 + 4" (identifier "piVar2") (+ "+") (number_literal "4"))) (; ";")) (if_statement "if (*piVar1 != 0) {\n      (*pcVar4)(param_1);\n    }" (if "if") (parenthesized_expression "(*piVar1 != 0)" (( "(") (binary_expression "*piVar1 != 0" (pointer_expression "*piVar1" (* "*") (identifier "piVar1")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      (*pcVar4)(param_1);\n    }" ({ "{") (expression_statement "(*pcVar4)(param_1);" (call_expression "(*pcVar4)(param_1)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(0 < iVar3)" (( "(") (binary_expression "0 < iVar3" (number_literal "0") (< "<") (identifier "iVar3")) () ")")) (; ";")) (expression_statement "(*pcVar4)(param_1,param_2);" (call_expression "(*pcVar4)(param_1,param_2)" (parenthesized_expression "(*pcVar4)" (( "(") (pointer_expression "*pcVar4" (* "*") (identifier "pcVar4")) () ")")) (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 *db,type_2 *pList)

{
  char **ppcVar1;
  type_3 *var_4;
  int var_2;
  type_4 *UNRECOVERED_JUMPTABLE;
  
  var_4 = pList->a;
  var_2 = pList->nExpr;
  UNRECOVERED_JUMPTABLE = (type_4 *)(var_1 + -0x7728);
  do {
    var_2 = var_2 + -1;
    if (var_4->pExpr != (type_5 *)0x0) {
      var_3(db,var_4->pExpr);
    }
    ppcVar1 = &var_4->zEName;
    var_4 = var_4 + 1;
    if (*ppcVar1 != (char *)0x0) {
      (*UNRECOVERED_JUMPTABLE)(db);
    }
  } while (0 < var_2);
                    /* WARNING: Could not recover jumptable at 0x00053b60. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*UNRECOVERED_JUMPTABLE)(db,pList);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier))))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier)))) (return_statement))))

void MASKED(undefined4 param_1,int *param_2)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  code *pcVar4;
  
  piVar2 = param_2 + 1;
  iVar3 = *param_2;
  pcVar4 = (code *)(PTR_LAB_000f52ec + -0x7728);
  do {
    iVar3 = iVar3 + -1;
    if (*piVar2 != 0) {
      FUN_00053940(param_1);
    }
    piVar1 = piVar2 + 1;
    piVar2 = piVar2 + 4;
    if (*piVar1 != 0) {
      (*pcVar4)(param_1);
    }
  } while (0 < iVar3);
  (*pcVar4)(param_1,param_2);
  return;
}

