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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x40
mov rax, qword [0x1401740c0]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov eax, dword [0x1401781e0]
mov rdi, r9
inc eax
mov rbx, r8
mov dword [0x1401781e0], eax
mov r15, rdx
mov r14, rcx
cmp eax, 1
jne 0x14005c210
xor ecx, ecx
call fcn.1400d93cc
xor eax, 0xbb40e64e
mov ecx, eax
call fcn.1400e1810
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.14005c134
xor esi, esi
mov r12d, 0xfffd
mov ebp, esi
call fcn.1400e17e4
mov r8d, dword [rbx + 8]
mov r9d, r8d
mov ecx, dword [rbx]
and r9d, r12d
sar eax, 7
or r9d, 2
movzx r10d, al
mov eax, r10d
xor rcx, rax
movzx eax, cl
mov ecx, dword [rbx]
shr ecx, 8
mov edx, dword [rdi + rax*4]
xor edx, ecx
movzx eax, dl
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
mov dword [rbx], edx
inc eax
mov ecx, eax
mov dword [rbx + 4], eax
shr ecx, 0x18
xor rcx, r8
shr r8d, 8
movzx eax, cl
mov eax, dword [rdi + rax*4]
xor eax, r8d
mov dword [rbx + 8], eax
mov eax, r9d
xor eax, 1
imul eax, r9d
shr eax, 8
xor al, r10b
mov byte [rsp + rbp + 0x20], al
inc rbp
cmp rbp, 0xa
jl 0x14005c228
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.14005c134
lea rax, [rsp + 0x20]
mov r14, r15
sub r14, rax
mov r8d, dword [rbx + 8]
lea r11, [rsp + 0x20]
mov eax, dword [rbx]
add r11, rsi
mov r10d, r8d
inc rsi
and r10d, r12d
or r10d, 2
movzx r9d, byte [r11]
mov ecx, r9d
xor rcx, rax
movzx eax, cl
mov ecx, dword [rbx]
shr ecx, 8
mov edx, dword [rdi + rax*4]
xor edx, ecx
movzx eax, dl
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
mov dword [rbx], edx
inc eax
mov ecx, eax
mov dword [rbx + 4], eax
shr ecx, 0x18
xor rcx, r8
shr r8d, 8
movzx eax, cl
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 [r14 + r11], al
cmp rsi, 0xa
jl 0x14005c2b8
mov r9d, dword [rbx + 8]
mov r10d, r9d
mov eax, dword [rbx]
and r10d, r12d
mov r11d, dword [rsp + 0xa0]
or r10d, 2
mov r8d, r11d
shr r11d, 0x18
shr r8d, 0x10
mov ecx, r8d
xor rcx, rax
movzx eax, cl
mov ecx, dword [rbx]
shr ecx, 8
mov edx, dword [rdi + rax*4]
xor edx, ecx
mov dword [rbx], edx
movzx eax, dl
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
inc eax
mov dword [rbx + 4], eax
mov ecx, eax
shr ecx, 0x18
xor rcx, r9
shr r9d, 8
movzx eax, cl
mov ecx, r11d
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 [r15 + 0xa], al
mov r8d, dword [rbx + 8]
mov r10d, r8d
mov eax, dword [rbx]
and r10d, r12d
xor rcx, rax
or r10d, 2
movzx eax, cl
mov ecx, dword [rbx]
shr ecx, 8
mov edx, dword [rdi + rax*4]
xor edx, ecx
movzx eax, dl
add eax, dword [rbx + 4]
imul eax, eax, 0x8088405
mov dword [rbx], edx
inc eax
mov ecx, eax
mov dword [rbx + 4], eax
shr ecx, 0x18
xor rcx, r8
shr r8d, 8
movzx eax, cl
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, r11b
mov byte [r15 + 0xb], al
mov eax, reloc.WS2_32.dll_inet_ntoa
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.1400b0730
add rsp, 0x40
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret