Function at 0x140012a80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov qword [rbp - 0x10], r8
mov r14, rdx
mov qword [rbp], rcx
mov eax, dword [0x140d0ad28]
mov ecx, dword [0x140d0ad2c]
shrd ecx, eax, 6
xor ecx, 0x2cc2aa69
mov eax, ecx
lea rax, [rax + rax*2]
lea rax, [rax*8 + 0xf]
and rax, 0xfffffffffffffff0
call fcn.140028520
sub rsp, rax
mov r15, rsp
mov rbx, r15
mov eax, dword [0x140d0ad30]
mov ecx, dword [0x140d0ad34]
shrd ecx, eax, 0x14
xor ecx, 0xde3ddd95
mov eax, ecx
add rax, 0xf
and rax, 0xfffffffffffffff0
call fcn.140028520
sub rsp, rax
mov r12, rsp
sub rsp, 0x20
mov rcx, r12
call fcn.140007a00
add rsp, 0x20
mov rax, qword [0x140d0ad38]
mov rcx, qword [0x140d0ad40]
shrd rcx, rax, 0x3d
movabs rdx, 0xa0c46999b871a99e
xor rdx, rcx
sub rsp, 0x20
mov rcx, r15
mov r8, r12
call fcn.140012e70
add rsp, 0x20
lea rsi, [0x140baba00]
lea rdi, [0x140baba20]
xor r15d, r15d
nop word cs:[rax + rax]
mov r12d, r15d
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
call fcn.140012ea0
add rsp, 0x20
mov byte [rax], r15b
sub rsp, 0x20
call fcn.14001c120
add rsp, 0x20
cdqe
mov r12, r15
add r12, qword [rsi + rax*8]
sub rsp, 0x20
call fcn.14001c1b0
add rsp, 0x20
cdqe
mov r15, r12
cmp r12, qword [rdi + rax*8]
jne 0x140012b60
mov qword [rbp - 0x18], r14
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.140012eb0
add rsp, 0x20
mov qword [rbp - 8], rax
mov rdi, rax
xor r12d, r12d
xor eax, eax
jmp 0x140012c8c
mov rax, r12
xor edx, edx
div rdi
sub rsp, 0x20
mov rcx, qword [rbp]
call fcn.140012ec0
add rsp, 0x20
add sil, byte [rax]
sub rsp, 0x20
mov rcx, rbx
mov rdx, r12
call fcn.140012ea0
add rsp, 0x20
movzx r14d, byte [rax]
movzx eax, sil
mov r13d, eax
sub rsp, 0x20
mov rcx, rbx
mov rdx, r13
call fcn.140012ea0
add rsp, 0x20
movzx r15d, byte [rax]
sub rsp, 0x20
mov rcx, rbx
mov rdx, r12
call fcn.140012ea0
add rsp, 0x20
mov byte [rax], r15b
sub rsp, 0x20
mov rcx, rbx
mov rdx, r13
call fcn.140012ea0
add rsp, 0x20
mov byte [rax], r14b
sub rsp, 0x20
call fcn.14001c2d0
add rsp, 0x20
cdqe
mov r14, r12
lea rcx, [0x140baba40]
add r14, qword [rcx + rax*8]
sub rsp, 0x20
call fcn.14001c350
add rsp, 0x20
movsxd rcx, eax
mov r12, r14
mov eax, esi
lea rdx, [0x140baba60]
cmp r14, qword [rdx + rcx*8]
je 0x140012cc3
mov esi, eax
sub rsp, 0x20
mov rcx, rbx
mov rdx, r12
call fcn.140012ea0
add rsp, 0x20
mov rcx, r12
or rcx, qword [rbp - 8]
add sil, byte [rax]
shr rcx, 0x20
jne 0x140012bd0
mov ecx, edi
mov eax, r12d
xor edx, edx
div edi
jmp 0x140012bd8
sub rsp, 0x20
call fcn.14001c240
add rsp, 0x20
mov rax, qword [0x140d0ad48]
mov rcx, qword [0x140d0ad50]
shrd rcx, rax, 0xd
movabs rax, 0xe1c5fe1bfff38c1f
xor rax, rcx
cmp qword [rbp - 0x10], rax
mov rdi, qword [rbp - 0x18]
je 0x140012e4f
xor esi, esi
xor eax, eax
xor r14d, r14d
nop word cs:[rax + rax]
mov r13d, eax
mov qword [rbp], rsi
sub rsp, 0x20
call fcn.14001c3d0
add rsp, 0x20
cdqe
lea rcx, [0x140baba78]
add r14d, dword [rcx + rax*4]
sub rsp, 0x20
call fcn.14001c450
add rsp, 0x20
movsxd rcx, eax
mov eax, r14d
cdq
lea r8, [0x140baba84]
idiv dword [r8 + rcx*4]
movsxd r14, edx
mov dword [rbp - 8], edx
sub rsp, 0x20
mov rcx, rbx
mov rdx, r14
call fcn.140012ea0
add rsp, 0x20
add r13b, byte [rax]
sub rsp, 0x20
mov rcx, rbx
mov rdx, r14
call fcn.140012ea0
add rsp, 0x20
mov rsi, rdi
movzx edi, byte [rax]
movzx eax, r13b
mov r15d, eax
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
call fcn.140012ea0
add rsp, 0x20
movzx r12d, byte [rax]
sub rsp, 0x20
mov rcx, rbx
mov rdx, r14
call fcn.140012ea0
add rsp, 0x20
mov byte [rax], r12b
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
call fcn.140012ea0
add rsp, 0x20
mov byte [rax], dil
sub rsp, 0x20
mov rcx, rbx
mov rdx, r14
call fcn.140012ea0
add rsp, 0x20
movzx edi, byte [rax]
sub rsp, 0x20
mov rcx, rbx
mov rdx, r15
call fcn.140012ea0
add rsp, 0x20
add dil, byte [rax]
movzx eax, dil
mov rdi, rsi
mov edx, eax
sub rsp, 0x20
mov rcx, rbx
call fcn.140012ea0
add rsp, 0x20
movzx eax, byte [rax]
mov rsi, qword [rbp]
xor byte [rdi + rsi], al
sub rsp, 0x20
call fcn.14001c4d0
add rsp, 0x20
cdqe
mov rcx, rsi
lea rdx, [0x140baba90]
add rcx, qword [rdx + rax*8]
mov rsi, rcx
mov eax, r13d
mov r14d, dword [rbp - 8]
cmp rcx, qword [rbp - 0x10]
jne 0x140012d10
sub rsp, 0x20
mov rcx, rbx
call fcn.140007af0
nop
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret