Function at 0x14000aae0
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x2d8
movaps xmmword [rsp + 0x2c0], xmm7
movaps xmmword [rsp + 0x2b0], xmm6
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x110], xmm0
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
mov qword [rsp + 0x130], 0
movups xmm0, xmmword [0x14013d258]
movups xmmword [rsp + 0x138], xmm0
movups xmm0, xmmword [0x14013d268]
movups xmmword [rsp + 0x148], xmm0
movups xmm0, xmmword [0x14013d278]
movups xmmword [rsp + 0x158], xmm0
movups xmm0, xmmword [0x14013d288]
movups xmmword [rsp + 0x168], xmm0
lea rcx, [rsp + 0x180]
lea rdx, [rsp + 0xa0]
mov r8d, 0xd8
call sym.memcpy
mov byte [rsp + 0x258], 0
mov rax, qword [rsp + 0x180]
mov rdx, rbx
shr rdx, 0x3d
lea rcx, [rbx*8]
add rcx, qword [rsp + 0x188]
jae 0x14000abfb
inc rdx
add rax, rdx
jae 0x14000ac09
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0d8]
jmp 0x14000ae9e
test rdx, rdx
je 0x14000ac09
add rax, rdx
jb 0x14000ae90
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], rcx
lea rax, [rsp + 0x218]
mov qword [rsp + 0xa0], rax
lea rcx, [rsp + 0x190]
lea r9, [rsp + 0xa0]
mov rdx, rdi
mov r8, rbx
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
lea rcx, [rsp + 0x180]
call sym._ZN6crypto4sha29Engine5126finish17hc6badddaffdf06e5E.llvm.7797873040375068835
mov rax, qword [rsp + 0x220]
mov rcx, qword [rsp + 0x228]
bswap rax
bswap rcx
mov rdx, qword [rsp + 0x238]
bswap rdx
mov r8, qword [rsp + 0x240]
bswap r8
mov r9, qword [rsp + 0x248]
bswap r9
mov r10, qword [rsp + 0x250]
bswap r10
movabs r11, 0xf8ffffffffffffff
and r11, qword [rsp + 0x218]
bswap r11
mov qword [rsp + 0xa0], r11
mov qword [rsp + 0xa8], rax
mov qword [rsp + 0xb0], rcx
mov rax, 0xffffffffffffff3f
and rax, qword [rsp + 0x230]
or rax, 0x40
bswap rax
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xc8], r8
mov qword [rsp + 0xd0], r9
mov qword [rsp + 0xd8], r10
lea r12, [rsp + 0x180]
lea rdx, [rsp + 0xa0]
mov r14d, 0x20
mov r8d, 0x20
mov rcx, r12
call sym.crypto::curve25519::ge_scalarmult_base::h37b1d9227be872d2
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0x78]
call sym.crypto::curve25519::Fe::invert::h7821cab115f13a38
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0x78]
movups xmm1, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
lea r15, [rsp + 0x260]
lea r8, [rsp + 0x20]
mov rcx, r15
mov rdx, r12
call sym.__crypto::curve25519::Fe_as_core::ops::arith::Mul_::mul::h16a32ffd9ef6d280
mov rax, qword [rsp + 0x1c8]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsp + 0x1a8]
movups xmm1, xmmword [rsp + 0x1b8]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x40], rax
movups xmm0, xmmword [rsp + 0x78]
movups xmm1, xmmword [rsp + 0x88]
movaps xmmword [rsp + 0x30], xmm1
movaps xmmword [rsp + 0x20], xmm0
lea r12, [rsp + 0x288]
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x20]
mov rcx, r12
call sym.__crypto::curve25519::Fe_as_core::ops::arith::Mul_::mul::h16a32ffd9ef6d280
lea rcx, [rsp + 0x50]
mov rdx, r12
call sym.crypto::curve25519::Fe::to_bytes::h16569480bc0f9e74
lea rcx, [rsp + 0x20]
mov rdx, r15
call sym.crypto::curve25519::Fe::to_bytes::h16569480bc0f9e74
movzx eax, byte [rsp + 0x20]
shl al, 7
xor byte [rsp + 0x6f], al
movups xmm6, xmmword [rsp + 0x50]
movups xmm7, xmmword [rsp + 0x60]
movups xmmword [rsp + 0xc0], xmm6
movups xmmword [rsp + 0xd0], xmm7
cmp rbx, 0x20
cmovb r14, rbx
test r14, r14
je 0x14000ae35
lea rcx, [rsp + 0xa0]
mov rdx, rdi
mov r8, r14
call sym.memcpy
movups xmm0, xmmword [rsp + 0xa0]
movups xmm1, xmmword [rsp + 0xb0]
movups xmm2, xmmword [rsp + 0xc0]
movups xmm3, xmmword [rsp + 0xd0]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x40], xmm6
movups xmmword [rsi + 0x50], xmm7
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x2b0]
movaps xmm7, xmmword [rsp + 0x2c0]
add rsp, 0x2d8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0f0]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2