Function at 0x1400adc00
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 0x1400adc3a
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 0x1400adc20
jmp 0x1400adc3d
xor r11d, r11d
mov eax, dword [rcx + 4]
shl eax, 4
add eax, 0x10
cmp r11d, eax
jae 0x1400adea9
mov r9d, r11d
xor eax, eax
mov qword [rsp], rax
mov qword [rsp + 8], rcx
jmp 0x1400adcef
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 0x1400adea9
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 0x1400addb0
cmp r14d, 7
jb 0x1400adc68
cmp edx, 4
jne 0x1400adc68
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 0x1400adc68
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 0x1400adc62
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 0x1400ade7a
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 0x1400ade40
test edx, edx
je 0x1400adc65
nop word cs:[rax + rax]
lea eax, [r13 + r13]
sar r13b, 7
and r13b, 0x1b
xor r13b, al
dec edx
jne 0x1400ade90
jmp 0x1400adc65
add rsp, 0x10
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret