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

Disassembly:
push 0xffffffffffffffff
push 0x499308
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4ba700]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edi, ecx
mov esi, edx
cmp byte [esi + 0x10], 0
je 0x453ced
mov eax, dword [esi + 8]
cmp byte [eax + 0x21], 0
je 0x453ced
cmp dword [esi + 0xc], 0
lea ebp, [eax + 8]
sete bl
mov byte [esp + 0x18], bl
mov dword [esp + 0x24], ebp
mov byte [esp + 0x28], bl
test bl, bl
je 0x453b63
push ebp
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
xor eax, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x1c], eax
cmp dword [esi + 0xc], eax
je 0x453b86
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
lea edx, [esp + 0x1c]
push edx
push edi
push 0
call eax
jmp 0x453ba6
mov ebp, dword [esi + 8]
mov edx, dword [ebp + 0x2e4]
lea ecx, [esp + 0x1c]
push ecx
push edi
push 0
call edx
mov dword [ebp + 0x2f8], eax
mov ebp, dword [esp + 0x30]
add esp, 0xc
mov edi, eax
test edi, edi
jne 0x453bd3
lea ecx, [eax + 4]
push str.._vsocket.cpp_:_WriteExact:_DSMPlugin_RestoreBuffer_Alloc_Error_n
mov eax, 0x4bc990
call fcn.00401110
add esp, 4
test bl, bl
je 0x453bcc
push ebp
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x453cd7
mov ecx, dword [esp + 0x1c]
mov ebx, ecx
test ecx, ecx
jle 0x453c16
mov ebp, dword [sym.imp.WSOCK32.dll_recv]
mov eax, dword [esi + 4]
push 0
push ecx
push edi
push eax
call ebp
test eax, eax
jle 0x453bff
mov ecx, dword [esp + 0x1c]
add edi, eax
sub ecx, eax
mov dword [esp + 0x1c], ecx
jmp 0x453c12
je 0x453c42
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x453c6f
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jg 0x453be3
cmp dword [esi + 0xc], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x1c], ebx
je 0x453ca3
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 8]
lea edx, [esp + 0x20]
push edx
mov edx, dword [esp + 0x40]
push ebx
push edx
call eax
jmp 0x453cc2
push str.._vsocket.cpp_:_zero_bytes_read1_n
mov ecx, 4
mov eax, 0x4bc990
call fcn.00401110
add esp, 4
cmp byte [esp + 0x18], 0
je 0x453c6b
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x453cd7
call dword [sym.imp.WSOCK32.dll_WSAGetLastError]
push eax
push str.._vsocket.cpp_:_socket_error_1:__d_n
mov ecx, 4
mov eax, 0x4bc990
call fcn.00401110
add esp, 8
cmp byte [esp + 0x18], 0
je 0x453c9f
mov edx, dword [esp + 0x24]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x453cd7
mov esi, dword [esi + 8]
mov edx, dword [esp + 0x3c]
mov eax, dword [esi + 0x2e4]
lea ecx, [esp + 0x20]
push ecx
push ebx
push edx
call eax
add esp, 0xc
mov dword [esi + 0x2f8], eax
cmp byte [esp + 0x18], 0
je 0x453cd4
mov ecx, dword [esp + 0x24]
push ecx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
or eax, 0xffffffff
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 4
test edi, edi
jbe 0x453cd4
mov ebx, dword [sym.imp.WSOCK32.dll_WSAGetLastError]
mov ebp, dword [sym.imp.WSOCK32.dll_recv]
mov edx, dword [esp + 0x3c]
mov eax, dword [esi + 4]
push 0
push edi
push edx
push eax
call ebp
test eax, eax
jle 0x453d17
add dword [esp + 0x3c], eax
sub edi, eax
jmp 0x453d26
je 0x453d2c
call ebx
cmp eax, 0x2733
jne 0x453bcc
test edi, edi
ja 0x453cfd
jmp 0x453cd4
push str.._vsocket.cpp_:_zero_bytes_read2_n
mov ecx, 4
mov eax, 0x4bc990
call fcn.00401110
add esp, 4
xor eax, eax
jmp 0x453cd7