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

Disassembly:
sub esp, 0x24
push ebx
push ebp
push esi
mov esi, ecx
mov ebx, edx
push edi
mov dword [esp + 0x1c], esi
test dword [esi + 0xe4], 0x2000
je 0x4bb9e7
call fcn.004ba8b0
dec eax
neg eax
sbb eax, eax
and ebx, eax
mov eax, dword [esi + 8]
xor edi, edi
mov dword [esp + 0x14], edi
test eax, eax
je 0x4bb9ff
mov eax, dword [eax]
inc edi
test eax, eax
jne 0x4bb9f4
mov dword [esp + 0x14], edi
lea eax, [edi + 2]
push 8
push eax
call fcn.004cead8
mov ebp, eax
add esp, 8
mov dword [esp + 0x24], ebp
test ebp, ebp
jne 0x4bba3f
call fcn.004ceb5c
push dword [eax]
call fcn.004d1502
add esp, 4
push eax
push 0x53ef24
push esi
call fcn.004c1e90
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov ecx, dword [esi + 0xb4]
xor eax, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x20], 0xffffffff
cmp ecx, 0xffffffff
je 0x4bba96
cmp byte [esi + 0xc5], al
jne 0x4bba96
mov eax, dword [esi + 0xcc]
cmp eax, dword [esi + 0xd0]
jae 0x4bba94
cmp byte [esi + 0xc6], 0
jne 0x4bba94
mov eax, 1
mov dword [ebp], ecx
mov dword [ebp + 4], 0x300
mov dword [esp + 0x20], 0
mov dword [esp + 0x10], eax
jmp 0x4bba96
xor eax, eax
mov ecx, dword [esi + 0xbc]
mov dword [esp + 0x18], 0xffffffff
cmp ecx, 0xffffffff
je 0x4bbabe
mov dword [ebp + eax*8], ecx
mov dword [ebp + eax*8 + 4], 0x300
mov dword [esp + 0x18], eax
inc eax
mov dword [esp + 0x10], eax
test ebx, ebx
je 0x4bbafb
test dword [esi + 0xe4], 4
jne 0x4bbaf8
lea edx, [esp + 0x2c]
mov ecx, esi
call fcn.004bb050
cmp eax, 1
jne 0x4bbaf8
cmp dword [esp + 0x30], 0
ja 0x4bbaf1
mov ebx, dword [esp + 0x2c]
cmp ebx, 0x7fffffff
jbe 0x4bbafb
mov ebx, bind
jmp 0x4bbafb
or ebx, 0xffffffff
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x4bbb62
mov edx, dword [esp + 0x10]
mov esi, 0x210
mov edi, 0x300
lea edx, [edx*8 + 4]
add edx, ebp
lea ebp, [esi - 0x10]
nop dword [eax]
mov eax, dword [ecx + 0xa0]
mov dword [edx - 4], eax
mov eax, dword [ecx + 0xb0]
cmp eax, 3
ja case.default.0x4bbb34
jmp dword [eax*4 + 0x4bbcc0]
or word [edx], di
jmp case.default.0x4bbb34
or word [edx], si
jmp case.default.0x4bbb34
or word [edx], bp
jmp case.default.0x4bbb34
xor ebx, ebx
mov ecx, dword [ecx + 4]
add edx, 8
test ecx, ecx
jne 0x4bbb20
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
add eax, edi
je 0x4bbca9
push ebx
push eax
push ebp
call dword [sym.imp.WS2_32.dll_WSAPoll]
test eax, eax
jns 0x4bbbb5
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x4bbca9
mov ecx, eax
call fcn.004c1690
push eax
push str.poll_failed:__s_n
push esi
call fcn.004c1e90
add esp, 0xc
push ebp
call fcn.004cc9e5
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [esp + 0x18]
mov byte [esi + 0xc8], 0
cmp eax, 0xffffffff
je 0x4bbbf5
mov ax, word [ebp + eax*8 + 6]
mov ecx, 0x300
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x4bbbf5
mov ebx, dword [sym.imp.WS2_32.dll_recv]
nop
push 0
push 4
lea eax, [esp + 0x30]
push eax
push dword [esi + 0xbc]
call ebx
test eax, eax
jg 0x4bbbe0
cmp byte [esi + 0xc4], 0
jne 0x4bbba2
mov ecx, dword [esi + 0xc]
xor eax, eax
mov dword [esp + 0x14], eax
test ecx, ecx
je 0x4bbc85
mov edx, dword [esp + 0x10]
lea esi, [edx*8]
add esi, ebp
mov ebx, dword [ecx + 4]
cmp eax, edi
jae 0x4bbc81
mov eax, dword [esi]
cmp eax, dword [ecx + 0xa0]
jne 0x4bbc77
movzx edx, word [esi + 6]
mov eax, edx
mov dword [esp + 0x24], 0
and eax, 0x607
cmp word [esp + 0x24], ax
setne al
movzx eax, al
push eax
mov eax, edx
and edx, 0x300
shr eax, 4
and al, 1
movzx eax, al
push eax
xor eax, eax
cmp ax, dx
setne dl
call fcn.004b9330
mov eax, dword [esp + 0x1c]
add esp, 8
inc eax
add esi, 8
mov dword [esp + 0x14], eax
jmp 0x4bbc7b
mov eax, dword [esp + 0x14]
mov ecx, ebx
test ebx, ebx
jne 0x4bbc18
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
cmp eax, 0xffffffff
je 0x4bbca9
mov ax, word [ebp + eax*8 + 6]
mov ecx, 0x300
and ax, cx
xor ecx, ecx
cmp cx, ax
je 0x4bbca9
mov ecx, esi
call fcn.004bac30
push ebp
call fcn.004cc9e5
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
sub esp, 0x1c
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov edi, edx
cmp byte [esi + 0xc4], 0
jne 0x4bbda5
test dword [esi + 0xe4], 4
jne 0x4bbd00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
jmp 0x4bb9c0
mov eax, dword [esi + 0xb4]
or ebp, 0xffffffff
xorps xmm0, xmm0
mov dword [esp + 0x10], 0xffffffff
xor ebx, ebx
movups xmmword [esp + 0x18], xmm0
cmp eax, ebp
je 0x4bbd3a
cmp byte [esi + 0xc5], bl
jne 0x4bbd3a
mov dword [esp + 0x10], ebx
lea ebx, [ebp + 2]
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], 0x300
mov eax, dword [esi + 0xbc]
cmp eax, 0xffffffff
je 0x4bbd54
mov dword [esp + ebx*8 + 0x18], eax
mov ebp, ebx
mov dword [esp + ebx*8 + 0x1c], 0x300
inc ebx
test dword [esi + 0xe4], 0x2000
je 0x4bbd65
call fcn.004ba8b0
test ebx, ebx
je 0x4bbe0d
neg edi
lea eax, [esp + 0x18]
sbb edi, edi
push edi
push ebx
push eax
call dword [sym.imp.WS2_32.dll_WSAPoll]
test eax, eax
jns 0x4bbdaf
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2714
je 0x4bbe0d
mov ecx, eax
call fcn.004c1690
push eax
push 0x53e7b4
push esi
call fcn.004c1e90
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret
mov ebx, 0x300
cmp ebp, 0xffffffff
je 0x4bbde5
mov ax, word [esp + ebp*8 + 0x1e]
xor ecx, ecx
and ax, bx
cmp cx, ax
je 0x4bbde5
mov edi, dword [sym.imp.WS2_32.dll_recv]
nop
push 0
push 4
lea eax, [esp + 0x1c]
push eax
push dword [esi + 0xbc]
call edi
test eax, eax
jg 0x4bbdd0
cmp byte [esi + 0xc4], 0
jne 0x4bbda5
mov eax, dword [esp + 0x10]
cmp eax, 0xffffffff
je 0x4bbe0d
mov ax, word [esp + eax*8 + 0x1e]
xor ecx, ecx
and ax, bx
cmp cx, ax
je 0x4bbe0d
mov ecx, esi
call fcn.004bac30
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x1c
ret