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

Disassembly:
push rbx
push rbp
push rsi
push r14
sub rsp, 0x48
mov rax, qword [0x1401b4048]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov rsi, qword [rsp + 0x90]
mov rbx, r9
mov r14, rdx
mov rbp, rcx
cmp r8d, 0xc
jge 0x140067d97
xor eax, eax
jmp 0x14006834e
mov eax, dword [0x1401be95c]
inc eax
mov qword [rsp + 0x40], rdi
mov dword [0x1401be95c], eax
cmp eax, 1
jne 0x140067dc2
xor ecx, ecx
call fcn.1400ef224
xor eax, 0xbb40e64e
mov ecx, eax
call fcn.1400ef174
mov r8, rsi
mov rdx, rbx
mov rcx, rbp
call fcn.140068370
xor edi, edi
call fcn.1400ef148
mov r9d, dword [rbx + 8]
mov r11d, eax
mov r8d, dword [rbx]
mov r10d, r9d
sar r11d, 7
mov edx, r8d
mov ecx, r11d
shr r8d, 8
xor rdx, rcx
and r10d, 0xfffd
or r10d, 2
movzx ecx, dl
mov eax, dword [rsi + rcx*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 [rsi + 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 + rdi + 0x20], al
inc rdi
cmp rdi, 0xa
jl 0x140067dd2
mov r8, rsi
mov rdx, rbx
mov rcx, rbp
call fcn.140068370
mov edx, dword [rbx]
mov r8d, dword [rbx + 8]
mov r10d, r8d
movzx r9d, byte [rsp + 0x20]
and r10d, 0xfffd
mov eax, r9d
or r10d, 2
xor rax, rdx
shr edx, 8
movzx ecx, al
mov eax, dword [rsi + 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 [rsi + rax*4]
xor eax, r8d
mov r8, qword [rsp + 0x21]
mov dword [rbx + 8], eax
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
mov byte [r14], al
mov edx, dword [rbx]
mov r9d, dword [rbx + 8]
and r9d, 0xfffd
movzx eax, r8b
xor rax, rdx
or r9d, 2
movzx ecx, al
shr edx, 8
mov eax, dword [rsi + 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
mov ecx, dword [rbx + 8]
shr rax, 0x18
xor rax, rcx
shr ecx, 8
movzx eax, al
mov eax, dword [rsi + rax*4]
xor eax, ecx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
mov r8, qword [rsp + 0x22]
mov byte [r14 + 1], al
mov edx, dword [rbx]
mov r9d, dword [rbx + 8]
and r9d, 0xfffd
movzx eax, r8b
xor rax, rdx
or r9d, 2
movzx ecx, al
shr edx, 8
mov eax, dword [rsi + 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
mov ecx, dword [rbx + 8]
shr rax, 0x18
xor rax, rcx
shr ecx, 8
movzx eax, al
mov eax, dword [rsi + rax*4]
xor eax, ecx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
movzx r8d, byte [rsp + 0x23]
mov byte [r14 + 2], al
mov edx, dword [rbx]
mov ecx, edx
mov r9d, dword [rbx + 8]
xor rcx, r8
movzx eax, cl
and r9d, 0xfffd
shr edx, 8
or r9d, 2
mov ecx, dword [rsi + rax*4]
xor ecx, edx
mov dword [rbx], ecx
movzx eax, cl
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [rbx + 4], eax
mov ecx, dword [rbx + 8]
shr rax, 0x18
xor rax, rcx
shr ecx, 8
movzx eax, al
mov eax, dword [rsi + rax*4]
xor eax, ecx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
movzx r8d, byte [rsp + 0x24]
mov byte [r14 + 3], al
mov edx, dword [rbx]
mov ecx, edx
mov r9d, dword [rbx + 8]
xor rcx, r8
movzx eax, cl
and r9d, 0xfffd
shr edx, 8
or r9d, 2
mov ecx, dword [rsi + rax*4]
xor ecx, edx
mov dword [rbx], ecx
movzx eax, cl
add eax, dword [rbx + 4]
imul ecx, eax, 0x8088405
inc ecx
mov dword [rbx + 4], ecx
mov edx, dword [rbx + 8]
shr rcx, 0x18
xor rcx, rdx
shr edx, 8
movzx eax, cl
mov eax, dword [rsi + rax*4]
xor eax, edx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
mov byte [r14 + 4], al
mov r9d, dword [rbx + 8]
and r9d, 0xfffd
or r9d, 2
mov edx, dword [rbx]
mov ecx, edx
movzx r8d, byte [rsp + 0x25]
xor rcx, r8
shr edx, 8
movzx eax, cl
mov ecx, dword [rsi + rax*4]
xor ecx, edx
mov dword [rbx], ecx
movzx eax, cl
add eax, dword [rbx + 4]
imul ecx, eax, 0x8088405
inc ecx
mov dword [rbx + 4], ecx
mov edx, dword [rbx + 8]
shr rcx, 0x18
xor rcx, rdx
shr edx, 8
movzx eax, cl
mov eax, dword [rsi + rax*4]
xor eax, edx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
movzx r8d, byte [rsp + 0x26]
mov byte [r14 + 5], al
mov ecx, r8d
mov eax, dword [rbx]
xor rcx, rax
mov r9d, dword [rbx + 8]
movzx eax, cl
and r9d, 0xfffd
mov ecx, dword [rbx]
or r9d, 2
shr ecx, 8
mov edx, dword [rsi + rax*4]
xor edx, ecx
mov dword [rbx], edx
movzx eax, dl
add eax, dword [rbx + 4]
imul ecx, eax, 0x8088405
inc ecx
mov dword [rbx + 4], ecx
mov edx, dword [rbx + 8]
shr rcx, 0x18
xor rcx, rdx
shr edx, 8
movzx eax, cl
mov eax, dword [rsi + rax*4]
xor eax, edx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
movzx r8d, byte [rsp + 0x27]
mov byte [r14 + 6], al
mov ecx, r8d
mov eax, dword [rbx]
xor rcx, rax
mov r9d, dword [rbx + 8]
movzx eax, cl
and r9d, 0xfffd
mov ecx, dword [rbx]
or r9d, 2
shr ecx, 8
mov edx, dword [rsi + rax*4]
xor edx, ecx
mov dword [rbx], edx
movzx eax, dl
add eax, dword [rbx + 4]
imul ecx, eax, 0x8088405
inc ecx
mov dword [rbx + 4], ecx
mov edx, dword [rbx + 8]
shr rcx, 0x18
xor rcx, rdx
mov r11d, dword [rsp + 0x98]
movzx eax, cl
shr edx, 8
mov eax, dword [rsi + rax*4]
xor eax, edx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
movzx r8d, byte [rsp + 0x28]
mov byte [r14 + 7], al
mov ecx, r8d
mov eax, dword [rbx]
xor rcx, rax
mov r9d, dword [rbx + 8]
movzx eax, cl
and r9d, 0xfffd
mov ecx, dword [rbx]
or r9d, 2
shr ecx, 8
mov edx, dword [rsi + rax*4]
xor edx, ecx
mov dword [rbx], edx
movzx eax, dl
add eax, dword [rbx + 4]
imul ecx, eax, 0x8088405
inc ecx
mov dword [rbx + 4], ecx
mov edx, dword [rbx + 8]
shr rcx, 0x18
xor rcx, rdx
shr edx, 8
movzx eax, cl
mov eax, dword [rsi + rax*4]
xor eax, edx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
movzx r8d, byte [rsp + 0x29]
mov byte [r14 + 8], al
mov ecx, r8d
mov eax, dword [rbx]
xor rcx, rax
mov r9d, dword [rbx + 8]
movzx eax, cl
and r9d, 0xfffd
mov ecx, dword [rbx]
or r9d, 2
shr ecx, 8
mov edx, dword [rsi + rax*4]
xor edx, ecx
mov dword [rbx], edx
movzx eax, dl
add eax, dword [rbx + 4]
imul ecx, eax, 0x8088405
inc ecx
mov dword [rbx + 4], ecx
mov edx, dword [rbx + 8]
shr rcx, 0x18
xor rcx, rdx
shr edx, 8
movzx eax, cl
mov eax, dword [rsi + rax*4]
xor eax, edx
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r8b
mov r8d, r11d
mov byte [r14 + 9], al
mov r9d, dword [rbx + 8]
mov r10d, r9d
and r10d, 0xfffd
or r10d, 2
mov edx, dword [rbx]
mov eax, edx
mov rdi, qword [rsp + 0x40]
shr r8d, 0x10
xor rax, r8
shr edx, 8
movzx ecx, al
shr r11d, 0x18
mov eax, dword [rsi + 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 [rsi + rax*4]
xor eax, r9d
mov r9d, r11d
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 r8d, dword [rbx + 8]
mov r10d, r8d
mov edx, dword [rbx]
and r10d, 0xfffd
mov eax, edx
or r10d, 2
xor rax, r9
shr edx, 8
movzx ecx, al
mov eax, dword [rsi + 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 [rsi + rax*4]
xor eax, r8d
mov dword [rbx + 8], eax
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r11b
mov byte [r14 + 0xb], al
mov eax, 0xc
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400bf400
add rsp, 0x48
pop r14
pop rsi
pop rbp
pop rbx
ret