Function at 0x1400a7b60
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
xor r10d, r10d
mov r9, rdx
test cl, 3
jne 0x1400a7db6
test r9b, 3
jne 0x1400a7db6
test cl, 7
jne 0x1400a7c88
test r9b, 7
jne 0x1400a7c88
mov rbx, r8
mov edi, r10d
shr rbx, 3
test rbx, rbx
je 0x1400a7c71
cmp rbx, 8
jb 0x1400a7c4d
lea rax, [r9 - 8]
lea rax, [rax + rbx*8]
lea rdx, [rcx - 8]
lea rdx, [rdx + rbx*8]
cmp rcx, rax
ja 0x1400a7bd2
cmp rdx, r9
jae 0x1400a7c4d
mov rsi, rbx
and rsi, 0xfffffffffffffff8
mov rdx, r9
lea rax, [rcx + 0x10]
sub rdx, rcx
nop dword [rax]
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rdi, 8
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rdx + rax - 0x30]
xorps xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rdx + rax - 0x20]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp rdi, rsi
jb 0x1400a7bf0
cmp rdi, rbx
jae 0x1400a7c71
mov rsi, r9
lea rdx, [rcx + rdi*8]
sub rsi, rcx
mov r11, rbx
sub r11, rdi
mov rdi, rbx
mov rax, qword [rdx + rsi]
xor qword [rdx], rax
lea rdx, [rdx + 8]
sub r11, 1
jne 0x1400a7c60
lea rdi, [rdi*8]
sub r8, rdi
je 0x1400a7ec1
add rcx, rdi
add r9, rdi
mov rdi, r8
mov r11, r10
shr rdi, 2
test rdi, rdi
je 0x1400a7d9f
cmp rdi, 2
jb 0x1400a7d73
lea rax, [rdi - 1]
lea rax, [r9 + rax*4]
lea rdx, [rdi - 1]
lea rdx, [rcx + rdx*4]
cmp rcx, rax
ja 0x1400a7cc3
cmp rdx, r9
jae 0x1400a7d73
mov rdx, r9
cmp rdi, 0x10
jb 0x1400a7d40
mov rbx, rdi
mov rsi, rdi
and ebx, 0xf
sub rsi, rbx
lea rax, [rcx + 0x10]
sub rdx, rcx
nop
movdqu xmm0, xmmword [rax - 0x10]
add r11, 0x10
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rax + rdx]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rax + rdx - 0x30]
xorps xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rax + rdx - 0x20]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp r11, rsi
jb 0x1400a7ce0
cmp rbx, 2
jb 0x1400a7d6e
jmp 0x1400a7d43
sub rdx, rcx
mov rbx, rdi
and rbx, 0xfffffffffffffffe
lea rax, [rcx + r11*4]
nop
movq xmm0, qword [rax]
add r11, 2
movq xmm1, qword [rdx + rax]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax - 8], xmm1
cmp r11, rbx
jb 0x1400a7d50
cmp r11, rdi
jae 0x1400a7d9f
mov rsi, r9
lea rdx, [rcx + r11*4]
sub rsi, rcx
mov rbx, rdi
sub rbx, r11
mov r11, rdi
nop word [rax + rax]
mov eax, dword [rsi + rdx]
xor dword [rdx], eax
lea rdx, [rdx + 4]
sub rbx, 1
jne 0x1400a7d90
lea r11, [r11*4]
sub r8, r11
je 0x1400a7ec1
add rcx, r11
add r9, r11
test r8, r8
je 0x1400a7ec1
cmp r8, 8
jb 0x1400a7ea3
lea rdx, [rcx - 1]
lea rax, [r9 - 1]
add rdx, r8
add rax, r8
cmp rcx, rax
ja 0x1400a7de5
cmp rdx, r9
jae 0x1400a7ea3
mov rdx, r9
cmp r8, 0x40
jb 0x1400a7e70
mov r11, r8
mov rbx, r8
and r11d, 0x3f
sub rbx, r11
lea rax, [rcx + 0x10]
sub rdx, rcx
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add r10, 0x40
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x50], xmm1
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmm1, xmmword [rdx + rax - 0x30]
xorps xmm2, xmm0
movdqu xmmword [rax - 0x40], xmm2
movdqu xmm0, xmmword [rax - 0x30]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x30], xmm1
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm1, xmmword [rdx + rax - 0x20]
xorps xmm1, xmm0
movdqu xmmword [rax - 0x20], xmm1
cmp r10, rbx
jb 0x1400a7e10
cmp r11, 8
jb 0x1400a7e9e
jmp 0x1400a7e73
sub rdx, rcx
mov r11, r8
and r11, 0xfffffffffffffff8
lea rax, [r10 + rcx]
nop
movq xmm0, qword [rax]
add r10, 8
movq xmm1, qword [rdx + rax]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax - 8], xmm1
cmp r10, r11
jb 0x1400a7e80
cmp r10, r8
jae 0x1400a7ec1
sub r9, rcx
lea rdx, [r10 + rcx]
sub r8, r10
nop dword [rax]
movzx eax, byte [r9 + rdx]
xor byte [rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x1400a7eb0
mov rbx, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
ret