Function at 0x4ffe80
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 0x500296
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 0x50028f
bswap ebx
mov r8, qword [rsp + 0x30]
xor ebx, dword [r8]
cmp rcx, 1
jbe 0x500285
bswap esi
xor esi, dword [r8 + 4]
nop dword [rax]
cmp rcx, 2
jbe 0x50027b
bswap edi
xor edi, dword [r8 + 8]
cmp rcx, 3
jbe 0x500271
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 0x4fff84
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, [0x00845240]
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 0x500091
cmp r9, r14
jbe 0x500266
mov dword [rsp + 0x14], ebx
shr ebx, 0x18
movzx ebx, bl
lea r12, [0x00844e40]
mov ebx, dword [r12 + rbx*4]
xor ebx, dword [r8 + r14*4]
mov r13d, esi
shr esi, 0x10
movzx esi, sil
lea r15, [0x00845240]
xor ebx, dword [r15 + rsi*4]
mov esi, edi
shr edi, 8
movzx edi, dil
mov rcx, r10
lea r10, [0x00845640]
xor ebx, dword [r10 + rdi*4]
movzx edi, dl
lea r11, [0x00845a40]
xor ebx, dword [r11 + rdi*4]
lea rdi, [r14 + 1]
cmp r9, rdi
jbe 0x50025b
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 r9, rbx
jbe 0x500250
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 r9, rdx
ja 0x4fff22
jmp 0x500245
mov edx, ecx
shr ecx, 0x18
lea rbx, str.cw
movzx esi, byte [rcx + rbx]
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 r12d, edx
movzx edx, sil
movzx edx, byte [rdx + rbx]
or edx, r12d
shr r15d, 0x18
movzx r12d, byte [rbx + r15]
shl r12d, 0x18
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or r12d, r10d
shr esi, 8
movzx esi, sil
movzx esi, byte [rsi + rbx]
shl esi, 8
or esi, r12d
movzx edi, dil
movzx ebx, byte [rdi + rbx]
or ebx, esi
cmp r9, r14
jbe 0x500235
xor r11d, dword [r8 + r14*4]
lea rax, [r14 + 1]
cmp r9, rax
jbe 0x50022d
xor r13d, dword [r8 + r14*4 + 4]
lea rax, [r14 + 2]
cmp r9, rax
jbe 0x500225
xor edx, dword [r8 + r14*4 + 8]
lea rax, [r14 + 3]
cmp r9, rax
jbe 0x50021c
xor ebx, dword [r8 + r14*4 + 0xc]
mov rcx, qword [rsp + 0x50]
cmp rcx, 0xf
jbe 0x500212
nop
bswap r11d
mov rax, qword [rsp + 0x48]
mov dword [rax], r11d
nop
bswap r13d
mov dword [rax + 4], r13d
nop
bswap edx
mov dword [rax + 8], edx
bswap ebx
mov dword [rax + 0xc], ebx
mov rbp, qword [rsp + 0x20]
add rsp, 0x28
ret
mov eax, 0xf
call fcn.0046ca20
mov rcx, r9
nop
call fcn.0046ca20
mov rcx, r9
call fcn.0046ca20
mov rcx, r9
call fcn.0046ca20
mov rax, r14
mov rcx, r9
nop dword [rax + rax]
call fcn.0046ca20
mov rax, rdx
mov rcx, r9
call fcn.0046ca20
mov rax, rbx
mov rcx, r9
call fcn.0046ca20
mov rax, rdi
mov rcx, r9
call fcn.0046ca20
mov rax, r14
mov rcx, r9
call fcn.0046ca20
mov eax, 3
call fcn.0046ca20
mov eax, 2
call fcn.0046ca20
mov eax, 1
call fcn.0046ca20
xor eax, eax
call fcn.0046ca20
mov eax, 0xf
nop dword [rax + rax]
call fcn.0046ca20
nop
int3