Function at 0x10015ed0
Capabilities:
Connect to http server
Create http request
Hash data using djb2
Make an http request with a cookie
Read data from internet
Receive data
Send data
Send http request

Disassembly:
sub esp, 0x994
push ebx
push ebp
push esi
mov dword [esp + 0xc], ecx
push edi
mov ecx, 0xc
mov esi, str.Mozilla_4.0__compatible__MSIE_9.0__Windows_NT_6.1_
lea edi, [esp + 0xf0]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x10100b14]
mov eax, dword [str.qun.qq.com]
movsw word es:[edi], word [esi]
mov dx, word [0x10100b18]
mov dword [esp + 0x24], ecx
movsb byte es:[edi], byte [esi]
mov ecx, 8
mov esi, str._cgi_bin_qun_mgr_get_group_list
lea edi, [esp + 0x30]
mov dword [esp + 0x20], eax
mov al, byte [0x10100b1a]
push str.p_skey
rep movsd dword es:[edi], dword [esi]
mov edi, dword [esp + 0x9ac]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
push edi
mov dword [esp + 0x20], 0x20
mov word [esp + 0x30], dx
mov byte [esp + 0x32], al
call esi
add esp, 8
test eax, eax
je 0x1001612b
push str.skey
push edi
call esi
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x1001612b
push 0x1010007c
push ebx
call esi
mov edx, eax
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x58]
rep stosd dword es:[edi], eax
mov edi, str.bkn
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebp, [esp + 0x58]
mov esi, edi
mov edi, ebp
mov ebp, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
sub edx, ebx
and ecx, 3
sub edx, 5
rep movsb byte es:[edi], byte [esi]
add ebx, 5
push edx
lea ecx, [esp + 0x60]
push ebx
push ecx
call dword [sym.imp.MSVCRT.dll_strncpy]
lea edi, [esp + 0x64]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x14
repne scasb al, byte es:[edi]
not ecx
add ecx, 0xfffffffb
xor edx, edx
test ecx, ecx
mov eax, 0x1505
jle 0x10015ff4
movsx esi, byte [esp + edx + 0x54]
mov edi, eax
shl edi, 5
add edi, eax
add esi, edi
inc edx
cmp edx, ecx
mov eax, esi
jl 0x10015fdf
lea edx, [esp + 0x54]
push 0xa
and eax, 0x7fffffff
push edx
push eax
call dword [sym.imp.MSVCRT.dll__itoa]
add esp, 0xc
lea eax, [esp + 0xf0]
push 0
push 0
push 0
push 0
push eax
call dword [sym.imp.WININET.dll_InternetOpenA]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x14], ebx
je 0x1001612b
push 0
push 0
push 3
push 0
push 0
lea ecx, [esp + 0x34]
push 0x50
push ecx
push ebx
call dword [sym.imp.WININET.dll_InternetConnectA]
mov ebp, eax
test ebp, ebp
jne 0x10016062
push ebx
call dword [sym.imp.WININET.dll_InternetCloseHandle]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x994
ret 4
push 0
push 0x80084010
push 0
push 0
lea edx, [esp + 0x40]
push str.HTTP_1.1
push edx
push 0x10100acc
push ebp
call dword [sym.imp.WININET.dll_HttpOpenRequestA]
mov esi, eax
test esi, esi
jne 0x100160a4
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
push ebp
call esi
push ebx
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x994
ret 4
mov eax, dword [esp + 0x9a8]
lea ecx, [esp + 0x30]
push eax
push ecx
lea edx, [esp + 0x1ac]
push str.Accept:___r_nReferer:_http:__qun.qq.com_s_r_nAccept_Language:_zh_cn_r_nContent_Type:_application_x_www_form_urlencoded_r_nCookie:__s
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
lea edi, [esp + 0x60]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x50]
push ecx
push eax
lea edi, [esp + 0x1ac]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x1b0]
push ecx
push esi
call dword [sym.imp.WININET.dll_HttpSendRequestA]
test eax, eax
je 0x1001611c
lea edx, [esp + 0x18]
push 0
lea eax, [esp + 0xd4]
push edx
push eax
push 5
push esi
call dword [sym.imp.WININET.dll_HttpQueryInfoA]
test eax, eax
jne 0x1001613a
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push ebp
call esi
push ebx
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x994
ret 4
lea ecx, [esp + 0xd0]
push ecx
call dword [sym.imp.MSVCRT.dll_atol]
mov edi, eax
inc edi
push edi
mov dword [esp + 0x24], edi
call sub.MFC42.DLL_operatornew
mov ecx, edi
mov ebx, eax
mov edx, ecx
xor eax, eax
mov edi, ebx
add esp, 8
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
lea eax, [esp + 0x2c]
mov ecx, edx
push eax
push ecx
push ebx
push esi
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x100161ad
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push ebp
call esi
mov edx, dword [esp + 0x14]
push edx
call esi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x994
ret 4
push esi
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call esi
push ebp
call esi
mov eax, dword [esp + 0x14]
push eax
call esi
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov ebp, eax
lea edi, [ebp + ebp + 2]
push edi
call sub.MFC42.DLL_operatornew
mov ecx, edi
mov esi, eax
mov edx, ecx
xor eax, eax
mov edi, esi
add esp, 4
shr ecx, 2
rep stosd dword es:[edi], eax
push ebp
mov ecx, edx
push esi
push 0xffffffffffffffff
and ecx, 3
push ebx
push 0
push 0xfde9
rep stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push ebx
call sub.MFC42.DLL_operatordelete
add esp, 4
push 0
push 0
push 0
push 0
push 0xffffffffffffffff
push esi
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov ebp, eax
lea edi, [ebp + 1]
push edi
call sub.MFC42.DLL_operatornew
mov ecx, edi
mov ebx, eax
mov edx, ecx
add esp, 4
xor eax, eax
mov edi, ebx
shr ecx, 2
rep stosd dword es:[edi], eax
push 0
push 0
push ebp
mov ecx, edx
push ebx
push 0xffffffffffffffff
and ecx, 3
push esi
push 0
push 0
rep stosb byte es:[edi], al
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push esi
call sub.MFC42.DLL_operatordelete
push ebx
call fcn.10002e10
push ebx
mov edi, eax
call sub.MFC42.DLL_operatordelete
add esp, 0xc
test edi, edi
je 0x100163e1
push 0x10100b7c
push edi
call fcn.10004580
add esp, 8
test eax, eax
jne 0x100162a9
push edi
call fcn.10002cd0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x994
ret 4
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x100162c8
push edi
call fcn.10002cd0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x994
ret 4
push 0x10100b74
push edi
call fcn.10004580
push str.join
push edi
mov esi, eax
call fcn.10004580
add esp, 0x10
mov ebx, eax
test esi, esi
jne 0x10016309
test ebx, ebx
jne 0x10016377
push edi
call fcn.10002cd0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x994
ret 4
mov esi, dword [esi + 8]
test esi, esi
je 0x10016373
push 0x10100b68
push esi
call fcn.10004580
add esp, 8
test eax, eax
je 0x1001636d
mov edx, dword [eax + 0x14]
lea ecx, [esp + 0x50]
push ecx
push edx
lea eax, [esp + 0x12c]
push str.gc_ust0end1999sort0_s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edx, dword [esp + 0x9b8]
add esp, 0x10
lea ecx, [esp + 0x124]
push ecx
mov ecx, dword [esp + 0x14]
push edx
call fcn.10015bf0
test eax, eax
je 0x1001636d
push eax
push 0x10100b44
push esi
call fcn.10004680
add esp, 0xc
mov esi, dword [esi]
test esi, esi
jne 0x10016310
test ebx, ebx
je 0x100163e1
mov esi, dword [ebx + 8]
test esi, esi
je 0x100163e1
push 0x10100b68
push esi
call fcn.10004580
add esp, 8
test eax, eax
je 0x100163db
mov edx, dword [eax + 0x14]
lea ecx, [esp + 0x50]
push ecx
push edx
lea eax, [esp + 0x12c]
push str.gc_ust0end1999sort0_s
push eax
call dword [sym.imp.MSVCRT.dll_sprintf]
mov edx, dword [esp + 0x9b8]
add esp, 0x10
lea ecx, [esp + 0x124]
push ecx
mov ecx, dword [esp + 0x14]
push edx
call fcn.10015bf0
test eax, eax
je 0x100163db
push eax
push 0x10100b44
push esi
call fcn.10004680
add esp, 0xc
mov esi, dword [esi]
test esi, esi
jne 0x1001637e
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x994
ret 4