Function at 0x916ab0
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
sub rsp, 0x38
xor r11d, r11d
movzx eax, byte [r8]
mov byte [rsp + 0x10], al
movzx eax, byte [r8 + 1]
mov r13, rcx
lea r12, [rsp + 0x20]
mov qword [rsp + 0x88], rdx
mov r14, r12
mov r10, r12
mov byte [rsp + 0x14], al
movzx eax, byte [r8 + 2]
mov byte [rsp + 0x18], al
movzx eax, byte [r8 + 3]
mov byte [rsp + 0x1c], al
movzx eax, byte [r8 + 4]
mov byte [rsp + 0x11], al
movzx eax, byte [r8 + 5]
mov byte [rsp + 0x15], al
movzx eax, byte [r8 + 6]
mov byte [rsp + 0x19], al
movzx eax, byte [r8 + 7]
mov byte [rsp + 0x1d], al
movzx eax, byte [r8 + 8]
mov byte [rsp + 0x12], al
movzx eax, byte [r8 + 9]
mov byte [rsp + 0x16], al
movzx eax, byte [r8 + 0xa]
mov byte [rsp + 0x1a], al
movzx eax, byte [r8 + 0xb]
mov byte [rsp + 0x1e], al
movzx eax, byte [r8 + 0xc]
mov byte [rsp + 0x13], al
movzx eax, byte [r8 + 0xd]
mov byte [rsp + 0x17], al
movzx eax, byte [r8 + 0xe]
mov byte [rsp + 0x1b], al
movzx eax, byte [r8 + 0xf]
mov byte [rsp + 0x1f], al
movzx r9d, byte [rdx]
mov ecx, r9d
mov r8d, r9d
shl ecx, 4
movsxd rcx, ecx
add rcx, rdx
xor eax, eax
movzx edx, byte [rcx + rax + 8]
mov byte [r10 + rax*4], dl
add rax, 1
cmp rax, 4
jne 0x916b7d
add r11d, 1
add rcx, 4
add r10, 1
cmp r11d, 4
jne 0x916b7b
mov esi, dword [rsp + 0x14]
mov ebx, dword [rsp + 0x18]
lea edi, [r9 - 1]
lea rcx, [rsp + 0x10]
mov r11d, dword [rsp + 0x1c]
xor esi, dword [rsp + 0x24]
lea r15, [0x023fc360]
xor ebx, dword [rsp + 0x28]
xor r11d, dword [rsp + 0x2c]
mov dword [rsp + 0x14], esi
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x18], ebx
xor dword [rsp + 0x10], eax
mov dword [rsp + 0x1c], r11d
test edi, edi
jle 0x916d75
lea edx, [r9 - 2]
movzx eax, r8b
mov qword [rsp + 8], r14
shl edi, 4
sub rax, rdx
mov r14, qword [rsp + 0x88]
movsxd rdi, edi
lea rcx, [rsp + 0x10]
shl rax, 4
mov qword [rsp + 0x80], r13
lea rbp, [rsp + 0x14]
lea r15, [0x023fc360]
lea rdx, [rax - 0x20]
lea rax, [0x023fbd20]
mov r13, rdx
nop word [rax + rax]
lea r9, [r14 + rdi]
mov r8, r12
xor edx, edx
mov dword [rsp + 4], edx
xor r10d, r10d
movzx edx, byte [r9 + r10 + 8]
mov byte [r8 + r10*4], dl
add r10, 1
cmp r10, 4
jne 0x916c48
mov edx, dword [rsp + 4]
add r9, 4
add r8, 1
add edx, 1
cmp edx, 4
jne 0x916c41
rol esi, 8
rol ebx, 0x10
mov rdx, rcx
mov r8, rcx
ror r11d, 8
mov dword [rsp + 0x14], esi
mov dword [rsp + 0x18], ebx
mov dword [rsp + 0x1c], r11d
nop dword [rax]
movzx r9d, byte [r8]
add r8, 1
movzx r9d, byte [r15 + r9]
mov byte [r8 - 1], r9b
cmp r12, r8
jne 0x916c90
mov r8, qword [rsp + 0x20]
xor qword [rsp + 0x10], r8
mov r8, qword [rsp + 0x28]
xor qword [rsp + 0x18], r8
movzx r8d, byte [rdx]
movzx r10d, byte [rdx + 8]
add rdx, 1
lea r8, [r8 + r8*2]
lea r10, [r10 + r10*2]
lea r9, [rax + r8*2]
lea r11, [rax + r10*2]
movzx r8d, byte [rdx + 0xb]
movzx r10d, byte [rdx + 3]
lea r8, [r8 + r8*2]
lea r10, [r10 + r10*2]
lea rbx, [rax + r8*2]
lea r10, [rax + r10*2]
movzx r8d, byte [r9 + 5]
xor r8b, byte [rbx + 2]
xor r8b, byte [r11 + 4]
xor r8b, byte [r10 + 3]
mov byte [rdx - 1], r8b
movzx r8d, byte [r10 + 5]
xor r8b, byte [r9 + 2]
xor r8b, byte [rbx + 4]
xor r8b, byte [r11 + 3]
mov byte [rdx + 3], r8b
movzx r8d, byte [r11 + 5]
xor r8b, byte [r10 + 2]
xor r8b, byte [r9 + 4]
xor r8b, byte [rbx + 3]
mov byte [rdx + 7], r8b
movzx r8d, byte [rbx + 5]
xor r8b, byte [r11 + 2]
xor r8b, byte [r10 + 4]
xor r8b, byte [r9 + 3]
mov byte [rdx + 0xb], r8b
cmp rbp, rdx
jne 0x916cba
sub rdi, 0x10
mov esi, dword [rsp + 0x14]
mov ebx, dword [rsp + 0x18]
mov r11d, dword [rsp + 0x1c]
cmp r13, rdi
jne 0x916c38
mov r14, qword [rsp + 8]
mov r13, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
xor r9d, r9d
xor eax, eax
movzx r8d, byte [rdx + rax + 8]
mov byte [r14 + rax*4], r8b
add rax, 1
cmp rax, 4
jne 0x916d82
add r9d, 1
add rdx, 4
add r14, 1
cmp r9d, 4
jne 0x916d80
rol esi, 8
rol ebx, 0x10
ror r11d, 8
mov dword [rsp + 0x14], esi
mov dword [rsp + 0x18], ebx
mov dword [rsp + 0x1c], r11d
nop
movzx eax, byte [rcx]
add rcx, 1
movzx eax, byte [r15 + rax]
mov byte [rcx - 1], al
cmp r12, rcx
jne 0x916dc0
mov ebx, dword [rsp + 0x10]
mov eax, dword [rsp + 0x1c]
xor ebx, dword [rsp + 0x20]
xor eax, dword [rsp + 0x2c]
mov esi, eax
mov ecx, dword [rsp + 0x14]
movzx eax, bh
xor ecx, dword [rsp + 0x24]
mov byte [r13 + 4], al
mov edx, dword [rsp + 0x18]
movzx eax, ch
mov r8d, ebx
xor edx, dword [rsp + 0x28]
mov byte [r13 + 5], al
shr r8d, 0x10
movzx eax, dh
mov byte [r13 + 8], r8b
mov r8d, ecx
mov byte [r13 + 6], al
mov eax, esi
shr r8d, 0x10
movzx eax, ah
mov byte [r13 + 1], cl
shr ecx, 0x18
mov byte [r13 + 7], al
mov eax, esi
shr eax, 0x10
mov byte [r13 + 0xd], cl
mov ecx, edx
mov byte [r13 + 0xb], al
mov eax, esi
shr ecx, 0x10
mov byte [r13], bl
shr eax, 0x18
shr ebx, 0x18
mov byte [r13 + 2], dl
shr edx, 0x18
mov byte [r13 + 0xc], bl
mov byte [r13 + 9], r8b
mov byte [r13 + 0xa], cl
mov byte [r13 + 0xe], dl
mov byte [r13 + 3], sil
mov byte [r13 + 0xf], al
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret