Function at 0x140031480
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 [0x140163028]
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.14010a410
mov rcx, rsi
mov rdx, rdi
call fcn.140031ca0
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r9, [rsp + 0x160]
mov qword [r9 + 0x20], rax
mov r8, qword [rsi + 0x50]
mov r10, qword [rsi + 0x58]
mov rdx, qword [rsi + 0x28]
mov rbp, qword [rsi + 0x30]
mov r11, qword [rsi + 0x60]
mov r14, qword [rsi + 0x38]
mov rbx, qword [rsi + 0x68]
mov r12, qword [rsi + 0x40]
movabs rdi, 0xffffffffffffe
lea rax, [r8 + rdi]
sub rax, rdx
mov rcx, rdx
add rax, 0xffffffffffffffdc
lea rdx, [rsp + 0x188]
mov qword [rdx], rax
lea rax, [r10 + rdi]
sub rax, rbp
mov qword [rdx + 8], rax
lea rax, [r11 + rdi]
sub rax, r14
mov qword [rdx + 0x10], rax
lea rax, [rbx + rdi]
sub rax, r12
mov qword [rdx + 0x18], rax
mov rax, qword [rsi + 0x70]
mov r13, qword [rsi + 0x48]
add rdi, rax
sub rdi, r13
mov qword [rdx + 0x20], rdi
add r13, rax
add r12, rbx
add r14, r11
add rbp, r10
mov r15, rbp
add rcx, r8
mov qword [rsp + 0xa0], rcx
movaps xmm0, xmmword [0x140141df0]
mov rsi, r9
movaps xmmword [r9 + 0x10], xmm0
movaps xmmword [r9], xmm0
mov rcx, r9
call fcn.140036410
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 r13
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rdx
mov r11, qword [rsi + 0x18]
lea rax, [r11 + r11*8]
lea rbp, [r11 + rax*2]
mov rax, rbp
mul r13
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 r13
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xf0], rdx
mov r9, qword [rcx + 8]
lea rax, [r9 + r9*8]
lea rax, [r9 + rax*2]
mul r13
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x80], rax
mov rax, rbx
mul r12
mov rdi, rdx
mov rcx, rax
mov rax, rbp
mul r12
mov qword [rsp + 0xc0], rdx
mov qword [rsp + 0xb0], rax
mov rax, rsi
mul r12
mov qword [rsp + 0x70], rdx
mov qword [rsp + 0x60], rax
mov rax, rbx
mul r14
mov r10, rdx
mov rsi, rax
mov rax, rbp
mul r14
mov rbp, r14
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x50], rax
mov rax, rbx
mul r15
mov r8, r15
mov rbx, rax
mov r14, rdx
lea rax, [rsp + 0x160]
mov r15, qword [rax]
mov rax, r15
mul r13
mov qword [rsp + 0x140], rdx
mov qword [rsp + 0x138], rax
mov rax, r9
mul r12
mov qword [rsp + 0x130], rdx
mov qword [rsp + 0x128], rax
mov rax, r15
mul r12
mov qword [rsp + 0x110], rdx
mov qword [rsp + 0x108], rax
mov r12, qword [rsp + 0x28]
mov rax, r12
mul rbp
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], rax
mov rax, r9
mul rbp
mov qword [rsp + 0xd0], rdx
mov qword [rsp + 0xc8], rax
mov rax, r15
mul rbp
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0x88], rax
mov rax, r11
mul r8
mov qword [rsp + 0x100], rdx
mov qword [rsp + 0xf8], rax
mov rax, r12
mul r8
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa8], rax
mov rax, r9
mul r8
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x68], rax
mov rax, r15
mul r8
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
mov r13, qword [rsp + 0xa0]
mul r13
mov r8, rdx
mov r12, rax
mov rax, r11
mul r13
mov r11, rdx
mov rbp, rax
mov rax, qword [rsp + 0x28]
mul r13
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rax
mov rax, r9
mul r13
mov qword [rsp + 0x38], rdx
mov r9, rax
mov rax, r15
mul r13
add rbx, qword [rsp + 0x50]
adc r14, qword [rsp + 0x58]
add rbx, qword [rsp + 0x60]
adc r14, qword [rsp + 0x70]
add rbx, qword [rsp + 0x80]
adc r14, qword [rsp + 0x90]
add rbx, rax
adc r14, rdx
shld r14, rbx, 0xd
movabs rax, 0x7ffffffffffff
and rbx, rax
add rcx, qword [rsp + 0xd8]
adc rdi, qword [rsp + 0xe8]
add rsi, qword [rsp + 0xb0]
adc r10, qword [rsp + 0xc0]
add rsi, qword [rsp + 0xe0]
adc r10, qword [rsp + 0xf0]
add rsi, r9
adc r10, qword [rsp + 0x38]
add rsi, qword [rsp + 0x40]
adc r10, qword [rsp + 0x48]
add rsi, r14
adc r10, 0
shld r10, rsi, 0xd
and rsi, rax
add rcx, qword [rsp + 0x30]
adc rdi, qword [rsp + 0x28]
add rcx, qword [rsp + 0x68]
adc rdi, qword [rsp + 0x78]
add rcx, qword [rsp + 0x88]
adc rdi, qword [rsp + 0x98]
add rcx, r10
adc rdi, 0
shld rdi, rcx, 0xd
and rcx, rax
add rbp, qword [rsp + 0x148]
adc r11, qword [rsp + 0x150]
add rbp, qword [rsp + 0xa8]
adc r11, qword [rsp + 0xb8]
add rbp, qword [rsp + 0xc8]
adc r11, qword [rsp + 0xd0]
add rbp, qword [rsp + 0x108]
adc r11, qword [rsp + 0x110]
add rbp, rdi
adc r11, 0
shld r11, rbp, 0xd
add r12, qword [rsp + 0xf8]
adc r8, qword [rsp + 0x100]
add r12, qword [rsp + 0x118]
adc r8, qword [rsp + 0x120]
add r12, qword [rsp + 0x128]
adc r8, qword [rsp + 0x130]
add r12, qword [rsp + 0x138]
adc r8, qword [rsp + 0x140]
add r12, r11
adc r8, 0
shld r8, r12, 0xd
movq xmm0, r12
movq xmm1, rbp
lea rdx, [r8 + r8*8]
lea rbp, [r8 + rdx*2]
add rbp, rbx
mov rdx, rbp
shr rdx, 0x33
add rdx, rsi
mov rbx, rdx
shr rbx, 0x33
add rbx, rcx
and rbp, rax
and rdx, rax
lea rax, [rsp + 0x160]
mov qword [rax], rbp
mov qword [rax + 8], rdx
mov qword [rax + 0x10], rbx
punpcklqdq xmm1, xmm0
pand xmm1, xmmword [0x1401557e0]
movdqu xmmword [rax + 0x18], xmm1
mov rdx, rax
mov rcx, qword [rsp + 0x158]
call fcn.1400319b0
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.140107cc0
nop
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret