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

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x60], r9
mov qword [rsp + 0x58], r8
mov qword [rsp + 0x48], rdi
lea rcx, [r11 - 4]
neg rcx
sar rcx, 0x3f
and ecx, 4
lea rdx, [r11 - 8]
neg rdx
sar rdx, 0x3f
and edx, 8
lea rsi, [r11 - 0xc]
neg rsi
sar rsi, 0x3f
and esi, 0xc
shr rbx, 2
mov r10d, dword [r9]
bswap r10d
mov ecx, dword [r9 + rcx]
bswap ecx
mov edx, dword [r9 + rdx]
bswap edx
mov esi, dword [r9 + rsi]
bswap esi
nop
xor r10d, dword [rax]
xor ecx, dword [rax + 4]
xor edx, dword [rax + 8]
xor esi, dword [rax + 0xc]
add rbx, 0xfffffffffffffffe
xor r9d, r9d
xor r11d, r11d
xor r12d, r12d
xor r13d, r13d
mov r15d, 4
jmp 0x4f2f83
mov dword [rsp + 0xc], esi
mov dword [rsp + 4], edx
mov dword [rsp + 0x10], ecx
mov r9d, r10d
shr r10d, 0x18
movzx r10d, r10b
lea r11, [0x008b1180]
mov r10d, dword [r11 + r10*4]
xor r10d, dword [rax + r15*4]
mov r12d, ecx
shr ecx, 0x10
movzx ecx, cl
lea r13, [0x008b1580]
xor r10d, dword [r13 + rcx*4]
mov ecx, edx
shr edx, 8
movzx edx, dl
lea rdi, [0x008b1980]
xor r10d, dword [rdi + rdx*4]
movzx edx, sil
shr r12d, 0x18
movzx r12d, r12b
mov r12d, dword [r11 + r12*4]
xor r12d, dword [rax + r15*4 + 4]
shr ecx, 0x10
movzx ecx, cl
xor r12d, dword [r13 + rcx*4]
mov ecx, esi
shr esi, 8
movzx esi, sil
xor r12d, dword [rdi + rsi*4]
movzx esi, r9b
mov r8d, dword [rsp + 4]
shr r8d, 0x18
movzx r8d, r8b
mov r8d, dword [r11 + r8*4]
xor r8d, dword [rax + r15*4 + 8]
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [r13 + rcx*4]
mov ecx, r9d
shr r9d, 8
movzx r9d, r9b
xor r8d, dword [rdi + r9*4]
mov dword [rsp + 0x14], r8d
mov r9d, dword [rsp + 0x10]
movzx r8d, r9b
mov qword [rsp + 0x18], r8
mov r8d, dword [rsp + 0xc]
shr r8d, 0x18
movzx r8d, r8b
mov r8d, dword [r11 + r8*4]
xor r8d, dword [rax + r15*4 + 0xc]
shr ecx, 0x10
movzx ecx, cl
xor r8d, dword [r13 + rcx*4]
shr r9d, 8
movzx ecx, r9b
xor r8d, dword [rdi + rcx*4]
mov ecx, dword [rsp + 4]
movzx ecx, cl
dec rbx
lea r9, [0x008b1d80]
xor r10d, dword [r9 + rdx*4]
xor r12d, dword [r9 + rsi*4]
mov edx, dword [rsp + 0x14]
mov rsi, qword [rsp + 0x18]
xor edx, dword [r9 + rsi*4]
xor r8d, dword [r9 + rcx*4]
add r15, 4
mov rdi, qword [rsp + 0x48]
mov ecx, r12d
mov esi, r8d
mov r9d, r10d
mov r11d, ecx
mov r12d, edx
mov r13d, esi
mov r8, qword [rsp + 0x58]
test rbx, rbx
jg 0x4f2e4a
mov dword [rsp + 8], r13d
lea rcx, [r8 - 0xc]
neg rcx
sar rcx, 0x3f
and ecx, 0xc
mov edx, r9d
shr r9d, 0x18
lea rbx, str.cw
movzx esi, byte [rbx + r9]
shl esi, 0x18
mov r9d, r11d
shr r11d, 0x10
movzx r10d, r11b
movzx r10d, byte [r10 + rbx]
shl r10d, 0x10
or r10d, esi
mov esi, r12d
shr r12d, 8
movzx r11d, r12b
movzx r11d, byte [r11 + rbx]
shl r11d, 8
or r10d, r11d
movzx r11d, r13b
movzx r11d, byte [r11 + rbx]
or r11d, r10d
mov r10d, r9d
shr r9d, 0x18
movzx r9d, byte [rbx + r9]
shl r9d, 0x18
mov r12d, esi
shr esi, 0x10
movzx esi, sil
movzx esi, byte [rsi + rbx]
shl esi, 0x10
or esi, r9d
mov r9d, r13d
shr r13d, 8
movzx r13d, r13b
movzx r13d, byte [r13 + rbx]
shl r13d, 8
or esi, r13d
movzx r13d, dl
movzx r13d, byte [r13 + rbx]
or r13d, esi
mov esi, r12d
shr r12d, 0x18
movzx r12d, byte [rbx + r12]
shl r12d, 0x18
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + rbx]
shl r9d, 0x10
or r9d, r12d
mov r12d, edx
shr edx, 8
movzx edx, dl
movzx edx, byte [rdx + rbx]
shl edx, 8
or edx, r9d
movzx r9d, r10b
movzx r9d, byte [r9 + rbx]
or r9d, edx
mov edx, dword [rsp + 8]
shr edx, 0x18
movzx edx, byte [rdx + rbx]
shl edx, 0x18
shr r12d, 0x10
movzx r12d, r12b
movzx r12d, byte [r12 + rbx]
shl r12d, 0x10
or edx, r12d
shr r10d, 8
movzx r10d, r10b
movzx r10d, byte [r10 + rbx]
shl r10d, 8
or edx, r10d
movzx esi, sil
movzx ebx, byte [rsi + rbx]
or ebx, edx
xor r11d, dword [rax + r15*4]
xor r13d, dword [rax + r15*4 + 4]
xor r9d, dword [rax + r15*4 + 8]
xor ebx, dword [rax + r15*4 + 0xc]
lea rax, [r8 - 4]
neg rax
sar rax, 0x3f
and eax, 4
lea rdx, [r8 - 8]
neg rdx
sar rdx, 0x3f
and edx, 8
bswap r11d
bswap r13d
bswap r9d
bswap ebx
nop
mov dword [rdi], r11d
mov dword [rdi + rax], r13d
mov dword [rdi + rdx], r9d
mov dword [rdi + rcx], ebx
add rsp, 0x20
pop rbp
ret