Function at 0x14005c920
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 [0x140154028]
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.140099ee0
lea r8, [0x140145e40]
mov rcx, rsi
mov rdx, rdi
call fcn.14008c810
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r10, [rsp + 0x160]
mov qword [r10 + 0x20], rax
mov r8, qword [rsi + 0x50]
mov r9, qword [rsi + 0x58]
mov rcx, qword [rsi + 0x28]
mov rdi, qword [rsi + 0x30]
mov r11, qword [rsi + 0x60]
mov r12, qword [rsi + 0x38]
mov r15, qword [rsi + 0x68]
mov r14, qword [rsi + 0x40]
movabs rax, 0xffffffffffffe
lea rbp, [r8 + rax]
sub rbp, rcx
mov rbx, rcx
add rbp, 0xffffffffffffffdc
lea rdx, [rsp + 0x188]
mov qword [rdx], rbp
lea rbp, [r9 + rax]
sub rbp, rdi
mov qword [rdx + 8], rbp
lea rbp, [r11 + rax]
sub rbp, r12
mov qword [rdx + 0x10], rbp
lea rbp, [r15 + rax]
sub rbp, r14
mov qword [rdx + 0x18], rbp
mov rcx, qword [rsi + 0x70]
mov rbp, qword [rsi + 0x48]
add rax, rcx
sub rax, rbp
mov qword [rdx + 0x20], rax
add rbp, rcx
add r14, r15
add r12, r11
add rdi, r9
mov r13, rdi
add rbx, r8
mov qword [rsp + 0xa0], rbx
movaps xmm0, xmmword [0x140133080]
mov rsi, r10
movaps xmmword [r10 + 0x10], xmm0
movaps xmmword [r10], xmm0
mov rcx, r10
call fcn.1400917d0
mov rdx, qword [rsi + 0x20]
mov qword [rsp + 0x30], rdx
mov rcx, rsi
lea rax, [rdx + rdx*8]
lea rbx, [rdx + rax*2]
mov rax, rbx
mul rbp
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rdx
mov r8, qword [rsi + 0x18]
lea rax, [r8 + r8*8]
lea r15, [r8 + rax*2]
mov rax, r15
mul rbp
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe8], 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 rbp
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xf0], rdx
mov r11, qword [rcx + 8]
lea rax, [r11 + r11*8]
lea rax, [r11 + rax*2]
mul rbp
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x80], rax
mov rax, rbx
mul r14
mov rdi, rdx
mov r9, rax
mov rax, r15
mul r14
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xb0], rax
mov rax, rsi
mul r14
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x60], rax
mov rax, rbx
mov rcx, r12
mul r12
mov r12, rdx
mov rsi, rax
mov rax, r15
mul rcx
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], rax
mov rax, rbx
mul r13
mov r10, r13
mov rbx, rax
mov r13, rdx
lea rax, [rsp + 0x160]
mov r15, qword [rax]
mov rax, r15
mul rbp
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x138], rax
mov rax, r11
mul r14
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x128], rax
mov rax, r15
mul r14
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x108], rax
mov rbp, qword [rsp + 0x28]
mov rax, rbp
mul rcx
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rax
mov rax, r11
mul rcx
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rax
mov rax, r15
mul rcx
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x88], rax
mov rax, r8
mul r10
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0xf8], rax
mov rax, rbp
mul r10
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa8], rax
mov rax, r11
mul r10
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x68], rax
mov rax, r15
mul r10
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
mov r14, qword [rsp + 0xa0]
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 + 0x30], rax
mov rax, r11
mul r14
mov qword [rsp + 0x38], 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 + 0xd8]
adc rdi, qword [rsp + 0xe8]
add rsi, qword [rsp + 0xb0]
adc r12, qword [rsp + 0xc0]
add rsi, qword [rsp + 0xe0]
adc r12, qword [rsp + 0xf0]
add rsi, r11
adc r12, qword [rsp + 0x38]
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 + 0x30]
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 + 0xa8]
adc r8, qword [rsp + 0xb8]
add rcx, qword [rsp + 0xc8]
adc r8, qword [rsp + 0xd0]
add rcx, qword [rsp + 0x108]
adc r8, qword [rsp + 0x110]
add rcx, rdi
adc r8, 0
shld r8, rcx, 0xd
and rcx, rax
add rbp, qword [rsp + 0xf8]
adc r10, qword [rsp + 0x100]
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.1400565d0
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.140097620
nop
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret