Function at 0x14000f220
Capabilities:
Encode data using xor
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1f0
movaps xmmword [rsp + 0x1e0], xmm6
mov rsi, rcx
cmp word [rdx + 0xb8], 8
jne 0x14000f285
mov qword [rsi + 8], 2
lea rax, [0x1400e3d15]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], 0x20
mov qword [rsi], 5
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x1e0]
add rsp, 0x1f0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov rbx, qword [rsp + 0x258]
test r9, r9
je 0x14000f323
mov rax, qword [rsp + 0x250]
test bx, bx
je 0x14000f339
mov rcx, rbx
shr rcx, 0x10
mov rdx, qword [rdx + 0x70]
lea r10d, [rcx*4 + 0x3fc]
and r10d, 0x3fc
sub rdx, r10
add rdx, 0xffffffffffffffec
mov r10, qword [r8 + 0x10]
mov qword [rsp + 0x30], r10
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x40], cl
mov qword [rsp + 0x38], rdx
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x20]
mov r8, r9
mov r9, rax
call fcn.140017a90
mov r12, qword [rsp + 0x50]
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
cmp r12, 3
jne 0x14000f381
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rdi
mov qword [rsi + 8], r14
jmp 0x14000f261
test bx, bx
je 0x14000f476
mov qword [rsi + 8], 4
jmp 0x14000f261
cmp byte [rdx + 0xd0], 0
je 0x14000f3a6
cmp word [rdx + 0xc4], 1
jne 0x14000f3a6
movzx r14d, byte [rdx + 0xca]
movzx ecx, byte [rdx + 0xcb]
shl ecx, 0x15
shl r14d, 0x1b
or r14d, ecx
xor ebp, ebp
test rax, rax
jne 0x14000f3b9
mov edx, 0x12345678
mov r10d, 0x23456789
mov ecx, 0x34567890
jmp 0x14000f421
movups xmm6, xmmword [rsp + 0x70]
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x130]
mov r8d, 0xb0
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14000f487
mov r14d, dword [rdx + 0xbc]
shl r14, 0x20
mov bpl, 1
test rax, rax
je 0x14000f36c
mov ecx, 0x34567890
mov r10d, 0x23456789
mov edx, 0x12345678
xor r11d, r11d
lea rdi, [0x1400e41e0]
nop word cs:[rax + rax]
movzx r15d, byte [r9 + r11]
xor r15b, dl
shr edx, 8
movzx r15d, r15b
xor edx, dword [rdi + r15*4]
movzx r15d, dl
add r15d, r10d
imul r10d, r15d, 0x8088405
inc r10d
mov r15d, r10d
shr r15d, 0x18
movzx r12d, cl
xor r12d, r15d
shr ecx, 8
xor ecx, dword [rdi + r12*4]
inc r11
cmp rax, r11
jne 0x14000f3e0
mov rax, qword [r8 + 0x10]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [r8]
movaps xmmword [rsp + 0x50], xmm0
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], r10d
mov dword [rsp + 0x70], ecx
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0x20]
mov r8d, 0xc
call fcn.140013f40
mov rdi, rax
test rax, rax
je 0x14000f4bd
xor r15d, r15d
jmp 0x14000f5a2
mov r14, qword [r8]
mov r15, qword [r8 + 8]
mov rdi, qword [r8 + 0x10]
mov r12d, 3
mov qword [rsi], r12
mov qword [rsi + 8], r14
mov qword [rsi + 0x10], r15
mov qword [rsi + 0x18], rdi
movups xmmword [rsi + 0x20], xmm6
lea rcx, [rsi + 0x30]
lea rdx, [rsp + 0x130]
mov r8d, 0xb0
call sub.VCRUNTIME140.dll_memcpy
mov word [rsi + 0xe0], bx
jmp 0x14000f268
mov eax, dword [rsp + 0x70]
mov ecx, dword [rsp + 0x68]
mov edx, dword [rsp + 0x6c]
xor r9d, r9d
lea r8, [0x1400e41e0]
nop word cs:[rax + rax]
mov r11d, eax
or r11d, 3
mov r10d, r11d
and r10d, 0xfffffffe
imul r10d, r11d
shr r10d, 8
xor r10b, byte [rsp + r9 + 0x20]
mov byte [rsp + r9 + 0x20], r10b
lea r11, [r9 + 1]
mov r9d, ecx
xor r9b, r10b
shr ecx, 8
movzx r9d, r9b
xor ecx, dword [r8 + r9*4]
movzx r9d, cl
add r9d, edx
imul edx, r9d, 0x8088405
inc edx
mov r9d, edx
shr r9d, 0x18
movzx r10d, al
xor r10d, r9d
shr eax, 8
xor eax, dword [r8 + r10*4]
mov r9, r11
cmp r11, 0xc
jne 0x14000f4e0
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x68], ecx
mov dword [rsp + 0x6c], edx
movzx eax, byte [rsp + 0x2b]
test bpl, bpl
je 0x14000f56a
shr r14, 0x38
mov r15d, 4
cmp al, r14b
je 0x14000f579
jmp 0x14000f5a2
shr r14d, 0x18
mov r15d, 4
cmp al, r14b
jne 0x14000f568
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x60]
test r14, r14
je 0x14000f59d
movups xmm6, xmmword [rsp + 0x68]
mov r12d, 4
jmp 0x14000f487
mov rax, qword [rsp + 0x68]
mov qword [rsi + 8], r15
mov qword [rsi + 0x10], rdi
mov qword [rsi + 0x18], rax
jmp 0x14000f261