Function at 0x40965e
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, 0x33c
mov dword [ebp - 0x2f4], sym.___gxx_personality_sj0
mov dword [ebp - 0x2f0], 0x47cbe4
lea eax, [ebp - 0x2ec]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x409c5e
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x30c]
mov dword [esp], eax
call dbg._Unwind_SjLj_Register
mov word [ebp - 0x1a], 2
movzx eax, word [ebp - 0x1a]
lea edx, [ebp - 0x2cc]
mov dword [esp + 4], edx
mov dword [esp], eax
mov dword [ebp - 0x308], 0xffffffff
call sym._WSAStartup_8
sub esp, 8
mov eax, dword [ebp + 8]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp], eax
call sym._gethostbyname_4
sub esp, 4
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
jne 0x4096fe
call sym._WSACleanup_0
mov dword [ebp - 0x310], 0xffffffff
jmp 0x409c33
mov dword [esp + 8], 6
mov dword [esp + 4], 1
mov dword [esp], 2
mov dword [ebp - 0x308], 0xffffffff
call sym._socket_12
sub esp, 0xc
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xffffffff
jne 0x409744
call sym._WSACleanup_0
mov dword [ebp - 0x310], 0xffffffff
jmp 0x409c33
mov word [ebp - 0x38], 2
mov eax, dword [ebp - 0x20]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [ebp - 0x34], eax
mov dword [esp], 0x24b
mov dword [ebp - 0x308], 0xffffffff
call sym._htons_4
sub esp, 4
mov word [ebp - 0x36], ax
lea eax, [ebp - 0x38]
mov dword [esp + 8], 0x10
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._connect_12
sub esp, 0xc
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0xffffffff
jne 0x4097ae
call sym._WSACleanup_0
mov dword [ebp - 0x310], 0xffffffff
jmp 0x409c33
lea eax, [ebp - 0x3c]
mov dword [esp], eax
mov dword [ebp - 0x308], 0xffffffff
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
lea eax, [ebp - 0x3c]
mov dword [esp], eax
mov dword [ebp - 0x308], 1
call method.std::string.clear__
mov eax, dword [ebp + 8]
add eax, 0x14
mov dword [esp + 4], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov eax, dword [ebp + 8]
mov dword [esp + 4], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], str._nAUTH_LOGIN_r_n
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x4806f8
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x4806f8
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x314], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x314]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.MAIL_FROM:__
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x480708
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x318], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x318]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.RCPT_TO:__
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x480708
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x31c], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x31c]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.DATA_r_n
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x320], eax
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.c_str___const
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x320]
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.From:
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x480725
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x480708
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov dword [esp + 4], str.To:__
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x480708
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
mov dword [esp + 4], str.Subject:
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], 0x4806f8
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x324], eax
lea eax, [ebp - 0x3c]
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 - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
lea eax, [ebp - 0x3c]
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 - 0x3c]
mov dword [esp], eax
call fcn.004561d4
mov dword [esp + 4], str._r_n._r_n
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x328], eax
lea eax, [ebp - 0x3c]
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 - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.clear__
mov dword [esp + 4], str.QUIT_r_n
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.operator_char_const_
lea eax, [ebp - 0x3c]
mov dword [esp], eax
call method.std::string.length___const
mov dword [ebp - 0x32c], eax
lea eax, [ebp - 0x3c]
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 - 0x24]
mov dword [esp], eax
call sym._send_16
sub esp, 0x10
mov eax, dword [ebp - 0x24]
mov dword [esp], eax
call sym._closesocket_4
sub esp, 4
call sym._WSACleanup_0
mov dword [ebp - 0x310], 0
lea eax, [ebp - 0x3c]
mov dword [esp], eax
mov dword [ebp - 0x308], 0xffffffff
call fcn.00456010
mov eax, dword [ebp - 0x310]
mov dword [ebp - 0x330], eax
lea eax, [ebp - 0x30c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0x330]
lea esp, [ebp - 0xc]
add esp, 0
pop ebx
pop esi
pop edi
leave
ret