Function at 0x403400
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
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, 0xc14
push ebp
push 6
push 1
mov dword [esp + 0xc], ecx
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x4035be
push str.nic.nju.edu.cn
call dword [sym.imp.WS2_32.dll_gethostbyname]
test eax, eax
je 0x4035be
xor ecx, ecx
push 0x50
mov dword [esp + 0xc], ecx
mov word [esp + 0xc], 2
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [edx]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
call dword [sym.imp.WS2_32.dll_htons]
lea edx, [esp + 8]
push 0x10
push edx
push ebp
mov word [esp + 0x16], ax
call dword [sym.imp.WS2_32.dll_connect]
test eax, eax
jne 0x4035be
push ebx
push esi
push edi
mov edi, str.GET_http:__nic.nju.edu.cn_bras_error.txt
or ecx, 0xffffffff
lea edx, [esp + 0x424]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x424]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
mov edi, str._HTTP_1.1_r_nAccept:___r_nReferer:_http:__nic.nju.edu.cn_bras_error.txt_Accept_Language:_zh_cn_r_nAccept_Encoding:_gzip__deflate_r_nUser_Agent:_Mozilla_4.0__compatible__MSIE_5.01__Windows_NT_5.0__r_nHost:_nic.nju.edu.cn_r_nConnection:_Keep_Alive_r_n_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]
lea edi, [esp + 0x428]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x428]
push ecx
push eax
push ebp
call dword [sym.imp.WS2_32.dll_send]
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x24]
push eax
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x28]
push 0x400
push ecx
push ebp
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
jle 0x4035b4
mov esi, dword [sym.imp.MSVCRT.dll_strstr]
lea edx, [esp + 0x24]
push str.HTTP_1.1_200_OK
push edx
call esi
add esp, 8
test eax, eax
je 0x4035b4
lea eax, [esp + 0x24]
push str.Content_Type:_text_plain_r_n_r_n
push eax
call esi
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4035b4
mov esi, ebx
lea ecx, [esp + 0x24]
sub esi, ecx
lea edi, [esp + 0x24]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esi + 0x1c]
mov edx, ecx
cmp eax, edx
jge 0x4035b4
mov ecx, 0x100
xor eax, eax
lea edi, [esp + 0x824]
sub edx, esi
rep stosd dword es:[edi], eax
sub edx, 0x1c
add ebx, 0x1c
push edx
lea ecx, [esp + 0x828]
push ebx
push ecx
call dword [sym.imp.MSVCRT.dll_strncpy]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
lea edx, [esp + 0x824]
push 0
push str.njubras_message
push edx
call sub.MFC42.DLL_CWnd::MessageBoxA
push ebp
call dword [sym.imp.WS2_32.dll_closesocket]
pop edi
pop esi
pop ebx
pop ebp
add esp, 0xc14
ret