Function at 0x14000aeb0
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x418
movaps xmmword [rsp + 0x400], xmm10
movaps xmmword [rsp + 0x3f0], xmm9
movaps xmmword [rsp + 0x3e0], xmm8
movaps xmmword [rsp + 0x3d0], xmm7
movaps xmmword [rsp + 0x3c0], xmm6
mov r12, rdx
mov rdx, qword [rsp + 0x480]
cmp rdx, 0x1f
jbe 0x14000b739
cmp rdx, 0x3f
jbe 0x14000b74c
mov r14, r9
mov rbp, r8
mov rsi, rcx
xorps xmm10, xmm10
movaps xmmword [rsp + 0xc0], xmm10
movaps xmmword [rsp + 0xb0], xmm10
movaps xmmword [rsp + 0xa0], xmm10
movaps xmmword [rsp + 0x90], xmm10
movaps xmmword [rsp + 0x80], xmm10
movaps xmmword [rsp + 0x70], xmm10
movaps xmmword [rsp + 0x60], xmm10
movaps xmmword [rsp + 0x50], xmm10
movaps xmmword [rsp + 0x40], xmm10
mov qword [rsp + 0xd0], 0
movups xmm6, xmmword [0x14013d258]
movups xmmword [rsp + 0xd8], xmm6
movups xmm7, xmmword [0x14013d268]
movups xmmword [rsp + 0xe8], xmm7
movups xmm8, xmmword [0x14013d278]
movups xmmword [rsp + 0xf8], xmm8
movups xmm9, xmmword [0x14013d288]
movups xmmword [rsp + 0x108], xmm9
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x40]
mov r8d, 0xd8
call sym.memcpy
mov byte [rsp + 0x1f8], 0
mov rax, qword [rsp + 0x120]
mov edi, 0x100
mov rcx, qword [rsp + 0x128]
add rcx, rdi
jae 0x14000afee
inc rax
je 0x14000b575
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rcx
lea r13, [rsp + 0x1b8]
mov qword [rsp + 0x40], r13
lea rcx, [rsp + 0x130]
lea r9, [rsp + 0x40]
mov r8d, 0x20
mov rdx, r14
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
lea rcx, [rsp + 0x120]
call sym._ZN6crypto4sha29Engine5126finish17hc6badddaffdf06e5E.llvm.7797873040375068835
mov rcx, qword [rsp + 0x1c0]
mov rax, qword [rsp + 0x1c8]
bswap rcx
bswap rax
mov rdx, qword [rsp + 0x1d8]
bswap rdx
mov r8, qword [rsp + 0x1e0]
bswap r8
mov r9, qword [rsp + 0x1e8]
bswap r9
mov r10, qword [rsp + 0x1f0]
bswap r10
movabs r11, 0xf8ffffffffffffff
and r11, qword [rsp + 0x1b8]
bswap r11
mov qword [rsp + 0x270], r11
mov r11, 0xffffffffffffff3f
and r11, qword [rsp + 0x1d0]
mov qword [rsp + 0x278], rcx
or r11, 0x40
bswap r11
mov qword [rsp + 0x280], rax
mov qword [rsp + 0x288], r11
mov qword [rsp + 0x290], rdx
mov qword [rsp + 0x298], r8
mov qword [rsp + 0x2a0], r9
mov qword [rsp + 0x2a8], r10
movaps xmmword [rsp + 0xc0], xmm10
movaps xmmword [rsp + 0xb0], xmm10
movaps xmmword [rsp + 0xa0], xmm10
movaps xmmword [rsp + 0x90], xmm10
movaps xmmword [rsp + 0x80], xmm10
movaps xmmword [rsp + 0x70], xmm10
movaps xmmword [rsp + 0x60], xmm10
movaps xmmword [rsp + 0x50], xmm10
movaps xmmword [rsp + 0x40], xmm10
mov qword [rsp + 0xd0], 0
movups xmmword [rsp + 0xd8], xmm6
movups xmmword [rsp + 0xe8], xmm7
movups xmmword [rsp + 0xf8], xmm8
movups xmmword [rsp + 0x108], xmm9
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x40]
mov r8d, 0xd8
call sym.memcpy
mov byte [rsp + 0x1f8], 0
mov rax, qword [rsp + 0x120]
add rdi, qword [rsp + 0x128]
jae 0x14000b18e
inc rax
je 0x14000b575
lea rdx, [rsp + 0x290]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rdi
mov qword [rsp + 0x40], r13
lea r15, [rsp + 0x130]
lea r9, [rsp + 0x40]
mov r8d, 0x20
mov rcx, r15
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
cmp byte [rsp + 0x1f8], 0
jne 0x14000b71f
mov rax, qword [rsp + 0x120]
mov rdi, rbp
shr rdi, 0x3d
lea rbx, [rbp*8]
mov rcx, qword [rsp + 0x128]
add rcx, rbx
jae 0x14000b206
lea rdx, [rdi + 1]
add rax, rdx
jae 0x14000b214
jmp 0x14000b575
test rdi, rdi
je 0x14000b214
add rax, rdi
jb 0x14000b75f
add r14, 0x20
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x40], r13
lea r9, [rsp + 0x40]
mov rcx, r15
mov r15, r12
mov rdx, r12
mov r8, rbp
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
lea rcx, [rsp + 0x120]
call sym._ZN6crypto4sha29Engine5126finish17hc6badddaffdf06e5E.llvm.7797873040375068835
mov rax, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
bswap rax
mov qword [rsp + 0x40], rax
bswap rcx
mov qword [rsp + 0x48], rcx
mov rax, qword [rsp + 0x1c8]
bswap rax
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1d0]
bswap rax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1d8]
bswap rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x1e0]
bswap rax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x1e8]
bswap rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x1f0]
bswap rax
mov qword [rsp + 0x78], rax
lea rcx, [rsp + 0x40]
mov edx, 0x40
call sym.crypto::curve25519::sc_reduce::h337459b3dcda636a
movups xmm0, xmmword [rsp + 0x40]
movups xmm1, xmmword [rsp + 0x50]
movups xmm2, xmmword [rsp + 0x60]
movups xmm3, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x2e0], xmm3
movaps xmmword [rsp + 0x2d0], xmm2
movaps xmmword [rsp + 0x2c0], xmm1
movaps xmmword [rsp + 0x2b0], xmm0
lea r13, [rsp + 0x2f8]
lea rdx, [rsp + 0x2b0]
mov r8d, 0x20
mov rcx, r13
call sym.crypto::curve25519::ge_scalarmult_base::h37b1d9227be872d2
lea rdx, [rsp + 0x348]
lea rcx, [rsp + 0x208]
call sym.crypto::curve25519::Fe::invert::h7821cab115f13a38
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x208]
movups xmm1, xmmword [rsp + 0x218]
movaps xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x120], xmm0
lea r12, [rsp + 0x398]
lea r8, [rsp + 0x120]
mov rcx, r12
mov rdx, r13
call sym.__crypto::curve25519::Fe_as_core::ops::arith::Mul_::mul::h16a32ffd9ef6d280
mov rax, qword [rsp + 0x340]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rsp + 0x320]
movups xmm1, xmmword [rsp + 0x330]
movaps xmmword [rsp + 0x50], xmm1
movaps xmmword [rsp + 0x40], xmm0
mov rax, qword [rsp + 0x228]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x208]
movups xmm1, xmmword [rsp + 0x218]
movaps xmmword [rsp + 0x130], xmm1
movaps xmmword [rsp + 0x120], xmm0
lea r13, [rsp + 0x230]
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x120]
mov rcx, r13
call sym.__crypto::curve25519::Fe_as_core::ops::arith::Mul_::mul::h16a32ffd9ef6d280
lea rcx, [rsp + 0x40]
mov rdx, r13
call sym.crypto::curve25519::Fe::to_bytes::h16569480bc0f9e74
lea rcx, [rsp + 0x120]
mov rdx, r12
call sym.crypto::curve25519::Fe::to_bytes::h16569480bc0f9e74
movzx eax, byte [rsp + 0x120]
shl al, 7
xor byte [rsp + 0x5f], al
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsp + 0x230], xmm1
movups xmmword [rsp + 0x240], xmm0
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rsp + 0x250], xmm0
movups xmmword [rsp + 0x260], xmm1
xorps xmm0, xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0xd0], 0
movups xmmword [rsp + 0xd8], xmm6
movups xmmword [rsp + 0xe8], xmm7
movups xmmword [rsp + 0xf8], xmm8
movups xmmword [rsp + 0x108], xmm9
lea rcx, [rsp + 0x120]
lea rdx, [rsp + 0x40]
mov r8d, 0xd8
call sym.memcpy
mov byte [rsp + 0x1f8], 0
mov rcx, qword [rsp + 0x120]
mov eax, 0x200
add rax, qword [rsp + 0x128]
jae 0x14000b50d
inc rcx
je 0x14000b575
lea r13, [rsp + 0x1b8]
mov qword [rsp + 0x120], rcx
mov qword [rsp + 0x128], rax
mov qword [rsp + 0x40], r13
lea r12, [rsp + 0x130]
lea rdx, [rsp + 0x230]
lea r9, [rsp + 0x40]
mov r8d, 0x40
mov rcx, r12
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
cmp byte [rsp + 0x1f8], 0
jne 0x14000b71f
mov rax, qword [rsp + 0x120]
add rbx, qword [rsp + 0x128]
jae 0x14000b58f
inc rdi
add rax, rdi
jae 0x14000b59d
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0d8]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2
test rdi, rdi
je 0x14000b59d
add rax, rdi
jb 0x14000b75f
lea r14, [rsp + 0x250]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rbx
mov qword [rsp + 0x40], r13
lea r9, [rsp + 0x40]
mov rcx, r12
mov rdx, r15
mov r8, rbp
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
lea rcx, [rsp + 0x120]
call sym._ZN6crypto4sha29Engine5126finish17hc6badddaffdf06e5E.llvm.7797873040375068835
mov rax, qword [rsp + 0x1b8]
mov rcx, qword [rsp + 0x1c0]
bswap rax
mov qword [rsp + 0x40], rax
bswap rcx
mov qword [rsp + 0x48], rcx
mov rax, qword [rsp + 0x1c8]
bswap rax
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x1d0]
bswap rax
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x1d8]
bswap rax
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x1e0]
bswap rax
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x1e8]
bswap rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x1f0]
bswap rax
mov qword [rsp + 0x78], rax
lea rdi, [rsp + 0x40]
mov edx, 0x40
mov rcx, rdi
call sym.crypto::curve25519::sc_reduce::h337459b3dcda636a
lea rax, [rsp + 0x2b0]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x270]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], 0x20
mov qword [rsp + 0x28], 0x20
mov edx, 0x20
mov r9d, 0x20
mov r8, rdi
mov rcx, r14
call sym.crypto::curve25519::sc_muladd::hdd585b663c161fe0
movups xmm0, xmmword [rsp + 0x230]
movups xmm1, xmmword [rsp + 0x240]
movups xmm2, xmmword [rsp + 0x250]
movups xmm3, xmmword [rsp + 0x260]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x3c0]
movaps xmm7, xmmword [rsp + 0x3d0]
movaps xmm8, xmmword [rsp + 0x3e0]
movaps xmm9, xmmword [rsp + 0x3f0]
movaps xmm10, xmmword [rsp + 0x400]
add rsp, 0x418
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
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 r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_ed25519.rs
mov ecx, 0x20
call dbg.slice_end_index_len_fail
ud2
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_ed25519.rs
mov ecx, 0x40
call dbg.slice_end_index_len_fail
ud2
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0f0]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2