Function at 0x14012f610
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
mov qword [rsp + 0x48], rcx
mov rax, qword [0x140175040]
xor rax, rsp
mov qword [rsp + 0x310], rax
movabs rsi, 0xffffffffffffe
movabs rdi, 0x7ffffffffffff
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rbx, [rsp + 0x2b0]
mov qword [rbx + 0x20], rax
movaps xmm0, xmmword [0x14014c6c0]
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rcx, [rsp + 0x1e0]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
lea rcx, [rsp + 0x1b0]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
lea rcx, [rsp + 0x180]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
lea rcx, [rsp + 0x150]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
lea rcx, [rsp + 0x120]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
lea rcx, [rsp + 0xf0]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
lea rcx, [rsp + 0xc0]
mov qword [rcx + 0x20], rax
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
and byte [rsp + 0xa0], 0xf8
mov al, byte [rsp + 0xbf]
and al, 0x3f
or al, 0x40
mov byte [rsp + 0xbf], al
movups xmm0, xmmword [r8]
movups xmm1, xmmword [r8 + 0x10]
lea rdx, [rsp + 0x2e0]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
and byte [rdx + 0x1f], 0x7f
mov rcx, rbx
call fcn.14012c800
xorps xmm0, xmm0
lea rcx, [rsp + 0x288]
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x18], xmm0
mov eax, 1
mov qword [rcx], rax
lea rcx, [rsp + 0x260]
movaps xmmword [rcx], xmm0
movaps xmmword [rcx + 0x10], xmm0
mov qword [rcx + 0x20], 0
movaps xmm1, xmmword [rbx]
movaps xmm2, xmmword [rbx + 0x10]
lea rdx, [rsp + 0x230]
movaps xmmword [rdx], xmm1
movaps xmmword [rdx + 0x10], xmm2
mov rcx, qword [rbx + 0x20]
mov qword [rdx + 0x20], rcx
lea rcx, [rsp + 0x208]
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x18], xmm0
mov qword [rcx], rax
mov eax, 0xfe
xor edx, edx
lea rcx, [rsi - 0x24]
mov qword [rsp + 0x58], rcx
lea rcx, [rdi - 1]
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x24], eax
shr eax, 3
mov r11d, edx
movzx eax, byte [rsp + rax + 0xa0]
mov ecx, dword [rsp + 0x24]
and ecx, 7
bt eax, ecx
mov eax, 0
setb al
mov dword [rsp + 0x44], eax
mov r8, qword [rsp + 0x288]
xor r11d, eax
mov r9, qword [rsp + 0x290]
mov rax, qword [rsp + 0x230]
mov rcx, qword [rsp + 0x238]
neg r11
mov rdx, rax
xor rdx, r8
and rdx, r11
xor r8, rdx
mov qword [rsp + 0x28], r8
mov qword [rsp + 0x288], r8
xor rdx, rax
mov rbx, rcx
mov qword [rsp + 0x230], rdx
mov qword [rsp + 0x90], rdx
xor rbx, r9
and rbx, r11
xor r9, rbx
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x290], r9
xor rbx, rcx
mov qword [rsp + 0x238], rbx
mov qword [rsp + 0x78], rbx
mov r8, qword [rsp + 0x298]
mov rax, qword [rsp + 0x240]
mov rcx, rax
xor rcx, r8
and rcx, r11
xor r8, rcx
mov r10, r8
mov qword [rsp + 0x30], r8
mov r8, rcx
mov rsi, qword [rsp + 0x260]
mov rcx, qword [rsp + 0x208]
mov r13, rcx
xor r8, rax
xor r13, rsi
and r13, r11
xor rsi, r13
mov qword [rsp + 0x298], r10
mov qword [rsp + 0x260], rsi
mov rdi, rsi
mov qword [rsp + 0x60], rsi
xor r13, rcx
mov qword [rsp + 0x208], r13
mov qword [rsp + 0x240], r8
mov r10, r8
mov qword [rsp + 0x70], r8
mov r9, qword [rsp + 0x268]
mov rax, qword [rsp + 0x210]
mov r14, rax
mov r8, qword [rsp + 0x2a0]
xor r14, r9
and r14, r11
xor r9, r14
mov qword [rsp + 0x80], r9
mov rcx, qword [rsp + 0x248]
xor r14, rax
mov rax, rcx
xor rax, r8
and rax, r11
xor r8, rax
mov qword [rsp + 0x88], r8
mov qword [rsp + 0x268], r9
mov qword [rsp + 0x210], r14
xor rax, rcx
mov r9, rax
mov rcx, qword [rsp + 0x270]
mov rax, qword [rsp + 0x218]
mov rbp, rax
xor rbp, rcx
and rbp, r11
xor rcx, rbp
mov r15, rcx
xor rbp, rax
mov qword [rsp + 0x2a0], r8
mov qword [rsp + 0x248], r9
mov qword [rsp + 0x68], r9
mov rcx, qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin]
mov rax, qword [rsp + 0x250]
mov rsi, rax
xor rsi, rcx
and rsi, r11
xor rcx, rsi
mov qword [rsp + 0x98], rcx
xor rsi, rax
movabs rcx, 0xffffffffffffe
lea rax, [rdx + rcx]
add rax, 0xffffffffffffffdc
sub rax, r13
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x270], r15
mov qword [rsp + 0x218], rbp
mov r8, qword [rsp + 0x278]
mov rax, qword [rsp + 0x220]
mov rdx, rax
xor rdx, r8
and rdx, r11
xor r8, rdx
xor rdx, rax
lea rax, [rbx + rcx]
sub rax, r14
mov qword [rsp + 0xf8], rax
lea rax, [r10 + rcx]
sub rax, rbp
mov qword [rsp + 0x100], rax
mov rax, qword [rsp + 0x28]
add rax, rcx
add rax, 0xffffffffffffffdc
sub rax, rdi
mov qword [rsp + 0xc0], rax
lea rax, [r9 + rcx]
sub rax, rdx
mov qword [rsp + 0x108], rax
mov r10, qword [rsp + 0x38]
lea rax, [r10 + rcx]
mov rbx, qword [rsp + 0x80]
sub rax, rbx
mov qword [rsp + 0xc8], rax
mov r12, qword [rsp + 0x30]
lea rax, [r12 + rcx]
sub rax, r15
mov rdi, r15
mov qword [rsp + 0xd0], rax
mov r15, qword [rsp + 0x88]
lea rax, [r15 + rcx]
sub rax, r8
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x278], r8
mov qword [rsp + 0x220], rdx
mov rcx, qword [rsp + 0x280]
mov r9, qword [rsp + 0x228]
mov rax, r9
xor rax, rcx
and rax, r11
mov r11, qword [rsp + 0x60]
add r11, qword [rsp + 0x28]
add rbx, r10
xor rcx, rax
xor rax, r9
add rdi, r12
add r8, r15
mov qword [rsp + 0x180], r11
mov r10, qword [rsp + 0x98]
mov qword [rsp + reloc.SHELL32.dll_IsUserAnAdmin], r10
mov qword [rsp + 0x280], rcx
movabs r11, 0xffffffffffffe
lea r9, [r10 + r11]
sub r9, rcx
add rcx, r10
mov qword [rsp + 0x188], rbx
lea r10, [rsi + r11]
sub r10, rax
mov qword [rsp + 0x110], r10
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x198], r8
add r13, qword [rsp + 0x90]
mov qword [rsp + 0xe0], r9
add r14, qword [rsp + 0x78]
add rbp, qword [rsp + 0x70]
add rdx, qword [rsp + 0x68]
mov qword [rsp + 0x250], rsi
mov qword [rsp + 0x228], rax
add rax, rsi
mov qword [rsp + 0x150], r13
mov qword [rsp + 0x1a0], rcx
mov qword [rsp + 0x158], r14
mov qword [rsp + 0x160], rbp
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x170], rax
lea rcx, [rsp + 0x208]
lea rdx, [rsp + 0xf0]
lea rsi, [rsp + 0x180]
mov r8, rsi
call fcn.14005aba0
lea rcx, [rsp + 0x260]
lea rdx, [rsp + 0x150]
lea rdi, [rsp + 0xc0]
mov r8, rdi
call fcn.14005aba0
lea r15, [rsp + 0x1e0]
mov rcx, r15
mov rdx, rdi
call fcn.1400574b0
lea r12, [rsp + 0x1b0]
mov rcx, r12
mov rdx, rsi
call fcn.1400574b0
mov r8, qword [rsp + 0x208]
mov rax, qword [rsp + 0x210]
mov r9, qword [rsp + 0x260]
mov r10, qword [rsp + 0x268]
lea r11, [r9 + r8]
lea rsi, [r10 + rax]
mov rcx, qword [rsp + 0x218]
mov rdi, qword [rsp + 0x270]
lea rbx, [rdi + rcx]
mov rdx, qword [rsp + 0x220]
mov r14, qword [rsp + 0x278]
mov qword [rsp + 0x120], r11
lea r11, [r14 + rdx]
mov qword [rsp + 0x128], rsi
mov rsi, qword [rsp + 0x228]
mov qword [rsp + 0x130], rbx
mov rbx, qword [rsp + 0x280]
mov qword [rsp + 0x138], r11
lea r11, [rbx + rsi]
mov qword [rsp + 0x140], r11
movabs r11, 0xffffffffffffe
add r8, r11
add r8, 0xffffffffffffffdc
sub r8, r9
add rax, r11
sub rax, r10
add rcx, r11
sub rcx, rdi
add rdx, r11
sub rdx, r14
add rsi, r11
mov rdi, r11
sub rsi, rbx
mov qword [rsp + 0x150], r8
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x160], rcx
mov qword [rsp + 0x168], rdx
mov qword [rsp + 0x170], rsi
lea rcx, [rsp + 0x288]
mov rdx, r12
mov r8, r15
call fcn.14005aba0
mov r15, qword [rsp + 0x1b0]
add r15, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x1e0]
mov qword [rsp + 0x28], rcx
mov rax, qword [rsp + 0x1e8]
mov qword [rsp + 0x38], rax
sub r15, rcx
mov r12, qword [rsp + 0x1b8]
add r12, rdi
sub r12, rax
mov r14, qword [rsp + 0x1c0]
add r14, rdi
mov rax, qword [rsp + 0x1f0]
mov qword [rsp + 0x30], rax
sub r14, rax
mov rbx, qword [rsp + 0x1c8]
add rbx, rdi
mov r13, qword [rsp + 0x1f8]
sub rbx, r13
mov rbp, qword [rsp + 0x1d0]
add rbp, rdi
mov rsi, qword [rsp + 0x200]
sub rbp, rsi
mov qword [rsp + 0xc0], r15
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0xd0], r14
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rbp
lea rcx, [rsp + 0x260]
lea rdx, [rsp + 0x150]
call fcn.1400574b0
mov rax, rbp
mov r10d, 0x1db42
mul r10
mov rcx, rdx
mov r9, rax
mov rax, rbx
mul r10
mov rbx, rdx
mov rbp, rax
mov rax, r14
mul r10
mov r14, rdx
mov r11, rax
mov rax, r12
mul r10
mov r8, rdx
mov r12, rax
mov rax, r15
mul r10
shld rdx, rax, 0xd
and rax, qword [rsp + 0x50]
add rdx, r12
adc r8, 0
shld r8, rdx, 0xd
movabs r10, 0x7ffffffffffff
and rdx, r10
add r8, r11
adc r14, 0
shld r14, r8, 0xd
and r8, r10
add r14, rbp
adc rbx, 0
shld rbx, r14, 0xd
and r14, r10
add rbx, r9
adc rcx, 0
shld rcx, rbx, 0xd
and rbx, r10
lea r9, [rcx + rcx*8]
lea r15, [rcx + r9*2]
add r15, rax
mov r12, r15
shr r12, 0x33
add r12, rdx
and r15, r10
mov rbp, r12
shr rbp, 0x33
add rbp, r8
and r12, r10
mov qword [rsp + 0x208], r15
mov qword [rsp + 0x210], r12
mov qword [rsp + 0x218], rbp
mov qword [rsp + 0x220], r14
mov qword [rsp + 0x228], rbx
lea rcx, [rsp + 0x230]
lea rdx, [rsp + 0x120]
call fcn.1400574b0
add r15, qword [rsp + 0x28]
add r12, qword [rsp + 0x38]
add rbp, qword [rsp + 0x30]
add r14, r13
add rbx, rsi
mov qword [rsp + 0xf0], r15
mov qword [rsp + 0xf8], r12
mov qword [rsp + 0x100], rbp
mov qword [rsp + 0x108], r14
mov qword [rsp + 0x110], rbx
lea rcx, [rsp + 0x208]
lea rdx, [rsp + 0x2b0]
lea rsi, [rsp + 0x260]
mov r8, rsi
call fcn.14005aba0
mov rcx, rsi
lea rdx, [rsp + 0xc0]
lea r8, [rsp + 0xf0]
call fcn.14005aba0
mov edx, dword [rsp + 0x44]
mov eax, dword [rsp + 0x24]
add eax, 0xffffffff
jb 0x14012f7c8
mov eax, edx
neg rax
lea rsi, [rsp + 0x288]
mov rcx, qword [rsi]
mov rdx, qword [rsi + 8]
mov r8, qword [rsp + 0x230]
xor r8, rcx
and r8, rax
xor r8, rcx
mov qword [rsi], r8
mov rcx, qword [rsp + 0x238]
xor rcx, rdx
and rcx, rax
xor rcx, rdx
mov qword [rsi + 8], rcx
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsp + 0x240]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rsi + 0x10], rdx
mov rcx, qword [rsi + 0x18]
mov rdx, qword [rsp + 0x248]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rsi + 0x18], rdx
mov rcx, qword [rsi + 0x20]
mov rdx, qword [rsp + 0x250]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rsi + 0x20], rdx
lea rdi, [rsp + 0x260]
mov rcx, qword [rdi]
mov rdx, qword [rsp + 0x208]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rdi], rdx
mov rcx, qword [rdi + 8]
mov rdx, qword [rsp + 0x210]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rdi + 8], rdx
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rsp + 0x218]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rdi + 0x10], rdx
mov rcx, qword [rdi + 0x18]
mov rdx, qword [rsp + 0x220]
xor rdx, rcx
and rdx, rax
xor rdx, rcx
mov qword [rdi + 0x18], rdx
mov rcx, qword [rdi + 0x20]
mov r8, qword [rsp + 0x228]
xor r8, rcx
and r8, rax
xor r8, rcx
mov qword [rdi + 0x20], r8
lea rdx, [rsp + 0x2e0]
mov qword [rdx + 0x20], r8
mov rax, qword [rdi + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rdx + 0x18], rax
movaps xmm0, xmmword [rdi]
movaps xmmword [rdx], xmm0
mov rcx, rdi
call fcn.140059790
mov rcx, rsi
mov rdx, rsi
mov r8, rdi
call fcn.14005aba0
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
mov rdx, rsi
call fcn.140055d30
lea rcx, [0x140161d80]
mov r8d, 0x20
mov rdx, rdi
call fcn.14007abb0
xor esi, esi
test eax, eax
setne sil
mov rcx, qword [rsp + 0x310]
xor rcx, rsp
call fcn.140084ac0
mov eax, esi
add rsp, 0x318
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret