Function at 0x47ab90
Capabilities:
Get hostname
Initialize winsock library

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x484aa3
mov eax, dword fs:[0]
push eax
sub esp, 0x338
mov eax, dword [0x4b6018]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x344], ecx
mov eax, dword [ebp - 0x344]
mov dword [eax], vtable.CSmtp.0
mov ecx, dword [ebp - 0x344]
add ecx, 4
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x20
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x3c
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x58
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x74
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x90
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0xac
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0xcc
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0xe8
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x104
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x120
call dword [sym.imp.MSVCP90.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 - 0x344]
add ecx, 0x154
call fcn.00401db0
mov byte [ebp - 4], 0xb
mov ecx, dword [ebp - 0x344]
add ecx, 0x16c
call fcn.00401db0
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x344]
add ecx, 0x184
call fcn.00401db0
mov byte [ebp - 4], 0xd
mov ecx, dword [ebp - 0x344]
add ecx, 0x19c
call fcn.004020f0
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x344]
add ecx, 0x1b4
call fcn.004020f0
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x344]
mov dword [ecx + 0x14c], 0xffffffff
mov edx, dword [ebp - 0x344]
mov byte [edx + 0x150], 0
mov eax, dword [ebp - 0x344]
mov dword [eax + 0x140], 3
xor ecx, ecx
mov edx, dword [ebp - 0x344]
mov word [edx + 0x13c], cx
mov eax, dword [ebp - 0x344]
mov byte [eax + 0x13e], 1
mov ecx, 0x202
mov word [ebp - 0x1a8], cx
lea edx, [ebp - 0x1a4]
push edx
movzx eax, word [ebp - 0x1a8]
push eax
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x47adb3
mov dword [ebp - 0x2b4], 0x64
mov ecx, dword [ebp - 0x2b4]
mov dword [ebp - 0x2b0], ecx
push 0x4aec94
lea edx, [ebp - 0x2b0]
push edx
call sub.MSVCR90.dll__CxxThrowException
movzx eax, word [ebp - 0x1a4]
and eax, 0xff
movzx ecx, al
cmp ecx, 2
jne 0x47addf
movzx edx, word [ebp - 0x1a4]
shr edx, 8
and edx, 0xff
movzx eax, dl
cmp eax, 2
je 0x47ae0c
call dword [sym.imp.WS2_32.dll_WSACleanup]
mov dword [ebp - 0x2bc], 0x65
mov ecx, dword [ebp - 0x2bc]
mov dword [ebp - 0x2b8], ecx
push 0x4aec94
lea edx, [ebp - 0x2b8]
push edx
call sub.MSVCR90.dll__CxxThrowException
push 0xff
lea eax, [ebp - 0x2ac]
push eax
call dword [sym.imp.WS2_32.dll_gethostname]
cmp eax, 0xffffffff
jne 0x47ae4a
mov dword [ebp - 0x2c4], 0x6b
mov ecx, dword [ebp - 0x2c4]
mov dword [ebp - 0x2c0], ecx
push 0x4aec94
lea edx, [ebp - 0x2c0]
push edx
call sub.MSVCR90.dll__CxxThrowException
lea eax, [ebp - 0x2ac]
push eax
mov ecx, dword [ebp - 0x344]
add ecx, 4
call dword [sym.imp.MSVCP90.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 0x2800
call sub.mfc90.dll_Ordinal_265
add esp, 4
mov dword [ebp - 0x2c8], eax
mov ecx, dword [ebp - 0x344]
mov edx, dword [ebp - 0x2c8]
mov dword [ecx + 0x148], edx
cmp dword [ebp - 0x2c8], 0
jne 0x47aeb5
mov dword [ebp - 0x2d0], 0x198
mov eax, dword [ebp - 0x2d0]
mov dword [ebp - 0x2cc], eax
push 0x4aec94
lea ecx, [ebp - 0x2cc]
push ecx
call sub.MSVCR90.dll__CxxThrowException
push 0x2800
call sub.mfc90.dll_Ordinal_265
add esp, 4
mov dword [ebp - 0x2d4], eax
mov edx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x2d4]
mov dword [edx + 0x144], eax
cmp dword [ebp - 0x2d4], 0
jne 0x47af0a
mov dword [ebp - 0x2dc], 0x198
mov ecx, dword [ebp - 0x2dc]
mov dword [ebp - 0x2d8], ecx
push 0x4aec94
lea edx, [ebp - 0x2d8]
push edx
call sub.MSVCR90.dll__CxxThrowException
mov eax, dword [ebp - 0x344]
mov dword [eax + 0x1d0], 0
mov ecx, dword [ebp - 0x344]
mov dword [ecx + 0x1d4], 0
mov edx, dword [ebp - 0x344]
mov dword [edx + 0x1d8], 0
mov eax, dword [ebp - 0x344]
mov byte [eax + 0x1cc], 0
mov ecx, dword [ebp - 0x344]
mov byte [ecx + 0xc8], 0
push str.US_ASCII
mov ecx, dword [ebp - 0x344]
add ecx, 0x74
call dword [sym.imp.MSVCP90.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 - 0x344]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00408de6
mov esp, ebp
pop ebp
ret