Function at 0x4016d6
Capabilities:
Create http request
Get http content length
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec
push 0
push 0
push 0
push 1
push 0x406750
call dword [sym.imp.WININET.dll_InternetOpenA]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x401d77
push 0
push 0
push 0
push 0
push dword [ebp + 8]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x401d6e
push dword [ebp + 8]
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameA]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x401d6e
mov dword [ebp - 0x28], 0x4067a4
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
mov al, byte [eax]
mov byte [ebp - 0x2d], al
mov ecx, dword [ebp - 0x28]
cmp al, byte [ecx]
jne 0x40177d
cmp byte [ebp - 0x2d], 0
je 0x401777
mov eax, dword [ebp - 0x2c]
mov al, byte [eax + 1]
mov byte [ebp - 0x2e], al
mov ecx, dword [ebp - 0x28]
cmp al, byte [ecx + 1]
jne 0x40177d
add dword [ebp - 0x2c], 2
add dword [ebp - 0x28], 2
cmp byte [ebp - 0x2e], 0
jne 0x401743
and dword [ebp - 0x34], 0
jmp 0x401785
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
cmp dword [ebp - 0x38], 0
jne 0x4017b0
mov dword [ebp - 4], 4
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0x20000005
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov dword [ebp - 0x3c], 0x4067ac
mov eax, dword [ebp - 8]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
mov al, byte [eax]
mov byte [ebp - 0x41], al
mov ecx, dword [ebp - 0x3c]
cmp al, byte [ecx]
jne 0x4017f7
cmp byte [ebp - 0x41], 0
je 0x4017f1
mov eax, dword [ebp - 0x40]
mov al, byte [eax + 1]
mov byte [ebp - 0x42], al
mov ecx, dword [ebp - 0x3c]
cmp al, byte [ecx + 1]
jne 0x4017f7
add dword [ebp - 0x40], 2
add dword [ebp - 0x3c], 2
cmp byte [ebp - 0x42], 0
jne 0x4017bd
and dword [ebp - 0x48], 0
jmp 0x4017ff
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x4c], eax
cmp dword [ebp - 0x4c], 0
jne 0x40182a
mov dword [ebp - 4], 4
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x20000005
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov dword [ebp - 0x50], 0x4067b4
mov eax, dword [ebp - 8]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x54]
mov al, byte [eax]
mov byte [ebp - 0x55], al
mov ecx, dword [ebp - 0x50]
cmp al, byte [ecx]
jne 0x401871
cmp byte [ebp - 0x55], 0
je 0x40186b
mov eax, dword [ebp - 0x54]
mov al, byte [eax + 1]
mov byte [ebp - 0x56], al
mov ecx, dword [ebp - 0x50]
cmp al, byte [ecx + 1]
jne 0x401871
add dword [ebp - 0x54], 2
add dword [ebp - 0x50], 2
cmp byte [ebp - 0x56], 0
jne 0x401837
and dword [ebp - 0x5c], 0
jmp 0x401879
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0x60], eax
cmp dword [ebp - 0x60], 0
jne 0x4018a4
mov dword [ebp - 4], 4
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x18]
push eax
push 0x20000005
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov dword [ebp - 0x64], 0x4067bc
mov eax, dword [ebp - 8]
mov dword [ebp - 0x68], eax
mov eax, dword [ebp - 0x68]
mov al, byte [eax]
mov byte [ebp - 0x69], al
mov ecx, dword [ebp - 0x64]
cmp al, byte [ecx]
jne 0x4018eb
cmp byte [ebp - 0x69], 0
je 0x4018e5
mov eax, dword [ebp - 0x68]
mov al, byte [eax + 1]
mov byte [ebp - 0x6a], al
mov ecx, dword [ebp - 0x64]
cmp al, byte [ecx + 1]
jne 0x4018eb
add dword [ebp - 0x68], 2
add dword [ebp - 0x64], 2
cmp byte [ebp - 0x6a], 0
jne 0x4018b1
and dword [ebp - 0x70], 0
jmp 0x4018f3
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x74], eax
cmp dword [ebp - 0x74], 0
jne 0x40191e
mov dword [ebp - 4], 4
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x20000005
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov dword [ebp - 0x78], 0x4067c4
mov eax, dword [ebp - 8]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov al, byte [eax]
mov byte [ebp - 0x7d], al
mov ecx, dword [ebp - 0x78]
cmp al, byte [ecx]
jne 0x401968
cmp byte [ebp - 0x7d], 0
je 0x40195f
mov eax, dword [ebp - 0x7c]
mov al, byte [eax + 1]
mov byte [ebp - 0x7e], al
mov ecx, dword [ebp - 0x78]
cmp al, byte [ecx + 1]
jne 0x401968
add dword [ebp - 0x7c], 2
add dword [ebp - 0x78], 2
cmp byte [ebp - 0x7e], 0
jne 0x40192b
and dword [ebp - 0x84], 0
jmp 0x401973
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
cmp dword [ebp - 0x88], 0
jne 0x4019a7
mov dword [ebp - 4], 4
push 0
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x20000005
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
mov dword [ebp - 0x8c], str.t.exe
mov eax, dword [ebp - 8]
mov dword [ebp - 0x90], eax
mov eax, dword [ebp - 0x90]
mov al, byte [eax]
mov byte [ebp - 0x91], al
mov ecx, dword [ebp - 0x8c]
cmp al, byte [ecx]
jne 0x401a15
cmp byte [ebp - 0x91], 0
je 0x401a0c
mov eax, dword [ebp - 0x90]
mov al, byte [eax + 1]
mov byte [ebp - 0x92], al
mov ecx, dword [ebp - 0x8c]
cmp al, byte [ecx + 1]
jne 0x401a15
add dword [ebp - 0x90], 2
add dword [ebp - 0x8c], 2
cmp byte [ebp - 0x92], 0
jne 0x4019ba
and dword [ebp - 0x98], 0
jmp 0x401a20
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0x98], eax
mov eax, dword [ebp - 0x98]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x9c], 0
jne 0x401a69
cmp dword [ebp - 0x1c], 0x7530
jbe 0x401a69
mov eax, dword [0x408054]
cmp eax, dword [ebp - 0x1c]
je 0x401a69
mov eax, dword [ebp - 0x1c]
mov dword [0x408054], eax
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov al, 1
jmp 0x401d82
mov dword [ebp - 0xa0], str.m.exe
mov eax, dword [ebp - 8]
mov dword [ebp - 0xa4], eax
mov eax, dword [ebp - 0xa4]
mov al, byte [eax]
mov byte [ebp - 0xa5], al
mov ecx, dword [ebp - 0xa0]
cmp al, byte [ecx]
jne 0x401ad7
cmp byte [ebp - 0xa5], 0
je 0x401ace
mov eax, dword [ebp - 0xa4]
mov al, byte [eax + 1]
mov byte [ebp - 0xa6], al
mov ecx, dword [ebp - 0xa0]
cmp al, byte [ecx + 1]
jne 0x401ad7
add dword [ebp - 0xa4], 2
add dword [ebp - 0xa0], 2
cmp byte [ebp - 0xa6], 0
jne 0x401a7c
and dword [ebp - 0xac], 0
jmp 0x401ae2
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0xac], eax
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xb0], eax
cmp dword [ebp - 0xb0], 0
jne 0x401b2b
cmp dword [ebp - 0x24], 0x7530
jbe 0x401b2b
mov eax, dword [0x408470]
cmp eax, dword [ebp - 0x24]
je 0x401b2b
mov eax, dword [ebp - 0x24]
mov dword [0x408470], eax
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov al, 1
jmp 0x401d82
mov dword [ebp - 0xb4], str.p.exe
mov eax, dword [ebp - 8]
mov dword [ebp - 0xb8], eax
mov eax, dword [ebp - 0xb8]
mov al, byte [eax]
mov byte [ebp - 0xb9], al
mov ecx, dword [ebp - 0xb4]
cmp al, byte [ecx]
jne 0x401b99
cmp byte [ebp - 0xb9], 0
je 0x401b90
mov eax, dword [ebp - 0xb8]
mov al, byte [eax + 1]
mov byte [ebp - 0xba], al
mov ecx, dword [ebp - 0xb4]
cmp al, byte [ecx + 1]
jne 0x401b99
add dword [ebp - 0xb8], 2
add dword [ebp - 0xb4], 2
cmp byte [ebp - 0xba], 0
jne 0x401b3e
and dword [ebp - 0xc0], 0
jmp 0x401ba4
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0xc0], eax
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xc4], eax
cmp dword [ebp - 0xc4], 0
jne 0x401bed
cmp dword [ebp - 0x18], 0x7530
jbe 0x401bed
mov eax, dword [0x40846c]
cmp eax, dword [ebp - 0x18]
je 0x401bed
mov eax, dword [ebp - 0x18]
mov dword [0x40846c], eax
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov al, 1
jmp 0x401d82
mov dword [ebp - 0xc8], str.s.exe
mov eax, dword [ebp - 8]
mov dword [ebp - 0xcc], eax
mov eax, dword [ebp - 0xcc]
mov al, byte [eax]
mov byte [ebp - 0xcd], al
mov ecx, dword [ebp - 0xc8]
cmp al, byte [ecx]
jne 0x401c5b
cmp byte [ebp - 0xcd], 0
je 0x401c52
mov eax, dword [ebp - 0xcc]
mov al, byte [eax + 1]
mov byte [ebp - 0xce], al
mov ecx, dword [ebp - 0xc8]
cmp al, byte [ecx + 1]
jne 0x401c5b
add dword [ebp - 0xcc], 2
add dword [ebp - 0xc8], 2
cmp byte [ebp - 0xce], 0
jne 0x401c00
and dword [ebp - 0xd4], 0
jmp 0x401c66
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0xd4], eax
mov eax, dword [ebp - 0xd4]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 0
jne 0x401caf
cmp dword [ebp - 0x14], 0x7530
jbe 0x401caf
mov eax, dword [0x408474]
cmp eax, dword [ebp - 0x14]
je 0x401caf
mov eax, dword [ebp - 0x14]
mov dword [0x408474], eax
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov al, 1
jmp 0x401d82
mov dword [ebp - 0xdc], str.o.exe
mov eax, dword [ebp - 8]
mov dword [ebp - 0xe0], eax
mov eax, dword [ebp - 0xe0]
mov al, byte [eax]
mov byte [ebp - 0xe1], al
mov ecx, dword [ebp - 0xdc]
cmp al, byte [ecx]
jne 0x401d1d
cmp byte [ebp - 0xe1], 0
je 0x401d14
mov eax, dword [ebp - 0xe0]
mov al, byte [eax + 1]
mov byte [ebp - 0xe2], al
mov ecx, dword [ebp - 0xdc]
cmp al, byte [ecx + 1]
jne 0x401d1d
add dword [ebp - 0xe0], 2
add dword [ebp - 0xdc], 2
cmp byte [ebp - 0xe2], 0
jne 0x401cc2
and dword [ebp - 0xe8], 0
jmp 0x401d28
sbb eax, eax
sbb eax, 0xffffffff
mov dword [ebp - 0xe8], eax
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0xec], eax
cmp dword [ebp - 0xec], 0
jne 0x401d6e
cmp dword [ebp - 0x10], 0x7530
jbe 0x401d6e
mov eax, dword [0x408468]
cmp eax, dword [ebp - 0x10]
je 0x401d6e
mov eax, dword [ebp - 0x10]
mov dword [0x408468], eax
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
mov al, 1
jmp 0x401d82
push dword [ebp - 0xc]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
xor al, al
leave
ret