Function at 0x140015f60
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
lea rsi, [rcx + 4]
mov r8, rcx
mov rbx, rdx
lea r10, [rdx + 0xa0]
lea r11, [rdx + 0xb0]
mov r9, rsi
lea rax, [r9 - 4]
mov rdx, r10
movzx ecx, byte [rdx]
xor byte [rax], cl
add rax, 1
add rdx, 1
cmp rax, r9
jne 0x140015f92
add r10, 4
lea r9, [rax + 4]
cmp r10, r11
jne 0x140015f8b
lea rax, [r8 + 0x10]
lea r9, [r8 + 0x14]
mov r10, rbx
mov qword [rsp + 0x10], rax
lea r11, [rbx + 0x90]
lea rbp, [0x1400be620]
nop
movzx edx, byte [r8 + 2]
movzx eax, byte [r8 + 5]
movzx ebx, byte [r8 + 9]
movzx ecx, byte [r8 + 0xa]
mov ah, dl
movzx edx, byte [r8 + 0xd]
movzx edi, byte [r8 + 1]
mov word [r8 + 9], ax
movzx eax, bl
movzx ebx, byte [r8 + 6]
mov dh, cl
mov ah, bl
movzx ebx, byte [r8 + 0xe]
mov word [r8 + 1], dx
movzx edx, dil
mov word [r8 + 0xd], ax
movzx eax, byte [r8 + 3]
mov dh, bl
mov word [r8 + 5], dx
movzx edx, byte [r8 + 7]
mov byte [r8 + 3], dl
movzx edx, byte [r8 + 0xb]
mov byte [r8 + 7], dl
movzx edx, byte [r8 + 0xf]
mov byte [r8 + 0xf], al
mov byte [r8 + 0xb], dl
mov rdx, qword [rsp + 0x10]
lea rax, [rdx - 0x10]
movzx ecx, byte [rax]
add rax, 4
movzx ecx, byte [rbp + rcx]
mov byte [rax - 4], cl
cmp rdx, rax
jne 0x140016048
add rdx, 1
cmp r9, rdx
jne 0x140016044
mov rbx, rsi
mov rdi, r11
lea rax, [rbx - 4]
mov rdx, rdi
movzx ecx, byte [rdx]
xor byte [rax], cl
add rax, 1
add rdx, 1
cmp rax, rbx
jne 0x140016072
lea rbx, [rax + 4]
add rdi, 4
cmp r9, rbx
jne 0x14001606b
cmp r11, r10
je 0x14001629e
mov qword [rsp + 0x18], r11
mov rdi, r8
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x80], r8
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x28], r9
movzx edx, byte [rdi]
movzx esi, byte [rdi + 1]
mov eax, edx
lea ecx, [rdx + rdx]
lea r15d, [rsi + rsi]
movzx esi, byte [rdi + 2]
shr al, 7
lea eax, [rax + rax*2]
lea r13d, [rsi + rsi]
lea eax, [rax + rax*8]
xor ecx, eax
mov eax, ecx
mov ebx, ecx
mov byte [rsp + 0xe], cl
shr al, 7
lea r12d, [rbx + rbx]
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor r12d, eax
mov eax, r12d
lea ecx, [r12 + r12]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor ecx, eax
movzx eax, byte [rdi + 1]
mov r14d, ecx
movzx ecx, byte [rdi + 3]
shr al, 7
lea eax, [rax + rax*2]
lea ebx, [rcx + rcx]
lea eax, [rax + rax*8]
xor r15d, eax
mov eax, r15d
lea r11d, [r15 + r15]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor r11d, eax
mov eax, r11d
lea r9d, [r11 + r11]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor r9d, eax
movzx eax, byte [rdi + 2]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor r13d, eax
mov eax, r13d
lea esi, [r13 + r13]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor esi, eax
mov eax, esi
lea r8d, [rsi + rsi]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor r8d, eax
movzx eax, byte [rdi + 3]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor ebx, eax
mov eax, ebx
lea r10d, [rbx + rbx]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor r10d, eax
mov eax, r10d
lea ecx, [r10 + r10]
shr al, 7
lea eax, [rax + rax*2]
lea eax, [rax + rax*8]
xor ecx, eax
movzx eax, byte [rdi + 1]
xor eax, edx
mov byte [rsp + 0xf], al
movzx eax, byte [rdi + 1]
xor al, byte [rdi + 2]
xor al, byte [rdi + 3]
xor al, byte [rsp + 0xe]
xor eax, r15d
xor eax, r12d
xor eax, esi
xor eax, r14d
xor eax, r9d
xor dl, byte [rdi + 2]
xor dl, byte [rdi + 3]
xor edx, r15d
movzx r15d, byte [rsp + 0xf]
xor r15b, byte [rdi + 3]
xor eax, r8d
xor r15d, r13d
xor edx, r13d
xor eax, ecx
xor r15d, ebx
xor edx, r11d
xor r15d, r12d
xor edx, r10d
xor r15d, esi
movzx esi, byte [rsp + 0xf]
xor sil, byte [rdi + 2]
xor edx, r14d
xor sil, byte [rsp + 0xe]
xor r15d, r14d
xor edx, r9d
xor esi, ebx
xor r15d, r9d
xor edx, r8d
xor esi, r11d
xor r15d, r8d
xor edx, ecx
xor esi, r10d
xor r15d, ecx
xor esi, r14d
xor esi, r9d
xor esi, r8d
movzx r8d, r15b
xor ecx, esi
movzx ecx, cl
shl ecx, 8
mov r15d, ecx
movzx ecx, dl
or r15d, r8d
add rdi, 4
mov edx, r15d
shl edx, 8
or edx, ecx
movzx ecx, al
mov eax, edx
shl eax, 8
or eax, ecx
mov dword [rdi - 4], eax
mov rax, qword [rsp + 0x10]
cmp rdi, rax
jne 0x1400160bc
mov r11, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov r8, qword [rsp + 0x80]
mov r10, qword [rsp + 0x88]
mov r9, qword [rsp + 0x28]
sub r11, 0x10
jmp 0x140015fd0
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret