Function at 0x1400a00d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov esi, r8d
mov r15, rdx
mov rdi, rcx
movzx ecx, byte [rcx + 0x190]
mov byte [rsp + 0x2b], r9b
movzx r14d, r9b
lea r12d, [r14*8]
test rcx, rcx
je 0x1400a0286
mov eax, r12d
sub al, cl
movzx eax, al
cmp eax, esi
cmova eax, esi
movzx edx, al
test dl, dl
je 0x1400a01ca
lea r9, [rdi + rcx]
add r9, 0xc8
cmp dl, 8
jb 0x1400a014a
lea r8, [rdi + rcx]
sub r8, r15
add r8, 0xc8
cmp r8, 0x40
jae 0x1400a0418
xor r8d, r8d
mov r10, r8
not r10
add r10, rdx
mov r11, rdx
and r11, 3
je 0x1400a0171
nop
movzx ebx, byte [r15 + r8]
mov byte [r9 + r8], bl
inc r8
dec r11
jne 0x1400a0160
cmp r10, 3
jb 0x1400a01c3
add rcx, rdi
add rcx, 0xcb
nop word cs:[rax + rax]
movzx r9d, byte [r15 + r8]
mov byte [rcx + r8 - 3], r9b
movzx r9d, byte [r15 + r8 + 1]
mov byte [rcx + r8 - 2], r9b
movzx r9d, byte [r15 + r8 + 2]
mov byte [rcx + r8 - 1], r9b
movzx r9d, byte [r15 + r8 + 3]
mov byte [rcx + r8], r9b
add r8, 4
cmp rdx, r8
jne 0x1400a0190
movzx ecx, byte [rdi + 0x190]
add r15, rdx
sub esi, edx
add cl, al
mov byte [rdi + 0x190], cl
movzx eax, cl
cmp r12d, eax
jne 0x1400a0286
cmp r14b, 0x10
jae 0x1400a01ed
xor eax, eax
jmp 0x1400a0260
mov eax, r14d
and eax, 0xfffffff0
mov ecx, r14d
shr ecx, 4
shl rcx, 7
xor edx, edx
nop
vmovups ymm0, ymmword [rdi + rdx]
vmovups ymm1, ymmword [rdi + rdx + 0x20]
vmovups ymm2, ymmword [rdi + rdx + 0x40]
vmovups ymm3, ymmword [rdi + rdx + 0x60]
vxorps ymm0, ymm0, ymmword [rdi + rdx + 0xc8]
vxorps ymm1, ymm1, ymmword [rdi + rdx + 0xe8]
vxorps ymm2, ymm2, ymmword [rdi + rdx + 0x108]
vxorps ymm3, ymm3, ymmword [rdi + rdx + 0x128]
vmovups ymmword [rdi + rdx], ymm0
vmovups ymmword [rdi + rdx + 0x20], ymm1
vmovups ymmword [rdi + rdx + 0x40], ymm2
vmovups ymmword [rdi + rdx + 0x60], ymm3
sub rdx, 0xffffffffffffff80
cmp rcx, rdx
jne 0x1400a0200
cmp rax, r14
je 0x1400a0274
mov rcx, qword [rdi + rax*8 + 0xc8]
xor qword [rdi + rax*8], rcx
inc rax
cmp r14, rax
jne 0x1400a0260
mov rcx, rdi
vzeroupper
call fcn.1400a04d0
mov byte [rdi + 0x190], 0
cmp r12d, esi
jbe 0x1400a02b8
lea rcx, [rdi + 0xc8]
mov r8d, esi
mov rdx, r15
vzeroupper
call fcn.14016e4a0
add byte [rdi + 0x190], sil
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebx, ebx
mov eax, esi
xor edx, edx
div r12d
mov ebp, eax
mov dword [rsp + 0x2c], r12d
mov r13d, r12d
lea rax, [rdi + r13]
mov qword [rsp + 0x38], rax
lea rax, [r14*8]
mov qword [rsp + 0x40], rax
mov eax, r14d
and eax, 0xfffffff0
mov qword [rsp + 0x30], rax
mov rax, r14
neg rax
mov qword [rsp + 0x50], rax
mov r12d, r14d
shr r12d, 4
shl r12, 7
mov qword [rsp + 0x48], r15
jmp 0x1400a032d
mov rcx, rdi
vzeroupper
call fcn.1400a04d0
sub esi, dword [rsp + 0x2c]
add r15, r13
inc rbx
dec ebp
je 0x1400a028b
cmp byte [rsp + 0x2b], 0x10
jb 0x1400a0354
mov rax, qword [rsp + 0x40]
imul rax, rbx
mov rcx, qword [rsp + 0x48]
add rcx, r13
add rax, rcx
cmp rax, rdi
jbe 0x1400a03a0
cmp r15, qword [rsp + 0x38]
jae 0x1400a03a0
xor ecx, ecx
mov rax, rcx
test r14b, 1
je 0x1400a036e
mov rax, qword [r15 + rcx*8]
xor qword [rdi + rcx*8], rax
mov rax, rcx
or rax, 1
not rcx
cmp rcx, qword [rsp + 0x50]
je 0x1400a0310
nop dword [rax + rax]
mov rcx, qword [r15 + rax*8]
xor qword [rdi + rax*8], rcx
mov rcx, qword [r15 + rax*8 + 8]
xor qword [rdi + rax*8 + 8], rcx
add rax, 2
cmp r14, rax
jne 0x1400a0380
jmp 0x1400a0310
xor eax, eax
nop word cs:[rax + rax]
vmovups ymm0, ymmword [rdi + rax]
vmovups ymm1, ymmword [rdi + rax + 0x20]
vmovups ymm2, ymmword [rdi + rax + 0x40]
vmovups ymm3, ymmword [rdi + rax + 0x60]
vxorps ymm0, ymm0, ymmword [r15 + rax]
vxorps ymm1, ymm1, ymmword [r15 + rax + 0x20]
vxorps ymm2, ymm2, ymmword [r15 + rax + 0x40]
vxorps ymm3, ymm3, ymmword [r15 + rax + 0x60]
vmovups ymmword [rdi + rax], ymm0
vmovups ymmword [rdi + rax + 0x20], ymm1
vmovups ymmword [rdi + rax + 0x40], ymm2
vmovups ymmword [rdi + rax + 0x60], ymm3
sub rax, 0xffffffffffffff80
cmp r12, rax
jne 0x1400a03b0
mov rax, qword [rsp + 0x30]
mov rcx, rax
cmp rax, r14
je 0x1400a0310
jmp 0x1400a0356
cmp al, 0x40
jae 0x1400a0421
xor r8d, r8d
jmp 0x1400a049b
mov r8d, edx
and r8d, 0xffffffc0
vmovups ymm0, ymmword [r15]
vmovups ymm1, ymmword [r15 + 0x20]
vmovups ymmword [r9], ymm0
vmovups ymmword [r9 + 0x20], ymm1
cmp r8, 0x40
je 0x1400a0489
vmovups ymm0, ymmword [r15 + 0x40]
vmovups ymm1, ymmword [r15 + 0x60]
vmovups ymmword [r9 + 0x40], ymm0
vmovups ymmword [r9 + 0x60], ymm1
cmp r8d, 0x80
je 0x1400a0489
vmovups ymm0, ymmword [r15 + 0x80]
vmovups ymm1, ymmword [r15 + 0xa0]
vmovups ymmword [r9 + 0x80], ymm0
vmovups ymmword [r9 + 0xa0], ymm1
cmp r8, rdx
je 0x1400a01c3
test dl, 0x38
je 0x1400a014d
mov r10, r8
mov r8d, edx
and r8d, 0xfffffff8
nop word cs:[rax + rax]
mov r11, qword [r15 + r10]
mov qword [r9 + r10], r11
add r10, 8
cmp r8, r10
jne 0x1400a04b0
cmp r8, rdx
je 0x1400a01c3
jmp 0x1400a014d