Function at 0x402400
Capabilities:
Get hostname
Initialize winsock library

Disassembly:
push 0xffffffffffffffff
push 0x41e121
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1a0
mov al, byte [esp + 3]
push ebx
push ebp
mov ebp, ecx
push esi
xor ebx, ebx
lea esi, [ebp + 4]
push edi
push ebx
mov ecx, esi
mov dword [esp + 0x20], ebp
mov byte [esi], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x14]
push ebx
mov dword [esp + 0x1bc], ebx
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0x24]
push ebx
mov byte [esp + 0x1bc], 1
mov byte [ecx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x34]
push ebx
mov byte [esp + 0x1bc], 2
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0x44]
push ebx
mov byte [esp + 0x1bc], 3
mov byte [ecx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x54]
push ebx
mov byte [esp + 0x1bc], 4
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0x64]
push ebx
mov byte [esp + 0x1bc], 5
mov byte [ecx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x74]
push ebx
mov byte [esp + 0x1bc], 6
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x13]
lea ecx, [ebp + 0x84]
push ebx
mov byte [esp + 0x1bc], 7
mov byte [ecx], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov dl, byte [esp + 0x13]
lea ecx, [ebp + 0x94]
push ebx
mov byte [esp + 0x1bc], 8
mov byte [ecx], dl
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [esp + 0x13]
mov dword [ebp + 0xbc], ebx
mov byte [ebp + 0xb8], al
mov dword [ebp + 0xc0], ebx
mov dword [ebp + 0xc4], ebx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0xcc], ebx
mov byte [ebp + 0xc8], cl
mov dword [ebp + 0xd0], ebx
mov dword [ebp + 0xd4], ebx
mov dl, byte [esp + 0x13]
mov dword [ebp + 0xdc], ebx
mov byte [ebp + 0xd8], dl
mov dword [ebp + 0xe0], ebx
mov dword [ebp + 0xe4], ebx
mov al, byte [esp + 0x13]
mov dword [ebp + 0xec], ebx
mov byte [ebp + 0xe8], al
mov dword [ebp + 0xf0], ebx
mov dword [ebp + 0xf4], ebx
mov cl, byte [esp + 0x13]
mov dword [ebp + 0xfc], ebx
mov byte [ebp + 0xf8], cl
mov dword [ebp + 0x100], ebx
mov dword [ebp + 0x104], ebx
lea edx, [esp + 0x20]
mov byte [esp + 0x1b8], 0xe
push edx
push 0x202
mov dword [ebp], 0x420ab8
mov dword [ebp + 0xa8], 3
mov word [ebp + 0xa4], bx
call dword [sym.imp.WS2_32.dll_WSAStartup]
test eax, eax
je 0x4025ed
lea eax, [esp + 0x14]
push 0x422748
push eax
mov dword [esp + 0x1c], 0x64
call sub.MSVCRT.dll__CxxThrowException
mov ax, word [esp + 0x20]
cmp al, 2
jne 0x40275c
xor ecx, ecx
mov cl, ah
cmp cl, al
jne 0x40275c
push 0xff
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
cmp edi, ebx
mov dword [esp + 0x14], edi
jne 0x402634
lea edx, [esp + 0x14]
push 0x422748
push edx
mov dword [esp + 0x1c], 0x198
call sub.MSVCRT.dll__CxxThrowException
push 0xff
push edi
call dword [sym.imp.WS2_32.dll_gethostname]
cmp eax, 0xffffffff
jne 0x402665
push edi
call sub.MFC42.DLL_operatordelete
add esp, 4
lea eax, [esp + 0x14]
mov dword [esp + 0x14], 0x6b
push 0x422748
push eax
call sub.MSVCRT.dll__CxxThrowException
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
mov edx, dword [ecx]
mov ecx, dword [esi + 8]
sub edx, ecx
cmp edx, edi
ja 0x402688
call dword [sym.imp.MSVCP60.dll_void___cdecl_std::_Xlen_void_]
cmp edi, ebx
jbe 0x4026db
mov eax, dword [esi + 8]
push ebx
add eax, edi
mov ecx, esi
push eax
mov dword [esp + 0x20], eax
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x4026db
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
push ecx
push eax
add eax, edi
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
mov esi, dword [esp + 0x20]
mov ecx, edi
mov edi, dword [ebp + 8]
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x24]
mov ecx, edx
add esp, 0xc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp + 8]
mov dword [ebp + 0xc], eax
mov byte [ecx + eax], bl
mov edx, dword [esp + 0x14]
push edx
call sub.MFC42.DLL_operatordelete
push 0x2800
call sub.MFC42.DLL_operatornew
add esp, 8
cmp eax, ebx
mov dword [ebp + 0xb0], eax
jne 0x402713
lea eax, [esp + 0x18]
push 0x422748
push eax
mov dword [esp + 0x20], 0x198
call sub.MSVCRT.dll__CxxThrowException
push 0x2800
call sub.MFC42.DLL_operatornew
add esp, 4
cmp eax, ebx
mov dword [ebp + 0xac], eax
jne 0x402741
lea ecx, [esp + 0x18]
push 0x422748
push ecx
mov dword [esp + 0x20], 0x198
call sub.MSVCRT.dll__CxxThrowException
mov ecx, dword [esp + 0x1b0]
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x1ac
ret
call dword [sym.imp.WS2_32.dll_WSACleanup]
lea edx, [esp + 0x18]
push 0x422748
push edx
mov dword [esp + 0x20], 0x65
call sub.MSVCRT.dll__CxxThrowException
nop
nop
nop
nop
nop
nop
nop
push esi
mov esi, ecx
call fcn.004027a0
test byte [esp + 8], 1
je 0x402798
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, esi
pop esi
ret 4