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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x50
mov qword [rsp + 0x30], rdx
mov edx, dword [r8 + 0x1e0]
mov esi, dword [rcx]
bswap esi
xor esi, dword [r8 + 0xf0]
mov r15d, esi
mov ebx, dword [rcx + 4]
bswap ebx
xor ebx, dword [r8 + 0xf4]
mov eax, dword [rcx + 8]
bswap eax
xor eax, dword [r8 + 0xf8]
mov ecx, dword [rcx + 0xc]
bswap ecx
xor ecx, dword [r8 + 0xfc]
mov qword [rsp + 0x28], r8
lea rbp, [r8 + 0xf0]
mov qword [rsp + 0x10], rbp
sar edx, 1
mov qword [rsp + 0x18], rdx
lea edx, [rdx - 1]
shl rdx, 2
mov qword [rsp + 0x20], rdx
movzx edi, ah
movzx edx, al
mov qword [rsp + 8], rdx
mov r13d, eax
shr eax, 0x10
movzx eax, al
mov r14d, ecx
movzx edx, ch
mov r9, rdx
movzx edx, cl
mov qword [rsp], rdx
shr ecx, 0x18
lea r10, [0x18052d910]
mov esi, dword [r10 + rax*4]
lea rdx, [0x18052d510]
mov rbp, rdx
xor esi, dword [rdx + rcx*4]
mov eax, r15d
mov ecx, r15d
shr ecx, 0x18
shr r14d, 0x10
movzx r14d, r14b
movzx r15d, bl
mov r12d, ebx
mov edx, ebx
movzx ebx, bh
mov r11, rbx
mov ebx, dword [r10 + r14*4]
xor ebx, dword [rbp + rcx*4]
lea r8, [0x18052dd10]
xor ebx, dword [r8 + rdi*4]
shr r12d, 0x18
mov ecx, eax
shr ecx, 0x10
movzx ecx, cl
movzx edi, ah
movzx r14d, al
mov rax, rsi
mov esi, dword [r10 + rcx*4]
xor esi, dword [rbp + r12*4]
xor esi, dword [r8 + r9*4]
shr r13d, 0x18
shr edx, 0x10
movzx ecx, dl
mov ecx, dword [r10 + rcx*4]
xor ecx, dword [rbp + r13*4]
xor ecx, dword [r8 + rdi*4]
lea rdx, [0x18052e110]
xor ebx, dword [rdx + r15*4]
mov rdi, qword [rsp + 0x10]
xor ebx, dword [rdi + 0x10]
mov rbp, qword [rsp + 8]
xor esi, dword [rdx + rbp*4]
xor esi, dword [rdi + 0x14]
mov rbp, qword [rsp]
xor ecx, dword [rdx + rbp*4]
xor ecx, dword [rdi + 0x18]
xor eax, dword [r8 + r11*4]
xor eax, dword [rdx + r14*4]
xor eax, dword [rdi + 0x1c]
mov edx, ebx
shr edx, 0x18
mov r8d, edx
mov rdx, qword [rsp + 0x18]
dec edx
mov qword [rsp + 0x18], rdx
je 0x1800e9fe6
movzx edx, ch
mov qword [rsp + 8], rdx
movzx edx, cl
mov qword [rsp], rdx
mov r15d, ecx
shr ecx, 0x10
movzx ecx, cl
mov edx, eax
movzx edi, ah
mov qword [rsp + 0x40], rdi
mov r11, qword [rsp + 0x10]
movzx ebp, al
mov qword [rsp + 0x48], rbp
shr eax, 0x18
lea r9, [0x18052d910]
mov ecx, dword [r9 + rcx*4]
lea r10, [0x18052d510]
xor ecx, dword [r10 + rax*4]
mov r12d, r8d
shr edx, 0x10
movzx edx, dl
mov eax, esi
movzx r14d, al
mov ebp, esi
mov r13d, esi
movzx eax, ah
mov qword [rsp + 0x38], rax
mov esi, dword [r9 + rdx*4]
xor esi, dword [r10 + r12*4]
lea r8, [0x18052dd10]
mov rax, qword [rsp + 8]
xor esi, dword [r8 + rax*4]
shr ebp, 0x18
mov edx, ebx
shr edx, 0x10
movzx edx, dl
movzx edi, bh
movzx r12d, bl
mov ebx, dword [r9 + rdx*4]
xor ebx, dword [r10 + rbp*4]
mov rax, qword [rsp + 0x40]
xor ebx, dword [r8 + rax*4]
shr r15d, 0x18
shr r13d, 0x10
movzx eax, r13b
mov eax, dword [r9 + rax*4]
xor eax, dword [r10 + r15*4]
xor eax, dword [r8 + rdi*4]
mov rdx, qword [rsp + 0x38]
xor ecx, dword [r8 + rdx*4]
lea rdx, [0x18052e110]
xor esi, dword [rdx + r14*4]
xor esi, dword [r11 + 0x20]
mov r15d, esi
mov rbp, qword [rsp]
xor ebx, dword [rdx + rbp*4]
xor ebx, dword [r11 + 0x24]
mov rbp, qword [rsp + 0x48]
xor eax, dword [rdx + rbp*4]
xor eax, dword [r11 + 0x28]
xor ecx, dword [rdx + r12*4]
xor ecx, dword [r11 + 0x2c]
lea r11, [r11 + 0x20]
mov qword [rsp + 0x10], r11
jmp 0x1800e9dee
mov edx, r8d
lea rbp, str.RRRR_t_t_t_tjjjj
movzx edx, byte [rbp + rdx*4 + 3]
shl edx, 0x18
mov edi, eax
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rbp + rdi*4 + 2]
shl edi, 0x10
or edi, edx
movzx edx, ch
movzx edx, byte [rbp + rdx*4 + 1]
shl edx, 8
or edx, edi
mov r10d, esi
movzx edi, r10b
movzx edi, byte [rbp + rdi*4]
or edi, edx
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x20]
xor edi, dword [r8 + r9*8 + 0x110]
mov edx, edi
shr edx, 0x18
mov rsi, qword [rsp + 0x30]
mov byte [rsi], dl
mov edx, edi
shr edx, 0x10
mov byte [rsi + 1], dl
mov edx, edi
mov byte [rsi + 2], dh
mov byte [rsi + 3], dl
mov edx, r10d
shr edx, 0x18
movzx edx, byte [rbp + rdx*4 + 3]
shl edx, 0x18
mov edi, ebx
shr edi, 0x10
movzx edi, dil
movzx edi, byte [rbp + rdi*4 + 2]
shl edi, 0x10
or edi, edx
movzx edx, ah
movzx edx, byte [rbp + rdx*4 + 1]
shl edx, 8
or edx, edi
movzx edi, cl
movzx edi, byte [rbp + rdi*4]
or edi, edx
xor edi, dword [r8 + r9*8 + 0x114]
mov edx, edi
shr edx, 0x18
mov byte [rsi + 4], dl
mov edx, edi
shr edx, 0x10
mov byte [rsi + 5], dl
mov edx, edi
mov byte [rsi + 6], dh
mov byte [rsi + 7], dl
mov edx, ecx
shr edx, 0x18
movzx edx, byte [rbp + rdx*4 + 3]
shl edx, 0x18
mov edi, ebx
mov ebx, r10d
shr ebx, 0x10
movzx ebx, bl
movzx ebx, byte [rbp + rbx*4 + 2]
shl ebx, 0x10
or ebx, edx
mov edx, edi
movzx edx, dh
movzx edx, byte [rbp + rdx*4 + 1]
shl edx, 8
or edx, ebx
movzx ebx, al
movzx ebx, byte [rbp + rbx*4]
or ebx, edx
xor ebx, dword [r8 + r9*8 + 0x118]
mov edx, ebx
shr edx, 0x18
mov byte [rsi + 8], dl
mov edx, ebx
shr edx, 0x10
mov byte [rsi + 9], dl
mov byte [rsi + 0xa], bh
mov byte [rsi + 0xb], bl
shr eax, 0x18
movzx eax, byte [rbp + rax*4 + 3]
shr ecx, 0x10
movzx ecx, cl
mov edx, r10d
movzx edx, dh
shl eax, 0x18
movzx ecx, byte [rbp + rcx*4 + 2]
shl ecx, 0x10
or ecx, eax
movzx edx, byte [rbp + rdx*4 + 1]
shl edx, 8
or edx, ecx
movzx eax, dil
movzx eax, byte [rbp + rax*4]
or eax, edx
xor eax, dword [r8 + r9*8 + 0x11c]
mov ecx, eax
shr ecx, 0x18
mov byte [rsi + 0xc], cl
mov ecx, eax
shr ecx, 0x10
mov byte [rsi + 0xd], cl
mov byte [rsi + 0xe], ah
mov byte [rsi + 0xf], al
xor eax, eax
add rsp, 0x50
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret