Function at 0x18015a110
Capabilities:
Get socket status

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1038]
mov eax, 0x1138
call fcn.18007c000
sub rsp, rax
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rbp + 0x1020], rax
mov r12, r9
mov r13, r8
mov dword [rsp + 0x30], edx
mov rbx, rcx
mov qword [rsp + 0x38], rcx
mov r14d, edx
mov ecx, 1
cmp edx, 0xabcd0123
cmove r14d, ecx
mov rcx, r8
call fcn.180175b40
cmp qword [rbx + 0x298], 0xffffffffffffffff
jne 0x18015a19f
mov rax, qword [r12]
lea rdx, str.Invalid_socket.
mov rcx, r12
call qword [rax + 0x28]
mov byte [r13 + 0x2a], 1
xor al, al
jmp 0x18015a3fc
xor ebx, ebx
mov esi, ebx
mov rax, qword [r13 + 8]
test rax, rax
je 0x18015a1c0
mov esi, dword [rax + 0xd0]
lea eax, [rsi - 1]
mov ecx, gethostbyname
cmp eax, 0x30
cmovbe esi, ecx
mov eax, 0xc042c00
test r14d, r14d
cmove r14d, eax
test esi, esi
jne 0x18015a1e2
mov rcx, r13
call fcn.180175bc0
mov ecx, 0x42
test al, al
cmovne esi, ecx
mov r15d, ebx
mov dil, 1
mov qword [rsp + 0x48], rbx
lea rcx, [rsp + 0x70]
call fcn.180103030
lea rax, vtable.ckFdSet.0
mov qword [rsp + 0x70], rax
mov r8d, 0x3004bc8d
mov dword [rbp - 0x80], r8d
mov dword [rbp + 0x1010], r8d
test r14d, r14d
je 0x18015a3cb
mov ecx, 0x14d
mov eax, esi
test esi, esi
cmove eax, ecx
mov ebx, r14d
sub ebx, r15d
cmp eax, ebx
cmovbe ebx, eax
test esi, esi
je 0x18015a23d
cmp ebx, esi
cmova ebx, esi
test dil, dil
je 0x18015a24f
shr ebx, 1
cmp ebx, 1
mov eax, 1
cmovb ebx, eax
cmp ebx, r14d
cmova ebx, r14d
mov eax, 0x10624dd3
mul ebx
shr edx, 6
imul eax, edx, 0x3e8
mov ecx, ebx
sub ecx, eax
imul eax, ecx, 0x3e8
mov dword [rsp + 0x48], edx
mov dword [rsp + 0x4c], eax
xor edx, edx
mov dword [rbp - 0x78], edx
xorps xmm0, xmm0
movups xmmword [rbp + 0xf90], xmm0
movups xmmword [rbp + 0xfa0], xmm0
movups xmmword [rbp + 0xfb0], xmm0
movups xmmword [rbp + 0xfc0], xmm0
movups xmmword [rbp + 0xfd0], xmm0
movups xmmword [rbp + 0xfe0], xmm0
movups xmmword [rbp + 0xff0], xmm0
movups xmmword [rbp + 0x1000], xmm0
cmp r8d, 0x3004bc8d
je 0x18015a2cb
xor ecx, ecx
call fcn.1800c57e0
mov edx, dword [rbp - 0x78]
cmp dword [rbp + 0x1010], 0x3004bc8d
je 0x18015a2e1
xor ecx, ecx
call fcn.1800c57e0
mov edx, dword [rbp - 0x78]
mov rax, qword [rsp + 0x38]
movsxd r9, dword [rax + 0x298]
test r9d, r9d
js 0x18015a3c4
xor eax, eax
test edx, edx
je 0x18015a30d
nop dword [rax]
cmp qword [rbp + rax*8 - 0x70], r9
je 0x18015a30d
inc eax
cmp eax, edx
jb 0x18015a300
cmp eax, edx
jne 0x18015a321
cmp edx, 0x200
jae 0x18015a321
mov qword [rbp + rax*8 - 0x70], r9
inc dword [rbp - 0x78]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp - 0x78]
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_select]
test eax, eax
js 0x18015a395
jne 0x18015a391
cmp dword [rsp + 0x30], 0xabcd0123
je 0x18015a3cb
add r15d, ebx
lea eax, [r15 + 1]
cmp eax, r14d
jae 0x18015a3cb
mov rdx, r12
mov rcx, r13
call fcn.180175cc0
test al, al
jne 0x18015a379
xor dil, dil
cmp r15d, r14d
jae 0x18015a3cb
mov r8d, dword [rbp - 0x80]
jmp 0x18015a21d
mov byte [r13 + 0x29], 1
mov rax, qword [r12]
lea rdx, str.socket_operation_aborted_by_application
mov rcx, r12
call qword [rax + 0x28]
jmp 0x18015a3d0
mov bl, 1
jmp 0x18015a3d2
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x60], rax
lea r8, str.waitReadableSocket
mov rdx, r12
lea rcx, [rsp + 0x50]
call fcn.180105b50
lea rcx, [rsp + 0x50]
call fcn.180105c80
jmp 0x18015a3d0
mov byte [r13 + 0x2a], 1
jmp 0x18015a3d0
mov byte [r13 + 0x28], 1
xor bl, bl
lea rax, vtable.ckFdSet.0
mov qword [rsp + 0x70], rax
mov dword [rbp - 0x80], 0
mov dword [rbp + 0x1010], 0
lea rcx, [rsp + 0x70]
call fcn.180103110
movzx eax, bl
mov rcx, qword [rbp + 0x1020]
xor rcx, rsp
call fcn.18007b140
add rsp, 0x1138
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret