Function at 0x4080fe
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket
Initialize winsock library
Resolve dns
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x34c
mov dword [ebp - 0x304], sym.___gxx_personality_sj0
mov dword [ebp - 0x300], 0x44a388
lea eax, [ebp - 0x2fc]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x4087a4
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x31c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Register
mov word [ebp - 0x1e], 2
lea eax, [ebp - 0x1b8]
mov dword [esp + 4], eax
movzx eax, word [ebp - 0x1e]
mov dword [esp], eax
mov dword [ebp - 0x318], 0xffffffff
call sub.WSOCK32.DLL_WSAStartup
sub esp, 8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp], eax
call sub.WSOCK32.DLL_gethostbyname
sub esp, 4
mov dword [ebp - 0x1bc], eax
cmp dword [ebp - 0x1bc], 0
jne 0x4081a4
call sub.WSOCK32.DLL_WSACleanup
mov dword [ebp - 0x320], 0xffffffff
jmp 0x4087fb
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 2
mov dword [ebp - 0x318], 0xffffffff
call sub.WSOCK32.DLL_socket
sub esp, 0xc
mov dword [ebp - 0x1c0], eax
cmp dword [ebp - 0x1c0], 0xffffffff
jne 0x4081f0
call sub.WSOCK32.DLL_WSACleanup
mov dword [ebp - 0x320], 0xffffffff
jmp 0x4087fb
mov word [ebp - 0x1d8], 2
mov eax, dword [ebp - 0x1bc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x1d4], eax
mov dword [esp], 0x24b
mov dword [ebp - 0x318], 0xffffffff
call sub.WSOCK32.DLL_htons
sub esp, 4
mov word [ebp - 0x1d6], ax
mov dword [esp + 8], 0x10
lea eax, [ebp - 0x1d8]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_connect
sub esp, 0xc
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0xffffffff
jne 0x40826c
call sub.WSOCK32.DLL_WSACleanup
mov dword [ebp - 0x320], 0xffffffff
jmp 0x4087fb
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
mov dword [ebp - 0x318], 0xffffffff
call fcn.0043a378
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
mov dword [ebp - 0x318], 1
call method.std::string.clear__
mov eax, dword [ebp + 8]
add eax, 0x14
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], str._nAUTH_LOGIN_r_n
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 8
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d564
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 0xc
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d564
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x324]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.MAIL_FROM:__
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 4
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d574
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x328], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x328]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.RCPT_TO:__
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 0x10
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d574
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x32c], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x32c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.DATA_r_n
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x330], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x330]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.From:
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 0x18
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d591
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 4
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d574
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov dword [esp + 4], str.To:__
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 0x20
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d574
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov dword [esp + 4], str.Subject:
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov eax, dword [ebp + 8]
add eax, 0x1c
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], 0x44d564
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x334], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x334]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.clear__
mov eax, dword [ebp + 8]
add eax, 0x24
mov dword [esp + 4], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_std::string_const_
mov dword [esp + 4], str._r_n._r_n
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x338], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x338]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.QUIT_r_n
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x33c], eax
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x33c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_send
sub esp, 0x10
mov eax, dword [ebp - 0x1c0]
mov dword [esp], eax
call sub.WSOCK32.DLL_closesocket
sub esp, 4
call sub.WSOCK32.DLL_WSACleanup
lea eax, [ebp - 0x1e8]
mov dword [esp], eax
mov dword [ebp - 0x318], 0xffffffff
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
mov dword [ebp - 0x320], 0
jmp 0x4087fb
lea eax, [ebp - 0x31c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0x320]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret