Function at 0x403ee0
Capabilities:
Check for time delay via queryperformancecounter
Check internet connectivity via wininet
Create http request
Get http content length
Get number of processors
Read data from internet
Receive data
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x469852
push eax
mov eax, 0xa2c0
mov dword fs:[0], esp
call fcn.0043e5d0
push ebx
mov ebx, ecx
push esi
push edi
mov dword [esp + 0x30], ebx
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0xcd]
mov byte [esp + 0xcc], 0
rep stosd dword es:[edi], eax
mov edx, dword [ebp + 8]
push 0x8000000
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [esp + 0x3c]
lea ecx, [esp + 0xd0]
push eax
push ecx
push edx
mov dword [esp + 0xa2e4], 1
mov dword [esp + 0x48], 0x200
call dword [sym.imp.WININET.dll_InternetCanonicalizeUrlA]
test eax, eax
je 0x404348
lea ecx, [esp + 0x74]
call fcn.004012f0
mov eax, dword [esp + 0x38]
lea ecx, [esp + 0xcc]
push eax
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.00401360
add esp, 0xc
push eax
lea ecx, [ebp + 8]
mov byte [esp + 0xa2d8], 2
call fcn.0045b6e3
lea ecx, [esp + 0x10]
mov byte [esp + 0xa2d4], 1
call fcn.0045b5aa
lea eax, [esp + 0x54]
push 0
push eax
call dword [sym.imp.WININET.dll_InternetGetConnectedState]
mov ecx, 0x10
xor eax, eax
lea edi, [esp + 0x8c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x78]
push ecx
lea ecx, [esp + 0x74]
call fcn.00459b66
mov edx, dword [esp + 0x86]
lea eax, [esp + 0x8c]
and edx, 0xffff
push edx
push str.Agent_ld
push eax
call fcn.0043e574
mov al, byte [esp + 0x60]
add esp, 0xc
test al, 4
push 0
push 0
push 0
jne 0x404019
lea ecx, [esp + 0x98]
push 4
push ecx
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
mov dword [esp + 0x18], esi
jmp 0x40402f
lea edx, [esp + 0x98]
push 0
push edx
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [esp + 0x18], eax
mov esi, eax
test esi, esi
je 0x404348
mov ecx, dword [0x488484]
mov eax, dword [str.Accept:___r_n_r_n]
mov edx, dword [0x488488]
mov edi, dword [ebp + 8]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
mov eax, dword [0x48848c]
push 0
lea ecx, [esp + 0x5c]
push 0x84000100
push ecx
mov dword [esp + 0x6c], edx
mov dword [esp + 0x70], eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
lea edx, [esp + 0x60]
push eax
push edx
push edi
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov edi, eax
test edi, edi
mov dword [esp + 0x20], edi
jne 0x404096
push esi
call dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x404348
lea eax, [esp + 0x4c]
push 0
lea ecx, [esp + 0x18]
push eax
push ecx
push 0x20000005
push edi
mov dword [esp + 0x28], 0
mov dword [esp + 0x60], 4
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x4040d7
push edi
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [esp + 0x18], eax
call edi
push esi
call edi
jmp 0x404348
mov eax, dword [esp + 0x14]
test eax, eax
ja 0x4040f0
push edi
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
push esi
call edi
jmp 0x404348
mov edi, dword [ebp + 0x10]
lea esi, [ebx + 0x120]
push 0
lea edx, [esp + 0x10]
push edi
push edx
mov ecx, esi
call fcn.00459e66
lea eax, [esp + 0x10]
push 1
push eax
lea ecx, [esp + 0x14]
mov byte [esp + 0xa2dc], 3
call fcn.0045944b
mov eax, dword [eax]
push 0x48847c
push eax
call fcn.0043e4c5
add esp, 8
lea ecx, [esp + 0x10]
test eax, eax
setne bl
call fcn.0045b5aa
test bl, bl
je 0x404236
mov ecx, dword [0x48a8c4]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x2c], 0
mov dword [esp + 0x28], edx
mov byte [esp + 0xa2d4], 4
fild qword [esp + 0x28]
fmul qword [0x470a88]
fst qword [esp + 0x28]
fcomp qword [0x470a80]
fnstsw ax
test ah, 0x41
jne 0x40419a
fld qword [esp + 0x28]
fmul qword [0x470a88]
sub esp, 8
fstp qword [esp]
push str._.1fMB
jmp 0x4041a9
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push ecx
push edx
push str._.1fKB
lea eax, [esp + 0x28]
push eax
call fcn.0045986b
add esp, 0x10
lea ecx, [esp + 0x1c]
lea edx, [esp + 0x28]
push ecx
push 0x488468
push edx
call fcn.0045b8b3
push 0x488464
push eax
lea eax, [esp + 0x58]
mov bl, 5
push eax
mov byte [esp + 0xa2e0], bl
call fcn.0045b83f
push eax
lea ecx, [esp + 0x10]
mov byte [esp + 0xa2d8], 6
call fcn.0045b9c2
lea ecx, [esp + 0x50]
mov byte [esp + 0xa2d4], bl
call fcn.0045b5aa
lea ecx, [esp + 0x28]
mov byte [esp + 0xa2d4], 4
call fcn.0045b5aa
mov ecx, dword [esp + 0xc]
push ecx
push 0
push edi
mov ecx, esi
call fcn.004293e0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xa2d4], 3
call fcn.0045b5aa
lea ecx, [esp + 0xc]
call fcn.0045b535
mov edx, dword [0x48ede0]
mov ebx, dword [sym.imp.USER32.dll_SendMessageA]
push 0
push 0
mov eax, dword [edx + 0x2a8]
push 0x402
push eax
call ebx
mov ecx, dword [esp + 0x14]
lea edx, [ebp + 0xc]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x18], esp
push edx
call fcn.0045b31f
call fcn.00404740
add esp, 8
test eax, eax
je 0x4042e9
mov eax, dword [esp + 0x30]
push 0
push 0x64
push 0x402
mov ecx, dword [eax + 0x2a8]
push ecx
call ebx
push 0x64
push 1
push edi
mov ecx, esi
call fcn.004295c0
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x488440
call fcn.0045b618
mov edx, dword [0x48ede0]
mov ecx, dword [edx + 0xa48]
call fcn.0041d780
mov eax, dword [0x48ede0]
mov ecx, dword [eax + 0xa84]
test ecx, ecx
je 0x4046e9
mov eax, dword [eax + 0xa80]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
jmp 0x4046e9
lea ecx, [esp + 0x3c]
call fcn.004603dc
mov eax, dword [ebp + 0xc]
push 0
push 0x9001
push eax
lea ecx, [esp + 0x48]
mov byte [esp + 0xa2e0], 7
call fcn.004604ee
test eax, eax
jne 0x404384
mov ecx, dword [esp + 0x20]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ecx
call esi
mov edx, dword [esp + 0x18]
push edx
call esi
lea ecx, [esp + 0x3c]
mov byte [esp + 0xa2d4], 3
call fcn.00460431
lea ecx, [esp + 0xc]
mov byte [esp + 0xa2d4], 1
call fcn.0045b5aa
lea ecx, [ebp + 8]
mov byte [esp + 0xa2d4], 0
call fcn.0045b5aa
lea ecx, [ebp + 0xc]
mov dword [esp + 0xa2d4], 0xffffffff
call fcn.0045b5aa
xor eax, eax
mov ecx, dword [esp + 0xa2cc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov eax, dword [0x48ede0]
mov edi, dword [eax + 0xa90]
lea esi, [eax + 0xa88]
mov eax, dword [eax + 0xa98]
test eax, eax
jne 0x4043cc
mov ecx, dword [esi + 0x18]
push 0xc
lea edx, [esi + 0x14]
push ecx
push edx
call fcn.0045a452
mov ecx, dword [esi + 0x18]
lea edx, [ecx + ecx*2]
dec ecx
test ecx, ecx
lea eax, [eax + edx*4 - 8]
jl 0x4043cc
inc ecx
mov edx, dword [esi + 0x10]
mov dword [eax], edx
mov dword [esi + 0x10], eax
sub eax, 0xc
dec ecx
jne 0x4043be
mov eax, dword [esi + 0x10]
lea edx, [esp + 0x3c]
mov ecx, dword [eax]
mov dword [esi + 0x10], ecx
mov dword [eax + 4], edi
mov dword [eax], 0
mov edi, dword [esi + 0xc]
inc edi
mov dword [esi + 0xc], edi
mov dword [eax + 8], 0
mov dword [eax + 8], edx
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4043fd
mov dword [ecx], eax
jmp 0x404400
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov ecx, 0x2800
xor eax, eax
lea edi, [esp + 0x2cc]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0x48ee08
xor esi, esi
mov dword [esp + 0x14], 1
call edi
mov eax, dword [0x48ee08]
mov ebx, dword [esp + 0x20]
mov ecx, dword [0x48ee0c]
lea edx, [esp + 0x34]
mov dword [0x48ee00], eax
push edx
lea eax, [esp + 0x2d0]
push 0x2800
push eax
push ebx
mov dword [0x48ee04], ecx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x4045b9
mov eax, dword [esp + 0x34]
test eax, eax
je 0x4045c1
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0xa60]
test edx, edx
jne 0x4045c1
lea edx, [esp + 0x2cc]
push eax
push edx
lea ecx, [esp + 0x44]
call fcn.00460645
mov ecx, dword [esp + 0x34]
push 0x48ee08
add esi, ecx
call edi
mov eax, dword [0x48ee08]
mov edx, dword [0x48ee00]
mov ecx, dword [0x48ee0c]
mov dword [0x48edf8], eax
sub eax, edx
mov edx, dword [0x48ee04]
mov dword [0x48edfc], ecx
mov dword [0x48edf0], eax
sbb ecx, edx
mov dword [0x48edf4], ecx
js 0x404554
jg 0x4044db
test eax, eax
jbe 0x404554
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], 0
fild qword [esp + 0x68]
fild qword [0x48edf0]
fmul qword [0x48ede8]
fmul qword [0x470a80]
fdivp st(1)
fst qword [esp + 0x20]
fcomp qword [0x470a78]
fnstsw ax
test ah, 0x41
jne 0x404554
fld qword [esp + 0x20]
fcomp qword [0x470a80]
fnstsw ax
test ah, 0x41
jne 0x404538
fld qword [esp + 0x20]
fmul qword [0x470a88]
sub esp, 8
fstp qword [esp]
push str._.1fMB_s
jmp 0x404547
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
push ecx
push edx
push str._.1fKB_s
lea eax, [esp + 0x18]
push eax
call fcn.0045986b
add esp, 0x10
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0xc]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0x28], esp
push edx
call fcn.0045b31f
mov eax, dword [esp + 0x1c]
mov ecx, dword [0x48ede0]
push eax
push esi
call fcn.00404dd0
mov eax, dword [0x48ede0]
mov ecx, dword [eax + 0xa84]
test ecx, ecx
je 0x404598
mov eax, dword [eax + 0xa80]
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea ecx, [esp + 0x34]
lea edx, [esp + 0x2cc]
push ecx
push 0x2800
push edx
push ebx
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x404465
mov dword [esp + 0x10], 0
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebx
call esi
mov eax, dword [esp + 0x18]
push eax
call esi
mov esi, dword [0x48ede0]
xor eax, eax
mov edi, dword [esi + 0xa94]
test edi, edi
jle 0x404695
mov ebx, dword [esi + 0xa94]
add esi, 0xa88
cmp eax, ebx
jge 0x404609
test eax, eax
jl 0x404609
mov ecx, dword [esi + 4]
je 0x40460b
mov edx, eax
mov ecx, dword [ecx]
dec edx
jne 0x404602
jmp 0x40460b
xor ecx, ecx
mov ecx, dword [ecx + 8]
lea edx, [esp + 0x3c]
cmp edx, ecx
je 0x40461d
inc eax
cmp eax, edi
jl 0x4045f3
jmp 0x404695
cmp eax, dword [esi + 0xc]
jge 0x404634
test eax, eax
jl 0x404634
mov ecx, dword [esi + 4]
je 0x404630
mov ecx, dword [ecx]
dec eax
jne 0x40462b
mov eax, ecx
jmp 0x404636
xor eax, eax
cmp eax, dword [esi + 4]
jne 0x404642
mov ecx, dword [eax]
mov dword [esi + 4], ecx
jmp 0x404649
mov edx, dword [eax + 4]
mov ecx, dword [eax]
mov dword [edx], ecx
cmp eax, dword [esi + 8]
jne 0x404656
mov edx, dword [eax + 4]
mov dword [esi + 8], edx
jmp 0x40465e
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [ecx + 4], edx
mov ecx, dword [esi + 0x10]
mov dword [eax], ecx
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
dec eax
mov dword [esi + 0xc], eax
jne 0x404695
mov eax, dword [esi + 4]
xor edi, edi
cmp eax, edi
je 0x40467e
mov eax, dword [eax]
cmp eax, edi
jne 0x404678
mov ecx, dword [esi + 0x14]
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 8], edi
mov dword [esi + 4], edi
call fcn.0045a472
mov dword [esi + 0x14], edi
lea ecx, [esp + 0x3c]
call fcn.00460709
mov edx, dword [esp + 0x30]
mov eax, dword [edx + 0xa60]
test eax, eax
jne 0x404326
mov eax, dword [esp + 0x10]
test eax, eax
je 0x404326
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x488424
call fcn.0045b618
mov ecx, dword [0x48ede0]
call fcn.0040c270
lea ecx, [esp + 0x3c]
mov byte [esp + 0xa2d4], 3
call fcn.00460431
lea ecx, [esp + 0xc]
mov byte [esp + 0xa2d4], 1
call fcn.0045b5aa
lea ecx, [ebp + 8]
mov byte [esp + 0xa2d4], 0
call fcn.0045b5aa
lea ecx, [ebp + 0xc]
mov dword [esp + 0xa2d4], 0xffffffff
call fcn.0045b5aa
mov ecx, dword [esp + 0xa2cc]
pop edi
pop esi
mov eax, 1
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc