Function at 0x140001b37
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, 0x68
lea rax, [rsp + 0x50]
mov qword [rsp + 0xb8], rdx
mov rdi, rcx
mov rbx, rdx
mov qword [rsp + 0x28], rax
lea rax, [rcx + 0xf0]
mov qword [rsp + 0xc0], r8
mov qword [rsp + 0x40], rax
mov rax, rbx
sub rax, qword [rsp + 0xb8]
cmp rax, qword [rsp + 0xc0]
jae 0x140001dd5
mov rcx, qword [rsp + 0x28]
mov r8d, 0x10
mov rdx, rbx
call fcn.14000191d
mov r8, rdi
mov ecx, 0xe
call fcn.14000140d
lea rax, [rbx + 4]
mov dword [rsp + 0x48], 0xd
mov qword [rsp + 0x30], rax
lea rax, [rbx + 0x10]
mov qword [rsp + 0x38], rax
mov dl, byte [rbx + 9]
mov al, byte [rbx + 0xd]
mov byte [rbx + 0xd], dl
mov dl, byte [rbx + 5]
mov byte [rbx + 9], dl
mov dl, byte [rbx + 1]
mov byte [rbx + 1], al
mov al, byte [rbx + 2]
mov byte [rbx + 5], dl
mov dl, byte [rbx + 0xa]
mov byte [rbx + 0xa], al
mov al, byte [rbx + 6]
mov byte [rbx + 2], dl
mov dl, byte [rbx + 0xe]
mov byte [rbx + 0xe], al
mov al, byte [rbx + 3]
mov byte [rbx + 6], dl
mov dl, byte [rbx + 7]
mov byte [rbx + 3], dl
mov dl, byte [rbx + 0xb]
mov byte [rbx + 7], dl
mov dl, byte [rbx + 0xf]
mov byte [rbx + 0xf], al
mov byte [rbx + 0xb], dl
mov rdx, rbx
mov rax, rdx
xor ecx, ecx
movzx r8d, byte [rax]
lea rsi, [0x140045b80]
inc ecx
add rax, 4
mov r8b, byte [rsi + r8]
mov byte [rax - 4], r8b
cmp cl, 4
jne 0x140001c16
inc rdx
cmp qword [rsp + 0x30], rdx
jne 0x140001c11
mov ecx, dword [rsp + 0x48]
mov r8, rdi
mov rdx, rbx
call fcn.14000140d
cmp dword [rsp + 0x48], 0
je 0x140001da2
mov r9, rbx
movzx ecx, byte [r9]
mov bpl, byte [r9 + 1]
mov r8b, byte [r9 + 2]
mov r12b, byte [r9 + 3]
mov r15d, ecx
call fcn.140001444
movzx ecx, al
mov byte [rsp + 0x26], al
call fcn.140001444
movzx ecx, al
mov byte [rsp + 0x27], al
call fcn.140001444
movzx ecx, bpl
mov esi, eax
call fcn.140001444
movzx ecx, al
mov byte [rsp + 0x4c], al
call fcn.140001444
movzx ecx, al
mov byte [rsp + 0x4d], al
call fcn.140001444
movzx ecx, r8b
mov r11d, eax
call fcn.140001444
movzx ecx, al
mov r14d, ecx
call fcn.140001444
movzx ecx, al
mov r13d, ecx
call fcn.140001444
movzx ecx, r12b
mov r10d, eax
call fcn.140001444
movzx ecx, al
mov byte [rsp + 0x4e], al
call fcn.140001444
movzx ecx, al
mov byte [rsp + 0x4f], cl
call fcn.140001444
mov dl, byte [rsp + 0x4f]
mov ecx, eax
mov al, byte [rsp + 0x26]
xor al, byte [rsp + 0x27]
xor eax, esi
xor eax, dword [rsp + 0x4c]
xor eax, r11d
xor eax, r13d
xor eax, r10d
xor eax, ecx
xor eax, ebp
xor eax, r8d
xor eax, r12d
mov byte [r9], al
mov al, byte [rsp + 0x4c]
xor eax, esi
xor al, byte [rsp + 0x4d]
xor eax, r11d
xor eax, r14d
xor eax, r10d
xor eax, edx
xor eax, ecx
xor eax, r15d
xor eax, r8d
xor eax, r12d
mov byte [r9 + 1], al
mov al, byte [rsp + 0x27]
xor eax, esi
add r9, 4
xor eax, r11d
xor eax, r14d
xor eax, r13d
xor eax, r10d
xor al, byte [rsp + 0x4e]
xor eax, ecx
xor eax, r15d
xor eax, ebp
xor eax, r12d
mov byte [r9 - 2], al
mov al, byte [rsp + 0x26]
xor eax, esi
xor al, byte [rsp + 0x4d]
xor eax, r11d
xor eax, r10d
xor al, byte [rsp + 0x4e]
xor eax, edx
xor eax, ecx
xor eax, r15d
xor eax, ebp
xor eax, r8d
mov byte [r9 - 1], al
cmp qword [rsp + 0x38], r9
jne 0x140001c5b
dec dword [rsp + 0x48]
jmp 0x140001bc6
xor eax, eax
mov dl, byte [rdi + rax + 0xf0]
xor byte [rbx + rax], dl
inc rax
cmp rax, 0x10
jne 0x140001da4
mov rdx, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x40]
mov r8d, 0x10
add rbx, 0x10
call fcn.14000191d
jmp 0x140001b73
add rsp, 0x68
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret