Function at 0x1400124b0
Capabilities:
Encode data using xor
Manually build aes constants

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x20
lea r10, [rcx + 0x20]
lea rbx, [rdx + 0x10]
mov r14, rcx
mov r11, r10
sub r14, rdx
mov rsi, rdx
sub r11, rcx
mov rbp, rcx
mov r9b, 0x10
sub r10, rdx
mov r8, rbx
nop word [rax + rax]
movzx eax, byte [r10 + r8 - 1]
dec r8
lea rcx, [r14 + 0x10]
add rcx, r8
mov byte [r14 + r8], al
xor byte [r8], al
movzx eax, byte [rcx + r11]
mov byte [rcx], al
add r9b, 0xff
jne 0x1400124f0
mov dil, 1
mov byte [rsp + 0x40], dil
nop dword [rax]
mov r10b, 0x10
mov r9, rbx
nop word [rax + rax]
movzx r8d, byte [r9 - 1]
lea r9, [r9 - 1]
add r10b, 0xff
test r8b, r8b
je 0x140012586
mov al, 1
xor dl, dl
cmp al, r8b
je 0x14001255c
movzx ecx, al
add al, al
test cl, cl
jns 0x140012556
xor al, 0x1b
xor al, cl
inc dl
jne 0x140012546
mov ecx, 0xff
mov al, 1
sub cl, dl
je 0x140012588
nop word [rax + rax]
movzx edx, al
add cl, 0xff
add al, al
test dl, dl
jns 0x14001257e
xor al, 0x1b
xor al, dl
test cl, cl
jne 0x140012570
jmp 0x140012588
xor al, al
movzx edx, al
rol dl, 1
xor al, dl
rol dl, 1
xor al, dl
rol dl, 1
movzx ecx, dl
rol cl, 1
xor cl, dl
xor cl, al
xor cl, 0x63
mov byte [r9], cl
test r10b, r10b
jne 0x140012530
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 5]
mov byte [rsi + 1], al
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 0xa]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 2]
mov byte [rsi + 0xa], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 2], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 7], cl
movzx ecx, byte [rsi + 0xe]
mov byte [rsi + 0xb], al
movzx eax, byte [rsi + 6]
mov byte [rsi + 6], cl
mov rcx, rsi
mov byte [rsi + 0xe], al
call fcn.140011f80
test dil, 1
je 0x140012622
mov dl, 0x10
mov rcx, rbx
movzx eax, byte [r14 + rcx + 0xf]
dec rcx
xor byte [rcx], al
add dl, 0xff
jne 0x140012610
jmp 0x140012650
lea rdx, [rsp + 0x40]
mov rcx, rbp
call fcn.140012060
mov dl, 0x10
mov rcx, rbx
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r14 + rcx - 1]
dec rcx
xor byte [rcx], al
add dl, 0xff
jne 0x140012640
inc dil
cmp dil, 0xe
jb 0x140012520
mov r10b, 0x10
mov r9, rbx
nop dword [rax]
nop word [rax + rax]
movzx r8d, byte [r9 - 1]
lea r9, [r9 - 1]
add r10b, 0xff
xor dl, dl
test r8b, r8b
je 0x1400126c4
mov al, 1
cmp al, r8b
je 0x14001269c
movzx ecx, al
add al, al
test cl, cl
jns 0x140012696
xor al, 0x1b
xor al, cl
inc dl
jne 0x140012686
mov eax, 0xff
sub al, dl
mov dl, 1
je 0x1400126c4
nop word [rax + rax]
movzx ecx, dl
add al, 0xff
add dl, dl
test cl, cl
jns 0x1400126be
xor dl, 0x1b
xor dl, cl
test al, al
jne 0x1400126b0
movzx ecx, dl
rol cl, 1
xor dl, cl
rol cl, 1
xor dl, cl
rol cl, 1
movzx eax, cl
rol al, 1
xor al, cl
xor al, dl
xor al, 0x63
mov byte [r9], al
test r10b, r10b
jne 0x140012670
movzx ecx, byte [rsi + 1]
movzx eax, byte [rsi + 5]
lea rdx, [rsp + 0x40]
mov byte [rsi + 1], al
movzx eax, byte [rsi + 9]
mov byte [rsi + 5], al
movzx eax, byte [rsi + 0xd]
mov byte [rsi + 0xd], cl
movzx ecx, byte [rsi + 0xa]
mov byte [rsi + 9], al
movzx eax, byte [rsi + 2]
mov byte [rsi + 0xa], al
movzx eax, byte [rsi + 0xf]
mov byte [rsi + 2], cl
movzx ecx, byte [rsi + 3]
mov byte [rsi + 3], al
movzx eax, byte [rsi + 0xb]
mov byte [rsi + 0xf], al
movzx eax, byte [rsi + 7]
mov byte [rsi + 7], cl
movzx ecx, byte [rsi + 0xe]
mov byte [rsi + 0xb], al
movzx eax, byte [rsi + 6]
mov byte [rsi + 6], cl
mov rcx, rbp
mov byte [rsi + 0xe], al
call fcn.140012060
mov cl, 0x10
nop word [rax + rax]
movzx eax, byte [r14 + rbx - 1]
lea rbx, [rbx - 1]
xor byte [rbx], al
add cl, 0xff
jne 0x140012750
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x20
pop r14
pop rdi
pop rsi
ret