Function at 0x14006b559
Capabilities:
Encrypt data using curve25519
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3c8
movaps xmmword [rsp + 0x3b0], xmm9
movaps xmmword [rsp + 0x3a0], xmm8
movaps xmmword [rsp + 0x390], xmm7
movaps xmmword [rsp + 0x380], xmm6
mov rsi, rdx
mov rbx, rcx
mov qword [rsp + 0x138], rcx
lea rdi, [rsp + 0x220]
mov r8d, 0x81
mov rcx, rdi
xor edx, edx
call sub.msvcrt.dll_memset
movups xmm0, xmmword [0x1401a86c8]
movaps xmmword [rdi - 0x50], xmm0
movups xmm0, xmmword [0x1401a86d8]
movaps xmmword [rdi - 0x40], xmm0
movups xmm0, xmmword [0x1401a86e8]
movaps xmmword [rdi - 0x30], xmm0
movups xmm0, xmmword [0x1401a86f8]
movaps xmmword [rdi - 0x20], xmm0
xorps xmm0, xmm0
movaps xmmword [rdi - 0x10], xmm0
lea rdi, [rsp + 0x1d0]
mov r8d, 0x20
mov rcx, rdi
mov rdx, rsi
call fcn.14006b407
lea r14, [rsp + 0x2a8]
mov r8d, 0xd8
mov rcx, r14
mov rdx, rdi
call sub.msvcrt.dll_memcpy
lea rsi, [rsp + 0x1d0]
mov rcx, rsi
mov rdx, r14
call fcn.14006b20f
movdqu xmm6, xmmword [rsi]
movdqu xmm8, xmmword [rsi + 0x10]
movups xmm7, xmmword [rsi + 0x20]
movups xmm9, xmmword [rsi + 0x30]
movdqa xmmword [rsp + 0x150], xmm6
mov al, byte [rsp + 0x150]
and al, 0xf8
movdqa xmm0, xmmword [0x14016cd70]
movdqa xmm1, xmm6
pand xmm1, xmm0
movzx eax, al
movd xmm2, eax
pandn xmm0, xmm2
por xmm0, xmm1
movdqa xmmword [rsp + 0x140], xmm8
mov al, byte [rsp + 0x14f]
and al, 0x3f
or al, 0x40
movdqa xmm1, xmmword [0x14016cd80]
pand xmm1, xmm8
movzx eax, al
movd xmm2, eax
pslldq xmm2, 0xf
por xmm2, xmm1
lea rax, [rbx + 0x20]
mov qword [rsp + 0x130], rax
lea rdx, [rsp + 0x160]
movdqu xmmword [rdx], xmm0
movdqu xmmword [rdx + 0x10], xmm2
lea r12, [rsp + 0x180]
mov rcx, r12
call fcn.14005dd60
mov r8, qword [r12]
movabs rsi, 0xf48bd6721e6ed
mov rax, r8
mul rsi
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x28], rdx
mov rcx, qword [r12 + 8]
movabs r10, 0x3bab5ac67e45a
mov rax, r8
mul r10
mov r9, rdx
mov r11, rax
mov rax, rcx
mul rsi
add rax, r11
mov qword [rsp + 0x20], rax
adc rdx, r9
mov qword [rsp + 0x50], rdx
movabs r9, 0xfffffeb35e51b
mov rax, r8
mul r9
mov rbp, r9
mov r9, rdx
mov r11, rax
mov rax, rcx
mul r10
mov rdi, rdx
mov rbx, rax
add rbx, r11
adc rdi, r9
mov r11, qword [r12 + 0x10]
mov rax, r11
mul rsi
add rax, rbx
mov qword [rsp + 0x60], rax
adc rdx, rdi
mov qword [rsp + 0x58], rdx
movabs r9, 0xfffffffffffff
mov rax, r8
mul r9
mov rbx, r9
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x88], rax
mov rax, rcx
mul rbp
mov r9, rdx
mov rdi, rax
mov rax, r11
mul r10
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], rdx
mov r15, qword [r12 + 0x18]
mov rax, r15
mul rsi
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x78], rdx
movabs r14, 0xfffffffffff
mov rax, r8
mul r14
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0xc0], rax
mov rax, rcx
mov r8, rbx
mul rbx
mov rbx, rdx
mov r13, rax
mov rax, r11
mul rbp
mov qword [rsp + 0xb8], rdx
mov qword [rsp + 0xa0], rax
mov rax, r15
mul r10
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xb0], rdx
mov r12, qword [r12 + 0x20]
mov rax, r12
mul rsi
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x90], rax
mov rax, rcx
mul r14
mov rsi, r14
mov qword [rsp + 0xf8], rdx
mov qword [rsp + 0xf0], rax
mov rax, r11
mul r8
mov rcx, r8
mov r8, rdx
mov qword [rsp + 0xc8], rax
mov rax, r15
mov r14, rbp
mul rbp
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xd8], rax
mov rax, r12
mul r10
mov qword [rsp + 0xe0], rdx
mov qword [rsp + 0xd0], rax
mov rax, r11
mul rsi
mov r11, rdx
mov rsi, rax
mov rax, r15
mul rcx
mov rbp, rdx
mov r10, rax
add r10, rsi
adc rbp, r11
mov rax, r12
mul r14
add rax, r10
mov qword [rsp + 0x108], rax
adc rdx, rbp
mov qword [rsp + 0x100], rdx
mov rax, r15
movabs rsi, 0xfffffffffff
mul rsi
mov r10, rdx
mov r11, rax
mov rax, r12
mul rcx
add rax, r11
mov qword [rsp + 0x118], rax
adc rdx, r10
mov qword [rsp + 0x110], rdx
mov rax, r12
mul rsi
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], rdx
movabs rax, 0x51da312547e1b
mov r14, qword [rsp + 0x40]
mov r11, r14
imul r11, rax
mov qword [rsp + 0x48], r11
and r11, rcx
movabs rbp, 0x2631a5cf5d3ed
mov rax, r11
mul rbp
mov r10, rdx
mov rsi, rax
add rsi, r14
adc r10, qword [rsp + 0x28]
shrd rsi, r10, 0x34
shr r10, 0x34
movabs rdx, 0xdea2f79cd6581
mov rax, r11
mul rdx
mov r15, rdx
mov r12, rax
add r12, qword [rsp + 0x20]
adc r15, qword [rsp + 0x50]
add r12, rsi
adc r15, r10
mov r10, r12
movabs rax, 0x51da312547e1b
imul r10, rax
mov qword [rsp + 0x28], r10
and r10, rcx
mov rax, r10
mul rbp
mov rsi, rdx
add rax, r12
adc rsi, r15
mov rcx, rsi
shld rsi, rax, 0xc
shr rcx, 0x34
mov edx, 0x14def9
mov rax, r11
mul rdx
mov r14, rdx
mov r15, rax
mov rax, r10
mov qword [rsp + 0x20], r10
movabs rdx, 0xdea2f79cd6581
mul rdx
add r15, qword [rsp + 0x60]
adc r14, qword [rsp + 0x58]
add r15, rax
adc r14, rdx
add r15, rsi
adc r14, rcx
mov r12, r15
movabs rax, 0x51da312547e1b
imul r12, rax
mov rbp, r12
movabs rax, 0xfffffffffffff
and rbp, rax
mov rax, rbp
movabs rcx, 0x2631a5cf5d3ed
mul rcx
mov rsi, rdx
add rax, r15
adc rsi, r14
mov rcx, rsi
shld rsi, rax, 0xc
mov rax, r10
mov edx, 0x14def9
mul rdx
mov r14, rdx
mov r15, rax
mov rax, rbp
movabs r10, 0xdea2f79cd6581
mul r10
shr rcx, 0x34
add rdi, qword [rsp + 0x88]
adc r9, qword [rsp + 0x30]
add rdi, qword [rsp + 0x70]
adc r9, qword [rsp + 0x80]
add rdi, qword [rsp + 0x68]
adc r9, qword [rsp + 0x78]
add rdi, r15
adc r9, r14
add rdi, rax
adc r9, rdx
add rdi, rsi
adc r9, rcx
mov r15, rdi
movabs rax, 0x51da312547e1b
imul r15, rax
mov rsi, r15
movabs rax, 0xfffffffffffff
and rsi, rax
mov rax, rsi
movabs rcx, 0x2631a5cf5d3ed
mul rcx
mov r14, rdx
add rax, rdi
adc r14, r9
mov rcx, r14
shld r14, rax, 0xc
shr rcx, 0x34
shr r11, 0x14
mov rax, rbp
mov edx, 0x14def9
mul rdx
mov qword [rsp + 0x30], rdx
mov rdi, rax
mov rax, rsi
mul r10
mov r9, rax
mov rax, qword [rsp + 0x48]
shl rax, 0x2c
add r13, qword [rsp + 0xc0]
adc rbx, qword [rsp + 0x38]
add r13, qword [rsp + 0xa0]
adc rbx, qword [rsp + 0xb8]
add r13, qword [rsp + 0x98]
adc rbx, qword [rsp + 0xb0]
add r13, qword [rsp + 0x90]
adc rbx, qword [rsp + 0xa8]
add r13, rax
adc rbx, r11
add r13, rdi
adc rbx, qword [rsp + 0x30]
add r13, r9
adc rbx, rdx
add r13, r14
adc rbx, rcx
movabs r9, 0x51da312547e1b
imul r9, r13
mov qword [rsp + 0x38], r9
movabs rax, 0xfffffffffffff
and r9, rax
mov rax, r9
movabs rcx, 0x2631a5cf5d3ed
mul rcx
mov r11, rdx
add rax, r13
adc r11, rbx
mov rcx, r11
shld r11, rax, 0xc
shr rcx, 0x34
mov r10, qword [rsp + 0x20]
shr r10, 0x14
mov rax, rsi
mov edx, 0x14def9
mul rdx
mov r13, rdx
mov rbx, rax
mov rax, r9
movabs rdx, 0xdea2f79cd6581
mul rdx
mov rdi, rax
mov rax, qword [rsp + 0x28]
shl rax, 0x2c
mov r14, qword [rsp + 0xc8]
add r14, qword [rsp + 0xf0]
adc r8, qword [rsp + 0xf8]
add r14, qword [rsp + 0xd8]
adc r8, qword [rsp + 0xe8]
add r14, qword [rsp + 0xd0]
adc r8, qword [rsp + 0xe0]
add r14, rax
adc r8, r10
add r14, rbx
adc r8, r13
add r14, rdi
adc r8, rdx
add r14, r11
adc r8, rcx
mov rcx, r8
shr rcx, 0x34
shld r8, r14, 0xc
movabs r11, 0xfffffffffffff
and r14, r11
shr rbp, 0x14
shl r12, 0x2c
mov rax, r9
mov edx, 0x14def9
mul rdx
add r12, qword [rsp + 0x108]
adc rbp, qword [rsp + 0x100]
add r12, rax
adc rbp, rdx
add r12, r8
adc rbp, rcx
mov rax, rbp
shld rbp, r12, 0xc
shr rax, 0x34
and r12, r11
shr rsi, 0x14
shl r15, 0x2c
add r15, qword [rsp + 0x118]
adc rsi, qword [rsp + 0x110]
add r15, rbp
adc rsi, rax
mov rax, rsi
shr rax, 0x34
shld rsi, r15, 0xc
and r15, r11
mov rdx, r11
shr r9, 0x14
mov rcx, qword [rsp + 0x38]
shl rcx, 0x2c
add rcx, qword [rsp + 0x120]
adc r9, qword [rsp + 0x128]
add rcx, rsi
adc r9, rax
and rdx, rcx
shld r9, rcx, 0xc
lea rax, [rsp + 0x2a8]
mov qword [rax], r14
mov qword [rax + 8], r12
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], rdx
mov qword [rax + 0x20], r9
lea rsi, [rsp + 0x1a8]
lea rdx, [rsp + 0x2a8]
mov rcx, rsi
call fcn.14005de0b
mov rcx, qword [rsp + 0x130]
mov rdx, rsi
call fcn.14005df53
mov rax, qword [rsp + 0x138]
movdqu xmmword [rax + 0x10], xmm8
movdqu xmmword [rax], xmm6
movups xmmword [rax + 0x50], xmm9
movups xmmword [rax + 0x40], xmm7
movaps xmm6, xmmword [rsp + 0x380]
movaps xmm7, xmmword [rsp + 0x390]
movaps xmm8, xmmword [rsp + 0x3a0]
movaps xmm9, xmmword [rsp + 0x3b0]
add rsp, 0x3c8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret