Function at 0x140021870
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov dword [rbp - 4], 0
jmp 0x14002192e
mov eax, dword [rbp - 4]
shl eax, 2
mov edx, eax
mov rax, qword [rbp + 0x18]
add rax, rdx
mov edx, dword [rbp - 4]
shl edx, 2
mov ecx, edx
mov rdx, qword [rbp + 0x10]
add rdx, rcx
movzx eax, byte [rax]
mov byte [rdx], al
mov eax, dword [rbp - 4]
shl eax, 2
add eax, 1
mov edx, eax
mov rax, qword [rbp + 0x18]
add rax, rdx
mov edx, dword [rbp - 4]
shl edx, 2
add edx, 1
mov ecx, edx
mov rdx, qword [rbp + 0x10]
add rdx, rcx
movzx eax, byte [rax]
mov byte [rdx], al
mov eax, dword [rbp - 4]
shl eax, 2
add eax, 2
mov edx, eax
mov rax, qword [rbp + 0x18]
add rax, rdx
mov edx, dword [rbp - 4]
shl edx, 2
add edx, 2
mov ecx, edx
mov rdx, qword [rbp + 0x10]
add rdx, rcx
movzx eax, byte [rax]
mov byte [rdx], al
mov eax, dword [rbp - 4]
shl eax, 2
add eax, 3
mov edx, eax
mov rax, qword [rbp + 0x18]
add rax, rdx
mov edx, dword [rbp - 4]
shl edx, 2
add edx, 3
mov ecx, edx
mov rdx, qword [rbp + 0x10]
add rdx, rcx
movzx eax, byte [rax]
mov byte [rdx], al
add dword [rbp - 4], 1
cmp dword [rbp - 4], 7
jbe 0x14002188c
mov dword [rbp - 4], 8
jmp 0x140021b66
mov eax, dword [rbp - 4]
sub eax, 1
shl eax, 2
mov dword [rbp - 8], eax
mov edx, dword [rbp - 8]
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx eax, byte [rax]
mov byte [rbp - 0x14], al
mov eax, dword [rbp - 8]
add eax, 1
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx eax, byte [rax]
mov byte [rbp - 0x13], al
mov eax, dword [rbp - 8]
add eax, 2
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx eax, byte [rax]
mov byte [rbp - 0x12], al
mov eax, dword [rbp - 8]
add eax, 3
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx eax, byte [rax]
mov byte [rbp - 0x11], al
mov eax, dword [rbp - 4]
and eax, 7
test eax, eax
jne 0x140021a48
movzx eax, byte [rbp - 0x14]
mov byte [rbp - 9], al
movzx eax, byte [rbp - 0x13]
mov byte [rbp - 0x14], al
movzx eax, byte [rbp - 0x12]
mov byte [rbp - 0x13], al
movzx eax, byte [rbp - 0x11]
mov byte [rbp - 0x12], al
movzx eax, byte [rbp - 9]
mov byte [rbp - 0x11], al
movzx eax, byte [rbp - 0x14]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x14], al
movzx eax, byte [rbp - 0x13]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x13], al
movzx eax, byte [rbp - 0x12]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x12], al
movzx eax, byte [rbp - 0x11]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x11], al
movzx edx, byte [rbp - 0x14]
mov eax, dword [rbp - 4]
shr eax, 3
mov ecx, eax
lea rax, [0x14003eb90]
movzx eax, byte [rcx + rax]
xor eax, edx
mov byte [rbp - 0x14], al
mov eax, dword [rbp - 4]
and eax, 7
cmp eax, 4
jne 0x140021aaf
movzx eax, byte [rbp - 0x14]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x14], al
movzx eax, byte [rbp - 0x13]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x13], al
movzx eax, byte [rbp - 0x12]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x12], al
movzx eax, byte [rbp - 0x11]
movzx eax, al
cdqe
lea rdx, str.cw
movzx eax, byte [rax + rdx]
mov byte [rbp - 0x11], al
mov eax, dword [rbp - 4]
shl eax, 2
mov dword [rbp - 0x10], eax
mov eax, dword [rbp - 4]
sub eax, 8
shl eax, 2
mov dword [rbp - 8], eax
mov edx, dword [rbp - 8]
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx ecx, byte [rax]
movzx edx, byte [rbp - 0x14]
mov r8d, dword [rbp - 0x10]
mov rax, qword [rbp + 0x10]
add rax, r8
xor edx, ecx
mov byte [rax], dl
mov eax, dword [rbp - 8]
add eax, 1
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx ecx, byte [rax]
movzx edx, byte [rbp - 0x13]
mov eax, dword [rbp - 0x10]
add eax, 1
mov r8d, eax
mov rax, qword [rbp + 0x10]
add rax, r8
xor edx, ecx
mov byte [rax], dl
mov eax, dword [rbp - 8]
add eax, 2
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx ecx, byte [rax]
movzx edx, byte [rbp - 0x12]
mov eax, dword [rbp - 0x10]
add eax, 2
mov r8d, eax
mov rax, qword [rbp + 0x10]
add rax, r8
xor edx, ecx
mov byte [rax], dl
mov eax, dword [rbp - 8]
add eax, 3
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx ecx, byte [rax]
movzx edx, byte [rbp - 0x11]
mov eax, dword [rbp - 0x10]
add eax, 3
mov r8d, eax
mov rax, qword [rbp + 0x10]
add rax, r8
xor edx, ecx
mov byte [rax], dl
add dword [rbp - 4], 1
cmp dword [rbp - 4], 0x3b
jbe 0x140021944
nop
nop
add rsp, 0x20
pop rbp
ret