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

Disassembly:
mov r11, rsp
mov qword [r11 + 0x18], r8
mov qword [r11 + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
movzx eax, byte [rdx + 2]
lea r12, [0x1401d6e20]
movzx r9d, byte [rdx + 3]
lea rdi, [0x1401d6c20]
mov rsi, rcx
shl r9d, 8
or r9d, eax
mov qword [r11 - 0x50], r12
movzx eax, byte [rdx + 1]
lea r14, str.cw
shl r9d, 8
mov rbx, r8
or r9d, eax
lea r8, [rbp - 0x10]
movzx eax, byte [rdx]
shl r9d, 8
or r9d, eax
movzx eax, byte [rdx + 6]
xor r9d, dword [rcx + 4]
movzx ecx, byte [rdx + 7]
shl ecx, 8
or ecx, eax
mov dword [rbp + 0x48], r9d
movzx eax, byte [rdx + 5]
lea r9, [rbp - 0xc]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 4]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xa]
xor ecx, dword [rsi + 8]
mov dword [rbp + 0x58], ecx
movzx ecx, byte [rdx + 0xb]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 9]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 8]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xe]
xor ecx, dword [rsi + 0xc]
mov dword [rbp - 0x10], ecx
movzx ecx, byte [rdx + 0xf]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xd]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdx + 0xc]
shl ecx, 8
lea rdx, [rbp + 0x58]
or ecx, eax
lea rax, [0x1401d6d20]
xor ecx, dword [rsi + 0x10]
mov qword [r11 - 0x58], rax
mov dword [rbp - 0xc], ecx
lea rcx, [rbp + 0x48]
mov qword [r11 - 0x60], rdi
mov qword [r11 - 0x68], r14
call fcn.14009197c
lea r9, [rbp - 0xc]
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0x48]
call fcn.140091800
mov eax, dword [rsi + 0x14]
mov r15d, 2
xor dword [rbp + 0x48], eax
mov eax, dword [rsi + 0x18]
xor dword [rbp + 0x58], eax
mov eax, dword [rsi + 0x1c]
xor dword [rbp - 0x10], eax
mov eax, dword [rsi + 0x20]
xor dword [rbp - 0xc], eax
lea rax, [0x1401d6d20]
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], r12
lea r9, [rbp - 0xc]
mov qword [rsp + 0x20], rax
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0x48]
call fcn.14009197c
movzx r12d, byte [rsi]
cmp r12, r15
jbe 0x140092390
lea rdi, [rsi + 0x28]
mov r14d, r15d
lea rsi, str.cw
lea rbx, [0x1401d6c20]
lea r9, [rbp - 0xc]
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0x48]
call fcn.140091800
mov eax, dword [rdi - 4]
lea r9, [rbp - 0xc]
xor dword [rbp + 0x48], eax
lea r8, [rbp - 0x10]
mov eax, dword [rdi]
lea rdx, [rbp + 0x58]
xor dword [rbp + 0x58], eax
lea rcx, [rbp + 0x48]
mov eax, dword [rdi + 4]
xor dword [rbp - 0x10], eax
mov eax, dword [rdi + 8]
xor dword [rbp - 0xc], eax
lea rax, [0x1401d6e20]
mov qword [rsp + 0x38], rax
lea rax, [0x1401d6d20]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rsi
call fcn.14009197c
lea r9, [rbp - 0xc]
lea r8, [rbp - 0x10]
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0x48]
call fcn.140091800
mov eax, dword [rdi + 0xc]
lea r9, [rbp - 0xc]
xor dword [rbp + 0x48], eax
lea r8, [rbp - 0x10]
mov eax, dword [rdi + 0x10]
lea rdx, [rbp + 0x58]
xor dword [rbp + 0x58], eax
lea rcx, [rbp + 0x48]
mov eax, dword [rdi + 0x14]
add r15d, 2
xor dword [rbp - 0x10], eax
add r14, 2
mov eax, dword [rdi + 0x18]
xor dword [rbp - 0xc], eax
lea rax, [0x1401d6e20]
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rax
lea rax, [0x1401d6d20]
mov qword [rsp + 0x20], rax
call fcn.14009197c
lea rdi, [rdi + 0x20]
cmp r14, r12
jl 0x1400922ac
mov rbx, qword [rbp + 0x50]
mov rsi, qword [rbp + 0x40]
mov ecx, dword [rbp + 0x48]
mov edx, dword [rbp + 0x58]
mov r8d, dword [rbp - 0x10]
mov r9d, dword [rbp - 0xc]
movsxd rax, r15d
add rax, rax
xor ecx, dword [rsi + rax*8 + 4]
xor edx, dword [rsi + rax*8 + 8]
xor r8d, dword [rsi + rax*8 + 0xc]
xor r9d, dword [rsi + rax*8 + 0x10]
mov eax, ecx
shr eax, 8
mov byte [rbx + 1], al
mov eax, ecx
shr eax, 0x10
mov byte [rbx + 2], al
mov eax, edx
shr eax, 8
mov byte [rbx + 5], al
mov eax, edx
shr eax, 0x10
mov byte [rbx + 6], al
mov eax, r8d
shr eax, 8
mov byte [rbx + 9], al
mov eax, r8d
shr eax, 0x10
mov byte [rbx + 0xa], al
mov eax, r9d
shr eax, 8
mov byte [rbx + 0xd], al
mov eax, r9d
shr eax, 0x10
mov byte [rbx], cl
shr ecx, 0x18
mov byte [rbx + 4], dl
shr edx, 0x18
mov byte [rbx + 8], r8b
shr r8d, 0x18
mov byte [rbx + 0xc], r9b
shr r9d, 0x18
mov byte [rbx + 0xe], al
xor eax, eax
mov byte [rbx + 3], cl
mov byte [rbx + 7], dl
mov byte [rbx + 0xb], r8b
mov byte [rbx + 0xf], r9b
add rsp, 0x50
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret