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

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x70
mov rax, qword [0x140276168]
xor rax, rsp
mov qword [rsp + 0x68], rax
mov rdi, rdx
mov rbx, rcx
mov qword [rsp + 0x20], rcx
mov r15, rcx
mov qword [rsp + 0x28], rdx
cmp dword [rcx + 0x164], 0xc
je 0x14011db5e
mov edx, 0x77
lea rcx, str...LinkNodesWzStdDecrypt.c
call fcn.140015ac0
nop
jmp 0x14011db6d
mov byte [rbx + 0x168], 0
mov rcx, rdi
call fcn.1400181c0
test al, al
jne 0x14011db8c
movzx eax, byte [rbx + 0x168]
jmp 0x14011dfe1
mov dword [rbx + 0x16c], 0x12345678
mov dword [rbx + 0x170], 0x23456789
mov dword [rbx + 0x174], 0x34567890
lea rcx, [rsp + 0x30]
call fcn.140016d10
nop
xor r12d, r12d
mov r14d, r12d
mov rcx, rdi
call fcn.140018090
test rax, rax
je 0x14011dc62
mov esi, r12d
lea r15, [rbx + 0x158]
nop word [rax + rax]
lea rdx, [rsp + 0x30]
mov rcx, rdi
call fcn.140018080
movzx ecx, byte [rax + rsi]
mov r8, qword [r15]
movzx eax, byte [rbx + 0x16c]
xor rax, rcx
mov ecx, dword [rbx + 0x16c]
shr ecx, 8
xor ecx, dword [r8 + rax*4]
mov dword [rbx + 0x16c], ecx
movzx eax, cl
add eax, dword [rbx + 0x170]
imul edx, eax, 0x8088405
inc edx
mov dword [rbx + 0x170], edx
shr rdx, 0x18
movzx eax, byte [rbx + 0x174]
xor rdx, rax
mov eax, dword [rbx + 0x174]
shr eax, 8
xor eax, dword [r8 + rdx*4]
mov dword [rbx + 0x174], eax
inc r14d
lea rsi, [rsi + 1]
mov rcx, rdi
call fcn.140018090
movsxd rcx, r14d
cmp rcx, rax
jb 0x14011dbe0
jmp 0x14011dc69
add r15, 0x158
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.1400174a0
lea rax, [rbx + 0x178]
test rax, rax
je 0x14011dc94
movsd xmm0, qword [rax]
movsd qword [rsp + 0x58], xmm0
mov eax, dword [rax + 8]
mov dword [rsp + 0x60], eax
jmp 0x14011dcad
mov qword [rsp + 0x58], rax
mov dword [rsp + 0x60], eax
call fcn.1400dcda0
mov dword [rax], 0x16
call fcn.1400da6a4
mov rdi, qword [r15]
mov r10d, dword [rbx + 0x16c]
mov r9d, dword [rbx + 0x170]
mov r11d, dword [rbx + 0x174]
movzx esi, r11w
movzx r14d, r10b
nop dword [rax]
movzx ecx, si
or cx, 2
movzx eax, cx
xor ax, 1
movzx ecx, cx
movzx edx, ax
imul edx, ecx
shr dx, 8
xor dl, byte [rsp + r12 + 0x58]
movzx r8d, dl
mov ecx, r8d
movzx eax, r14b
xor rcx, rax
shr r10d, 8
xor r10d, dword [rdi + rcx*4]
mov dword [rbx + 0x16c], r10d
movzx eax, r10b
add eax, r9d
imul ecx, eax, 0x8088405
inc ecx
mov r9d, ecx
mov dword [rbx + 0x170], r9d
shr rcx, 0x18
movzx eax, sil
xor rcx, rax
shr r11d, 8
xor r11d, dword [rdi + rcx*4]
mov dword [rbx + 0x174], r11d
mov byte [rsp + r12 + 0x58], r8b
movzx ecx, r11w
or cx, 2
movzx eax, cx
xor ax, 1
movzx ecx, cx
movzx edx, ax
imul edx, ecx
shr dx, 8
xor dl, byte [rsp + r12 + 0x59]
movzx r8d, dl
mov ecx, r8d
movzx eax, r10b
xor rcx, rax
shr r10d, 8
xor r10d, dword [rdi + rcx*4]
mov dword [rbx + 0x16c], r10d
movzx eax, r10b
add eax, r9d
imul ecx, eax, 0x8088405
inc ecx
mov r9d, ecx
mov dword [rbx + 0x170], r9d
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
xor r11d, dword [rdi + rcx*4]
mov dword [rbx + 0x174], r11d
mov byte [rsp + r12 + 0x59], r8b
movzx ecx, r11w
or cx, 2
movzx eax, cx
xor ax, 1
movzx ecx, cx
movzx edx, ax
imul edx, ecx
shr dx, 8
xor dl, byte [rsp + r12 + 0x5a]
movzx r8d, dl
movzx eax, r10b
xor rax, r8
shr r10d, 8
xor r10d, dword [rdi + rax*4]
mov dword [rbx + 0x16c], r10d
movzx eax, r10b
add eax, r9d
imul ecx, eax, 0x8088405
inc ecx
mov r9d, ecx
mov dword [rbx + 0x170], r9d
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
xor r11d, dword [rdi + rcx*4]
mov dword [rbx + 0x174], r11d
mov byte [rsp + r12 + 0x5a], r8b
movzx ecx, r11w
or cx, 2
movzx eax, cx
xor ax, 1
movzx ecx, cx
movzx edx, ax
imul edx, ecx
shr dx, 8
xor dl, byte [rsp + r12 + 0x5b]
movzx r8d, dl
mov ecx, r8d
movzx eax, r10b
xor rcx, rax
shr r10d, 8
xor r10d, dword [rdi + rcx*4]
mov dword [rbx + 0x16c], r10d
movzx eax, r10b
add eax, r9d
imul ecx, eax, 0x8088405
inc ecx
mov r9d, ecx
mov dword [rbx + 0x170], r9d
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
xor r11d, dword [rdi + rcx*4]
mov dword [rbx + 0x174], r11d
mov byte [rsp + r12 + 0x5b], r8b
movzx ecx, r11w
or cx, 2
movzx eax, cx
xor ax, 1
movzx ecx, cx
movzx edx, ax
imul edx, ecx
shr dx, 8
xor dl, byte [rsp + r12 + 0x5c]
movzx r8d, dl
mov ecx, r8d
movzx eax, r10b
xor rcx, rax
shr r10d, 8
xor r10d, dword [rdi + rcx*4]
mov dword [rbx + 0x16c], r10d
movzx eax, r10b
add eax, r9d
imul ecx, eax, 0x8088405
inc ecx
mov r9d, ecx
mov dword [rbx + 0x170], r9d
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
xor r11d, dword [rdi + rcx*4]
mov dword [rbx + 0x174], r11d
mov byte [rsp + r12 + 0x5c], r8b
movzx ecx, r11w
or cx, 2
movzx eax, cx
xor ax, 1
movzx ecx, cx
movzx edx, ax
imul edx, ecx
movzx ecx, dx
shr ecx, 8
movzx eax, byte [rsp + r12 + 0x5d]
xor ecx, eax
movzx edx, cl
movzx eax, r10b
xor rax, rdx
shr r10d, 8
xor r10d, dword [rdi + rax*4]
mov dword [rbx + 0x16c], r10d
movzx eax, r10b
add eax, r9d
imul ecx, eax, 0x8088405
inc ecx
mov r9d, ecx
mov dword [rbx + 0x170], r9d
shr rcx, 0x18
movzx eax, r11b
xor rcx, rax
shr r11d, 8
xor r11d, dword [rdi + rcx*4]
mov dword [rbx + 0x174], r11d
mov byte [rsp + r12 + 0x5d], dl
add r12, 6
movzx esi, r11w
movzx r14d, r10b
cmp r12, 0xc
jl 0x14011dcd0
movzx ecx, byte [rsp + 0x63]
movzx eax, byte [rbx + 0x163]
cmp cx, ax
je 0x14011dfce
movzx ebx, byte [rbx + 0x168]
lea rcx, [rsp + 0x30]
call fcn.140016ee0
movzx eax, bl
jmp 0x14011dfe1
mov byte [rbx + 0x168], 1
lea rcx, [rsp + 0x30]
call fcn.140016ee0
mov al, 1
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.1400c3d30
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret