Function at 0x401f30
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create raw socket
Create tcp socket
Create udp socket
Initialize winsock library
Receive data
Receive data on socket
Resolve dns
Send data
Send data on socket
Send http request
Send http request with host header

Disassembly:
sub esp, 0x9a8
push ebp
push esi
push edi
xor edx, edx
mov ecx, 0x63
xor eax, eax
lea edi, [esp + 0x626]
mov word [esp + 0x624], dx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
xor eax, eax
mov ecx, 0x7f
mov dword [esp + 0x16], eax
lea edi, [esp + 0x425]
mov dword [esp + 0x1a], eax
mov byte [esp + 0x24], dl
mov dword [esp + 0x1e], eax
mov word [esp + 0x14], dx
mov word [esp + 0x22], ax
mov byte [esp + 0x424], al
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov ecx, 0x7f
xor eax, eax
lea edi, [esp + 0x25]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x624]
push ecx
push 0x202
stosb byte es:[edi], al
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
jne 0x4023ba
push ebx
mov ebx, dword [esp + 0x9bc]
mov edi, ebx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x7b8]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [esp + 0x9c0]
lea ecx, [esp + 0x428]
push esi
push ebx
push str._s:_s
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
push 0x200
lea edx, [esp + 0x3c]
push 0x2f30
push edx
call dword [sym.imp.MSVCRT.dll__strnset]
add esp, 0x1c
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
push ebx
mov ebp, eax
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov eax, dword [eax + 0xc]
push esi
mov ecx, dword [eax]
mov edx, dword [ecx]
mov word [esp + 0x1c], 2
mov dword [esp + 0x20], edx
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
push eax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x1a], ax
mov edi, str.GET__install.php_
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x28]
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x9c4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
mov byte [esp + 0x328], al
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str._HTTP_1.1__r_n
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str.Accept:___r_n
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Accept_Language:_zh_cn_r_n
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Accept_Encoding:_gzip__deflate_r_n
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x3f
lea edi, [esp + 0x329]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, dword [esp + 0x9c8]
lea ecx, [esp + 0x328]
push eax
push str.User_Agent:_Mozilla_4.0__compatible__MSIE_7.0__Windows_NT__s__WOW64__Trident_4.0__SLCC2__.NET_CLR_2.0.50727__.NET_CLR_3.5.30729__.NET_CLR_3.0.30729__.NET4.0C__.NET4.0E__r_n
push ecx
call dword [sym.imp.MSVCRT.dll_sprintf]
or ecx, 0xffffffff
lea edi, [esp + 0x334]
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x28]
mov ebx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
or ecx, 0xffffffff
mov edi, str.Host:
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, ecx
mov esi, edi
or ecx, 0xffffffff
mov edi, edx
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x428]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._r_nConnection:_Keep_Alive_r_n
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea edx, [esp + 0x28]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._r_n_r_n
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x10
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x1c]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
push ebp
call dword [sym.imp.WS2_32.dll_connect]
lea edi, [esp + 0x28]
or ecx, 0xffffffff
xor eax, eax
push 0
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea ecx, [esp + 0x30]
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_send]
cmp eax, 0xffffffff
pop ebx
je 0x4023ba
lea ecx, [esp + 0xc]
call fcn.00401d10
push 0
push 0x200
push 0x404df8
push ebp
call dword [sym.imp.WS2_32.dll_recv]
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x225]
mov byte [esp + 0x224], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, 0x404df8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
test edi, edi
mov esi, edi
jle 0x402346
mov al, 0xa
cmp byte [esi + 0x404df8], al
je 0x402309
dec esi
test esi, esi
jg 0x4022fa
jmp 0x402346
lea ecx, [esp + 0x10]
call fcn.00401d10
push esi
lea edx, [esp + 0x14]
push 0x40455c
push edx
call sub.MFC42.DLL_CString::Format
sub edi, esi
lea eax, [esi + 0x404df8]
push edi
lea ecx, [esp + 0x234]
push eax
push ecx
call dword [sym.imp.MSVCRT.dll_strncpy]
add esp, 0x18
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea edx, [esp + 0x224]
push str.false
push edx
call esi
add esp, 8
test eax, eax
je 0x402387
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x9a8
ret
lea eax, [esp + 0x224]
push str.success
push eax
call esi
add esp, 8
lea ecx, [esp + 0xc]
test eax, eax
je 0x4023b5
call sub.MFC42.DLL_CString::CString
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x9a8
ret
call sub.MFC42.DLL_CString::CString
pop edi
pop esi
xor eax, eax
pop ebp
add esp, 0x9a8
ret