Function at 0x140009470
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 [0x14005b1f0]
xor rax, rsp
mov qword [rbp + 0x4b0], rax
mov rax, qword [0x140036998]
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 0x1400094c7
lea ecx, [rax - 0xa]
jmp 0x1400099b9
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 0x1400099b4
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 0x140009551
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 0x140009540
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 0x140009572
mov rax, qword [0x140036998]
test rax, rax
jne 0x14000959e
lea ecx, [rdx - 0xa]
jmp 0x1400099da
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 0x1400099d5
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 0x1400095e0
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0xd0]
call fcn.14000b880
lea rdx, [rbp + 0xd0]
lea rcx, [rsp + 0x50]
call fcn.14000bbe0
movzx r8d, byte [rsp + 0x50]
lea rcx, [rbp + 0x1d0]
xor edx, edx
call fcn.14000a6d0
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.14000c6f0
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.14000a6d0
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x1d0]
call fcn.14000a010
inc r14
lea rdi, [rdi + 1]
sub r15, 1
jne 0x140009680
lea rdx, [rbp + 0x1d0]
lea rcx, [rbp + 0x3d0]
call fcn.14000ad20
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.140009350
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 0x140009700
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.14000b880
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 0x140009733
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.14000b880
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 0x140009780
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 0x1400097d2
add r8, 4
sub rdx, 4
cmp r8, 0x80
jl 0x1400097c0
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 0x140009820
lea rdx, [rbp - 0x30]
lea rcx, [rsp + 0x50]
call fcn.14000b880
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 0x140009850
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 0x1400098a0
mov edi, ebx
lea r8, [0x140051870]
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 0x1400098d0
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 0x140009910
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 0x140009930
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 0x140009970
xor eax, eax
mov r13, qword [rsp + 0x610]
mov rcx, qword [rbp + 0x4b0]
xor rcx, rsp
call fcn.140014060
add rsp, 0x5c0
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0xffffffea
call fcn.14000bd20
mov r8, rax
lea rdx, str.crypto_hash_sha512
lea rcx, str._s:__s
call fcn.1400038c0
int3
mov ecx, 0xffffffea
call fcn.14000bd20
mov r8, rax
lea rdx, str.crypto_hash_sha512
lea rcx, str._s:__s
call fcn.1400038c0
int3