Function at 0x14000eab0
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x4f8
movdqa xmmword [rsp + 0x4e0], xmm8
movaps xmmword [rsp + 0x4d0], xmm7
movaps xmmword [rsp + 0x4c0], xmm6
mov rdi, r8
mov r13, rdx
mov rbx, rcx
call sym.time::precise_time_s::h7229f2d069d56a25
cmp qword [rbx], 0x40
jb 0x14000ef92
movapd xmm1, xmm0
subsd xmm1, qword [rbx + 0x1030]
ucomisd xmm1, qword [0x14012bb40]
jbe 0x14000ef92
mov qword [rsp + 0xa8], r13
mov qword [rsp + 0xb0], rdi
inc dword [rbx + 0x1038]
movsd qword [rbx + 0x1030], xmm0
xor r14d, r14d
lea rcx, [rsp + 0xc0]
mov r8d, 0x400
xor edx, edx
call sub.msvcrt.dll_memset
mov esi, 8
mov edi, 0x10
mov ebp, 0x58
pxor xmm8, xmm8
movaps xmm6, xmmword [0x14012bb50]
movaps xmm7, xmmword [0x14012bb60]
xor r12d, r12d
xor r15d, r15d
nop dword [rax]
mov eax, 0xffffffff
mov ecx, r15d
shl eax, cl
not eax
test dword [rbx + 0x1038], eax
jne 0x14000ed6b
lea rax, [rsp + r14]
add rax, 0xc0
mov qword [rsp + 0xb8], rax
lea r13, [rbx + rsi]
mov rcx, r13
call sym._ZN6crypto4sha29Engine2566finish17h6361bc73d1478511E.llvm.7797873040375068835
lea rax, [rbx + rbp]
movdqu xmm0, xmmword [rbx + r14*4 + 0x58]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rsp + r14 + 0xc0], xmm0
movdqu xmm0, xmmword [rbx + r14*4 + 0x68]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rsp + r14 + 0xd0], xmm0
movdqu xmmword [rbx + r14*4 + 8], xmm8
movdqu xmmword [rbx + r14*4 + 0x48], xmm8
movdqu xmmword [rbx + r14*4 + 0x38], xmm8
movdqu xmmword [rbx + r14*4 + 0x28], xmm8
movdqu xmmword [rbx + r14*4 + 0x18], xmm8
movups xmmword [rbx + r14*4 + 0x68], xmm6
movups xmmword [rbx + r14*4 + 0x58], xmm7
mov byte [rbx + r14*4 + 0x78], 0
inc r15
mov qword [rbx + r14*4 + 8], 0x100
mov qword [rsp + 0x30], rax
lea rcx, [rbx + rdi]
mov r8d, 0x20
mov rdx, qword [rsp + 0xb8]
lea r9, [rsp + 0x30]
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov rcx, r13
call sym._ZN6crypto4sha29Engine2566finish17h6361bc73d1478511E.llvm.7797873040375068835
movdqu xmm0, xmmword [rbx + r14*4 + 0x58]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rsp + r14 + 0xc0], xmm0
movdqu xmm0, xmmword [rbx + r14*4 + 0x68]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rsp + r14 + 0xd0], xmm0
movdqu xmmword [rbx + r14*4 + 0x48], xmm8
movdqu xmmword [rbx + r14*4 + 0x38], xmm8
movdqu xmmword [rbx + r14*4 + 0x28], xmm8
movdqu xmmword [rbx + r14*4 + 0x18], xmm8
movdqu xmmword [rbx + r14*4 + 8], xmm8
movups xmmword [rbx + r14*4 + 0x68], xmm6
movups xmmword [rbx + r14*4 + 0x58], xmm7
mov byte [rbx + r14*4 + 0x78], 0
mov qword [rbx + r14*4], 0
add r12, 0x100
add r14, 0x20
sub rsi, 0xffffffffffffff80
sub rdi, 0xffffffffffffff80
sub rbp, 0xffffffffffffff80
cmp r14, 0x400
jne 0x14000eb70
lea rcx, str.assertion_failed:_n_pools___NUM_POOLS
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_fortuna.rs
mov edx, 0x25
call dbg.panic
ud2
lea rbp, [rbx + 0x1000]
lea rsi, [rsp + 0x80]
lea r13, [rsp + 0x38]
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x68], xmm0
movupd xmmword [rsp + 0x58], xmm0
movupd xmmword [rsp + 0x48], xmm0
movupd xmmword [rsp + 0x38], xmm0
mov qword [rsp + 0x78], 0
movups xmmword [rsp + 0x90], xmm6
movups xmmword [rsp + 0x80], xmm7
mov byte [rsp + 0xa0], 0
mov qword [rsp + 0x30], 0x100
mov qword [rsp + 0x28], rsi
lea r9, [rsp + 0x28]
mov r8d, 0x20
mov rcx, r13
mov rdx, rbp
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
cmp byte [rsp + 0xa0], 0
jne 0x14000f0c3
shr r15, 0x38
jne 0x14000f0dd
add r12, qword [rsp + 0x30]
jb 0x14000f0f7
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x28], rsi
lea rdx, [rsp + 0xc0]
lea r9, [rsp + 0x28]
mov rcx, r13
mov r8, r14
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
lea r14, [rsp + 0x30]
mov rcx, r14
call sym._ZN6crypto4sha29Engine2566finish17h6361bc73d1478511E.llvm.7797873040375068835
movdqa xmm0, xmmword [rsp + 0x80]
pxor xmm8, xmm8
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rbx + 0x1000], xmm0
movdqa xmm0, xmmword [rsp + 0x90]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rbx + 0x1010], xmm0
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmmword [rsp + 0x70], xmm8
movdqa xmmword [rsp + 0x60], xmm8
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm8
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm7
mov byte [rsp + 0xa0], 0
mov qword [rsp + 0x30], 0x100
mov qword [rsp + 0x28], rsi
lea r9, [rsp + 0x28]
mov r8d, 0x20
mov rcx, r13
mov rdx, rbp
call sym.__crypto::cryptoutil::FixedBuffer64_as_crypto::cryptoutil::FixedBuffer_::input::h3ea1ba1ca3532291
mov rcx, r14
call sym._ZN6crypto4sha29Engine2566finish17h6361bc73d1478511E.llvm.7797873040375068835
movdqa xmm0, xmmword [rsp + 0x80]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rbx + 0x1000], xmm0
movdqa xmm0, xmmword [rsp + 0x90]
movdqa xmm1, xmm0
punpckhbw xmm1, xmm8
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
punpcklbw xmm0, xmm8
pshuflw xmm0, xmm0, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm1
movdqu xmmword [rbx + 0x1010], xmm0
mov rcx, rbp
call sym.crypto::fortuna::FortunaGenerator::increment_counter::h365a4bcd6f543f6d
mov rdi, qword [rsp + 0xb0]
mov r13, qword [rsp + 0xa8]
cmp dword [rbx + 0x1038], 0
je 0x14000f0a9
test rdi, rdi
je 0x14000f07c
add rbx, 0x1000
xorps xmm6, xmm6
lea r14, [rsp + 0xc0]
jmp 0x14000f009
add r13, rsi
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov edx, 2
mov r9d, 0x20
mov rcx, rbx
mov r8, r14
call sym.crypto::fortuna::FortunaGenerator::generate_blocks::h833ab2b5afeb7a24
movapd xmm0, xmmword [rsp + 0xc0]
movapd xmm1, xmmword [rsp + 0xd0]
movupd xmmword [rbx + 0x10], xmm1
movupd xmmword [rbx], xmm0
test rdi, rdi
je 0x14000f07c
cmp rdi, 0x100000
mov esi, 0x100000
cmovb rsi, rdi
sub rdi, rsi
mov rdx, rsi
shr rdx, 4
mov r15d, esi
and r15d, 0x1ffff0
mov rcx, rbx
mov r8, r13
mov r9, r15
call sym.crypto::fortuna::FortunaGenerator::generate_blocks::h833ab2b5afeb7a24
mov r12, rsi
and r12, 0xf
je 0x14000efc0
movaps xmmword [rsp + 0xc0], xmm6
mov edx, 1
mov r9d, 0x10
mov rcx, rbx
mov r8, r14
call sym.crypto::fortuna::FortunaGenerator::generate_blocks::h833ab2b5afeb7a24
add r15, r13
mov rcx, r15
mov rdx, r14
mov r8, r12
call sym.memcpy
jmp 0x14000efc0
movaps xmm6, xmmword [rsp + 0x4c0]
movaps xmm7, xmmword [rsp + 0x4d0]
movaps xmm8, xmmword [rsp + 0x4e0]
add rsp, 0x4f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, str.rust_crypto:_an_unseeded_Fortuna_was_asked_for_random_bytes_
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_fortuna.rs
mov edx, 0x3c
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2
lea rcx, str.assertion_failed:__self.finished
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_sha2.rs
mov edx, 0x20
call dbg.panic
ud2
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0c0]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0a8]
mov edx, 0x19
call dbg.expect_failed
ud2