Function at 0x140009890
Capabilities:
Hash data using sha256

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1c8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x140], 0xfffffffffffffffe
mov r13, r8
mov rdi, rdx
lea r14, [rbp - 0x28]
xorps xmm0, xmm0
movups xmmword [r14 + 0x30], xmm0
movups xmmword [r14 + 0x20], xmm0
movups xmmword [r14 + 0x10], xmm0
movups xmmword [r14], xmm0
mov byte [r14 + 0x40], 0
movups xmm0, xmmword [0x1409accf8]
movaps xmmword [r14 - 0x28], xmm0
movups xmm0, xmmword [0x1409acd08]
movaps xmmword [r14 - 0x18], xmm0
and qword [r14 - 8], 0
mov rbx, rcx
lea rax, [rbp - 0x50]
mov qword [rbp + 0x20], rax
cmp r8, 0x3f
ja 0x14000994b
lea r8, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
xor ecx, ecx
mov rdx, r14
call fcn.140009d34
mov r8, rdx
lea r9, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
mov rcx, r13
mov rdx, rax
call fcn.140009d60
lea rcx, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, rdi
mov r9, r13
call fcn.14000d191
jmp 0x1400099a2
mov r12, r13
and r12, 0xffffffffffffffc0
mov r15d, r13d
and r15d, 0x3f
add r12, rdi
shr r13, 6
lea rcx, [rbp + 0x20]
mov rdx, rdi
mov r8, r13
call fcn.140009d80
lea r9, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
push 0x40
pop r8
mov rcx, r15
mov rdx, r14
call fcn.140009d60
lea rcx, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
mov qword [rsp + 0x20], rcx
mov rcx, rax
mov r8, r12
mov r9, r15
call fcn.14000d191
mov r13, r15
lea rsi, [rbp - 0x50]
mov byte [rsi + 0x68], r13b
push 0xe
pop rcx
lea rax, [rbp + 0x20]
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
xorps xmm0, xmm0
movaps xmmword [rbp + 0x100], xmm0
movaps xmmword [rbp + 0xf0], xmm0
lea rsi, [rbp + 0x48]
movaps xmmword [rbp + 0xa0], xmm0
movaps xmmword [rbp + 0x90], xmm0
mov qword [rbp + 0x118], rax
movzx edi, byte [rsi + 0x40]
mov r14, qword [rsi - 8]
mov r15d, edi
shl r15d, 3
mov byte [rbp + rdi + 0x48], 0x80
lea rcx, [rdi + 1]
lea r8, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_block_buffer_0.10.4_srclib.rs
mov rdx, rsi
call fcn.140009d34
xor ecx, ecx
cmp rdx, rcx
je 0x140009a18
mov byte [rax + rcx], 0
inc rcx
jmp 0x140009a0a
shl r14, 9
or r14, r15
bswap r14
not edi
test dil, 0x38
jne 0x140009a5f
lea rdi, [rbp + 0x118]
mov rcx, rdi
mov rdx, rsi
call fcn.140009d8c
xorps xmm0, xmm0
lea rdx, [rbp + 0xb0]
movaps xmmword [rdx + 0x20], xmm0
movaps xmmword [rdx + 0x10], xmm0
movaps xmmword [rdx], xmm0
and qword [rdx + 0x30], 0
mov qword [rdx + 0x38], r14
mov rcx, rdi
jmp 0x140009a70
mov qword [rbp + 0x80], r14
lea rcx, [rbp + 0x118]
mov rdx, rsi
call fcn.140009d8c
mov byte [rbp + 0x88], 0
mov r14, qword [rbp + 0x118]
xor r15d, r15d
lea r12, str.C:Usersuser.cargo_registry_srcindex.crates.io_6f17d22bba15001f_sha2_0.10.8_srccore_api.rs
lea rdi, [rbp + 0xb0]
push 4
pop rsi
cmp r15, 0x20
je 0x140009acd
lea rcx, [r15 + rbp]
add rcx, 0x90
mov eax, dword [r14 + r15]
bswap eax
mov dword [rbp + 0xb0], eax
mov qword [rsp + 0x20], r12
mov rdx, rsi
mov r8, rdi
mov r9, rsi
call fcn.14000d191
add r15, 4
jmp 0x140009a97
lea rax, [rbp + 0x90]
movaps xmm0, xmmword [rax]
movaps xmm1, xmmword [rax + 0x10]
movaps xmmword [rax], xmm0
movaps xmmword [rax + 0x10], xmm1
mov qword [rbp + 0xb0], rax
lea rax, [0x1409b17d8]
lea rdx, [rbp + 0x20]
mov qword [rdx], rax
push 1
pop rsi
mov qword [rdx + 8], rsi
and qword [rdx + 0x20], 0
lea rax, [0x1400097bb]
mov qword [rbp + 0xb8], rax
mov qword [rdx + 0x10], rdi
mov qword [rdx + 0x18], rsi
lea rdi, [rbp + 0x118]
mov rcx, rdi
call fcn.140001a50
mov r15, qword [rdi + 8]
mov rax, qword [rdi + 0x10]
test al, 1
jne 0x140009c2d
lea rdx, [rbp + 0x13f]
mov byte [rdx], 0
lea rcx, [rbp + 0xb0]
mov qword [rcx], rdx
mov qword [rcx + 8], r15
mov qword [rcx + 0x10], rax
and qword [rcx + 0x18], 0
shr rax, 1
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], 1
mov byte [rcx + 0x30], 1
call fcn.140009558
test al, 1
je 0x140009c3c
mov r14d, edx
mov qword [rbp + 0x130], r15
lea rsi, [rbp + 0x20]
push 8
pop rdx
mov rcx, rsi
call fcn.140009eeb
cmp qword [rsi], 0
mov rcx, qword [rsi + 8]
jne 0x140009ca7
lea rdi, [rbp + 0x20]
mov rsi, qword [rdi + 0x10]
mov byte [rsi], r14b
lea r14, [rbp + 0xf0]
mov qword [r14], rcx
mov qword [r14 + 8], rsi
mov qword [r14 + 0x10], 1
mov rax, qword [rbp + 0xe0]
mov qword [rdi + 0x30], rax
movups xmm0, xmmword [rbp + 0xb0]
movups xmm1, xmmword [rbp + 0xc0]
movups xmm2, xmmword [rbp + 0xd0]
movaps xmmword [rdi + 0x20], xmm2
movaps xmmword [rdi + 0x10], xmm1
movaps xmmword [rdi], xmm0
push 1
pop r15
mov r13, r15
mov rcx, rdi
call fcn.140009558
test al, 1
je 0x140009c43
mov r12d, edx
cmp r13, qword [rbp + 0xf0]
jne 0x140009c1d
mov rcx, r14
mov rdx, r15
call fcn.140009d9a
mov rsi, qword [rbp + 0xf8]
mov byte [rsi + r13], r12b
inc r13
mov qword [rbp + 0x100], r13
jmp 0x140009bf3
movabs rax, 0x8000000000000000
mov qword [rbx], rax
jmp 0x140009c83
xor ecx, ecx
xor r13d, r13d
jmp 0x140009c51
mov rcx, qword [rbp + 0xf0]
mov r15, qword [rbp + 0x130]
cmp byte [rbp + 0x13f], 0
je 0x140009c78
movabs rax, 0x8000000000000000
mov qword [rbx], rax
mov rdx, rsi
call fcn.14000a2b5
mov r15, qword [rbp + 0x120]
jmp 0x140009c83
mov qword [rbx], rcx
mov qword [rbx + 8], rsi
mov qword [rbx + 0x10], r13
mov rcx, qword [rbp + 0x118]
mov rdx, r15
call fcn.14000a2b5
nop
add rsp, 0x1c8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rdx, qword [rbp + 0x30]
call fcn.14002e4c0
ud2