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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d07b7
mov eax, dword fs:[0]
push eax
sub esp, 0x10
push ebx
push esi
push edi
mov eax, dword [0x623ec0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov esi, dword [ebp + 8]
test esi, esi
je 0x5bd81c
mov ecx, dword [ebx + 0x4014]
cmp ecx, 0x2000
jl 0x5bd835
push str.Receive_Buffer_Overflow
call fcn.00586620
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push 0
mov eax, 0x2000
sub eax, ecx
push eax
lea eax, [ebx + 0x2014]
add eax, ecx
push eax
push dword [ebx + 0xc]
call dword [sym.imp.WSOCK32.dll_recv]
mov ecx, eax
test ecx, ecx
je 0x5bd81c
cmp ecx, 0xffffffff
jne 0x5bd87d
mov esi, dword [sym.imp.WSOCK32.dll_WSAGetLastError]
call esi
cmp eax, 0x2733
je 0x5bd81c
call esi
push eax
push str.Read__d
call fcn.00586620
add esp, 8
jmp 0x5bd81c
mov eax, dword [ebx + 0x4014]
add eax, ecx
mov dword [ebx + 0x4014], eax
cmp eax, 0xc
jae 0x5bd8a9
mov eax, 3
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
movzx edi, word [ebx + 0x2014]
xor ecx, ecx
mov dword [ebp + 8], ecx
cmp edi, 0xc
jb 0x5bd9c2
nop
cmp edi, 0x2000
ja 0x5bd9c2
cmp edi, eax
jg 0x5bd9e6
push 0x2004
call fcn.0046677d
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], 0
mov ecx, dword [ebp + 8]
add ecx, 0x2014
push edi
add ecx, ebx
push ecx
push eax
call fcn.004684b0
mov eax, dword [ebp - 0x14]
add esp, 0x10
mov byte [eax + edi], 0x7d
mov dword [eax + 0x2000], edi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x10]
add eax, ecx
test al, 3
jne 0x5bd931
lea eax, [ecx + 4]
shr eax, 2
cmp dword [esi + 8], eax
ja 0x5bd931
push ecx
mov ecx, esi
call fcn.0045c860
mov ecx, dword [esi + 8]
lea eax, [ecx*4 - 1]
and dword [esi + 0xc], eax
mov edx, dword [esi + 0x10]
add edx, dword [esi + 0xc]
mov eax, edx
mov dword [ebp - 0x1c], edx
shr eax, 2
mov dword [ebp - 0x10], eax
lea eax, [ecx - 1]
and eax, dword [ebp - 0x10]
lea ecx, [eax*4]
mov eax, dword [esi + 4]
mov dword [ebp - 0x18], ecx
cmp dword [ecx + eax], 0
jne 0x5bd97e
push 0x10
call fcn.0046677d
mov edx, dword [ebp - 0x18]
add esp, 4
mov ecx, dword [esi + 4]
mov dword [edx + ecx], eax
mov edx, dword [ebp - 0x1c]
mov ecx, dword [esi + 8]
and edx, 3
mov eax, dword [esi + 4]
dec ecx
and ecx, dword [ebp - 0x10]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x14]
mov dword [eax + edx*4], ecx
inc dword [esi + 0x10]
mov eax, dword [ebx + 0x4014]
mov ecx, dword [ebp + 8]
sub eax, edi
add ecx, edi
mov dword [ebx + 0x4014], eax
mov dword [ebp + 8], ecx
test eax, eax
jle 0x5bda08
movzx edi, word [ecx + ebx + 0x2014]
cmp edi, 0xc
jae 0x5bd8c0
push edi
push str.Size_error__Size:__d_
call fcn.00586620
add esp, 8
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test ecx, ecx
jle 0x5bda08
cmp eax, 1
jl 0x5bda08
push eax
lea eax, [ebx + 0x2014]
add eax, ecx
push eax
lea eax, [ebx + 0x2014]
push eax
call fcn.004684b0
add esp, 0xc
mov ecx, dword [esi + 0x14]
call fcn.004bb9d0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4