Function at 0x1400a8410
Capabilities:
Encrypt data using curve25519

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x170]
sub rsp, 0x270
mov rax, qword [0x14023f780]
xor rax, rsp
mov qword [rbp + 0x168], rax
movups xmm0, xmmword [rdx]
mov qword [rsp + 0x40], rcx
lea rcx, [rbp + 0x120]
movups xmm1, xmmword [rdx + 0x10]
movd eax, xmm0
movups xmmword [rbp + 0x148], xmm0
movups xmm0, xmmword [r8]
and al, 0xf8
mov byte [rbp + 0x148], al
mov rax, qword [rdx + 0x18]
lea rdx, [rbp + 0x38]
shr rax, 0x38
and al, 0x3f
or al, 0x40
movups xmmword [rbp + 0x158], xmm1
mov byte [rbp + 0x167], al
mov rax, qword [r8 + 0x18]
movups xmm1, xmmword [r8 + 0x10]
shr rax, 0x38
and al, 0x7f
movups xmmword [rbp + 0x48], xmm1
mov byte [rbp + 0x57], al
movups xmmword [rbp + 0x38], xmm0
call fcn.1400a2cb0
movups xmm1, xmmword [rbp + 0x130]
xor r11d, r11d
xor ebx, ebx
movdqa xmm2, xmmword [0x1401fcc30]
xorps xmm0, xmm0
movups xmmword [rbp + 0x58], xmm0
xor edi, edi
xor esi, esi
movups xmmword [rbp + 0x68], xmm0
xor r14d, r14d
xor r15d, r15d
movups xmm0, xmmword [rbp + 0x120]
xor r12d, r12d
lea r9d, [r11 + 1]
xor r13d, r13d
mov ecx, 0xfe
xor eax, eax
mov dword [rsp + 0x24], ecx
movups xmmword [rbp + 0xa8], xmm0
mov r10d, r9d
mov qword [rsp + 0x28], rax
movsd xmm0, qword [rbp + 0x140]
mov dword [rsp + 0x20], eax
movabs rax, 0xfffffffffffda
movsd qword [rbp + 0xc8], xmm0
movups xmmword [rbp + 0xb8], xmm1
mov qword [rsp + 0x30], rax
mov eax, ecx
shr rax, 3
movzx ecx, cl
and ecx, 7
movzx edx, byte [rbp + rax + 0x148]
mov eax, dword [rsp + 0x20]
shr edx, cl
and edx, 1
mov r8d, edx
mov ecx, edx
mov rdx, qword [rbp + 0xa8]
xor rcx, rax
mov rax, rdx
mov qword [rsp + 0x38], r8
xor rax, r9
neg rcx
and rax, rcx
xor rdx, rax
xor r9, rax
mov qword [rbp + 0xa8], rdx
mov rdx, qword [rbp + 0xb0]
mov rax, rdx
mov qword [rbp + 0xd0], r9
xor rax, r11
and rax, rcx
xor rdx, rax
xor r11, rax
mov qword [rbp + 0xb0], rdx
mov rdx, qword [rbp + 0xb8]
mov rax, rdx
mov qword [rbp + 0xd8], r11
xor rax, rbx
and rax, rcx
xor rdx, rax
xor rbx, rax
mov qword [rbp + 0xb8], rdx
mov rdx, qword [rbp + 0xc0]
mov rax, rdx
mov qword [rbp + 0xe0], rbx
xor rax, rdi
and rax, rcx
xor rdx, rax
xor rdi, rax
mov qword [rbp + 0xc0], rdx
mov rdx, qword [rbp + 0xc8]
mov rax, rdx
mov qword [rbp + 0xe8], rdi
xor rax, rsi
and rax, rcx
xor rdx, rax
xor rsi, rax
mov qword [rbp + 0xc8], rdx
mov rdx, qword [rbp + 0x58]
mov rax, rdx
mov qword [rbp + 0xf0], rsi
xor rax, r10
and rax, rcx
xor rdx, rax
xor r10, rax
mov qword [rbp + 0x58], rdx
mov rax, r15
mov rdx, qword [rbp + 0x60]
xor rax, rdx
mov qword [rbp + 0x80], r10
and rax, rcx
xor rdx, rax
xor r15, rax
mov qword [rbp + 0x60], rdx
mov rax, r12
mov rdx, qword [rbp + 0x68]
xor rax, rdx
mov qword [rbp + 0x88], r15
and rax, rcx
xor rdx, rax
xor r12, rax
mov qword [rbp + 0x68], rdx
mov rax, r13
mov rdx, qword [rbp + 0x70]
xor rax, rdx
mov qword [rbp + 0x90], r12
and rax, rcx
xor rdx, rax
mov dword [rsp + 0x20], r8d
mov r8, qword [rbp + 0xa8]
xor r13, rax
mov qword [rbp + 0x70], rdx
mov rdx, qword [rsp + 0x28]
mov rax, rdx
mov qword [rbp + 0x98], r13
xor rax, r14
and rax, rcx
movabs rcx, 0xfffffffffffda
xor r14, rax
xor rdx, rax
mov rax, r8
mov qword [rbp + 0x78], r14
sub rax, r10
mov qword [rbp + 0xa0], rdx
add rax, rcx
mov qword [rsp + 0x70], rax
xor eax, eax
movdqu xmm1, xmmword [rbp + rax + 0xb0]
movdqu xmm0, xmmword [rbp + rax + 0x88]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rsp + rax + 0x78], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a86c2
mov rcx, qword [rbp + 0x58]
mov rax, r9
sub rax, rcx
add rax, qword [rsp + 0x30]
mov qword [rbp - 0x40], rax
xor eax, eax
movdqu xmm1, xmmword [rbp + rax + 0xd8]
movdqu xmm0, xmmword [rbp + rax + 0x60]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rbp + rax - 0x38], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a8701
lea rax, [rcx + r9]
mov qword [rbp - 0x18], rax
lea rcx, [rbp + 0x80]
mov rax, qword [rbp + 0x60]
add rax, r11
mov qword [rbp - 0x10], rax
mov rax, qword [rbp + 0x68]
add rax, rbx
mov qword [rbp - 8], rax
mov rax, qword [rbp + 0x70]
add rax, rdi
mov qword [rbp], rax
lea rax, [r14 + rsi]
mov qword [rbp + 8], rax
lea rax, [r8 + r10]
mov qword [rsp + 0x48], rax
lea r8, [rbp - 0x18]
mov rax, qword [rbp + 0xb0]
add rax, r15
mov qword [rsp + 0x50], rax
mov rax, qword [rbp + 0xb8]
add rax, r12
mov qword [rsp + 0x58], rax
mov rax, qword [rbp + 0xc0]
add rax, r13
mov qword [rsp + 0x60], rax
mov rax, qword [rbp + 0xc8]
add rax, rdx
lea rdx, [rsp + 0x70]
mov qword [rsp + 0x68], rax
call fcn.1400a2830
lea r8, [rbp - 0x40]
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x58]
call fcn.1400a2830
lea rdx, [rbp - 0x40]
lea rcx, [rbp - 0x68]
call fcn.1400a2240
lea rdx, [rbp - 0x18]
lea rcx, [rbp + 0xf8]
call fcn.1400a2240
mov rdx, qword [rbp + 0x58]
movabs rdi, 0xfffffffffffda
mov r8, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x60]
add rcx, qword [rbp + 0x88]
mov qword [rbp + 0x18], rcx
mov rcx, qword [rbp + 0x68]
lea rax, [rdx + r8]
add rcx, qword [rbp + 0x90]
sub r8, rdx
mov qword [rbp + 0x20], rcx
add r8, rdi
mov rcx, qword [rbp + 0x70]
add rcx, qword [rbp + 0x98]
mov qword [rbp + 0x28], rcx
mov rcx, qword [rbp + 0x78]
add rcx, qword [rbp + 0xa0]
mov qword [rbp + 0x10], rax
xor eax, eax
mov qword [rbp + 0x30], rcx
mov qword [rsp + 0x48], r8
nop dword [rax + rax]
movdqu xmm1, xmmword [rbp + rax + 0x88]
movdqu xmm0, xmmword [rbp + rax + 0x60]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rsp + rax + 0x50], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a8850
lea r8, [rbp - 0x68]
lea rdx, [rbp + 0xf8]
lea rcx, [rbp + 0xd0]
call fcn.1400a2830
mov rax, qword [rbp + 0xf8]
mov rbx, qword [rbp - 0x68]
sub rax, rbx
add rax, rdi
mov qword [rbp - 0x40], rax
xor eax, eax
nop word [rax + rax]
movdqu xmm1, xmmword [rbp + rax + 0x100]
movdqu xmm0, xmmword [rbp + rax - 0x60]
psubq xmm1, xmm0
paddq xmm1, xmm2
movdqu xmmword [rbp + rax - 0x38], xmm1
add rax, 0x10
cmp rax, 0x20
jl 0x1400a88b0
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x58]
call fcn.1400a2240
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x80]
call fcn.1400a1e80
lea rdx, [rbp + 0x10]
lea rcx, [rbp + 0xa8]
call fcn.1400a2240
mov rcx, qword [rbp + 0x80]
lea r8, [rbp + 0x58]
add rcx, rbx
lea rdx, [rbp + 0x120]
mov qword [rsp + 0x70], rcx
mov rcx, qword [rbp + 0x88]
add rcx, qword [rbp - 0x60]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rbp + 0x90]
add rcx, qword [rbp - 0x58]
mov qword [rbp - 0x80], rcx
mov rcx, qword [rbp + 0x98]
add rcx, qword [rbp - 0x50]
mov qword [rbp - 0x78], rcx
mov rcx, qword [rbp + 0xa0]
add rcx, qword [rbp - 0x48]
mov qword [rbp - 0x70], rcx
lea rcx, [rbp + 0x80]
call fcn.1400a2830
lea r8, [rsp + 0x70]
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0x58]
call fcn.1400a2830
mov ecx, dword [rsp + 0x24]
sub ecx, 1
mov dword [rsp + 0x24], ecx
js 0x1400a89db
mov rax, qword [rbp + 0xa0]
mov rsi, qword [rbp + 0xf0]
mov rdi, qword [rbp + 0xe8]
mov rbx, qword [rbp + 0xe0]
mov r11, qword [rbp + 0xd8]
mov r9, qword [rbp + 0xd0]
mov r14, qword [rbp + 0x78]
mov r13, qword [rbp + 0x98]
mov r12, qword [rbp + 0x90]
mov r15, qword [rbp + 0x88]
mov r10, qword [rbp + 0x80]
mov qword [rsp + 0x28], rax
jmp 0x1400a8524
mov rax, qword [rbp + 0xd0]
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rbp + 0xa8]
neg rdx
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0xb0]
mov qword [rbp + 0xd0], rax
mov rax, qword [rbp + 0xd8]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0xb8]
mov qword [rbp + 0xd8], rax
mov rax, qword [rbp + 0xe0]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0xc0]
mov qword [rbp + 0xe0], rax
mov rax, qword [rbp + 0xe8]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0xc8]
mov qword [rbp + 0xe8], rax
mov rax, qword [rbp + 0xf0]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0x58]
mov qword [rbp + 0xf0], rax
mov rax, rcx
xor rax, qword [rbp + 0x80]
and rax, rdx
xor rcx, rax
mov rax, qword [rbp + 0x60]
mov qword [rbp + 0x58], rcx
mov rcx, qword [rbp + 0x88]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0x90]
mov qword [rbp + 0x60], rax
mov rax, qword [rbp + 0x68]
movups xmm0, xmmword [rbp + 0x58]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0x98]
mov qword [rbp + 0x68], rax
mov rax, qword [rbp + 0x70]
xor rcx, rax
and rcx, rdx
xor rax, rcx
mov rcx, qword [rbp + 0xa0]
mov qword [rbp + 0x70], rax
mov rax, qword [rbp + 0x78]
movups xmm1, xmmword [rbp + 0x68]
xor rcx, rax
and rcx, rdx
lea rdx, [rbp + 0xf8]
xor rax, rcx
lea rcx, [rbp + 0x58]
mov qword [rbp + 0x78], rax
movups xmmword [rbp + 0xf8], xmm0
movsd xmm0, qword [rbp + 0x78]
movsd qword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x108], xmm1
call fcn.1400a1c00
lea r8, [rbp + 0x58]
lea rdx, [rbp + 0xd0]
lea rcx, [rbp + 0xd0]
call fcn.1400a2830
mov rcx, qword [rsp + 0x40]
lea rdx, [rbp + 0xd0]
call fcn.1400a24d0
mov rcx, qword [rbp + 0x168]
xor rcx, rsp
call fcn.14018eb60
mov rbx, qword [rsp + 0x2c8]
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret