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

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4d7402
sub rsp, 0x40
mov qword [rsp + 0x38], rbp
lea rbp, [rsp + 0x38]
mov qword [rsp + 0x78], r9
mov qword [rsp + 0x88], r11
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x60], rdi
mov rcx, r11
mov rax, r9
mov ebx, 4
call fcn.004d3800
mov dword [rsp + 0x2c], eax
mov rdx, qword [rsp + 0x88]
lea rcx, [rdx - 4]
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and ecx, 4
mov rdi, qword [rsp + 0x78]
lea r8, [rdi + rcx]
mov ebx, 4
mov rcx, rsi
mov rax, r8
call fcn.004d3800
mov dword [rsp + 0x28], eax
mov rdx, qword [rsp + 0x88]
lea rcx, [rdx - 8]
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and ecx, 8
mov rdi, qword [rsp + 0x78]
lea r8, [rdi + rcx]
mov ebx, 4
mov rcx, rsi
mov rax, r8
call fcn.004d3800
mov dword [rsp + 0x24], eax
mov rdx, qword [rsp + 0x88]
lea rcx, [rdx - 0xc]
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and ecx, 0xc
mov rsi, qword [rsp + 0x78]
add rsi, rcx
mov ebx, 4
mov rcx, rdx
mov rax, rsi
call fcn.004d3800
mov edx, dword [rsp + 0x2c]
mov rsi, qword [rsp + 0x48]
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]
shr r9, 2
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 0x4d720e
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x2c], edx
inc rcx
mov r15d, edx
shr edx, 0x18
mov ebx, r15d
movzx r15d, dl
lea rdx, [0x007b0d20]
mov r15d, dword [rdx + r15*4]
xor r15d, dword [rsi + r13*4]
mov r10d, eax
shr eax, 0x10
mov r11d, r15d
movzx r15d, al
lea rax, [0x007b1120]
xor r11d, dword [rax + r15*4]
mov r15d, r8d
shr r8d, 8
mov r12d, r15d
movzx r15d, r8b
lea r8, [0x007b1520]
xor r11d, dword [r8 + r15*4]
movzx r15d, dil
lea r9, [0x007b1920]
xor r11d, dword [r9 + r15*4]
shr edi, 0x18
movzx r15d, dil
mov edi, dword [rdx + r15*4]
xor edi, dword [rsi + r13*4 + 4]
shr ebx, 0x10
movzx r15d, bl
xor edi, dword [rax + r15*4]
mov r15d, r10d
shr r10d, 8
mov ebx, r15d
movzx r15d, r10b
xor edi, dword [r8 + r15*4]
movzx r15d, r12b
xor edi, dword [r9 + r15*4]
mov r15d, r12d
shr r12d, 0x18
mov r10d, r15d
movzx r15d, r12b
mov r15d, dword [rdx + r15*4]
xor r15d, dword [rsi + r13*4 + 8]
mov r12d, r15d
mov r15d, dword [rsp + 0x28]
shr r15d, 0x10
movzx r15d, r15b
xor r12d, dword [rax + r15*4]
mov r15d, dword [rsp + 0x2c]
shr r15d, 8
movzx r15d, r15b
xor r12d, dword [r8 + r15*4]
movzx r15d, bl
xor r12d, dword [r9 + r15*4]
shr ebx, 0x18
movzx r15d, bl
mov r15d, dword [rdx + r15*4]
xor r15d, dword [rsi + r13*4 + 0xc]
shr r10d, 0x10
mov ebx, r15d
movzx r15d, r10b
xor ebx, dword [rax + r15*4]
mov r15d, dword [rsp + 0x28]
shr r15d, 8
movzx r15d, r15b
xor ebx, dword [r8 + r15*4]
mov r15d, dword [rsp + 0x2c]
movzx r15d, r15b
xor ebx, dword [r9 + r15*4]
add r13, 4
mov r15, qword [rsp + 0x30]
mov r9, r15
mov edx, r11d
mov eax, ebx
mov r8d, r12d
mov ebx, edx
mov r10d, eax
mov r11d, r8d
mov r12d, edi
cmp rcx, r9
jl 0x4d70d2
mov edx, ebx
shr ebx, 0x18
lea r8, [0x007aa300]
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, r12d
shr r12d, 0x18
movzx r12d, byte [r12 + r8]
shl r12d, 0x18
mov r15d, edx
shr edx, 0x10
movzx edx, dl
movzx edx, byte [rdx + r8]
shl edx, 0x10
or r12d, edx
mov edx, r9d
shr r9d, 8
movzx r9d, r9b
movzx r9d, byte [r9 + r8]
shl r9d, 8
or r9d, r12d
movzx r12d, r10b
movzx r12d, byte [r12 + r8]
or r12d, r9d
mov r9d, r10d
shr r10d, 0x18
movzx r10d, byte [r10 + r8]
shl r10d, 0x18
mov eax, r11d
shr r11d, 0x10
movzx r11d, r11b
movzx r11d, byte [r11 + r8]
shl r11d, 0x10
or r10d, r11d
mov r11d, r15d
shr r15d, 8
movzx r15d, r15b
movzx r15d, byte [r15 + r8]
shl r15d, 8
or r10d, r15d
movzx r15d, dl
movzx r15d, byte [r15 + r8]
or r15d, r10d
shr edx, 0x18
movzx edx, byte [r8 + rdx]
shl edx, 0x18
shr r9d, 0x10
movzx r9d, r9b
movzx r9d, byte [r9 + r8]
shl r9d, 0x10
or r9d, edx
shr eax, 8
movzx edx, al
movzx edx, byte [rdx + r8]
shl edx, 8
or edx, r9d
movzx r9d, r11b
movzx r8d, byte [r9 + r8]
or r8d, edx
xor edi, dword [rsi + r13*4]
xor r12d, dword [rsi + r13*4 + 4]
mov dword [rsp + 0x28], r12d
xor r15d, dword [rsi + r13*4 + 8]
mov dword [rsp + 0x24], r15d
xor r8d, dword [rsi + r13*4 + 0xc]
mov dword [rsp + 0x20], r8d
mov rax, qword [rsp + 0x60]
mov ebx, 4
mov rcx, qword [rsp + 0x70]
call fcn.004d3820
mov rdx, qword [rsp + 0x70]
lea rcx, [rdx - 4]
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and ecx, 4
mov r8, qword [rsp + 0x60]
lea rax, [r8 + rcx]
mov ebx, 4
mov rcx, rsi
mov edi, dword [rsp + 0x28]
call fcn.004d3820
mov rdx, qword [rsp + 0x70]
lea rcx, [rdx - 8]
mov rsi, rcx
neg rcx
sar rcx, 0x3f
and ecx, 8
mov r8, qword [rsp + 0x60]
lea rax, [r8 + rcx]
mov ebx, 4
mov rcx, rsi
mov edi, dword [rsp + 0x24]
call fcn.004d3820
mov rdx, qword [rsp + 0x70]
lea rcx, [rdx - 0xc]
mov rdx, rcx
neg rcx
sar rcx, 0x3f
and ecx, 0xc
mov rsi, qword [rsp + 0x60]
lea rax, [rsi + rcx]
mov ebx, 4
mov rcx, rdx
mov edi, dword [rsp + 0x20]
call fcn.004d3820
mov rbp, qword [rsp + 0x38]
add rsp, 0x40
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
call fcn.0045f280
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.004d6fa0