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

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x40
mov rax, qword [0x1400546f0]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, dword [0x140055b94]
mov ebp, edx
mov rsi, rcx
inc eax
mov dword [0x140055b94], eax
cmp eax, 1
jne 0x140008b35
xor ecx, ecx
call fcn.1400214e4
mov rbx, rax
call sub.KERNEL32.dll_GetCurrentProcessId
xor eax, ebx
mov ecx, eax
call fcn.140025d4c
mov rcx, rsi
call fcn.140008a30
xor r13d, r13d
mov ebx, r13d
call fcn.140025d64
mov rcx, qword [0x140055b88]
mov rdi, qword [0x1400a5440]
mov r8d, dword [0x140055b90]
sar eax, 7
inc rbx
movzx r10d, al
mov r9d, r8d
shr r8d, 8
mov eax, r10d
and r9d, 0xfffd
xor rcx, rax
or r9d, 2
movzx eax, cl
mov ecx, dword [0x140055b88]
mov edx, dword [rdi + rax*4]
shr ecx, 8
xor edx, ecx
movzx eax, dl
mov dword [0x140055b88], edx
add eax, dword [0x140055b8c]
imul eax, eax, 0x8088405
inc eax
mov dword [0x140055b8c], eax
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov eax, dword [rdi + rax*4]
xor eax, r8d
mov dword [0x140055b90], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r10b
mov byte [rsp + rbx + 0x1f], al
cmp rbx, 0xa
jl 0x140008b43
mov rcx, rsi
call fcn.140008a30
mov esi, dword [0x140055b90]
mov r14d, dword [0x140055b8c]
mov r12d, dword [0x140055b88]
movzx edx, byte [rsp + r13 + 0x20]
shr r12d, 8
mov r8d, esi
and r8d, 0xfffd
mov eax, edx
shr esi, 8
xor rax, qword [0x140055b88]
or r8d, 2
movzx ecx, al
mov r9d, dword [rdi + rcx*4]
xor r9d, r12d
mov dword [0x140055b88], r9d
movzx r10d, r9b
shr r9d, 8
add r10d, r14d
imul r10d, r10d, 0x8088405
inc r10d
mov dword [0x140055b8c], r10d
mov eax, r10d
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov r11d, dword [rdi + rax*4]
mov eax, r8d
xor eax, 1
xor r11d, esi
mov dword [0x140055b90], r11d
imul eax, r8d
shr eax, 8
mov r8d, r11d
xor al, dl
movzx edx, byte [rsp + r13 + 0x21]
and r8d, 0xfffd
mov byte [rsp + r13 + 0x20], al
or r8d, 2
mov eax, edx
xor rax, qword [0x140055b88]
shr r11d, 8
movzx ecx, al
mov ebx, dword [rdi + rcx*4]
xor ebx, r9d
mov dword [0x140055b88], ebx
movzx r9d, bl
shr ebx, 8
add r9d, r10d
imul r9d, r9d, 0x8088405
inc r9d
mov dword [0x140055b8c], r9d
mov eax, r9d
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov r10d, dword [rdi + rax*4]
mov eax, r8d
xor eax, 1
xor r10d, r11d
mov dword [0x140055b90], r10d
imul eax, r8d
shr eax, 8
mov r8d, r10d
xor al, dl
movzx edx, byte [rsp + r13 + 0x22]
and r8d, 0xfffd
mov byte [rsp + r13 + 0x21], al
mov eax, edx
or r8d, 2
xor rax, qword [0x140055b88]
movzx ecx, al
mov r11d, dword [rdi + rcx*4]
xor r11d, ebx
movzx ebx, r11b
mov dword [0x140055b88], r11d
add ebx, r9d
imul ebx, ebx, 0x8088405
inc ebx
mov eax, ebx
mov dword [0x140055b8c], ebx
shr eax, 0x18
xor rax, qword [0x140055b90]
shr r10d, 8
movzx eax, al
mov r9d, dword [rdi + rax*4]
mov eax, r8d
shr r11d, 8
xor eax, 1
xor r9d, r10d
add r13, 5
mov dword [0x140055b90], r9d
imul eax, r8d
shr eax, 8
mov r8d, r9d
xor al, dl
movzx edx, byte [rsp + r13 + 0x1e]
and r8d, 0xfffd
mov byte [rsp + r13 + 0x1d], al
or r8d, 2
mov eax, edx
xor rax, qword [0x140055b88]
shr r9d, 8
movzx ecx, al
mov r10d, dword [rdi + rcx*4]
xor r10d, r11d
mov dword [0x140055b88], r10d
movzx r11d, r10b
shr r10d, 8
add r11d, ebx
imul r11d, r11d, 0x8088405
inc r11d
mov dword [0x140055b8c], r11d
mov eax, r11d
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov ebx, dword [rdi + rax*4]
mov eax, r8d
xor eax, 1
xor ebx, r9d
mov dword [0x140055b90], ebx
imul eax, r8d
shr eax, 8
mov r8d, ebx
xor al, dl
movzx edx, byte [rsp + r13 + 0x1f]
and r8d, 0xfffd
mov byte [rsp + r13 + 0x1e], al
or r8d, 2
mov eax, edx
xor rax, qword [0x140055b88]
shr ebx, 8
movzx ecx, al
mov r12d, dword [rdi + rcx*4]
xor r12d, r10d
movzx r14d, r12b
mov dword [0x140055b88], r12d
add r14d, r11d
imul r14d, r14d, 0x8088405
inc r14d
mov eax, r14d
mov dword [0x140055b8c], r14d
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov esi, dword [rdi + rax*4]
mov eax, r8d
xor eax, 1
xor esi, ebx
mov dword [0x140055b90], esi
imul eax, r8d
shr eax, 8
xor al, dl
mov byte [rsp + r13 + 0x1f], al
cmp r13, 0xa
jl 0x140008c00
mov edx, ebp
mov r8d, esi
shr r12d, 8
shr edx, 0x10
and r8d, 0xfffd
shr ebp, 0x18
or r8d, 2
mov eax, edx
shr esi, 8
xor rax, qword [0x140055b88]
movzx ecx, al
mov r9d, dword [rdi + rcx*4]
xor r9d, r12d
mov dword [0x140055b88], r9d
movzx r10d, r9b
shr r9d, 8
add r10d, r14d
imul r10d, r10d, 0x8088405
inc r10d
mov dword [0x140055b8c], r10d
mov eax, r10d
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov r11d, dword [rdi + rax*4]
mov eax, r8d
xor eax, 1
xor r11d, esi
mov dword [0x140055b90], r11d
imul eax, r8d
shr eax, 8
mov r8d, r11d
xor al, dl
mov edx, ebp
and r8d, 0xfffd
mov byte [rsp + 0x2a], al
mov eax, edx
or r8d, 2
xor rax, qword [0x140055b88]
shr r11d, 8
movzx ecx, al
mov eax, dword [rdi + rcx*4]
xor eax, r9d
xor r9d, r9d
movzx ecx, al
mov dword [0x140055b88], eax
lea edx, [r9 + 1]
add ecx, r10d
imul ecx, ecx, 0x8088405
inc ecx
mov eax, ecx
mov dword [0x140055b8c], ecx
lea rcx, [rsp + 0x20]
shr eax, 0x18
xor rax, qword [0x140055b90]
movzx eax, al
mov eax, dword [rdi + rax*4]
xor eax, r11d
mov dword [0x140055b90], eax
mov eax, r8d
xor eax, 1
imul eax, r8d
lea r8d, [r9 + 0xc]
shr eax, 8
xor al, bpl
mov byte [rsp + 0x2b], al
call fcn.1400143b0
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400235a0
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret