Function at 0x140065f31
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3d0
movaps xmmword [rsp + 0x3c0], xmm7
movaps xmmword [rsp + 0x3b0], xmm6
xor edi, edi
mov bpl, 1
cmp r8, 0x20
cmove rdi, rdx
jne 0x140066305
mov rax, qword [rsp + 0x438]
xor ebx, ebx
cmp qword [rsp + 0x440], 0x40
cmove rbx, rax
jne 0x140066305
mov rsi, r9
mov r14, qword [rsp + 0x430]
movups xmm6, xmmword [rax + 0x20]
movups xmm7, xmmword [rax + 0x30]
lea rax, [rsp + 0x1af]
movups xmmword [rax - 0xf], xmm7
movups xmmword [rax - 0x1f], xmm6
xor ecx, ecx
cmp rcx, 0x10
je 0x140065fc9
mov dl, byte [rsp + rcx + 0x190]
mov r8b, byte [rax]
mov byte [rsp + rcx + 0x190], r8b
mov byte [rax], dl
inc rcx
dec rax
jmp 0x140065fa7
xorps xmm0, xmm0
lea rax, [rsp + 0xb0]
movaps xmmword [rax + 0x10], xmm0
movaps xmmword [rax], xmm0
mov ecx, 4
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea r9, [0x140170080]
lea rcx, [rsp + 0x190]
mov bpl, 1
mov edx, 0x20
mov r8b, 1
call sym.ring::limb::parse_big_endian_in_range_and_pad_consttime::hf0642ca24f7ef0d5
test al, al
jne 0x140066305
movups xmmword [rsp + 0x40], xmm6
movups xmmword [rsp + 0x50], xmm7
lea r15, [rsp + 0xb0]
mov r8d, 0xa0
mov rcx, r15
xor edx, edx
call sub.msvcrt.dll_memset
mov rcx, r15
mov rdx, rdi
call dbg.ring_core_0_17_7_x25519_ge_frombytes_vartime
cmp eax, 1
jne 0x140066305
lea r15, [rsp + 0x310]
lea rdx, [rsp + 0xb0]
mov r8d, 0xa0
mov rcx, r15
call sym.memcpy
mov rcx, r15
call dbg.ring_core_0_17_7_x25519_fe_neg
lea rcx, [rsp + 0x388]
call dbg.ring_core_0_17_7_x25519_fe_neg
movups xmm0, xmmword [0x14016fff8]
lea r15, [rsp + 0x190]
movups xmmword [r15 + 0x38], xmm0
movups xmm0, xmmword [0x14016ffe8]
movups xmmword [r15 + 0x28], xmm0
movups xmm0, xmmword [0x14016ffd8]
movups xmmword [r15 + 0x18], xmm0
movups xmm0, xmmword [0x14016ffc8]
movups xmmword [r15 + 8], xmm0
lea r12, [0x14016ff98]
call sym.spin::once::Once_T_R_::try_call_once::h5ebf25551059799e
xorps xmm6, xmm6
movups xmmword [r15 + 0xc0], xmm6
movups xmmword [r15 + 0xb0], xmm6
movups xmmword [r15 + 0xa0], xmm6
movups xmmword [r15 + 0x90], xmm6
movups xmmword [r15 + 0x80], xmm6
movups xmmword [r15 + 0x70], xmm6
movups xmmword [r15 + 0x60], xmm6
movups xmmword [r15 + 0x50], xmm6
mov qword [r15], r12
and qword [r15 + 0x48], 0
and qword [r15 + 0xd0], 0
mov r8d, 0x20
mov rcx, r15
mov rdx, rbx
call sym.ring::digest::Context::update::h9ab5c7369c25bc8c
mov r8d, 0x20
mov rcx, r15
mov rdx, rdi
call sym.ring::digest::Context::update::h9ab5c7369c25bc8c
mov rcx, r15
mov rdx, rsi
mov r8, r14
call sym.ring::digest::Context::update::h9ab5c7369c25bc8c
lea rsi, [rsp + 0xb0]
mov r8d, 0xd8
mov rcx, rsi
mov rdx, r15
call sym.memcpy
lea rcx, [rsp + 0x60]
mov rdx, rsi
call sym.ring::digest::Context::finish::h857799502145a73b
movaps xmmword [rsi + 0x30], xmm6
movaps xmmword [rsi + 0x20], xmm6
movaps xmmword [rsi + 0x10], xmm6
movaps xmmword [rsi], xmm6
lea rcx, [rsp + 0x68]
mov rax, qword [rcx - 8]
mov rdx, qword [rax + 0x10]
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.7_src_digest.rs
call sym.core::array::__impl_core::ops::index::Index_I__for__T__N__::index::ha2ba947653c13f79
mov r9, rdx
lea rcx, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.7_src_ec_curve25519_scalar.rs
mov qword [rsp + 0x20], rcx
lea rsi, [rsp + 0xb0]
mov edx, 0x40
mov rcx, rsi
mov r8, rax
call sym.core::slice::__impl__T__::copy_from_slice::h4c3fffcea77e4c4a
mov rcx, rsi
call dbg.ring_core_0_17_7_x25519_sc_reduce
lea r8, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.7_src_ec_curve25519_scalar.rs
mov edx, 0x20
mov rcx, rsi
call sym.core::array::__impl_core::ops::index::Index_I__for__T__N__::index::ha2ba947653c13f79
cmp rdx, 0x20
jne 0x140066329
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rdx, [rsp + 0x290]
movups xmmword [rdx + 0x10], xmm1
movups xmmword [rdx], xmm0
lea rsi, [rsp + 0x190]
movaps xmmword [rsi + 0x60], xmm6
movaps xmmword [rsi + 0x50], xmm6
movaps xmmword [rsi + 0x40], xmm6
movaps xmmword [rsi + 0x30], xmm6
movaps xmmword [rsi + 0x20], xmm6
movaps xmmword [rsi + 0x10], xmm6
movaps xmmword [rsi], xmm6
and qword [rsi + 0x70], 0
lea r8, [rsp + 0x310]
lea r9, [rsp + 0x40]
mov rcx, rsi
call dbg.ring_core_0_17_7_x25519_ge_double_scalarmult_vartime
lea r14, [rsp + 0xb0]
mov ecx, 0xf
mov rdi, r14
rep movsq qword [rdi], qword [rsi]
lea rdi, [rsp + 0xd8]
lea rdx, [rsp + 0x100]
lea rsi, [rsp + 0x270]
movaps xmmword [rsi + 0x10], xmm6
movaps xmmword [rsi], xmm6
lea r15, [rsp + 0x2b0]
movaps xmmword [r15 + 0x10], xmm6
movaps xmmword [r15], xmm6
and qword [r15 + 0x20], 0
mov rcx, r15
call dbg.ring_core_0_17_7_x25519_fe_invert
lea r12, [rsp + 0x2e0]
movaps xmmword [r12 + 0x10], xmm6
movaps xmmword [r12], xmm6
and qword [r12 + 0x20], 0
mov rcx, r12
mov rdx, r14
mov r8, r15
call dbg.ring_core_0_17_7_x25519_fe_mul_ttt
lea r14, [rsp + 0x60]
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
and qword [r14 + 0x20], 0
mov rcx, r14
mov rdx, rdi
mov r8, r15
call dbg.ring_core_0_17_7_x25519_fe_mul_ttt
mov rcx, rsi
mov rdx, r14
call dbg.ring_core_0_17_7_x25519_fe_tobytes
mov rcx, r12
call dbg.ring_core_0_17_7_x25519_fe_isnegative
shl al, 7
xor byte [rsi + 0x1f], al
movaps xmm0, xmmword [rsi + 0x10]
movaps xmm1, xmmword [rsi]
movups xmmword [r14], xmm1
movups xmmword [r14 + 0x10], xmm0
lea rdx, [rsp + 0x60]
mov r8d, 0x20
mov rcx, rbx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x140066305
xor ebp, ebp
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x3b0]
movaps xmm7, xmmword [rsp + 0x3c0]
add rsp, 0x3d0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rax, str._usr_local_cargo_registry_src_index.crates.io_6f17d22bba15001f_ring_0.17.7_src_ec_curve25519_scalar.rs
mov qword [rsp + 0x20], rax
lea rcx, str.called__Result::unwrap____on_an__Err__value
lea r9, sym.core::ptr::drop_in_place_core::fmt::Error_::h57ef203afefd9d48
lea r8, [rsp + 0x190]
mov edx, 0x2b
call dbg.unwrap_failed
ud2