Function at 0x409528
Capabilities:
Delete file

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 0x409748
mov esi, ecx
mov dword [esp], edx
call sub.msvcrt.dll__close
test eax, eax
je 0x409733
cmp dword [0x6fb4d0], 0
je 0x40958e
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x409633
cmp dword [0x6fb4d0], 0
je 0x4095bf
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
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.0040996a
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 0x4096dc
cmp dword [0x6fb4d0], 0
je 0x409668
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
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.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4362a0
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040d56a
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.0040996a
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
lea ecx, [ebx + 0x14]
mov edx, dword [ebx + 0x1c]
mov eax, edx
not eax
shr eax, 0x1f
test al, al
je 0x409938
mov esi, ecx
mov dword [esp], edx
call sub.msvcrt.dll__close
test eax, eax
je 0x409931
cmp dword [0x6fb4d0], 0
je 0x40978c
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call sub.msvcrt.dll_malloc
test eax, eax
jne 0x409831
cmp dword [0x6fb4d0], 0
je 0x4097bd
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
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.0040996a
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 0x4098da
cmp dword [0x6fb4d0], 0
je 0x409866
mov dword [esp + 4], 1
mov dword [esp], 0x6fb4f0
call sub.msvcrt.dll_longjmp
mov dword [esp], 0x40000
call fcn.00401942
mov ebx, eax
mov dword [esp], 0x40000
call fcn.00401942
mov esi, eax
mov dword [esp + 8], 0x40000
mov dword [esp + 4], 0x436000
mov dword [esp], ebx
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], esi
mov dword [esp], ebx
call fcn.0040d56a
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.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov eax, dword [esi + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], 0x4362a0
mov dword [esp], edi
call sub.msvcrt.dll_sprintf
mov dword [esp + 4], ebx
mov dword [esp], edi
call fcn.0040d56a
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.0040996a
mov dword [esp], 2
call sub.msvcrt.dll_exit
mov dword [esi + 8], 0xffffffff
call fcn.0040f092
mov eax, dword [ebx + 4]
mov edx, dword [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 + 0x38]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
add esp, 0x1c
ret