
/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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);
}



/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

void FUN_001fcf80(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_001fcec0(param_1 * param_2);
}


PUSH EDI
PUSH ESI
PUSH EBX
MOV ESI,dword ptr [ESP + 0x10]
CALL 0x00036f20
ADD EBX,0x1b2074
MOV EDI,dword ptr [ESP + 0x14]
TEST ESI,ESI
JZ 0x001fcfb8
TEST EDI,EDI
JZ 0x001fcfb8
SUB ESP,0x8
PUSH EDI
PUSH ESI
CALL 0x0002a240
ADD ESP,0x10
TEST EAX,EAX
JZ 0x001fcfc4
POP EBX
POP ESI
POP EDI
RET
MOV EDI,0x1
MOV ESI,0x1
JMP 0x001fcf9e
IMUL ESI,EDI
SUB ESP,0xc
PUSH ESI
CALL 0x001fcec0
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid FUN_001fcf80(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_001fcec0(param_1 * param_2);\n}\n\n" comment (function_definition "void FUN_001fcf80(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_001fcec0(param_1 * param_2);\n}" primitive_type (function_declarator "FUN_001fcf80(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_001fcec0(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_001fcec0(param_1 * param_2);" (call_expression "FUN_001fcec0(param_1 * param_2)" identifier (argument_list "(param_1 * param_2)" ( (binary_expression "param_1 * param_2" identifier * identifier) ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid * 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" comment (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_001fcf80(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_001fcec0(param_1 * param_2);\n}\n\n" (function_definition "void FUN_001fcf80(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_001fcec0(param_1 * param_2);\n}" primitive_type (function_declarator "FUN_001fcf80(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_001fcec0(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_001fcec0(param_1 * param_2);" (call_expression "FUN_001fcec0(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_001fcf80(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_001fcec0(param_1 * param_2);\n}" (primitive_type "void") (function_declarator "FUN_001fcf80(size_t param_1,size_t param_2)" (identifier "FUN_001fcf80") (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_001fcec0(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_001fcec0(param_1 * param_2);" (call_expression "FUN_001fcec0(param_1 * param_2)" (identifier "FUN_001fcec0") (argument_list "(param_1 * param_2)" (( "(") (binary_expression "param_1 * param_2" (identifier "param_1") (* "*") (identifier "param_2")) () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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))))))))

/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */

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_001fcec0(param_1 * param_2);
}

