Function at 0x1400a1a70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov ebp, r9d
mov esi, r8d
mov rbx, rdx
mov rdi, rcx
movzx ecx, byte [rcx + 0x190]
movzx r15d, r9b
lea r12d, [r15*8]
test rcx, rcx
je 0x1400a1c23
mov eax, r12d
sub al, cl
movzx eax, al
cmp eax, esi
cmova eax, esi
movzx edx, al
mov r8d, edx
test dl, dl
je 0x1400a1b6a
lea r10, [rdi + rcx]
add r10, 0xc8
cmp al, 8
jb 0x1400a1aea
lea r9, [rdi + rcx]
sub r9, rbx
add r9, 0xc8
cmp r9, 0x20
jae 0x1400a1b96
xor r9d, r9d
mov r11, r9
not r11
add r11, r8
mov r14, r8
and r14, 3
je 0x1400a1b11
nop
movzx r13d, byte [rbx + r9]
mov byte [r10 + r9], r13b
inc r9
dec r14
jne 0x1400a1b00
cmp r11, 3
jb 0x1400a1b63
add rcx, rdi
add rcx, 0xcb
nop word cs:[rax + rax]
movzx r10d, byte [rbx + r9]
mov byte [rcx + r9 - 3], r10b
movzx r10d, byte [rbx + r9 + 1]
mov byte [rcx + r9 - 2], r10b
movzx r10d, byte [rbx + r9 + 2]
mov byte [rcx + r9 - 1], r10b
movzx r10d, byte [rbx + r9 + 3]
mov byte [rcx + r9], r10b
add r9, 4
cmp r8, r9
jne 0x1400a1b30
movzx ecx, byte [rdi + 0x190]
add rbx, r8
sub esi, edx
add cl, al
mov byte [rdi + 0x190], cl
movzx eax, cl
cmp r12d, eax
jne 0x1400a1c23
test bpl, bpl
je 0x1400a1c14
cmp bpl, 4
jae 0x1400a1ba6
xor eax, eax
jmp 0x1400a1c00
cmp al, 0x20
jae 0x1400a1ca2
xor r9d, r9d
jmp 0x1400a1d95
mov eax, r15d
and eax, 0xfffffffc
lea ecx, [r15*8]
and ecx, 0xffffffe0
xor edx, edx
nop dword [rax]
movups xmm0, xmmword [rdi + rdx]
movups xmm1, xmmword [rdi + rdx + 0x10]
movups xmm2, xmmword [rdi + rdx + 0xc8]
xorps xmm2, xmm0
movups xmm0, xmmword [rdi + rdx + 0xd8]
xorps xmm0, xmm1
movups xmmword [rdi + rdx], xmm2
movups xmmword [rdi + rdx + 0x10], xmm0
add rdx, 0x20
cmp rcx, rdx
jne 0x1400a1bc0
cmp rax, r15
je 0x1400a1c14
nop word cs:[rax + rax]
mov rcx, qword [rdi + rax*8 + 0xc8]
xor qword [rdi + rax*8], rcx
inc rax
cmp r15, rax
jne 0x1400a1c00
mov rcx, rdi
call fcn.1400a1fc0
mov byte [rdi + 0x190], 0
cmp r12d, esi
jbe 0x1400a1c52
lea rcx, [rdi + 0xc8]
mov r8d, esi
mov rdx, rbx
call sub.msvcrt.dll_memcpy
add byte [rdi + 0x190], sil
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, esi
xor edx, edx
div r12d
mov r14d, eax
mov r13d, r12d
jmp 0x1400a1c83
mov rcx, rdi
call fcn.1400a1fc0
sub esi, r12d
add rbx, r13
dec r14d
je 0x1400a1c28
test bpl, bpl
je 0x1400a1c70
xor eax, eax
nop word [rax + rax]
mov rcx, qword [rbx + rax*8]
xor qword [rdi + rax*8], rcx
inc rax
cmp r15, rax
jne 0x1400a1c90
jmp 0x1400a1c70
mov r9d, r8d
and r9d, 0xffffffe0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [r10], xmm0
movups xmmword [r10 + 0x10], xmm1
cmp r9, 0x20
je 0x1400a1d82
movups xmm0, xmmword [rbx + 0x20]
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [r10 + 0x20], xmm0
movups xmmword [r10 + 0x30], xmm1
cmp r9d, 0x40
je 0x1400a1d82
movups xmm0, xmmword [rbx + 0x40]
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [r10 + 0x40], xmm0
movups xmmword [r10 + 0x50], xmm1
cmp r9d, 0x60
je 0x1400a1d82
movups xmm0, xmmword [rbx + 0x60]
movups xmm1, xmmword [rbx + 0x70]
movups xmmword [r10 + 0x60], xmm0
movups xmmword [r10 + 0x70], xmm1
cmp r9d, 0x80
je 0x1400a1d82
movups xmm0, xmmword [rbx + 0x80]
movups xmm1, xmmword [rbx + 0x90]
movups xmmword [r10 + 0x80], xmm0
movups xmmword [r10 + 0x90], xmm1
cmp r9d, 0xa0
je 0x1400a1d82
movups xmm0, xmmword [rbx + 0xa0]
movups xmm1, xmmword [rbx + 0xb0]
movups xmmword [r10 + 0xa0], xmm0
movups xmmword [r10 + 0xb0], xmm1
cmp r9d, 0xc0
je 0x1400a1d82
movups xmm0, xmmword [rbx + 0xc0]
movups xmm1, xmmword [rbx + 0xd0]
movups xmmword [r10 + 0xc0], xmm0
movups xmmword [r10 + 0xd0], xmm1
cmp r9, r8
je 0x1400a1b63
test r8b, 0x18
je 0x1400a1aed
mov r11, r9
mov r9d, r8d
and r9d, 0xfffffff8
nop
mov r14, qword [rbx + r11]
mov qword [r10 + r11], r14
add r11, 8
cmp r9, r11
jne 0x1400a1da0
cmp r9, r8
je 0x1400a1b63
jmp 0x1400a1aed