Function at 0x140107480
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 [0x14036c038]
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.140191990
lea r8, [0x140353420]
mov rcx, rsi
mov rdx, rdi
call fcn.140180350
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x160]
mov qword [rdi + 0x20], rax
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov rdx, qword [rsi + 0x28]
mov r15, qword [rsi + 0x30]
mov r8, qword [rsi + 0x60]
mov rbp, qword [rsi + 0x38]
mov r9, qword [rsi + 0x68]
mov r14, qword [rsi + 0x40]
movabs r10, 0xffffffffffffe
lea r11, [rax + r10]
sub r11, rdx
mov rbx, rdx
add r11, 0xffffffffffffffdc
lea rdx, [rsp + 0x188]
mov qword [rdx], r11
lea r11, [rcx + r10]
sub r11, r15
mov qword [rdx + 8], r11
lea r11, [r8 + r10]
sub r11, rbp
mov qword [rdx + 0x10], r11
lea r11, [r9 + r10]
sub r11, r14
mov qword [rdx + 0x18], r11
mov r11, qword [rsi + 0x70]
mov rsi, qword [rsi + 0x48]
add r10, r11
sub r10, rsi
mov qword [rdx + 0x20], r10
add rsi, r11
add r14, r9
add rbp, r8
add r15, rcx
mov r13, r15
add rbx, rax
mov qword [rsp + 0xa0], rbx
movaps xmm0, xmmword [0x1402fa4a0]
mov rcx, rdi
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
call fcn.140185540
mov rcx, rdi
mov rdx, qword [rdi + 0x20]
mov qword [rsp + 0x30], rdx
lea rax, [rdx + rdx*8]
lea r9, [rdx + rax*2]
mov rax, r9
mul rsi
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rdx
mov r10, qword [rdi + 0x18]
lea rax, [r10 + r10*8]
lea rdi, [r10 + rax*2]
mov rax, rdi
mul rsi
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe8], rdx
mov rdx, qword [rcx + 0x10]
mov qword [rsp + 0x28], rdx
lea rax, [rdx + rdx*8]
lea r8, [rdx + rax*2]
mov rax, r8
mul rsi
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xf0], rdx
mov r15, qword [rcx + 8]
lea rax, [r15 + r15*8]
lea rax, [r15 + rax*2]
mul rsi
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x80], rax
mov rax, r9
mul r14
mov rbx, rdx
mov r11, rax
mov rax, rdi
mul r14
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xb0], rax
mov rax, r8
mul r14
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x60], rax
mov rax, r9
mul rbp
mov r12, rdx
mov r8, rax
mov rax, rdi
mul rbp
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], rax
mov rax, r9
mov rcx, r13
mul r13
mov r9, rax
mov r13, rdx
lea rax, [rsp + 0x160]
mov rdi, qword [rax]
mov rax, rdi
mul rsi
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x138], rax
mov rax, r15
mul r14
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x128], rax
mov rax, rdi
mul r14
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x108], rax
mov rsi, qword [rsp + 0x28]
mov rax, rsi
mul rbp
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rax
mov rax, r15
mul rbp
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rax
mov rax, rdi
mul rbp
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x88], rax
mov rax, r10
mul rcx
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0xf8], rax
mov rax, rsi
mul rcx
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa8], rax
mov rax, r15
mul rcx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x68], rax
mov rax, rdi
mul rcx
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
mov rsi, qword [rsp + 0xa0]
mul rsi
mov r14, rdx
mov rbp, rax
mov rax, r10
mul rsi
mov r10, rdx
mov rcx, rax
mov rax, qword [rsp + 0x28]
mul rsi
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov rax, r15
mul rsi
mov qword [rsp + 0x38], rdx
mov r15, rax
mov rax, rdi
mul rsi
add r9, qword [rsp + 0x50]
adc r13, qword [rsp + 0x58]
add r9, qword [rsp + 0x60]
adc r13, qword [rsp + 0x70]
add r9, qword [rsp + 0x80]
adc r13, qword [rsp + 0x90]
add r9, rax
adc r13, rdx
shld r13, r9, 0xd
movabs rax, 0x7ffffffffffff
and r9, rax
add r11, qword [rsp + 0xd8]
adc rbx, qword [rsp + 0xe8]
add r8, qword [rsp + 0xb0]
adc r12, qword [rsp + 0xc0]
add r8, qword [rsp + 0xe0]
adc r12, qword [rsp + 0xf0]
add r8, r15
adc r12, qword [rsp + 0x38]
add r8, qword [rsp + 0x40]
adc r12, qword [rsp + 0x48]
add r8, r13
adc r12, 0
shld r12, r8, 0xd
and r8, rax
add r11, qword [rsp + 0x30]
adc rbx, qword [rsp + 0x28]
add r11, qword [rsp + 0x68]
adc rbx, qword [rsp + 0x78]
add r11, qword [rsp + 0x88]
adc rbx, qword [rsp + 0x98]
add r11, r12
adc rbx, 0
shld rbx, r11, 0xd
and r11, rax
add rcx, qword [rsp + 0x148]
adc r10, qword [rsp + 0x150]
add rcx, qword [rsp + 0xa8]
adc r10, qword [rsp + 0xb8]
add rcx, qword [rsp + 0xc8]
adc r10, qword [rsp + 0xd0]
add rcx, qword [rsp + 0x108]
adc r10, qword [rsp + 0x110]
add rcx, rbx
adc r10, 0
shld r10, rcx, 0xd
and rcx, rax
add rbp, qword [rsp + 0xf8]
adc r14, qword [rsp + 0x100]
add rbp, qword [rsp + 0x118]
adc r14, qword [rsp + 0x120]
add rbp, qword [rsp + 0x128]
adc r14, qword [rsp + 0x130]
add rbp, qword [rsp + 0x138]
adc r14, qword [rsp + 0x140]
add rbp, r10
adc r14, 0
shld r14, rbp, 0xd
lea rdx, [r14 + r14*8]
lea rdx, [r14 + rdx*2]
add rdx, r9
mov r9, rdx
shr r9, 0x33
add r9, r8
mov r8, r9
shr r8, 0x33
add r8, r11
and rbp, rax
and rdx, rax
and r9, rax
lea rax, [rsp + 0x160]
mov qword [rax], rdx
mov qword [rax + 8], r9
mov qword [rax + 0x10], r8
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rbp
mov rdx, rax
mov rcx, qword [rsp + 0x158]
call fcn.140101290
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.14018f840
nop
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret