Function at 0x14009ce20
Capabilities:
Encode data using xor

Disassembly:
push rbx
movsxd r10, dword [rdx + 8]
lea rbx, [rcx - 1]
movsxd rax, dword [r8 + 8]
mov rcx, r10
shr rbx, 0x3f
xor rcx, rax
dec rbx
mov r11, rdx
and rcx, rbx
xor r10d, ecx
mov dword [rdx + 8], r10d
lea r10d, [r9 - 1]
xor dword [r8 + 8], ecx
movq xmm3, rbx
punpcklqdq xmm3, xmm3
cmp r10d, 9
ja case.default.0x14009ce73
lea rdx, [0x140000000]
movsxd rax, r10d
mov ecx, dword [rdx + rax*4 + 0x9d144]
add rcx, rdx
jmp rcx
mov edx, 0xa
mov qword [rsp + 0x18], rdi
lea ecx, [r9 - 0xa]
cmp r9d, edx
jle 0x14009cfaa
cmp ecx, 4
jb 0x14009cfaa
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x20], r14
mov r14, qword [r8]
movsxd rax, r10d
mov qword [rsp + 0x28], r15
mov r15, qword [r11]
lea rsi, [r14 + 0x50]
lea r10, [r14 + rax*8]
lea rax, [r15 + rax*8]
lea rdi, [r15 + 0x50]
cmp rsi, rax
ja 0x14009cecb
cmp r10, rdi
jae 0x14009cf9b
cmp rsi, r8
ja 0x14009ced9
cmp r10, r8
jae 0x14009cf9b
cmp rsi, r11
ja 0x14009cee7
cmp r10, r11
jae 0x14009cf9b
cmp rdi, r8
ja 0x14009cef5
cmp rax, r8
jae 0x14009cf9b
cmp rdi, r11
ja 0x14009cf03
cmp rax, r11
jae 0x14009cf9b
and ecx, 0x80000003
jge 0x14009cf12
dec ecx
or ecx, 0xfffffffc
inc ecx
mov eax, r9d
sub eax, ecx
mov ecx, 0x50
nop dword [rax]
movdqu xmm1, xmmword [r15 + rcx]
add edx, 4
movdqu xmm2, xmmword [r14 + rcx]
lea rcx, [rcx + 0x20]
pxor xmm2, xmm1
pand xmm2, xmm3
movdqa xmm0, xmm2
pxor xmm0, xmm1
movdqu xmmword [r15 + rcx - 0x20], xmm0
movdqu xmm1, xmmword [r14 + rcx - 0x20]
pxor xmm1, xmm2
movdqu xmmword [r14 + rcx - 0x20], xmm1
movdqu xmm1, xmmword [r15 + rcx - 0x10]
movdqu xmm0, xmmword [r14 + rcx - 0x10]
movdqa xmm2, xmm1
pxor xmm2, xmm0
pand xmm2, xmm3
movdqa xmm0, xmm2
pxor xmm0, xmm1
movdqu xmmword [r15 + rcx - 0x10], xmm0
movdqu xmm0, xmmword [r14 + rcx - 0x10]
pxor xmm2, xmm0
movdqu xmmword [r14 + rcx - 0x10], xmm2
cmp edx, eax
jl 0x14009cf20
mov r14, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x10]
mov r15, qword [rsp + 0x28]
movsxd r10, edx
movsxd rdi, r9d
cmp r10, rdi
jge 0x14009cfed
nop word [rax + rax]
mov rax, qword [r11]
mov rcx, qword [rax + r10*8]
lea rdx, [rax + r10*8]
mov rax, qword [r8]
mov r9, qword [rax + r10*8]
xor r9, rcx
and r9, rbx
xor rcx, r9
mov qword [rdx], rcx
mov rax, qword [r8]
xor qword [rax + r10*8], r9
inc r10
cmp r10, rdi
jl 0x14009cfc0
mov rdi, qword [rsp + 0x18]
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x48]
mov rcx, qword [r9 + 0x48]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x48], rcx
mov rax, qword [r8]
xor qword [rax + 0x48], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x40]
mov rcx, qword [r9 + 0x40]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x40], rcx
mov rax, qword [r8]
xor qword [rax + 0x40], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x38]
mov rcx, qword [r9 + 0x38]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x38], rcx
mov rax, qword [r8]
xor qword [rax + 0x38], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x30]
mov rcx, qword [r9 + 0x30]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x30], rcx
mov rax, qword [r8]
xor qword [rax + 0x30], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x28]
mov rcx, qword [r9 + 0x28]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x28], rcx
mov rax, qword [r8]
xor qword [rax + 0x28], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x20]
mov rcx, qword [r9 + 0x20]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x20], rcx
mov rax, qword [r8]
xor qword [rax + 0x20], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x18]
mov rcx, qword [r9 + 0x18]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x18], rcx
mov rax, qword [r8]
xor qword [rax + 0x18], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 0x10]
mov rcx, qword [r9 + 0x10]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 0x10], rcx
mov rax, qword [r8]
xor qword [rax + 0x10], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rdx, qword [rax + 8]
mov rcx, qword [r9 + 8]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r9 + 8], rcx
mov rax, qword [r8]
xor qword [rax + 8], rdx
mov rax, qword [r8]
mov r9, qword [r11]
mov rcx, qword [rax]
mov rdx, qword [r9]
xor rcx, rdx
and rcx, rbx
xor rdx, rcx
mov qword [r9], rdx
mov rax, qword [r8]
xor qword [rax], rcx
pop rbx
ret