
void stable_sort(void *base,size_t nmemb,size_t size,_func_int_void_ptr_void_ptr *cmpfun)

{
  if ((1 < nmemb) && (1 < size)) {
                    /* WARNING: Subroutine does not return */
    xmalloc(nmemb * size);
  }
  return;
}



void stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)

{
  undefined4 uVar1;
  
  if ((1 < param_2) && (1 < param_3)) {
    uVar1 = xmalloc(param_2 * param_3);
    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);
    (*(code *)PTR_free_000b7d34)(uVar1);
    return;
  }
  return;
}


lui gp,0x6
addiu gp,gp,-0x3578
addu gp,gp,t9
sltiu v0,a1,0x2
bne v0,zero,0x000629c8
_sltiu v0,a2,0x2
beq v0,zero,0x000629d0
_lw t9,-0x7fb0(gp)
jr ra
_nop
addiu sp,sp,-0x38
sw ra,0x34(sp)
sw s4,0x30(sp)
sw s3,0x2c(sp)
sw s2,0x28(sp)
sw s1,0x24(sp)
sw s0,0x20(sp)
sw gp,0x18(sp)
or s3,a3,zero
or s1,a2,zero
or s0,a1,zero
or s2,a0,zero
mul a0,a1,a2
bal 0x00071c00
_nop
lw gp,0x18(sp)
or s4,v0,zero
sw s3,0x14(sp)
addiu a1,s0,-0x1
sw a1,0x10(sp)
or a3,zero,zero
or a2,s1,zero
or a1,v0,zero
or a0,s2,zero
lw t9,-0x7a6c(gp)
addiu t9,t9,-0x52a0
bal 0x0005ad60
_nop
lw gp,0x18(sp)
or a0,s4,zero
lw t9,-0x76fc(gp)
jalr t9
_nop
lw gp,0x18(sp)
lw ra,0x34(sp)
lw s4,0x30(sp)
lw s3,0x2c(sp)
lw s2,0x28(sp)
lw s1,0x24(sp)
lw s0,0x20(sp)
jr ra
_addiu sp,sp,0x38
(translation_unit "void stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }" if (parenthesized_expression "((1 < param_2) && (1 < param_3))" ( (binary_expression "(1 < param_2) && (1 < param_3)" (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) && (parenthesized_expression "(1 < param_3)" ( (binary_expression "1 < param_3" number_literal < identifier) ))) )) (compound_statement "{\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }" { (expression_statement "uVar1 = xmalloc(param_2 * param_3);" (assignment_expression "uVar1 = xmalloc(param_2 * param_3)" identifier = (call_expression "xmalloc(param_2 * param_3)" identifier (argument_list "(param_2 * param_3)" ( (binary_expression "param_2 * param_3" identifier * identifier) )))) ;) (expression_statement "FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);" (call_expression "FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4)" identifier (argument_list "(param_1,uVar1,param_3,0,param_2 - 1,param_4)" ( identifier , identifier , identifier , number_literal , (binary_expression "param_2 - 1" identifier - number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(uVar1);" (call_expression "(*(code *)PTR_free_000b7d34)(uVar1)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit "void stable_sort(void *base,size_t nmemb,size_t size,_func_int_void_ptr_void_ptr *cmpfun)\n\n{\n  if ((1 < nmemb) && (1 < size)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(nmemb * size);\n  }\n  return;\n}\n\n" (function_definition "void stable_sort(void *base,size_t nmemb,size_t size,_func_int_void_ptr_void_ptr *cmpfun)\n\n{\n  if ((1 < nmemb) && (1 < size)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(nmemb * size);\n  }\n  return;\n}" primitive_type (function_declarator "stable_sort(void *base,size_t nmemb,size_t size,_func_int_void_ptr_void_ptr *cmpfun)" identifier (parameter_list "(void *base,size_t nmemb,size_t size,_func_int_void_ptr_void_ptr *cmpfun)" ( (parameter_declaration "void *base" primitive_type (pointer_declarator "*base" * identifier)) , (parameter_declaration "size_t nmemb" primitive_type identifier) , (parameter_declaration "size_t size" primitive_type identifier) , (parameter_declaration "_func_int_void_ptr_void_ptr *cmpfun" type_identifier (pointer_declarator "*cmpfun" * identifier)) ))) (compound_statement "{\n  if ((1 < nmemb) && (1 < size)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(nmemb * size);\n  }\n  return;\n}" { (if_statement "if ((1 < nmemb) && (1 < size)) {\n                    /* WARNING: Subroutine does not return */\n    xmalloc(nmemb * size);\n  }" if (parenthesized_expression "((1 < nmemb) && (1 < size))" ( (binary_expression "(1 < nmemb) && (1 < size)" (parenthesized_expression "(1 < nmemb)" ( (binary_expression "1 < nmemb" number_literal < identifier) )) && (parenthesized_expression "(1 < size)" ( (binary_expression "1 < size" number_literal < identifier) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    xmalloc(nmemb * size);\n  }" { comment (expression_statement "xmalloc(nmemb * size);" (call_expression "xmalloc(nmemb * size)" identifier (argument_list "(nmemb * size)" ( (binary_expression "nmemb * size" identifier * identifier) ))) ;) })) (return_statement "return;" return ;) })))
(translation_unit "void stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}\n\n" (function_definition "void stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}" primitive_type (function_declarator "stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "uint param_3" type_identifier identifier) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}" { (declaration "undefined4 uVar1;" type_identifier identifier ;) (if_statement "if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }" if (parenthesized_expression "((1 < param_2) && (1 < param_3))" ( (binary_expression "(1 < param_2) && (1 < param_3)" (parenthesized_expression "(1 < param_2)" ( (binary_expression "1 < param_2" number_literal < identifier) )) && (parenthesized_expression "(1 < param_3)" ( (binary_expression "1 < param_3" number_literal < identifier) ))) )) (compound_statement "{\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }" { (expression_statement "uVar1 = xmalloc(param_2 * param_3);" (assignment_expression "uVar1 = xmalloc(param_2 * param_3)" identifier = (call_expression "xmalloc(param_2 * param_3)" identifier (argument_list "(param_2 * param_3)" ( (binary_expression "param_2 * param_3" identifier * identifier) )))) ;) (expression_statement "FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);" (call_expression "FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4)" identifier (argument_list "(param_1,uVar1,param_3,0,param_2 - 1,param_4)" ( identifier , identifier , identifier , number_literal , (binary_expression "param_2 - 1" identifier - number_literal) , identifier ))) ;) (expression_statement "(*(code *)PTR_free_000b7d34)(uVar1);" (call_expression "(*(code *)PTR_free_000b7d34)(uVar1)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" ( (pointer_expression "*(code *)PTR_free_000b7d34" * (cast_expression "(code *)PTR_free_000b7d34" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(uVar1)" ( identifier ))) ;) (return_statement "return;" return ;) })) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < IDENT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , LIT , (binary_expression IDENT - LIT) , IDENT ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (return_statement return ;) })) (return_statement return ;) })))
(function_definition "void stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)\n\n{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}" (primitive_type "void") (function_declarator "stable_sort(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)" (identifier "stable_sort") (parameter_list "(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "uint param_3" (type_identifier "uint") (identifier "param_3")) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  undefined4 uVar1;\n  \n  if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }\n  return;\n}" ({ "{") (declaration "undefined4 uVar1;" (type_identifier "undefined4") (identifier "uVar1") (; ";")) (if_statement "if ((1 < param_2) && (1 < param_3)) {\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }" (if "if") (parenthesized_expression "((1 < param_2) && (1 < param_3))" (( "(") (binary_expression "(1 < param_2) && (1 < param_3)" (parenthesized_expression "(1 < param_2)" (( "(") (binary_expression "1 < param_2" (number_literal "1") (< "<") (identifier "param_2")) () ")")) (&& "&&") (parenthesized_expression "(1 < param_3)" (( "(") (binary_expression "1 < param_3" (number_literal "1") (< "<") (identifier "param_3")) () ")"))) () ")")) (compound_statement "{\n    uVar1 = xmalloc(param_2 * param_3);\n    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);\n    (*(code *)PTR_free_000b7d34)(uVar1);\n    return;\n  }" ({ "{") (expression_statement "uVar1 = xmalloc(param_2 * param_3);" (assignment_expression "uVar1 = xmalloc(param_2 * param_3)" (identifier "uVar1") (= "=") (call_expression "xmalloc(param_2 * param_3)" (identifier "xmalloc") (argument_list "(param_2 * param_3)" (( "(") (binary_expression "param_2 * param_3" (identifier "param_2") (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);" (call_expression "FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4)" (identifier "FUN_0005ad60") (argument_list "(param_1,uVar1,param_3,0,param_2 - 1,param_4)" (( "(") (identifier "param_1") (, ",") (identifier "uVar1") (, ",") (identifier "param_3") (, ",") (number_literal "0") (, ",") (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1")) (, ",") (identifier "param_4") () ")"))) (; ";")) (expression_statement "(*(code *)PTR_free_000b7d34)(uVar1);" (call_expression "(*(code *)PTR_free_000b7d34)(uVar1)" (parenthesized_expression "(*(code *)PTR_free_000b7d34)" (( "(") (pointer_expression "*(code *)PTR_free_000b7d34" (* "*") (cast_expression "(code *)PTR_free_000b7d34" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_free_000b7d34"))) () ")")) (argument_list "(uVar1)" (( "(") (identifier "uVar1") () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (return_statement "return;" (return "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: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) right: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (number_literal) (binary_expression left: (identifier) right: (number_literal)) (identifier)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (return_statement))) (return_statement))))

void MASKED(undefined4 param_1,uint param_2,uint param_3,undefined4 param_4)

{
  undefined4 uVar1;
  
  if ((1 < param_2) && (1 < param_3)) {
    uVar1 = xmalloc(param_2 * param_3);
    FUN_0005ad60(param_1,uVar1,param_3,0,param_2 - 1,param_4);
    (*(code *)PTR_free_000b7d34)(uVar1);
    return;
  }
  return;
}

