Function at 0x14006ce30
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0xc0
mov rsi, rcx
mov rax, qword [rcx]
nop word cs:[rax + rax]
mov rcx, rax
xor rcx, 3
lock cmpxchg qword [rsi], rcx
jne 0x14006ce50
test al, 1
je 0x14006d0d2
test al, 2
jne 0x14006d0ea
test al, 8
jne 0x14006ce92
mov dword [rsp + 0x40], 2
mov rdi, qword [rsi + 0x28]
call fcn.140114f10
test rax, rax
je 0x14006ceac
mov r14, qword [rax + 0x30]
mov qword [rax + 0x30], rdi
jmp 0x14006ceaf
test al, 0x10
je 0x14006ceda
mov rax, qword [rsi + 0x60]
test rax, rax
je 0x14006d1ae
mov rcx, qword [rsi + 0x68]
call qword [rax + 0x10]
jmp 0x14006ceda
xor r14d, r14d
lea rbx, [rsi + 0x30]
mov rcx, rbx
call fcn.14006b4b0
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
call fcn.140114f10
test rax, rax
je 0x14006ceda
mov qword [rax + 0x30], r14
mov rax, qword [rsi + 0x70]
test rax, rax
je 0x14006cf02
mov r8, qword [rsi + 0x78]
mov rcx, qword [r8 + 0x10]
dec rcx
and rcx, 0xfffffffffffffff0
add rcx, rax
add rcx, 0x10
lea rdx, [rsp + 0x2f]
call qword [r8 + 0x28]
mov rax, qword [rsi + 0x18]
test rax, rax
je 0x14006cfec
mov rdi, qword [rsi + 0x20]
mov qword [rsp + 0x70], rax
cmp rax, qword [rdi + 0xa0]
jne 0x14006d186
mov rax, qword [rsi + 0x10]
mov rax, qword [rax + 0x48]
mov rdx, qword [rdi + 0x78]
mov rcx, qword [rdi + 0x98]
and rcx, qword [rsi + rax]
lea r8, [rcx + rcx*2]
lea rcx, [rdx + r8*8]
mov bl, 1
xor eax, eax
lock cmpxchg byte [rdx + r8*8], bl
jne 0x14006d094
movabs r14, 0x8000000000000001
mov rax, qword [0x1401ba118]
add r14, 0xfffffffffffffffe
test rax, r14
jne 0x14006d0a4
movzx eax, byte [rcx + 1]
mov rax, qword [rsi + 0x10]
mov rax, qword [rax + 0x38]
mov rdx, qword [rsi + rax]
test rdx, rdx
je 0x14006cff4
mov r8, qword [rdx + 0x10]
mov r8, qword [r8 + 0x38]
mov rax, qword [rsi + rax + 8]
mov qword [rdx + r8 + 8], rax
mov rax, qword [rsi + 0x10]
mov rax, qword [rax + 0x38]
mov rdx, qword [rsi + rax + 8]
test rdx, rdx
je 0x14006d00e
mov r8, qword [rdx + 0x10]
mov r8, qword [r8 + 0x38]
mov rax, qword [rsi + rax]
mov qword [rdx + r8], rax
mov rax, qword [rsi + 0x10]
mov rax, qword [rax + 0x38]
mov qword [rsi + rax + 8], 0
mov rax, qword [rsi + 0x10]
mov rax, qword [rax + 0x38]
mov qword [rsi + rax], 0
lock dec qword [rdi + 0x90]
mov r15d, 2
jmp 0x14006d01a
mov r15d, 1
jmp 0x14006d03b
mov r15d, 1
cmp qword [rcx + 8], rsi
jne 0x14006d01a
mov rdx, qword [rsi + rax + 8]
mov qword [rcx + 8], rdx
test rdx, rdx
jne 0x14006cfab
mov r15d, 1
cmp qword [rcx + 0x10], rsi
je 0x14006d087
test bl, bl
je 0x14006d02e
mov rax, qword [0x1401ba118]
test rax, r14
jne 0x14006d0b6
xor eax, eax
xchg byte [rcx], al
cmp al, 2
jne 0x14006d03b
call fcn.1401333b8
mov qword [rsp + 0x30], r15
shl r15d, 6
neg r15
lock xadd qword [rsi], r15
shr r15, 6
cmp r15, qword [rsp + 0x30]
jb 0x14006d102
jne 0x14006d077
mov rcx, rsi
call fcn.140069b10
mov r8, qword [rsi - 8]
mov rcx, qword [0x1401ba0e0]
xor edx, edx
call fcn.1401336c4
nop
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rdx, qword [rsi + rax]
mov qword [rcx + 0x10], rdx
jmp 0x14006cfc3
mov r14, rcx
call fcn.1400edd30
mov rcx, r14
jmp 0x14006cf54
mov rbx, rcx
call fcn.1400edde0
mov rcx, rbx
mov ebx, eax
jmp 0x14006cf72
mov rdi, rcx
call fcn.1400edde0
mov rcx, rdi
test al, al
jne 0x14006d02e
mov byte [rcx + 1], 1
jmp 0x14006d02e
lea rcx, str.assertion_failed:_prev.is_running__
lea r8, [0x1401729a0]
mov edx, 0x23
call fcn.140018100
lea rcx, str.assertion_failed:__prev.is_complete__
lea r8, [0x1401729e0]
mov edx, 0x25
call fcn.140018100
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0x38]
mov qword [rsp + 0x70], rax
lea rax, [fcn.1400175a0]
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x88], rax
lea rax, str.current:___sub:
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 2
mov qword [rsp + 0xb0], 0
lea rax, [rsp + 0x70]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 2
lea rdx, [0x140172a28]
lea rcx, [rsp + 0x90]
call fcn.140017480
mov qword [rsp + 0x90], 0
add rdi, 0xa0
lea rcx, [rsp + 0x70]
lea r8, [rsp + 0x90]
mov rdx, rdi
call fcn.14011bec0
lea rax, str.waker_missing
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov qword [rsp + 0x50], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
lea rdx, str.005ycQaYKbzl4O3p6rmUd75C1BogKW5lnoOZjMtjNUpP2ieYXiD8ISQgeg9ntxMV5jdA0lmi3whVh79rMgqK17tqh3Wbo4nwA3FEF
lea rcx, [rsp + 0x40]
call fcn.140017480
ud2