Function at 0x14000f650
Capabilities:
Encode data using xor
Encrypt data using curve25519

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x4c0]
sub rsp, 0x5c0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
mov rax, qword [0x140038f28]
mov r14, r9
mov r15, qword [rbp + 0x520]
mov rdi, r8
mov qword [rsp + 0x40], r15
mov rsi, rdx
mov r12, rcx
test rax, rax
jne 0x14000f6a7
lea ecx, [rax - 0xa]
jmp 0x14000fb99
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 0x14000fb94
movzx eax, byte [rbp + 0x40f]
and byte [rbp + 0x3f0], 0xf8
and al, 0x3f
or al, 0x40
mov qword [rsp + 0x610], r13
mov byte [rbp + 0x40f], al
lea r13, [r14 + 0x40]
mov qword [rsi], r13
test r14, r14
je 0x14000f731
lea rcx, [r12 + 0x40]
sub rdi, r12
mov rdx, r14
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdi + rcx - 0x40]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub rdx, 1
jne 0x14000f720
lea rdi, [rbp + 0x3f0]
mov edx, 0x10
sub rdi, r12
lea rsi, [r12 + 0x20]
lea r8, [rbp + 0x3f1]
mov rcx, rsi
sub r8, r12
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 0x14000f752
mov rax, qword [0x140038f28]
test rax, rax
jne 0x14000f77e
lea ecx, [rdx - 0xa]
jmp 0x14000fbba
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 0x14000fbb5
mov rcx, rbx
nop word [rax + rax]
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 0x14000f7c0
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0xd0]
call fcn.140011bb0
lea rdx, [rbp + 0xd0]
lea rcx, [rsp + 0x50]
call fcn.140011f10
movzx r8d, byte [rsp + 0x50]
lea rcx, [rbp + 0x1d0]
xor edx, edx
call fcn.140010a00
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.140013cd0
lea rdi, [rsp + 0x51]
lea r15d, [r14 + 0x53]
nop word [rax + rax]
movzx r8d, byte [rdi]
lea rcx, [rbp - 0x30]
mov rdx, r14
call fcn.140010a00
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x1d0]
call fcn.140010340
inc r14
lea rdi, [rdi + 1]
sub r15, 1
jne 0x14000f860
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp + 0x3d0]
call fcn.140011050
movups xmm0, xmmword [rbp + 0x3d0]
mov r8, qword [rsp + 0x40]
mov r9, r12
movups xmm1, xmmword [rbp + 0x3e0]
add r8, 0x20
mov rdx, r12
movups xmmword [r12], xmm0
lea rcx, [rbp + 0x470]
mov qword [rsp + 0x20], r13
movups xmmword [r12 + 0x10], xmm1
mov r15, r12
call fcn.14000f530
mov rcx, rbx
nop
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 0x14000f8e0
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.140011bb0
mov rcx, rbx
movzx eax, byte [rbp + rcx + 0x3f0]
mov dword [rbp + rcx*4 - 0x30], eax
movzx eax, byte [rbp + rcx + 0x3f1]
mov dword [rbp + rcx*4 - 0x2c], eax
add rcx, 2
cmp rcx, 0x20
jl 0x14000f913
xor eax, eax
lea rdi, [rbp + 0x50]
mov r14d, 0x20
lea rdx, [rbp - 0x30]
mov ecx, r14d
rep stosd dword [rdi], eax
lea rcx, [rbp + 0x150]
call fcn.140011bb0
lea rax, [rbp - 0x30]
lea ecx, [r14 - 0x1c]
nop
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 0x14000f960
lea rdx, [rbp + 0x154]
mov r8, rbx
lea rax, [rbp - 0x2c]
sub rdx, rax
nop word [rax + rax]
mov edi, dword [rsp + r8 + 0x50]
lea rax, [rbp - 0x2c]
add rax, r8
mov r9d, 8
mov ecx, dword [rdx + rax - 4]
lea rax, [rax + 0x10]
imul ecx, edi
add dword [rax - 0x14], ecx
mov ecx, dword [rdx + rax - 0x10]
imul ecx, edi
add dword [rax - 0x10], ecx
mov ecx, dword [rdx + rax - 0xc]
imul ecx, edi
add dword [rax - 0xc], ecx
mov ecx, dword [rdx + rax - 8]
imul ecx, edi
add dword [rax - 8], ecx
sub r9, 1
jne 0x14000f9b2
add r8, 4
sub rdx, 4
cmp r8, 0x80
jl 0x14000f9a0
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 0x14000fa00
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.140011bb0
mov rax, rbx
nop word [rax + rax]
movdqu xmm0, xmmword [rsp + rax + 0x50]
movdqu xmm1, xmmword [rbp + rax + 0xd0]
paddd xmm1, xmm0
movdqu xmmword [rsp + rax + 0x50], xmm1
movdqu xmm0, xmmword [rsp + rax + 0x60]
movdqu xmm1, xmmword [rbp + rax + 0xe0]
paddd xmm1, xmm0
movdqu xmmword [rsp + rax + 0x60], xmm1
add rax, r14
cmp rax, 0x80
jl 0x14000fa30
lea rdi, [rsp + 0x50]
mov r12d, 0x1f
nop dword [rax + 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 r12, 1
jne 0x14000fa80
mov edi, ebx
lea r8, [0x140053e00]
mov rdx, rbx
mov r12d, 0x10
nop dword [rax + rax]
add edi, dword [r8 + rdx*4]
movzx eax, byte [rsp + rdx*4 + 0x50]
mov ecx, dword [rsp + rdx*4 + 0x50]
sub al, dil
sub ecx, edi
mov byte [rbp + rdx + 0x3d0], al
shr ecx, 0x1f
inc rdx
mov edi, ecx
cmp rdx, r14
jl 0x14000fab0
lea r8d, [rcx - 1]
lea rdi, [rbp + 0x3d0]
lea rdx, [rsp + 0x50]
nop word [rax + rax]
movzx ecx, byte [rdi]
lea rdi, [rdi + 1]
xor ecx, dword [rdx]
lea rdx, [rdx + 4]
and ecx, r8d
xor dword [rdx - 4], ecx
sub r14, 1
jne 0x14000faf0
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 0x14000fb10
lea rcx, [rbp + 0x3d0]
sub rcx, r15
lea rdx, [rbp + 0x3d1]
sub rdx, r15
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 0x14000fb50
xor eax, eax
mov r13, qword [rsp + 0x610]
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.1400164b0
add rsp, 0x5c0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0xffffffea
call fcn.1400132f0
mov r8, rax
lea rdx, str.crypto_hash_sha512
lea rcx, str._s:__s
call fcn.140007c80
int3
mov ecx, 0xffffffea
call fcn.1400132f0
mov r8, rax
lea rdx, str.crypto_hash_sha512
lea rcx, str._s:__s
call fcn.140007c80
int3