
void * xrealloc(void *p,size_t n)

{
  void *pvVar1;
  
  if ((n == 0) && (p != (void *)0x0)) {
    free(p);
    pvVar1 = (void *)0x0;
  }
  else {
    pvVar1 = realloc(p,n);
    if ((pvVar1 == (void *)0x0) && (n != 0)) {
                    /* WARNING: Subroutine does not return */
      xalloc_die();
    }
  }
  return pvVar1;
}



void * FUN_001058b1(void *param_1,size_t param_2)

{
  void *pvVar1;
  
  if ((param_2 == 0) && (param_1 != (void *)0x0)) {
    free(param_1);
    pvVar1 = (void *)0x0;
  }
  else {
    pvVar1 = realloc(param_1,param_2);
    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_00105a98();
    }
  }
  return pvVar1;
}


PUSH RBX
MOV RBX,RSI
TEST RSI,RSI
JNZ 0x001058bf
TEST RDI,RDI
JNZ 0x001058d3
MOV RSI,RBX
CALL 0x001022d0
TEST RAX,RAX
JNZ 0x001058d1
TEST RBX,RBX
JNZ 0x001058df
POP RBX
RET
CALL 0x00102040
MOV EAX,0x0
JMP 0x001058d1
CALL 0x00105a98
(translation_unit "void * FUN_001058b1(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}\n\n" (function_definition "void * FUN_001058b1(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}" primitive_type (pointer_declarator "* FUN_001058b1(void *param_1,size_t param_2)" * (function_declarator "FUN_001058b1(void *param_1,size_t param_2)" identifier (parameter_list "(void *param_1,size_t param_2)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "size_t param_2" primitive_type identifier) )))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }\n  }" if (parenthesized_expression "((param_2 == 0) && (param_1 != (void *)0x0))" ( (binary_expression "(param_2 == 0) && (param_1 != (void *)0x0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) && (parenthesized_expression "(param_1 != (void *)0x0)" ( (binary_expression "param_1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }" { (expression_statement "free(param_1);" (call_expression "free(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "pvVar1 = (void *)0x0;" (assignment_expression "pvVar1 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }\n  }" else (compound_statement "{\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }\n  }" { (expression_statement "pvVar1 = realloc(param_1,param_2);" (assignment_expression "pvVar1 = realloc(param_1,param_2)" identifier = (call_expression "realloc(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }" if (parenthesized_expression "((pvVar1 == (void *)0x0) && (param_2 != 0))" ( (binary_expression "(pvVar1 == (void *)0x0) && (param_2 != 0)" (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)) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      FUN_00105a98();\n    }" { comment (expression_statement "FUN_00105a98();" (call_expression "FUN_00105a98()" identifier (argument_list "()" ( ))) ;) })) }))) (return_statement "return pvVar1;" return identifier ;) })))
(translation_unit "void * xrealloc(void *p,size_t n)\n\n{\n  void *pvVar1;\n  \n  if ((n == 0) && (p != (void *)0x0)) {\n    free(p);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(p,n);\n    if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n  }\n  return pvVar1;\n}\n\n" (function_definition "void * xrealloc(void *p,size_t n)\n\n{\n  void *pvVar1;\n  \n  if ((n == 0) && (p != (void *)0x0)) {\n    free(p);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(p,n);\n    if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n  }\n  return pvVar1;\n}" primitive_type (pointer_declarator "* xrealloc(void *p,size_t n)" * (function_declarator "xrealloc(void *p,size_t n)" identifier (parameter_list "(void *p,size_t n)" ( (parameter_declaration "void *p" primitive_type (pointer_declarator "*p" * identifier)) , (parameter_declaration "size_t n" primitive_type identifier) )))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((n == 0) && (p != (void *)0x0)) {\n    free(p);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(p,n);\n    if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n  }\n  return pvVar1;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if ((n == 0) && (p != (void *)0x0)) {\n    free(p);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(p,n);\n    if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n  }" if (parenthesized_expression "((n == 0) && (p != (void *)0x0))" ( (binary_expression "(n == 0) && (p != (void *)0x0)" (parenthesized_expression "(n == 0)" ( (binary_expression "n == 0" identifier == number_literal) )) && (parenthesized_expression "(p != (void *)0x0)" ( (binary_expression "p != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    free(p);\n    pvVar1 = (void *)0x0;\n  }" { (expression_statement "free(p);" (call_expression "free(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "pvVar1 = (void *)0x0;" (assignment_expression "pvVar1 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pvVar1 = realloc(p,n);\n    if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n  }" else (compound_statement "{\n    pvVar1 = realloc(p,n);\n    if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }\n  }" { (expression_statement "pvVar1 = realloc(p,n);" (assignment_expression "pvVar1 = realloc(p,n)" identifier = (call_expression "realloc(p,n)" identifier (argument_list "(p,n)" ( identifier , identifier )))) ;) (if_statement "if ((pvVar1 == (void *)0x0) && (n != 0)) {\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }" if (parenthesized_expression "((pvVar1 == (void *)0x0) && (n != 0))" ( (binary_expression "(pvVar1 == (void *)0x0) && (n != 0)" (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)) )) && (parenthesized_expression "(n != 0)" ( (binary_expression "n != 0" identifier != number_literal) ))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n      xalloc_die();\n    }" { comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;) })) }))) (return_statement "return pvVar1;" return identifier ;) })))
(translation_unit "void * FUN_001058b1(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}\n\n" (function_definition "void * FUN_001058b1(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}" primitive_type (pointer_declarator "* FUN_001058b1(void *param_1,size_t param_2)" * (function_declarator "FUN_001058b1(void *param_1,size_t param_2)" identifier (parameter_list "(void *param_1,size_t param_2)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "size_t param_2" primitive_type identifier) )))) (compound_statement "{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }" if (parenthesized_expression "((param_2 == 0) && (param_1 != (void *)0x0))" ( (binary_expression "(param_2 == 0) && (param_1 != (void *)0x0)" (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) && (parenthesized_expression "(param_1 != (void *)0x0)" ( (binary_expression "param_1 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }" { (expression_statement "free(param_1);" (call_expression "free(param_1)" identifier (argument_list "(param_1)" ( identifier ))) ;) (expression_statement "pvVar1 = (void *)0x0;" (assignment_expression "pvVar1 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }) (else_clause "else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }" else (compound_statement "{\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }" { (expression_statement "pvVar1 = realloc(param_1,param_2);" (assignment_expression "pvVar1 = realloc(param_1,param_2)" identifier = (call_expression "realloc(param_1,param_2)" identifier (argument_list "(param_1,param_2)" ( identifier , identifier )))) ;) (if_statement "if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }" if (parenthesized_expression "((pvVar1 == (void *)0x0) && (param_2 != 0))" ( (binary_expression "(pvVar1 == (void *)0x0) && (param_2 != 0)" (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)) )) && (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) ))) )) (compound_statement "{\n                    \n      FUN_00105a98();\n    }" { (expression_statement "FUN_00105a98();" (call_expression "FUN_00105a98()" identifier (argument_list "()" ( ))) ;) })) }))) (return_statement "return pvVar1;" return identifier ;) })))
(translation_unit (function_definition TYPE (pointer_declarator * (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * 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 != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) }))) (return_statement return IDENT ;) })))
(function_definition "void * FUN_001058b1(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}" (primitive_type "void") (pointer_declarator "* FUN_001058b1(void *param_1,size_t param_2)" (* "*") (function_declarator "FUN_001058b1(void *param_1,size_t param_2)" (identifier "FUN_001058b1") (parameter_list "(void *param_1,size_t param_2)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (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_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }\n  return pvVar1;\n}" ({ "{") (declaration "void *pvVar1;" (primitive_type "void") (pointer_declarator "*pvVar1" (* "*") (identifier "pvVar1")) (; ";")) (if_statement "if ((param_2 == 0) && (param_1 != (void *)0x0)) {\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }" (if "if") (parenthesized_expression "((param_2 == 0) && (param_1 != (void *)0x0))" (( "(") (binary_expression "(param_2 == 0) && (param_1 != (void *)0x0)" (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(param_1 != (void *)0x0)" (( "(") (binary_expression "param_1 != (void *)0x0" (identifier "param_1") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    free(param_1);\n    pvVar1 = (void *)0x0;\n  }" ({ "{") (expression_statement "free(param_1);" (call_expression "free(param_1)" (identifier "free") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")"))) (; ";")) (expression_statement "pvVar1 = (void *)0x0;" (assignment_expression "pvVar1 = (void *)0x0" (identifier "pvVar1") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }" (else "else") (compound_statement "{\n    pvVar1 = realloc(param_1,param_2);\n    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }\n  }" ({ "{") (expression_statement "pvVar1 = realloc(param_1,param_2);" (assignment_expression "pvVar1 = realloc(param_1,param_2)" (identifier "pvVar1") (= "=") (call_expression "realloc(param_1,param_2)" (identifier "realloc") (argument_list "(param_1,param_2)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";")) (if_statement "if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {\n                    \n      FUN_00105a98();\n    }" (if "if") (parenthesized_expression "((pvVar1 == (void *)0x0) && (param_2 != 0))" (( "(") (binary_expression "(pvVar1 == (void *)0x0) && (param_2 != 0)" (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"))) () ")")) (&& "&&") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n                    \n      FUN_00105a98();\n    }" ({ "{") (expression_statement "FUN_00105a98();" (call_expression "FUN_00105a98()" (identifier "FUN_00105a98") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}")))) (return_statement "return pvVar1;" (return "return") (identifier "pvVar1") (; ";")) (} "}")))

void * function_1(void *var_2,size_t var_1)

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


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

void * MASKED(void *param_1,size_t param_2)

{
  void *pvVar1;
  
  if ((param_2 == 0) && (param_1 != (void *)0x0)) {
    free(param_1);
    pvVar1 = (void *)0x0;
  }
  else {
    pvVar1 = realloc(param_1,param_2);
    if ((pvVar1 == (void *)0x0) && (param_2 != 0)) {
                    /* WARNING: Subroutine does not return */
      FUN_00105a98();
    }
  }
  return pvVar1;
}

