Function at 0x1400fa3d6
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, 0xd8
mov r14, r9
mov r15, r8
mov rdi, rdx
mov rsi, rcx
movzx eax, byte [rdx]
test rax, rax
je 0x1400fa4a0
cmp eax, 1
jne 0x1400fa4c8
lea rdx, [rdi + 8]
lea rcx, [rsp + 0x38]
mov r8, r15
mov r9, r14
call fcn.1400fef4e
mov eax, dword [rdi + 0x28]
mov r11d, dword [rdi + 0x20]
mov ecx, dword [rdi + 0x24]
xor edx, edx
lea r8, [0x1401efbe0]
mov r9d, 0xff
cmp r14, rdx
je 0x1400fa51c
mov ebx, eax
or ebx, 3
mov r10d, ebx
and r10d, 0xfffffffe
imul r10d, ebx
shr r10d, 8
xor r10b, byte [r15 + rdx]
mov ebx, r11d
shr ebx, 8
xor r11b, r10b
movzx r11d, r11b
xor ebx, dword [r8 + r11*4]
mov dword [rdi + 0x20], ebx
mov r11d, ebx
and ebx, r9d
add ebx, ecx
imul ecx, ebx, 0x8088405
inc ecx
mov dword [rdi + 0x24], ecx
mov ebx, ecx
shr ebx, 0x18
mov ebp, eax
shr ebp, 8
and eax, r9d
xor eax, ebx
xor ebp, dword [r8 + rax*4]
mov dword [rdi + 0x28], ebp
mov byte [r15 + rdx], r10b
inc rdx
mov eax, ebp
jmp 0x1400fa437
add rdi, 8
mov rcx, rsi
mov rdx, rdi
mov r8, r15
mov r9, r14
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400fef4e
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x1400fa523
lea r12, [rdi + 8]
cmp rcx, r14
cmovae rcx, r14
lea r9, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_1.1.2_src_aes.rs
mov rdx, r15
mov r8, r14
call fcn.1400fe817
mov r9, rdx
lea rbx, [rsp + 0x38]
mov rcx, rbx
mov rdx, r12
mov r8, rax
call fcn.1400fef4e
cmp qword [rbx], 0
je 0x1400fa53d
mov rax, qword [rsp + 0x40]
mov qword [rsi + 8], rax
mov qword [rsi], 1
jmp 0x1400fa529
movups xmm0, xmmword [rsp + 0x38]
jmp 0x1400fa526
xorps xmm0, xmm0
movups xmmword [rsi], xmm0
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rsp + 0x40]
sub qword [rdi + 0x30], rcx
cmp rcx, r14
ja 0x1400fa88b
lea rax, [rdi + 0x38]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x38], rax
lea rax, [rdi + 0x98]
movzx ebp, byte [rdi + 0xd8]
mov r13d, 0x40
sub r13, rbp
mov rbx, rcx
sub rbx, r13
mov qword [rsp + 0x30], rax
jae 0x1400fa5d5
lea r9, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov edx, 0x40
mov rbx, rcx
mov rcx, rax
mov r8, rbp
call fcn.140015665
mov r8, rdx
lea r9, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov rcx, rbx
mov rdx, rax
call fcn.1400fe817
lea rcx, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r15
mov r9, rbx
call fcn.140013b9d
mov rax, rbx
add rbp, rbx
jmp 0x1400fa6a1
mov qword [rsp + 0x70], rcx
mov r8, rcx
mov rdx, r15
test rbp, rbp
je 0x1400fa641
lea rcx, [r15 + r13]
mov qword [rsp + 0x68], rcx
lea r9, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov edx, 0x40
mov rcx, rax
mov r8, rbp
call fcn.140015665
lea rcx, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r15
mov r9, r13
call fcn.140013b9d
lea rcx, [rsp + 0x38]
mov r8d, 1
mov rdx, qword [rsp + 0x30]
call fcn.1400fe947
mov rdx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x30]
mov r8, rbx
mov r13, r8
and r13, 0xffffffffffffffc0
mov ebp, r8d
and ebp, 0x3f
add r13, rdx
cmp r8, 0x40
jb 0x1400fa66a
shr r8, 6
lea rcx, [rsp + 0x38]
call fcn.1400fe947
mov rax, qword [rsp + 0x30]
lea r9, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov r8d, 0x40
mov rcx, rbp
mov rdx, rax
call fcn.1400fe817
lea rcx, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_block_buffer_0.10.4_src_lib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r13
mov r9, rbp
call fcn.140013b9d
mov rax, qword [rsp + 0x70]
mov byte [rdi + 0xd8], bpl
mov r13, qword [rdi + 0x20]
mov rbx, qword [rdi + 0x28]
lea r9, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_1.1.2_src_aes.rs
mov rbp, rax
mov rcx, rax
mov rdx, r15
mov r8, r14
call fcn.1400fe817
mov r8, rdx
mov rcx, r13
mov rdx, rax
call qword [rbx + 0x18]
cmp qword [rdi + 0x30], 0
je 0x1400fa6e8
mov qword [rsi + 8], rbp
and qword [rsi], 0
jmp 0x1400fa529
cmp byte [rdi + 0xe0], 0
jne 0x1400fa89a
mov rbx, rbp
lea r14, [rsp + 0x80]
and word [r14 + 8], 0
and qword [r14], 0
mov byte [rdi + 0xe0], 1
mov r15d, 0xa
lea rbp, [rsp + 0x38]
test r15, r15
je 0x1400fa77b
mov rcx, rbp
mov rdx, r12
mov r8, r14
mov r9, r15
call fcn.1400fef4e
cmp qword [rsp + 0x38], 0
je 0x1400fa759
mov r13, qword [rsp + 0x40]
mov rcx, r13
call fcn.1400feee3
test al, al
je 0x1400fa873
mov rcx, r13
call fcn.140062051
jmp 0x1400fa71c
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x1400fa86c
mov rax, r15
sub rax, rcx
jb 0x1400fa87c
add r14, rcx
mov r15, rax
jmp 0x1400fa71c
lea r14, [rsp + 0xb0]
mov rcx, r14
call fcn.140102417
lea r15, [rsp + 0xc4]
mov rcx, r15
call fcn.140102417
mov rcx, qword [rsp + 0x78]
mov r12, qword [rsp + 0x30]
mov rdx, r12
mov r8, r15
call fcn.1400fe837
mov eax, dword [rdi + 0x70]
lea rcx, [rsp + 0x38]
mov dword [rcx + 0x18], eax
movups xmm0, xmmword [rdi + 0x60]
movups xmmword [rcx + 8], xmm0
mov rax, qword [rdi + 0x58]
mov qword [rcx], rax
mov eax, dword [r15 + 0x10]
mov dword [r12 + 0x10], eax
movups xmm0, xmmword [r15]
movups xmmword [r12], xmm0
mov byte [rdi + 0xd8], 0x14
mov rdx, r12
mov r8, r14
call fcn.1400fe837
mov eax, dword [rdi + 0x90]
mov dword [rdi + 0x50], eax
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rdi + 0x40], xmm0
mov rax, qword [rdi + 0x78]
mov qword [rdi + 0x38], rax
mov byte [rdi + 0xd8], 0
mov eax, dword [r14 + 0x10]
mov dword [rsp + 0xa0], eax
movups xmm0, xmmword [r14]
movaps xmmword [rsp + 0x90], xmm0
xor ecx, ecx
xor eax, eax
cmp rcx, 0xa
je 0x1400fa847
mov dl, byte [rsp + rcx + 0x80]
xor dl, byte [rsp + rcx + 0x90]
inc rcx
or al, dl
jmp 0x1400fa82c
test al, al
je 0x1400fa864
lea rdx, str.Invalid_authentication_code__this_could_be_due_to_an_invalid_password_or_errors_in_the_dataTried_to_use_an_already_finalized_HMAC._This_is_a_bug_
mov r8d, 0x5b
mov cl, 0x15
call fcn.14001acfb
jmp 0x1400fa50f
mov rbp, rbx
jmp 0x1400fa6db
lea r13, str.failed_to_fill_whole_buffer
mov qword [rsi + 8], r13
jmp 0x1400fa513
lea r8, str._rustc_11f32b73e0dc9287e305b5b9980d24aecdc8c17flibrary_std_srciomod.rs
mov rdx, r15
call fcn.14000b710
lea r8, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_1.1.2_src_aes.rs
mov rdx, r14
call fcn.14000c180
lea rax, [0x1401eeca8]
lea rcx, [rsp + 0x38]
mov qword [rcx], rax
mov qword [rcx + 8], 1
lea rax, str._rustc_11f32b73e0dc9287e305b5b9980d24aecdc8c17flibrarycore_srccharmethods.rs
mov qword [rcx + 0x10], rax
xorps xmm0, xmm0
movups xmmword [rcx + 0x18], xmm0
lea rdx, str._home_wav_.cargo_registry_src_index.crates.io_6f17d22bba15001f_zip_1.1.2_src_aes.rs
call fcn.14000b6b0
int3