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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x49bb4e
push rbp
mov rbp, rsp
sub rsp, 0x68
mov qword [rsp + 0xa8], r9
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xa0], r8
mov qword [rsp + 0x90], rdi
shr rbx, 2
mov qword [rsp + 0x50], rbx
lea rdx, [r11 - 4]
mov qword [rsp + 0x48], rdx
neg rdx
sar rdx, 0x3f
and edx, 4
add rdx, r9
mov qword [rsp + 0x60], rdx
lea r10, [r11 - 8]
mov qword [rsp + 0x40], r10
neg r10
sar r10, 0x3f
and r10d, 8
add r10, r9
mov qword [rsp + 0x58], r10
lea r13, [r11 - 0xc]
mov qword [rsp + 0x38], r13
mov rcx, r11
mov rax, r9
mov ebx, 4
call fcn.0047e540
mov dword [rsp + 0x2c], eax
mov ebx, 4
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x60]
nop dword [rax + rax]
call fcn.0047e540
mov dword [rsp + 0x28], eax
mov ebx, 4
mov rcx, qword [rsp + 0x40]
mov rax, qword [rsp + 0x58]
call fcn.0047e540
mov dword [rsp + 0x24], eax
mov rcx, qword [rsp + 0x38]
mov rdx, rcx
neg rdx
sar rdx, 0x3f
and edx, 0xc
mov rsi, qword [rsp + 0xa8]
add rdx, rsi
mov ebx, 4
mov rax, rdx
call fcn.0047e540
mov edx, dword [rsp + 0x2c]
mov rsi, qword [rsp + 0x78]
xor edx, dword [rsi]
mov edi, dword [rsp + 0x28]
xor edi, dword [rsi + 4]
mov r8d, dword [rsp + 0x24]
xor r8d, dword [rsi + 8]
xor eax, dword [rsi + 0xc]
mov r9, qword [rsp + 0x50]
add r9, 0xfffffffffffffffe
mov qword [rsp + 0x30], r9
xor ecx, ecx
xor ebx, ebx
xor r10d, r10d
xor r11d, r11d
xor r12d, r12d
mov r13d, 4
jmp 0x49b946
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x24], r8d
mov r15d, edx
shr edx, 0x18
movzx edx, dl
mov ebx, r15d
lea r15, [0x005731e0]
mov edx, dword [r15 + rdx*4]
xor edx, dword [rsi + r13*4]
mov r10d, edi
shr edi, 0x10
movzx edi, dil
lea r15, [0x005735e0]
xor edx, dword [r15 + rdi*4]
mov edi, r8d
shr r8d, 8
movzx r8d, r8b
lea r15, [0x005739e0]
xor edx, dword [r15 + r8*4]
movzx r8d, al
mov r11d, r10d
shr r10d, 0x18
movzx r10d, r10b
lea r15, [0x005731e0]
mov r10d, dword [r15 + r10*4]
xor r10d, dword [rsi + r13*4 + 4]
mov r12d, edi
shr edi, 0x10
movzx edi, dil
lea r15, [0x005735e0]
xor r10d, dword [r15 + rdi*4]
mov edi, eax
shr eax, 8
movzx eax, al
lea r15, [0x005739e0]
xor r10d, dword [r15 + rax*4]
movzx eax, bl
shr r12d, 0x18
movzx r12d, r12b
lea r15, [0x005731e0]
mov r12d, dword [r15 + r12*4]
xor r12d, dword [rsi + r13*4 + 8]
shr edi, 0x10
movzx edi, dil
lea r15, [0x005735e0]
xor r12d, dword [r15 + rdi*4]
mov edi, ebx
shr ebx, 8
movzx ebx, bl
lea r15, [0x005739e0]
xor r12d, dword [r15 + rbx*4]
movzx ebx, r11b
mov r15d, dword [rsp + 0x20]
shr r15d, 0x18
movzx r15d, r15b
lea r9, [0x005731e0]
mov r15d, dword [r9 + r15*4]
xor r15d, dword [rsi + r13*4 + 0xc]
shr edi, 0x10
movzx edi, dil
lea rsi, [0x005735e0]
xor r15d, dword [rsi + rdi*4]
shr r11d, 8
movzx edi, r11b
lea r11, [0x005739e0]
xor r15d, dword [r11 + rdi*4]
mov edi, r15d
mov r15d, dword [rsp + 0x24]
movzx r15d, r15b
mov qword [rsp + 0x50], r15
inc rcx
lea r15, [0x00573de0]
xor edx, dword [r15 + r8*4]
xor r10d, dword [r15 + rax*4]
xor r12d, dword [r15 + rbx*4]
mov r15, qword [rsp + 0x50]
lea rax, [0x00573de0]
xor edi, dword [rax + r15*4]
add r13, 4
mov r15, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x78]
mov rsi, rbx
mov r9, r15
mov r8d, r12d
mov eax, edi
mov ebx, edx
mov r11d, r8d
mov r12d, eax
mov edi, r10d
cmp rcx, r9
jl 0x49b7cf
mov edx, ebx
shr ebx, 0x18
lea r8, str.cw
movzx edi, byte [r8 + rbx]
shl edi, 0x18
mov r9d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or edi, r10d
mov r10d, r11d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + r8]
shl r11d, 8
or edi, r11d
movzx r11d, r12b
movzx r11d, byte [r11 + r8]
or edi, r11d
mov r11d, r9d
shr r9d, 0x18
movzx r9d, byte [r9 + r8]
shl r9d, 0x18
mov r15d, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or r9d, r10d
mov r10d, r12d
shr r12d, 8
movzx r12d, r12b
movzx r12d, byte [r12 + r8]
shl r12d, 8
or r12d, r9d
movzx r9d, dl
movzx r9d, byte [r9 + r8]
or r9d, r12d
mov r12d, r15d
shr r15d, 0x18
movzx r15d, byte [r15 + r8]
shl r15d, 0x18
mov eax, r10d
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or r15d, r10d
mov r10d, edx
shr edx, 8
movzx edx, dl
movzx edx, byte [rdx + r8]
shl edx, 8
or r15d, edx
movzx edx, r11b
movzx edx, byte [rdx + r8]
or edx, r15d
shr eax, 0x18
movzx r15d, byte [r8 + rax]
shl r15d, 0x18
shr r10d, 0x10
movzx r10d, r10b
movzx r10d, byte [r10 + r8]
shl r10d, 0x10
or r10d, r15d
shr r11d, 8
movzx r11d, r11b
movzx r11d, byte [r11 + r8]
shl r11d, 8
or r11d, r10d
movzx r10d, r12b
movzx r8d, byte [r10 + r8]
or r8d, r11d
xor edi, dword [rsi + r13*4]
xor r9d, dword [rsi + r13*4 + 4]
mov dword [rsp + 0x28], r9d
xor edx, dword [rsi + r13*4 + 8]
mov dword [rsp + 0x24], edx
xor r8d, dword [rsi + r13*4 + 0xc]
mov dword [rsp + 0x20], r8d
mov rax, qword [rsp + 0x90]
mov ebx, 4
mov rcx, qword [rsp + 0xa0]
call fcn.0047e560
mov rcx, qword [rsp + 0xa0]
lea rdx, [rcx - 4]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 4
mov r8, qword [rsp + 0x90]
lea rax, [r8 + rdx]
mov ebx, 4
mov edi, dword [rsp + 0x28]
mov rcx, rsi
call fcn.0047e560
mov rcx, qword [rsp + 0xa0]
lea rdx, [rcx - 8]
mov rsi, rdx
neg rdx
sar rdx, 0x3f
and edx, 8
mov r8, qword [rsp + 0x90]
lea rax, [r8 + rdx]
mov ebx, 4
mov edi, dword [rsp + 0x24]
mov rcx, rsi
call fcn.0047e560
mov rcx, qword [rsp + 0xa0]
add rcx, 0xfffffffffffffff4
mov rdx, rcx
neg rdx
sar rdx, 0x3f
and edx, 0xc
mov rsi, qword [rsp + 0x90]
lea rax, [rsi + rdx]
mov ebx, 4
mov edi, dword [rsp + 0x20]
call fcn.0047e560
add rsp, 0x68
pop rbp
ret
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x40], r10
mov qword [rsp + 0x48], r11
nop dword [rax + rax]
call fcn.00464800
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r10, qword [rsp + 0x40]
mov r11, qword [rsp + 0x48]
jmp fcn.0049b6a0