Function at 0x4016c0
Capabilities:
Connect to http server
Create http request
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x63c
mov eax, dword [0x578b60]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
push 0x104
mov esi, edx
lea edx, [ebp - 0x61c]
push 0
push edx
mov dword [ebp - 0x638], eax
mov dword [ebp - 0x634], ecx
call fcn.0050b0e0
push 0x104
lea eax, [ebp - 0x310]
push 0
push eax
call fcn.0050b0e0
push 0x104
lea ecx, [ebp - 0x414]
push 0
push ecx
call fcn.0050b0e0
push 0x104
lea edx, [ebp - 0x518]
push 0
push edx
call fcn.0050b0e0
push 0x104
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0050b0e0
push 0x104
lea ecx, [ebp - 0x108]
push 0
push ecx
call fcn.0050b0e0
add esp, 0x48
lea edx, [ebp - 0x414]
push edx
lea eax, [ebp - 0x310]
push eax
lea ecx, [ebp - 0x61c]
push ecx
push esi
lea esi, [ebp - 0x108]
lea edi, [ebp - 0x20c]
lea ebx, [ebp - 0x518]
call fcn.00401600
add esp, 0x10
test eax, eax
jne 0x4017a1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00509d41
mov esp, ebp
pop ebp
ret
lea edx, [ebp - 0x108]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4017c6
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x20c]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcatA]
xor esi, esi
push esi
push esi
push esi
push esi
push str.WinInet_Ftp_Download_V1.0
mov dword [ebp - 0x630], esi
mov dword [ebp - 0x624], esi
xor edi, edi
mov dword [ebp - 0x620], esi
xor ebx, ebx
mov dword [ebp - 0x62c], esi
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x63c], eax
test eax, eax
je 0x4018fe
push ebx
push 0x8000000
push 1
lea edx, [ebp - 0x518]
push edx
lea ecx, [ebp - 0x414]
push ecx
push ebx
lea edx, [ebp - 0x310]
push edx
push eax
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x630], eax
test eax, eax
je 0x4018fe
push ebx
push reloc.OLEAUT32.dll_SysReAllocString
push SysReAllocString
lea ecx, [ebp - 0x20c]
push ecx
push eax
call dword [sym.imp.WININET.dll_FtpOpenFileA]
mov dword [ebp - 0x624], eax
test eax, eax
je 0x4018fe
push ebx
push eax
call dword [sym.imp.WININET.dll_FtpGetFileSize]
push eax
mov dword [ebp - 0x628], eax
call fcn.00403c5a
mov edi, eax
add esp, 4
test edi, edi
je 0x4018fe
mov edx, dword [ebp - 0x628]
push edx
push ebx
push edi
call fcn.0050b0e0
push 0x1000
call fcn.00403c5a
mov esi, eax
add esp, 0x10
test esi, esi
je 0x4018fe
push 0x1000
push ebx
push esi
call fcn.0050b0e0
add esp, 0xc
lea esp, [esp]
mov ecx, dword [ebp - 0x624]
lea eax, [ebp - 0x620]
push eax
push 0x1000
push esi
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x62c], eax
test eax, eax
je 0x4018fe
mov edx, dword [ebp - 0x620]
push edx
lea eax, [ebx + edi]
push esi
push eax
call fcn.0050ef40
add ebx, dword [ebp - 0x620]
add esp, 0xc
cmp dword [ebp - 0x628], ebx
ja 0x4018b0
mov eax, dword [ebp - 0x628]
jmp 0x40190b
push edi
call fcn.00403c65
add esp, 4
xor edi, edi
xor eax, eax
mov ecx, dword [ebp - 0x638]
mov edx, dword [ebp - 0x634]
mov dword [ecx], edi
mov dword [edx], eax
test esi, esi
je 0x401928
push esi
call fcn.00403c65
add esp, 4
mov eax, dword [ebp - 0x624]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
test eax, eax
je 0x40193b
push eax
call esi
mov eax, dword [ebp - 0x630]
test eax, eax
je 0x401948
push eax
call esi
mov eax, dword [ebp - 0x63c]
test eax, eax
je 0x401955
push eax
call esi
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0x62c]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00509d41
mov esp, ebp
pop ebp
ret