Function at 0x1401bf1d0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
mov r10, r8
movsxd rdi, r9d
lea rbx, [rcx - 1]
mov r11, rdx
movsxd rcx, dword [rdx + 8]
shr rbx, 0x3f
mov r8, rcx
movsxd rax, dword [r10 + 8]
dec rbx
xor r8, rax
and r8, rbx
mov eax, r8d
xor eax, ecx
movq xmm4, rbx
mov dword [rdx + 8], eax
xor dword [r10 + 8], r8d
lea r8d, [rdi - 1]
punpcklqdq xmm4, xmm4
cmp r8d, 9
ja case.default.0x1401bf22e
lea rdx, [0x140000000]
movsxd rax, r8d
mov ecx, dword [rdx + rax*4 + 0x1bf4b4]
add rcx, rdx
jmp rcx
mov edx, 0xa
lea ecx, [rdi - 0xa]
cmp edi, edx
jle 0x1401bf31d
cmp ecx, 2
jb 0x1401bf31d
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], r14
mov r14, qword [r10]
movsxd rax, r8d
mov qword [rsp + 0x20], r15
mov r15, qword [r11]
lea rsi, [r14 + 0x50]
lea r8, [r14 + rax*8]
lea rax, [r15 + rax*8]
lea r9, [r15 + 0x50]
cmp rsi, rax
ja 0x1401bf27f
cmp r8, r9
jae 0x1401bf30e
cmp rsi, r10
ja 0x1401bf28d
cmp r8, r10
jae 0x1401bf30e
cmp rsi, r11
ja 0x1401bf297
cmp r8, r11
jae 0x1401bf30e
cmp r9, r10
ja 0x1401bf2a1
cmp rax, r10
jae 0x1401bf30e
cmp r9, r11
ja 0x1401bf2ab
cmp rax, r11
jae 0x1401bf30e
and ecx, 0x80000001
jge 0x1401bf2ba
dec ecx
or ecx, 0xfffffffe
inc ecx
mov r8d, edi
sub r8d, ecx
mov eax, 0x50
nop word [rax + rax]
movdqu xmm2, xmmword [r14 + rax]
add edx, 2
movdqu xmm1, xmmword [r15 + rax]
lea rax, [rax + 0x10]
movdqa xmm3, xmm2
pxor xmm3, xmm1
pand xmm3, xmm4
movdqa xmm0, xmm3
pxor xmm3, xmm2
pxor xmm0, xmm1
movdqu xmmword [r15 + rax - 0x10], xmm0
movdqu xmmword [r14 + rax - 0x10], xmm3
cmp edx, r8d
jl 0x1401bf2d0
mov r14, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x10]
mov r15, qword [rsp + 0x20]
movsxd r9, edx
cmp r9, rdi
jge case.0x1401bf22e.10
nop word [rax + rax]
mov rax, qword [r11]
mov rcx, qword [rax + r9*8]
lea rdx, [rax + r9*8]
mov rax, qword [r10]
mov r8, qword [rax + r9*8]
xor r8, rcx
and r8, rbx
xor rcx, r8
mov qword [rdx], rcx
mov rax, qword [r10]
xor qword [rax + r9*8], r8
inc r9
cmp r9, rdi
jl 0x1401bf330
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x48]
mov rcx, qword [r8 + 0x48]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x48], rcx
mov rax, qword [r10]
xor qword [rax + 0x48], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x40]
mov rcx, qword [r8 + 0x40]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x40], rcx
mov rax, qword [r10]
xor qword [rax + 0x40], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x38]
mov rcx, qword [r8 + 0x38]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x38], rcx
mov rax, qword [r10]
xor qword [rax + 0x38], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x30]
mov rcx, qword [r8 + 0x30]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x30], rcx
mov rax, qword [r10]
xor qword [rax + 0x30], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x28]
mov rcx, qword [r8 + 0x28]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x28], rcx
mov rax, qword [r10]
xor qword [rax + 0x28], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x20]
mov rcx, qword [r8 + 0x20]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x20], rcx
mov rax, qword [r10]
xor qword [rax + 0x20], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x18]
mov rcx, qword [r8 + 0x18]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x18], rcx
mov rax, qword [r10]
xor qword [rax + 0x18], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 0x10]
mov rcx, qword [r8 + 0x10]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 0x10], rcx
mov rax, qword [r10]
xor qword [rax + 0x10], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rdx, qword [rax + 8]
mov rcx, qword [r8 + 8]
xor rdx, rcx
and rdx, rbx
xor rcx, rdx
mov qword [r8 + 8], rcx
mov rax, qword [r10]
xor qword [rax + 8], rdx
mov rax, qword [r10]
mov r8, qword [r11]
mov rcx, qword [rax]
mov rdx, qword [r8]
xor rcx, rdx
and rcx, rbx
mov rbx, qword [rsp + 0x28]
xor rdx, rcx
mov qword [r8], rdx
mov rax, qword [r10]
xor qword [rax], rcx
pop rdi
ret