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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
lea rax, [0x006bdd20]
mov rsi, rcx
mov rbx, rdx
test rdx, rdx
je 0x414f4a
movzx edx, byte [rdx]
mov rcx, rdx
and edx, 0xf0
and ecx, 0xf
add rdx, rax
movzx edx, byte [rdx + rcx]
mov byte [rbx], dl
movzx edx, byte [rbx + 1]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r9d, byte [rdx + rcx]
movzx edx, byte [rbx + 2]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r10d, byte [rdx + rcx]
movzx edx, byte [rbx + 3]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx edi, byte [rdx + rcx]
movzx edx, byte [rbx + 4]
mov rcx, rdx
and edx, 0xf0
and ecx, 0xf
add rdx, rax
movzx edx, byte [rdx + rcx]
mov byte [rbx + 4], dl
movzx edx, byte [rbx + 5]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r14d, byte [rdx + rcx]
movzx edx, byte [rbx + 6]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r8d, byte [rdx + rcx]
movzx edx, byte [rbx + 7]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r15d, byte [rdx + rcx]
movzx edx, byte [rbx + 8]
mov rcx, rdx
and edx, 0xf0
and ecx, 0xf
add rdx, rax
movzx edx, byte [rdx + rcx]
mov byte [rbx + 8], dl
movzx edx, byte [rbx + 9]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r12d, byte [rdx + rcx]
movzx edx, byte [rbx + 0xa]
mov rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx r13d, byte [rdx + rcx]
movzx edx, byte [rbx + 0xb]
mov rcx, rdx
and edx, 0xf0
and ecx, 0xf
add rdx, rax
movzx ecx, byte [rdx + rcx]
movzx edx, byte [rbx + 0xc]
mov r11, rdx
and edx, 0xf0
mov byte [rsp + 0x2f], cl
and r11d, 0xf
add rdx, rax
movzx edx, byte [rdx + r11]
mov byte [rbx + 0xc], dl
movzx edx, byte [rbx + 0xd]
mov r11, rdx
and edx, 0xf0
add rdx, rax
and r11d, 0xf
movzx r11d, byte [rdx + r11]
movzx edx, byte [rbx + 0xe]
mov rbp, rdx
and edx, 0xf0
add rdx, rax
and ebp, 0xf
movzx ebp, byte [rdx + rbp]
movzx edx, byte [rbx + 0xf]
mov byte [rbx + 9], r11b
mov byte [rbx + 0xa], r10b
mov byte [rbx + 0xd], r9b
mov byte [rbx + 0xe], r8b
mov byte [rbx + 0xb], r15b
mov byte [rbx + 1], r14b
mov byte [rbx + 2], r13b
mov byte [rbx + 5], r12b
mov rcx, rdx
and edx, 0xf0
mov byte [rbx + 6], bpl
mov byte [rbx + 7], dil
add rdx, rax
and ecx, 0xf
movzx eax, byte [rdx + rcx]
mov rcx, rbx
mov byte [rbx + 3], al
movzx eax, byte [rsp + 0x2f]
mov byte [rbx + 0xf], al
call fcn.00414e00
lea rcx, [rbx + 4]
call fcn.00414e00
lea rcx, [rbx + 8]
call fcn.00414e00
lea rcx, [rbx + 0xc]
call fcn.00414e00
lea rdx, [rsi + 1]
mov rax, rbx
sub rax, rdx
cmp rax, 0xe
jbe 0x415140
vmovdqu xmm0, xmmword [rsi]
vpxor xmm0, xmm0, xmmword [rbx]
vmovdqu xmmword [rbx], xmm0
xor eax, eax
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movzx edx, byte [rsi]
movzx eax, byte [rbx]
xor eax, edx
mov byte [rbx], al
movzx eax, byte [rbx + 1]
movzx edx, byte [rsi + 1]
xor eax, edx
mov byte [rbx + 1], al
movzx eax, byte [rbx + 2]
movzx edx, byte [rsi + 2]
xor eax, edx
mov byte [rbx + 2], al
movzx eax, byte [rbx + 3]
movzx edx, byte [rsi + 3]
xor eax, edx
mov byte [rbx + 3], al
movzx eax, byte [rbx + 4]
movzx edx, byte [rsi + 4]
xor eax, edx
mov byte [rbx + 4], al
movzx eax, byte [rbx + 5]
movzx edx, byte [rsi + 5]
xor eax, edx
mov byte [rbx + 5], al
movzx eax, byte [rbx + 6]
movzx edx, byte [rsi + 6]
xor eax, edx
mov byte [rbx + 6], al
movzx eax, byte [rbx + 7]
movzx edx, byte [rsi + 7]
xor eax, edx
mov byte [rbx + 7], al
movzx eax, byte [rbx + 8]
movzx edx, byte [rsi + 8]
xor eax, edx
mov byte [rbx + 8], al
movzx eax, byte [rbx + 9]
movzx edx, byte [rsi + 9]
xor eax, edx
mov byte [rbx + 9], al
movzx eax, byte [rbx + 0xa]
movzx edx, byte [rsi + 0xa]
xor eax, edx
mov byte [rbx + 0xa], al
movzx edx, byte [rsi + 0xb]
movzx eax, byte [rbx + 0xb]
xor eax, edx
mov byte [rbx + 0xb], al
movzx eax, byte [rbx + 0xc]
movzx edx, byte [rsi + 0xc]
xor eax, edx
mov byte [rbx + 0xc], al
movzx eax, byte [rbx + 0xd]
movzx edx, byte [rsi + 0xd]
xor eax, edx
mov byte [rbx + 0xd], al
movzx eax, byte [rbx + 0xe]
movzx edx, byte [rsi + 0xe]
xor eax, edx
movzx edx, byte [rbx + 0xf]
mov byte [rbx + 0xe], al
movzx eax, byte [rsi + 0xf]
xor eax, edx
mov byte [rbx + 0xf], al
jmp 0x41512d