Function at 0x140002a20
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 0x140002ade
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 0x140002a3c
mov dword [rbp - 4], 8
jmp 0x140002d22
mov eax, dword [rbp - 4]
sub eax, 1
shl eax, 2
mov dword [rbp - 8], eax
mov eax, dword [rbp - 8]
mov rdx, 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 0x140002bf8
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, [0x1400c23a0]
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 0x140002c5f
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 eax, dword [rbp - 8]
mov rdx, qword [rbp + 0x10]
add rax, rdx
movzx r8d, byte [rax]
movzx ecx, byte [rbp - 0x14]
mov eax, dword [rbp - 0x10]
mov rdx, qword [rbp + 0x10]
add rdx, rax
mov eax, r8d
xor eax, ecx
mov byte [rdx], al
mov eax, dword [rbp - 8]
add eax, 1
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx r8d, byte [rax]
movzx ecx, byte [rbp - 0x13]
mov eax, dword [rbp - 0x10]
add eax, 1
mov edx, eax
mov rax, qword [rbp + 0x10]
add rdx, rax
mov eax, r8d
xor eax, ecx
mov byte [rdx], al
mov eax, dword [rbp - 8]
add eax, 2
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx r8d, byte [rax]
movzx ecx, byte [rbp - 0x12]
mov eax, dword [rbp - 0x10]
add eax, 2
mov edx, eax
mov rax, qword [rbp + 0x10]
add rdx, rax
mov eax, r8d
xor eax, ecx
mov byte [rdx], al
mov eax, dword [rbp - 8]
add eax, 3
mov edx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
movzx r8d, byte [rax]
movzx ecx, byte [rbp - 0x11]
mov eax, dword [rbp - 0x10]
add eax, 3
mov edx, eax
mov rax, qword [rbp + 0x10]
add rdx, rax
mov eax, r8d
xor eax, ecx
mov byte [rdx], al
add dword [rbp - 4], 1
cmp dword [rbp - 4], 0x3b
jbe 0x140002af4
nop
nop
add rsp, 0x20
pop rbp
ret