Function at 0x4014a0
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48e5d6
mov eax, dword fs:[0]
push eax
sub esp, 0x11c
mov eax, dword [0x4c9070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x120], edi
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x4014eb
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x118], esi
xor ebx, ebx
mov dword [ebp - 4], 0
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x128], ebx
mov dword [ebp - 0x124], ebx
mov byte [ebp - 4], 1
test edi, edi
je 0x4016dc
mov eax, dword fs:[0x2c]
mov ecx, dword [eax]
mov eax, dword [0x4d67a8]
cmp eax, dword [ecx + 4]
jle 0x40155d
push 0x4d67a8
call fcn.0046c1c1
add esp, 4
cmp dword [0x4d67a8], 0xffffffff
jne 0x40155d
call fcn.00408a00
push 0x4d67a8
call fcn.0046c182
add esp, 4
mov ecx, 0x4d69b0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401565
sub ecx, edx
sar ecx, 1
push ecx
push 0x4d69b0
lea ecx, [ebp - 0x118]
call fcn.004046a0
mov eax, dword [ebp - 0x118]
mov edx, dword [eax - 0xc]
lea ecx, [edx - 1]
test ecx, ecx
js 0x4016cc
cmp ecx, edx
jg 0x4016cc
cmp word [eax + ecx*2], 0x5c
je 0x4015ba
push 1
push 0x4a1b6c
lea ecx, [ebp - 0x118]
call fcn.00403730
push 7
push str.VERSION
lea ecx, [ebp - 0x118]
call fcn.00403730
mov esi, dword [ebp - 0x118]
lea eax, [ebp - 0x110]
mov dword [ebp - 0x114], eax
test esi, esi
jne 0x4015ec
xor eax, eax
mov dword [ebp - 0x114], eax
jmp 0x40163b
mov edi, esi
lea ecx, [edi + 2]
mov ax, word [edi]
add edi, 2
test ax, ax
jne 0x4015f1
sub edi, ecx
lea eax, [ebp - 0x110]
sar edi, 1
push ecx
inc edi
lea ecx, [ebp - 0x114]
push eax
mov edx, edi
call fcn.00404310
mov ecx, dword [ebp - 0x114]
lea edx, [edi + edi]
push edx
push esi
call fcn.00404600
push eax
call fcn.00404af0
mov eax, dword [ebp - 0x114]
add esp, 0x14
mov edi, dword [ebp - 0x120]
push 0
push 0x80
push 2
push 0
push 1
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
cmp eax, 0xffffffff
jne 0x401662
call fcn.00404b90
mov ebx, eax
jmp 0x40166a
mov dword [ebp - 0x11c], eax
xor ebx, ebx
mov eax, dword [ebp - 0x114]
lea ecx, [ebp - 0x110]
shr ebx, 0x1f
cmp eax, ecx
je 0x401686
push eax
call fcn.00471958
add esp, 4
test bl, bl
jne 0x4016d6
mov ecx, edi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x401690
mov ebx, dword [ebp - 0x11c]
lea eax, [ebp - 0x120]
push 0
push eax
sub ecx, edx
push ecx
push edi
push ebx
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x4016c3
call fcn.00404b90
mov edi, eax
not edi
shr edi, 0x1f
jmp 0x4016de
xor edi, edi
not edi
shr edi, 0x1f
jmp 0x4016de
push 0x80070057
call fcn.00404ad0
mov ebx, dword [ebp - 0x11c]
xor edi, edi
test ebx, ebx
je 0x4016e9
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 4], 0xffffffff
add esi, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x401708
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046be2f
mov esp, ebp
pop ebp
ret