Function at 0x409f16
Capabilities:
Delete file
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x1c
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], edi
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx]
mov dword [eax + 0x40068], 0
lea ecx, [ebx + 0x78]
mov edx, dword [ebx + 0x80]
mov eax, edx
not eax
shr eax, 0x1f
test al, al
je 0x40a13d
mov esi, ecx
mov dword [esp], edx
call sub.msvcrt.dll__close
test eax, eax
je 0x40a121
cmp dword [0x7184d0], 0
je 0x409f7c
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x40a021
cmp dword [0x7184d0], 0
je 0x409fad
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov edi, eax
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
jne 0x40a0ca
cmp dword [0x7184d0], 0
je 0x40a056
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x44eac6
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], ebx
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [esi + 8], 0xffffffff
mov eax, dword [ebx + 0x84]
mov dword [esp], eax
call sub.msvcrt.dll__wremove
mov dword [ebx + 0x70], 0
lea ecx, [ebx + 0x14]
mov edx, dword [ebx + 0x1c]
mov eax, edx
not eax
shr eax, 0x1f
test al, al
je 0x40a32d
mov esi, ecx
mov dword [esp], edx
call sub.msvcrt.dll__close
test eax, eax
je 0x40a326
cmp dword [0x7184d0], 0
je 0x40a181
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x40a226
cmp dword [0x7184d0], 0
je 0x40a1b2
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov edi, eax
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
mov ebx, eax
test eax, eax
jne 0x40a2cf
cmp dword [0x7184d0], 0
je 0x40a25b
mov dword [esp + 4], 1
mov dword [esp], 0x7184f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.004019f2
mov ebx, eax
mov dword [esp], 0x40000
call fcn.004019f2
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x44e828
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], esi
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x44eac6
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040ee32
mov dword [esp + 0xc], 0x10
mov dword [esp + 8], str.Error_encountered
mov dword [esp + 4], ebx
mov dword [esp], 0
call sub.USER32.dll_MessageBoxW
sub esp, 0x10
call fcn.0040a376
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [esi + 8], 0xffffffff
call fcn.00412944
mov eax, dword [ebx + 4]
mov edx, dword [eax]
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
call dword [edx + 0x3c]
mov eax, dword [ebx]
cmp dword [eax + 0x40068], 0
setne al
movzx eax, al
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add esp, 0x1c
ret