Function at 0x419880
Capabilities:
Check for time delay via queryperformancecounter
Check http status code
Connect to http server
Create http request
Query remote server for available data
Read data from internet
Receive data
Send data
Send http request

Disassembly:
sub esp, 0x25c
mov eax, dword [0x4a7534]
xor eax, esp
mov dword [esp + 0x254], eax
mov eax, dword [esp + 0x264]
push ebx
push ebp
push esi
mov esi, dword [esp + 0x26c]
push edi
push 0
push 0
push 0
push 0
push str.SpeedTest_0.4
mov dword [esp + 0x38], eax
mov dword [esp + 0x44], ecx
mov dword [esp + 0x58], edx
call dword [sym.imp.WININET.dll_InternetOpenW]
push 0
push 0
push 3
push 0
push 0
push 0x50
mov ebx, eax
push esi
push ebx
mov dword [esp + 0x38], ebx
call dword [sym.imp.WININET.dll_InternetConnectW]
push 0
mov esi, eax
call fcn.004476fc
add esp, 4
push edx
push eax
push str._st_st.php_time_d
push 0xff
lea eax, [esp + 0x70]
push 0xff
push eax
call fcn.0044664f
add esp, 0x18
push 0
push 0x806cc200
push 0
push 0
push 0
lea ecx, [esp + 0x74]
push ecx
push 0x485ef0
push esi
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
lea edx, [esp + 0x58]
push edx
mov ebp, eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
fild dword [esp + 0x58]
mov ecx, dword [esp + 0x58]
test ecx, ecx
jge 0x419951
fadd qword [0x49b740]
fmul qword [0x49b750]
push 0
push 0
push 0
push 0
fstp qword [esp + 0x48]
push ebp
call dword [sym.imp.WININET.dll_HttpSendRequestW]
push 0xb
mov dword [esp + 0x20], 0xa
call fcn.0044674b
mov edi, dword [sym.imp.WININET.dll_HttpQueryInfoW]
add esp, 4
push 0
lea edx, [esp + 0x20]
push edx
mov esi, eax
push esi
push 0x13
push ebp
call edi
test eax, eax
jne 0x4199d0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
push esi
jne 0x419bde
call fcn.0044666e
mov eax, dword [esp + 0x20]
add eax, 1
add esp, 4
push eax
call fcn.0044674b
add esp, 4
push 0
lea ecx, [esp + 0x20]
push ecx
mov esi, eax
push esi
push 0x13
push ebp
call edi
test eax, eax
je 0x419995
mov edx, dword [esp + 0x1c]
push esi
mov byte [esi + edx], 0
call fcn.00448087
add esp, 4
push esi
mov edi, eax
call fcn.0044666e
add esp, 4
cmp edi, 0xc8
jne 0x419be6
mov eax, dword [esp + 0x24]
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
push ebp
mov byte [esp + 0x22], 1
mov dword [eax], 0
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
je 0x419b54
nop
mov edx, dword [esp + 0x20]
add edx, 1
push edx
call fcn.0044674b
mov ecx, dword [esp + 0x24]
add esp, 4
mov ebx, eax
lea eax, [esp + 0x34]
push eax
push ecx
push ebx
push ebp
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x419bf2
mov eax, dword [esp + 0x34]
test eax, eax
je 0x419b50
mov ecx, dword [esp + 0x24]
add dword [ecx], eax
cmp byte [esp + 0x12], 0
mov byte [eax + ebx], 0
je 0x419adb
push 0xa
push ebx
call fcn.004481f0
add esp, 8
test eax, eax
je 0x419c0b
mov byte [eax], 0
add eax, 1
mov edi, 0x485f20
mov esi, ebx
mov ecx, 3
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x419c24
mov ecx, eax
lea esi, [ecx + 1]
lea ecx, [ecx]
mov dl, byte [ecx]
add ecx, 1
test dl, dl
jne 0x419aa0
mov edi, dword [esp + 0x44]
push 0x200
push edi
sub ecx, esi
mov esi, ecx
push esi
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
cmp esi, 0x1ff
jbe 0x419ad0
mov esi, 0x1ff
mov word [edi + esi*2], 0
mov byte [esp + 0x12], 0
push ebx
call fcn.0044666e
add esp, 4
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [esp + 0x54]
sub ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x50]
test edx, edx
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fmul qword [0x49b740]
fild dword [esp + 0x50]
jge 0x419b17
fadd qword [0x49b740]
mov eax, dword [esp + 0x28]
faddp st(1)
test eax, eax
fild dword [esp + 0x28]
jge 0x419b2b
fadd qword [0x49b740]
fsubp st(1)
fcomp qword [esp + 0x38]
fnstsw ax
test ah, 1
je 0x419b50
push 0
push 0
lea ecx, [esp + 0x28]
push ecx
push ebp
call dword [sym.imp.WININET.dll_InternetQueryDataAvailable]
test eax, eax
jne 0x419a20
mov ebx, dword [esp + 0x18]
lea edx, [esp + 0x48]
push edx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x4c]
push eax
mov eax, dword [esp + 0x4c]
push ecx
push edx
push eax
call fcn.00419830
fmul qword [0x49b748]
mov ecx, dword [esp + 0x58]
fild dword [esp + 0x58]
test ecx, ecx
jge 0x419b90
fadd qword [0x49b740]
fdivp st(1)
push ebx
fnstcw word [esp + 0x16]
movzx eax, word [esp + 0x16]
or eax, 0xc00
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
fldcw word [esp + 0x18]
fistp qword [esp + 0x3c]
mov edx, dword [esp + 0x3c]
mov dword [eax], edx
fldcw word [esp + 0x16]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor eax, eax
mov ecx, dword [esp + 0x264]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.0044610a
add esp, 0x25c
ret 8
call fcn.0044666e
add esp, 4
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
or eax, 0xffffffff
jmp 0x419bc3
push ebx
call fcn.0044666e
mov edx, dword [esp + 0x1c]
add esp, 4
push edx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
or eax, 0xffffffff
jmp 0x419bc3
push ebx
call fcn.0044666e
mov eax, dword [esp + 0x1c]
add esp, 4
push eax
call dword [sym.imp.WININET.dll_InternetCloseHandle]
or eax, 0xffffffff
jmp 0x419bc3
push ebx
call fcn.0044666e
mov ecx, dword [esp + 0x1c]
add esp, 4
push ecx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
or eax, 0xffffffff
jmp 0x419bc3