Function at 0x4024f0
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp 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:
push 0xffffffffffffffff
push 0x403acb
mov eax, dword fs:[0]
push eax
sub esp, 0x20c
mov eax, dword [0x407020]
xor eax, esp
mov dword [esp + 0x208], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x407020]
xor eax, esp
push eax
lea eax, [esp + 0x220]
mov dword fs:[0], eax
lea eax, [esp + 0x8c]
push eax
mov esi, ecx
push 0x202
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 0
call dword [sym.imp.WS2_32.dll_WSAStartup]
push 0
push 1
mov ebx, 2
push ebx
call dword [sym.imp.WS2_32.dll_socket]
mov edi, eax
cmp edi, 0xffffffff
jne 0x402575
push 0x405049
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
jmp 0x402760
push 0x404f28
call dword [sym.imp.WS2_32.dll_gethostbyname]
mov ebp, eax
test ebp, ebp
je 0x4025d5
xor eax, eax
mov dword [esp + 0x44], eax
push 0x50
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
mov word [esp + 0x48], bx
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x46], ax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
mov eax, dword [edx]
push 0x10
lea ecx, [esp + 0x48]
push ecx
push edi
mov dword [esp + 0x54], eax
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4025e7
push edi
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x405049
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
jmp 0x402760
push 0
push 0xe8
push 0x404f38
push edi
call dword [sym.imp.WS2_32.dll_send]
test eax, eax
jle 0x4025c8
lea ecx, [esp + 0x54]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
mov ebp, 1
push 0x100000
lea ecx, [esp + 0x58]
mov dword [esp + 0x22c], ebp
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::resize_unsigned_int_]
cmp dword [esp + 0x6c], 0x10
mov eax, dword [esp + 0x58]
jae 0x402632
lea eax, [esp + 0x58]
mov edx, dword [esp + 0x68]
push 0
push edx
push eax
push edi
call dword [sym.imp.WS2_32.dll_recv]
test eax, eax
push edi
jg 0x402668
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x405049
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
mov dword [esp + 0x14], ebp
jmp 0x40274e
call dword [sym.imp.WS2_32.dll_closesocket]
call dword [sym.imp.WS2_32.dll_WSACleanup]
push 0x405024
lea ecx, [esp + 0x74]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push 0
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x5c]
mov byte [esp + 0x230], bl
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov ebp, eax
cmp ebp, dword [ecx]
jne 0x4026b6
push 0x405049
mov ecx, esi
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
jmp 0x402734
mov edx, dword [esp + 0x84]
add edx, ebp
push edx
push 0x405034
lea ecx, [esp + 0x5c]
call dword [sym.imp.MSVCP80.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP80.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
cmp eax, dword [ecx]
je 0x4026a7
mov ebx, dword [esp + 0x84]
push eax
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x60]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
call fcn.004029c0
push ebx
lea ecx, [esp + 0x38]
push ecx
push ebp
lea edx, [esp + 0x28]
mov edi, eax
push edx
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x68]
call dword [sym.imp.MSVCP80.dll_public:_class_std::_String_iterator_char__struct_std::char_traits_char___class_std::allocator_char_____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::begin_void_]
call fcn.004029c0
call fcn.004029c0
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
mov ecx, dword [eax + 4]
push edx
mov edx, dword [eax]
push ecx
push edx
call fcn.00402a20
lea ecx, [esp + 0x70]
mov dword [esp + 0x14], 1
mov byte [esp + 0x228], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x54]
mov byte [esp + 0x228], 0
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov eax, esi
mov ecx, dword [esp + 0x220]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x208]
xor ecx, esp
call fcn.00402ec0
add esp, 0x218
ret