Function at 0x14000a620
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x278
mov qword [rsp + 0x158], rcx
mov rax, qword [0x14017e028]
xor rax, rsp
mov qword [rsp + 0x270], rax
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdi, [rsp + 0x250]
movaps xmmword [rdi], xmm0
movaps xmmword [rdi + 0x10], xmm1
and byte [rdi], 0xf8
mov al, byte [rdi + 0x1f]
and al, 0x3f
or al, 0x40
mov byte [rdi + 0x1f], al
lea rsi, [rsp + 0x1b0]
mov r8d, 0xa0
mov rcx, rsi
mov dl, 0xaa
call fcn.1400924f0
mov rcx, rsi
mov rdx, rdi
call fcn.1400762c0
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r11, [rsp + 0x160]
mov qword [r11 + 0x20], rax
mov rax, qword [rsi + 0x50]
mov rdx, qword [rsi + 0x28]
mov r8, qword [rsi + 0x30]
lea rcx, [rdx + rax]
mov qword [rsp + 0x110], rcx
mov rcx, qword [rsi + 0x58]
lea r15, [r8 + rcx]
mov rbp, qword [rsi + 0x60]
mov r9, qword [rsi + 0x38]
lea r12, [r9 + rbp]
mov rbx, qword [rsi + 0x68]
movabs r10, 0xffffffffffffe
add rax, r10
sub rax, rdx
mov rdx, qword [rsi + 0x40]
add rcx, r10
sub rcx, r8
lea r13, [rdx + rbx]
add rbp, r10
sub rbp, r9
mov rdi, qword [rsi + 0x70]
mov rsi, qword [rsi + 0x48]
add rbx, r10
sub rbx, rdx
lea r14, [rsi + rdi]
add rdi, r10
add rax, 0xffffffffffffffdc
sub rdi, rsi
lea rdx, [rsp + 0x188]
mov qword [rdx], rax
mov qword [rdx + 8], rcx
mov qword [rdx + 0x10], rbp
mov qword [rdx + 0x18], rbx
mov qword [rdx + 0x20], rdi
movaps xmm0, xmmword [0x14015c320]
mov rsi, r11
movaps xmmword [r11 + 0x10], xmm0
movaps xmmword [r11], xmm0
mov rcx, r11
call fcn.140070570
mov rdx, qword [rsi + 0x20]
mov qword [rsp + 0x38], rdx
mov rcx, rsi
lea rax, [rdx + rdx*8]
lea rbx, [rdx + rax*2]
mov rax, rbx
mul r14
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rdx
mov rdx, qword [rsi + 0x18]
mov qword [rsp + 0x30], rdx
lea rax, [rdx + rdx*8]
lea rbp, [rdx + rax*2]
mov rax, rbp
mul r14
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xe0], rdx
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x28], rdx
lea rax, [rdx + rdx*8]
lea rsi, [rdx + rax*2]
mov rax, rsi
mul r14
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe8], rdx
mov r11, qword [rcx + 8]
lea rax, [r11 + r11*8]
lea rax, [r11 + rax*2]
mul r14
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x80], rax
mov rax, rbx
mov r10, r13
mul r13
mov rdi, rdx
mov r9, rax
mov rax, rbp
mul r13
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa8], rax
mov rax, rsi
mul r13
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x60], rax
mov rax, rbx
mov r8, r12
mul r12
mov r12, rdx
mov rsi, rax
mov rax, rbp
mul r8
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], rax
mov rax, rbx
mov rcx, r15
mul r15
mov rbx, rax
mov r13, rdx
lea rax, [rsp + 0x160]
mov r15, qword [rax]
mov rax, r15
mul r14
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x138], rax
mov rax, r11
mul r10
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x128], rax
mov rax, r15
mul r10
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x100], rax
mov rbp, qword [rsp + 0x28]
mov rax, rbp
mul r8
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rax
mov rax, r11
mul r8
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xc0], rax
mov rax, r15
mul r8
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x88], rax
mov r8, qword [rsp + 0x30]
mov rax, r8
mul rcx
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xf0], rax
mov rax, rbp
mul rcx
mov qword [rsp + 0xb0], rdx
mov qword [rsp + 0xa0], rax
mov rax, r11
mul rcx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x68], rax
mov rax, r15
mul rcx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x38]
mov r14, qword [rsp + 0x110]
mul r14
mov r10, rdx
mov rbp, rax
mov rax, r8
mul r14
mov r8, rdx
mov rcx, rax
mov rax, qword [rsp + 0x28]
mul r14
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x38], rax
mov rax, r11
mul r14
mov qword [rsp + 0x30], rdx
mov r11, rax
mov rax, r15
mul r14
add rbx, qword [rsp + 0x50]
adc r13, qword [rsp + 0x58]
add rbx, qword [rsp + 0x60]
adc r13, qword [rsp + 0x70]
add rbx, qword [rsp + 0x80]
adc r13, qword [rsp + 0x90]
add rbx, rax
adc r13, rdx
shld r13, rbx, 0xd
movabs rax, 0x7ffffffffffff
and rbx, rax
add r9, qword [rsp + 0xd0]
adc rdi, qword [rsp + 0xe0]
add rsi, qword [rsp + 0xa8]
adc r12, qword [rsp + 0xb8]
add rsi, qword [rsp + 0xd8]
adc r12, qword [rsp + 0xe8]
add rsi, r11
adc r12, qword [rsp + 0x30]
add rsi, qword [rsp + 0x40]
adc r12, qword [rsp + 0x48]
add rsi, r13
adc r12, 0
shld r12, rsi, 0xd
and rsi, rax
add r9, qword [rsp + 0x38]
adc rdi, qword [rsp + 0x28]
add r9, qword [rsp + 0x68]
adc rdi, qword [rsp + 0x78]
add r9, qword [rsp + 0x88]
adc rdi, qword [rsp + 0x98]
add r9, r12
adc rdi, 0
shld rdi, r9, 0xd
and r9, rax
add rcx, qword [rsp + 0x148]
adc r8, qword [rsp + 0x150]
add rcx, qword [rsp + 0xa0]
adc r8, qword [rsp + 0xb0]
add rcx, qword [rsp + 0xc0]
adc r8, qword [rsp + 0xc8]
add rcx, qword [rsp + 0x100]
adc r8, qword [rsp + 0x108]
add rcx, rdi
adc r8, 0
shld r8, rcx, 0xd
and rcx, rax
add rbp, qword [rsp + 0xf0]
adc r10, qword [rsp + 0xf8]
add rbp, qword [rsp + 0x118]
adc r10, qword [rsp + 0x120]
add rbp, qword [rsp + 0x128]
adc r10, qword [rsp + 0x130]
add rbp, qword [rsp + 0x138]
adc r10, qword [rsp + 0x140]
add rbp, r8
adc r10, 0
shld r10, rbp, 0xd
lea rdx, [r10 + r10*8]
lea rdi, [r10 + rdx*2]
add rdi, rbx
mov rdx, rdi
shr rdx, 0x33
add rdx, rsi
mov rbx, rdx
shr rbx, 0x33
add rbx, r9
and rbp, rax
and rdi, rax
and rdx, rax
lea rax, [rsp + 0x160]
mov qword [rax], rdi
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rbp
mov rdx, rax
mov rcx, qword [rsp + 0x158]
call fcn.14000ab50
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14008fec0
nop
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret