Function at 0x1801017f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
xor r11d, r11d
mov rbx, r8
shr rbx, 3
mov r9, rcx
mov edi, r11d
test rbx, rbx
je 0x1801018e1
cmp rbx, 8
jb 0x1801018ac
add rcx, 0xfffffffffffffff8
lea rax, [rdx - 8]
lea rax, [rax + rbx*8]
lea rcx, [rcx + rbx*8]
cmp r9, rax
ja 0x18010183c
cmp rcx, rdx
jae 0x1801018ac
mov r10, rbx
and r10, 0xfffffffffffffff8
mov rcx, rdx
lea rax, [r9 + 0x10]
sub rcx, r9
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
add rdi, 8
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm2, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rcx + 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 [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp rdi, r10
jb 0x180101850
cmp rdi, rbx
jae 0x1801018e1
mov rsi, rdx
lea rcx, [r9 + rdi*8]
sub rsi, r9
mov r10, rbx
sub r10, rdi
mov rdi, rbx
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rcx + rsi]
xor qword [rcx], rax
lea rcx, [rcx + 8]
sub r10, 1
jne 0x1801018d0
lea rdi, [rdi*8]
sub r8, rdi
je 0x180101aa0
add r9, rdi
add rdx, rdi
mov rbx, r8
mov rdi, r11
shr rbx, 2
test rbx, rbx
je 0x1801019cf
cmp rbx, 0x10
jb 0x18010199c
lea rax, [rbx - 1]
lea rax, [rdx + rax*4]
lea rcx, [rbx - 1]
lea rcx, [r9 + rcx*4]
cmp r9, rax
ja 0x18010192f
cmp rcx, rdx
jae 0x18010199c
mov r10, rbx
and r10, 0xfffffffffffffff0
mov rcx, rdx
lea rax, [r9 + 0x10]
sub rcx, r9
movdqu xmm0, xmmword [rax - 0x10]
add rdi, 0x10
movdqu xmm1, xmmword [rax + rcx - 0x10]
movdqu xmm2, xmmword [rax + rcx]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rax + rcx - 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 + rcx - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp rdi, r10
jb 0x180101940
cmp rdi, rbx
jae 0x1801019cf
mov rsi, rdx
lea rcx, [r9 + rdi*4]
sub rsi, r9
mov r10, rbx
sub r10, rdi
mov rdi, rbx
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rsi + rcx]
xor dword [rcx], eax
lea rcx, [rcx + 4]
sub r10, 1
jne 0x1801019c0
lea rdi, [rdi*4]
sub r8, rdi
je 0x180101aa0
add r9, rdi
add rdx, rdi
test r8, r8
je 0x180101aa0
cmp r8, 0x40
jb 0x180101a7c
lea rcx, [r9 - 1]
lea rax, [rdx - 1]
add rcx, r8
add rax, r8
cmp r9, rax
ja 0x180101a11
cmp rcx, rdx
jae 0x180101a7c
mov r10, r8
and r10, 0xffffffffffffffc0
mov rcx, rdx
mov rax, r9
sub rcx, r9
movdqu xmm0, xmmword [rax]
add r11, 0x40
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x40]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x40], xmm1
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rcx + rax - 0x30]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rcx + rax - 0x20]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
movdqu xmm0, xmmword [rax - 0x10]
movdqu xmm1, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmmword [rax - 0x10], xmm1
cmp r11, r10
jb 0x180101a21
cmp r11, r8
jae 0x180101aa0
sub rdx, r9
lea rax, [r11 + r9]
sub r8, r11
nop dword [rax + rax]
movzx ecx, byte [rdx + rax]
xor byte [rax], cl
lea rax, [rax + 1]
sub r8, 1
jne 0x180101a90
mov rbx, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x18]
ret