Function at 0x4eea70
Capabilities:
Encode data using xor
Encrypt data using aes
Reference aes constants

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
mov r14d, dword [rcx + 0x1e0]
mov eax, dword [r8]
lea rbp, [0x0076e1c0]
mov r10d, dword [r8 + 4]
mov ebx, dword [r8 + 8]
lea rdi, [0x0076e5c0]
mov r8d, dword [r8 + 0xc]
lea r12, [0x0076ddc0]
lea r13, [0x0076d9c0]
movsxd r9, r14d
mov r15, rcx
lea r11, [r9 + 0xf]
shl r9, 4
xor r8d, dword [rcx + r9 + 0xfc]
xor ebx, dword [rcx + r9 + 0xf8]
xor r10d, dword [rcx + r9 + 0xf4]
shl r11, 4
xor eax, dword [rcx + r11]
shl r8, 0x20
or rbx, r8
shl r10, 0x20
mov r8, rbx
or rax, r10
movzx r11d, bl
shr r8, 0x28
movzx r9d, al
mov r10, rax
movzx r8d, r8b
shr r10, 0x20
movzx esi, ah
mov r8d, dword [rbp + r8*4]
xor r8d, dword [rdi + r9*4]
mov r9, rbx
shr r9, 0x10
movzx r10d, r10b
movzx r9d, r9b
xor r8d, dword [r12 + r9*4]
mov r9, rax
shr r9, 0x38
xor r8d, dword [r13 + r9*4]
mov dword [rdx], r8d
mov r9d, dword [rbp + rsi*4]
movzx esi, bh
xor r9d, dword [rdi + r10*4]
mov r10, rbx
shr r10, 0x30
movzx r10d, r10b
xor r9d, dword [r12 + r10*4]
mov r10, rbx
shr r10, 0x18
movzx r10d, r10b
xor r9d, dword [r13 + r10*4]
mov r10, rax
shr r10, 0x28
movzx r10d, r10b
mov dword [rdx + 4], r9d
mov r10d, dword [rbp + r10*4]
xor r10d, dword [rdi + r11*4]
mov r11, rax
shr r11, 0x10
movzx r11d, r11b
xor r10d, dword [r12 + r11*4]
mov r11, rbx
shr rbx, 0x20
shr r11, 0x38
movzx ebx, bl
xor r10d, dword [r13 + r11*4]
mov dword [rdx + 8], r10d
mov r11d, dword [rbp + rsi*4]
xor r11d, dword [rdi + rbx*4]
mov rbx, rax
shr rax, 0x18
shr rbx, 0x30
movzx eax, al
movzx ebx, bl
xor r11d, dword [r12 + rbx*4]
xor r11d, dword [r13 + rax*4]
sub r14d, 1
cmp r14d, 1
mov dword [rdx + 0xc], r11d
jle 0x4eeceb
movsxd rax, r14d
shl rax, 4
lea rsi, [rcx + rax + 0xf4]
nop
xor r11d, dword [rsi + 8]
mov ebx, r10d
xor ebx, dword [rsi + 4]
xor r9d, dword [rsi]
mov eax, r8d
xor eax, dword [rsi - 4]
sub r14d, 1
shl r11, 0x20
or rbx, r11
shl r9, 0x20
mov r8, rbx
or rax, r9
movzx r11d, bl
shr r8, 0x28
movzx r9d, al
mov r10, rax
movzx r8d, r8b
shr r10, 0x20
movzx ecx, ah
mov r8d, dword [rbp + r8*4]
xor r8d, dword [rdi + r9*4]
mov r9, rbx
shr r9, 0x10
movzx r10d, r10b
movzx r9d, r9b
xor r8d, dword [r12 + r9*4]
mov r9, rax
shr r9, 0x38
xor r8d, dword [r13 + r9*4]
mov dword [rdx], r8d
mov r9d, dword [rbp + rcx*4]
movzx ecx, bh
xor r9d, dword [rdi + r10*4]
mov r10, rbx
shr r10, 0x30
movzx r10d, r10b
xor r9d, dword [r12 + r10*4]
mov r10, rbx
shr r10, 0x18
movzx r10d, r10b
xor r9d, dword [r13 + r10*4]
mov r10, rax
shr r10, 0x28
movzx r10d, r10b
mov dword [rdx + 4], r9d
mov r10d, dword [rbp + r10*4]
xor r10d, dword [rdi + r11*4]
mov r11, rax
shr r11, 0x10
movzx r11d, r11b
xor r10d, dword [r12 + r11*4]
mov r11, rbx
shr rbx, 0x20
shr r11, 0x38
movzx ebx, bl
xor r10d, dword [r13 + r11*4]
mov dword [rdx + 8], r10d
mov r11d, dword [rbp + rcx*4]
xor r11d, dword [rdi + rbx*4]
mov rbx, rax
shr rax, 0x18
shr rbx, 0x30
movzx eax, al
movzx ebx, bl
xor r11d, dword [r12 + rbx*4]
xor r11d, dword [r13 + rax*4]
sub rsi, 0x10
cmp r14d, 1
mov dword [rdx + 0xc], r11d
jne 0x4eebe0
xor r9d, dword [r15 + 0x104]
mov eax, r8d
xor eax, dword [r15 + 0x100]
xor r11d, dword [r15 + 0x10c]
mov ebx, r10d
xor ebx, dword [r15 + 0x108]
shl r9, 0x20
or rax, r9
lea r9, [0x0076d8c0]
shl r11, 0x20
movzx r8d, al
or rbx, r11
movzx esi, ah
movzx r8d, byte [r9 + r8]
mov byte [rdx], r8b
mov r8, rbx
shr r8, 0x28
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 1], r8b
mov r8, rbx
shr r8, 0x10
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 2], r8b
mov r8, rax
shr r8, 0x38
movzx r8d, byte [r9 + r8]
mov byte [rdx + 3], r8b
mov r8, rax
shr r8, 0x20
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 4], r8b
movzx r8d, byte [r9 + rsi]
mov byte [rdx + 5], r8b
mov r8, rbx
shr r8, 0x30
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 6], r8b
mov r8, rbx
shr r8, 0x18
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 7], r8b
movzx r8d, bl
movzx r8d, byte [r9 + r8]
mov byte [rdx + 8], r8b
mov r8, rax
shr r8, 0x28
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 9], r8b
mov r8, rax
shr r8, 0x10
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 0xa], r8b
mov r8, rbx
shr r8, 0x38
movzx r8d, byte [r9 + r8]
mov byte [rdx + 0xb], r8b
mov r8, rbx
movzx ebx, bh
shr r8, 0x20
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 0xc], r8b
movzx r8d, byte [r9 + rbx]
mov byte [rdx + 0xd], r8b
mov r8, rax
shr rax, 0x18
shr r8, 0x30
movzx eax, al
movzx r8d, r8b
movzx r8d, byte [r9 + r8]
mov byte [rdx + 0xe], r8b
movzx eax, byte [r9 + rax]
mov byte [rdx + 0xf], al
mov eax, dword [r15 + 0xf0]
xor dword [rdx], eax
mov eax, dword [r15 + 0xf4]
xor dword [rdx + 4], eax
mov eax, dword [r15 + 0xf8]
xor dword [rdx + 8], eax
mov eax, dword [r15 + 0xfc]
xor dword [rdx + 0xc], eax
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret