Function at 0x4012b0
Capabilities:
Create http request
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x408150
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
mov eax, 0x2828
call fcn.00401f50
mov eax, dword [0x40b050]
push ebx
push esi
push edi
xor esi, esi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], esp
mov byte [ebp - 0x2814], 0
xor eax, eax
mov ecx, 0x9ff
lea edi, [ebp - 0x2813]
rep stosd dword es:[edi], eax
push esi
push esi
push esi
stosw word es:[edi], ax
push esi
push 0x4091e4
mov dword [ebp - 0x2824], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x281c], esi
mov dword [ebp - 0x2830], esi
stosb byte es:[edi], al
mov dword [ebp - 0x2818], 0x2800
call dword [sym.imp.WININET.dll_InternetOpenA]
cmp eax, esi
mov dword [ebp - 0x2820], eax
jne 0x40134f
push 0x40a7ac
lea eax, [ebp - 0x2828]
push eax
mov dword [ebp - 0x2828], 1
call fcn.0040245e
mov ecx, dword [ebp + 8]
push esi
push 0x84003000
push esi
push esi
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov ebx, eax
cmp ebx, esi
mov dword [ebp - 0x2824], ebx
jne 0x401389
push 0x40a7ac
lea edx, [ebp - 0x2838]
push edx
mov dword [ebp - 0x2838], 2
call fcn.0040245e
xor eax, eax
push esi
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov ecx, 0xa00
lea edi, [ebp - 0x2814]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2818]
push eax
lea ecx, [ebp - 0x2814]
push ecx
push 0x13
push ebx
mov dword [ebp - 0x2818], 0x2800
call esi
test eax, eax
je 0x4013e4
cmp byte [ebp - 0x2814], 0x32
je 0x4013e4
push 0x40a7ac
lea edx, [ebp - 0x2834]
push edx
mov dword [ebp - 0x2834], 3
call fcn.0040245e
xor eax, eax
push eax
mov ecx, 0xa00
lea edi, [ebp - 0x2814]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x2818]
push eax
lea ecx, [ebp - 0x2814]
push ecx
push 1
push ebx
mov dword [ebp - 0x2818], 0x2800
call esi
test eax, eax
je 0x40147e
mov edx, dword [ebp + 0x14]
mov eax, edx
lea esi, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401420
sub eax, esi
push eax
push edx
lea edx, [ebp - 0x2814]
push edx
call fcn.00407fa8
add esp, 0xc
test eax, eax
je 0x40147e
push 0x40a7ac
lea eax, [ebp - 0x282c]
push eax
mov dword [ebp - 0x282c], 3
call fcn.0040245e
mov ecx, dword [ebp - 0x2824]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ecx
call esi
mov edx, dword [ebp - 0x2820]
push edx
call esi
mov eax, 0x401477
ret
mov esi, dword [ebp + 0xc]
mov ecx, 0xa00
xor eax, eax
lea edi, [ebp - 0x2814]
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x281c]
push eax
mov edi, 0x2800
push edi
lea ecx, [ebp - 0x2814]
push ecx
push ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4014ed
mov eax, dword [ebp - 0x281c]
test eax, eax
je 0x4014ed
mov ecx, dword [esi]
push 0
lea edx, [ebp - 0x2830]
push edx
push eax
lea eax, [ebp - 0x2814]
push eax
push ecx
call dword [sym.imp.KERNEL32.DLL_WriteFile]
mov ecx, edi
mov edx, ecx
shr ecx, 2
xor eax, eax
lea edi, [ebp - 0x2814]
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
jmp 0x401490
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
mov eax, dword [ebp - 0x2820]
push eax
call esi
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x14]
call fcn.00401f3f
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret