Function at 0x14005c510
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 [0x1400c5518]
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 0x14005c547
xor eax, eax
jmp 0x14005cb02
mov eax, dword [0x140249488]
inc eax
mov qword [rsp + 0x40], rdi
mov dword [0x140249488], eax
cmp eax, 1
jne 0x14005c572
xor ecx, ecx
call fcn.140074f64
xor eax, 0xbb40e64e
mov ecx, eax
call fcn.14007cf3c
mov r8, rsi
mov rdx, rbx
mov rcx, rbp
call fcn.14005cb20
xor edi, edi
call fcn.14007cf10
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 0x14005c582
mov r8, rsi
mov rdx, rbx
mov rcx, rbp
call fcn.14005cb20
mov edx, dword [rbx]
mov r8d, dword [rbx + 8]
mov r10d, r8d
movzx r9d, byte [rsp + 0x20]
and r10d, 0xfffd
or r10d, 2
mov eax, r9d
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 dword [rbx + 8], eax
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
mov r9, qword [rsp + 0x21]
mov byte [r14], al
mov edx, dword [rbx]
mov r10d, dword [rbx + 8]
and r10d, 0xfffd
movzx eax, r9b
xor rax, rdx
or r10d, 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, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
mov r9, qword [rsp + 0x22]
mov byte [r14 + 1], al
mov edx, dword [rbx]
mov r10d, dword [rbx + 8]
and r10d, 0xfffd
movzx eax, r9b
xor rax, rdx
or r10d, 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, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
movzx r9d, byte [rsp + 0x23]
mov byte [r14 + 2], al
mov edx, dword [rbx]
mov ecx, edx
mov r10d, dword [rbx + 8]
xor rcx, r9
movzx eax, cl
and r10d, 0xfffd
or r10d, 2
shr edx, 8
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, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
movzx r9d, byte [rsp + 0x24]
mov byte [r14 + 3], al
mov edx, dword [rbx]
mov ecx, edx
mov r10d, dword [rbx + 8]
xor rcx, r9
movzx eax, cl
mov r8d, r10d
and r10d, 0xfffd
shr edx, 8
or r10d, 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
shr rcx, 0x18
xor rcx, r8
shr r8d, 8
movzx eax, cl
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, r9b
mov byte [r14 + 4], al
mov r10d, dword [rbx + 8]
mov r8d, r10d
and r10d, 0xfffd
mov edx, dword [rbx]
or r10d, 2
movzx r9d, byte [rsp + 0x25]
mov ecx, edx
xor rcx, r9
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
shr rcx, 0x18
xor rcx, r8
shr r8d, 8
movzx eax, cl
mov eax, dword [rsi + rax*4]
xor eax, r8d
movzx r8d, byte [rsp + 0x26]
mov dword [rbx + 8], eax
mov ecx, r8d
mov eax, r10d
xor eax, 1
imul eax, r10d
shr eax, 8
xor al, r9b
mov byte [r14 + 5], al
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, recv
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.140067810
add rsp, 0x48
pop r14
pop rsi
pop rbp
pop rbx
ret