Function at 0x415c70
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, [0x0073cf00]
mov rsi, rcx
mov rbx, rdx
test rdx, rdx
je 0x415caa
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 byte [rsp + 0x2f], cl
mov r11, rdx
and edx, 0xf0
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 rcx, rdx
and edx, 0xf0
add rdx, rax
and ecx, 0xf
movzx eax, byte [rdx + rcx]
mov byte [rbx + 0xa], r10b
mov byte [rbx + 3], al
movzx eax, byte [rsp + 0x2f]
mov byte [rbx + 0xd], r9b
mov byte [rbx + 0xf], al
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 byte [rbx + 6], bpl
mov byte [rbx + 7], dil
mov rcx, rbx
call fcn.00415b90
lea rcx, [rbx + 4]
call fcn.00415b90
lea rcx, [rbx + 8]
call fcn.00415b90
lea rcx, [rbx + 0xc]
call fcn.00415b90
lea rdx, [rsi + 1]
mov rax, rbx
sub rax, rdx
cmp rax, 0xe
jbe 0x415ea8
vmovdqu8 xmm0, xmmword [rsi]
vpxor xmm0, xmm0, xmmword [rbx]
vmovdqu8 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 eax, byte [rsi]
xor byte [rbx], al
movzx eax, byte [rsi + 1]
xor byte [rbx + 1], al
movzx eax, byte [rsi + 2]
xor byte [rbx + 2], al
movzx eax, byte [rsi + 3]
xor byte [rbx + 3], al
movzx eax, byte [rsi + 4]
xor byte [rbx + 4], al
movzx eax, byte [rsi + 5]
xor byte [rbx + 5], al
movzx eax, byte [rsi + 6]
xor byte [rbx + 6], al
movzx eax, byte [rsi + 7]
xor byte [rbx + 7], al
movzx eax, byte [rsi + 8]
xor byte [rbx + 8], al
movzx eax, byte [rsi + 9]
xor byte [rbx + 9], al
movzx eax, byte [rsi + 0xa]
xor byte [rbx + 0xa], al
movzx eax, byte [rsi + 0xb]
xor byte [rbx + 0xb], al
movzx eax, byte [rsi + 0xc]
xor byte [rbx + 0xc], al
movzx eax, byte [rsi + 0xd]
xor byte [rbx + 0xd], al
movzx eax, byte [rsi + 0xe]
xor byte [rbx + 0xe], al
movzx eax, byte [rsi + 0xf]
xor byte [rbx + 0xf], al
jmp 0x415e91