Function at 0x140088690
Capabilities:
Get socket status

Disassembly:
xor eax, eax
test rcx, rcx
je 0x1400886b2
cmp eax, edx
jae 0x1400886b2
inc rax
mov r9, rax
shl r9, 4
cmp qword [rcx + r9 - 0x10], 0xffffffffffffffff
je 0x140088697
jmp 0x1400886c0
mov rcx, r8
jmp fcn.140090af0
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x658
xor eax, eax
xor r14d, r14d
xor r9d, r9d
xor r13d, r13d
xor r12d, r12d
xor ebp, ebp
mov dword [rsp + 0x38], eax
mov rbx, rcx
mov r11, rcx
mov dword [rsp + 0x240], eax
mov dword [rsp + 0x448], eax
mov qword [rsp + 0x6a0], rcx
xor ecx, ecx
mov dword [rsp + 0x6a8], edx
xor edx, edx
cmp ebp, dword [rsp + 0x6a8]
je 0x140088815
mov rax, qword [r11]
mov word [r11 + 0xa], 0
cmp rax, 0xffffffffffffffff
je 0x14008880a
mov esi, dword [r11 + 8]
test si, 0x710
je 0x14008880a
test si, 0x300
je 0x14008877f
xor r10d, r10d
lea rdi, [rsp + 0x38]
mov r15d, r10d
cmp r10d, r9d
jae 0x140088760
inc r10
cmp rax, qword [rdi + r10*8]
jne 0x14008874d
jmp 0x14008877f
cmp r9d, 0x40
setne dil
cmp r9d, r10d
sete r10b
and dil, r10b
je 0x14008877f
mov qword [rsp + r15*8 + 0x40], rax
inc r9d
mov r14d, edi
test esi, 0x10
je 0x1400887c5
xor r10d, r10d
lea rdi, [rsp + 0x240]
mov r15d, r10d
cmp r10d, ecx
jae 0x1400887a5
inc r10
cmp rax, qword [rdi + r10*8]
jne 0x140088792
jmp 0x1400887c5
cmp ecx, 0x40
setne dil
cmp ecx, r10d
sete r10b
and dil, r10b
je 0x1400887c5
mov qword [rsp + r15*8 + 0x248], rax
inc ecx
mov r13d, edi
test si, 0x600
je 0x14008880a
xor r10d, r10d
lea rdi, [rsp + 0x448]
mov esi, r10d
cmp r10d, edx
jae 0x1400887ea
inc r10
cmp rax, qword [rdi + r10*8]
jne 0x1400887d7
jmp 0x14008880a
cmp edx, 0x40
setne dil
cmp edx, r10d
sete r10b
and r10b, dil
je 0x14008880a
mov qword [rsp + rsi*8 + 0x450], rax
inc edx
mov r12d, r10d
inc ebp
add r11, 0x10
jmp 0x14008870e
test r14b, r14b
je 0x14008881f
mov dword [rsp + 0x38], r9d
test r13b, r13b
je 0x14008882b
mov dword [rsp + 0x240], ecx
test r12b, r12b
je 0x140088837
mov dword [rsp + 0x448], edx
mov eax, dword [rsp + 0x38]
or eax, dword [rsp + 0x240]
or eax, dword [rsp + 0x448]
jne 0x140088855
mov rcx, r8
call fcn.140090af0
jmp 0x1400888a7
lea rcx, [rsp + 0x30]
mov rdx, r8
call fcn.1400b8850
xor r9d, r9d
cmp dword [rsp + 0x448], 0
je 0x140088877
lea r9, [rsp + 0x448]
xor r8d, r8d
cmp dword [rsp + 0x240], 0
je 0x14008888c
lea r8, [rsp + 0x240]
xor edx, edx
cmp dword [rsp + 0x38], 0
je 0x14008889a
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rax
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_select]
mov esi, eax
test eax, eax
jle 0x1400888d9
mov edi, dword [rsp + 0x6a8]
xor esi, esi
lea rbp, [rsp + 0x38]
lea r12, [rsp + 0x240]
lea r13, [rsp + 0x448]
shl rdi, 4
add rdi, qword [rsp + 0x6a0]
jmp 0x14008890d
cmp eax, 0xffffffff
jne 0x140088990
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
xor esi, esi
cmp eax, 0x2714
setne sil
neg esi
jmp 0x140088990
mov rcx, qword [rbx]
mov word [rbx + 0xa], 0
cmp rcx, 0xffffffffffffffff
jne 0x140088914
add rbx, 0x10
cmp rbx, rdi
jne 0x1400888fa
jmp 0x140088990
mov rdx, rbp
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x140088939
mov eax, dword [rbx + 8]
test ah, 1
je 0x14008892e
or word [rbx + 0xa], 0x100
test ah, 3
je 0x140088939
or word [rbx + 0xa], 0x300
mov rcx, qword [rbx]
mov rdx, r12
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x140088953
test byte [rbx + 8], 0x10
je 0x140088953
or word [rbx + 0xa], 0x10
mov rcx, qword [rbx]
mov rdx, r13
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x140088982
mov edx, dword [rbx + 8]
test dh, 2
je 0x140088970
or word [rbx + 0xa], 0x200
mov ax, word [rbx + 0xa]
and dh, 4
je 0x140088982
or ah, 4
mov word [rbx + 0xa], ax
jmp 0x140088989
cmp word [rbx + 0xa], 0
je 0x140088909
inc esi
jmp 0x140088909
mov eax, esi
add rsp, 0x658
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret