Function at 0x40d13a
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xbc
mov dword [ebp - 0x64], sym.___gxx_personality_sj0
mov dword [ebp - 0x60], 0x45da4c
lea eax, [ebp - 0x5c]
lea edx, [ebp - 0x18]
mov dword [eax], edx
mov edx, 0x40d4f8
mov dword [eax + 4], edx
mov dword [eax + 8], esp
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Register
mov eax, dword [ebp + 8]
mov dword [ebp - 0x84], eax
mov dword [esp + 0xc], 0
mov dword [esp + 8], 2
mov eax, dword [ebp + 8]
add eax, 8
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [ebp - 0x78], 0xffffffff
call sub.WSOCK32.DLL_recv
sub esp, 0x10
mov edx, dword [ebp - 0x84]
mov dword [edx], eax
mov eax, dword [ebp + 8]
movzx edx, byte [eax + 8]
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 9]
shl eax, 8
or eax, edx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp + 8]
cmp dword [eax], 2
jne 0x40d1db
cmp dword [ebp - 0x1c], 0x417e
jg 0x40d1db
jmp 0x40d21f
mov dword [ebp - 0x78], 0xffffffff
call sub.WSOCK32.DLL_WSAGetLastError
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x2733
jne 0x40d208
mov eax, dword [ebp + 8]
mov dword [eax], 0
mov dword [ebp - 0x80], 1
jmp 0x40d5e5
mov eax, dword [ebp + 8]
mov dword [esp], eax
call method.NetworkMessage.Reset__
mov dword [ebp - 0x80], 0
jmp 0x40d5e5
mov eax, dword [ebp + 8]
mov dword [ebp - 0x88], eax
mov edx, dword [ebp + 8]
mov dword [ebp - 0x8c], edx
mov dword [esp + 0xc], 0
mov eax, dword [ebp - 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp + 8]
add eax, 0xa
mov dword [esp + 4], eax
mov eax, dword [ebp + 0xc]
mov dword [esp], eax
mov dword [ebp - 0x78], 0xffffffff
call sub.WSOCK32.DLL_recv
sub esp, 0x10
mov edx, dword [ebp - 0x8c]
add eax, dword [edx]
mov edx, dword [ebp - 0x88]
mov dword [edx], eax
mov eax, dword [ebp + 8]
cmp dword [eax], 2
jle 0x40d298
mov eax, dword [ebp + 8]
movzx edx, byte [eax + 8]
mov eax, dword [ebp + 8]
movzx eax, byte [eax + 9]
shl eax, 8
or edx, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
sub eax, 2
cmp edx, eax
jne 0x40d298
jmp 0x40d2af
mov eax, dword [ebp + 8]
mov dword [esp], eax
call method.NetworkMessage.Reset__
mov dword [ebp - 0x80], 0
jmp 0x40d5e5
mov eax, dword [ebp + 8]
mov dword [eax + 4], 2
cmp byte [0x464200], 0
je 0x40d5de
cmp byte [0x464201], 0
jne 0x40d3a2
lea eax, [ebp - 0x48]
mov dword [esp], eax
call fcn.004415c0
lea eax, [ebp - 0x48]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error__Could_not_find_key.
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x78], 6
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x78], 5
call sym.addConsoleMessage_std::string_
jmp 0x40d33f
lea eax, [ebp - 0x38]
mov dword [esp], eax
mov dword [ebp - 0x78], 6
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x40d38b
lea eax, [ebp - 0x48]
mov dword [esp], eax
call sym.std::allocator_char_::allocator__
mov dword [ebp - 0x80], 0
jmp 0x40d5e5
mov eax, dword [ebp + 8]
mov eax, dword [eax]
sub eax, 2
and eax, 7
test eax, eax
je 0x40d484
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.004415c0
lea eax, [ebp - 0x38]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error__Invalid_encrypted_message_size.
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0x78], 4
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0x78], 3
call sym.addConsoleMessage_std::string_
jmp 0x40d421
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0x78], 4
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x40d46d
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sym.std::allocator_char_::allocator__
mov dword [ebp - 0x80], 0
jmp 0x40d5e5
mov eax, dword [ebp + 8]
mov dword [esp], eax
mov dword [ebp - 0x78], 0xffffffff
call method.NetworkMessage.XTEA_decrypt__
mov eax, dword [ebp + 8]
mov dword [esp], eax
call method.NetworkMessage.GetU16__
movzx eax, ax
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
sub eax, 4
cmp eax, dword [ebp - 0x20]
jge 0x40d5d6
lea eax, [ebp - 0x38]
mov dword [esp], eax
call fcn.004415c0
lea eax, [ebp - 0x38]
mov dword [esp + 8], eax
mov dword [esp + 4], str.Error__Invalid_unencrypted_message_size.
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string_char_const__std::allocator_char__const_
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0x78], 1
call sym.addConsoleMessage_std::string_
jmp 0x40d576
lea eax, [ebp - 0x48]
mov dword [esp], eax
mov dword [ebp - 0x78], 2
call method.std::basic_string_char__std::char_traits_char___std::allocator_char___.basic_string__
jmp 0x40d5c2
lea eax, [ebp - 0x38]
mov dword [esp], eax
call sym.std::allocator_char_::allocator__
mov dword [ebp - 0x80], 0
jmp 0x40d5e5
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 0x20]
mov dword [edx], eax
mov dword [ebp - 0x80], 1
lea eax, [ebp - 0x7c]
mov dword [esp], eax
call sym.__Unwind_SjLj_Unregister
mov eax, dword [ebp - 0x80]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret