Function at 0x41c610
Capabilities:
Check http status code
Connect to http server
Create http request
Parse url
Read data from internet
Receive data
Resolve function by parsing pe exports
Send data
Send http request

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x6708
call fcn.0048e7b0
mov eax, dword [0x515584]
xor eax, esp
mov dword [esp + 0x6704], eax
push esi
push edi
mov edi, dword [ebp + 8]
mov dword [esp + 0xc], edi
test edi, edi
jne 0x41c66b
push 0x1a2
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___pThis_is_NULL_r_n
call fcn.004090e0
add esp, 0xc
or eax, 0xffffffff
pop edi
pop esi
mov ecx, dword [esp + 0x6704]
xor ecx, esp
call fcn.0048d7c2
mov esp, ebp
pop ebp
ret 4
push dword [edi + 0x10]
push 0x1a5
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpThreadProc::lpszUrl___s_r_n
call fcn.004090e0
push 0x208
xorps xmm0, xmm0
mov dword [esp + 0x28], 0
lea eax, [esp + 0x4fc]
mov dword [esp + 0x38], 0
push 0
push eax
mov dword [esp + 0x34], 0
mov dword [esp + 0x50], 0
movaps xmmword [esp + 0xdc], xmm0
movaps xmmword [esp + 0xec], xmm0
call fcn.00490000
add esp, 0x1c
lea eax, [esp + 0x2e0]
push 0x208
push 0
push eax
call fcn.00490000
add esp, 0xc
lea eax, [esp + 0x4708]
push 0x2000
push 0
push eax
call fcn.00490000
mov edx, dword [edi + 0x10]
lea eax, [esp + 0x2ec]
xorps xmm0, xmm0
mov dword [esp + 0x5c], eax
mov ecx, edx
mov dword [esp + 0x3c], 0
lea eax, [esp + 0x4714]
movlpd qword [esp + 0x50], xmm0
add esp, 0xc
mov dword [esp + 0x4c], 0
movlpd qword [esp + 0x58], xmm0
movlpd qword [esp + 0x60], xmm0
lea esi, [ecx + 2]
mov dword [esp + 0x68], 0
movlpd qword [esp + 0x74], xmm0
mov dword [esp + 0x40], 0x3c
mov dword [esp + 0x54], 0x104
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], 0x1000
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41c763
lea eax, [esp + 0x40]
sub ecx, esi
push eax
push 0
sar ecx, 1
push ecx
push edx
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x41c7a8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x1cd
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___InternetCrackUrlW_error:__d_r_n
call fcn.004090e0
add esp, 0x10
jmp 0x41c652
mov eax, dword [esp + 0x4c]
cmp eax, 4
jne 0x41c7bb
mov dword [esp + 0x2c], 1
jmp 0x41c7cc
cmp eax, 3
jne 0x41c652
mov dword [esp + 0x2c], 0
movzx esi, word [esp + 0x58]
push 0
push 0
push 0
push 0
push 0x4d73c4
mov dword [esp + 0x4c], esi
call dword [sym.imp.WININET.dll_InternetOpenW]
mov dword [esp + 0x28], eax
test eax, eax
jne 0x41c816
mov esi, 0xfffffffd
push esi
push 0x1ea
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___InternetOpenW_error:__d_r_n
mov dword [esp + 0x28], esi
call fcn.004090e0
add esp, 0x10
jmp 0x41cf13
push 0
push 0
push 3
push 0
push 0
push esi
lea ecx, [esp + 0x2f8]
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectW]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [esp + 0x20], eax
test eax, eax
je 0x41ceb2
mov eax, dword [edi + 0x70]
cmp eax, 1
je 0x41c85b
cmp eax, 2
je 0x41c87c
cmp dword [edi + 0x20], 0
jbe 0x41c87c
cmp dword [edi + 0x1c], 0
je 0x41c87c
movq xmm0, qword [str.POST]
mov ax, word [0x4d96f0]
movq qword [esp + 0xc0], xmm0
mov word [esp + 0xc8], ax
jmp 0x41c894
mov eax, dword [0x4d96e0]
mov dword [esp + 0xc0], eax
mov eax, dword [0x4d96e4]
mov dword [esp + 0xc4], eax
push 0x214
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___Iconnect_success_r_n
call fcn.004090e0
mov ecx, dword [edi + 0x78]
add esp, 0xc
test ecx, ecx
mov eax, 0x80048200
mov esi, 0x800c8200
mov edx, 0x224
cmove esi, eax
mov ecx, str.__s__d___No_cookie_r_n
mov eax, 0x21f
cmove eax, edx
push eax
mov eax, str.__s__d___Have_cookie_r_n
cmovne eax, ecx
push str.CQhHttpTransfer::HttpThreadProc
push eax
call fcn.004090e0
add esp, 0xc
cmp dword [esp + 0x2c], 0
je 0x41c8ff
or esi, 0x800000
cmp dword [edi + 0x74], 0
jne 0x41c8ff
or esi, 0x1000
push 0
push esi
push 0
push 0
push str.HTTP_1.0
lea eax, [esp + 0x471c]
push eax
lea eax, [esp + 0xd8]
push eax
push dword [esp + 0x3c]
call dword [sym.imp.WININET.dll_HttpOpenRequestW]
mov esi, eax
mov dword [esp + 0x14], esi
test esi, esi
je 0x41d1da
lea eax, [esp + 0x4e8]
push str.Accept:___r_nUser_Agent:_Mozilla_4.0__compatible__MSIE_6.0__Windows_NT_5.1__r_nConnection:close_r_n
push eax
call fcn.0041be90
add esp, 8
lea eax, [esp + 0x4e8]
push 0xa0000000
push 0xffffffffffffffff
push eax
push esi
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersW]
push eax
push 0x249
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpAddRequestHeadersW_result:__d_r_n
call fcn.004090e0
mov esi, dword [edi + 0x24]
add esp, 0x10
cmp esi, dword [edi + 0x28]
je 0x41caf0
cmp dword [esi + 0x14], 0x10
mov eax, esi
mov ecx, dword [esi + 0x10]
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x7c], esi
jb 0x41c9b1
mov eax, dword [esi]
mov dword [esp + 0x7c], eax
cmp ecx, 0x10
jae 0x41c9df
movups xmm0, xmmword [eax]
mov dword [esp + 0xa0], ecx
lea eax, [esp + 0x90]
mov dword [esp + 0xa4], 0xf
movups xmmword [esp + 0x90], xmm0
jmp 0x41ca7e
mov edi, ecx
mov eax, SysReAllocString
or edi, 0xf
cmp edi, 0x7fffffff
cmova edi, eax
lea ecx, [edi + 1]
cmp ecx, 0x1000
jb 0x41ca26
lea eax, [ecx + 0x23]
cmp eax, ecx
mov ecx, 0xffffffff
cmovbe eax, ecx
push eax
call fcn.0048d9d3
add esp, 4
test eax, eax
je 0x41d206
lea ecx, [eax + 0x23]
and ecx, 0xffffffe0
mov dword [ecx - 4], eax
jmp 0x41ca39
test ecx, ecx
je 0x41ca37
push ecx
call fcn.0048d9d3
add esp, 4
mov ecx, eax
jmp 0x41ca39
xor ecx, ecx
mov eax, dword [esp + 0x1c]
inc eax
mov dword [esp + 0x90], ecx
push eax
push dword [esp + 0x80]
push ecx
call fcn.0048fa80
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0xa0], eax
cmp edi, 0x10
lea eax, [esp + 0x90]
mov dword [esp + 0xa4], edi
cmovae eax, dword [esp + 0x90]
mov edi, dword [esp + 0xc]
push 0x20000000
push 0xffffffffffffffff
push eax
push dword [esp + 0x20]
call dword [sym.imp.WININET.dll_HttpAddRequestHeadersA]
push eax
push 0x250
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpAddRequestHeadersA_result:__d_r_n
call fcn.004090e0
mov edx, dword [esp + 0xb4]
add esp, 0x10
cmp edx, 0x10
jb 0x41cae4
mov ecx, dword [esp + 0x90]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x41cada
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x41d206
push edx
push ecx
call fcn.0048da03
add esp, 8
add esi, 0x18
cmp esi, dword [edi + 0x28]
jne 0x41c982
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x24]
jmp 0x41cb04
mov edi, dword [esp + 0xc]
inc eax
mov dword [esp + 0x7c], 0
mov dword [esp + 0x24], eax
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x80]
mov dword [esp + 0x84], 4
push eax
push 0x1f
push esi
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
test eax, eax
mov ecx, 0x4d9e9c
mov eax, 0x4d9ea4
cmove ecx, eax
push ecx
push 0x25f
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___InternetQueryOption_result:__s_r_n
call fcn.004090e0
or dword [esp + 0x8c], 0x3180
lea eax, [esp + 0x8c]
add esp, 0x10
push 4
push eax
push 0x1f
push esi
call dword [sym.imp.WININET.dll_InternetSetOptionW]
test eax, eax
mov ecx, 0x4d9e9c
mov eax, 0x4d9ea4
cmove ecx, eax
push ecx
push 0x267
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___InternetSetOption_result:__s_r_n
call fcn.004090e0
add esp, 0x10
push dword [edi + 0x20]
push dword [edi + 0x1c]
push 0
push 0
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestW]
mov edi, eax
test edi, edi
jne 0x41cc6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
push esi
push 0x275
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpSendRequestW_error:__d_r_n
call fcn.004090e0
add esp, 0x10
mov dword [esp + 0x3c], edi
lea eax, [esp + 0x3c]
push edi
push edi
push eax
push edi
push esi
push edi
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageW]
push dword [esp + 0x3c]
push 0x28d
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___UNICODE_HttpSendRequestW_error_str:__s_r_n
call fcn.004090e0
add esp, 0x10
cmp esi, 0x2f0d
jne 0x41cc6b
mov esi, dword [esp + 0x14]
lea eax, [esp + 0x80]
push eax
lea eax, [esp + 0x88]
mov dword [esp + 0x84], 4
push eax
push 0x1f
push esi
call dword [sym.imp.WININET.dll_InternetQueryOptionW]
or dword [esp + 0x84], 0x100
lea eax, [esp + 0x84]
push 4
push eax
push 0x1f
push esi
call dword [sym.imp.WININET.dll_InternetSetOptionW]
mov eax, dword [esp + 0x24]
cmp eax, 2
jl 0x41cb00
mov eax, dword [esp + 0xc]
push 0
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x41cedd
test edi, edi
je 0x41d0c7
push 0x200
lea eax, [esp + 0xe4]
push 0
push eax
call fcn.00490000
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x98]
add esp, 0xc
mov dword [esp + 0x8c], 0x100
xor esi, esi
mov dword [esp + 0x1c], esi
mov dword [esp + 0x80], esi
push esi
push eax
lea eax, [esp + 0xe8]
push eax
push 0x13
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x41ccf3
lea eax, [esp + 0xe0]
push eax
call fcn.00494f0a
mov esi, eax
add esp, 4
mov dword [esp + 0x1c], esi
jmp 0x41cd11
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2b5
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpQueryInfoW_result:__d_r_n
call fcn.004090e0
add esp, 0x10
push esi
push 0x2b9
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___http_dwStauts:__d_r_n
call fcn.004090e0
add esp, 0x10
cmp esi, 0xc8
je 0x41cf3e
cmp esi, 0x197
je 0x41cd49
cmp esi, 0x193
jne 0x41ced9
cmp dword [esp + 0x30], 0
jne 0x41ced9
push 0
push 0
push 0
push 0
xor al, al
mov byte [esp + 0x22], 0
push 0x4d73c4
mov byte [esp + 0x27], al
call dword [sym.imp.WININET.dll_InternetOpenW]
mov edi, eax
test edi, edi
je 0x41ced9
nop dword [eax]
push 0
push 0x84000000
push 0
push 0
push str.http:__profile.se.360.cn_proxyerr.php
push edi
call dword [sym.imp.WININET.dll_InternetOpenUrlW]
mov esi, eax
test esi, esi
je 0x41ce41
push 0x200
lea eax, [esp + 0x6f4]
push 0
push eax
call fcn.00490000
add esp, 0xc
mov dword [esp + 0xbc], 0x100
lea eax, [esp + 0xbc]
push 0
push eax
lea eax, [esp + 0x6f8]
push eax
push 0x13
push esi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x41ce2c
lea eax, [esp + 0x6f0]
push eax
call fcn.00494f0a
add esp, 4
cmp eax, 0x193
je 0x41ce00
cmp eax, 0x197
jne 0x41ce2c
push 0
push 7
push 0x2eee
push esi
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.WININET.dll_InternetErrorDlg]
cmp eax, 0x2f00
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
sete byte [esp + 0x16]
call esi
jmp 0x41ce47
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], 1
call esi
jmp 0x41ce47
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
cmp byte [esp + 0x12], 0
jne 0x41cd80
push edi
call esi
cmp byte [esp + 0x13], 0
je 0x41ced5
push dword [esp + 0x14]
call esi
push dword [esp + 0x20]
call esi
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], 1
test eax, eax
je 0x41ce7b
push eax
call esi
xor eax, eax
lea ecx, [esp + 0x2e0]
push eax
push eax
push 3
push eax
push eax
push dword [esp + 0x4c]
mov dword [esp + 0x40], eax
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetConnectW]
mov edi, dword [esp + 0xc]
mov ecx, eax
mov dword [esp + 0x20], ecx
test ecx, ecx
jne 0x41c842
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push 0xfffffffffffffffc
push 0x1fc
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___InternetConnectW_error:__d_r_n
mov dword [esp + 0x28], 0xfffffffc
call fcn.004090e0
add esp, 0x10
jmp 0x41cee7
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x18], esi
mov edi, dword [esp + 0xc]
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x41cef2
push eax
call esi
mov eax, dword [esp + 0x20]
test eax, eax
je 0x41cefd
push eax
call esi
mov eax, dword [esp + 0x28]
test eax, eax
je 0x41cf08
push eax
call esi
cmp dword [esp + 0x34], 0
jne 0x41cf24
mov esi, dword [esp + 0x18]
mov ecx, dword [edi + 0x14]
test ecx, ecx
je 0x41cf24
push dword [edi + 0x18]
push 0
push 0
push esi
call ecx
mov ecx, dword [esp + 0x670c]
mov eax, dword [esp + 0x18]
pop edi
pop esi
xor ecx, esp
call fcn.0048d7c2
mov esp, ebp
pop ebp
ret 4
push 0
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0xe8]
push eax
push 5
push edi
call dword [sym.imp.WININET.dll_HttpQueryInfoW]
test eax, eax
je 0x41cf76
lea eax, [esp + 0xe0]
push eax
call fcn.00494f0a
add esp, 4
mov dword [esp + 0x80], eax
jmp 0x41cf94
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2c5
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpQueryInfoW_error:__d_r_n
call fcn.004090e0
add esp, 0x10
mov esi, dword [esp + 0xc]
sub esp, 8
mov ecx, esp
push ecx
lea eax, [esi + 0x30]
push eax
call fcn.0041d7e0
lea edx, [esi + 0x38]
mov ecx, edi
call fcn.0041c250
add esp, 8
xor edi, edi
xor esi, esi
nop dword [eax + eax]
push 0x2001
lea eax, [esp + 0x6f4]
push 0
push eax
call fcn.00490000
add esp, 0xc
mov dword [esp + 0x7c], 0
lea eax, [esp + 0x7c]
push eax
push 0x2000
lea eax, [esp + 0x6f8]
push eax
push dword [esp + 0x20]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x41d072
xor ecx, ecx
mov eax, esi
add eax, dword [esp + 0x7c]
setb cl
neg ecx
or ecx, eax
push ecx
push edi
call fcn.0049f884
push dword [esp + 0x84]
mov edi, eax
lea eax, [esp + 0x6fc]
push eax
lea ecx, [esi + edi]
push ecx
call fcn.0048fa80
add esi, dword [esp + 0x90]
add esp, 0x14
cmp esi, 0x500000
jbe 0x41d04e
mov eax, dword [esp + 0xc]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_SetEvent]
mov eax, dword [esp + 0xc]
push 0
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x41d1ca
cmp dword [esp + 0x7c], 0
jne 0x41cfc0
jmp 0x41d091
mov eax, dword [esp + 0x80]
test eax, eax
je 0x41d19b
cmp esi, eax
jne 0x41d19b
mov dword [esp + 0x7c], 0
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x41d0a8
push dword [ecx + 0x18]
push esi
push edi
push 0xc8
call eax
mov dword [esp + 0x34], 1
test edi, edi
je 0x41d0bf
push 0
push edi
call fcn.0049f884
add esp, 8
mov dword [esp + 0x18], 0xc8
push 0x1001
lea eax, [esp + 0x26fc]
push 0
push eax
call fcn.00490000
mov edi, dword [esp + 0x20]
lea eax, [esp + 0x94]
mov esi, dword [sym.imp.WININET.dll_HttpQueryInfoA]
add esp, 0xc
mov dword [esp + 0x88], 0x1000
push 0
push eax
lea eax, [esp + 0x2700]
push eax
push 0x80000016
push edi
call esi
lea ecx, [esp + 0x26f8]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41d117
sub ecx, edx
lea eax, [esp + 0x26f8]
push ecx
mov ecx, dword [esp + 0x10]
push eax
lea ecx, [ecx + 0x40]
call fcn.00403560
push 0x1001
lea eax, [esp + 0x3704]
push 0
push eax
call fcn.00490000
add esp, 0xc
mov dword [esp + 0x88], 0x1000
lea eax, [esp + 0x88]
push 0
push eax
lea eax, [esp + 0x3708]
push eax
push 0x16
push edi
call esi
lea ecx, [esp + 0x3700]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x41d178
mov edi, dword [esp + 0xc]
lea eax, [esp + 0x3700]
sub ecx, edx
push ecx
push eax
lea ecx, [edi + 0x58]
call fcn.00403560
jmp 0x41cee1
mov dword [esp + 0x18], 0xfffffffa
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0xfffffffffffffffa
push 0x2f6
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___read_error:__d_r_n
call fcn.004090e0
add esp, 0x10
test edi, edi
je 0x41cedd
push 0
push edi
call fcn.0049f884
add esp, 8
jmp 0x41cedd
push 0xfffffffffffffffb
push 0x23e
push str.CQhHttpTransfer::HttpThreadProc
push str.__s__d___HttpOpenRequestW_error:__d_r_n
mov dword [esp + 0x28], 0xfffffffb
call fcn.004090e0
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
add esp, 0x10
jmp 0x41cef2
call fcn.0049c1b3
int3