Function at 0x401cb0
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:
mov eax, 0x250c
call fcn.0040e170
mov eax, dword [0x415024]
xor eax, esp
mov dword [esp + 0x2508], eax
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, esi
mov edi, edx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401cd5
sub eax, edx
je 0x401d27
lea edx, [esp + 0x318]
mov eax, esi
sub edx, esi
jmp 0x401cf0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x401cf0
lea eax, [esp + 0x318]
push eax
call fcn.00401b60
push edi
lea ecx, [esp + 0x320]
push ecx
lea edx, [esp + 0x424]
push 0x412d40
push edx
call fcn.00403084
add esp, 0x14
jmp 0x401d3c
lea edx, [esp + 0x418]
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x401d32
lea edx, [esp + 0x118]
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x401d47
lea eax, [esp + 0x118]
lea edx, [eax + 1]
jmp 0x401d60
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401d60
sub eax, edx
xor ebp, ebp
cmp eax, ebp
mov bl, 0x2f
jle 0x401d96
xor ecx, ecx
cmp eax, ebp
jle 0x401d96
jmp 0x401d80
cmp byte [esp + ecx + 0x118], 0x5c
jne 0x401d91
mov byte [esp + ecx + 0x118], bl
inc ecx
cmp ecx, eax
jl 0x401d80
mov eax, 0x41cf50
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401da0
sub eax, edx
cmp byte [eax + 0x41cf4f], bl
jne 0x401dca
lea eax, [esp + 0x118]
push eax
push 0x41cf50
push str._s_s
lea ecx, [esp + 0x24]
push ecx
jmp 0x401de1
lea edx, [esp + 0x118]
push edx
push 0x41cf50
push str._s__s
lea eax, [esp + 0x24]
push eax
call fcn.00403084
lea eax, [esp + 0x28]
add esp, 0x10
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x401df0
sub eax, edx
push edi
cmp byte [esp + eax + 0x1b], bl
jne 0x401e14
lea ecx, [esp + 0x1c]
push ecx
push str._s_s
lea edx, [esp + 0x224]
push edx
jmp 0x401e26
lea eax, [esp + 0x1c]
push eax
push str._s__s
lea ecx, [esp + 0x224]
push ecx
call fcn.00403084
add esp, 0x10
lea edx, [esp + 0x218]
push edx
call dword [sym.imp.WININET.dll_DeleteUrlCacheEntry]
push ebp
push ebp
push ebp
push 1
push str.sremote
call dword [sym.imp.WININET.dll_InternetOpenA]
push ebp
push ebp
push ebp
push ebp
lea ecx, [esp + 0x228]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
push ebp
push 0x80
push 2
push ebp
push ebp
push 0x40000000
lea edx, [esp + 0x430]
push edx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
jne 0x401e89
xor eax, eax
jmp 0x401f07
lea eax, [esp + 0x10]
push eax
push 0x2000
lea ecx, [esp + 0x520]
push ecx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov ebp, dword [sym.imp.WININET.dll_InternetReadFile]
push esi
call ebp
cmp eax, 1
jne 0x401ef4
mov ebx, dword [sym.imp.KERNEL32.dll_WriteFile]
mov eax, dword [esp + 0x10]
test eax, eax
je 0x401ef4
push 0
lea edx, [esp + 0x18]
push edx
push eax
lea eax, [esp + 0x524]
push eax
push edi
mov dword [esp + 0x28], 0
call ebx
lea ecx, [esp + 0x10]
push ecx
push 0x2000
lea edx, [esp + 0x520]
push edx
push esi
call ebp
cmp eax, 1
je 0x401eb7
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, 1
mov ecx, dword [esp + 0x2518]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00402abc
add esp, 0x250c
ret