Function at 0x1400a7740
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r14
xor r11d, r11d
mov r10, rdx
test cl, 3
jne 0x1400a7a0d
test r10b, 3
jne 0x1400a7a0d
test r8b, 3
jne 0x1400a7a0d
test cl, 7
jne 0x1400a78af
test r10b, 7
jne 0x1400a78af
test r8b, 7
jne 0x1400a78af
mov rdi, r9
mov esi, r11d
shr rdi, 3
test rdi, rdi
je 0x1400a7895
cmp rdi, 8
jb 0x1400a7861
lea rax, [r8 - 8]
lea rax, [rax + rdi*8]
lea rdx, [rcx - 8]
lea rdx, [rdx + rdi*8]
cmp rcx, rax
ja 0x1400a77cd
cmp rdx, r8
jae 0x1400a7861
lea rax, [r10 - 8]
lea rax, [rax + rdi*8]
cmp rcx, rax
ja 0x1400a77e3
cmp rdx, r10
jae 0x1400a7861
mov r14, rdi
and r14, 0xfffffffffffffff8
mov rdx, r10
lea rax, [r8 + 0x10]
sub rdx, r8
mov rbx, rcx
sub rbx, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rsi, 8
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rbx + rax - 0x50], xmm1
xorps xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rdx + rax - 0x30]
movdqu xmmword [rbx + rax - 0x40], xmm2
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rdx + rax - 0x20]
movdqu xmmword [rbx + rax - 0x30], xmm1
xorps xmm2, xmm0
movdqu xmmword [rbx + rax - 0x20], xmm2
cmp rsi, r14
jb 0x1400a7800
cmp rsi, rdi
jae 0x1400a7895
mov rbp, r10
lea rdx, [r8 + rsi*8]
mov r14, rcx
sub rbp, r8
sub r14, r8
mov rbx, rdi
sub rbx, rsi
mov rsi, rdi
nop word [rax + rax]
mov rax, qword [rdx + rbp]
xor rax, qword [rdx]
mov qword [rdx + r14], rax
lea rdx, [rdx + 8]
sub rbx, 1
jne 0x1400a7880
lea rsi, [rsi*8]
sub r9, rsi
je 0x1400a7b44
add rcx, rsi
add r10, rsi
add r8, rsi
mov rsi, r9
mov rbx, r11
shr rsi, 2
test rsi, rsi
je 0x1400a79f3
cmp rsi, 2
jb 0x1400a79c7
lea rax, [rsi - 1]
lea rax, [r8 + rax*4]
lea rdx, [rsi - 1]
lea rdx, [rcx + rdx*4]
cmp rcx, rax
ja 0x1400a78ea
cmp rdx, r8
jae 0x1400a79c7
lea rax, [rsi - 1]
lea rax, [r10 + rax*4]
cmp rcx, rax
ja 0x1400a7900
cmp rdx, r10
jae 0x1400a79c7
mov rdx, r10
sub rdx, r8
cmp rsi, 0x10
jb 0x1400a7992
mov rbp, rsi
mov r14, rsi
and ebp, 0xf
sub r14, rbp
mov rdi, rcx
lea rax, [r8 + 0x10]
sub rdi, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add rbx, 0x10
movdqu xmm1, xmmword [rax + rdx - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rax + rdi - 0x50], xmm1
xorps xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rax + rdx - 0x30]
movdqu xmmword [rdi + rax - 0x40], xmm2
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rax + rdx - 0x20]
movdqu xmmword [rax + rdi - 0x30], xmm1
xorps xmm2, xmm0
movdqu xmmword [rax + rdi - 0x20], xmm2
cmp rbx, r14
jb 0x1400a7930
cmp rbp, 2
jb 0x1400a79c2
mov rdi, rsi
and rdi, 0xfffffffffffffffe
mov rbp, rcx
lea rax, [r8 + rbx*4]
sub rbp, r8
movq xmm1, qword [rax + rdx]
add rbx, 2
movq xmm0, qword [rax]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax + rbp - 8], xmm1
cmp rbx, rdi
jb 0x1400a79a3
cmp rbx, rsi
jae 0x1400a79f3
mov rbp, r10
lea rdx, [r8 + rbx*4]
mov r14, rcx
sub rbp, r8
sub r14, r8
mov rdi, rsi
sub rdi, rbx
mov rbx, rsi
mov eax, dword [rdx + rbp]
xor eax, dword [rdx]
mov dword [rdx + r14], eax
lea rdx, [rdx + 4]
sub rdi, 1
jne 0x1400a79e0
lea rbx, [rbx*4]
sub r9, rbx
je 0x1400a7b44
add rcx, rbx
add r10, rbx
add r8, rbx
test r9, r9
je 0x1400a7b44
cmp r9, 8
jb 0x1400a7b17
lea rdx, [rcx - 1]
lea rax, [r8 - 1]
add rdx, r9
add rax, r9
cmp rcx, rax
ja 0x1400a7a3c
cmp rdx, r8
jae 0x1400a7b17
lea rax, [r10 - 1]
add rax, r9
cmp rcx, rax
ja 0x1400a7a51
cmp rdx, r10
jae 0x1400a7b17
mov rdx, r10
sub rdx, r8
cmp r9, 0x40
jb 0x1400a7ae2
mov rdi, r9
mov rsi, r9
and edi, 0x3f
sub rsi, rdi
mov rbx, rcx
lea rax, [r8 + 0x10]
sub rbx, r8
nop word [rax + rax]
movdqu xmm0, xmmword [rax - 0x10]
add r11, 0x40
movdqu xmm1, xmmword [rdx + rax - 0x10]
movdqu xmm2, xmmword [rdx + rax]
lea rax, [rax + 0x40]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x40]
movdqu xmmword [rbx + rax - 0x50], xmm1
xorps xmm2, xmm0
movdqu xmm0, xmmword [rax - 0x30]
movdqu xmm1, xmmword [rdx + rax - 0x30]
movdqu xmmword [rbx + rax - 0x40], xmm2
xorps xmm1, xmm0
movdqu xmm0, xmmword [rax - 0x20]
movdqu xmm2, xmmword [rdx + rax - 0x20]
movdqu xmmword [rbx + rax - 0x30], xmm1
xorps xmm2, xmm0
movdqu xmmword [rbx + rax - 0x20], xmm2
cmp r11, rsi
jb 0x1400a7a80
cmp rdi, 8
jb 0x1400a7b12
mov rbx, r9
and rbx, 0xfffffffffffffff8
mov rdi, rcx
lea rax, [r11 + r8]
sub rdi, r8
movq xmm1, qword [rdx + rax]
add r11, 8
movq xmm0, qword [rax]
lea rax, [rax + 8]
xorps xmm1, xmm0
movq qword [rax + rdi - 8], xmm1
cmp r11, rbx
jb 0x1400a7af3
cmp r11, r9
jae 0x1400a7b44
sub r10, r8
lea rdx, [r11 + r8]
sub rcx, r8
sub r9, r11
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx + r10]
xor al, byte [rdx]
mov byte [rdx + rcx], al
lea rdx, [rdx + 1]
sub r9, 1
jne 0x1400a7b30
mov rbx, qword [rsp + 0x20]
mov rbp, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
pop r14
pop rdi
ret