Function at 0x180101e30
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
xor r9d, r9d
mov rsi, r8
shr rsi, 3
mov rbx, rdx
mov rdi, rcx
mov r10d, r9d
mov r11d, r9d
test rsi, rsi
je 0x180101f04
cmp rsi, 4
jb 0x180101ecf
mov rdx, rsi
lea rax, [rbx + 0x10]
and rdx, 0xfffffffffffffffc
xorps xmm3, xmm3
sub rcx, rbx
xorps xmm2, xmm2
nop dword [rax]
movdqu xmm0, xmmword [rax - 0x10]
add r11, 4
movdqu xmm1, xmmword [rcx + rax - 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [rax]
por xmm1, xmm3
movdqa xmm3, xmm1
movdqu xmm1, xmmword [rcx + rax]
add rax, 0x20
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp r11, rdx
jb 0x180101e80
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movq r10, xmm2
cmp r11, rsi
jae 0x180101f04
mov rbp, rdi
lea rcx, [rbx + r11*8]
sub rbp, rbx
mov rdx, rsi
sub rdx, r11
mov r11, rsi
nop word [rax + rax]
mov rax, qword [rcx + rbp]
xor rax, qword [rcx]
lea rcx, [rcx + 8]
or r10, rax
sub rdx, 1
jne 0x180101ef0
lea r11, [r11*8]
sub r8, r11
jne 0x180101f19
test r10, r10
jmp 0x1801020f9
add rbx, r11
mov qword [rsp + 0x10], r14
add rdi, r11
mov rcx, r10
shr rcx, 0x20
mov rsi, r8
or ecx, r10d
shr rsi, 2
mov r14, rbx
mov r11, r9
test rsi, rsi
je 0x180101ff1
cmp rsi, 8
jb 0x180101fc0
mov r10, rsi
lea rax, [rbx + 0x10]
and r10, 0xfffffffffffffff8
mov rdx, rdi
sub rdx, rbx
xorps xmm3, xmm3
xorps xmm2, xmm2
movdqu xmm0, xmmword [rax - 0x10]
add r11, 8
movdqu xmm1, xmmword [rax + rdx - 0x10]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
por xmm1, xmm3
movdqa xmm3, xmm1
movdqu xmm1, xmmword [rax + rdx - 0x20]
movdqu xmm0, xmmword [rax - 0x20]
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp r11, r10
jb 0x180101f61
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movd eax, xmm2
or ecx, eax
cmp r11, rsi
jae 0x180101ff1
mov rbp, rdi
lea rdx, [rbx + r11*4]
sub rbp, rbx
mov r10, rsi
sub r10, r11
mov r11, rsi
nop dword [rax + rax]
mov eax, dword [rdx + rbp]
xor eax, dword [rdx]
lea rdx, [rdx + 4]
or ecx, eax
sub r10, 1
jne 0x180101fe0
lea r11, [r11*4]
sub r8, r11
jne 0x180102005
test ecx, ecx
jmp 0x1801020f4
mov edx, ecx
mov eax, ecx
shr edx, 0x18
add rbx, r11
shr eax, 0x10
or dl, al
mov eax, ecx
shr eax, 8
or dl, al
or dl, cl
test r8, r8
je 0x1801020f2
cmp r8, 0x20
jb 0x1801020c7
mov r10, r8
mov rcx, rdi
and r10, 0xffffffffffffffe0
xorps xmm3, xmm3
sub rcx, r14
xorps xmm2, xmm2
mov rax, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rax]
add r9, 0x20
movdqu xmm1, xmmword [rcx + rax]
lea rax, [rax + 0x20]
pxor xmm1, xmm0
por xmm1, xmm3
movdqa xmm3, xmm1
movdqu xmm1, xmmword [rcx + rax - 0x10]
movdqu xmm0, xmmword [rax - 0x10]
pxor xmm1, xmm0
por xmm1, xmm2
movdqa xmm2, xmm1
cmp r9, r10
jb 0x180102050
por xmm2, xmm3
movdqa xmm0, xmm2
psrldq xmm0, 8
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 4
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 2
por xmm2, xmm0
movdqa xmm0, xmm2
psrldq xmm0, 1
por xmm2, xmm0
movd eax, xmm2
or dl, al
cmp r9, r8
jae 0x1801020f2
sub rdi, r14
lea rcx, [r9 + rbx]
sub r8, r9
nop word [rax + rax]
movzx eax, byte [rdi + rcx]
xor al, byte [rcx]
lea rcx, [rcx + 1]
or dl, al
sub r8, 1
jne 0x1801020e0
test dl, dl
mov r14, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x18]
sete al
mov rbp, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
pop rdi
ret