Function at 0x7039cee0
Capabilities:
Query remote server for available data
Send data

Disassembly:
push esi
mov edx, 1
push ebx
sub esp, 0x24
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
test esi, esi
je 0x7039ceff
xor edx, edx
cmp dword [esi + 8], 5
sete dl
mov eax, dword [ebx + 0x64]
test eax, eax
je 0x7039cfa0
mov eax, dword [ebx + 8]
test eax, eax
je 0x7039cfe0
mov eax, dword [ebx + 0x6c]
test al, 0x40
jne 0x7039cf70
mov ecx, dword [ebx + 0x84]
test ecx, ecx
jne 0x7039cfd0
test edx, edx
jne 0x7039cf90
test esi, esi
je 0x7039cf38
cmp dword [esi + 8], 4
jbe 0x7039cf85
mov eax, dword [ebx + 0x7c]
test eax, eax
jne 0x7039cf57
mov eax, dword [ebx + 0x80]
mov edx, dword [ebx + 0x6c]
test eax, eax
je 0x7039d018
mov dword [ebx + 0x7c], eax
or dword [ebx + 0x6c], 1
mov eax, ebx
call fcn.7039c3a0
add esp, 0x24
xor eax, eax
pop ebx
pop esi
ret
and eax, 0xffffffbf
mov edx, dword [esi + 8]
mov dword [ebx + 0x6c], eax
mov eax, dword [ebx]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dword [eax + 0x10]
add esp, 0x24
xor eax, eax
pop ebx
pop esi
ret
mov eax, ebx
call fcn.7039cd00
test eax, eax
jns 0x7039cf2e
jmp 0x7039cf85
test byte [0x703d83a0], 4
je 0x7039cf85
mov dword [esp + 0xc], str.Expected_request_to_be_non_NULL_n
mov dword [esp + 8], str.protocol_continue
mov dword [esp + 4], 0x703d83a0
mov dword [esp], 2
call fcn.7039c480
jmp 0x7039cf85
add esp, 0x24
mov eax, ebx
pop ebx
pop esi
jmp fcn.7039c4d0
test byte [0x703d83a0], 4
je 0x7039cf85
mov dword [esp + 0xc], str.Expected_IInternetProtocolSink_pointer_to_be_non_NULL_n
mov dword [esp + 8], str.protocol_continue
mov dword [esp + 4], 0x703d83a0
mov dword [esp], 2
call fcn.7039c480
jmp 0x7039cf85
lea eax, [ebx + 0x80]
and edx, 0xfffffffe
mov dword [ebx + 0x6c], edx
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x64]
mov dword [esp], eax
call dword [sym.imp.wininet.dll_InternetQueryDataAvailable]
sub esp, 0x10
test eax, eax
je 0x7039d0c0
test byte [0x703d83a0], 8
jne 0x7039d127
mov eax, dword [ebx + 0x80]
mov edx, dword [ebx + 0x6c]
test eax, eax
jne 0x7039cf50
or edx, 8
mov eax, ebx
mov dword [ebx + 0x6c], edx
call fcn.7039c3a0
mov eax, dword [ebx + 0x6c]
test al, 0x20
jne 0x7039cf85
mov edx, dword [ebx + 8]
test edx, edx
je 0x7039cf85
or eax, 0x20
mov dword [ebx + 0x6c], eax
mov eax, dword [edx]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], edx
call dword [eax + 0x18]
sub esp, 0x10
jmp 0x7039cf85
mov edx, dword fs:[0x18]
cmp dword [edx + 0x34], 0x3e5
mov eax, dword [ebx + 0x6c]
je 0x7039cf53
or eax, 1
mov dword [ebx + 0x6c], eax
test byte [0x703d83a0], 4
jne 0x7039d15a
test al, 0x20
jne 0x7039cf85
mov edx, dword [ebx + 8]
test edx, edx
je 0x7039cf85
or eax, 0x20
mov dword [ebx + 0x6c], eax
mov eax, dword [edx]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], 0x800c0007
mov dword [esp], edx
call dword [eax + 0x18]
sub esp, 0x10
jmp 0x7039cf85
mov eax, dword [ebx + 0x80]
mov dword [esp + 0xc], str.available__lu_bytes_n
mov dword [esp + 8], str.protocol_continue
mov dword [esp + 4], 0x703d83a0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.7039c480
jmp 0x7039d058
mov eax, dword [edx + 0x34]
mov dword [esp + 0xc], str.InternetQueryDataAvailable_failed:__ld_n
mov dword [esp + 8], str.protocol_continue
mov dword [esp + 4], 0x703d83a0
mov dword [esp], 2
mov dword [esp + 0x10], eax
call fcn.7039c480
mov eax, dword [ebx + 0x6c]
jmp 0x7039d0e6