Function at 0x14012db90
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x10], rdx
push r13
push r15
sub rsp, 0xc8
mov r15d, dword [rsp + 0x118]
mov r11, r8
movsxd r13, dword [rsp + 0x110]
mov r10, rcx
vmovaps xmmword [rax - 0x38], xmm6
vmovaps xmmword [rax - 0x48], xmm7
vmovaps xmmword [rax - 0x58], xmm8
vmovaps xmmword [rax - 0x68], xmm9
vmovaps xmmword [rax - 0x78], xmm10
vmovaps xmmword [rsp + 0x50], xmm11
vmovaps xmmword [rsp + 0x40], xmm12
vmovaps xmmword [rsp + 0x30], xmm13
vmovaps xmmword [rsp + 0x20], xmm14
vmovaps xmmword [rsp + 0x10], xmm15
test r15d, r15d
je 0x14012dee0
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x20], r12
mov r12, 0xffffffffffffffe0
mov qword [rax - 0x28], r14
sub r12, rcx
mov r14, qword [rsp + 0x100]
lea eax, [r13 - 0x20]
movsxd rsi, eax
lea eax, [r13 - 4]
cdqe
mov qword [rsp], rax
mov qword [rsp + 8], rsi
nop dword [rax + rax]
dec r15d
movzx eax, r10b
or al, r11b
mov dword [rsp + 0x118], r15d
or al, r14b
xor r9d, r9d
xor r8d, r8d
test al, 0x1f
jne 0x14012dcaa
test rsi, rsi
js 0x14012dcf8
lea r9, [rsi + 0x20]
mov rdx, r11
shr r9, 5
mov rbx, r14
mov r8, r9
mov rcx, r9
shl r9d, 5
sub rdx, r10
sub rbx, r10
mov rax, r10
shl r8, 5
nop dword [rax]
vmovdqu ymm1, ymmword [rax]
vpxor ymm1, ymm1, ymmword [rdx + rax]
vmovdqu ymmword [rbx + rax], ymm1
lea rax, [rax + 0x20]
sub rcx, 1
jne 0x14012dc90
jmp 0x14012dcf8
test rsi, rsi
js 0x14012dcf8
lea r8, [rsi + 0x20]
mov rbx, r11
shr r8, 5
mov rdi, r14
mov r9d, r8d
sub rbx, r10
shl r9d, 5
sub rdi, r10
mov rdx, r8
mov rcx, r10
shl r8, 5
nop dword [rax]
nop dword [rax + rax]
vmovdqu ymm1, ymmword [rcx]
vpxor ymm1, ymm1, ymmword [rcx + rbx]
vmovdqu ymmword [rcx + rdi], ymm1
lea rcx, [rcx + 0x20]
sub rdx, 1
jne 0x14012dce0
mov rcx, qword [rsp]
cmp r8, rcx
jg 0x14012dd67
sub rcx, r8
lea rax, [r11 + 1]
add rax, r8
mov rdi, r10
mov rsi, r14
sub rdi, r11
sub rsi, r11
shr rcx, 2
lea rbx, [rcx + 1]
lea r9d, [r9 + rbx*4]
lea r8, [r8 + rbx*4]
nop word [rax + rax]
movzx edx, byte [rdi + rax]
xor dl, byte [rax]
movzx ecx, byte [rax + rdi - 1]
xor cl, byte [rax - 1]
mov byte [rax + rsi - 1], cl
mov byte [rsi + rax], dl
movzx edx, byte [rdi + rax + 2]
movzx ecx, byte [rdi + rax + 1]
xor dl, byte [rax + 2]
xor cl, byte [rax + 1]
mov byte [rsi + rax + 1], cl
mov byte [rax + rsi + 2], dl
lea rax, [rax + 4]
sub rbx, 1
jne 0x14012dd30
mov ecx, r13d
sub ecx, r9d
cmp r9d, r13d
jge 0x14012de51
cmp ecx, 0x80
jb 0x14012de51
lea eax, [r13 - 1]
movsxd rdx, r9d
movsxd rbx, eax
lea rsi, [rdx + r14]
lea rax, [rbx + r11]
lea rdi, [rbx + r14]
lea r15, [rdx + r11]
cmp rsi, rax
ja 0x14012ddaa
cmp rdi, r15
jae 0x14012de49
add rdx, r10
lea rax, [rbx + r10]
cmp rsi, rax
ja 0x14012ddbf
cmp rdi, rdx
jae 0x14012de49
and ecx, 0x8000007f
jge 0x14012ddce
dec ecx
or ecx, 0xffffff80
inc ecx
mov eax, r13d
mov rdx, r11
sub eax, ecx
sub rdx, r10
lea rcx, [r8 + 0x20]
movsxd rbx, eax
add rcx, r10
mov r8, r14
sub r8, r10
nop dword [rax]
vmovdqu ymm2, ymmword [rcx]
vmovdqu ymm1, ymmword [rcx - 0x20]
vpxor ymm1, ymm1, ymmword [rdx + rcx - 0x20]
vmovdqu ymmword [r8 + rcx - 0x20], ymm1
vpxor ymm1, ymm2, ymmword [rdx + rcx]
vmovdqu ymm2, ymmword [rcx + 0x20]
vmovdqu ymmword [r8 + rcx], ymm1
vpxor ymm1, ymm2, ymmword [rdx + rcx + 0x20]
vmovdqu ymm2, ymmword [rcx + 0x40]
vmovdqu ymmword [r8 + rcx + 0x20], ymm1
vpxor ymm1, ymm2, ymmword [rdx + rcx + 0x40]
vmovdqu ymmword [r8 + rcx + 0x40], ymm1
lea rcx, [rcx + 0x80]
sub r9d, 0xffffff80
lea rax, [r12 + rcx]
cmp rax, rbx
jl 0x14012ddf0
mov r15d, dword [rsp + 0x118]
movsxd rax, r9d
cmp rax, r13
jge 0x14012de85
mov r8, r10
lea rcx, [rax + r11]
mov r9, r14
sub r8, r11
sub r9, r11
mov rdx, r13
sub rdx, rax
nop
movzx eax, byte [r8 + rcx]
xor al, byte [rcx]
mov byte [r9 + rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14012de70
add r10, qword [rsp + 0xe8]
sub r12, qword [rsp + 0xe8]
add r11, qword [rsp + 0xf8]
add r14, qword [rsp + 0x108]
mov rsi, qword [rsp + 8]
test r15d, r15d
jne 0x14012dc40
vzeroall
mov r14, qword [rsp + 0xb0]
mov r12, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0xe0]
jmp 0x14012dee3
vzeroall
vmovaps xmm12, xmmword [rsp + 0x40]
lea r11, [rsp + 0xc8]
vmovaps xmm6, xmmword [r11 - 0x28]
vmovaps xmm7, xmmword [r11 - 0x38]
vmovaps xmm8, xmmword [r11 - 0x48]
vmovaps xmm9, xmmword [r11 - 0x58]
vmovaps xmm10, xmmword [r11 - 0x68]
vmovaps xmm11, xmmword [r11 - 0x78]
vmovaps xmm13, xmmword [rsp + 0x30]
vmovaps xmm14, xmmword [rsp + 0x20]
vmovaps xmm15, xmmword [rsp + 0x10]
mov rsp, r11
pop r15
pop r13
ret