Function at 0x402dc0
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 0x402e7e
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], 3
jbe 0x402ddc
mov dword [rbp - 4], 4
jmp 0x403056
mov eax, dword [rbp - 4]
add eax, 0x3fffffff
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, 3
test eax, eax
jne 0x402f9a
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, 2
mov ecx, eax
lea rax, [0x00407c40]
movzx eax, byte [rcx + rax]
xor eax, edx
mov byte [rbp - 0x14], al
mov eax, dword [rbp - 4]
shl eax, 2
mov dword [rbp - 0x10], eax
mov eax, dword [rbp - 4]
add eax, 0x3ffffffc
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 rax, rdx
mov edx, r8d
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], 0x2b
jbe 0x402e94
nop
add rsp, 0x20
pop rbp
ret