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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r12
push r13
push r14
push r15
mov rsi, qword [0x14000d890]
lea r8, [0x14000d8a0]
sub r8, rsi
mov rcx, rsi
mov r9d, 4
nop word [rax + rax]
mov edx, 4
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
xor byte [rcx], al
inc rcx
sub rdx, 1
jne 0x140001870
sub r9, 1
jne 0x140001860
lea r14, [0x14000d8b0]
sub r14, rsi
lea r13d, [rdx + 9]
lea r10, str.cw
nop dword [rax + rax]
mov r8, rsi
mov r9d, 4
nop dword [rax]
mov rcx, r8
mov edx, 4
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r10]
mov byte [rcx - 4], al
sub rdx, 1
jne 0x1400018c0
inc r8
sub r9, 1
jne 0x1400018b0
movzx eax, byte [rsi + 5]
lea r15, [rsi + 2]
movzx ecx, byte [rsi + 1]
lea ebp, [rdx + 4]
mov byte [rsi + 1], al
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 0xa]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 2]
mov byte [rsi + 2], al
movzx eax, byte [rsi + 0xe]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsi + 6]
mov byte [rsi + 6], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 0xb], al
mov byte [rsi + 7], cl
nop dword [rax]
movzx edi, byte [r15 - 2]
movzx r8d, byte [r15 - 1]
movzx edx, dil
movzx ebx, byte [r15 + 1]
xor dl, r8b
movzx r10d, byte [r15]
lea r15, [r15 + 4]
movzx eax, dl
movzx r9d, bl
shr al, 7
add dl, dl
movzx eax, al
xor r9b, r10b
imul ecx, eax, 0x1b
movzx r11d, r9b
xor r11b, dil
xor r11b, r8b
xor cl, dl
movzx edx, r8b
xor cl, dil
xor dl, r10b
xor cl, r11b
movzx eax, dl
mov byte [r15 - 6], cl
xor dil, bl
shr al, 7
add dl, dl
movzx eax, al
imul ecx, eax, 0x1b
movzx eax, r9b
shr al, 7
add r9b, r9b
movzx eax, al
xor cl, dl
xor cl, r8b
xor cl, r11b
mov byte [r15 - 5], cl
imul ecx, eax, 0x1b
movzx eax, dil
shr al, 7
add dil, dil
movzx eax, al
xor cl, r9b
xor cl, r10b
xor cl, r11b
mov byte [r15 - 4], cl
imul ecx, eax, 0x1b
xor cl, dil
xor cl, bl
xor cl, r11b
mov byte [r15 - 3], cl
sub rbp, 1
jne 0x140001940
mov rax, rsi
lea r8d, [rbp + 4]
nop word [rax + rax]
mov edx, 4
nop word [rax + rax]
movzx ecx, byte [r14 + rax]
xor byte [rax], cl
inc rax
sub rdx, 1
jne 0x140001a10
sub r8, 1
jne 0x140001a00
add r14, 0x10
lea r10, str.cw
sub r13, 1
jne 0x1400018a0
mov r8, rsi
lea r9d, [rdx + 4]
lea r10, str.cw
nop dword [rax]
mov rcx, r8
mov edx, 4
nop dword [rax + rax]
movzx eax, byte [rcx]
lea rcx, [rcx + 4]
movzx eax, byte [rax + r10]
mov byte [rcx - 4], al
sub rdx, 1
jne 0x140001a60
inc r8
sub r9, 1
jne 0x140001a50
movzx eax, byte [rsi + 5]
lea rdx, [0x14000d940]
movzx ecx, byte [rsi + 1]
lea r8d, [r9 + 4]
mov byte [rsi + 1], al
sub rdx, rsi
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 0xa]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 2]
mov byte [rsi + 2], al
movzx eax, byte [rsi + 0xe]
mov byte [rsi + 0xa], cl
movzx ecx, byte [rsi + 6]
mov byte [rsi + 6], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 0xe], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 0xb], al
mov byte [rsi + 7], cl
mov ecx, 4
nop word [rax + rax]
movzx eax, byte [rdx + rsi]
xor byte [rsi], al
inc rsi
sub rcx, 1
jne 0x140001af0
sub r8, 1
jne 0x140001ae0
mov rbx, qword [rsp + 0x28]
mov rbp, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
ret