Function at 0x140040fe0
Capabilities:
Encrypt data using curve25519
Hash data using sha256

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x990]
sub rsp, 0xa90
mov qword [rsp + 0x50], 0xfffffffffffffffe
mov rax, qword [0x14011f190]
xor rax, rsp
mov qword [rbp + 0x980], rax
mov rbx, r9
mov r12d, r8d
mov r15, rdx
mov r14, rcx
mov esi, 0x128
mov rax, qword gs:[0x58]
add rsi, qword [rax]
mov r8d, 0x20
lea rdx, [rbp + 0x940]
mov rcx, rsi
call fcn.14004b1c0
and byte [rbp + 0x940], 0xf8
movzx eax, byte [rbp + 0x95f]
and al, 0x3f
or al, 0x40
mov byte [rbp + 0x95f], al
lea rdx, [rbp + 0x940]
lea rcx, [r15 + 0x1c]
call fcn.1400533d0
mov r8, rbx
lea rdx, [rbp + 0x940]
lea rcx, [rbp + 0x960]
call fcn.140053370
mov r8d, 0x20
lea rdx, [rbp + 0x920]
mov rcx, rsi
call fcn.14004b1c0
and byte [rbp + 0x920], 0xf8
movzx eax, byte [rbp + 0x93f]
and al, 0x3f
or al, 0x40
mov byte [rbp + 0x93f], al
lea rdx, [rbp + 0x920]
lea rcx, [r15 + 0x1c]
call fcn.1400533d0
mov r8, rbx
lea rdx, [rbp + 0x920]
lea rcx, [rbp + 0x960]
call fcn.140053370
movups xmm1, xmmword [0x1400fff10]
movaps xmmword [rbp + 0x1a0], xmm1
movups xmm0, xmmword [0x1400fff20]
movaps xmmword [rbp + 0x1b0], xmm0
movaps xmmword [rbp + 0x1c0], xmm1
movaps xmmword [rbp + 0x1d0], xmm0
xor eax, eax
mov qword [rbp + 0x1e0], rax
mov qword [rbp + 0x1e8], rax
mov qword [rbp + 0x1f0], rax
mov qword [rbp + 0x1f8], rax
mov qword [rbp + 0x200], rax
mov qword [rbp + 0x208], rax
mov qword [rbp + 0x210], rax
mov qword [rbp + 0x218], rax
mov qword [rbp + 0x220], rax
mov word [rbp + 0x228], ax
mov byte [rbp + 0x22a], al
mov byte [rbp + 0x230], al
lea rdx, [rbp + 0x960]
lea rcx, [rbp + 0x1a0]
call fcn.1400069a0
mov rdx, rbx
lea rcx, [rbp + 0x1a0]
call fcn.1400069a0
lea rdx, [r15 + 0x1c]
lea rcx, [rbp + 0x1a0]
call fcn.1400069a0
lea r8, [rbp + 0x960]
lea rcx, [rbp + 0x1a0]
call fcn.1400080f0
lea rdi, [rbp + 0x920]
xor eax, eax
mov ecx, 0x20
rep stosb byte [rdi], al
lea rdi, [r15 + 0x10]
lea r8d, [rax + 0xc]
mov rdx, rdi
mov rcx, rsi
call fcn.14004b1c0
xor edx, edx
mov r8d, 0x248
lea rcx, [rsp + 0x58]
call fcn.140093810
lea rcx, [rsp + 0x58]
call fcn.1400412f0
nop
mov qword [rsp + 0x20], 0xc
mov r9, rdi
mov r8d, 0x20
lea rdx, [rbp + 0x960]
lea rcx, [rsp + 0x58]
call fcn.14004bd80
mov qword [rsp + 0x48], r12
mov qword [rsp + 0x40], r14
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0xc
mov qword [rsp + 0x20], rdi
lea r9d, [rax + 0x10]
mov r8, r15
mov rdx, r14
lea rcx, [rsp + 0x58]
call fcn.140057a90
lea rdi, [rbp + 0x940]
xor eax, eax
mov ecx, 0x20
rep stosb byte [rdi], al
lea rdi, [rbp + 0x960]
mov ecx, 0x20
rep stosb byte [rdi], al
lea rax, vtable.CryptoPP::ChaCha20Poly1305_Final_1_.0
mov qword [rsp + 0x58], rax
lea rax, vtable.CryptoPP::ChaCha20Poly1305_Final_1_.1.0
mov qword [rsp + 0x60], rax
lea rax, vtable.CryptoPP::ChaCha20Poly1305_Final_1_.2.0
mov qword [rsp + 0x68], rax
lea rcx, [rbp + 0xa8]
call fcn.140040cf0
lea rax, [0x140101328]
mov qword [rbp - 0x30], rax
lea rax, [0x140101218]
mov qword [rbp - 0x28], rax
lea rax, [0x140100f98]
mov qword [rbp - 0x20], rax
lea rax, [0x1401010a0]
mov qword [rbp + 0x10], rax
lea rcx, [rbp - 0x30]
call fcn.1400418b0
lea rcx, [rsp + 0x58]
call fcn.140040e10
mov eax, r12d
mov rcx, qword [rbp + 0x980]
xor rcx, rsp
call fcn.14006f430
add rsp, 0xa90
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret