Function at 0x1400055b8
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 0x1400057b1
mov rax, qword [r14 + 0x78]
sub rax, 1
jb 0x140005cca
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 0x14000562b
lea rdx, [0x140298cd4]
mov r8d, 0x1e
mov cl, 0x15
call fcn.140041d11
jmp 0x14000577e
lea rsi, [rsp + 0x78]
lea rdi, [rsp + 0x68]
lea r13, [0x140298b66]
test r12, r12
je 0x14000579a
cmp r12, 4
jb 0x140005a83
mov rcx, rsi
mov rdx, rdi
call fcn.140127d12
cmp word [rsp + 0x78], 0
jne 0x140005790
movzx ebp, word [rsp + 0x7a]
mov word [rsp + 0x2e], bp
mov rcx, rsi
mov rdx, rdi
call fcn.140127d12
cmp word [rsp + 0x78], 0
jne 0x140005790
cmp bp, 1
je 0x140005a92
cmp bp, 0x20
jb 0x1400056e1
movzx ecx, word [rsp + 0x7a]
add r12, 0xfffffffffffffffc
xor eax, eax
cmp rax, 0x62
je 0x1400056b8
lea rdx, [rax + 2]
cmp word [rax + r13], bp
mov rax, rdx
jne 0x1400056a2
jmp 0x1400056e1
cmp r12, rcx
jb 0x140005b00
mov rdx, qword [rsp + 0x70]
mov r12, rdx
sub r12, rcx
jb 0x140005cd6
add qword [rsp + 0x68], rcx
mov qword [rsp + 0x70], r12
jmp 0x14000563c
lea rax, [rsp + 0x2e]
lea rcx, [rsp + 0xe0]
mov qword [rcx], rax
lea rax, [fcn.140038bf0]
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, [0x140298c98]
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.140031990
mov rcx, rsi
call fcn.140127f73
xor ecx, ecx
mov qword [rbx], rcx
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rdx
jmp 0x140005aec
mov rax, qword [rsp + 0x80]
jmp 0x14000577e
cmp byte [r14 + 0xba], 0
je 0x140005b14
and word [r14 + 0xb9], 0
lea rsi, [rsp + 0x78]
mov rcx, rsi
mov rdx, r14
xor r8d, r8d
xor r9d, r9d
call fcn.14000474b
mov rax, qword [rsi]
cmp rax, 4
jne 0x140005866
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 0x140005ce2
lea rsi, [rsp + 0x80]
cmp qword [rsi], rcx
jne 0x14000587a
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.140008d89
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 0x1400059ef
jmp 0x1400059f9
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rbx + 8], xmm0
mov qword [rbx], rax
jmp 0x140005aec
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 0x140005d01
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, [0x140298cf4]
mov r10d, 0xff
cmp r8, rcx
je 0x14000593e
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 0x1400058d7
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.140127b5c
mov r12, rax
test rax, rax
je 0x1400059a6
lea rcx, [rsp + 0x30]
call fcn.140008e84
and qword [rbx], 0
mov qword [rbx + 8], r12
cmp dword [rsp + 0x78], 1
movabs rax, 0x8000000000000000
jne 0x140005a36
cmp qword [rsp + 0x80], rax
jne 0x140005aec
mov rcx, rsi
call fcn.140008cf5
jmp 0x140005aec
mov rcx, qword [rsp + 0x30]
mov rdx, rdi
call fcn.140066589
mov rcx, r14
call fcn.140008d89
mov qword [r14], 1
movabs rax, 0x8000000000000000
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], r15
cmp dword [rsp + 0x78], 1
jne 0x1400059ef
cmp qword [rsp + 0x80], rax
jne 0x1400059f9
mov rcx, rsi
call fcn.140008cf5
jmp 0x1400059f9
lea rcx, [rsp + 0x78]
call fcn.140008d89
mov rcx, r14
call fcn.1400046f3
cmp byte [r14 + 0xbb], 0
je 0x140005a1d
xor eax, eax
mov byte [r14 + 0xb8], al
mov byte [r14 + 0xbb], al
jmp 0x140005a2a
mov rsi, rax
mov rax, qword [r14 + 0x78]
sub rax, 1
jae 0x140005a45
mov qword [rbx], 4
jmp 0x140005aec
lea rcx, [rsp + 0x78]
call fcn.140008d89
jmp 0x140005aec
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.1400038da
mov rdi, rdx
test rax, rax
je 0x140005aa1
and qword [rbx], 0
mov qword [rbx + 8], rdi
jmp 0x140005aec
lea rdx, str.Incomplete_extra_data_headerExtra_data_exceeds_extra_field
mov r8d, 0x1c
jmp 0x140005b0d
lea rdx, [0x140298b43]
mov r8d, 0x22
jmp 0x140005b0d
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.1400ed9a0
test rax, rax
jne 0x140005ae4
mov edx, dword [r15 + 0x9c]
mov rcx, qword [rsi]
call fcn.140012f37
mov rdx, rax
test rax, rax
je 0x140005b81
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 0x140005621
mov rcx, r14
call fcn.1400046f3
mov rsi, rax
mov rdx, qword [r15 + 0x38]
mov r8, qword [r15 + 0x40]
mov rcx, qword [rax]
call fcn.140127b5c
test rax, rax
jne 0x14000577e
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.1400ed9a0
mov rcx, rax
test rax, rax
je 0x140005bde
mov rax, rdx
jmp 0x14000577e
cmp byte [r15 + 0xa8], 0
je 0x140005c5a
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.1400ed9a0
test rax, rax
jne 0x140005ae4
mov rdx, qword [r15 + 0x78]
mov rcx, qword [rsi]
call fcn.140012fa1
mov rdx, rax
test rax, rax
jne 0x140005ae4
mov rdx, qword [r15 + 0x70]
mov rcx, qword [rsi]
call fcn.140012fa1
jmp 0x140005ca3
lea edx, [r12 + 0x14]
test bpl, bpl
cmove edx, r12d
mov rcx, qword [rsi]
call fcn.140012f04
test rax, rax
jne 0x14000577e
mov rcx, qword [rsi]
xor edx, edx
mov r8, rdi
call fcn.1400ed9a0
mov rcx, rax
test rax, rax
jne 0x140005b79
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.14000474b
mov rcx, qword [rsi]
cmp rcx, 4
je 0x1400057a8
mov rax, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x88]
jmp 0x140005780
mov rdx, qword [r15 + 0x70]
mov rax, rdx
shr rax, 0x20
je 0x140005c83
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.1400cc275
mov rdx, rax
jmp 0x140005ae4
mov rcx, qword [rsi]
call fcn.140012f37
mov rdx, rax
test rax, rax
jne 0x140005ae4
mov edx, dword [r15 + 0x78]
mov rcx, qword [rsi]
call fcn.140012f37
mov rdx, rax
test rax, rax
jne 0x140005ae4
mov rcx, qword [rsi]
xor edx, edx
mov r8, rdi
call fcn.1400ed9a0
test rax, rax
jne 0x140005ae4
jmp 0x140005a0b
lea rcx, str._home_ellie_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_0.6.6_src_write.rs
call fcn.140038d00
lea r8, str._home_ellie_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_0.6.6_src_write.rs
call fcn.1400344d0
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.140035180
jmp 0x140005d18
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.140034540
ud2