Function at 0x916710
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, 0x48
xor r9d, r9d
movzx eax, byte [r8]
mov byte [rsp + 0x20], al
movzx eax, byte [r8 + 1]
lea r12, [rsp + 0x30]
mov r13, rcx
mov qword [rsp + 0x98], rdx
mov r14, r12
mov rcx, rdx
mov byte [rsp + 0x24], al
movzx eax, byte [r8 + 2]
mov byte [rsp + 0x28], al
movzx eax, byte [r8 + 3]
mov byte [rsp + 0x2c], al
movzx eax, byte [r8 + 4]
mov byte [rsp + 0x21], al
movzx eax, byte [r8 + 5]
mov byte [rsp + 0x25], al
movzx eax, byte [r8 + 6]
mov byte [rsp + 0x29], al
movzx eax, byte [r8 + 7]
mov byte [rsp + 0x2d], al
movzx eax, byte [r8 + 8]
mov byte [rsp + 0x22], al
movzx eax, byte [r8 + 9]
mov byte [rsp + 0x26], al
movzx eax, byte [r8 + 0xa]
mov byte [rsp + 0x2a], al
movzx eax, byte [r8 + 0xb]
mov byte [rsp + 0x2e], al
movzx eax, byte [r8 + 0xc]
mov byte [rsp + 0x23], al
movzx eax, byte [r8 + 0xd]
mov byte [rsp + 0x27], al
movzx eax, byte [r8 + 0xe]
mov byte [rsp + 0x2b], al
movzx eax, byte [r8 + 0xf]
mov r8, r12
mov byte [rsp + 0x2f], al
xor eax, eax
movzx edx, byte [rcx + rax + 8]
mov byte [r8 + rax*4], dl
add rax, 1
cmp rax, 4
jne 0x9167cd
add r9d, 1
add rcx, 4
add r8, 1
cmp r9d, 4
jne 0x9167cb
mov rax, qword [rsp + 0x30]
xor qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x98]
movzx edi, byte [rax]
mov dword [rsp + 0xc], edi
mov rax, rdi
cmp edi, 1
jle 0x916a94
lea rsi, [rsp + 0x20]
lea r15, [0x023fc460]
shl rax, 4
mov qword [rsp + 0x18], r14
mov qword [rsp + 0x10], rsi
mov ebp, 0x10
lea r10, [0x023fbd20]
mov r14, qword [rsp + 0x98]
mov qword [rsp + 0x90], r13
lea rdi, [rsp + 0x24]
mov r13, rsi
mov qword [rsp], r15
mov r15, rax
nop word cs:[rax + rax]
lea rcx, [r14 + rbp]
mov rdx, r12
xor eax, eax
xor r8d, r8d
movzx r9d, byte [rcx + r8 + 8]
mov byte [rdx + r8*4], r9b
add r8, 1
cmp r8, 4
jne 0x91687c
add eax, 1
add rcx, 4
add rdx, 1
cmp eax, 4
jne 0x916879
mov rax, r13
mov rdx, r13
nop word cs:[rax + rax]
movzx ecx, byte [rdx]
mov rsi, qword [rsp]
add rdx, 1
movzx ecx, byte [rsi + rcx]
mov byte [rdx - 1], cl
cmp r12, rdx
jne 0x9168b0
ror dword [rsp + 0x24], 8
rol dword [rsp + 0x28], 0x10
rol dword [rsp + 0x2c], 8
movzx r9d, byte [rax]
movzx esi, byte [rax + 4]
add rax, 1
movzx r11d, byte [rax + 7]
movzx r8d, byte [rax + 0xb]
mov rcx, r9
mov rdx, rsi
lea r9, [r9 + r9*2]
lea rsi, [rsi + rsi*2]
lea r9, [r10 + r9*2]
mov ebx, r11d
lea rsi, [r10 + rsi*2]
xor ebx, r8d
xor bl, byte [r9]
xor bl, byte [rsi + 1]
mov byte [rax - 1], bl
mov ebx, ecx
xor ecx, edx
xor edx, r11d
xor ebx, r8d
xor bl, byte [rsi]
lea r8, [r8 + r8*2]
mov esi, ebx
movzx ebx, r11b
lea r8, [r10 + r8*2]
lea rbx, [rbx + rbx*2]
xor dl, byte [r8]
xor dl, byte [r9 + 1]
lea rbx, [r10 + rbx*2]
mov byte [rax + 0xb], dl
xor sil, byte [rbx + 1]
xor cl, byte [rbx]
xor cl, byte [r8 + 1]
mov byte [rax + 3], sil
mov byte [rax + 7], cl
cmp rdi, rax
jne 0x9168d6
add rbp, 0x10
mov rax, qword [rsp + 0x30]
xor qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x38]
xor qword [rsp + 0x28], rax
cmp r15, rbp
jne 0x916870
mov r14, qword [rsp + 0x18]
mov r13, qword [rsp + 0x90]
mov r15, qword [rsp]
mov edx, dword [rsp + 0xc]
xor r8d, r8d
shl edx, 4
movsxd rdx, edx
add rdx, qword [rsp + 0x98]
xor eax, eax
movzx ecx, byte [rdx + rax + 8]
mov byte [r14 + rax*4], cl
add rax, 1
cmp rax, 4
jne 0x91699c
add r8d, 1
add rdx, 4
add r14, 1
cmp r8d, 4
jne 0x91699a
mov rax, qword [rsp + 0x10]
nop word cs:[rax + rax]
movzx edx, byte [rax]
add rax, 1
movzx edx, byte [r15 + rdx]
mov byte [rax - 1], dl
cmp r12, rax
jne 0x9169d0
mov eax, dword [rsp + 0x2c]
mov ecx, dword [rsp + 0x24]
mov ebx, dword [rsp + 0x20]
mov edx, dword [rsp + 0x28]
rol eax, 8
xor ebx, dword [rsp + 0x30]
xor eax, dword [rsp + 0x3c]
ror ecx, 8
mov edi, eax
xor ecx, dword [rsp + 0x34]
movzx eax, bh
rol edx, 0x10
mov byte [r13 + 4], al
xor edx, dword [rsp + 0x38]
movzx eax, ch
mov r8d, ebx
mov byte [r13 + 5], al
movzx eax, dh
shr r8d, 0x10
mov byte [r13 + 6], al
mov eax, edi
movzx eax, ah
mov byte [r13 + 8], r8b
mov r8d, ecx
mov byte [r13 + 7], al
mov eax, edi
shr r8d, 0x10
shr eax, 0x10
mov byte [r13 + 1], cl
shr ecx, 0x18
mov byte [r13 + 0xd], cl
mov ecx, edx
mov byte [r13 + 0xb], al
mov eax, edi
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], dil
mov byte [r13 + 0xf], al
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [rsp + 0x20]
lea r15, [0x023fc460]
mov qword [rsp + 0x10], rax
jmp 0x916985