
void png_write_flush(png_structrp png_ptr)

{
  if (png_ptr == (png_structrp)0x0) {
    return;
  }
  if (png_ptr->num_rows <= png_ptr->row_number) {
    return;
  }
  png_compress_IDAT(png_ptr,(png_const_bytep)0x0,0,2);
  png_ptr->flush_rows = 0;
  png_flush(png_ptr);
  return;
}



void png_write_flush(int param_1)

{
  if (param_1 == 0) {
    return;
  }
  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {
    return;
  }
  FUN_0003c610(param_1,0,0,2);
  *(undefined4 *)(param_1 + 0x230) = 0;
  if (*(code **)(param_1 + 0x228) != (code *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(param_1 + 0x228))();
    return;
  }
  return;
}


lui gp,0x2
addiu gp,gp,0x3e9c
addu gp,gp,t9
beq a0,zero,0x000371d0
_nop
addiu sp,sp,-0x20
lw v1,0x1c8(a0)
lw a1,0x1b8(a0)
sw gp,0x10(sp)
sltu v1,v1,a1
sw s0,0x18(sp)
sw ra,0x1c(sp)
bne v1,zero,0x0003719c
_or s0,a0,zero
lw ra,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x20
lw t9,-0x7d50(gp)
li a3,0x2
or a2,zero,zero
bal 0x0003c610
_or a1,zero,zero
or a0,s0,zero
lw gp,0x10(sp)
lw ra,0x1c(sp)
sw zero,0x230(s0)
lw s0,0x18(sp)
lw t9,-0x7d4c(gp)
b 0x0003519c
_addiu sp,sp,0x20
jr ra
_nop
(translation_unit "void png_write_flush(int param_1)\n\n{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}\n\n" (function_definition "void png_write_flush(int param_1)\n\n{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "png_write_flush(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}" { (if_statement "if (param_1 == 0) {\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8))" ( (binary_expression "*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)" (pointer_expression "*(uint *)(param_1 + 0x1b8)" * (cast_expression "(uint *)(param_1 + 0x1b8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b8)" ( (binary_expression "param_1 + 0x1b8" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(param_1 + 0x1c8)" * (cast_expression "(uint *)(param_1 + 0x1c8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0003c610(param_1,0,0,2);" (call_expression "FUN_0003c610(param_1,0,0,2)" identifier (argument_list "(param_1,0,0,2)" ( identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x230) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x230) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x230)" * (cast_expression "(undefined4 *)(param_1 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(param_1 + 0x228))();\n    return;\n  }" if (parenthesized_expression "(*(code **)(param_1 + 0x228) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x228) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x228)" * (cast_expression "(code **)(param_1 + 0x228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    (**(code **)(param_1 + 0x228))();\n    return;\n  }" { comment comment (expression_statement "(**(code **)(param_1 + 0x228))();" (call_expression "(**(code **)(param_1 + 0x228))()" (parenthesized_expression "(**(code **)(param_1 + 0x228))" ( (pointer_expression "**(code **)(param_1 + 0x228)" * (pointer_expression "*(code **)(param_1 + 0x228)" * (cast_expression "(code **)(param_1 + 0x228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void png_write_flush(png_structrp png_ptr)\n\n{\n  if (png_ptr == (png_structrp)0x0) {\n    return;\n  }\n  if (png_ptr->num_rows <= png_ptr->row_number) {\n    return;\n  }\n  png_compress_IDAT(png_ptr,(png_const_bytep)0x0,0,2);\n  png_ptr->flush_rows = 0;\n  png_flush(png_ptr);\n  return;\n}\n\n" (function_definition "void png_write_flush(png_structrp png_ptr)\n\n{\n  if (png_ptr == (png_structrp)0x0) {\n    return;\n  }\n  if (png_ptr->num_rows <= png_ptr->row_number) {\n    return;\n  }\n  png_compress_IDAT(png_ptr,(png_const_bytep)0x0,0,2);\n  png_ptr->flush_rows = 0;\n  png_flush(png_ptr);\n  return;\n}" primitive_type (function_declarator "png_write_flush(png_structrp png_ptr)" identifier (parameter_list "(png_structrp png_ptr)" ( (parameter_declaration "png_structrp png_ptr" type_identifier identifier) ))) (compound_statement "{\n  if (png_ptr == (png_structrp)0x0) {\n    return;\n  }\n  if (png_ptr->num_rows <= png_ptr->row_number) {\n    return;\n  }\n  png_compress_IDAT(png_ptr,(png_const_bytep)0x0,0,2);\n  png_ptr->flush_rows = 0;\n  png_flush(png_ptr);\n  return;\n}" { (if_statement "if (png_ptr == (png_structrp)0x0) {\n    return;\n  }" if (parenthesized_expression "(png_ptr == (png_structrp)0x0)" ( (binary_expression "png_ptr == (png_structrp)0x0" identifier == (cast_expression "(png_structrp)0x0" ( (type_descriptor "png_structrp" type_identifier) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (png_ptr->num_rows <= png_ptr->row_number) {\n    return;\n  }" if (parenthesized_expression "(png_ptr->num_rows <= png_ptr->row_number)" ( (binary_expression "png_ptr->num_rows <= png_ptr->row_number" (field_expression "png_ptr->num_rows" identifier -> field_identifier) <= (field_expression "png_ptr->row_number" identifier -> field_identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "png_compress_IDAT(png_ptr,(png_const_bytep)0x0,0,2);" (call_expression "png_compress_IDAT(png_ptr,(png_const_bytep)0x0,0,2)" identifier (argument_list "(png_ptr,(png_const_bytep)0x0,0,2)" ( identifier , (cast_expression "(png_const_bytep)0x0" ( (type_descriptor "png_const_bytep" type_identifier) ) number_literal) , number_literal , number_literal ))) ;) (expression_statement "png_ptr->flush_rows = 0;" (assignment_expression "png_ptr->flush_rows = 0" (field_expression "png_ptr->flush_rows" identifier -> field_identifier) = number_literal) ;) (expression_statement "png_flush(png_ptr);" (call_expression "png_flush(png_ptr)" identifier (argument_list "(png_ptr)" ( identifier ))) ;) (return_statement "return;" return ;) })))
(translation_unit "void png_write_flush(int param_1)\n\n{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}\n\n" (function_definition "void png_write_flush(int param_1)\n\n{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "png_write_flush(int param_1)" identifier (parameter_list "(int param_1)" ( (parameter_declaration "int param_1" primitive_type identifier) ))) (compound_statement "{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}" { (if_statement "if (param_1 == 0) {\n    return;\n  }" if (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (if_statement "if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }" if (parenthesized_expression "(*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8))" ( (binary_expression "*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)" (pointer_expression "*(uint *)(param_1 + 0x1b8)" * (cast_expression "(uint *)(param_1 + 0x1b8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1b8)" ( (binary_expression "param_1 + 0x1b8" identifier + number_literal) )))) <= (pointer_expression "*(uint *)(param_1 + 0x1c8)" * (cast_expression "(uint *)(param_1 + 0x1c8)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x1c8)" ( (binary_expression "param_1 + 0x1c8" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_0003c610(param_1,0,0,2);" (call_expression "FUN_0003c610(param_1,0,0,2)" identifier (argument_list "(param_1,0,0,2)" ( identifier , number_literal , number_literal , number_literal ))) ;) (expression_statement "*(undefined4 *)(param_1 + 0x230) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x230) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x230)" * (cast_expression "(undefined4 *)(param_1 + 0x230)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x230)" ( (binary_expression "param_1 + 0x230" identifier + number_literal) )))) = number_literal) ;) (if_statement "if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }" if (parenthesized_expression "(*(code **)(param_1 + 0x228) != (code *)0x0)" ( (binary_expression "*(code **)(param_1 + 0x228) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x228)" * (cast_expression "(code **)(param_1 + 0x228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) )))) != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }" { (expression_statement "(**(code **)(param_1 + 0x228))();" (call_expression "(**(code **)(param_1 + 0x228))()" (parenthesized_expression "(**(code **)(param_1 + 0x228))" ( (pointer_expression "**(code **)(param_1 + 0x228)" * (pointer_expression "*(code **)(param_1 + 0x228)" * (cast_expression "(code **)(param_1 + 0x228)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_1 + 0x228)" ( (binary_expression "param_1 + 0x228" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) ))) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , LIT , LIT ))) ;) (expression_statement (assignment_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 (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void png_write_flush(int param_1)\n\n{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "png_write_flush(int param_1)" (identifier "png_write_flush") (parameter_list "(int param_1)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) () ")"))) (compound_statement "{\n  if (param_1 == 0) {\n    return;\n  }\n  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }\n  FUN_0003c610(param_1,0,0,2);\n  *(undefined4 *)(param_1 + 0x230) = 0;\n  if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }\n  return;\n}" ({ "{") (if_statement "if (param_1 == 0) {\n    return;\n  }" (if "if") (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (if_statement "if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {\n    return;\n  }" (if "if") (parenthesized_expression "(*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8))" (( "(") (binary_expression "*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)" (pointer_expression "*(uint *)(param_1 + 0x1b8)" (* "*") (cast_expression "(uint *)(param_1 + 0x1b8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1b8)" (( "(") (binary_expression "param_1 + 0x1b8" (identifier "param_1") (+ "+") (number_literal "0x1b8")) () ")")))) (<= "<=") (pointer_expression "*(uint *)(param_1 + 0x1c8)" (* "*") (cast_expression "(uint *)(param_1 + 0x1c8)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x1c8)" (( "(") (binary_expression "param_1 + 0x1c8" (identifier "param_1") (+ "+") (number_literal "0x1c8")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_0003c610(param_1,0,0,2);" (call_expression "FUN_0003c610(param_1,0,0,2)" (identifier "FUN_0003c610") (argument_list "(param_1,0,0,2)" (( "(") (identifier "param_1") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "2") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(param_1 + 0x230) = 0;" (assignment_expression "*(undefined4 *)(param_1 + 0x230) = 0" (pointer_expression "*(undefined4 *)(param_1 + 0x230)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x230)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x230)" (( "(") (binary_expression "param_1 + 0x230" (identifier "param_1") (+ "+") (number_literal "0x230")) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*(code **)(param_1 + 0x228) != (code *)0x0) {\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }" (if "if") (parenthesized_expression "(*(code **)(param_1 + 0x228) != (code *)0x0)" (( "(") (binary_expression "*(code **)(param_1 + 0x228) != (code *)0x0" (pointer_expression "*(code **)(param_1 + 0x228)" (* "*") (cast_expression "(code **)(param_1 + 0x228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")")))) (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n                    \n    (**(code **)(param_1 + 0x228))();\n    return;\n  }" ({ "{") (expression_statement "(**(code **)(param_1 + 0x228))();" (call_expression "(**(code **)(param_1 + 0x228))()" (parenthesized_expression "(**(code **)(param_1 + 0x228))" (( "(") (pointer_expression "**(code **)(param_1 + 0x228)" (* "*") (pointer_expression "*(code **)(param_1 + 0x228)" (* "*") (cast_expression "(code **)(param_1 + 0x228)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_1 + 0x228)" (( "(") (binary_expression "param_1 + 0x228" (identifier "param_1") (+ "+") (number_literal "0x228")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "return") (; ";")) (} "}")))

void function_1(type_1 var_1)

{
  if (var_1 == (type_1)0x0) {
    return;
  }
  if (var_1->num_rows <= var_1->row_number) {
    return;
  }
  var_2(var_1,(type_2)0x0,0,2);
  var_1->flush_rows = 0;
  var_3(var_1);
  return;
}


(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (return_statement))) (if_statement condition: (parenthesized_expression (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: (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))))))) consequence: (compound_statement (return_statement))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal) (number_literal) (number_literal)))) (expression_statement (assignment_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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list))) (return_statement))) (return_statement))))

void MASKED(int param_1)

{
  if (param_1 == 0) {
    return;
  }
  if (*(uint *)(param_1 + 0x1b8) <= *(uint *)(param_1 + 0x1c8)) {
    return;
  }
  FUN_0003c610(param_1,0,0,2);
  *(undefined4 *)(param_1 + 0x230) = 0;
  if (*(code **)(param_1 + 0x228) != (code *)0x0) {
                    /* WARNING: Could not recover jumptable at 0x000351a8. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    (**(code **)(param_1 + 0x228))();
    return;
  }
  return;
}

