Function at 0x403abb
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
mov edi, 0x414c44
push esi
mov esi, 0x8000
push ebx
sub esp, 0x8c
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x14]
cmp dword [ebp + 0x10], 0
cmovne edi, dword [ebp + 0x10]
cmovne esi, ebx
test eax, eax
js 0x403af5
add eax, dword [0x433838]
mov dword [esp], eax
call fcn.00403a89
push ecx
lea eax, [ebp - 0x60]
mov dword [esp + 4], 4
mov dword [esp], eax
call fcn.00403a3d
test eax, eax
push edx
push edx
je 0x403d42
mov eax, dword [ebp - 0x60]
test eax, eax
jns 0x403cdc
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [0x424c58], 8
mov dword [0x425174], 0
mov dword [0x425170], 0
mov dword [0x42e800], 0x4267f8
mov dword [0x42e7fc], 0x4267f8
mov dword [ebp - 0x74], eax
mov eax, dword [ebp - 0x60]
mov dword [0x42e7f8], 0x42e7f8
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x70], eax
and dword [ebp - 0x70], 0x7fffffff
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x60]
test eax, eax
jle 0x403cd4
cmp eax, 0x4000
mov ebx, 0x4000
cmovle ebx, eax
mov dword [esp + 4], ebx
mov dword [esp], 0x410c44
call fcn.00403a3d
test eax, eax
push ecx
push ecx
je 0x403d42
sub dword [ebp - 0x60], ebx
mov dword [0x424c48], 0x410c44
mov dword [0x424c4c], ebx
mov dword [esp], 0x424c48
mov dword [0x424c50], edi
mov dword [0x424c54], esi
call fcn.0040896d
test eax, eax
push edx
mov dword [ebp - 0x78], eax
js 0x403cca
mov ebx, dword [0x424c50]
mov eax, dword [ebp - 0x7c]
call eax
sub ebx, edi
test byte [0x4337f0], 1
mov edx, eax
je 0x403c69
sub eax, dword [ebp - 0x74]
cmp eax, 0xc8
ja 0x403c12
cmp dword [ebp - 0x60], 0
jne 0x403c69
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x80], edx
mov dword [esp + 4], 0x64
mov dword [esp + 8], eax
sub eax, dword [ebp - 0x60]
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x74], ecx
sub esp, 0xc
mov dword [esp], ecx
mov dword [esp + 8], eax
mov dword [esp + 4], str....__d__
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp - 0x74]
mov dword [esp], 0
mov dword [esp + 4], ecx
call fcn.00406c5d
mov edx, dword [ebp - 0x80]
mov dword [ebp - 0x74], edx
push eax
push eax
test ebx, ebx
je 0x403b81
cmp dword [ebp + 0x10], 0
jne 0x403cb3
lea eax, [ebp - 0x5c]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], 0
mov dword [esp + 8], ebx
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
sub esp, 0x14
test eax, eax
je 0x403d49
cmp dword [ebp - 0x5c], ebx
jne 0x403d49
add dword [ebp - 0x6c], ebx
jmp 0x403cbe
add dword [ebp - 0x6c], ebx
sub esi, ebx
mov edi, dword [0x424c50]
cmp dword [ebp - 0x78], 1
jne 0x403bc6
jmp 0x403cd4
mov eax, 0xfffffffc
jmp 0x403d6c
mov eax, dword [ebp - 0x6c]
jmp 0x403d6c
cmp dword [ebp + 0x10], 0
jne 0x403d50
xor ebx, ebx
jmp 0x403d1e
lea eax, [ebp - 0x58]
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x10], 0
mov dword [esp + 8], edi
mov dword [esp + 4], 0x410c44
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
sub esp, 0x14
test eax, eax
je 0x403d49
cmp edi, dword [ebp - 0x58]
jne 0x403d49
sub dword [ebp - 0x60], edi
add ebx, edi
mov edx, dword [ebp - 0x60]
test edx, edx
jle 0x403d6a
cmp esi, edx
cmovle edx, esi
mov dword [esp + 4], edx
mov edi, edx
mov dword [esp], 0x410c44
call fcn.00403a3d
test eax, eax
push ecx
push ecx
jne 0x403ce6
mov eax, 0xfffffffd
jmp 0x403d6c
mov eax, 0xfffffffe
jmp 0x403d6c
cmp ebx, eax
cmovg ebx, eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.00403a3d
test eax, eax
push edx
push edx
je 0x403d42
mov eax, ebx
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 0x10