
void * xrealloc(void *oldmem,size_t size)

{
  void *pvVar1;
  
  if (size == 0) {
    size = 1;
  }
  if (oldmem == (void *)0x0) {
    pvVar1 = malloc(size);
  }
  else {
    pvVar1 = realloc(oldmem,size);
  }
  if (pvVar1 != (void *)0x0) {
    return pvVar1;
  }
                    /* WARNING: Subroutine does not return */
  xmalloc_failed(size);
}



void FUN_0049c7a0(void *param_1,size_t param_2)

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


PUSH RBX
TEST RSI,RSI
MOV RBX,RSI
MOV EAX,0x1
CMOVZ RBX,RAX
TEST RDI,RDI
JZ 0x0049c7c8
MOV RSI,RBX
CALL 0x001779d0
TEST RAX,RAX
JZ 0x0049c7d2
POP RBX
RET
MOV RDI,RBX
CALL 0x00177300
JMP 0x0049c7bd
MOV RDI,RBX
CALL 0x0049c6a0
(translation_unit "void FUN_0049c7a0(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if (param_2 == 0) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0049c6a0(param_2);\n}\n\n" (function_definition "void FUN_0049c7a0(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if (param_2 == 0) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0049c6a0(param_2);\n}" primitive_type (function_declarator "FUN_0049c7a0(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) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_0049c6a0(param_2);\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if (param_2 == 0) {\n    param_2 = 1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    param_2 = 1;\n  }" { (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" identifier = number_literal) ;) })) (if_statement "if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }" if (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    pvVar1 = malloc(param_2);\n  }" { (expression_statement "pvVar1 = malloc(param_2);" (assignment_expression "pvVar1 = malloc(param_2)" identifier = (call_expression "malloc(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }) (else_clause "else {\n    pvVar1 = realloc(param_1,param_2);\n  }" else (compound_statement "{\n    pvVar1 = realloc(param_1,param_2);\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) {\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_0049c6a0(param_2);" (call_expression "FUN_0049c6a0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })))
(translation_unit "void * xrealloc(void *oldmem,size_t size)\n\n{\n  void *pvVar1;\n  \n  if (size == 0) {\n    size = 1;\n  }\n  if (oldmem == (void *)0x0) {\n    pvVar1 = malloc(size);\n  }\n  else {\n    pvVar1 = realloc(oldmem,size);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  xmalloc_failed(size);\n}\n\n" (function_definition "void * xrealloc(void *oldmem,size_t size)\n\n{\n  void *pvVar1;\n  \n  if (size == 0) {\n    size = 1;\n  }\n  if (oldmem == (void *)0x0) {\n    pvVar1 = malloc(size);\n  }\n  else {\n    pvVar1 = realloc(oldmem,size);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  xmalloc_failed(size);\n}" primitive_type (pointer_declarator "* xrealloc(void *oldmem,size_t size)" * (function_declarator "xrealloc(void *oldmem,size_t size)" identifier (parameter_list "(void *oldmem,size_t size)" ( (parameter_declaration "void *oldmem" primitive_type (pointer_declarator "*oldmem" * identifier)) , (parameter_declaration "size_t size" primitive_type identifier) )))) (compound_statement "{\n  void *pvVar1;\n  \n  if (size == 0) {\n    size = 1;\n  }\n  if (oldmem == (void *)0x0) {\n    pvVar1 = malloc(size);\n  }\n  else {\n    pvVar1 = realloc(oldmem,size);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return pvVar1;\n  }\n                    /* WARNING: Subroutine does not return */\n  xmalloc_failed(size);\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if (size == 0) {\n    size = 1;\n  }" if (parenthesized_expression "(size == 0)" ( (binary_expression "size == 0" identifier == number_literal) )) (compound_statement "{\n    size = 1;\n  }" { (expression_statement "size = 1;" (assignment_expression "size = 1" identifier = number_literal) ;) })) (if_statement "if (oldmem == (void *)0x0) {\n    pvVar1 = malloc(size);\n  }\n  else {\n    pvVar1 = realloc(oldmem,size);\n  }" if (parenthesized_expression "(oldmem == (void *)0x0)" ( (binary_expression "oldmem == (void *)0x0" identifier == (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    pvVar1 = malloc(size);\n  }" { (expression_statement "pvVar1 = malloc(size);" (assignment_expression "pvVar1 = malloc(size)" identifier = (call_expression "malloc(size)" identifier (argument_list "(size)" ( identifier )))) ;) }) (else_clause "else {\n    pvVar1 = realloc(oldmem,size);\n  }" else (compound_statement "{\n    pvVar1 = realloc(oldmem,size);\n  }" { (expression_statement "pvVar1 = realloc(oldmem,size);" (assignment_expression "pvVar1 = realloc(oldmem,size)" identifier = (call_expression "realloc(oldmem,size)" identifier (argument_list "(oldmem,size)" ( 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(size);" (call_expression "xmalloc_failed(size)" identifier (argument_list "(size)" ( identifier ))) ;) })))
(translation_unit "void FUN_0049c7a0(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if (param_2 == 0) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_0049c6a0(param_2);\n}\n\n" (function_definition "void FUN_0049c7a0(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if (param_2 == 0) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_0049c6a0(param_2);\n}" primitive_type (function_declarator "FUN_0049c7a0(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) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_0049c6a0(param_2);\n}" { (declaration "void *pvVar1;" primitive_type (pointer_declarator "*pvVar1" * identifier) ;) (if_statement "if (param_2 == 0) {\n    param_2 = 1;\n  }" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (compound_statement "{\n    param_2 = 1;\n  }" { (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" identifier = number_literal) ;) })) (if_statement "if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }" if (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    pvVar1 = malloc(param_2);\n  }" { (expression_statement "pvVar1 = malloc(param_2);" (assignment_expression "pvVar1 = malloc(param_2)" identifier = (call_expression "malloc(param_2)" identifier (argument_list "(param_2)" ( identifier )))) ;) }) (else_clause "else {\n    pvVar1 = realloc(param_1,param_2);\n  }" else (compound_statement "{\n    pvVar1 = realloc(param_1,param_2);\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) {\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_0049c6a0(param_2);" (call_expression "FUN_0049c6a0(param_2)" identifier (argument_list "(param_2)" ( identifier ))) ;) })))
(translation_unit (function_definition TYPE (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 IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (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 ( IDENT ))) ;) })))
(function_definition "void FUN_0049c7a0(void *param_1,size_t param_2)\n\n{\n  void *pvVar1;\n  \n  if (param_2 == 0) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_0049c6a0(param_2);\n}" (primitive_type "void") (function_declarator "FUN_0049c7a0(void *param_1,size_t param_2)" (identifier "FUN_0049c7a0") (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) {\n    param_2 = 1;\n  }\n  if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }\n  if (pvVar1 != (void *)0x0) {\n    return;\n  }\n                    \n  FUN_0049c6a0(param_2);\n}" ({ "{") (declaration "void *pvVar1;" (primitive_type "void") (pointer_declarator "*pvVar1" (* "*") (identifier "pvVar1")) (; ";")) (if_statement "if (param_2 == 0) {\n    param_2 = 1;\n  }" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_2 = 1;\n  }" ({ "{") (expression_statement "param_2 = 1;" (assignment_expression "param_2 = 1" (identifier "param_2") (= "=") (number_literal "1")) (; ";")) (} "}"))) (if_statement "if (param_1 == (void *)0x0) {\n    pvVar1 = malloc(param_2);\n  }\n  else {\n    pvVar1 = realloc(param_1,param_2);\n  }" (if "if") (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    pvVar1 = malloc(param_2);\n  }" ({ "{") (expression_statement "pvVar1 = malloc(param_2);" (assignment_expression "pvVar1 = malloc(param_2)" (identifier "pvVar1") (= "=") (call_expression "malloc(param_2)" (identifier "malloc") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")")))) (; ";")) (} "}")) (else_clause "else {\n    pvVar1 = realloc(param_1,param_2);\n  }" (else "else") (compound_statement "{\n    pvVar1 = realloc(param_1,param_2);\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) {\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_0049c6a0(param_2);" (call_expression "FUN_0049c6a0(param_2)" (identifier "FUN_0049c6a0") (argument_list "(param_2)" (( "(") (identifier "param_2") () ")"))) (; ";")) (} "}")))

void * function_1(void *var_2,size_t var_1)

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


(translation_unit (function_definition type: (primitive_type) 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: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (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 (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier)))))) 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: (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 (identifier)))))))

void MASKED(void *param_1,size_t param_2)

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

