Function at 0x404a00
Capabilities:
Check for time delay via gettickcount
Check http status code
Create http request
Get http content length
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x456d61
mov eax, dword fs:[0]
push eax
sub esp, 0x284
mov eax, dword [0x4710b0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov edi, edx
xor esi, esi
xor edx, edx
mov dword [ebp - 0x278], eax
mov eax, ebx
mov word [ebp - 0x248], dx
mov dword [ebp - 0x274], ecx
mov dword [ebp - 0x270], str.Mozilla_4.0_compatible_MSIE9.0_WindowsNT6.1_LinLauncher_
mov dword [ebp - 0x234], 7
mov dword [ebp - 0x238], esi
lea edx, [eax + 2]
lea esp, [esp]
mov cx, word [eax]
add eax, 2
cmp cx, si
jne 0x404a70
sub eax, edx
sar eax, 1
push eax
mov eax, ebx
lea ecx, [ebp - 0x248]
call fcn.0040b330
mov dword [ebp - 4], esi
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp - 0x248]
cmp eax, 8
jae 0x404aa7
lea ecx, [ebp - 0x248]
mov edx, dword [ebp - 0x238]
cmp eax, 8
mov eax, dword [ebp - 0x248]
lea ecx, [ecx + edx*2]
jae 0x404ac1
lea eax, [ebp - 0x248]
mov edx, dword [ebp - 0x280]
push edx
push ecx
push eax
lea eax, [ebp - 0x264]
push eax
mov dword [ebp - 0x250], 0xf
mov dword [ebp - 0x254], esi
mov byte [ebp - 0x264], 0
call fcn.004099a0
mov byte [ebp - 4], 1
push 4
push str..com
lea ecx, [ebp - 0x22c]
mov dword [ebp - 0x218], 0xf
mov dword [ebp - 0x21c], esi
mov byte [ebp - 0x22c], 0
call fcn.0040ae20
mov byte [ebp - 4], 2
cmp dword [ebp - 0x218], 0x10
mov eax, dword [ebp - 0x22c]
jae 0x404b33
lea eax, [ebp - 0x22c]
mov ecx, dword [ebp - 0x21c]
push ecx
push eax
lea edx, [ebp - 0x264]
push edx
call fcn.00408cf0
cmp eax, 0xffffffff
je 0x404b50
xor eax, eax
jmp 0x404b56
mov eax, dword [ebp - 0x270]
push esi
push esi
push esi
push esi
push eax
mov dword [ebp - 0x268], esi
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x280], eax
cmp eax, esi
je 0x404def
push esi
push esi
push esi
push esi
push ebx
push eax
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov ebx, eax
mov dword [ebp - 0x270], ebx
cmp ebx, esi
je 0x404de2
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x28c]
push ecx
lea edx, [ebp - 0x27c]
push edx
push 0x20000013
push ebx
mov dword [ebp - 0x28c], 4
mov dword [ebp - 0x284], esi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x404ddb
cmp dword [ebp - 0x27c], 0xc8
jne 0x404ddb
lea eax, [ebp - 0x284]
push eax
lea ecx, [ebp - 0x28c]
push ecx
lea edx, [ebp - 0x27c]
push edx
push 0x20000005
push ebx
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x404ddb
mov eax, dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x274]
mov dword [ecx], eax
mov ecx, dword [edi + 0x504]
push esi
call fcn.004124f9
mov ecx, dword [edi + 0x504]
push 0x64
call fcn.004124e0
mov edx, dword [ebp - 0x278]
push edx
push 0x468e90
lea edx, [ebp - 0x210]
call fcn.00409710
mov ecx, dword [edi + 0x50c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
add esp, 8
lea edx, [ebp - 0x210]
push edx
call eax
mov ecx, dword [ebp - 0x274]
mov eax, dword [ecx]
cmp eax, esi
je 0x404ddb
push eax
call fcn.0040c4fb
add esp, 4
mov dword [ebp - 0x268], eax
cmp eax, esi
je 0x404ddb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
jmp 0x404c90
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x288]
push edx
mov edx, dword [ebp - 0x270]
push 0x800
lea ecx, [esi + eax]
push ecx
push edx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x404d71
add esi, dword [ebp - 0x288]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, ebx
cmp eax, 0x64
jbe 0x404d62
mov eax, esi
imul eax, eax, 0x64
mov dword [ebp - 0x26c], eax
fild dword [ebp - 0x26c]
test eax, eax
jns 0x404ced
fadd dword [0x469818]
mov ecx, dword [ebp - 0x274]
mov edx, dword [ecx]
fild dword [ecx]
test edx, edx
jns 0x404d01
fadd dword [0x469818]
fdivp st(1)
mov eax, dword [ebp - 0x278]
sub esp, 8
lea edx, [ebp - 0x210]
fstp dword [ebp - 0x26c]
fld dword [ebp - 0x26c]
fstp qword [esp]
push eax
push 0x468ebc
call fcn.00409710
fld dword [ebp - 0x26c]
add esp, 0x10
call fcn.00444a80
mov ecx, dword [edi + 0x504]
push eax
call fcn.004124f9
mov ecx, dword [edi + 0x50c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
lea eax, [ebp - 0x210]
push eax
call edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
cmp dword [ebp - 0x288], 0
jne 0x404c90
jmp 0x404d96
mov ecx, dword [ebp - 0x268]
mov eax, dword [ebp - 0x274]
push ecx
mov dword [eax], 0
call fcn.0043dc24
add esp, 4
mov dword [ebp - 0x268], 0
mov edx, dword [ebp - 0x278]
push edx
push str.ck_W_vN_t
lea edx, [ebp - 0x210]
call fcn.00409710
mov ecx, dword [edi + 0x504]
add esp, 8
push 0x64
call fcn.004124f9
mov edi, dword [edi + 0x50c]
mov eax, dword [edi]
mov edx, dword [eax + 0x2c]
lea ecx, [ebp - 0x210]
push ecx
mov ecx, edi
call edx
mov ebx, dword [ebp - 0x270]
xor esi, esi
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [ebp - 0x280]
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov ebx, 0x10
cmp dword [ebp - 0x218], ebx
jb 0x404e0b
mov ecx, dword [ebp - 0x22c]
push ecx
call fcn.0043db99
add esp, 4
mov edi, 0xf
mov dword [ebp - 0x218], edi
mov dword [ebp - 0x21c], esi
mov byte [ebp - 0x22c], 0
cmp dword [ebp - 0x250], ebx
jb 0x404e3a
mov edx, dword [ebp - 0x264]
push edx
call fcn.0043db99
add esp, 4
cmp dword [ebp - 0x234], 8
mov dword [ebp - 0x250], edi
mov dword [ebp - 0x254], esi
mov byte [ebp - 0x264], 0
jb 0x404e65
mov eax, dword [ebp - 0x248]
push eax
call fcn.0043db99
add esp, 4
mov eax, dword [ebp - 0x268]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0043db8a
mov esp, ebp
pop ebp
ret 8