Function at 0x461a8f
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x360
mov eax, dword [0x7024bc]
xor eax, ebp
mov dword [esp + 0x358], eax
xor ebx, ebx
dec ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov esi, 0x104
mov edi, 0xff
lea eax, [esp + 0x254]
push esi
push edi
push eax
call fcn.00645dd0
add esp, 0xc
lea eax, [esp + 0x150]
push esi
push edi
push eax
call fcn.00645dd0
add esp, 0xc
lea eax, [esp + 0x4c]
push esi
push edi
push eax
call fcn.00645dd0
add esp, 0xc
xorps xmm0, xmm0
xor ecx, ecx
mov esi, SysReAllocString
mov edi, dword [ebp + 0x14]
cmp edi, esi
mov edx, dword [ebp + 0x18]
mov eax, edx
sbb eax, 0
movaps xmmword [esp + 0x30], xmm0
mov eax, 0
cmovl eax, edx
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
cmovl esi, edi
mov edi, dword [ebp + 0x10]
mov eax, edx
and eax, dword [ebp + 8]
cmp eax, ebx
jne 0x461b43
cmp edi, 0xffffffff
jne 0x461b43
push esi
call fcn.00461a64
add esp, 4
mov esi, eax
jmp 0x461e44
cmp dword [ebp + 0x14], 1
mov eax, dword [ebp + 0x18]
sbb eax, 0
jl 0x461b6d
mov ebx, edi
lea edi, [esp + 0x20]
push edi
call fcn.004685f4
mov edx, dword [ebp + 0xc]
add esp, 4
movups xmm0, xmmword [edi]
mov edi, ebx
movaps xmmword [esp + 0x30], xmm0
mov ecx, esi
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x254], eax
mov ebx, dword [ebp + 8]
cmp ebx, 0xffffffff
je 0x461bbf
mov dword [esp + 0x258], ebx
xor eax, eax
inc eax
mov dword [esp + 0x254], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], eax
cmp edx, 0xffffffff
je 0x461c1e
cmp dword [esp + 0x258], edx
je 0x461bb7
mov dword [esp + 0x25c], edx
inc dword [esp + 0x254]
cmp dword [esp + 0x50], edx
jne 0x461bd8
jmp 0x461be5
cmp edx, 0xffffffff
je 0x461dba
mov dword [esp + 0x258], edx
inc dword [esp + 0x254]
xor eax, eax
mov dword [esp + eax*4 + 0x50], edx
mov eax, dword [esp + 0x4c]
inc eax
mov dword [esp + 0x4c], eax
cmp ebx, edx
cmovb ebx, edx
mov dword [esp + 8], 0
mov dword [esp + 0x150], 0
cmp edi, 0xffffffff
je 0x461c72
mov dword [esp + 0x154], edi
mov dword [esp + 0x150], 1
test eax, eax
jne 0x461c4d
xor edx, edx
xor eax, eax
jmp 0x461c5c
mov dword [esp + 0x150], 0
cmp edi, 0xffffffff
je 0x461dc5
mov dword [esp + 0x154], edi
mov dword [esp + 0x150], 1
xor eax, eax
inc eax
mov dl, 1
mov dword [esp + 8], edx
xor edx, edx
cmp dword [esp + edx*4 + 0x50], edi
je 0x461c5c
inc edx
cmp eax, edx
jne 0x461c4f
mov edx, eax
cmp edx, eax
jne 0x461c6d
cmp eax, 0x3f
ja 0x461c6d
mov dword [esp + edx*4 + 0x50], edi
inc dword [esp + 0x4c]
cmp ebx, edi
cmovb ebx, edi
xor eax, eax
cmp dword [esp + 0xc], 0
lea edi, [esp + 0x44]
cmovs edi, eax
inc ebx
mov eax, ecx
mov edx, 0x10624dd3
imul edx
cmp dword [ebp + 0x14], 1
mov eax, dword [ebp + 0x18]
sbb eax, 0
jl 0x461cb4
mov eax, edx
shr eax, 0x1f
sar edx, 6
add edx, eax
imul eax, edx, 0x3e8
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [esp + 0x44], edx
jmp 0x461cc6
mov eax, esi
or eax, dword [esp + 0xc]
jne 0x461cca
mov dword [esp + 0x44], 0
xor eax, eax
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x150]
test eax, eax
lea ecx, [esp + 0x150]
cmovne eax, ecx
mov ecx, dword [esp + 0x254]
test ecx, ecx
lea edx, [esp + 0x254]
cmovne ecx, edx
push edi
lea edx, [esp + 0x50]
push edx
push eax
push ecx
push ebx
call dword [sym.imp.WS2_32.dll_select]
cmp eax, 0xffffffff
jne 0x461d68
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
test eax, eax
je 0x461d26
cmp eax, 0x2714
jne 0x461db2
cmp dword [0x703688], 0
jne 0x461db2
cmp dword [ebp + 0x14], 1
mov eax, dword [ebp + 0x18]
sbb eax, 0
jl 0x461cb4
lea eax, [esp + 0x10]
push eax
call fcn.004685f4
sub esp, 0x1c
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esp + 0x10], xmm0
movups xmm0, xmmword [esp + 0x30]
movups xmmword [esp], xmm0
call fcn.00468636
add esp, 0x20
mov ecx, esi
sub ecx, eax
test ecx, ecx
jg 0x461c81
jmp 0x461dab
test eax, eax
mov esi, 0xffffffff
js 0x461e44
test eax, eax
je 0x461dab
mov esi, dword [ebp + 8]
cmp esi, 0xffffffff
je 0x461dd0
lea eax, [esp + 0x254]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
xor ebx, ebx
test eax, eax
setne bl
lea eax, [esp + 0x4c]
push eax
push esi
call sub.WS2_32.dll___WSAFDIsSet
lea esi, [ebx + 4]
test eax, eax
cmove esi, ebx
jmp 0x461dd2
xor esi, esi
jmp 0x461e44
xor esi, esi
dec esi
jmp 0x461e44
mov dl, 1
mov dword [esp + 8], edx
jmp 0x461bf2
mov al, 1
mov dword [esp + 8], eax
jmp 0x461c72
xor esi, esi
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
cmp byte [esp + 8], 0
jne 0x461e10
lea ecx, [esp + 0x254]
push ecx
push eax
mov ebx, eax
call sub.WS2_32.dll___WSAFDIsSet
mov ecx, esi
add esi, 8
test eax, eax
cmove esi, ecx
lea eax, [esp + 0x4c]
push eax
push ebx
call sub.WS2_32.dll___WSAFDIsSet
mov ecx, esi
or ecx, 4
test eax, eax
cmove ecx, esi
mov esi, ecx
cmp edi, 0xffffffff
je 0x461e44
lea eax, [esp + 0x150]
push eax
push edi
call sub.WS2_32.dll___WSAFDIsSet
mov ecx, esi
or esi, 2
test eax, eax
cmove esi, ecx
lea eax, [esp + 0x4c]
push eax
push edi
call sub.WS2_32.dll___WSAFDIsSet
mov ecx, esi
or ecx, 4
test eax, eax
cmove ecx, esi
mov esi, ecx
mov ecx, dword [esp + 0x358]
xor ecx, ebp
call fcn.0064180a
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret