Function at 0x14000c22c
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r13
push r14
push r15
sub rsp, 0x30
mov rbx, r9
mov r14, rdx
mov rbp, rcx
cmp r8d, 0xc
jge 0x14000c25f
xor eax, eax
jmp 0x14000c475
mov eax, dword [0x14006e3a8]
inc eax
mov dword [0x14006e3a8], eax
cmp eax, 1
jne 0x14000c287
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
xor eax, 0xbb40e64e
mov ecx, eax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
mov rdi, qword [rsp + 0x70]
mov rdx, rbx
mov r8, rdi
mov rcx, rbp
call fcn.14000c494
xor esi, esi
mov r13d, 0xfffd
lea r15d, [rsi + 0xa]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov r9d, dword [rbx + 8]
mov r11d, eax
mov r8d, dword [rbx]
mov r10d, r9d
sar r11d, 7
mov ecx, r8d
mov eax, r11d
shr r8d, 8
xor rcx, rax
and r10d, r13d
or r10d, 2
movzx edx, cl
mov eax, dword [rdi + rdx*4]
xor eax, r8d
mov dword [rbx], eax
movzx eax, al
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [rbx + 4], eax
shr rax, 0x18
xor rax, r9
shr r9d, 8
movzx eax, al
mov eax, dword [rdi + rax*4]
xor eax, r9d
mov dword [rbx + 8], eax
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r11b
mov byte [rsp + rsi + 0x20], al
inc rsi
cmp rsi, r15
jl 0x14000c2a6
mov r8, rdi
mov rdx, rbx
mov rcx, rbp
call fcn.14000c494
lea r11, [rsp + 0x20]
mov rsi, r14
sub r11, r14
mov r8d, dword [rbx + 8]
mov r10d, r8d
mov edx, dword [rbx]
and r10d, r13d
movzx r9d, byte [r11 + rsi]
mov eax, edx
xor rax, r9
shr edx, 8
movzx ecx, al
or r10d, 2
mov eax, dword [rdi + rcx*4]
xor eax, edx
mov dword [rbx], eax
movzx eax, al
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [rbx + 4], eax
shr rax, 0x18
xor rax, r8
shr r8d, 8
movzx eax, al
mov eax, dword [rdi + rax*4]
xor eax, r8d
mov dword [rbx + 8], eax
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
mov byte [rsi], al
inc rsi
sub r15, 1
jne 0x14000c339
mov edx, dword [rbx]
mov r9d, dword [rbx + 8]
mov r10d, r9d
mov r11d, dword [rsp + 0x78]
and r10d, r13d
or r10d, 2
mov r8d, r11d
shr r8d, 0x10
mov eax, r8d
shr r11d, 0x18
xor rax, rdx
shr edx, 8
movzx ecx, al
mov eax, dword [rdi + rcx*4]
xor eax, edx
mov dword [rbx], eax
movzx eax, al
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [rbx + 4], eax
shr rax, 0x18
xor rax, r9
shr r9d, 8
movzx eax, al
mov eax, dword [rdi + rax*4]
xor eax, r9d
mov dword [rbx + 8], eax
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r8b
mov byte [r14 + 0xa], al
mov eax, r11d
mov r8d, dword [rbx + 8]
mov r10d, r8d
mov edx, dword [rbx]
and r10d, r13d
xor rax, rdx
or r10d, 2
movzx ecx, al
shr edx, 8
mov eax, dword [rdi + rcx*4]
xor eax, edx
mov dword [rbx], eax
movzx eax, al
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [rbx + 4], eax
shr rax, 0x18
xor rax, r8
shr r8d, 8
movzx ecx, al
lea eax, [r15 + 0xc]
mov ecx, dword [rdi + rcx*4]
xor ecx, r8d
mov dword [rbx + 8], ecx
mov ecx, r10d
xor ecx, 1
imul ecx, r10d
shr ecx, 8
xor cl, r11b
mov byte [r14 + 0xb], cl
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r13
ret