Function at 0x1400caa40
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r15, r8
mov r12, rdx
mov r14, rcx
test r8, r8
je 0x1400caa62
mov byte [r15], 0
mov r8d, dword [r12 + 8]
xor esi, esi
test r8, r8
je 0x1400cac69
mov rbp, qword [r12]
test rbp, rbp
je 0x1400cac69
movabs rax, 0xc6a4a7935bd1e995
movabs rdx, 0x35253c9ade8f4ca8
imul rdx, r8
movabs rbx, 0x9747b28c9747b28c
xor rbx, rdx
cmp r8d, 1
jne 0x1400caaae
xor edi, edi
jmp 0x1400cab05
mov edx, r8d
and edx, 0xfffffffe
xor edi, edi
nop word cs:[rax + rax]
mov rcx, qword [rbp + rdi*8]
imul rcx, rax
mov rsi, rcx
shr rsi, 0x2f
xor rsi, rcx
imul rsi, rax
xor rsi, rbx
imul rsi, rax
mov rcx, qword [rbp + rdi*8 + 8]
imul rcx, rax
mov rbx, rcx
shr rbx, 0x2f
xor rbx, rcx
imul rbx, rax
xor rbx, rsi
imul rbx, rax
add rdi, 2
cmp rdx, rdi
jne 0x1400caac0
test r8b, 1
je 0x1400cab2c
mov rdx, qword [rbp + rdi*8]
imul rdx, rax
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rcx, rax
xor rcx, rbx
imul rcx, rax
mov rbx, rcx
mov ecx, dword [r12 + 0xc]
imul rcx, rax
mov rdx, rcx
shr rdx, 0x2f
xor rdx, rcx
imul rdx, rax
xor rdx, rbx
imul rdx, rax
mov rcx, rdx
shr rcx, 0x2f
xor rcx, rdx
imul rcx, rax
mov rdi, rcx
shr rdi, 0x2f
xor rdi, rcx
mov eax, edi
and eax, 0xfffff
lea rbx, [r14 + rax*4]
mov r13d, 0x7fffffff
and r13d, dword [r14 + rax*4]
lea rcx, [r14 + 0x400008]
mov ebp, r13d
nop word cs:[rax + rax]
nop dword [rax + rax]
test ebp, ebp
je 0x1400cabd3
mov esi, ebp
mov ebp, ebp
mov rdx, rbp
shr rdx, 0x10
mov rax, qword [r14 + rdx*8 + 0x400010]
test rax, rax
je 0x1400cabc2
movzx edx, bp
shl rdx, 4
mov ebp, dword [rax + rdx + 8]
cmp qword [rax + rdx], rdi
jne 0x1400cab90
jmp 0x1400cac69
mov qword [rsp + 0x28], rcx
call method.__sanitizer::TwoLevelMap___sanitizer::StackDepotNode__32768ull__65536ull____sanitizer::LocalAddressSpaceView_.Create_unsigned_long_long__const
mov rcx, qword [rsp + 0x28]
jmp 0x1400cabac
mov rbp, rcx
mov qword [rsp + 0x28], r15
mov rcx, rbx
call method.__sanitizer::StackDepotBase___sanitizer::StackDepotNode__1__20_.lock___sanitizer::atomic_uint32_t_
mov r15d, eax
cmp eax, r13d
je 0x1400cac13
movups xmm0, xmmword [r12]
movaps xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x30]
mov rcx, r14
mov edx, r15d
mov r9, rdi
call method.__sanitizer::StackDepotBase___sanitizer::StackDepotNode__1__20_.find_unsigned_int____sanitizer::StackTrace__unsigned_long_long__const
test eax, eax
je 0x1400cac13
mov esi, eax
mov dword [rbx], r15d
jmp 0x1400cac69
mov esi, 1
lock xadd dword [r14 + 0x400000], esi
add esi, 1
js 0x1400cac7c
mov r13, rbx
mov rdx, rsi
shr rdx, 0x10
mov rbx, qword [r14 + rdx*8 + 0x400010]
test rbx, rbx
je 0x1400caca3
movzx ebp, si
shl rbp, 4
lea rcx, [rbx + rbp]
mov r8, r12
mov r9, rdi
call method.__sanitizer::StackDepotNode.store_unsigned_int____sanitizer::StackTrace_const__unsigned_long_long_
mov dword [rbx + rbp + 8], r15d
mov dword [r13], esi
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x1400cac69
mov byte [rax], 1
mov eax, esi
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r9d, esi
and r9d, 0x7fffffff
mov qword [rsp + 0x20], rsi
lea rcx, str....._sanitizer_common_sanitizer_stackdepotbase.h
lea r8, str.__s__kUnlockMask______s__
mov edx, 0x8c
call method.__sanitizer.CheckFailed_char_const__int__char_const__unsigned_long_long__unsigned_long_long_
mov rcx, rbp
call method.__sanitizer::TwoLevelMap___sanitizer::StackDepotNode__32768ull__65536ull____sanitizer::LocalAddressSpaceView_.Create_unsigned_long_long__const
mov rbx, rax
jmp 0x1400cac3d