Function at 0x4042e0
Capabilities:
Delete file
Write file on windows

Disassembly:
sub esp, 0x7d8
mov eax, dword [0x40d018]
xor eax, esp
mov dword [esp + 0x7d4], eax
mov ecx, dword [0x40edbc]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
add eax, eax
push ebx
push esi
push edi
mov edx, ecx
sub edx, eax
push edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
mov edx, ecx
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x3e8
mov edx, ecx
sub edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x2710
mov edx, ecx
sub edx, eax
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x14f8b589
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x186a0
sub ecx, eax
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
push str._d_d_d_d_d.DAT
lea edx, [esp + 0x28]
push edx
mov edi, dword [sym.imp.MSVCR90.dll_sprintf]
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_CreateFileA]
add esp, 0x1c
push 0
push 0x80
push 3
push 0
push 1
push 0x80000000
lea eax, [esp + 0x28]
push eax
call ebx
mov esi, eax
cmp esi, 0xffffffff
je 0x404414
mov ecx, esi
call fcn.00404ad0
test eax, eax
jne 0x40442e
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x7d4]
xor ecx, esp
call fcn.00405fb6
add esp, 0x7d8
ret
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call ebp
test eax, eax
je 0x4045ee
lea ecx, [esp + 0x14]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov eax, dword [0x40edbc]
inc eax
mov dword [0x40edbc], eax
cmp dword [0x40edb8], eax
jne 0x4044cf
mov ecx, dword [0x40eda0]
push 1
add ecx, 0x15c
call sub.mfc90.dll_Ordinal_6584
mov edx, dword [0x40edb8]
mov eax, dword [0x40edbc]
push edx
push eax
lea ecx, [esp + 0x404]
push 0x409ed0
push ecx
call edi
mov ecx, dword [0x40eda0]
add esp, 0x10
push 0
add ecx, 0x2b8
call sub.mfc90.dll_Ordinal_6584
mov ecx, dword [0x40eda0]
lea edx, [esp + 0x3fc]
push edx
add ecx, 0x2b8
call sub.mfc90.dll_Ordinal_6559
mov ecx, dword [0x40eda0]
push 1
add ecx, 0x2b8
call sub.mfc90.dll_Ordinal_6584
push 0
push 0x80
push 2
push 0
push 2
push 0x40000000
push str.PRESENTVERSION.DAT
call ebx
mov esi, eax
cmp esi, 0xffffffff
je 0x4045ee
mov ecx, dword [0x40edbc]
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
lea eax, [eax + eax*4]
add eax, eax
mov edx, ecx
sub edx, eax
push edx
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x64
mov edx, ecx
sub edx, eax
mov eax, 0x66666667
imul edx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x3e8
mov edx, ecx
sub edx, eax
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x2710
mov edx, ecx
sub edx, eax
mov eax, 0x10624dd3
imul edx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x14f8b589
imul ecx
sar edx, 0xd
mov eax, edx
shr eax, 0x1f
add eax, edx
imul eax, eax, 0x186a0
sub ecx, eax
mov eax, 0x68db8bad
imul ecx
sar edx, 0xc
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
lea edx, [esp + 0x28]
push str._d_d_d_d_d
push edx
call edi
add esp, 0x1c
push 0
lea eax, [esp + 0x14]
push eax
push 5
lea ecx, [esp + 0x20]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_WriteFile]
push esi
test eax, eax
jne 0x4045f2
call ebp
xor eax, eax
jmp 0x404601
cmp dword [esp + 0x14], 5
jne 0x4045ec
call ebp
neg eax
sbb eax, eax
neg eax
mov ecx, dword [esp + 0x7e4]
pop ebp
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00405fb6
add esp, 0x7d8
ret