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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x148
mov r14, rdx
mov rbx, rcx
cmp byte [rdx + 0xb9], 0
je 0x14000f512
mov rax, qword [r14 + 0x78]
sub rax, 1
jb 0x14000fa89
mov r12, qword [r14 + 0x70]
imul r13, rax, 0xb0
mov rax, qword [r12 + r13 + 0x38]
mov rbp, qword [r12 + r13 + 0x40]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rbp
cmp rbp, 0xffff
jbe 0x14000f37c
lea rdx, [0x1403e7674]
mov r8d, 0x1e
mov cl, 0x15
call fcn.1400ad306
jmp 0x14000f4dd
mov qword [rsp + 0x28], rbx
lea rax, [r12 + r13]
add rax, 0x38
mov qword [rsp + 0xe8], rax
lea rsi, [rsp + 0x48]
lea rdi, [rsp + 0x38]
lea r15, [0x1403e7506]
test rbp, rbp
je 0x14000f4f6
cmp rbp, 4
jb 0x14000f7e7
mov rcx, rsi
mov rdx, rdi
call fcn.1401e0c0a
cmp word [rsp + 0x48], 0
jne 0x14000f4ef
movzx ebx, word [rsp + 0x4a]
mov word [rsp + 0x36], bx
mov rcx, rsi
mov rdx, rdi
call fcn.1401e0c0a
cmp word [rsp + 0x48], 0
jne 0x14000f4ef
cmp bx, 1
je 0x14000f7f6
cmp bx, 0x20
jb 0x14000f447
movzx ecx, word [rsp + 0x4a]
add rbp, 0xfffffffffffffffc
xor eax, eax
cmp rax, 0x62
je 0x14000f41e
lea rdx, [rax + 2]
cmp word [rax + r15], bx
mov rax, rdx
jne 0x14000f408
jmp 0x14000f447
cmp rbp, rcx
jb 0x14000f851
mov rdx, qword [rsp + 0x40]
mov rbp, rdx
sub rbp, rcx
jb 0x14000fa95
add qword [rsp + 0x38], rcx
mov qword [rsp + 0x40], rbp
jmp 0x14000f3a2
lea rax, [rsp + 0x36]
lea rcx, [rsp + 0xf0]
mov qword [rcx], rax
lea rax, [fcn.1400a1590]
mov qword [rcx + 8], rax
mov eax, 2
mov qword [rsp + 0x48], rax
and qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 6
and qword [rsp + 0x68], 0
movabs rdx, 0xc00000020
mov qword [rsp + 0x70], rdx
mov byte [rsp + 0x78], 3
lea r8, [0x1403e7638]
lea rdx, [rsp + 0x118]
mov qword [rdx], r8
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], rsi
mov eax, 1
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rsi, [rsp + 0x100]
mov rcx, rsi
call fcn.14009a7f0
mov rcx, rsi
call fcn.1401e0c8a
mov rbx, qword [rsp + 0x28]
xor ecx, ecx
mov qword [rbx], rcx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rdx
jmp 0x14000f913
mov rax, qword [rsp + 0x50]
jmp 0x14000f4d8
cmp byte [r14 + 0xba], 0
mov rbx, qword [rsp + 0x28]
je 0x14000f86a
and word [r14 + 0xb9], 0
lea rsi, [rsp + 0x48]
mov rcx, rsi
mov rdx, r14
xor r8d, r8d
xor r9d, r9d
call fcn.14000e312
mov rax, qword [rsi]
cmp rax, 4
jne 0x14000f5bd
lea rax, [rsp + 0x48]
mov ecx, 0xd
mov rdi, rax
mov rsi, r14
rep movsq qword [rdi], qword [rsi]
and qword [r14], 0
cmp dword [rax], 1
jne 0x14000faa1
movabs r13, 0x8000000000000000
lea rsi, [rsp + 0x50]
cmp qword [rsi], r13
jne 0x14000f5ce
lea rdi, [r14 + 8]
mov rcx, r14
call fcn.1400178ef
mov qword [r14], 1
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmmword [rdi + 0x20], xmm2
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
mov rcx, r14
call fcn.14000e2b7
cmp byte [r14 + 0xbb], 0
je 0x14000f719
xor eax, eax
mov byte [r14 + 0xb8], al
mov byte [r14 + 0xbb], al
jmp 0x14000f726
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rbx + 8], xmm0
mov qword [rbx], rax
jmp 0x14000f913
mov qword [rsp + 0x28], rbx
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0xc0], xmm1
movaps xmmword [rsp + 0xb0], xmm0
mov bl, byte [r14 + 0x9f]
mov rdi, qword [rsp + 0xb8]
mov r15, qword [rsp + 0xc0]
lea r9, str.C:UsersEFE.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srczipcrypto.rs
mov r8d, 0xb
mov rcx, rdi
mov rdx, r15
call fcn.140087d8f
mov byte [rax], bl
mov ecx, dword [rsp + 0xd8]
mov ebp, dword [rsp + 0xd0]
mov eax, dword [rsp + 0xd4]
xor edx, edx
lea r8, [0x1403e7694]
mov r9d, 0xff
cmp r15, rdx
je 0x14000f6ad
mov r10b, byte [rdi + rdx]
mov r12d, ecx
or r12d, 3
mov r11d, r12d
and r11d, 0xfffffffe
mov ebx, ebp
shr ebx, 8
xor bpl, r10b
movzx ebp, bpl
xor ebx, dword [r8 + rbp*4]
imul r11d, r12d
mov ebp, ebx
and ebx, r9d
add ebx, eax
imul eax, ebx, 0x8088405
inc eax
mov ebx, eax
shr ebx, 0x18
mov r12d, ecx
and ecx, r9d
xor ecx, ebx
shr r11d, 8
shr r12d, 8
xor r12d, dword [r8 + rcx*4]
xor r11b, r10b
mov byte [rdi + rdx], r11b
inc rdx
mov ecx, r12d
jmp 0x14000f64b
mov dword [rsp + 0xd8], ecx
mov dword [rsp + 0xd0], ebp
mov dword [rsp + 0xd4], eax
mov r12, qword [rsp + 0xc8]
mov rcx, r12
mov rdx, rdi
mov r8, r15
call fcn.1401e0a50
test rax, rax
je 0x14000f732
mov r15, rax
lea rcx, [rsp + 0xb0]
call fcn.140017a02
mov rax, qword [rsp + 0x28]
and qword [rax], 0
mov qword [rax + 8], r15
cmp dword [rsp + 0x48], 1
jne 0x14000f77e
cmp qword [rsp + 0x50], r13
jne 0x14000f913
mov rcx, rsi
call fcn.140017844
jmp 0x14000f913
mov rsi, rax
mov rax, qword [r14 + 0x78]
sub rax, 1
jae 0x14000f78d
mov qword [rbx], 4
jmp 0x14000f913
mov rcx, qword [rsp + 0xb0]
mov rdx, rdi
call fcn.1401ddf18
mov rcx, r14
call fcn.1400178ef
mov qword [r14], 1
mov qword [r14 + 8], r13
mov qword [r14 + 0x10], r12
cmp qword [rsp + 0x48], 1
jne 0x14000f7d3
cmp qword [rsp + 0x50], r13
mov rbx, qword [rsp + 0x28]
jne 0x14000f592
mov rcx, rsi
call fcn.140017844
jmp 0x14000f592
lea rcx, [rsp + 0x48]
call fcn.1400178ef
jmp 0x14000f913
mov r12, qword [r14 + 0x70]
mov ecx, dword [r14 + 0x9c]
imul r13, rax, 0xb0
mov dword [r12 + r13 + 0x9c], ecx
mov rax, qword [r14 + 0xb0]
mov qword [r12 + r13 + 0x78], rax
mov rdx, qword [rsi]
lea rdi, [rsp + 0x48]
mov rcx, rdi
call fcn.140008453
cmp qword [rdi], 0
je 0x14000f805
mov rax, qword [rsp + 0x50]
jmp 0x14000f90b
lea rcx, [rsp + 0x48]
call fcn.1400178ef
mov rbx, qword [rsp + 0x28]
jmp 0x14000f592
lea rdx, str.Incomplete_extra_data_headerExtra_data_exceeds_extra_field
mov r8d, 0x1c
jmp 0x14000f85e
lea rdx, [0x1403e74e4]
mov r8d, 0x22
jmp 0x14000f85e
mov rbp, rbx
lea r15, [rsp + 0x48]
mov rdi, qword [r15 + 8]
mov rax, rdi
sub rax, qword [r14 + 0xa8]
mov qword [r12 + r13 + 0x70], rax
mov r9, qword [r12 + r13 + 0x80]
add r9, 0xe
mov rdx, qword [rsi]
mov rcx, r15
xor r8d, r8d
call fcn.1401b7b60
cmp qword [r15], 0
je 0x14000f8ee
mov rax, qword [rsp + 0x50]
mov rbx, rbp
jmp 0x14000f90b
lea rdx, str.Extra_data_size_exceeds_extra_fieldExtra_data_header_ID__requires_crate_feature__unreserved_
mov r8d, 0x23
mov cl, 0x27
call fcn.1400ad306
jmp 0x14000f4d8
mov rcx, r14
call fcn.14000e2b7
mov rsi, rax
mov r15, qword [rsp + 0xe8]
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
mov rcx, qword [rax]
call fcn.1401e0a50
test rax, rax
jne 0x14000f4dd
lea rax, [r12 + r13]
add rax, 0x90
mov rdi, qword [r15 + 8]
add rdi, qword [rax]
mov qword [r14 + 0xa8], rdi
mov qword [rax], rdi
mov bpl, byte [rax + 0x18]
mov rbx, qword [r15 + 8]
mov r9, qword [rax - 0x10]
add r9, 0x1c
mov rdx, qword [rsi]
lea r15, [rsp + 0x48]
mov rcx, r15
xor r8d, r8d
call fcn.1401b7b60
cmp qword [r15], 0
je 0x14000f991
mov rax, qword [rsp + 0x50]
xor ecx, ecx
mov rbx, qword [rsp + 0x28]
jmp 0x14000f4df
mov eax, 0x9c
add rax, r12
add rax, r13
mov edx, dword [rax]
mov rcx, qword [rsi]
call fcn.140030cfd
test rax, rax
mov rbx, rbp
je 0x14000f927
and qword [rbx], 0
mov qword [rbx + 8], rax
add rsp, 0x148
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r15, [r12 + r13]
add r15, 0x78
cmp byte [r15 + 0x30], 0
je 0x14000f9d6
lea rax, [r12 + r13]
add rax, 0x80
mov rcx, qword [rax]
mov rax, qword [rax - 0x70]
lea r9, [rcx + rax + 0x22]
mov rdx, qword [rsi]
lea rbx, [rsp + 0x48]
mov rcx, rbx
xor r8d, r8d
call fcn.1401b7b60
cmp qword [rbx], 0
jne 0x14000f844
mov rdx, qword [r15]
mov rcx, qword [rsi]
call fcn.140030d81
test rax, rax
mov rbx, rbp
jne 0x14000f90b
mov rdx, qword [r15 - 8]
mov rcx, qword [rsi]
call fcn.140030d81
jmp 0x14000fa18
lea edx, [rbx + 0x14]
test bpl, bpl
cmove edx, ebx
mov rcx, qword [rsi]
call fcn.140030cca
test rax, rax
mov rbx, qword [rsp + 0x28]
jne 0x14000f4dd
mov rdx, qword [rsi]
lea rsi, [rsp + 0x48]
mov rcx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.1401b7b60
cmp qword [rsi], 0
je 0x14000fa46
mov rax, qword [rsp + 0x50]
jmp 0x14000f4dd
mov rdx, qword [r15 - 8]
mov rax, rdx
shr rax, 0x20
je 0x14000f9fc
lea rdx, str.Large_file_option_has_not_been_setShould_have_switched_to_stored_and_unencrypted_beforehand
mov r8d, 0x22
mov cl, 0x27
call fcn.1400d5734
jmp 0x14000f90b
mov rcx, qword [rsi]
call fcn.140030cfd
test rax, rax
jne 0x14000f90b
mov edx, dword [r15]
mov rcx, qword [rsi]
call fcn.140030cfd
test rax, rax
jne 0x14000f90b
mov rdx, qword [rsi]
lea rsi, [rsp + 0x48]
mov rcx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.1401b7b60
cmp qword [rsi], 0
jne 0x14000f7c9
jmp 0x14000f5a8
movzx r8d, word [r12 + r13 + 0x98]
mov r9d, dword [r12 + r13 + 0x60]
mov eax, dword [r12 + r13 + 0x64]
mov dword [rsp + 0x20], eax
lea rsi, [rsp + 0x48]
mov rcx, rsi
mov rdx, r14
call fcn.14000e312
mov rcx, qword [rsi]
cmp rcx, 4
je 0x14000f509
mov rax, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
jmp 0x14000f4df
lea rcx, str.C:UsersEFE.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srcwrite.rshu__
call fcn.1400a17b0
lea r8, str.C:UsersEFE.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srcwrite.rshu__
call fcn.14009d400
lea rcx, str.internal_error:_entered_unreachable_code
lea r8, str.C:UsersEFE.cargo_registry_srcindex.crates.io_6f17d22bba15001fzip_0.6.6_srcwrite.rshu__
mov edx, 0x28
call fcn.14009e210
int3