Function at 0x140185293
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push rbp
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
mov al, byte [rcx]
movups xmm0, xmmword [rcx + 1]
movups xmm1, xmmword [rcx + 0xf]
lea rdi, [rsp + 0x230]
movups xmmword [rdi + 0xf], xmm1
movups xmmword [rdi + 1], xmm0
mov qword [rsp + 0x28], rcx
mov cl, byte [rcx + 0x1f]
and al, 0xf8
and cl, 0x3f
or cl, 0x40
mov byte [rdi], al
mov byte [rdi + 0x1f], cl
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
sub dword [rsp + 0x30], eax
xor ebx, ebx
lea r14, str.C:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fcurve25519_dalek_4.1.2_src_scalar.rs_
lea r15, str.C:Users_admin.cargo_registry_srcindex.crates.io_6f17d22bba15001fcurve25519_dalek_4.1.2_src_scalar.rs_
cmp rbx, 0x20
je case.0x14002eaa5.1368
lea rsi, [rbx + 1]
mov rcx, rdi
stc
mov rdx, rbx
mov r8, r14
call fcn.1400315a0
mov al, byte [rax]
and al, 0xf
mov byte [rsp + rbx*2 + 0x30], al
mov rcx, rdi
mov rdx, rbx
mov r8, r15
call fcn.1400315a0
invalid
dec dword [rdx + 0x4e8c000]
mov byte [rsp + rbx*2 + 0x31], al
mov rbx, rsi
jmp 0x1401852fc
mov eax, 1
cmp rax, 0x40
je 0x140185364
mov cl, byte [rsp + rax + 0x2f]
lea edx, [rcx + 8]
mov r8d, edx
and r8b, 0xf0
sub cl, r8b
mov byte [rsp + rax + 0x2f], cl
sar dl, 4
add byte [rsp + rax + 0x30], dl
inc rax
jmp 0x14018533d
xorps xmm0, xmm0
lea r15, [rsp + 0x98]
and qword [r15 - 8], 0
movaps xmmword [r15 - 0x18], xmm0
call 0x1874162be
fmul dword [rdi]
adc byte [0x1401dbdf0], cl
movups xmmword [r15], xmm1
movups xmm2, xmmword [0x1401dbe00]
and qword [r15 + 0x20], 0
movups xmmword [r15 + 0x10], xmm2
push rdi
adc byte [rcx - 0x7d], cl
add byte [ecx + 0xf], al
sub dword [rdi + 0x28], ecx
movaps xmmword [r15 + 0x38], xmm2
cmp byte [rcx + 0xf], al
adc dword [rdi + 0x50], eax
push r8
movups xmmword [r15 + 0x60], xmm0
and qword [r15 + 0x70], 0
xor r12d, r12d
lea rsi, [0x1401dbe40]
lea rdi, [rsp + 0x110]
add byte [rax], al
lea rbx, [rsp + 0x250]
lea r14, [rsp + 0x70]
cmp r12, 0x3f
ja 0x14018541e
test r12b, 1
je 0x140185419
mov rax, r12
shr rax, 1
call 0x100e8bd35
add eax, dword [rax]
add byte [rax + 1], cl
mov r8b, byte [rsp + r12 + 0x30]
mov rcx, rdi
call fcn.14003217d
mov rcx, rbx
mov rdx, r14
mov r8, rdi
clc
call fcn.140032329
mov rcx, r14
mov rdx, rbx
call fcn.14003241f
invalid
inc r12
jmp 0x1401853d7
lea rdi, [rsp + 0x1d8]
mov rax, qword [r15 + 0x20]
mov qword [rdi + 0x20], rax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rdi + 0x10], xmm1
adc dword [rdi + 0x10], ecx
movups xmmword [rdi], xmm0
lea rbx, [rsp + 0x200]
movups xmm0, xmmword [r15 + 0x28]
movups xmm1, xmmword [r15 + 0x38]
movaps xmmword [rbx], xmm0
movaps xmmword [rbx + 0x10], xmm1
mov rax, qword [r15 + 0x48]
mov eax, dword [rdi + 0x48]
mov qword [rbx + 0x20], rax
movaps xmm0, xmmword [rsp + 0x70]
movaps xmm1, xmmword [rsp + 0x80]
movaps xmmword [rbx - 0x50], xmm0
movaps xmmword [rbx - 0x40], xmm1
mov rax, qword [rsp + 0x90]
nop
add byte [rax], al
add byte [rax - 0x77], cl
ror byte [r13 + r9*4 - 0x4c], 1
and al, 0x88
add dword [rax], eax
add byte [rbp + rcx*4 - 0x44], cl
lea r15, [rsp + 0x138]
mov esi, 3
lea r12, [rsp + 0x160]
lea r13, [rsp + 0x110]
lea rbp, [rsp + 0x1b0]
and al, 0xb0
add dword [rax], eax
invalid
sub esi, 1
jb 0x1401854e9
mov rcx, r13
mov rdx, rbp
call fcn.14003252f
mov rcx, rbp
mov rdx, r13
mov r8, r14
call fcn.140031b9d
invalid
invalid
dec dword [rax - 0x77]
stc
mov rdx, r15
mov r8, r12
call fcn.140031b9d
mov rcx, rbx
mov rdx, r12
mov r8, r14
call fcn.140031b9d
jmp 0x1401854ad
invalid
lea rdi, [rsp + 0x250]
lea rdx, [rsp + 0x1b0]
add byte [rax - 0x77], cl
stc
call fcn.14003252f
lea rbx, [rsp + 0x70]
mov rcx, rbx
invalid
mov rdx, rdi
call fcn.14003241f
xor r15d, r15d
lea r14, [rsp + 0x110]
adc byte [rcx], al
add byte [rax], al
lea rsi, [0x1401dbe40]
invalid
invalid
invalid