Function at 0x1401580f0
Capabilities:
Get socket status

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x468]
sub rsp, 0x568
mov qword [rbp + 0x10], 0xfffffffffffffffe
mov r15, r9
xor eax, eax
mov dword [rsp + 0x48], eax
mov byte [rsp + 0x4c], al
lea rax, [0x1403ea628]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rsp + 0x48]
mov r13, qword [rbp + 0x4d8]
movups xmmword [r13], xmm0
mov rdi, qword [r8 + 8]
test rdi, rdi
je 0x140158162
lock inc dword [rdi + 8]
mov rdi, qword [r8 + 8]
mov rax, qword [r8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rdi
mov rsi, qword [r8 + 0x10]
mov qword [rsp + 0x40], rsi
mov r8, rsi
mov r9, rsi
mov r12d, 0xffffffff
cmp qword [rsp + 0x30], 0
jne 0x140158199
mov r8, r9
cmp qword [r15], 0
jne 0x140158199
mov al, 1
jmp 0x1401581ae
mov rax, qword [r15]
cmp qword [rsp + 0x30], rax
je 0x1401581a7
xor al, al
jmp 0x1401581ae
cmp r8, qword [r15 + 0x10]
sete al
test al, al
jne 0x1401586ad
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x1401581d1
lock inc dword [rbx + 8]
mov rbx, qword [r15 + 8]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov rax, qword [r15]
mov qword [rsp + 0x68], rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x18], rbx
mov rax, qword [r15 + 0x10]
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x10], rax
test rdi, rdi
je 0x140158201
lock inc dword [rdi + 8]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x38]
mov r13, qword [rsp + 0x30]
mov qword [rbp - 8], r13
mov qword [rbp], rdi
mov qword [rbp + 8], rsi
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 8]
call fcn.14015d860
test al, al
je 0x140158414
mov r14, rdi
test rbx, rbx
je 0x14015825f
mov eax, r12d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14015825a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14015825a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0x30], r13
mov rbx, rdi
mov rdi, r14
mov qword [rsp + 0x38], r14
test rbx, rbx
je 0x1401582a4
mov eax, r12d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x14015829f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14015829f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0x40], rsi
test r13, r13
jne 0x1401582b7
cmp qword [r15], r13
je 0x1401586ad
cmp r13, qword [r15]
jne 0x1401582c6
cmp rsi, qword [r15 + 0x10]
je 0x1401586ad
mov rax, qword [rbp + 0x4b8]
mov rcx, qword [rax]
add rax, 8
mov qword [rsp + 0x48], rax
add rcx, 0x28
mov rbx, qword [rbp + 0x4d8]
mov r9, rbx
mov r8, rax
lea rdx, [rbp + 0x18]
call fcn.14015fd50
lea rax, [rsi + rsi*2]
shl rax, 5
add rax, qword [r13]
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x40], xmm0
movsd xmm1, qword [rax + 0x10]
movsd qword [rbp - 0x30], xmm1
mov eax, dword [rax + 0x18]
mov dword [rbp - 0x28], eax
mov rcx, qword [rsp + 0x48]
cmp qword [rcx], 0xffffffffffffffff
jne 0x140158472
mov eax, reloc.WS2_32.dll_socket
cmp word [rbp - 0x40], 2
mov edx, 2
cmove eax, edx
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x20], rbx
lea r9, [rsp + 0x5c]
mov r8, rcx
lea rdx, [rbp + 0x28]
mov rax, qword [rbp + 0x4b8]
mov rcx, qword [rax]
call fcn.140162cc0
mov rax, rbx
cmp dword [rax], 0
jne 0x140158592
mov rcx, qword [rsp + 0x48]
mov r8d, 0x1c
cmp word [rbp - 0x40], 2
mov edx, reloc.WS2_32.dll_recv
cmove r8d, edx
mov rbx, qword [rcx]
mov qword [rsp + 0x48], rbx
mov r9, rax
lea rdx, [rbp - 0x40]
mov rcx, rbx
call fcn.140160b40
mov rax, qword [rbp + 0x4d8]
mov ecx, dword [rax]
movabs rdx, 0x8fafd21e25c5e09b
cmp ecx, 0x2734
jne 0x1401583c3
mov rax, qword [rax + 8]
cmp qword [rax + 8], rdx
je 0x1401583dd
mov rax, qword [rbp + 0x4d8]
cmp ecx, 0x2733
jne 0x140158582
mov rax, qword [rax + 8]
cmp qword [rax + 8], rdx
jne 0x140158582
cmp rbx, 0xffffffffffffffff
jne 0x14015847a
mov dword [rsp + 0x70], 0x2719
mov byte [rsp + 0x74], 1
lea rdx, [0x1403ea628]
mov qword [rsp + 0x78], rdx
movups xmm0, xmmword [rsp + 0x70]
mov rcx, qword [rbp + 0x4d8]
movups xmmword [rcx], xmm0
jmp 0x140158589
mov r14, rbx
mov rax, qword [rsp + 0x68]
mov r13, rax
mov rcx, qword [rsp + 0x48]
mov rsi, rcx
test rdi, rdi
je 0x14015825f
mov eax, r12d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14015825a
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x14015825a
mov rdi, qword [rsp + 0x38]
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.WS2_32.dll_htonl]
jmp 0x14015825f
mov rax, rbx
jmp 0x14015836c
mov qword [rbp + 0x258], rbx
mov dword [rbp + 0x250], 1
mov qword [rbp + 0x48], rbx
mov dword [rbp + 0x40], 1
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
lea ecx, [rbx + 1]
xor eax, eax
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x40]
lea r8, [rbp + 0x250]
xor edx, edx
call qword [sym.imp.WS2_32.dll_select]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp - 0x80], eax
test eax, eax
setne byte [rbp - 0x7c]
lea rdx, [0x1403ea628]
mov qword [rbp - 0x78], rdx
movups xmm0, xmmword [rbp - 0x80]
mov rcx, qword [rbp + 0x4d8]
movups xmmword [rcx], xmm0
test ebx, ebx
js 0x140158589
xor eax, eax
mov dword [rbp - 0x70], eax
mov byte [rbp - 0x6c], al
mov qword [rbp - 0x68], rdx
movups xmm0, xmmword [rbp - 0x70]
movups xmmword [rcx], xmm0
mov dword [rsp + 0x58], eax
xor ecx, ecx
call qword [sym.imp.WS2_32.dll_WSASetLastError]
mov dword [rsp + 0x60], 4
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
mov edx, 0xffff
mov r8d, 0x1007
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.WS2_32.dll_getsockopt]
mov ebx, eax
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [rbp - 0x60], eax
test eax, eax
setne byte [rbp - 0x5c]
lea rdx, [0x1403ea628]
mov qword [rbp - 0x58], rdx
movups xmm0, xmmword [rbp - 0x60]
mov rcx, qword [rbp + 0x4d8]
movups xmmword [rcx], xmm0
cmp ebx, r12d
je 0x140158589
mov eax, dword [rsp + 0x58]
mov dword [rbp - 0x50], eax
test eax, eax
setne byte [rbp - 0x4c]
mov qword [rbp - 0x48], rdx
movups xmm0, xmmword [rbp - 0x50]
movups xmmword [rcx], xmm0
jmp 0x140158589
mov rcx, qword [rbp + 0x4d8]
cmp dword [rcx], 0
je 0x140158624
inc rsi
mov qword [rsp + 0x40], rsi
mov r8, rsi
mov r9, rsi
mov rcx, qword [r13 + 8]
sub rcx, qword [r13]
movabs rax, 0x2aaaaaaaaaaaaaab
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rsi, rdx
jne 0x140158184
xor ebx, ebx
mov qword [rsp + 0x30], rbx
mov edi, ebx
mov qword [rsp + 0x38], rbx
test r14, r14
je 0x140158611
mov eax, r12d
lock xadd dword [r14 + 8], eax
sub eax, 1
jne 0x14015860c
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
mov eax, r12d
lock xadd dword [r14 + 0xc], eax
sub eax, 1
jne 0x14015860c
mov rax, qword [r14]
mov rcx, r14
call qword [rax + reloc.WS2_32.dll_htonl]
mov rdi, qword [rsp + 0x38]
mov rsi, rbx
mov qword [rsp + 0x40], rbx
mov r8, rbx
mov r9, rbx
jmp 0x140158184
mov rdi, qword [rbp + 0x4b0]
mov qword [rdi], r13
mov qword [rdi + 8], r14
mov qword [rdi + 0x10], rsi
mov rcx, qword [rbp + 0x4c0]
mov rbx, qword [rcx + 8]
test rbx, rbx
je 0x140158672
mov eax, r12d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x140158672
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
mov eax, r12d
lock xadd dword [rbx + 0xc], eax
cmp eax, 1
jne 0x140158672
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rbx, qword [r15 + 8]
test rbx, rbx
je 0x1401586a5
mov eax, r12d
lock xadd dword [rbx + 8], eax
cmp eax, 1
jne 0x1401586a5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r12d
cmp r12d, 1
jne 0x1401586a5
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.WS2_32.dll_htonl]
mov rax, rdi
jmp 0x140158747
test rdi, rdi
je 0x1401586e3
mov eax, r12d
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x1401586e3
mov rbx, qword [rsp + 0x38]
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax]
lock xadd dword [rbx + 0xc], r12d
cmp r12d, 1
jne 0x1401586e3
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
mov r13, qword [rbp + 0x4d8]
cmp dword [r13], 0
jne 0x1401586fe
mov edx, 3
mov rcx, r13
call fcn.140157980
mov rbx, qword [rbp + 0x4b0]
xor ecx, ecx
mov qword [rbx], rcx
mov qword [rbx + 8], rcx
mov rax, qword [r15]
mov qword [rbx], rax
mov rax, qword [r15 + 8]
mov qword [rbx + 8], rax
mov qword [r15], rcx
mov qword [r15 + 8], rcx
mov rax, qword [r15 + 0x10]
mov qword [rbx + 0x10], rax
mov qword [r15 + 0x10], rcx
mov rcx, qword [rbp + 0x4c0]
call fcn.140132e60
nop
mov rcx, r15
call fcn.140132e60
mov rax, rbx
add rsp, 0x568
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret