
void * xcalloc(size_t nelem,size_t elsize)

{
  void *pvVar1;
  
  if ((nelem == 0) || (elsize == 0)) {
    elsize = 1;
    nelem = 1;
  }
  pvVar1 = calloc(nelem,elsize);
  if (pvVar1 != (void *)0x0) {
    return pvVar1;
  }
                    /* WARNING: Subroutine does not return */
  xmalloc_failed(nelem * elsize);
}



void FUN_00336e60(size_t param_1,size_t param_2)

{
  void *pvVar1;
  
  if ((param_1 == 0) || (param_2 == 0)) {
    param_2 = 1;
    param_1 = 1;
  }
  pvVar1 = calloc(param_1,param_2);
  if (pvVar1 != (void *)0x0) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00336db0(param_1 * param_2);
}


PUSH RBP
PUSH RBX
SUB RSP,0x8
TEST RDI,RDI
JZ 0x00336e90
MOV RBX,RDI
MOV RBP,RSI
TEST RSI,RSI
JZ 0x00336e90
MOV RSI,RBP
MOV RDI,RBX
CALL 0x00150840
TEST RAX,RAX
JZ 0x00336e9c
ADD RSP,0x8
POP RBX
POP RBP
RET
MOV EBP,0x1
MOV EBX,0x1
JMP 0x00336e76
MOV RDI,RBX
IMUL RDI,RBP
CALL 0x00336db0
(translation_unit "void FUN_00336e60(size_t param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00336db0(param_1 * param_2);\n}\n\n" (function_definition "void FUN_00336e60(size_t param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00336db0(param_1 * param_2);\n}" primitive_type (function_declarator "FUN_00336e60(size_t param_1,size_t param_2)" identifier (parameter_list "(size_t param_1,size_t param_2)" ( (parameter_declaration "size_t param_1" primitive_type identifier) , (parameter_declaration "size_t param_2" primitive_type identifier) ))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00336db0(param_1 * param_2);\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }" if (parenthesized_expression "((param_1 == 0) || (param_2 == 0))" ( (binary_expression "(param_1 == 0) || (param_2 == 0)" (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    param_2 = 1;\n    param_1 = 1;\n  }" { (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" identifier = number_literal) ;) (expression_statement "param_1 = 1;" (assignment_expression "param_1 = 1" identifier = number_literal) ;) })) (expression_statement "pvVar1 = calloc(param_1,param_2);" (assignment_expression "pvVar1 = calloc(param_1,param_2)" identifier = (call_expression "calloc(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (pvVar1 != (void *)0x0) {\n    return;\n  }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00336db0(param_1 * param_2);" (call_expression "FUN_00336db0(param_1 * param_2)" identifier (argument_list "(param_1 * param_2)" ( (binary_expression "param_1 * param_2" identifier * identifier) ))) ;) })))
(translation_unit "void * xcalloc(size_t nelem,size_t elsize)\n\n{\n  void *pvVar1;\n  \n  if ((nelem == 0) || (elsize == 0)) {\n    elsize = 1;\n    nelem = 1;\n  }\n  pvVar1 = calloc(nelem,elsize);\n  if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  xmalloc_failed(nelem * elsize);\n}\n\n" (function_definition "void * xcalloc(size_t nelem,size_t elsize)\n\n{\n  void *pvVar1;\n  \n  if ((nelem == 0) || (elsize == 0)) {\n    elsize = 1;\n    nelem = 1;\n  }\n  pvVar1 = calloc(nelem,elsize);\n  if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  xmalloc_failed(nelem * elsize);\n}" primitive_type (pointer_declarator "* xcalloc(size_t nelem,size_t elsize)" * (function_declarator "xcalloc(size_t nelem,size_t elsize)" identifier (parameter_list "(size_t nelem,size_t elsize)" ( (parameter_declaration "size_t nelem" primitive_type identifier) , (parameter_declaration "size_t elsize" primitive_type identifier) )))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((nelem == 0) || (elsize == 0)) {\n    elsize = 1;\n    nelem = 1;\n  }\n  pvVar1 = calloc(nelem,elsize);\n  if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  xmalloc_failed(nelem * elsize);\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if ((nelem == 0) || (elsize == 0)) {\n    elsize = 1;\n    nelem = 1;\n  }" if (parenthesized_expression "((nelem == 0) || (elsize == 0))" ( (binary_expression "(nelem == 0) || (elsize == 0)" (parenthesized_expression "(nelem == 0)" ( (binary_expression "nelem == 0" identifier == number_literal) )) || (parenthesized_expression "(elsize == 0)" ( (binary_expression "elsize == 0" identifier == number_literal) ))) )) (compound_statement "{\n    elsize = 1;\n    nelem = 1;\n  }" { (expression_statement "elsize = 1;" (assignment_expression "elsize = 1" identifier = number_literal) ;) (expression_statement "nelem = 1;" (assignment_expression "nelem = 1" identifier = number_literal) ;) })) (expression_statement "pvVar1 = calloc(nelem,elsize);" (assignment_expression "pvVar1 = calloc(nelem,elsize)" identifier = (call_expression "calloc(nelem,elsize)" identifier (argument_list "(nelem,elsize)" ( identifier , identifier )))) ;) (if_statement "if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return pvVar1;\n  }" { (return_statement "return pvVar1;" return identifier ;) })) comment (expression_statement "xmalloc_failed(nelem * elsize);" (call_expression "xmalloc_failed(nelem * elsize)" identifier (argument_list "(nelem * elsize)" ( (binary_expression "nelem * elsize" identifier * identifier) ))) ;) })))
(translation_unit "void FUN_00336e60(size_t param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_00336db0(param_1 * param_2);\n}\n\n" (function_definition "void FUN_00336e60(size_t param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_00336db0(param_1 * param_2);\n}" primitive_type (function_declarator "FUN_00336e60(size_t param_1,size_t param_2)" identifier (parameter_list "(size_t param_1,size_t param_2)" ( (parameter_declaration "size_t param_1" primitive_type identifier) , (parameter_declaration "size_t param_2" primitive_type identifier) ))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_00336db0(param_1 * param_2);\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }" if (parenthesized_expression "((param_1 == 0) || (param_2 == 0))" ( (binary_expression "(param_1 == 0) || (param_2 == 0)" (parenthesized_expression "(param_1 == 0)" ( (binary_expression "param_1 == 0" identifier == number_literal) )) || (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) ))) )) (compound_statement "{\n    param_2 = 1;\n    param_1 = 1;\n  }" { (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" identifier = number_literal) ;) (expression_statement "param_1 = 1;" (assignment_expression "param_1 = 1" identifier = number_literal) ;) })) (expression_statement "pvVar1 = calloc(param_1,param_2);" (assignment_expression "pvVar1 = calloc(param_1,param_2)" identifier = (call_expression "calloc(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if (pvVar1 != (void *)0x0) {\n    return;\n  }" if (parenthesized_expression "(pvVar1 != (void *)0x0)" ( (binary_expression "pvVar1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00336db0(param_1 * param_2);" (call_expression "FUN_00336db0(param_1 * param_2)" identifier (argument_list "(param_1 * param_2)" ( (binary_expression "param_1 * param_2" identifier * identifier) ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( (binary_expression IDENT * IDENT) ))) ;) })))
(function_definition "void FUN_00336e60(size_t param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_00336db0(param_1 * param_2);\n}" (primitive_type "void") (function_declarator "FUN_00336e60(size_t param_1,size_t param_2)" (identifier "FUN_00336e60") (parameter_list "(size_t param_1,size_t param_2)" (( "(") (parameter_declaration "size_t param_1" (primitive_type "size_t") (identifier "param_1")) (, ",") (parameter_declaration "size_t param_2" (primitive_type "size_t") (identifier "param_2")) () ")"))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }\n  pvVar1 = calloc(param_1,param_2);\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_00336db0(param_1 * param_2);\n}" ({ "{") (declaration "void *pvVar1;" (primitive_type "void") (pointer_declarator "*pvVar1" (* "*") (identifier "pvVar1")) (; ";")) (if_statement "if ((param_1 == 0) || (param_2 == 0)) {\n    param_2 = 1;\n    param_1 = 1;\n  }" (if "if") (parenthesized_expression "((param_1 == 0) || (param_2 == 0))" (( "(") (binary_expression "(param_1 == 0) || (param_2 == 0)" (parenthesized_expression "(param_1 == 0)" (( "(") (binary_expression "param_1 == 0" (identifier "param_1") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n    param_2 = 1;\n    param_1 = 1;\n  }" ({ "{") (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" (identifier "param_2") (= "=") (number_literal "1")) (; ";")) (expression_statement "param_1 = 1;" (assignment_expression "param_1 = 1" (identifier "param_1") (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "pvVar1 = calloc(param_1,param_2);" (assignment_expression "pvVar1 = calloc(param_1,param_2)" (identifier "pvVar1") (= "=") (call_expression "calloc(param_1,param_2)" (identifier "calloc") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if (pvVar1 != (void *)0x0) {\n    return;\n  }" (if "if") (parenthesized_expression "(pvVar1 != (void *)0x0)" (( "(") (binary_expression "pvVar1 != (void *)0x0" (identifier "pvVar1") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00336db0(param_1 * param_2);" (call_expression "FUN_00336db0(param_1 * param_2)" (identifier "FUN_00336db0") (argument_list "(param_1 * param_2)" (( "(") (binary_expression "param_1 * param_2" (identifier "param_1") (* "*") (identifier "param_2")) () ")"))) (; ";")) (} "}")))

void * function_1(size_t var_1,size_t var_2)

{
  void *var_4;
  
  if ((var_1 == 0) || (var_2 == 0)) {
    var_2 = 1;
    var_1 = 1;
  }
  var_4 = var_3(var_1,var_2);
  if (var_4 != (void *)0x0) {
    return var_4;
  }
                    /* WARNING: Subroutine does not return */
  var_5(var_1 * var_2);
}


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

void MASKED(size_t param_1,size_t param_2)

{
  void *pvVar1;
  
  if ((param_1 == 0) || (param_2 == 0)) {
    param_2 = 1;
    param_1 = 1;
  }
  pvVar1 = calloc(param_1,param_2);
  if (pvVar1 != (void *)0x0) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00336db0(param_1 * param_2);
}

