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

void ask_and_unlink(void)

{
}



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

undefined4 __regparm3 FUN_000a56df(char *param_1,uint param_2)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  
  piVar2 = DAT_000d16fc;
  if ((param_2 & 0x18) != 0) {
    iVar1 = *DAT_000d16fc;
    if ((param_2 & 0x10) != 0) {
      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,
                    param_1);
      iVar3 = FUN_000a4f04();
      if (iVar3 == 0) {
        return 0;
      }
    }
    iVar3 = unlink(param_1);
    if (-1 < iVar3) {
      if ((param_2 & 0x9000) != 0x9000) {
        return 1;
      }
      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);
      return 1;
    }
    if ((*piVar2 == iVar1) && (iVar1 == 2)) {
      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);
      return 0xffffffff;
    }
    *piVar2 = iVar1;
  }
  FUN_00018e3c("can\'t create \'%s\'",param_1);
  return 0xffffffff;
}


PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x1c
CALL 0x00017640
ADD EBX,0x2b335
MOV EBP,EAX
TEST DL,0x18
JZ 0x000a576b
MOV EDI,dword ptr [EBX + 0xcdc]
MOV EAX,dword ptr [EDI]
MOV dword ptr [ESP + 0x8],EAX
TEST DL,0x10
JZ 0x000a5749
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0xc
PUSH EBP
PUSH dword ptr [EBX + 0xcd8]
LEA EAX,[EBX + 0xffffce45]
PUSH EAX
PUSH 0x1
MOV EAX,dword ptr [EBX + 0x56c]
PUSH dword ptr [EAX]
CALL 0x00017350
ADD ESP,0x20
CALL 0x000a4f04
MOV ESI,EAX
TEST EAX,EAX
JNZ 0x000a5745
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [ESP + 0xc]
MOV dword ptr [ESP + 0xc],EDX
SUB ESP,0xc
PUSH EBP
CALL 0x000165d0
ADD ESP,0x10
TEST EAX,EAX
JNS 0x000a578d
MOV EAX,dword ptr [ESP + 0x8]
CMP dword ptr [EDI],EAX
JZ 0x000a57c1
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EDI],EAX
SUB ESP,0x8
PUSH EBP
LEA EAX,[EBX + 0xffff3ed7]
PUSH EAX
CALL 0x00018e3c
ADD ESP,0x10
MOV ESI,0xffffffff
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
MOV EDX,dword ptr [ESP + 0xc]
AND EDX,0x9000
MOV ESI,0x1
CMP EDX,0x9000
JNZ 0x000a573b
PUSH EAX
PUSH EBP
LEA EAX,[EBX + 0xffffce5a]
PUSH EAX
PUSH 0x1
CALL 0x00016f40
ADD ESP,0x10
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP EAX,0x2
JNZ 0x000a5765
SUB ESP,0x8
PUSH EBP
LEA EAX,[EBX + 0xfffec5b4]
PUSH EAX
CALL 0x000191bd
ADD ESP,0x10
MOV ESI,0xffffffff
MOV EAX,ESI
ADD ESP,0x1c
POP EBX
POP ESI
POP EDI
POP EBP
RET
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nundefined4 __regparm3 FUN_000a56df(char *param_1,uint param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}\n\n" comment (function_definition "undefined4 __regparm3 FUN_000a56df(char *param_1,uint param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000a56df(char *param_1,uint param_2)" identifier (parameter_list "(char *param_1,uint param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "piVar2 = DAT_000d16fc;" (assignment_expression "piVar2 = DAT_000d16fc" identifier = identifier) ;) (if_statement "if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }" if (parenthesized_expression "((param_2 & 0x18) != 0)" ( (binary_expression "(param_2 & 0x18) != 0" (parenthesized_expression "(param_2 & 0x18)" ( (binary_expression "param_2 & 0x18" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }" { (expression_statement "iVar1 = *DAT_000d16fc;" (assignment_expression "iVar1 = *DAT_000d16fc" identifier = (pointer_expression "*DAT_000d16fc" * identifier)) ;) (if_statement "if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "((param_2 & 0x10) != 0)" ( (binary_expression "(param_2 & 0x10) != 0" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000d0f8c" * (cast_expression "(undefined4 *)PTR_stderr_000d0f8c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""%s: overwrite \'%s\'? "" " string_content escape_sequence string_content escape_sequence string_content ") , identifier , identifier ))) ;) (expression_statement "iVar3 = FUN_000a4f04();" (assignment_expression "iVar3 = FUN_000a4f04()" identifier = (call_expression "FUN_000a4f04()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar3 = unlink(param_1);" (assignment_expression "iVar3 = unlink(param_1)" identifier = (call_expression "unlink(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }" { (if_statement "if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }" if (parenthesized_expression "((param_2 & 0x9000) != 0x9000)" ( (binary_expression "(param_2 & 0x9000) != 0x9000" (parenthesized_expression "(param_2 & 0x9000)" ( (binary_expression "param_2 & 0x9000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "__printf_chk(1,"removed \'%s\'\n",param_1,iVar3);" (call_expression "__printf_chk(1,"removed \'%s\'\n",param_1,iVar3)" identifier (argument_list "(1,"removed \'%s\'\n",param_1,iVar3)" ( number_literal , (string_literal ""removed \'%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }" if (parenthesized_expression "((*piVar2 == iVar1) && (iVar1 == 2))" ( (binary_expression "(*piVar2 == iVar1) && (iVar1 == 2)" (parenthesized_expression "(*piVar2 == iVar1)" ( (binary_expression "*piVar2 == iVar1" (pointer_expression "*piVar2" * identifier) == identifier) )) && (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }" { (expression_statement "FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);" (call_expression "FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1)" identifier (argument_list "("can\'t create \'%s\': Path does not exist",param_1)" ( (string_literal ""can\'t create \'%s\': Path does not exist"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "*piVar2 = iVar1;" (assignment_expression "*piVar2 = iVar1" (pointer_expression "*piVar2" * identifier) = identifier) ;) })) (expression_statement "FUN_00018e3c("can\'t create \'%s\'",param_1);" (call_expression "FUN_00018e3c("can\'t create \'%s\'",param_1)" identifier (argument_list "("can\'t create \'%s\'",param_1)" ( (string_literal ""can\'t create \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.bx replaced with injection: get_pc_thunk_bx */\n\nvoid ask_and_unlink(void)\n\n{\n}\n\n" comment (function_definition "void ask_and_unlink(void)\n\n{\n}" primitive_type (function_declarator "ask_and_unlink(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n}" { })))
(translation_unit "undefined4 __regparm3 FUN_000a56df(char *param_1,uint param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}\n\n" (function_definition "undefined4 __regparm3 FUN_000a56df(char *param_1,uint param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}" type_identifier (ERROR "__regparm3" identifier) (function_declarator "FUN_000a56df(char *param_1,uint param_2)" identifier (parameter_list "(char *param_1,uint param_2)" ( (parameter_declaration "char *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "int *piVar2;" primitive_type (pointer_declarator "*piVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (expression_statement "piVar2 = DAT_000d16fc;" (assignment_expression "piVar2 = DAT_000d16fc" identifier = identifier) ;) (if_statement "if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }" if (parenthesized_expression "((param_2 & 0x18) != 0)" ( (binary_expression "(param_2 & 0x18) != 0" (parenthesized_expression "(param_2 & 0x18)" ( (binary_expression "param_2 & 0x18" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }" { (expression_statement "iVar1 = *DAT_000d16fc;" (assignment_expression "iVar1 = *DAT_000d16fc" identifier = (pointer_expression "*DAT_000d16fc" * identifier)) ;) (if_statement "if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "((param_2 & 0x10) != 0)" ( (binary_expression "(param_2 & 0x10) != 0" (parenthesized_expression "(param_2 & 0x10)" ( (binary_expression "param_2 & 0x10" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }" { (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1)" identifier (argument_list "(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1)" ( (pointer_expression "*(undefined4 *)PTR_stderr_000d0f8c" * (cast_expression "(undefined4 *)PTR_stderr_000d0f8c" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , number_literal , (string_literal ""%s: overwrite \'%s\'? "" " string_content escape_sequence string_content escape_sequence string_content ") , identifier , identifier ))) ;) (expression_statement "iVar3 = FUN_000a4f04();" (assignment_expression "iVar3 = FUN_000a4f04()" identifier = (call_expression "FUN_000a4f04()" identifier (argument_list "()" ( )))) ;) (if_statement "if (iVar3 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "iVar3 = unlink(param_1);" (assignment_expression "iVar3 = unlink(param_1)" identifier = (call_expression "unlink(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) (if_statement "if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }" if (parenthesized_expression "(-1 < iVar3)" ( (binary_expression "-1 < iVar3" number_literal < identifier) )) (compound_statement "{\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }" { (if_statement "if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }" if (parenthesized_expression "((param_2 & 0x9000) != 0x9000)" ( (binary_expression "(param_2 & 0x9000) != 0x9000" (parenthesized_expression "(param_2 & 0x9000)" ( (binary_expression "param_2 & 0x9000" identifier & number_literal) )) != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "__printf_chk(1,"removed \'%s\'\n",param_1,iVar3);" (call_expression "__printf_chk(1,"removed \'%s\'\n",param_1,iVar3)" identifier (argument_list "(1,"removed \'%s\'\n",param_1,iVar3)" ( number_literal , (string_literal ""removed \'%s\'\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , identifier , identifier ))) ;) (return_statement "return 1;" return number_literal ;) })) (if_statement "if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }" if (parenthesized_expression "((*piVar2 == iVar1) && (iVar1 == 2))" ( (binary_expression "(*piVar2 == iVar1) && (iVar1 == 2)" (parenthesized_expression "(*piVar2 == iVar1)" ( (binary_expression "*piVar2 == iVar1" (pointer_expression "*piVar2" * identifier) == identifier) )) && (parenthesized_expression "(iVar1 == 2)" ( (binary_expression "iVar1 == 2" identifier == number_literal) ))) )) (compound_statement "{\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }" { (expression_statement "FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);" (call_expression "FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1)" identifier (argument_list "("can\'t create \'%s\': Path does not exist",param_1)" ( (string_literal ""can\'t create \'%s\': Path does not exist"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) })) (expression_statement "*piVar2 = iVar1;" (assignment_expression "*piVar2 = iVar1" (pointer_expression "*piVar2" * identifier) = identifier) ;) })) (expression_statement "FUN_00018e3c("can\'t create \'%s\'",param_1);" (call_expression "FUN_00018e3c("can\'t create \'%s\'",param_1)" identifier (argument_list "("can\'t create \'%s\'",param_1)" ( (string_literal ""can\'t create \'%s\'"" " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , identifier ))) ;) (return_statement "return 0xffffffff;" return number_literal ;) })))
(translation_unit (function_definition TYPE (ERROR IDENT) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) , LIT , (string_literal " string_content escape_sequence string_content escape_sequence string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) != LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , IDENT , IDENT ))) ;) (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == IDENT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence string_content ") , IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content escape_sequence string_content escape_sequence string_content escape_sequence ") , IDENT ))) ;) (return_statement return LIT ;) })))
(function_definition "undefined4 __regparm3 FUN_000a56df(char *param_1,uint param_2)\n\n{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}" (type_identifier "undefined4") (ERROR "__regparm3" (identifier "__regparm3")) (function_declarator "FUN_000a56df(char *param_1,uint param_2)" (identifier "FUN_000a56df") (parameter_list "(char *param_1,uint param_2)" (( "(") (parameter_declaration "char *param_1" (primitive_type "char") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) () ")"))) (compound_statement "{\n  int iVar1;\n  int *piVar2;\n  int iVar3;\n  \n  piVar2 = DAT_000d16fc;\n  if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }\n  FUN_00018e3c("can\'t create \'%s\'",param_1);\n  return 0xffffffff;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "int *piVar2;" (primitive_type "int") (pointer_declarator "*piVar2" (* "*") (identifier "piVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (expression_statement "piVar2 = DAT_000d16fc;" (assignment_expression "piVar2 = DAT_000d16fc" (identifier "piVar2") (= "=") (identifier "DAT_000d16fc")) (; ";")) (if_statement "if ((param_2 & 0x18) != 0) {\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }" (if "if") (parenthesized_expression "((param_2 & 0x18) != 0)" (( "(") (binary_expression "(param_2 & 0x18) != 0" (parenthesized_expression "(param_2 & 0x18)" (( "(") (binary_expression "param_2 & 0x18" (identifier "param_2") (& "&") (number_literal "0x18")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar1 = *DAT_000d16fc;\n    if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }\n    iVar3 = unlink(param_1);\n    if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }\n    if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }\n    *piVar2 = iVar1;\n  }" ({ "{") (expression_statement "iVar1 = *DAT_000d16fc;" (assignment_expression "iVar1 = *DAT_000d16fc" (identifier "iVar1") (= "=") (pointer_expression "*DAT_000d16fc" (* "*") (identifier "DAT_000d16fc"))) (; ";")) (if_statement "if ((param_2 & 0x10) != 0) {\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "((param_2 & 0x10) != 0)" (( "(") (binary_expression "(param_2 & 0x10) != 0" (parenthesized_expression "(param_2 & 0x10)" (( "(") (binary_expression "param_2 & 0x10" (identifier "param_2") (& "&") (number_literal "0x10")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);\n      iVar3 = FUN_000a4f04();\n      if (iVar3 == 0) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "__fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1);" (call_expression "__fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1)" (identifier "__fprintf_chk") (argument_list "(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,\n                    param_1)" (( "(") (pointer_expression "*(undefined4 *)PTR_stderr_000d0f8c" (* "*") (cast_expression "(undefined4 *)PTR_stderr_000d0f8c" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_stderr_000d0f8c"))) (, ",") (number_literal "1") (, ",") (string_literal ""%s: overwrite \'%s\'? "" (" """) (string_content "%s: overwrite ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content "? ") (" """)) (, ",") (identifier "DAT_000d16f8") (, ",") (identifier "param_1") () ")"))) (; ";")) (expression_statement "iVar3 = FUN_000a4f04();" (assignment_expression "iVar3 = FUN_000a4f04()" (identifier "iVar3") (= "=") (call_expression "FUN_000a4f04()" (identifier "FUN_000a4f04") (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar3 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "iVar3 = unlink(param_1);" (assignment_expression "iVar3 = unlink(param_1)" (identifier "iVar3") (= "=") (call_expression "unlink(param_1)" (identifier "unlink") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (-1 < iVar3) {\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }" (if "if") (parenthesized_expression "(-1 < iVar3)" (( "(") (binary_expression "-1 < iVar3" (number_literal "-1") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n      if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }\n      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);\n      return 1;\n    }" ({ "{") (if_statement "if ((param_2 & 0x9000) != 0x9000) {\n        return 1;\n      }" (if "if") (parenthesized_expression "((param_2 & 0x9000) != 0x9000)" (( "(") (binary_expression "(param_2 & 0x9000) != 0x9000" (parenthesized_expression "(param_2 & 0x9000)" (( "(") (binary_expression "param_2 & 0x9000" (identifier "param_2") (& "&") (number_literal "0x9000")) () ")")) (!= "!=") (number_literal "0x9000")) () ")")) (compound_statement "{\n        return 1;\n      }" ({ "{") (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (expression_statement "__printf_chk(1,"removed \'%s\'\n",param_1,iVar3);" (call_expression "__printf_chk(1,"removed \'%s\'\n",param_1,iVar3)" (identifier "__printf_chk") (argument_list "(1,"removed \'%s\'\n",param_1,iVar3)" (( "(") (number_literal "1") (, ",") (string_literal ""removed \'%s\'\n"" (" """) (string_content "removed ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (escape_sequence "\n") (" """)) (, ",") (identifier "param_1") (, ",") (identifier "iVar3") () ")"))) (; ";")) (return_statement "return 1;" (return "return") (number_literal "1") (; ";")) (} "}"))) (if_statement "if ((*piVar2 == iVar1) && (iVar1 == 2)) {\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }" (if "if") (parenthesized_expression "((*piVar2 == iVar1) && (iVar1 == 2))" (( "(") (binary_expression "(*piVar2 == iVar1) && (iVar1 == 2)" (parenthesized_expression "(*piVar2 == iVar1)" (( "(") (binary_expression "*piVar2 == iVar1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (== "==") (identifier "iVar1")) () ")")) (&& "&&") (parenthesized_expression "(iVar1 == 2)" (( "(") (binary_expression "iVar1 == 2" (identifier "iVar1") (== "==") (number_literal "2")) () ")"))) () ")")) (compound_statement "{\n      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);\n      return 0xffffffff;\n    }" ({ "{") (expression_statement "FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);" (call_expression "FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1)" (identifier "FUN_000191bd") (argument_list "("can\'t create \'%s\': Path does not exist",param_1)" (( "(") (string_literal ""can\'t create \'%s\': Path does not exist"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t create ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (string_content ": Path does not exist") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}"))) (expression_statement "*piVar2 = iVar1;" (assignment_expression "*piVar2 = iVar1" (pointer_expression "*piVar2" (* "*") (identifier "piVar2")) (= "=") (identifier "iVar1")) (; ";")) (} "}"))) (expression_statement "FUN_00018e3c("can\'t create \'%s\'",param_1);" (call_expression "FUN_00018e3c("can\'t create \'%s\'",param_1)" (identifier "FUN_00018e3c") (argument_list "("can\'t create \'%s\'",param_1)" (( "(") (string_literal ""can\'t create \'%s\'"" (" """) (string_content "can") (escape_sequence "\'") (string_content "t create ") (escape_sequence "\'") (string_content "%s") (escape_sequence "\'") (" """)) (, ",") (identifier "param_1") () ")"))) (; ";")) (return_statement "return 0xffffffff;" (return "return") (number_literal "0xffffffff") (; ";")) (} "}")))

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

void function_1(void)

{
}


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

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

undefined4 __regparm3 MASKED(char *param_1,uint param_2)

{
  int iVar1;
  int *piVar2;
  int iVar3;
  
  piVar2 = DAT_000d16fc;
  if ((param_2 & 0x18) != 0) {
    iVar1 = *DAT_000d16fc;
    if ((param_2 & 0x10) != 0) {
      __fprintf_chk(*(undefined4 *)PTR_stderr_000d0f8c,1,"%s: overwrite \'%s\'? ",DAT_000d16f8,
                    param_1);
      iVar3 = FUN_000a4f04();
      if (iVar3 == 0) {
        return 0;
      }
    }
    iVar3 = unlink(param_1);
    if (-1 < iVar3) {
      if ((param_2 & 0x9000) != 0x9000) {
        return 1;
      }
      __printf_chk(1,"removed \'%s\'\n",param_1,iVar3);
      return 1;
    }
    if ((*piVar2 == iVar1) && (iVar1 == 2)) {
      FUN_000191bd("can\'t create \'%s\': Path does not exist",param_1);
      return 0xffffffff;
    }
    *piVar2 = iVar1;
  }
  FUN_00018e3c("can\'t create \'%s\'",param_1);
  return 0xffffffff;
}

