Function at 0x4a2646
Capabilities:
Access peb ldr_data
Check http status code
Connect to http server
Create http request
Get number of processors
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x516206
mov eax, dword fs:[0]
push eax
mov eax, 0x1344
call fcn.004e5f20
mov eax, dword [0x549950]
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 + 8]
mov edi, ecx
mov dword [ebp - 0x1304], edi
xor ebx, ebx
push eax
lea ecx, [ebp - 0x12f8]
mov dword [ebp - 4], ebx
call fcn.004012a0
lea eax, [edi + 0x14]
mov dword [ebp - 0x1308], eax
lea eax, [edi + 0x54]
mov dword [ebp - 0x1324], eax
lea eax, [edi + 0xc]
mov dword [ebp - 0x131c], eax
lea eax, [edi + 0x30]
mov byte [ebp - 4], 1
mov dword [ebp - 0x1310], eax
mov esi, dword [ebp - 0x1324]
mov dword [ebp - 0x130c], ebx
call fcn.0041b580
mov eax, dword [edi + 0x4c]
mov ecx, dword [ebp - 0x1308]
or dword [edi + 0x7c], 0xffffffff
push 0xffffffffffffffff
mov dword [ebp - 0x1300], eax
push ebx
lea eax, [ebp - 0x12f8]
push eax
mov dword [ebp - 0x1314], ebx
call fcn.004019d0
mov ecx, dword [ebp - 0x1310]
push 0xffffffffffffffff
push ebx
lea eax, [ebp + 0xc]
push eax
call fcn.004019d0
cmp dword [edi + 0x44], ebx
jne 0x4a2795
push dword [ebp - 0x1308]
call fcn.004a2fff
mov esi, eax
cmp esi, 0xffffffff
je 0x4a2790
mov ecx, dword [ebp - 0x1308]
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x1350]
call fcn.004a750f
pop ecx
mov ecx, dword [ebp - 0x1310]
push 0xffffffffffffffff
push ebx
push eax
mov byte [ebp - 4], 2
call fcn.004019d0
lea ecx, [ebp - 0x1350]
mov byte [ebp - 4], 1
call fcn.004012e0
push esi
push dword [ebp - 0x1308]
lea eax, [ebp - 0x1350]
call fcn.004a74dc
pop ecx
pop ecx
mov ecx, dword [ebp - 0x1308]
push 0xffffffffffffffff
push ebx
push eax
mov byte [ebp - 4], 3
call fcn.004019d0
lea ecx, [ebp - 0x1350]
mov byte [ebp - 4], 1
call fcn.004012e0
cmp dword [edi + 0x44], ebx
je 0x4a279f
mov dword [ebp - 0x1300], 1
mov eax, dword [ebp - 0x131c]
push ebx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x4a27c1
mov dword [ebp - 0x130c], 1
jmp 0x4a2df3
push 7
pop esi
push ebx
lea ecx, [ebp - 0x1250]
mov dword [ebp - 0x1238], esi
call fcn.00401830
push ebx
lea ecx, [ebp - 0x1288]
mov dword [ebp - 0x1270], esi
call fcn.00401830
push ebx
lea ecx, [ebp - 0x126c]
mov dword [ebp - 0x1254], esi
call fcn.00401830
mov ecx, dword [ebp - 0x1308]
lea eax, [ebp - 0x126c]
push eax
lea eax, [ebp - 0x1288]
push eax
lea edi, [ebp - 0x1330]
lea esi, [ebp - 0x1334]
lea ebx, [ebp - 0x1250]
mov byte [ebp - 4], 6
call fcn.004a18e1
xor edi, edi
push edi
lea ecx, [ebp - 0x1234]
mov dword [ebp - 0x121c], 0xf
call fcn.00401660
mov eax, dword [ebp - 0x1304]
mov byte [ebp - 4], 7
mov eax, dword [eax + 8]
cmp eax, edi
jne 0x4a286a
push dword [ebp - 0x1310]
lea eax, [ebp - 0x1350]
call fcn.0049f7ea
pop ecx
mov byte [ebp - 4], 8
jmp 0x4a2885
cmp eax, 1
jne 0x4a289f
push dword [ebp - 0x1310]
lea esi, [ebp - 0x1350]
call fcn.0049f3cd
pop ecx
mov byte [ebp - 4], 9
push 0xffffffffffffffff
push edi
push eax
lea ecx, [ebp - 0x1234]
call fcn.00401310
lea ecx, [ebp - 0x1350]
call fcn.00401250
push edi
push edi
push edi
push edi
push 0x522764
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [ebp - 0x1320], eax
cmp eax, edi
jne 0x4a28ed
lea ecx, [ebp - 0x1234]
call fcn.00401250
lea ecx, [ebp - 0x126c]
call fcn.004012e0
lea ecx, [ebp - 0x1288]
call fcn.004012e0
lea ecx, [ebp - 0x1250]
mov byte [ebp - 4], 1
call fcn.004012e0
jmp 0x4a2dd7
mov ebx, dword [ebp - 0x131c]
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push edi
push dword [ebx]
call esi
test eax, eax
jne 0x4a290e
mov dword [ebp - 0x130c], 1
jmp 0x4a28b8
cmp dword [ebp - 0x1238], 8
mov eax, dword [ebp - 0x124c]
jae 0x4a2923
lea eax, [ebp - 0x124c]
push edi
push edi
push 3
push edi
push edi
push dword [ebp - 0x1334]
push eax
push dword [ebp - 0x1320]
call dword [sym.imp.WININET.dll_InternetConnectW]
mov dword [ebp - 0x1318], eax
cmp eax, edi
jne 0x4a297b
lea ecx, [ebp - 0x1234]
call fcn.00401250
lea ecx, [ebp - 0x126c]
call fcn.004012e0
lea ecx, [ebp - 0x1288]
call fcn.004012e0
lea ecx, [ebp - 0x1250]
mov byte [ebp - 4], 1
call fcn.004012e0
jmp 0x4a2dc3
push edi
push dword [ebx]
call esi
test eax, eax
jne 0x4a2990
mov dword [ebp - 0x130c], 1
jmp 0x4a2946
push edi
lea ecx, [ebp - 0x12c0]
mov dword [ebp - 0x12a8], 7
call fcn.00401830
lea eax, [ebp - 0x12c0]
mov byte [ebp - 4], 0xa
push eax
mov edx, 0x52db68
cmp dword [ebp - 0x1300], edi
je 0x4a29c3
mov edx, 0x52db5c
call fcn.00404a30
lea eax, [ebp - 0x126c]
push eax
lea eax, [ebp - 0x1288]
push eax
lea eax, [ebp - 0x12dc]
push eax
call fcn.004a32f3
add esp, 0xc
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x1330], 4
mov edx, 0x80400002
jne 0x4a29fc
mov edx, 0x80c00002
cmp dword [ebp - 0x12c4], 8
mov ecx, dword [ebp - 0x12d8]
jae 0x4a2a11
lea ecx, [ebp - 0x12d8]
cmp dword [ebp - 0x12a8], 8
mov eax, dword [ebp - 0x12bc]
jae 0x4a2a26
lea eax, [ebp - 0x12bc]
push edi
push edx
push edi
push edi
push edi
push ecx
push eax
push dword [ebp - 0x1318]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov dword [ebp - 0x1300], eax
cmp eax, edi
je 0x4a2d69
push edi
push dword [ebx]
call esi
test eax, eax
jne 0x4a2a5f
mov dword [ebp - 0x130c], 1
jmp 0x4a2d69
push str.Content_Type:_application_x_www_form_urlencoded_r_n
lea ecx, [ebp - 0x12a4]
call fcn.004012a0
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x128c], 8
mov eax, dword [ebp - 0x12a0]
jae 0x4a2a88
lea eax, [ebp - 0x12a0]
mov esi, dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
mov ebx, 0x20000000
push ebx
push dword [ebp - 0x1290]
push eax
push dword [ebp - 0x1300]
call esi
test eax, eax
je 0x4a2d5e
mov eax, dword [ebp - 0x1304]
cmp dword [eax + 0xcc], edi
je 0x4a2b0c
add eax, 0xb8
cmp dword [eax + 0x18], 8
jb 0x4a2ac9
mov eax, dword [eax + 4]
jmp 0x4a2acc
add eax, 4
push eax
push str.Referer:__s_r_n
lea ecx, [ebp - 0x12a4]
call fcn.004a754a
cmp dword [ebp - 0x128c], 8
mov eax, dword [ebp - 0x12a0]
pop ecx
pop ecx
jae 0x4a2af4
lea eax, [ebp - 0x12a0]
push ebx
push dword [ebp - 0x1290]
push eax
push dword [ebp - 0x1300]
call esi
test eax, eax
je 0x4a2d5e
cmp dword [ebp - 0x121c], 0x10
mov eax, dword [ebp - 0x1230]
jae 0x4a2b21
lea eax, [ebp - 0x1230]
push dword [ebp - 0x1220]
push eax
push edi
push edi
push dword [ebp - 0x1300]
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
je 0x4a2d5e
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoW]
xor eax, eax
push edi
mov word [ebp - 0x218], ax
lea eax, [ebp - 0x12fc]
push eax
lea eax, [ebp - 0x218]
push eax
push 5
push dword [ebp - 0x1300]
mov ebx, 0x104
mov dword [ebp - 0x12fc], ebx
call esi
test eax, eax
je 0x4a2bab
mov ecx, dword [ebp - 0x12fc]
xor eax, eax
mov word [ebp + ecx*2 - 0x218], ax
lea eax, [ebp - 0x218]
push eax
push str.Content_length:__s__n
call fcn.004e23f7
lea eax, [ebp - 0x218]
push eax
call fcn.004e05c4
add esp, 0xc
mov dword [ebp - 0x132c], eax
push edi
lea eax, [ebp - 0x12fc]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x13
push dword [ebp - 0x1300]
mov dword [ebp - 0x12fc], ebx
call esi
test eax, eax
je 0x4a2c18
mov ecx, dword [ebp - 0x12fc]
xor eax, eax
mov word [ebp + ecx*2 - 0x218], ax
lea eax, [ebp - 0x218]
push eax
push str.Status_code:__s__n
call fcn.004e23f7
lea eax, [ebp - 0x218]
push eax
call fcn.004e05c4
mov ecx, dword [ebp - 0x1304]
add esp, 0xc
mov dword [ecx + 0x7c], eax
cmp eax, 0xc8
jne 0x4a2c18
mov dword [ebp - 0x1314], 1
push edi
lea eax, [ebp - 0x12fc]
push eax
lea eax, [ebp - 0x218]
push eax
push 0x14
push dword [ebp - 0x1300]
mov dword [ebp - 0x12fc], ebx
call esi
test eax, eax
je 0x4a2c5e
mov ecx, dword [ebp - 0x12fc]
xor eax, eax
mov word [ebp + ecx*2 - 0x218], ax
lea eax, [ebp - 0x218]
push eax
push str.Status_text:__s__n
call fcn.004e23f7
pop ecx
pop ecx
lea ecx, [ebp - 0x12fc]
push ecx
mov eax, 0x1000
push eax
mov dword [ebp - 0x12fc], eax
lea eax, [ebp - 0x1218]
push eax
push dword [ebp - 0x1300]
xor ebx, ebx
mov dword [ebp - 0x1328], edi
call dword [sym.imp.WININET.dll_InternetReadFile]
jmp 0x4a2d3a
cmp dword [ebp - 0x12fc], edi
jbe 0x4a2d42
cmp dword [ebp - 0x132c], edi
jle 0x4a2cb7
mov eax, ebx
imul eax, eax, 0x64
cdq
idiv dword [ebp - 0x132c]
mov dword [ebp - 0x1328], eax
mov eax, dword [ebp - 0x1304]
mov ecx, dword [eax + 0x10]
cmp ecx, edi
je 0x4a2cd7
fldz
mov edx, dword [ecx]
push ecx
push ecx
fstp qword [esp]
push dword [ebp - 0x1328]
push eax
call dword [edx + 4]
mov eax, dword [ebp - 0x12fc]
mov esi, dword [ebp - 0x1324]
lea edi, [ebx + eax]
call fcn.0041b1e0
push dword [ebp - 0x12fc]
mov eax, dword [ebp - 0x1304]
mov eax, dword [eax + 0x5c]
lea ecx, [ebp - 0x1218]
push ecx
add eax, ebx
push eax
call fcn.004e9720
add ebx, dword [ebp - 0x12fc]
add esp, 0xc
lea ecx, [ebp - 0x12fc]
push ecx
mov eax, 0x1000
push eax
mov dword [ebp - 0x12fc], eax
lea eax, [ebp - 0x1218]
push eax
push dword [ebp - 0x1300]
call dword [sym.imp.WININET.dll_InternetReadFile]
xor edi, edi
test eax, eax
jne 0x4a2c91
mov eax, dword [ebp - 0x1304]
mov ecx, dword [eax + 0x10]
cmp ecx, edi
je 0x4a2d5e
fldz
mov edx, dword [ecx]
push ecx
push ecx
fstp qword [esp]
push 0x64
push eax
call dword [edx + 4]
lea ecx, [ebp - 0x12a4]
call fcn.004012e0
lea ecx, [ebp - 0x12dc]
call fcn.004012e0
lea ecx, [ebp - 0x12c0]
call fcn.004012e0
lea ecx, [ebp - 0x1234]
call fcn.00401250
lea ecx, [ebp - 0x126c]
call fcn.004012e0
lea ecx, [ebp - 0x1288]
call fcn.004012e0
lea ecx, [ebp - 0x1250]
mov byte [ebp - 4], 1
call fcn.004012e0
cmp dword [ebp - 0x1300], edi
je 0x4a2dc3
push dword [ebp - 0x1300]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x1318], edi
je 0x4a2dd7
push dword [ebp - 0x1318]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp dword [ebp - 0x1320], edi
je 0x4a2deb
push dword [ebp - 0x1320]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov edi, dword [ebp - 0x1304]
xor ebx, ebx
mov ecx, dword [edi + 0x10]
cmp ecx, ebx
je 0x4a2e5b
cmp dword [ebp - 0x130c], ebx
jne 0x4a2e5b
cmp dword [ebp - 0x1314], ebx
push dword [ebp - 0x131c]
mov eax, dword [ecx]
sete dl
movzx edx, dl
push edx
push edi
lea edx, [ebp - 0x1350]
push edx
call dword [eax]
push 0xffffffffffffffff
push ebx
push eax
lea ecx, [ebp - 0x12f8]
mov byte [ebp - 4], 0xd
call fcn.004019d0
lea ecx, [ebp - 0x1350]
mov byte [ebp - 4], 1
call fcn.004012e0
cmp dword [ebp - 0x12e4], ebx
je 0x4a2e5b
mov eax, dword [ebp - 0x1310]
call fcn.0041b5a0
jmp 0x4a26bc
lea ecx, [ebp - 0x12f8]
call fcn.004012e0
lea ecx, [ebp + 0xc]
call fcn.004012e0
mov eax, dword [ebp - 0x1314]
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.004df2ac
leave
ret 0x20