Function at 0x14001e1c0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
xor r11d, r11d
mov r9, r8
test cl, 3
jne 0x14001e3e8
test dl, 3
jne 0x14001e3e8
test cl, 7
jne 0x14001e2f8
test dl, 7
jne 0x14001e2f8
mov rbx, r8
mov edi, r11d
shr rbx, 3
test rbx, rbx
je 0x14001e2e1
cmp rbx, 8
jb 0x14001e2b5
lea rax, [rdx - 8]
lea rax, [rax + rbx*8]
lea r8, [rcx - 8]
lea r8, [r8 + rbx*8]
cmp rcx, rax
ja 0x14001e234
cmp r8, rdx
jae 0x14001e2b5
mov rsi, rbx
and rsi, 0xfffffffffffffff8
mov r8, rdx
lea rax, [rcx + 0x10]
sub r8, rcx
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rdi, 8
movdqu xmm1, xmmword [r8 + rax - 0x10]
movdqu xmm2, xmmword [rax + r8]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [r8 + rax - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [r8 + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp rdi, rsi
jb 0x14001e250
cmp rdi, rbx
jae 0x14001e2e1
mov rsi, rdx
lea r8, [rcx + rdi*8]
sub rsi, rcx
mov r10, rbx
sub r10, rdi
mov rdi, rbx
nop dword [rax + rax]
mov rax, qword [r8 + rsi]
xor qword [r8], rax
lea r8, [r8 + 8]
sub r10, 1
jne 0x14001e2d0
lea rdi, [rdi*8]
sub r9, rdi
je 0x14001e4b0
add rcx, rdi
add rdx, rdi
mov rbx, r9
mov rdi, r11
shr rbx, 2
test rbx, rbx
je 0x14001e3d1
cmp rbx, 0x10
jb 0x14001e3a5
lea rax, [rbx - 1]
lea rax, [rdx + rax*4]
lea r8, [rbx - 1]
lea r8, [rcx + r8*4]
cmp rcx, rax
ja 0x14001e32f
cmp r8, rdx
jae 0x14001e3a5
mov rsi, rbx
and rsi, 0xfffffffffffffff0
mov r8, rdx
lea rax, [rcx + 0x10]
sub r8, rcx
movdqu xmm0, xmmword [rax - 0x10]
add rdi, 0x10
movdqu xmm1, xmmword [rax + r8 - 0x10]
movdqu xmm2, xmmword [rax + r8]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rax + r8 - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rax + r8 - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp rdi, rsi
jb 0x14001e340
cmp rdi, rbx
jae 0x14001e3d1
mov rsi, rdx
lea r8, [rcx + rdi*4]
sub rsi, rcx
mov r10, rbx
sub r10, rdi
mov rdi, rbx
nop dword [rax + rax]
mov eax, dword [rsi + r8]
xor dword [r8], eax
lea r8, [r8 + 4]
sub r10, 1
jne 0x14001e3c0
lea rdi, [rdi*4]
sub r9, rdi
je 0x14001e4b0
add rcx, rdi
add rdx, rdi
test r9, r9
je 0x14001e4b0
cmp r9, 0x40
jb 0x14001e495
lea r8, [rcx - 1]
lea rax, [rdx - 1]
add r8, r9
add rax, r9
cmp rcx, rax
ja 0x14001e417
cmp r8, rdx
jae 0x14001e495
mov r10, r9
and r10, 0xffffffffffffffc0
mov r8, rdx
lea rax, [rcx + 0x10]
sub r8, rcx
nop dword [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add r11, 0x40
movdqu xmm1, xmmword [r8 + rax - 0x10]
movdqu xmm2, xmmword [r8 + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [r8 + rax - 0x30]
pxor xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [r8 + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp r11, r10
jb 0x14001e430
cmp r11, r9
jae 0x14001e4b0
sub rdx, rcx
lea rax, [r11 + rcx]
sub r9, r11
nop
movzx ecx, byte [rdx + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r9, 1
jne 0x14001e4a0
mov rbx, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
ret