Function at 0x140005723
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, 0x108
mov r14, rdx
mov rbx, rcx
cmp byte [rdx + 0xb9], 0
je 0x14000591c
mov rax, qword [r14 + 0x78]
sub rax, 1
jb 0x140005e35
imul r15, rax, 0xb0
add r15, qword [r14 + 0x70]
mov rax, qword [r15 + 0x38]
mov r12, qword [r15 + 0x40]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], r12
cmp r12, 0xffff
jbe 0x140005796
lea rdx, [0x14028c35c]
mov r8d, 0x1e
mov cl, 0x15
call fcn.140040192
jmp 0x1400058e9
lea rsi, [rsp + 0x78]
lea rdi, [rsp + 0x68]
lea r13, [0x14028c1ee]
test r12, r12
je 0x140005905
cmp r12, 4
jb 0x140005bee
mov rcx, rsi
mov rdx, rdi
call fcn.14011b535
cmp word [rsp + 0x78], 0
jne 0x1400058fb
movzx ebp, word [rsp + 0x7a]
mov word [rsp + 0x2e], bp
mov rcx, rsi
mov rdx, rdi
call fcn.14011b535
cmp word [rsp + 0x78], 0
jne 0x1400058fb
cmp bp, 1
je 0x140005bfd
cmp bp, 0x20
jb 0x14000584c
movzx ecx, word [rsp + 0x7a]
add r12, 0xfffffffffffffffc
xor eax, eax
cmp rax, 0x62
je 0x140005823
lea rdx, [rax + 2]
cmp word [rax + r13], bp
mov rax, rdx
jne 0x14000580d
jmp 0x14000584c
cmp r12, rcx
jb 0x140005c6b
mov rdx, qword [rsp + 0x70]
mov r12, rdx
sub r12, rcx
jb 0x140005e41
add qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], r12
jmp 0x1400057a7
lea rax, [rsp + 0x2e]
lea rcx, [rsp + 0xe0]
mov qword [rcx], rax
lea rax, [fcn.140037080]
mov qword [rcx + 8], rax
mov eax, 2
mov qword [rsp + 0x78], rax
and qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 6
and qword [rsp + 0x98], 0
movabs rdx, 0xc00000020
mov qword [rsp + 0xa0], rdx
mov byte [rsp + 0xa8], 3
lea r8, [0x14028c320]
lea rdx, [rsp + 0x30]
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 + 0xf0]
mov rcx, rsi
call fcn.14002fe50
mov rcx, rsi
call fcn.14011b796
xor ecx, ecx
mov qword [rbx], rcx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rdx
jmp 0x140005c57
mov rax, qword [rsp + 0x80]
jmp 0x1400058e9
cmp byte [r14 + 0xba], 0
je 0x140005c7f
and word [r14 + 0xb9], 0
lea rsi, [rsp + 0x78]
mov rcx, rsi
mov rdx, r14
xor r8d, r8d
xor r9d, r9d
call fcn.1400048b6
mov rax, qword [rsi]
cmp rax, 4
jne 0x1400059d1
lea rax, [rsp + 0x78]
mov ecx, 0xd
mov rdi, rax
mov rsi, r14
rep movsq qword [rdi], qword [rsi]
and qword [r14], 0
movabs rcx, 0x8000000000000000
mov rax, qword [rax]
cmp rax, 1
jne 0x140005e4d
lea rsi, [rsp + 0x80]
cmp qword [rsi], rcx
jne 0x1400059e5
lea rdi, [r14 + 8]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movaps xmmword [rsp + 0x50], xmm2
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov rcx, r14
call fcn.140008e87
mov qword [r14], 1
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movups xmmword [rdi + 0x20], xmm2
movups xmmword [rdi + 0x10], xmm1
movups xmmword [rdi], xmm0
cmp dword [rsp + 0x78], 1
jne 0x140005b5a
jmp 0x140005b64
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rbx + 8], xmm0
mov qword [rbx], rax
jmp 0x140005c57
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movaps xmmword [rsp + 0x50], xmm2
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov r8, qword [rsp + 0x40]
cmp r8, 0xb
jbe 0x140005e6c
mov eax, dword [r14 + 0x9c]
mov rdi, qword [rsp + 0x38]
shr eax, 0x18
mov byte [rdi + 0xb], al
mov r13d, dword [rsp + 0x58]
mov r15d, dword [rsp + 0x50]
mov eax, dword [rsp + 0x54]
xor ecx, ecx
lea r9, [0x14028c37c]
mov r10d, 0xff
cmp r8, rcx
je 0x140005aa9
mov r11b, byte [rdi + rcx]
mov r12d, r15d
shr r12d, 8
xor r15b, r11b
movzx r15d, r15b
xor r12d, dword [r9 + r15*4]
mov r15d, r12d
and r12d, r10d
add r12d, eax
imul eax, r12d, 0x8088405
inc eax
mov r12d, eax
shr r12d, 0x18
mov edx, r13d
shr edx, 8
mov ebp, r13d
and ebp, r10d
xor ebp, r12d
xor edx, dword [r9 + rbp*4]
or r13d, 3
mov ebp, r13d
and ebp, 0xfffffffe
imul ebp, r13d
shr ebp, 8
xor bpl, r11b
mov byte [rdi + rcx], bpl
inc rcx
mov r13d, edx
jmp 0x140005a42
mov dword [rsp + 0x58], r13d
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x54], eax
mov r15, qword [rsp + 0x48]
mov rcx, r15
mov rdx, rdi
call fcn.14011b37f
mov r12, rax
test rax, rax
je 0x140005b11
lea rcx, [rsp + 0x30]
call fcn.140008f82
and qword [rbx], 0
mov qword [rbx + 8], r12
cmp dword [rsp + 0x78], 1
movabs rax, 0x8000000000000000
jne 0x140005ba1
cmp qword [rsp + 0x80], rax
jne 0x140005c57
mov rcx, rsi
call fcn.140008df3
jmp 0x140005c57
mov rcx, qword [rsp + 0x30]
mov rdx, rdi
call fcn.140064b35
mov rcx, r14
call fcn.140008e87
mov qword [r14], 1
movabs rax, 0x8000000000000000
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], r15
cmp dword [rsp + 0x78], 1
jne 0x140005b5a
cmp qword [rsp + 0x80], rax
jne 0x140005b64
mov rcx, rsi
call fcn.140008df3
jmp 0x140005b64
lea rcx, [rsp + 0x78]
call fcn.140008e87
mov rcx, r14
call fcn.14000485e
cmp byte [r14 + 0xbb], 0
je 0x140005b88
xor eax, eax
mov byte [r14 + 0xb8], al
mov byte [r14 + 0xbb], al
jmp 0x140005b95
mov rsi, rax
mov rax, qword [r14 + 0x78]
sub rax, 1
jae 0x140005bb0
mov qword [rbx], 4
jmp 0x140005c57
lea rcx, [rsp + 0x78]
call fcn.140008e87
jmp 0x140005c57
imul r15, rax, 0xb0
add r15, qword [r14 + 0x70]
mov eax, dword [r14 + 0x9c]
mov dword [r15 + 0x9c], eax
mov rax, qword [r14 + 0xb0]
mov qword [r15 + 0x78], rax
mov rcx, qword [rsi]
call fcn.140003a45
mov rdi, rdx
test rax, rax
je 0x140005c0c
and qword [rbx], 0
mov qword [rbx + 8], rdi
jmp 0x140005c57
lea rdx, str.Incomplete_extra_data_headerExtra_data_exceeds_extra_field
mov r8d, 0x1c
jmp 0x140005c78
lea rdx, [0x14028c1cb]
mov r8d, 0x22
jmp 0x140005c78
mov rax, rdi
sub rax, qword [r14 + 0xa8]
mov qword [r15 + 0x70], rax
mov r8, qword [r15 + 0x80]
add r8, 0xe
mov rcx, qword [rsi]
xor edx, edx
call fcn.1400ebf50
test rax, rax
jne 0x140005c4f
mov edx, dword [r15 + 0x9c]
mov rcx, qword [rsi]
call fcn.140010785
mov rdx, rax
test rax, rax
je 0x140005cec
and qword [rbx], 0
mov qword [rbx + 8], rdx
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rdx, str.Extra_data_size_exceeds_extra_fieldExtra_data_header_ID__requires_crate_feature__unreserved_
mov r8d, 0x23
mov cl, 0x27
jmp 0x14000578c
mov rcx, r14
call fcn.14000485e
mov rsi, rax
mov rdx, qword [r15 + 0x38]
mov r8, qword [r15 + 0x40]
mov rcx, qword [rax]
call fcn.14011b37f
test rax, rax
jne 0x1400058e9
mov rdi, qword [r15 + 0x40]
add rdi, qword [r15 + 0x90]
mov qword [r14 + 0xa8], rdi
mov qword [r15 + 0x90], rdi
mov bpl, byte [r15 + 0xa8]
mov r12, qword [r15 + 0x40]
mov r8, qword [r15 + 0x80]
add r8, 0x1c
mov rcx, qword [rsi]
xor edx, edx
call fcn.1400ebf50
mov rcx, rax
test rax, rax
je 0x140005d49
mov rax, rdx
jmp 0x1400058e9
cmp byte [r15 + 0xa8], 0
je 0x140005dc5
mov rax, qword [r15 + 0x10]
mov rcx, qword [r15 + 0x80]
lea r8, [rcx + rax]
add r8, 0x22
mov rcx, qword [rsi]
xor edx, edx
call fcn.1400ebf50
test rax, rax
jne 0x140005c4f
mov rdx, qword [r15 + 0x78]
mov rcx, qword [rsi]
call fcn.140010822
mov rdx, rax
test rax, rax
jne 0x140005c4f
mov rdx, qword [r15 + 0x70]
mov rcx, qword [rsi]
call fcn.140010822
jmp 0x140005e0e
lea edx, [r12 + 0x14]
test bpl, bpl
cmove edx, r12d
mov rcx, qword [rsi]
call fcn.140010752
test rax, rax
jne 0x1400058e9
mov rcx, qword [rsi]
xor edx, edx
mov r8, rdi
call fcn.1400ebf50
mov rcx, rax
test rax, rax
jne 0x140005ce4
movzx r8d, word [r15 + 0x98]
mov r9d, dword [r15 + 0x60]
mov eax, dword [r15 + 0x64]
mov dword [rsp + 0x20], eax
lea rsi, [rsp + 0x78]
mov rcx, rsi
mov rdx, r14
call fcn.1400048b6
mov rcx, qword [rsi]
cmp rcx, 4
je 0x140005913
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
jmp 0x1400058eb
mov rdx, qword [r15 + 0x70]
mov rax, rdx
shr rax, 0x20
je 0x140005dee
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.1400caa6a
mov rdx, rax
jmp 0x140005c4f
mov rcx, qword [rsi]
call fcn.140010785
mov rdx, rax
test rax, rax
jne 0x140005c4f
mov edx, dword [r15 + 0x78]
mov rcx, qword [rsi]
call fcn.140010785
mov rdx, rax
test rax, rax
jne 0x140005c4f
mov rcx, qword [rsi]
xor edx, edx
mov r8, rdi
call fcn.1400ebf50
test rax, rax
jne 0x140005c4f
jmp 0x140005b76
lea rcx, str._home_ellie_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_0.6.6_src_write.rs
call fcn.140037190
lea r8, str._home_ellie_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_0.6.6_src_write.rs
call fcn.140032960
mov qword [rsp + 0x60], rax
lea rcx, str.internal_error:_entered_unreachable_code_rustc_051478957371ee0084a7c0913941d2a8c4757bb9library_std_src_threadmod.rs
lea r8, str._home_ellie_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_0.6.6_src_write.rs
mov edx, 0x28
call fcn.140033610
jmp 0x140005e83
lea rax, str._home_ellie_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_0.6.6_src_zipcrypto.rs
mov ecx, 0xb
mov rdx, r8
mov r8, rax
call fcn.1400329d0
ud2