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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x678
mov eax, dword [0x410024]
xor eax, ebp
mov dword [ebp - 4], eax
mov byte [ebp - 0x550], 0
push 0x103
push 0
lea eax, [ebp - 0x54f]
push eax
call fcn.00403780
add esp, 0xc
mov byte [ebp - 0x218], 0
push 0x103
push 0
lea ecx, [ebp - 0x217]
push ecx
call fcn.00403780
add esp, 0xc
mov byte [ebp - 0x668], 0
push 0x103
push 0
lea edx, [ebp - 0x667]
push edx
call fcn.00403780
add esp, 0xc
mov byte [ebp - 0x328], 0
push 0x103
push 0
lea eax, [ebp - 0x327]
push eax
call fcn.00403780
add esp, 0xc
mov byte [ebp - 0x110], 0
push 0x103
push 0
lea ecx, [ebp - 0x10f]
push ecx
call fcn.00403780
add esp, 0xc
mov byte [ebp - 0x438], 0
push 0x103
push 0
lea edx, [ebp - 0x437]
push edx
call fcn.00403780
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x550]
push eax
call fcn.00403780
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x218]
push ecx
call fcn.00403780
add esp, 0xc
push 0x104
push 0
lea edx, [ebp - 0x668]
push edx
call fcn.00403780
add esp, 0xc
push 0x104
push 0
lea eax, [ebp - 0x328]
push eax
call fcn.00403780
add esp, 0xc
push 0x104
push 0
lea ecx, [ebp - 0x110]
push ecx
call fcn.00403780
add esp, 0xc
push 0x104
push 0
lea edx, [ebp - 0x438]
push edx
call fcn.00403780
add esp, 0xc
push 0x104
lea eax, [ebp - 0x438]
push eax
lea ecx, [ebp - 0x110]
push ecx
lea edx, [ebp - 0x328]
push edx
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x218]
push ecx
lea edx, [ebp - 0x550]
push edx
mov eax, dword [ebp + 8]
push eax
call fcn.004012f0
add esp, 0x20
test eax, eax
jne 0x4015ab
xor eax, eax
jmp 0x4018b5
lea ecx, [ebp - 0x438]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jle 0x4015d0
lea edx, [ebp - 0x438]
push edx
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov dword [ebp - 0x560], 0
mov dword [ebp - 0x55c], 0
mov dword [ebp - 0x21c], 0
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x330], 0
mov dword [ebp - 0x440], 0x1000
mov dword [ebp - 0x558], 0
mov dword [ebp - 0x554], 0
mov dword [ebp - 0x32c], 0
mov dword [ebp - 0x43c], 0
push 0
push 0
push 0
push 0
push str.WinInet_Ftp_Download_V1.0
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x560], eax
cmp dword [ebp - 0x560], 0
jne 0x40165b
jmp 0x4017f1
push 0
push 0x8000000
push 1
lea ecx, [ebp - 0x328]
push ecx
lea edx, [ebp - 0x668]
push edx
push 0
lea eax, [ebp - 0x218]
push eax
mov ecx, dword [ebp - 0x560]
push ecx
call dword [sym.imp.WININET.dll_InternetConnectA]
mov dword [ebp - 0x55c], eax
cmp dword [ebp - 0x55c], 0
jne 0x40169c
jmp 0x4017f1
push 0
push 0x80000002
push 0x80000000
lea edx, [ebp - 0x110]
push edx
mov eax, dword [ebp - 0x55c]
push eax
call dword [sym.imp.WININET.dll_FtpOpenFileA]
mov dword [ebp - 0x21c], eax
cmp dword [ebp - 0x21c], 0
jne 0x4016d0
jmp 0x4017f1
push 0
mov ecx, dword [ebp - 0x21c]
push ecx
call dword [sym.imp.WININET.dll_FtpGetFileSize]
mov dword [ebp - 0x330], eax
mov edx, dword [ebp - 0x330]
push edx
call fcn.004038cb
add esp, 4
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp - 0x66c]
mov dword [ebp - 0x444], eax
cmp dword [ebp - 0x444], 0
jne 0x401714
jmp 0x4017f1
mov ecx, dword [ebp - 0x330]
push ecx
push 0
mov edx, dword [ebp - 0x444]
push edx
call fcn.00403780
add esp, 0xc
mov eax, dword [ebp - 0x440]
push eax
call fcn.004038cb
add esp, 4
mov dword [ebp - 0x670], eax
mov ecx, dword [ebp - 0x670]
mov dword [ebp - 0x558], ecx
cmp dword [ebp - 0x558], 0
jne 0x40175b
jmp 0x4017f1
mov edx, dword [ebp - 0x440]
push edx
push 0
mov eax, dword [ebp - 0x558]
push eax
call fcn.00403780
add esp, 0xc
lea ecx, [ebp - 0x554]
push ecx
mov edx, dword [ebp - 0x440]
push edx
mov eax, dword [ebp - 0x558]
push eax
mov ecx, dword [ebp - 0x21c]
push ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x43c], eax
cmp dword [ebp - 0x43c], 0
jne 0x4017a6
jmp 0x4017e9
mov edx, dword [ebp - 0x554]
push edx
mov eax, dword [ebp - 0x558]
push eax
mov ecx, dword [ebp - 0x444]
add ecx, dword [ebp - 0x32c]
push ecx
call fcn.00403010
add esp, 0xc
mov edx, dword [ebp - 0x32c]
add edx, dword [ebp - 0x554]
mov dword [ebp - 0x32c], edx
mov eax, dword [ebp - 0x330]
cmp eax, dword [ebp - 0x32c]
ja 0x401773
xor ecx, ecx
jne 0x401634
cmp dword [ebp - 0x43c], 0
jne 0x401829
mov edx, dword [ebp - 0x444]
mov dword [ebp - 0x674], edx
mov eax, dword [ebp - 0x674]
push eax
call fcn.004036e1
add esp, 4
mov dword [ebp - 0x444], 0
mov dword [ebp - 0x330], 0
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x444]
mov dword [ecx], edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp - 0x330]
mov dword [eax], ecx
cmp dword [ebp - 0x558], 0
je 0x40186d
mov edx, dword [ebp - 0x558]
mov dword [ebp - 0x678], edx
mov eax, dword [ebp - 0x678]
push eax
call fcn.004036e1
add esp, 4
mov dword [ebp - 0x558], 0
cmp dword [ebp - 0x21c], 0
je 0x401883
mov ecx, dword [ebp - 0x21c]
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x55c], 0
je 0x401899
mov edx, dword [ebp - 0x55c]
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x560], 0
je 0x4018af
mov eax, dword [ebp - 0x560]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x43c]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00402eb7
mov esp, ebp
pop ebp
ret