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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x1800630c0]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r9, qword [rcx + 8]
mov rbx, rcx
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x38], r8
mov rdi, r8
mov eax, dword [r9 - 0x10]
xor eax, dword [rdx]
mov dword [rbp - 0x30], eax
mov eax, dword [r9 - 0xc]
xor eax, dword [rdx + 4]
mov dword [rbp - 0x2c], eax
mov eax, dword [r9 - 8]
xor eax, dword [rdx + 8]
mov dword [rbp - 0x28], eax
mov eax, dword [r9 - 4]
xor eax, dword [rdx + 0xc]
mov dword [rbp - 0x24], eax
call fcn.180012cb0
lea rcx, [rbp - 0x30]
call fcn.180012de0
mov rax, qword [rbx]
mov r13, qword [rbx + 8]
mov r8d, dword [rbp - 0x24]
sub r13, rax
mov r9d, dword [rbp - 0x28]
mov r10d, dword [rbp - 0x2c]
mov esi, dword [rbp - 0x30]
sar r13, 4
mov qword [rbp - 0x40], rax
sub r13, 2
je 0x18001190f
mov qword [rsp + 0x90], r12
mov r12, r13
shl r12, 4
mov qword [rsp + 0x98], r14
add r12, rax
mov qword [rsp + 0xa8], r15
xor esi, dword [r12]
lea rcx, [rbp - 0x30]
xor r10d, dword [r12 + 4]
xor r9d, dword [r12 + 8]
xor r8d, dword [r12 + 0xc]
mov dword [rbp - 0x30], esi
mov dword [rbp - 0x2c], r10d
mov dword [rbp - 0x28], r9d
mov dword [rbp - 0x24], r8d
call fcn.180012650
movaps xmm0, xmmword [rbp - 0x30]
mov r14d, 8
mov r11d, dword [rbp - 0x24]
mov ebx, dword [rbp - 0x28]
mov edi, dword [rbp - 0x2c]
mov esi, dword [rbp - 0x30]
lea r10d, [r14 - 4]
movdqa xmmword [rbp - 0x20], xmm0
nop dword [rax + rax]
mov ecx, r14d
lea r15d, [r10 - 1]
mov r8d, 0xff
mov eax, r15d
shl r8d, cl
mov r9d, r8d
not r9d
and eax, 0x80000003
jge 0x180011747
dec eax
or eax, 0xfffffffc
inc eax
movsxd rcx, eax
mov eax, esi
and eax, r9d
mov edx, dword [rbp + rcx*4 - 0x20]
and edx, r8d
mov esi, edx
or esi, eax
mov rax, r10
and eax, 3
mov ecx, dword [rbp + rax*4 - 0x20]
mov eax, edi
and eax, r9d
and ecx, r8d
mov edi, ecx
or edi, eax
lea eax, [r10 + 1]
and eax, 0x80000003
jge 0x180011782
dec eax
or eax, 0xfffffffc
inc eax
cdqe
mov ecx, dword [rbp + rax*4 - 0x20]
mov eax, ebx
and eax, r9d
and ecx, r8d
mov ebx, ecx
or ebx, eax
lea eax, [r10 + 2]
and eax, 0x80000003
jge 0x1800117a6
dec eax
or eax, 0xfffffffc
inc eax
cdqe
add r14d, 8
mov r10d, r15d
mov ecx, dword [rbp + rax*4 - 0x20]
mov eax, r11d
and ecx, r8d
and eax, r9d
mov r11d, ecx
or r11d, eax
cmp r15d, 1
jg 0x180011720
lea r15, [0x1800324e0]
mov edx, esi
mov eax, esi
sub r12, 0x10
shr rax, 0x10
movzx ecx, al
mov eax, edx
shr rax, 0x18
movzx esi, byte [rcx + r15]
movzx eax, byte [rax + r15]
shl eax, 8
or esi, eax
mov eax, edx
shr rax, 8
movzx ecx, al
shl esi, 8
movzx eax, byte [rcx + r15]
or esi, eax
movzx eax, dl
shl esi, 8
movzx ecx, byte [rax + r15]
or esi, ecx
mov eax, edi
shr rax, 0x10
movzx ecx, al
mov eax, edi
shr rax, 0x18
movzx r10d, byte [rcx + r15]
movzx eax, byte [rax + r15]
shl eax, 8
or r10d, eax
mov eax, edi
shr rax, 8
movzx ecx, al
shl r10d, 8
movzx eax, byte [rcx + r15]
or r10d, eax
movzx eax, dil
shl r10d, 8
movzx ecx, byte [rax + r15]
or r10d, ecx
mov eax, ebx
shr rax, 0x10
movzx ecx, al
mov eax, ebx
shr rax, 0x18
movzx r9d, byte [rcx + r15]
movzx eax, byte [rax + r15]
shl eax, 8
or r9d, eax
mov eax, ebx
shr rax, 8
movzx ecx, al
shl r9d, 8
movzx eax, byte [rcx + r15]
or r9d, eax
movzx eax, bl
shl r9d, 8
movzx ecx, byte [rax + r15]
or r9d, ecx
mov eax, r11d
shr rax, 0x10
movzx ecx, al
mov eax, r11d
shr rax, 0x18
movzx r8d, byte [rcx + r15]
movzx eax, byte [rax + r15]
shl eax, 8
or r8d, eax
mov eax, r11d
shr rax, 8
shl r8d, 8
movzx ecx, al
movzx eax, byte [rcx + r15]
or r8d, eax
movzx eax, r11b
shl r8d, 8
movzx ecx, byte [rax + r15]
or r8d, ecx
sub r13, 1
jne 0x1800116d0
mov r15, qword [rsp + 0xa8]
mov r14, qword [rsp + 0x98]
mov r12, qword [rsp + 0x90]
mov rax, qword [rbp - 0x40]
mov rdi, qword [rbp - 0x38]
xor esi, dword [rax]
xor r10d, dword [rax + 4]
xor r9d, dword [rax + 8]
xor r8d, dword [rax + 0xc]
mov dword [rdi + 0xc], r8d
mov dword [rdi], esi
mov dword [rdi + 4], r10d
mov dword [rdi + 8], r9d
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.1800162e0
add rsp, 0x60
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret