Function at 0x1400a8a20
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov qword [rsp + 0x40], r9
mov rdi, r8
mov r12, rdx
mov rbx, rcx
cmp rdx, 0x21
jae 0x1400a8a6c
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, r12
mov r8, rdi
mov r9, qword [rsp + 0x40]
call fcn.1400064a0
jmp 0x1400a9088
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x38], rax
mov esi, dword [rsp + 0x130]
lea rax, [rdi - 0x38]
mov qword [rsp + 0x50], rax
mov r14, r12
nop dword [rax]
sub esi, 1
jb 0x1400a9063
mov dword [rsp + 0x4c], esi
mov r9, r14
shr r9, 3
imul rdx, r9, 0xe0
add rdx, rbx
imul r8, r9, 0x188
add r8, rbx
cmp r14, 0x40
jae 0x1400a8b50
mov r10, qword [rbx + 0x18]
movzx ebp, byte [rbx + 0x30]
mov rcx, qword [rdx + 0x18]
movzx r9d, byte [rdx + 0x30]
xor bpl, 1
xor r9b, 1
mov r11d, ebp
sub r11b, r9b
xor eax, eax
cmp r11b, 0xff
sete al
xor r11d, r11d
cmp r10, rcx
seta r11b
cmovne eax, r11d
mov r11, qword [r8 + 0x18]
movzx esi, byte [r8 + 0x30]
xor sil, 1
sub bpl, sil
xor r12d, r12d
cmp bpl, 0xff
sete r12b
xor ebp, ebp
cmp r10, r11
seta bpl
cmovne r12d, ebp
mov r15, rbx
cmp al, r12b
jne 0x1400a8b5b
sub r9b, sil
xor r10d, r10d
cmp r9b, 0xff
sete r10b
xor r9d, r9d
cmp rcx, r11
seta r9b
cmovne r10d, r9d
xor al, r10b
cmovne rdx, r8
mov r15, rdx
jmp 0x1400a8b5b
mov rcx, rbx
call fcn.140095a30
mov r15, rax
mov rcx, r15
sub rcx, rbx
shr rcx, 3
movabs rax, 0x6db6db6db6db6db7
imul rcx, rax
mov qword [rsp + 0x58], rcx
mov rax, qword [r15 + 0x30]
mov qword [rsp + 0xc0], rax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movaps xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0x90], xmm0
cmp qword [rsp + 0x38], 0
je 0x1400a8be8
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx + 0x18]
movzx ecx, byte [rcx + 0x30]
movzx edx, byte [r15 + 0x30]
xor cl, 1
xor dl, 1
sub cl, dl
xor edx, edx
cmp cl, 0xff
setne dl
xor ecx, ecx
cmp rax, qword [r15 + 0x18]
setbe cl
cmovne edx, ecx
test dl, dl
jne 0x1400a8e40
cmp r14, qword [rsp + 0x40]
ja 0x1400a909d
imul rsi, r14, 0x38
lea rbp, [rdi + rsi]
xor r12d, r12d
mov rax, rbx
mov rcx, rbp
mov rdx, qword [rsp + 0x58]
nop dword [rax]
imul r8, rdx, 0x38
add r8, rbx
cmp rax, r8
jae 0x1400a8c9a
nop dword [rax]
mov r9, qword [rax + 0x18]
movzx r10d, byte [rax + 0x30]
movzx r11d, byte [r15 + 0x30]
xor r10b, 1
xor r11b, 1
sub r10b, r11b
xor r11d, r11d
cmp r10b, 0xff
sete r11b
xor r10d, r10d
cmp r9, qword [r15 + 0x18]
seta r10b
cmovne r11d, r10d
add rcx, 0xffffffffffffffc8
test r11b, r11b
mov r9, rcx
cmovne r9, rdi
imul r10, r12, 0x38
mov r13, qword [rax + 0x30]
mov qword [r9 + r10 + 0x30], r13
movups xmm0, xmmword [rax + 0x20]
movups xmmword [r9 + r10 + 0x20], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmmword [r9 + r10 + 0x10], xmm1
movups xmmword [r9 + r10], xmm0
movzx r9d, r11b
add r12, r9
add rax, 0x38
cmp rax, r8
jb 0x1400a8c20
cmp rdx, r14
je 0x1400a8ce0
imul rdx, r12, 0x38
mov r8, qword [rax + 0x30]
mov qword [rcx + rdx - 8], r8
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rcx + rdx - 0x18], xmm2
movups xmmword [rcx + rdx - 0x28], xmm1
movups xmmword [rcx + rdx - 0x38], xmm0
add rcx, 0xffffffffffffffc8
add rax, 0x38
mov rdx, r14
jmp 0x1400a8c10
imul r13, r12, 0x38
mov rcx, rbx
mov rdx, rdi
mov r8, r13
call sub.VCRUNTIME140.dll_memcpy
mov rdx, r14
sub rdx, r12
je 0x1400a8de0
lea rax, [rbx + r13]
lea rcx, [r12 + 1]
cmp r14, rcx
jne 0x1400a8d20
xor r9d, r9d
jmp 0x1400a8da6
mov rcx, rdx
and rcx, 0xfffffffffffffffe
add rsi, qword [rsp + 0x50]
mov r8, rax
xor r10d, r10d
movabs r11, 0x1ffffffffffffffe
nop dword [rax]
mov r9, qword [rsi + 0x30]
mov qword [r8 + 0x30], r9
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmmword [r8 + 0x20], xmm2
movups xmmword [r8 + 0x10], xmm1
movups xmmword [r8], xmm0
lea r9, [r10 + 2]
xor r10, r11
imul r10, r10, 0x38
movups xmm0, xmmword [rbp + r10]
movups xmm1, xmmword [rbp + r10 + 0x10]
movups xmm2, xmmword [rbp + r10 + 0x20]
movups xmmword [r8 + 0x38], xmm0
movups xmmword [r8 + 0x48], xmm1
movups xmmword [r8 + 0x58], xmm2
mov r10, qword [rbp + r10 + 0x30]
mov qword [r8 + 0x68], r10
add r8, 0x70
add rsi, 0xffffffffffffff90
mov r10, r9
cmp rcx, r9
jne 0x1400a8d40
test dl, 1
je 0x1400a8de0
imul rcx, r9, 0x38
not r9
imul r8, r9, 0x38
mov r9, qword [rbp + r8 + 0x30]
mov qword [rax + rcx + 0x30], r9
movups xmm0, xmmword [rbp + r8]
movups xmm1, xmmword [rbp + r8 + 0x10]
movups xmm2, xmmword [rbp + r8 + 0x20]
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
test r12, r12
je 0x1400a8e40
cmp r14, r12
jb 0x1400a909f
add r13, rbx
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0x28], rax
mov esi, dword [rsp + 0x4c]
mov dword [rsp + 0x20], esi
mov rcx, r13
mov r8, rdi
mov r9, qword [rsp + 0x40]
call fcn.1400a8a20
mov r14, r12
cmp r12, 0x21
jae 0x1400a8a90
jmp 0x1400a8a47
cmp r14, qword [rsp + 0x40]
ja 0x1400a909d
imul rbp, r14, 0x38
lea rcx, [rdi + rbp]
xor r13d, r13d
mov rax, rbx
mov qword [rsp + 0x38], rcx
mov rsi, qword [rsp + 0x58]
nop word cs:[rax + rax]
imul rdx, rsi, 0x38
add rdx, rbx
cmp rax, rdx
jae 0x1400a8efa
nop dword [rax]
movzx r8d, byte [rax + 0x30]
mov r9, qword [r15 + 0x18]
movzx r10d, byte [r15 + 0x30]
xor r10b, 1
xor r8b, 1
sub r10b, r8b
xor r8d, r8d
cmp r10b, 0xff
setne r8b
xor r10d, r10d
cmp r9, qword [rax + 0x18]
setbe r10b
cmovne r8d, r10d
add rcx, 0xffffffffffffffc8
test r8b, r8b
mov r9, rcx
cmovne r9, rdi
imul r10, r13, 0x38
mov r11, qword [rax + 0x30]
mov qword [r9 + r10 + 0x30], r11
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [r9 + r10 + 0x20], xmm2
movups xmmword [r9 + r10 + 0x10], xmm1
movups xmmword [r9 + r10], xmm0
movzx r8d, r8b
add r13, r8
add rax, 0x38
cmp rax, rdx
jb 0x1400a8e80
cmp rsi, r14
je 0x1400a8f40
add rcx, 0xffffffffffffffc8
imul rdx, r13, 0x38
mov r8, qword [rax + 0x30]
mov qword [rdi + rdx + 0x30], r8
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rdi + rdx + 0x20], xmm2
movups xmmword [rdi + rdx + 0x10], xmm1
movups xmmword [rdi + rdx], xmm0
inc r13
add rax, 0x38
mov rsi, r14
jmp 0x1400a8e70
imul r15, r13, 0x38
mov rcx, rbx
mov rdx, rdi
mov r8, r15
call sub.VCRUNTIME140.dll_memcpy
mov r12, r14
sub r12, r13
movabs r10, 0x1ffffffffffffffe
mov r11, qword [rsp + 0x38]
je 0x1400a903a
lea rax, [rbx + r15]
lea rcx, [r13 + 1]
cmp r14, rcx
jne 0x1400a8f82
xor r8d, r8d
jmp 0x1400a9000
mov rcx, r12
and rcx, 0xfffffffffffffffe
add rbp, qword [rsp + 0x50]
mov rdx, rax
xor r9d, r9d
nop word cs:[rax + rax]
mov r8, qword [rbp + 0x30]
mov qword [rdx + 0x30], r8
movups xmm0, xmmword [rbp]
movups xmm1, xmmword [rbp + 0x10]
movups xmm2, xmmword [rbp + 0x20]
movups xmmword [rdx + 0x20], xmm2
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea r8, [r9 + 2]
xor r9, r10
imul r9, r9, 0x38
movups xmm0, xmmword [r11 + r9]
movups xmm1, xmmword [r11 + r9 + 0x10]
movups xmm2, xmmword [r11 + r9 + 0x20]
movups xmmword [rdx + 0x38], xmm0
movups xmmword [rdx + 0x48], xmm1
movups xmmword [rdx + 0x58], xmm2
mov r9, qword [r11 + r9 + 0x30]
mov qword [rdx + 0x68], r9
add rdx, 0x70
add rbp, 0xffffffffffffff90
mov r9, r8
cmp rcx, r8
jne 0x1400a8fa0
test r12b, 1
je 0x1400a903a
imul rcx, r8, 0x38
not r8
imul rdx, r8, 0x38
mov r8, qword [r11 + rdx + 0x30]
mov qword [rax + rcx + 0x30], r8
movups xmm0, xmmword [r11 + rdx]
movups xmm1, xmmword [r11 + rdx + 0x10]
movups xmm2, xmmword [r11 + rdx + 0x20]
movups xmmword [rax + rcx + 0x20], xmm2
movups xmmword [rax + rcx + 0x10], xmm1
movups xmmword [rax + rcx], xmm0
cmp r14, r13
jb 0x1400a90d6
add rbx, r15
mov eax, 0
mov qword [rsp + 0x38], rax
cmp r12, 0x21
mov esi, dword [rsp + 0x4c]
jae 0x1400a8a89
jmp 0x1400a8a47
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0x28], rax
mov byte [rsp + 0x20], 1
mov rcx, rbx
mov rdx, r14
mov r8, rdi
mov r9, qword [rsp + 0x40]
call fcn.1400de420
nop
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
lea rax, [0x140318870]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 1
mov qword [rsp + 0x70], 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x78], xmm0
lea rdx, [0x140318a40]
lea rcx, [rsp + 0x60]
call fcn.14029d7b0
lea r8, [0x140318a58]
mov rcx, r13
mov rdx, r14
call fcn.14029dcb0
int3