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

Disassembly:
sub rsp, 0x28
mov qword [rsp + 0x20], rbp
lea rbp, [rsp + 0x20]
mov rcx, qword [rsp + 0x68]
cmp rcx, 0xf
jbe 0x4ac9b6
nop
nop
nop
nop
mov rdx, qword [rsp + 0x60]
mov ebx, dword [rdx]
mov esi, dword [rdx + 4]
mov edi, dword [rdx + 8]
mov edx, dword [rdx + 0xc]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
jbe 0x4ac9af
bswap ebx
mov r8, qword [rsp + 0x30]
xor ebx, dword [r8]
cmp rcx, 1
jbe 0x4ac9a5
bswap esi
xor esi, dword [r8 + 4]
nop dword [rax]
cmp rcx, 2
jbe 0x4ac99b
bswap edi
xor edi, dword [r8 + 8]
cmp rcx, 3
jbe 0x4ac991
bswap edx
xor edx, dword [r8 + 0xc]
mov r9, rcx
shr rcx, 2
lea r10, [rcx - 2]
xor eax, eax
xor ecx, ecx
xor r11d, r11d
xor r12d, r12d
xor r13d, r13d
mov r14d, 4
nop
jmp 0x4ac6a4
inc rax
mov r15d, dword [rsp + 0x18]
shr r15d, 0x18
movzx r15d, r15b
mov edx, dword [r12 + r15*4]
xor edx, dword [r8 + r14*4 + 0xc]
shr esi, 0x10
movzx r15d, sil
lea rsi, [0x00575760]
xor edx, dword [rsi + r15*4]
shr edi, 8
movzx r15d, dil
xor edx, dword [r10 + r15*4]
mov r15d, dword [rsp + 0x1c]
movzx r15d, r15b
xor edx, dword [r11 + r15*4]
add r14, 4
mov r15d, dword [rsp + 0x10]
mov r10, rcx
mov esi, r13d
mov edi, ebx
mov ecx, r15d
mov r11d, esi
mov r12d, edi
mov r13d, edx
mov ebx, ecx
cmp r10, rax
jle 0x4ac7b1
cmp r9, r14
jbe 0x4ac986
mov dword [rsp + 0x14], ebx
shr ebx, 0x18
movzx ebx, bl
lea r12, [0x00575360]
mov ebx, dword [r12 + rbx*4]
xor ebx, dword [r8 + r14*4]
mov r13d, esi
shr esi, 0x10
movzx esi, sil
lea r15, [0x00575760]
xor ebx, dword [r15 + rsi*4]
mov esi, edi
shr edi, 8
movzx edi, dil
mov rcx, r10
lea r10, [0x00575b60]
xor ebx, dword [r10 + rdi*4]
movzx edi, dl
lea r11, [0x00575f60]
xor ebx, dword [r11 + rdi*4]
lea rdi, [r14 + 1]
cmp rdi, r9
jae 0x4ac97b
mov dword [rsp + 0x10], ebx
mov dword [rsp + 0x1c], esi
mov edi, r13d
shr r13d, 0x18
movzx r13d, r13b
mov r13d, dword [r12 + r13*4]
xor r13d, dword [r8 + r14*4 + 4]
shr esi, 0x10
movzx esi, sil
xor r13d, dword [r15 + rsi*4]
mov esi, edx
shr edx, 8
movzx edx, dl
xor r13d, dword [r10 + rdx*4]
mov edx, dword [rsp + 0x14]
movzx ebx, dl
xor r13d, dword [r11 + rbx*4]
lea rbx, [r14 + 2]
nop dword [rax + rax]
cmp rbx, r9
jae 0x4ac970
mov dword [rsp + 0x18], esi
mov ebx, dword [rsp + 0x1c]
shr ebx, 0x18
movzx ebx, bl
mov ebx, dword [r12 + rbx*4]
xor ebx, dword [r8 + r14*4 + 8]
shr esi, 0x10
movzx esi, sil
xor ebx, dword [r15 + rsi*4]
mov esi, edx
shr edx, 8
movzx edx, dl
xor ebx, dword [r10 + rdx*4]
movzx edx, dil
xor ebx, dword [r11 + rdx*4]
lea rdx, [r14 + 3]
cmp rdx, r9
jb 0x4ac642
jmp 0x4ac965
mov edx, ecx
shr ecx, 0x18
lea rbx, str.cw
movzx esi, byte [rbx + rcx]
shl esi, 0x18
mov edi, r11d
shr r11d, 0x10
movzx r10d, r11b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or esi, r10d
mov r10d, r12d
shr r12d, 8
movzx r11d, r12b
movzx r11d, byte [r11 + rbx]
shl r11d, 8
or esi, r11d
movzx r11d, r13b
movzx r11d, byte [r11 + rbx]
or r11d, esi
mov esi, edi
shr edi, 0x18
movzx edi, byte [rbx + rdi]
shl edi, 0x18
mov r12d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or edi, r10d
mov r10d, r13d
shr r13d, 8
movzx r13d, r13b
movzx r13d, byte [r13 + rbx]
shl r13d, 8
or edi, r13d
movzx r13d, dl
movzx r13d, byte [r13 + rbx]
or r13d, edi
mov edi, r12d
shr r12d, 0x18
movzx r12d, byte [rbx + r12]
shl r12d, 0x18
mov r15d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or r12d, r10d
mov r10d, edx
shr edx, 8
movzx edx, dl
movzx edx, byte [rdx + rbx]
shl edx, 8
or edx, r12d
movzx r12d, sil
movzx r12d, byte [r12 + rbx]
or r12d, edx
shr r15d, 0x18
movzx edx, byte [r15 + rbx]
shl edx, 0x18
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or edx, r10d
shr esi, 8
movzx esi, sil
movzx esi, byte [rsi + rbx]
shl esi, 8
or edx, esi
movzx esi, dil
movzx ebx, byte [rsi + rbx]
or ebx, edx
cmp r9, r14
jbe 0x4ac955
xor r11d, dword [r8 + r14*4]
lea rax, [r14 + 1]
cmp rax, r9
jae 0x4ac94d
xor r13d, dword [r8 + r14*4 + 4]
lea rax, [r14 + 2]
cmp rax, r9
jae 0x4ac945
xor r12d, dword [r8 + r14*4 + 8]
lea rax, [r14 + 3]
cmp rax, r9
jae 0x4ac93d
xor ebx, dword [r8 + r14*4 + 0xc]
mov rcx, qword [rsp + 0x50]
cmp rcx, 0xf
jbe 0x4ac933
nop
bswap r11d
mov rax, qword [rsp + 0x48]
mov dword [rax], r11d
nop
bswap r13d
mov dword [rax + 4], r13d
nop
bswap r12d
mov dword [rax + 8], r12d
bswap ebx
mov dword [rax + 0xc], ebx
mov rbp, qword [rsp + 0x20]
add rsp, 0x28
ret
mov eax, 0xf
call fcn.00465560
mov rcx, r9
call fcn.00465560
mov rcx, r9
call fcn.00465560
mov rcx, r9
call fcn.00465560
mov rax, r14
mov rcx, r9
nop dword [rax + rax]
call fcn.00465560
mov rax, rdx
mov rcx, r9
call fcn.00465560
mov rax, rbx
mov rcx, r9
call fcn.00465560
mov rax, rdi
mov rcx, r9
call fcn.00465560
mov rax, r14
mov rcx, r9
call fcn.00465560
mov eax, 3
call fcn.00465560
mov eax, 2
call fcn.00465560
mov eax, 1
call fcn.00465560
xor eax, eax
call fcn.00465560
mov eax, 0xf
nop dword [rax + rax]
call fcn.00465560
nop
int3