Function at 0x1400add40
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x10
test dword [rcx], 0x3fffffff
je 0x1400add7a
xor eax, eax
nop word [rax + rax]
movzx r9d, byte [rdx + rax]
mov byte [r8 + rax], r9b
inc rax
mov r11d, dword [rcx]
shl r11d, 2
cmp rax, r11
jb 0x1400add60
jmp 0x1400add7d
xor r11d, r11d
mov eax, dword [rcx + 4]
shl eax, 4
add eax, 0x10
cmp r11d, eax
jae 0x1400adfe9
mov r9d, r11d
xor eax, eax
mov qword [rsp], rax
mov qword [rsp + 8], rcx
jmp 0x1400ade2f
mov r13b, 1
xor r13b, dil
shl r14d, 2
mov eax, r9d
mov edx, r9d
sub edx, r14d
xor r13b, byte [r8 + rdx]
mov byte [r8 + r9], r13b
mov rdx, rax
or rdx, 1
mov rcx, qword [rsp + 8]
mov r10d, dword [rcx]
shl r10d, 2
mov esi, edx
sub esi, r10d
xor bpl, byte [r8 + rsi]
mov byte [r8 + rdx], bpl
mov rdx, rax
or rdx, 2
mov r10d, dword [rcx]
shl r10d, 2
mov esi, edx
sub esi, r10d
xor r15b, byte [r8 + rsi]
mov byte [r8 + rdx], r15b
or rax, 3
mov edx, dword [rcx]
shl edx, 2
mov r10d, eax
sub r10d, edx
xor r12b, byte [r8 + r10]
mov byte [r8 + rax], r12b
add r9, 4
mov eax, dword [rcx + 4]
shl eax, 4
add eax, 0x10
mov rdx, qword [rsp]
inc edx
mov qword [rsp], rdx
cmp r9, rax
jae 0x1400adfe9
mov edx, 0xfffffffc
lea eax, [rdx + r9]
and eax, 0xfffffffc
movzx r13d, byte [r8 + rax]
movzx r10d, r13b
lea eax, [rdx + r9]
inc eax
and eax, 0xfffffffd
movzx ebp, byte [r8 + rax]
movzx edi, bpl
lea eax, [rdx + r9]
add eax, 2
and eax, 0xfffffffe
movzx r15d, byte [r8 + rax]
movzx esi, r15b
lea eax, [rdx + r9]
add eax, 3
movzx r12d, byte [r8 + rax]
movzx ebx, r12b
mov rax, r9
shr rax, 2
mov r14d, dword [rcx]
xor edx, edx
div r14d
test edx, edx
je 0x1400adef0
cmp r14d, 7
jb 0x1400adda8
cmp edx, 4
jne 0x1400adda8
mov eax, r10d
and eax, 0xf
and r10d, 0xfffffff0
lea rcx, str.cw
add r10, rcx
movzx r13d, byte [rax + r10]
mov eax, edi
and eax, 0xf
and edi, 0xfffffff0
add rdi, rcx
movzx ebp, byte [rax + rdi]
mov eax, esi
and eax, 0xf
and esi, 0xfffffff0
add rsi, rcx
movzx r15d, byte [rax + rsi]
mov eax, ebx
and eax, 0xf
and ebx, 0xfffffff0
add rbx, rcx
movzx r12d, byte [rax + rbx]
jmp 0x1400adda8
mov eax, edi
and eax, 0xf
and edi, 0xfffffff0
lea rcx, str.cw
add rdi, rcx
movzx edi, byte [rax + rdi]
mov eax, esi
and eax, 0xf
and esi, 0xfffffff0
add rsi, rcx
movzx ebp, byte [rax + rsi]
mov eax, ebx
and eax, 0xf
and ebx, 0xfffffff0
add rbx, rcx
movzx r15d, byte [rax + rbx]
mov eax, r10d
and eax, 0xf
and r10d, 0xfffffff0
add r10, rcx
movzx r12d, byte [rax + r10]
lea esi, [r14*4]
mov eax, r9d
xor edx, edx
div esi
mov r10d, eax
dec r10d
je 0x1400adda2
mov rax, qword [rsp]
lea eax, [r11 + rax*4]
xor edx, edx
div esi
add eax, 0xfffffffe
mov edx, r10d
and edx, 3
mov r13b, 1
cmp eax, 3
jb 0x1400adfba
and r10d, 0xfffffffc
mov al, 1
nop word cs:[rax + rax]
lea r13d, [rax + rax]
sar al, 7
and al, 0x1b
xor al, r13b
add al, al
sar r13b, 7
and r13b, 0x1b
xor r13b, al
add r13b, r13b
sar al, 7
and al, 0x1b
xor al, r13b
add al, al
sar r13b, 7
and r13b, 0x1b
xor r13b, al
mov eax, r13d
add r10d, 0xfffffffc
jne 0x1400adf80
test edx, edx
je 0x1400adda5
nop word cs:[rax + rax]
lea eax, [r13 + r13]
sar r13b, 7
and r13b, 0x1b
xor r13b, al
dec edx
jne 0x1400adfd0
jmp 0x1400adda5
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret