Function at 0x421e36
Capabilities:
Check for time delay via gettickcount
Check http status code
Create http request
Delete file
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Write file on windows

Disassembly:
sub esp, 0x4dc
mov eax, dword [0x518450]
xor eax, esp
mov dword [esp + 0x4d8], eax
mov eax, dword [esp + 0x4e8]
push ebx
mov ebx, dword [esp + 0x4e8]
push ebp
push esi
mov esi, dword [esp + 0x4ec]
mov dword [esp + 0x20], eax
push edi
mov dword [esp + 0x38], ebx
mov eax, dword [esi + 0xa8]
mov dword [esp + 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x18], eax
xor edi, edi
xor eax, eax
inc edi
push eax
push 0x80
push 2
push eax
push eax
push 0xc0000000
push ebx
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x422128
lea eax, [esp + 0xe8]
push esi
push eax
call fcn.00422724
pop ecx
pop ecx
push 0x10000000
xor eax, eax
push eax
push eax
push eax
lea eax, [esp + 0xf8]
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebx, eax
test ebx, ebx
je 0x422113
push 5
push 0x1807e9fd
push 0x2ee23ded
push 0x6b78ddae
mov esi, 0x84080300
call fcn.00401a68
add esp, 0xc
push eax
push dword [esp + 0x18]
call fcn.004bb020
add esp, 0xc
mov ecx, 0x84880300
test eax, eax
lea eax, [esp + 0x14]
mov dword [esp + 0x2c], eax
cmove esi, ecx
xor eax, eax
push eax
push eax
push eax
push eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
call dword [sym.imp.KERNEL32.dll_CreateEventW]
push 0x422143
push ebx
mov dword [esp + 0x3c], eax
call dword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
lea eax, [esp + 0x2c]
push eax
push esi
push 0
push 0
push dword [esp + 0x20]
push ebx
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x421f71
call esi
cmp eax, 0x3e5
je 0x421f71
call esi
mov edi, eax
jmp 0x422102
push 0xffffffffffffffff
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
and dword [esp + 0x20], 0
lea eax, [esp + 0x20]
push eax
push 0x13
push dword [esp + 0x1c]
call fcn.004223ab
add esp, 0xc
cmp dword [esp + 0x20], 0xc8
jne 0x4220f8
lea eax, [esp + 0x10]
push eax
push 5
push dword [esp + 0x1c]
call fcn.004223ab
add esp, 0xc
test eax, eax
je 0x421fcd
push 0x20
lea eax, [esp + 0x6c]
push eax
push 0
push dword [esp + 0x1c]
call dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
push 9
pop ecx
xor eax, eax
lea edi, [esp + 0x44]
rep stosd dword es:[edi], eax
push 0
lea eax, [esp + 0xec]
mov dword [esp + 0x44], 0x28
mov dword [esp + 0x58], eax
lea eax, [esp + 0x44]
push 9
push eax
push dword [esp + 0x20]
mov dword [esp + 0x68], 0x400
call dword [sym.imp.WININET.dll_InternetReadFileExA]
test eax, eax
jne 0x422025
call esi
cmp eax, 0x3e5
jne 0x4220ee
push 0xffffffffffffffff
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x421fcd
cmp dword [esp + 0x58], 0
je 0x4220f4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push 0
mov dword [esp + 0x20], eax
lea eax, [esp + 0x40]
push eax
push dword [esp + 0x60]
push dword [esp + 0x60]
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add edi, dword [esp + 0x58]
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x28], edi
cmp ecx, 0xc8
ja 0x422076
cmp edi, dword [esp + 0x10]
jne 0x421fcd
push 0x20
lea eax, [esp + 0xac]
push eax
push 0
push edi
call dword [sym.imp.SHLWAPI.dll_StrFormatByteSizeW]
lea eax, [esp + 0x68]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xf0]
push 0x5249f0
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x10
lea eax, [esp + 0xe8]
push eax
push 9
push dword [esp + 0x2c]
call dword [sym.imp.USER32.dll_SetDlgItemTextW]
push dword [esp + 0x10]
push 0x64
push edi
call dword [sym.imp.KERNEL32.dll_MulDiv]
push 0
push eax
push 0x402
push 0x34
push dword [esp + 0x34]
call dword [sym.imp.USER32.dll_SendDlgItemMessageW]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
jmp 0x421fcd
call esi
mov edi, eax
jmp 0x4220f8
mov edi, dword [esp + 0x30]
push dword [esp + 0x14]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [esp + 0x34]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebp
call dword [sym.imp.KERNEL32.dll_CloseHandle]
test edi, edi
je 0x422128
push dword [esp + 0x38]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov ecx, dword [esp + 0x4e8]
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004b9a6c
add esp, 0x4dc
ret