Function at 0x140061250
Capabilities:
Encrypt data using curve25519

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r13
push r14
push r15
lea rbp, [rsp - 0x4c0]
sub rsp, 0x5c0
mov rax, qword [0x1400ec008]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
mov rax, qword [0x1400aa518]
mov r14, r9
mov r15, qword [rbp + 0x520]
mov rdi, r8
mov qword [rsp + 0x38], r15
mov rsi, rdx
mov r13, rcx
test rax, rax
jne 0x1400612a7
lea ecx, [rax - 0xa]
jmp 0x1400616c9
mov dword [rsp + 0x30], 0x40
call rax
xor ebx, ebx
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], rbx
lea r8, [rbp + 0x3f0]
mov rcx, r15
mov qword [rsp + 0x20], rax
lea edx, [rbx + 0x20]
call qword [sym.imp.libcrypto.dll_EVP_Digest]
test eax, eax
je 0x1400616c4
movzx eax, byte [rbp + 0x40f]
and byte [rbp + 0x3f0], 0xf8
and al, 0x3f
or al, 0x40
mov qword [rsp + 0x610], r12
mov byte [rbp + 0x40f], al
lea rax, [r14 + 0x40]
mov qword [rsp + 0x40], rax
mov qword [rsi], rax
test r14, r14
je 0x140061331
lea rcx, [r13 + 0x40]
sub rdi, r13
mov rdx, r14
nop dword [rax + rax]
movzx eax, byte [rdi + rcx - 0x40]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x140061320
lea rdi, [rbp + 0x3f0]
mov r12d, setsockopt
sub rdi, r13
lea rsi, [r13 + 0x20]
lea r8, [rbp + 0x3f1]
mov rcx, rsi
sub r8, r13
mov edx, r12d
nop word [rax + rax]
movzx eax, byte [rdi + rcx]
mov byte [rcx], al
movzx eax, byte [r8 + rcx]
mov byte [rcx + 1], al
lea rcx, [rcx + 2]
sub rdx, 1
jne 0x140061360
mov rax, qword [0x1400aa518]
test rax, rax
jne 0x14006138c
lea ecx, [rdx - 0xa]
jmp 0x1400616ea
mov dword [rsp + 0x30], 0x40
call rax
lea rdx, [r14 + 0x20]
mov qword [rsp + 0x28], rbx
lea r9, [rsp + 0x30]
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0x430]
mov rcx, rsi
call qword [sym.imp.libcrypto.dll_EVP_Digest]
test eax, eax
je 0x1400616e5
mov rcx, rbx
movzx eax, byte [rbp + rcx + 0x430]
mov dword [rbp + rcx*4 - 0x30], eax
movzx eax, byte [rbp + rcx + 0x431]
mov dword [rbp + rcx*4 - 0x2c], eax
add rcx, 2
cmp rcx, 0x40
jl 0x1400613c4
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0xd0]
call fcn.1400687e0
lea rdx, [rbp + 0xd0]
lea rcx, [rsp + 0x50]
call fcn.140068cb0
movzx r8d, byte [rsp + 0x50]
lea rcx, [rbp + 0x1d0]
xor edx, edx
call fcn.140067630
xor eax, eax
lea rdi, [rbp + 0x2d4]
mov r14d, 1
lea r8, [rbp + 0x250]
mov dword [rbp + 0x2d0], r14d
lea rdx, [rbp + 0x1d0]
mov ecx, 0x1f
rep stosd dword [rdi], eax
lea rcx, [rbp + 0x350]
call fcn.14006c4d0
lea rdi, [rsp + 0x51]
lea r15d, [r14 + 0x53]
nop dword [rax + rax]
movzx r8d, byte [rdi]
lea rcx, [rbp - 0x30]
mov rdx, r14
call fcn.140067630
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x1d0]
call fcn.140066f70
inc r14
lea rdi, [rdi + 1]
sub r15, 1
jne 0x140061460
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp + 0x3d0]
call fcn.140067c80
movups xmm5, xmmword [rbp + 0x3d0]
mov rax, qword [rsp + 0x40]
mov r9, r13
movups xmm0, xmmword [rbp + 0x3e0]
mov r8, qword [rsp + 0x38]
lea rcx, [rbp + 0x470]
movups xmmword [r13], xmm5
add r8, 0x20
mov qword [rsp + 0x20], rax
mov rdx, r13
movups xmmword [r13 + 0x10], xmm0
call fcn.140061130
mov rcx, rbx
movzx eax, byte [rbp + rcx + 0x470]
mov dword [rbp + rcx*4 - 0x30], eax
movzx eax, byte [rbp + rcx + 0x471]
mov dword [rbp + rcx*4 - 0x2c], eax
add rcx, 2
cmp rcx, 0x40
jl 0x1400614e0
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.1400687e0
mov rdx, rbx
movzx eax, byte [rbp + rdx + 0x3f0]
mov dword [rbp + rdx*4 - 0x30], eax
movzx eax, byte [rbp + rdx + 0x3f1]
mov dword [rbp + rdx*4 - 0x2c], eax
add rdx, 2
cmp rdx, 0x20
jl 0x140061513
xor eax, eax
lea rdi, [rbp + 0x50]
mov ecx, 0x20
lea rdx, [rbp - 0x30]
rep stosd dword [rdi], eax
lea rcx, [rbp + 0x150]
call fcn.1400687e0
lea rax, [rbp - 0x30]
mov ecx, 4
nop dword [rax + rax]
mov qword [rax], rbx
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbx
lea rax, [rax + 0x40]
mov qword [rax - 0x28], rbx
mov qword [rax - 0x20], rbx
mov qword [rax - 0x18], rbx
mov qword [rax - 0x10], rbx
mov qword [rax - 8], rbx
sub rcx, 1
jne 0x140061560
lea rdi, [rbp + 0x154]
mov r8, rbx
lea rax, [rbp - 0x2c]
sub rdi, rax
nop word [rax + rax]
mov edx, dword [rsp + r8 + 0x50]
lea rax, [rbp - 0x2c]
add rax, r8
mov r9d, 8
mov ecx, dword [rdi + rax - 4]
lea rax, [rax + 0x10]
imul ecx, edx
add dword [rax - 0x14], ecx
mov ecx, dword [rdi + rax - 0x10]
imul ecx, edx
add dword [rax - 0x10], ecx
mov ecx, dword [rdi + rax - 0xc]
imul ecx, edx
add dword [rax - 0xc], ecx
mov ecx, dword [rdi + rax - 8]
imul ecx, edx
add dword [rax - 8], ecx
sub r9, 1
jne 0x1400615b2
add r8, 4
sub rdi, 4
cmp r8, 0x80
jl 0x1400615a0
lea rdi, [rbp - 0x30]
lea r8d, [r9 + 0x3f]
nop dword [rax]
mov ecx, dword [rdi]
lea rdi, [rdi + 4]
mov eax, ecx
shr eax, 8
add dword [rdi], eax
movzx eax, cl
mov dword [rdi - 4], eax
sub r8, 1
jne 0x140061600
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.1400687e0
lea r8, [rbp + 0xd0]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x50]
call fcn.140068b40
nop dword [rax]
movzx eax, byte [rsp + rbx*4 + 0x50]
mov byte [rbp + rbx + 0x3d0], al
movzx eax, byte [rsp + rbx*4 + 0x54]
mov byte [rbp + rbx + 0x3d1], al
add rbx, 2
cmp rbx, 0x20
jl 0x140061640
lea rcx, [rbp + 0x3d0]
sub rcx, r13
lea rdx, [rbp + 0x3d1]
sub rdx, r13
nop word [rax + rax]
movzx eax, byte [rcx + rsi - 0x20]
mov byte [rsi], al
movzx eax, byte [rdx + rsi - 0x20]
mov byte [rsi + 1], al
lea rsi, [rsi + 2]
sub r12, 1
jne 0x140061680
xor eax, eax
mov r12, qword [rsp + 0x610]
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.140078840
add rsp, 0x5c0
pop r15
pop r14
pop r13
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0xffffffea
call fcn.14003d3e0
mov r8, rax
lea rdx, str.crypto_hash_sha512
lea rcx, str._s:__s
call fcn.14004db00
int3
mov ecx, 0xffffffea
call fcn.14003d3e0
mov r8, rax
lea rdx, str.crypto_hash_sha512
lea rcx, str._s:__s
call fcn.14004db00
int3