Function at 0x402920
Capabilities:
Check http status code
Check internet connectivity via wininet
Connect to http server
Create http request
Get http content length
Read data from internet
Receive data
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x428be7
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x191b0
call fcn.0040dc60
mov eax, dword [0x43b090]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov ebx, edx
mov dword [ebp - 0x19120], ebx
mov edx, ecx
cmp dword [ebx + 0x14], 0x10
mov dword [ebx + 0x10], 0
jb 0x402971
mov eax, dword [ebx]
jmp 0x402973
mov eax, ebx
mov byte [eax], 0
xor eax, eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x19060], 7
mov dword [ebp - 0x19064], 0
mov word [ebp - 0x19074], ax
cmp word [edx], ax
jne 0x4029a3
xor ecx, ecx
jmp 0x4029bf
mov ecx, edx
lea esi, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4029b0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x19074]
call fcn.00405c20
mov byte [ebp - 4], 1
cmp dword [ebp - 0x19064], 0
je 0x402da5
xor eax, eax
mov dword [ebp - 0x19018], 7
push 0xffffffffffffffff
push eax
mov word [ebp - 0x1902c], ax
lea ecx, [ebp - 0x1902c]
lea eax, [ebp - 0x19074]
mov dword [ebp - 0x1901c], 0
push eax
call fcn.00405d20
xor eax, eax
mov dword [ebp - 0x19030], 7
mov dword [ebp - 0x19034], 0
mov word [ebp - 0x19044], ax
push 3
push ecx
push 0x4365e4
lea ecx, [ebp - 0x1902c]
mov byte [ebp - 4], 3
lea edi, [eax + 0x50]
call fcn.00405b40
cmp eax, 0xffffffff
je 0x402a6f
push 3
push ecx
push 0x4365e4
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
add eax, 3
lea ecx, [ebp - 0x1902c]
push eax
push 0
call fcn.00403c60
push 1
push ecx
lea eax, [ebp - 0x190f0]
mov dword [ebp - 0x190f0], 0x2f
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
cmp eax, 0xffffffff
je 0x402bea
push 1
push ecx
lea eax, [ebp - 0x190f0]
mov dword [ebp - 0x190f0], 0x2f
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x1902c]
push eax
lea eax, [ebp - 0x1905c]
push eax
call fcn.00403c20
mov esi, eax
lea eax, [ebp - 0x19044]
cmp eax, esi
je 0x402b1f
mov eax, dword [ebp - 0x19030]
cmp eax, 8
jb 0x402af6
inc eax
lea ecx, [ebp - 0x19044]
push eax
push dword [ebp - 0x19044]
call fcn.00406620
xor eax, eax
mov dword [ebp - 0x19030], 7
push esi
lea ecx, [ebp - 0x19044]
mov dword [ebp - 0x19034], 0
mov word [ebp - 0x19044], ax
call fcn.00405e40
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x19048]
cmp eax, 8
jb 0x402b41
inc eax
lea ecx, [ebp - 0x1905c]
push eax
push dword [ebp - 0x1905c]
call fcn.00406620
push 1
push ecx
lea eax, [ebp - 0x190f0]
mov dword [ebp - 0x190f0], 0x2f
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
push eax
push 0
lea eax, [ebp - 0x1905c]
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00403c20
mov esi, eax
lea eax, [ebp - 0x1902c]
cmp eax, esi
je 0x402bc8
mov eax, dword [ebp - 0x19018]
cmp eax, 8
jb 0x402b9f
inc eax
lea ecx, [ebp - 0x1902c]
push eax
push dword [ebp - 0x1902c]
call fcn.00406620
xor eax, eax
mov dword [ebp - 0x19018], 7
push esi
lea ecx, [ebp - 0x1902c]
mov dword [ebp - 0x1901c], 0
mov word [ebp - 0x1902c], ax
call fcn.00405e40
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x19048]
cmp eax, 8
jb 0x402bea
inc eax
lea ecx, [ebp - 0x1905c]
push eax
push dword [ebp - 0x1905c]
call fcn.00406620
push 1
push ecx
lea eax, [ebp - 0x190f0]
mov dword [ebp - 0x190f0], 0x3a
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
cmp eax, 0xffffffff
je 0x402d22
push 1
push ecx
lea eax, [ebp - 0x190f0]
mov dword [ebp - 0x190f0], 0x3a
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
push 0xffffffffffffffff
inc eax
lea ecx, [ebp - 0x1902c]
push eax
lea eax, [ebp - 0x1905c]
push eax
call fcn.00403c20
cmp dword [eax + 0x14], 8
jb 0x402c4f
mov eax, dword [eax]
push eax
call fcn.004133e2
movzx edi, ax
add esp, 4
mov eax, dword [ebp - 0x19048]
cmp eax, 8
jb 0x402c79
inc eax
lea ecx, [ebp - 0x1905c]
push eax
push dword [ebp - 0x1905c]
call fcn.00406620
push 1
push ecx
lea eax, [ebp - 0x190f0]
mov dword [ebp - 0x190f0], 0x3a
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00405b40
push eax
push 0
lea eax, [ebp - 0x1905c]
push eax
lea ecx, [ebp - 0x1902c]
call fcn.00403c20
mov esi, eax
lea eax, [ebp - 0x1902c]
cmp eax, esi
je 0x402d00
mov eax, dword [ebp - 0x19018]
cmp eax, 8
jb 0x402cd7
inc eax
lea ecx, [ebp - 0x1902c]
push eax
push dword [ebp - 0x1902c]
call fcn.00406620
xor eax, eax
mov dword [ebp - 0x19018], 7
push esi
lea ecx, [ebp - 0x1902c]
mov dword [ebp - 0x1901c], 0
mov word [ebp - 0x1902c], ax
call fcn.00405e40
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x19048]
cmp eax, 8
jb 0x402d22
inc eax
lea ecx, [ebp - 0x1905c]
push eax
push dword [ebp - 0x1905c]
call fcn.00406620
cmp dword [ebp - 0x1901c], 0
jne 0x402de1
mov eax, dword [ebp - 0x19030]
cmp eax, 8
jb 0x402d4d
inc eax
lea ecx, [ebp - 0x19044]
push eax
push dword [ebp - 0x19044]
call fcn.00406620
xor eax, eax
mov dword [ebp - 0x19030], 7
mov word [ebp - 0x19044], ax
mov eax, dword [ebp - 0x19018]
mov dword [ebp - 0x19034], 0
cmp eax, 8
jb 0x402d88
inc eax
lea ecx, [ebp - 0x1902c]
push eax
push dword [ebp - 0x1902c]
call fcn.00406620
xor eax, eax
mov dword [ebp - 0x19018], 7
mov dword [ebp - 0x1901c], 0
mov word [ebp - 0x1902c], ax
mov eax, dword [ebp - 0x19060]
cmp eax, 8
jb 0x402dc3
inc eax
lea ecx, [ebp - 0x19074]
push eax
push dword [ebp - 0x19074]
call fcn.00406620
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0040cc34
mov esp, ebp
pop ebp
ret
mov dword [ebp - 0x19100], 0
mov dword [ebp - 0x190fc], 0
mov dword [ebp - 0x190f8], 0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x1902c]
cmp dword [ebp - 0x19018], 8
lea ecx, [ebp - 0x19100]
mov edx, str.Host
cmovae eax, dword [ebp - 0x1902c]
push eax
call fcn.004026c0
add esp, 4
lea ecx, [ebp - 0x191c0]
sub esp, 8
call fcn.00404190
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x191c0]
push dword [ebx + 0x10]
call fcn.004048b0
lea eax, [ebp - 0x1905c]
push eax
lea ecx, [ebp - 0x191c0]
call fcn.004040b0
mov byte [ebp - 4], 9
cmp dword [eax + 0x14], 8
jb 0x402e69
mov eax, dword [eax]
push eax
mov edx, str.Content_Length
lea ecx, [ebp - 0x19100]
call fcn.004026c0
mov byte [ebp - 4], 8
add esp, 4
mov eax, dword [ebp - 0x19048]
cmp eax, 8
jb 0x402e9f
inc eax
lea ecx, [ebp - 0x1905c]
push eax
push dword [ebp - 0x1905c]
call fcn.00406620
push str.close
mov edx, str.Connection
lea ecx, [ebp - 0x19100]
call fcn.004026c0
add esp, 4
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.WININET.dll_InternetOpenW]
mov ebx, eax
test ebx, ebx
jne 0x402f26
lea ecx, [ebp - 0x19170]
call fcn.004040d0
mov byte [ebp - 4], 0xa
lea eax, [ebp - 0x19170]
mov dword [ebp - method.std::ios_base.virtual_0], vtable.std::ios_base.0
push eax
call fcn.0040b4f4
add esp, 4
lea ecx, [ebp - 0x19100]
call fcn.004059e0
lea ecx, [ebp - 0x19044]
call fcn.00403d10
lea ecx, [ebp - 0x1902c]
call fcn.00403d10
lea ecx, [ebp - 0x19074]
call fcn.00403d10
jmp 0x402dc3
lea eax, [ebp - 0x19118]
mov dword [ebp - 0x19118], 8
push eax
lea eax, [ebp - 0x19114]
mov dword [ebp - 0x19114], 0
push eax
push 0x32
push ebx
mov dword [ebp - 0x19110], 0
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
je 0x402f84
test byte [ebp - 0x19114], 1
jne 0x402f84
push 8
lea eax, [ebp - 0x19114]
mov dword [ebp - 0x19114], 1
push eax
push 0x32
push ebx
call dword [sym.imp.WININET.dll_InternetSetOptionW]
cmp dword [ebp - 0x19018], 8
lea eax, [ebp - 0x1902c]
push 0
cmovae eax, dword [ebp - 0x1902c]
push 0
push 3
push 0
push 0
push edi
push eax
push ebx
call dword [sym.imp.WININET.dll_InternetConnectW]
mov edi, eax
mov dword [ebp - 0x190f0], edi
test edi, edi
jne 0x402fd2
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea ecx, [ebp - 0x19170]
call fcn.004040d0
mov byte [ebp - 4], 0xb
jmp 0x402edc
push 0
call dword [sym.imp.WININET.dll_InternetAttemptConnect]
test eax, eax
je 0x402ffa
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push edi
call esi
push ebx
call esi
lea ecx, [ebp - 0x191c0]
call fcn.00403380
jmp 0x402ef5
cmp dword [ebp - 0x19034], 0
mov dword [ebp - 0x19128], 0x43663c
mov dword [ebp - 0x19124], 0
jbe 0x40302d
cmp dword [ebp - 0x19030], 8
lea eax, [ebp - 0x19044]
cmovae eax, dword [ebp - 0x19044]
jmp 0x40302f
xor eax, eax
push 0
push 0x84400000
lea ecx, [ebp - 0x19128]
push ecx
push 0
push str.HTTP_1.1
push eax
push 0x436658
push edi
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
test esi, esi
je 0x402fde
xor edi, edi
nop dword [eax]
mov ecx, dword [ebp - 0x190fc]
mov eax, 0x2aaaaaab
sub ecx, dword [ebp - 0x19100]
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x40312b
mov ecx, dword [ebp - 0x19100]
lea eax, [edi + edi*2]
shl eax, 4
add eax, ecx
push ecx
mov edx, eax
mov dword [ebp - 0x1911c], eax
lea ecx, [ebp - 0x190d4]
call fcn.004080c0
add esp, 4
mov ecx, dword [ebp - 0x1911c]
mov edx, eax
add ecx, 0x18
mov byte [ebp - 4], 0xc
push ecx
lea ecx, [ebp - 0x190bc]
call fcn.00408220
add esp, 4
push ecx
mov edx, eax
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x1905c]
call fcn.004081f0
add esp, 4
lea ecx, [ebp - 0x190bc]
call fcn.00403d10
lea ecx, [ebp - 0x190d4]
mov byte [ebp - 4], 8
call fcn.00403d10
cmp dword [ebp - 0x19048], 8
lea eax, [ebp - 0x1905c]
push 0x20000000
cmovae eax, dword [ebp - 0x1905c]
push 0xffffffffffffffff
push eax
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
lea ecx, [ebp - 0x1905c]
call fcn.00403d10
inc edi
jmp 0x403060
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
test eax, eax
jne 0x403162
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 0x190f0]
call esi
push ebx
call esi
lea ecx, [ebp - 0x191c0]
call fcn.00403380
jmp 0x402ef5
mov edi, dword [sym.imp.WININET.dll_HttpQueryInfoW]
lea eax, [ebp - 0x19108]
push eax
lea eax, [ebp - 0x190f4]
mov dword [ebp - 0x19104], 0
push eax
lea eax, [ebp - 0x19104]
mov dword [ebp - 0x1910c], 0
push eax
push 0x20000013
push esi
mov dword [ebp - 0x19108], 0
mov dword [ebp - 0x190f4], 4
call edi
test eax, eax
je 0x40313e
cmp dword [ebp - 0x19104], 0xc8
jne 0x40313e
lea eax, [ebp - 0x19108]
push eax
lea eax, [ebp - 0x190f4]
push eax
lea eax, [ebp - 0x1910c]
push eax
push 0x20000005
push esi
call edi
mov dword [ebp - 0x190f4], 0
mov dword [ebp - 0x19078], 0xf
mov dword [ebp - 0x1907c], 0
mov byte [ebp - 0x1908c], 0
push 0x19000
lea ecx, [ebp - 0x1908c]
mov byte [ebp - 4], 0xe
call fcn.00403e00
cmp dword [ebp - 0x19078], 0x10
lea ecx, [ebp - 0x190f4]
push 0
push ecx
lea eax, [ebp - 0x1908c]
mov dword [ebp - 0x190f4], 0x18fff
cmovae eax, dword [ebp - 0x1908c]
push eax
push 0x16
push esi
call edi
cmp dword [ebp - 0x19078], 0x10
lea ecx, [ebp - 0x1908c]
mov eax, dword [ebp - 0x190f4]
cmovae ecx, dword [ebp - 0x1908c]
shr eax, 1
push eax
push ecx
lea ecx, [ebp - 0x190ec]
call fcn.00403dd0
mov dword [ebp - 0x19090], 0xf
mov dword [ebp - 0x19094], 0
mov byte [ebp - 0x190a4], 0
mov byte [ebp - 4], 0x10
mov edi, dword [sym.imp.WININET.dll_InternetReadFile]
mov dword [ebp - 0x190f4], 0
nop dword [eax + eax]
lea eax, [ebp - 0x190f4]
push eax
push 0x19000
lea eax, [ebp - 0x19014]
push eax
push esi
call edi
test eax, eax
je 0x4032d9
mov eax, dword [ebp - 0x190f4]
test eax, eax
je 0x4032d9
push eax
lea eax, [ebp - 0x19014]
push eax
lea ecx, [ebp - 0x190a4]
call fcn.00403e30
jmp 0x4032a0
mov ecx, dword [ebp - 0x19120]
lea eax, [ebp - 0x190a4]
cmp ecx, eax
je 0x4032f3
push 0xffffffffffffffff
push 0
push eax
call fcn.00406040
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push dword [ebp - 0x190f0]
call esi
push ebx
call esi
mov eax, dword [ebp - 0x1910c]
lea ecx, [ebp - 0x190a4]
cmp eax, dword [ebp - 0x19094]
sete bl
call fcn.00403f60
lea ecx, [ebp - 0x190ec]
call fcn.00403d10
lea ecx, [ebp - 0x1908c]
call fcn.00403f60
lea ecx, [ebp - 0x191c0]
call fcn.00403380
lea ecx, [ebp - 0x19100]
call fcn.004059e0
lea ecx, [ebp - 0x19044]
call fcn.00403d10
lea ecx, [ebp - 0x1902c]
call fcn.00403d10
lea ecx, [ebp - 0x19074]
call fcn.00403d10
mov al, bl
jmp 0x402dc5