Function at 0x447370
Capabilities:
Initialize winhttp library
Prepare http request
Read http header
Receive http response
Send data
Send http request
Set http header

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x47aa50
mov eax, dword fs:[0]
push eax
mov eax, 0x254c
call fcn.00476590
mov eax, dword [0x49f008]
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 esi, edx
mov dword [ebp - 0x2510], esi
mov edi, ecx
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
test esi, esi
je 0x4473ee
lea ebx, [esi + 0xc]
mov dword [ebp - 0x2514], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 4]
mov dword [esi + 0x58], eax
mov dword [esi + 0x54], 0
test ecx, ecx
je 0x4473e2
mov edx, dword [ecx]
push eax
push 1
push 0
push dword [esi + 8]
call dword [edx]
mov ebx, dword [sym.imp.KERNEL32.dll_SetLastError]
push 0
call ebx
jmp 0x44742e
mov eax, dword [0x4a2278]
test al, 1
jne 0x447424
or eax, 1
mov dword [0x4a2278], eax
mov ecx, 0x4a2280
mov dword [ebp - 4], 0
call fcn.0043b620
push 0x47b730
call fcn.0044e3dd
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov dword [ebp - 0x2514], 0x4a2280
lea ecx, [ebp - 0x2508]
call fcn.00447240
push 4
push dword [0x4958b8]
mov eax, 0x50
mov dword [ebp - 0xb8], 2
mov word [ebp - 0xbc], ax
mov eax, ecx
push 0x21
push eax
mov dword [ebp - 0xb4], 4
call fcn.00462e76
push eax
call fcn.00406510
add esp, 0x14
cmp dword [edi + 0x14], 8
jb 0x44747c
mov edi, dword [edi]
lea ecx, [ebp - 0x2508]
call fcn.00447240
push edi
call fcn.00446c60
mov edi, eax
test esi, esi
je 0x4474b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 4]
mov dword [esi + 0x58], eax
mov dword [esi + 0x54], 1
test ecx, ecx
je 0x4474b5
mov edx, dword [ecx]
push eax
push edi
push 1
push dword [esi + 8]
call dword [edx]
push 0
call ebx
test edi, edi
je 0x4477e1
lea eax, [ebp - 0x24c6]
push eax
lea ecx, [ebp - 0x98]
call fcn.004074c0
lea eax, [ebp - 0x20c0]
mov dword [ebp - 4], 1
push eax
lea ecx, [ebp - 0x80]
call fcn.004074c0
mov byte [ebp - 4], 2
cmp word [ebp - 0x10be], 0
jne 0x4474fb
xor ecx, ecx
jmp 0x447513
lea ecx, [ebp - 0x10be]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x447504
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x10be]
push eax
lea ecx, [ebp - 0x80]
call fcn.00412e10
movzx eax, word [ebp - 0xbc]
mov dword [ebp - 0x2520], eax
xor eax, eax
cmp dword [ebp - 0xb8], 3
push 0
push 0
sete al
push 0
shl eax, 0x17
push 0
add eax, 0x100
push str.QQBrowser
mov dword [ebp - 0x250c], eax
call dword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov edi, eax
mov dword [ebp - 0x2550], edi
xor ebx, ebx
mov byte [ebp - 4], 3
test edi, edi
setne bl
test esi, esi
je 0x44759e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 4]
mov dword [esi + 0x58], eax
mov dword [esi + 0x54], 2
test ecx, ecx
je 0x447596
mov edx, dword [ecx]
push eax
push ebx
push 2
push dword [esi + 8]
call dword [edx]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
jne 0x4475c7
test edi, edi
je 0x4475ad
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
lea ecx, [ebp - 0x80]
call fcn.00407480
lea ecx, [ebp - 0x98]
call fcn.00407480
mov eax, ebx
jmp 0x447dd8
cmp dword [ebp - 0x84], 8
lea eax, [ebp - 0x98]
push 0
push dword [ebp - 0x2520]
cmovae eax, dword [ebp - 0x98]
push eax
push edi
call dword [sym.imp.WINHTTP.dll_WinHttpConnect]
mov ebx, eax
mov dword [ebp - 0x2554], ebx
xor eax, eax
mov byte [ebp - 4], 4
test ebx, ebx
setne al
mov dword [ebp - 0x2518], eax
test esi, esi
je 0x44763d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [esi + 4]
mov dword [esi + 0x58], eax
mov dword [esi + 0x54], 3
test ecx, ecx
je 0x44762f
mov edx, dword [ecx]
push eax
push dword [ebp - 0x2518]
push 3
push dword [esi + 8]
call dword [edx]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 0x2518]
test eax, eax
jne 0x447673
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
test ebx, ebx
je 0x44764e
push ebx
call esi
test edi, edi
je 0x447655
push edi
call esi
lea ecx, [ebp - 0x80]
call fcn.00407480
lea ecx, [ebp - 0x98]
call fcn.00407480
mov eax, dword [ebp - 0x2518]
jmp 0x447dd8
xor eax, eax
mov dword [ebp - 0x54], 7
mov dword [ebp - 0x58], 0
mov word [ebp - 0x68], ax
mov ecx, dword [ebp - 0x2514]
mov byte [ebp - 4], 5
mov eax, dword [ecx + 0x44]
lea ecx, [ebp - 0x68]
sub eax, 0
je 0x4476b4
sub eax, 1
je 0x4476ad
sub eax, 1
jne 0x4476b4
push 0x495878
jmp 0x4476b9
push str.POST
jmp 0x4476b9
push 0x49585c
call fcn.0042daa0
push dword [ebp - 0x250c]
cmp dword [ebp - 0x6c], 8
lea ecx, [ebp - 0x80]
push 0
cmovae ecx, dword [ebp - 0x80]
lea eax, [ebp - 0x68]
cmp dword [ebp - 0x54], 8
push 0
cmovae eax, dword [ebp - 0x68]
push str.HTTP_1.1
push ecx
push eax
push ebx
call dword [sym.imp.WINHTTP.dll_WinHttpOpenRequest]
mov esi, eax
mov dword [ebp - 0x2558], esi
xor eax, eax
mov byte [ebp - 4], 6
test esi, esi
setne al
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x2518], eax
je 0x44772e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x2518]
push 4
call fcn.00447320
mov eax, dword [ebp - 0x2518]
test eax, eax
jne 0x44774a
test esi, esi
je 0x44773d
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
lea ecx, [ebp - 0x68]
call fcn.00407480
jmp 0x447641
mov eax, dword [ebp - 0x2514]
cmp dword [eax + 0x1c], 0
je 0x4477ee
add eax, 0xc
cmp dword [eax + 0x14], 8
jb 0x447765
mov eax, dword [eax]
push 0x20000000
push 0xffffffffffffffff
push eax
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpAddRequestHeaders]
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x250c], eax
je 0x4477a3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x250c]
push 5
call fcn.00447320
mov eax, dword [ebp - 0x250c]
test eax, eax
jne 0x4477e8
test esi, esi
je 0x4477b2
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
lea ecx, [ebp - 0x68]
call fcn.00407480
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
test ebx, ebx
je 0x4477c7
push ebx
call esi
test edi, edi
je 0x4477ce
push edi
call esi
lea ecx, [ebp - 0x80]
call fcn.00407480
lea ecx, [ebp - 0x98]
call fcn.00407480
xor eax, eax
jmp 0x447dd8
mov eax, dword [ebp - 0x2514]
xor ecx, ecx
cmp dword [eax + 0x44], 1
mov dword [ebp - 0x2518], ecx
jne 0x447805
mov ecx, dword [eax + 0x34]
mov dword [ebp - 0x2518], ecx
push 0
push ecx
push 0
push 0
push 0
push 0
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpSendRequest]
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x250c], eax
je 0x447846
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x250c]
push 6
call fcn.00447320
mov eax, dword [ebp - 0x250c]
test eax, eax
je 0x4477a7
mov eax, dword [ebp - 0x2514]
cmp dword [eax + 0x44], 1
jne 0x4478c1
cmp dword [eax + 0x34], 0
je 0x4478c1
add eax, 0x24
mov dword [ebp - 0x2520], 0
cmp dword [eax + 0x14], 0x10
jb 0x447875
mov eax, dword [eax]
lea ecx, [ebp - 0x2520]
push ecx
push dword [ebp - 0x2518]
push eax
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpWriteData]
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x250c], eax
je 0x4478b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x250c]
push 7
call fcn.00447320
mov eax, dword [ebp - 0x250c]
test eax, eax
je 0x4477a7
push 0
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpReceiveResponse]
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x250c], eax
je 0x4478f9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x250c]
push 8
call fcn.00447320
mov eax, dword [ebp - 0x250c]
test eax, eax
je 0x4477a7
mov dword [ebp - 0x2528], 0
mov dword [ebp - 0x2534], 0
mov dword [ebp - 0x2530], 0
mov dword [ebp - 0x252c], 0
mov ecx, dword [ebp - 0x2514]
mov byte [ebp - 4], 7
mov ecx, dword [ecx + 0x3c]
mov dword [ebp - 0x2520], ecx
mov eax, dword [ecx]
cmp eax, ecx
mov ecx, dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
mov dword [ebp - 0x2518], eax
je 0x447a0a
add eax, 0x10
mov dword [ebp - 0x2528], 0x64
mov dword [ebp - 0x250c], eax
cmp dword [eax + 0x14], 8
jb 0x44796d
mov eax, dword [eax]
push 0
lea edx, [ebp - 0x2528]
push edx
push 0
push eax
push 0xffff
push esi
call ecx
mov eax, dword [ebp - 0x2528]
test eax, eax
je 0x4479e7
lea ecx, [ebp - 0x2519]
mov byte [ebp - 0x2519], 0
push ecx
add eax, 2
lea ecx, [ebp - 0x2534]
push eax
call fcn.00447e00
mov eax, dword [ebp - 0x250c]
cmp dword [eax + 0x14], 8
jb 0x4479b6
mov eax, dword [eax]
push 0
lea ecx, [ebp - 0x2528]
push ecx
push dword [ebp - 0x2534]
push eax
mov eax, dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
push 0xffff
push esi
call eax
mov ecx, dword [ebp - 0x250c]
push dword [ebp - 0x2534]
add ecx, 0x18
call fcn.0042daa0
lea ecx, [ebp - 0x2518]
call fcn.00414fe0
mov eax, dword [ebp - 0x2518]
mov ecx, dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
cmp eax, dword [ebp - 0x2520]
jne 0x447952
mov eax, dword [ebp - 0x2514]
lea edx, [ebp - 0x2544]
push edx
add eax, 4
mov dword [ebp - 0x2544], 0
lea edx, [ebp - 0x2548]
mov dword [ebp - 0x2518], eax
push edx
push eax
push 0
push 0x20000005
push esi
mov dword [eax], 0
mov dword [ebp - 0x2548], 4
call ecx
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x250c], eax
je 0x447a7b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x250c]
push 9
call fcn.00447320
mov eax, dword [ebp - 0x250c]
test eax, eax
jne 0x447a8f
lea ecx, [ebp - 0x2534]
call fcn.0043dfa0
jmp 0x4477a7
push 0x40
lea eax, [ebp - 0x50]
push 0
push eax
call fcn.00451eb0
add esp, 0xc
mov dword [ebp - 0x254c], 0x40
lea eax, [ebp - 0x254c]
push 0
push eax
lea eax, [ebp - 0x50]
push eax
mov eax, dword [sym.imp.WINHTTP.dll_WinHttpQueryHeaders]
push 0
push 0x13
push esi
call eax
cmp dword [ebp - 0x2510], 0
mov dword [ebp - 0x250c], eax
je 0x447af1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x250c]
push 9
call fcn.00447320
mov eax, dword [ebp - 0x250c]
test eax, eax
jne 0x447b05
lea ecx, [ebp - 0x2534]
call fcn.0043dfa0
jmp 0x4477a7
lea eax, [ebp - 0x50]
push eax
call fcn.004621c7
mov ecx, dword [ebp - 0x2514]
add esp, 4
cmp dword [ecx], 0
mov dword [ecx + 8], eax
je 0x447b6f
lea ecx, [ebp - 0x2534]
call fcn.0043dfa0
test esi, esi
je 0x447b35
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
lea ecx, [ebp - 0x68]
call fcn.00407480
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
test ebx, ebx
je 0x447b4a
push ebx
call esi
test edi, edi
je 0x447b51
push edi
call esi
lea ecx, [ebp - 0x80]
call fcn.00407480
lea ecx, [ebp - 0x98]
call fcn.00407480
mov eax, dword [ebp - 0x250c]
jmp 0x447dd8
mov ecx, dword [ebp - 0x2510]
test ecx, ecx
je 0x447b85
mov edx, dword [ebp - 0x2518]
mov eax, dword [ecx]
push dword [edx]
call dword [eax]
mov dword [ebp - 0x250c], 0
mov dword [ebp - 0x2540], 0
mov dword [ebp - 0x253c], 0
mov dword [ebp - 0x2538], 0
mov byte [ebp - 4], 8
nop dword [eax]
nop word [eax + eax]
lea eax, [ebp - 0x2524]
mov dword [ebp - 0x2524], 0
push eax
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpQueryDataAvailable]
mov dword [ebp - 0x2514], eax
mov eax, dword [ebp - 0x2510]
test eax, eax
je 0x447c08
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x2514]
push 9
call fcn.00447320
mov eax, dword [ebp - 0x2510]
cmp dword [ebp - 0x2514], 0
je 0x447d3a
mov edx, dword [ebp - 0x2524]
xor ecx, ecx
cmp ecx, edx
sbb ecx, ecx
neg ecx
mov dword [ebp - 0x2514], ecx
test eax, eax
je 0x447c53
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x2514]
push 0xb
call fcn.00447320
mov edx, dword [ebp - 0x2524]
mov ecx, dword [ebp - 0x2514]
test ecx, ecx
je 0x447d3a
lea eax, [ebp - 0x2519]
mov byte [ebp - 0x2519], 0
push eax
lea eax, [edx + 1]
push eax
lea ecx, [ebp - 0x2540]
call fcn.00447e00
mov eax, dword [ebp - 0x253c]
mov ecx, dword [ebp - 0x2540]
sub eax, ecx
je 0x447d3a
lea eax, [ebp - 0x2520]
mov dword [ebp - 0x2520], 0
push eax
push dword [ebp - 0x2524]
push ecx
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpReadData]
mov ecx, dword [ebp - 0x2510]
mov dword [ebp - 0x2514], eax
test ecx, ecx
je 0x447ce1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x2514]
push 0xc
call fcn.00447320
mov ecx, dword [ebp - 0x2510]
mov eax, dword [ebp - 0x2514]
test eax, eax
je 0x447d3a
test ecx, ecx
je 0x447d08
mov edx, dword [ebp - 0x2518]
mov eax, dword [ecx]
push dword [edx]
push dword [ebp - 0x2520]
push dword [ebp - 0x250c]
push dword [ebp - 0x2540]
call dword [eax + 4]
mov ecx, dword [ebp - 0x250c]
mov edx, dword [ebp - 0x2518]
mov eax, dword [ebp - 0x2524]
add ecx, eax
mov dword [ebp - 0x250c], ecx
cmp dword [edx], ecx
je 0x447d30
test eax, eax
jne 0x447bc0
jmp 0x447d3a
mov dword [ebp - 0x2514], 1
mov eax, dword [ebp - 0x2518]
mov ecx, dword [ebp - 0x2510]
cmp dword [ebp - 0x2514], 0
push dword [eax]
mov edx, dword [ecx]
setne al
movzx eax, al
push eax
call dword [edx + 8]
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [ebp - 0x2510]
push eax
push dword [ebp - 0x2514]
push 0xd
call fcn.00447320
lea ecx, [ebp - 0x2540]
call fcn.0043dfa0
lea ecx, [ebp - 0x2534]
call fcn.0043dfa0
cmp dword [ebp - 0x2514], 0
je 0x4477a7
test esi, esi
je 0x447da3
push esi
call dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
lea ecx, [ebp - 0x68]
call fcn.00407480
mov esi, dword [sym.imp.WINHTTP.dll_WinHttpCloseHandle]
test ebx, ebx
je 0x447db8
push ebx
call esi
test edi, edi
je 0x447dbf
push edi
call esi
lea ecx, [ebp - 0x80]
call fcn.00407480
lea ecx, [ebp - 0x98]
call fcn.00407480
mov eax, dword [ebp - 0x2514]
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.0044df7a
mov esp, ebp
pop ebp
ret