Function at 0x10023f00
Capabilities:
Get hostname
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10034524
mov eax, dword fs:[0]
push eax
sub esp, 0x2d4
mov eax, dword [0x10048024]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x2e0], ecx
mov eax, dword [ebp - 0x2e0]
mov dword [eax], vtable.CSmtp.0
mov ecx, dword [ebp - 0x2e0]
add ecx, 4
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 dword [ebp - 4], 0
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x20
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 byte [ebp - 4], 1
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x3c
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 byte [ebp - 4], 2
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x58
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 byte [ebp - 4], 3
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x74
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 byte [ebp - 4], 4
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x90
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 byte [ebp - 4], 5
mov ecx, dword [ebp - 0x2e0]
add ecx, 0xac
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 byte [ebp - 4], 6
mov ecx, dword [ebp - 0x2e0]
add ecx, 0xcc
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 byte [ebp - 4], 7
mov ecx, dword [ebp - 0x2e0]
add ecx, 0xe8
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 byte [ebp - 4], 8
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x104
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 byte [ebp - 4], 9
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x120
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 byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x154
call fcn.10007960
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x164
call fcn.10007960
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x174
call fcn.10007960
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x184
call fcn.10002cf0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x194
call fcn.10002cf0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2e0]
mov dword [ecx + 0x14c], 0xffffffff
mov edx, dword [ebp - 0x2e0]
mov byte [edx + 0x150], 0
mov eax, dword [ebp - 0x2e0]
mov dword [eax + 0x140], 3
mov ecx, dword [ebp - 0x2e0]
mov word [ecx + 0x13c], 0
mov edx, dword [ebp - 0x2e0]
mov byte [edx + 0x13e], 1
mov word [ebp - 0x1a8], 0x202
lea eax, [ebp - 0x1a4]
push eax
mov cx, word [ebp - 0x1a8]
push ecx
call sub.WS2_32.dll_WSAStartup
test eax, eax
je 0x1002411c
push 0x64
lea ecx, [ebp - 0x2b4]
call fcn.10009f00
mov edx, dword [eax]
mov dword [ebp - 0x2b0], edx
push 0x10042bf4
lea eax, [ebp - 0x2b0]
push eax
call sub.MSVCR80.dll__CxxThrowException
movzx ecx, word [ebp - 0x1a4]
and ecx, 0xff
movzx edx, cl
cmp edx, 2
jne 0x10024148
movzx eax, word [ebp - 0x1a4]
shr eax, 8
and eax, 0xff
movzx ecx, al
cmp ecx, 2
je 0x10024173
call sub.WS2_32.dll_WSACleanup
push 0x65
lea ecx, [ebp - 0x2bc]
call fcn.10009f00
mov edx, dword [eax]
mov dword [ebp - 0x2b8], edx
push 0x10042bf4
lea eax, [ebp - 0x2b8]
push eax
call sub.MSVCR80.dll__CxxThrowException
push 0xff
lea ecx, [ebp - 0x2ac]
push ecx
call dword [sym.imp.WS2_32.dll_gethostname]
cmp eax, 0xffffffff
jne 0x100241b0
push 0x6b
lea ecx, [ebp - 0x2c4]
call fcn.10009f00
mov edx, dword [eax]
mov dword [ebp - 0x2c0], edx
push 0x10042bf4
lea eax, [ebp - 0x2c0]
push eax
call sub.MSVCR80.dll__CxxThrowException
lea ecx, [ebp - 0x2ac]
push ecx
mov ecx, dword [ebp - 0x2e0]
add ecx, 4
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
push 0x1c00
call fcn.1000f66d
add esp, 4
mov dword [ebp - 0x2c8], eax
mov edx, dword [ebp - 0x2e0]
mov eax, dword [ebp - 0x2c8]
mov dword [edx + 0x148], eax
cmp dword [ebp - 0x2c8], 0
jne 0x1002421d
push 0x198
lea ecx, [ebp - 0x2d0]
call fcn.10009f00
mov ecx, dword [eax]
mov dword [ebp - 0x2cc], ecx
push 0x10042bf4
lea edx, [ebp - 0x2cc]
push edx
call sub.MSVCR80.dll__CxxThrowException
push 0x1c00
call fcn.1000f66d
add esp, 4
mov dword [ebp - 0x2d4], eax
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0x2d4]
mov dword [eax + 0x144], ecx
cmp dword [ebp - 0x2d4], 0
jne 0x10024274
push 0x198
lea ecx, [ebp - 0x2dc]
call fcn.10009f00
mov edx, dword [eax]
mov dword [ebp - 0x2d8], edx
push 0x10042bf4
lea eax, [ebp - 0x2d8]
push eax
call sub.MSVCR80.dll__CxxThrowException
push 0x1c00
push 0
mov ecx, dword [ebp - 0x2e0]
mov edx, dword [ecx + 0x148]
push edx
call sub.ntdll.dll_memset
add esp, 0xc
push 0x1c00
push 0
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [eax + 0x144]
push ecx
call sub.ntdll.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x2e0]
mov dword [edx + 0x1a8], 0
mov eax, dword [ebp - 0x2e0]
mov dword [eax + 0x1ac], 0
mov ecx, dword [ebp - 0x2e0]
mov dword [ecx + 0x1b0], 0
mov edx, dword [ebp - 0x2e0]
mov byte [edx + 0x1a4], 0
mov eax, dword [ebp - 0x2e0]
mov byte [eax + 0xc8], 0
push str.UTF_8
mov ecx, dword [ebp - 0x2e0]
add ecx, 0x74
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_char_const__]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x2e0]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1000f672
mov esp, ebp
pop ebp
ret