Function at 0x14000be50
Capabilities:
Encrypt data using curve25519
Hash data using sha512

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x288
movaps xmmword [rsp + 0x270], xmm6
mov rdi, r9
mov rsi, rcx
mov rbx, qword [rsp + 0x2d0]
lea rcx, [rsp + 0x30]
call sym.crypto::curve25519::Fe::from_bytes::hc6040a8f4d295df7
mov eax, dword [rsp + 0x50]
mov ecx, dword [rsp + 0x54]
mov dword [rsp + 0x80], eax
mov dword [rsp + 0x84], ecx
neg eax
neg ecx
mov edx, dword [rsp + 0x30]
inc edx
mov dword [rsp + 0x60], edx
movdqa xmm0, xmmword [rsp + 0x30]
movdqa xmm1, xmmword [rsp + 0x40]
pshufd xmm2, xmm0, 0x55
movd dword [rsp + 0x64], xmm2
pshufd xmm2, xmm0, 0xee
movd dword [rsp + 0x68], xmm2
pshufd xmm2, xmm0, 0xff
movd dword [rsp + 0x6c], xmm2
movdqa xmm2, xmmword [0x14012b670]
psubd xmm2, xmm0
movdqa xmmword [rsp + 0x140], xmm2
movdqu xmmword [rsp + 0x70], xmm1
xorps xmm6, xmm6
pxor xmm0, xmm0
psubd xmm0, xmm1
movdqa xmmword [rsp + 0x150], xmm0
mov dword [rsp + 0x160], eax
mov dword [rsp + 0x164], ecx
lea r14, [rsp + 0x168]
lea rdx, [rsp + 0x140]
mov rcx, r14
call sym.crypto::curve25519::Fe::invert::h7821cab115f13a38
lea rcx, [rsp + 0x248]
lea rdx, [rsp + 0x60]
mov r8, r14
call sym.__crypto::curve25519::Fe_as_core::ops::arith::Mul_::mul::h16a32ffd9ef6d280
movaps xmmword [rsp + 0xe0], xmm6
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0x90], xmm6
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm6
mov qword [rsp + 0xf0], 0
movups xmm0, xmmword [0x14013d258]
movups xmmword [rsp + 0xf8], xmm0
movups xmm0, xmmword [0x14013d268]
movups xmmword [rsp + 0x108], xmm0
movups xmm0, xmmword [0x14013d278]
movups xmmword [rsp + 0x118], xmm0
movups xmm0, xmmword [0x14013d288]
movups xmmword [rsp + 0x128], xmm0
lea rcx, [rsp + 0x168]
lea rdx, [rsp + 0x60]
mov r8d, 0xd8
call sym.memcpy
mov byte [rsp + 0x240], 0
cmp rbx, 0x1f
jbe 0x14000c152
mov rcx, qword [rsp + 0x168]
mov eax, 0x100
add rax, qword [rsp + 0x170]
jae 0x14000c00b
inc rcx
je 0x14000c168
mov qword [rsp + 0x168], rcx
mov qword [rsp + 0x170], rax
lea rax, [rsp + 0x200]
mov qword [rsp + 0x60], rax
lea rcx, [rsp + 0x178]
lea r9, [rsp + 0x60]
mov r8d, 0x20
mov rdx, rdi
call sym.__crypto::cryptoutil::FixedBuffer128_as_crypto::cryptoutil::FixedBuffer_::input::h15144f9039ed50a3
lea rcx, [rsp + 0x168]
call sym._ZN6crypto4sha29Engine5126finish17hc6badddaffdf06e5E.llvm.7797873040375068835
mov rax, qword [rsp + 0x200]
mov rcx, qword [rsp + 0x208]
bswap rax
bswap rcx
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x210]
bswap rdx
mov qword [rsp + 0x68], rcx
mov rcx, qword [rsp + 0x218]
bswap rcx
mov qword [rsp + 0x70], rdx
mov rdx, qword [rsp + 0x220]
bswap rdx
mov qword [rsp + 0x78], rcx
mov r8, qword [rsp + 0x228]
bswap r8
mov qword [rsp + 0x80], rdx
mov rdx, qword [rsp + 0x230]
bswap rdx
mov qword [rsp + 0x88], r8
mov r8, qword [rsp + 0x238]
bswap r8
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], r8
and al, 0xf8
mov byte [rsp + 0x60], al
shr rcx, 0x38
and cl, 0x3f
or cl, 0x40
mov byte [rsp + 0x7f], cl
lea rdi, [rsp + 0x140]
lea rdx, [rsp + 0x248]
mov rcx, rdi
call sym.crypto::curve25519::Fe::to_bytes::h16569480bc0f9e74
mov qword [rsp + 0x20], 0x20
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x60]
mov r8d, 0x40
mov r9, rdi
call sym.crypto::curve25519::curve25519::hb4383083bb1be4b2
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x270]
add rsp, 0x288
pop rbx
pop rdi
pop rsi
pop r14
ret
lea r8, str._home_theo_.cargo_registry_src_index.crates.io_6f17d22bba15001f_rust_crypto_0.2.36_src_ed25519.rs
mov ecx, 0x20
mov rdx, rbx
call dbg.slice_end_index_len_fail
ud2
lea rcx, str.Numeric_overflow_occured.
lea r8, [0x14012b0d8]
mov edx, 0x19
call sym.std::panicking::begin_panic::h8a6b93740170dc30
ud2