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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rbx, r9
mov rbp, r8
mov rdi, rcx
call fcn.1400bac70
lea rax, vtable.CZipAutoBuffer.0
mov qword [rsp + 0x20], rax
mov ecx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
call fcn.1400934b0
mov rsi, rax
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x30], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
xor r9d, r9d
lea r8d, [r9 + 0xc]
mov rdx, rax
mov rcx, rbx
call fcn.1400aee80
mov r12d, dword [rdi + 0x10]
mov r15d, dword [rdi + 8]
mov r11d, dword [rdi + 0xc]
lea r14, [rsi + 2]
mov r13d, 2
lea rsi, [0x1403464e0]
nop
mov eax, r12d
and eax, 0xfffd
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
sar ecx, 8
movsx eax, byte [r14 - 2]
xor ecx, eax
xor rcx, r15
movzx edx, cl
mov eax, r15d
shr eax, 8
xor eax, dword [rsi + rdx*4]
mov edx, eax
mov r9d, eax
mov dword [rdi + 8], eax
movzx eax, al
add r11d, eax
imul r11d, r11d, 0x8088405
inc r11d
mov dword [rdi + 0xc], r11d
mov eax, r11d
shr eax, 0x18
xor rax, r12
movzx ecx, al
mov eax, r12d
shr eax, 8
xor eax, dword [rsi + rcx*4]
mov r8d, eax
mov r10d, eax
mov dword [rdi + 0x10], eax
and eax, 0xfffd
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
sar ecx, 8
movsx eax, byte [r14 - 1]
xor ecx, eax
xor rcx, rdx
movzx eax, cl
shr r9d, 8
xor r9d, dword [rsi + rax*4]
mov edx, r9d
mov dword [rdi + 8], r9d
movzx eax, r9b
add r11d, eax
imul r11d, r11d, 0x8088405
inc r11d
mov dword [rdi + 0xc], r11d
mov eax, r11d
shr eax, 0x18
xor rax, r8
movzx ecx, al
shr r10d, 8
xor r10d, dword [rsi + rcx*4]
mov r8d, r10d
mov dword [rdi + 0x10], r10d
mov eax, r10d
and eax, 0xfffd
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
sar ecx, 8
movsx eax, byte [r14]
xor ecx, eax
xor rcx, rdx
movzx eax, cl
shr r9d, 8
xor r9d, dword [rsi + rax*4]
mov edx, r9d
mov dword [rdi + 8], r9d
movzx eax, r9b
add r11d, eax
imul r11d, r11d, 0x8088405
inc r11d
mov dword [rdi + 0xc], r11d
mov eax, r11d
shr eax, 0x18
xor rax, r8
movzx ecx, al
shr r10d, 8
xor r10d, dword [rsi + rcx*4]
mov r8d, r10d
mov dword [rdi + 0x10], r10d
mov eax, r10d
and eax, 0xfffd
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
sar ecx, 8
movsx eax, byte [r14 + 1]
xor ecx, eax
xor rcx, rdx
movzx eax, cl
shr r9d, 8
xor r9d, dword [rsi + rax*4]
mov edx, r9d
mov dword [rdi + 8], r9d
movzx eax, r9b
add r11d, eax
imul r11d, r11d, 0x8088405
inc r11d
mov dword [rdi + 0xc], r11d
mov eax, r11d
shr eax, 0x18
xor rax, r8
movzx ecx, al
shr r10d, 8
xor r10d, dword [rsi + rcx*4]
mov r8d, r10d
mov dword [rdi + 0x10], r10d
mov eax, r10d
and eax, 0xfffd
or eax, 2
mov ecx, eax
xor ecx, 1
imul ecx, eax
sar ecx, 8
movsx eax, byte [r14 + 2]
xor ecx, eax
xor rcx, rdx
movzx eax, cl
shr r9d, 8
xor r9d, dword [rsi + rax*4]
mov edx, r9d
mov dword [rdi + 8], r9d
movzx eax, r9b
add r11d, eax
imul r11d, r11d, 0x8088405
inc r11d
mov dword [rdi + 0xc], r11d
mov eax, r11d
shr eax, 0x18
xor rax, r8
movzx ecx, al
shr r10d, 8
xor r10d, dword [rsi + rcx*4]
mov r8d, r10d
mov dword [rdi + 0x10], r10d
mov eax, r10d
and eax, 0xfffd
or eax, 2
mov ebx, eax
xor ebx, 1
imul ebx, eax
sar ebx, 8
xor bl, byte [r14 + 3]
movsx eax, bl
xor rax, rdx
movzx ecx, al
shr r9d, 8
xor r9d, dword [rsi + rcx*4]
mov r15d, r9d
mov dword [rdi + 8], r9d
movzx eax, r9b
add r11d, eax
imul r11d, r11d, 0x8088405
inc r11d
mov dword [rdi + 0xc], r11d
mov eax, r11d
shr eax, 0x18
movsx ecx, al
xor rcx, r8
movzx eax, cl
shr r10d, 8
xor r10d, dword [rsi + rax*4]
mov r12d, r10d
mov dword [rdi + 0x10], r10d
lea r14, [r14 + 6]
sub r13, 1
jne 0x1400ba680
cmp byte [rsp + 0x90], r13b
mov rsi, qword [rsp + 0x28]
jne 0x1400ba90e
movzx eax, byte [rbp + 0xc]
shr al, 3
test al, 1
je 0x1400ba8fe
xor eax, eax
cmp byte [rbp + 0x11], bl
jmp 0x1400ba903
xor eax, eax
cmp byte [rbp + 0x17], bl
sete al
test eax, eax
jne 0x1400ba90e
xor bl, bl
jmp 0x1400ba910
mov bl, 1
mov rcx, rsi
call fcn.1400934c0
movzx eax, bl
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret