Function at 0x50c5b0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5fca6b
mov eax, dword fs:[0]
push eax
sub esp, 0x880
mov eax, dword [0x6baac0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x88c], ecx
mov esi, dword [ebp + 0xc]
mov edi, 1
cmp dword [ebp + 8], 0xabcd0123
mov ecx, esi
mov ebx, dword [ebp + 0x10]
cmovne edi, dword [ebp + 8]
mov dword [ebp - 0x880], esi
mov dword [ebp - 0x888], ebx
call fcn.004efd30
mov eax, dword [ebp - 0x88c]
cmp dword [eax + 0x294], 0xffffffff
jne 0x50c633
mov eax, dword [ebx]
mov ecx, ebx
push str.Invalid_socket.
call dword [eax + 0x14]
mov byte [esi + 0x12], 1
xor al, al
jmp 0x50c8a8
mov eax, dword [esi + 4]
xor ebx, ebx
test eax, eax
je 0x50c650
mov ebx, dword [eax + 0x88]
test ebx, ebx
je 0x50c650
mov eax, 0x32
cmp ebx, eax
cmovb ebx, eax
test edi, edi
mov eax, 0xc042c00
cmove edi, eax
test ebx, ebx
jne 0x50c66f
mov ecx, esi
call fcn.004efdd0
test al, al
mov ecx, 0x42
cmovne ebx, ecx
lea ecx, [ebp - 0x878]
mov dword [ebp - 0x884], 0
mov byte [ebp - 0x879], 1
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
call fcn.00420630
mov dword [ebp - method.ckFdSet.virtual_0], vtable.ckFdSet.0
mov dword [ebp - 0x870], 0x3004bc8d
mov dword [ebp - 0x28], 0x3004bc8d
mov dword [ebp - 4], 0
test edi, edi
je 0x50c87a
xor ecx, ecx
test ebx, ebx
mov edx, 0x14d
mov eax, ebx
mov esi, edi
cmove eax, edx
sub esi, ecx
cmp eax, esi
cmovbe esi, eax
test ebx, ebx
je 0x50c6e3
cmp esi, ebx
cmova esi, ebx
cmp byte [ebp - 0x879], 0
je 0x50c6f9
shr esi, 1
mov eax, 1
cmp esi, 1
cmovb esi, eax
test edi, edi
je 0x50c702
cmp esi, edi
cmova esi, edi
mov eax, 0x10624dd3
mov dword [ebp - 0x86c], 0
mul esi
mov ecx, esi
shr edx, 6
imul eax, edx, 0x3e8
push 0x40
push 0
mov dword [ebp - 0x18], edx
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x68]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
cmp dword [ebp - 0x870], 0x3004bc8d
je 0x50c752
push 0
call fcn.0040c4e0
add esp, 4
cmp dword [ebp - 0x28], 0x3004bc8d
je 0x50c765
push 0
call fcn.0040c4e0
add esp, 4
mov eax, dword [ebp - 0x88c]
mov edx, dword [eax + 0x294]
test edx, edx
js 0x50c868
mov ecx, dword [ebp - 0x86c]
xor eax, eax
test ecx, ecx
je 0x50c793
cmp dword [ebp + eax*4 - 0x868], edx
je 0x50c793
inc eax
cmp eax, ecx
jb 0x50c785
cmp eax, ecx
jne 0x50c7ac
cmp ecx, 0x200
jae 0x50c7ac
mov dword [ebp + eax*4 - 0x868], edx
inc dword [ebp - 0x86c]
lea eax, [ebp - 0x18]
push eax
push 0
push 0
lea eax, [ebp - 0x86c]
push eax
push 0
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
je 0x50c83c
test eax, eax
js 0x50c83c
jne 0x50c838
cmp dword [ebp + 8], 0xabcd0123
je 0x50c874
mov eax, dword [ebp - 0x884]
add eax, esi
mov dword [ebp - 0x884], eax
test edi, edi
je 0x50c7f6
inc eax
cmp eax, edi
jae 0x50c874
push dword [ebp - 0x888]
mov esi, dword [ebp - 0x880]
mov ecx, esi
call fcn.004efe90
test al, al
jne 0x50c822
mov ecx, dword [ebp - 0x884]
mov byte [ebp - 0x879], al
cmp ecx, edi
jae 0x50c87a
jmp 0x50c6c5
mov ecx, dword [ebp - 0x888]
mov byte [esi + 0x11], 1
push str.socket_operation_aborted_by_application
mov eax, dword [ecx]
call dword [eax + 0x14]
jmp 0x50c87e
mov bl, 1
jmp 0x50c880
push str.waitReadableSocket
push dword [ebp - 0x888]
xorps xmm0, xmm0
mov dword [ebp - 0x1c], 0
lea ecx, [ebp - 0x24]
movq qword [ebp - 0x24], xmm0
call fcn.00430cc0
lea ecx, [ebp - 0x24]
call fcn.00430db0
jmp 0x50c87e
mov eax, dword [ebp - 0x880]
mov byte [eax + 0x12], 1
jmp 0x50c87e
mov esi, dword [ebp - 0x880]
mov byte [esi + 0x10], 1
xor bl, bl
lea ecx, [ebp - 0x878]
mov dword [ebp - method.ckFdSet.virtual_0], vtable.ckFdSet.0
mov dword [ebp - 0x870], 0
mov dword [ebp - 0x28], 0
call fcn.004206d0
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005ebe04
mov esp, ebp
pop ebp
ret 0xc