Function at 0x1401502a0
Capabilities:
Encrypt data using curve25519

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3d8
mov qword [rsp + 0x188], rcx
movzx eax, byte [rdx]
movups xmm0, xmmword [rdx + 0xf]
movups xmmword [rsp + 0x19f], xmm0
movups xmm0, xmmword [rdx + 1]
movups xmmword [rsp + 0x191], xmm0
movzx ecx, byte [rdx + 0x1f]
and al, 0xf8
and cl, 0x3f
or cl, 0x40
mov byte [rsp + 0x190], al
mov byte [rsp + 0x1af], cl
movq xmm1, qword [rsp + 0x190]
movdqa xmm0, xmmword [0x1402f98e0]
movdqa xmm2, xmm1
pand xmm2, xmm0
psrlw xmm1, 4
movdqa xmm3, xmmword [0x1402f98f0]
pand xmm1, xmm3
punpcklbw xmm2, xmm1
movdqa xmmword [rsp + 0x30], xmm2
movq xmm1, qword [rsp + 0x198]
movdqa xmm2, xmm1
pand xmm2, xmm0
psrlw xmm1, 4
pand xmm1, xmm3
punpcklbw xmm2, xmm1
movdqa xmmword [rsp + 0x40], xmm2
movq xmm1, qword [rsp + 0x1a0]
movdqa xmm2, xmm1
pand xmm2, xmm0
psrlw xmm1, 4
pand xmm1, xmm3
punpcklbw xmm2, xmm1
movdqa xmmword [rsp + 0x50], xmm2
movq xmm1, qword [rsp + 0x1a8]
pand xmm0, xmm1
psrlw xmm1, 4
pand xmm1, xmm3
punpcklbw xmm0, xmm1
movdqa xmmword [rsp + 0x60], xmm0
mov eax, 2
movzx ecx, byte [rsp + 0x30]
nop word cs:[rax + rax]
lea edx, [rcx + 8]
mov r8d, edx
and r8b, 0xf0
sub cl, r8b
mov byte [rsp + rax + 0x2e], cl
sar dl, 4
add dl, byte [rsp + rax + 0x2f]
mov byte [rsp + rax + 0x2f], dl
cmp rax, 0x40
je 0x1401503e4
lea ecx, [rdx + 8]
mov r8d, ecx
and r8b, 0xf0
sub dl, r8b
mov byte [rsp + rax + 0x2f], dl
sar cl, 4
add cl, byte [rsp + rax + 0x30]
mov byte [rsp + rax + 0x30], cl
add rax, 2
jmp 0x1401503a0
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmm2, xmmword [rsp + 0x50]
movaps xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x1e0], xmm3
movaps xmmword [rsp + 0x1d0], xmm2
movaps xmmword [rsp + 0x1c0], xmm1
movaps xmmword [rsp + 0x1b0], xmm0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x200], xmm0
movaps xmmword [rsp + 0x1f0], xmm0
mov qword [rsp + 0x210], 0
movups xmm1, xmmword [0x14030afc8]
movups xmmword [rsp + 0x218], xmm1
movups xmm2, xmmword [0x14030afd8]
movups xmmword [rsp + 0x228], xmm2
mov qword [rsp + 0x238], 0
movaps xmmword [rsp + 0x240], xmm1
movaps xmmword [rsp + 0x250], xmm2
mov qword [rsp + 0x260], 0
movups xmmword [rsp + 0x268], xmm0
movups xmmword [rsp + 0x278], xmm0
mov qword [rsp + 0x288], 0
lea rdi, [rsp + 0xa8]
lea rbx, [rsp + 0x58]
lea r14, [rsp + 0x80]
xor r13d, r13d
lea rbp, [rsp + 0x330]
lea rsi, [rsp + 0x30]
lea r15, [rsp + 0x1f0]
lea r12, [rsp + 0x290]
cmp r13, 0x3f
jbe 0x1401504ed
jmp 0x14015058e
inc r13
cmp r13, 0x3f
ja 0x14015058e
test r13b, 1
je 0x1401504e0
mov rax, r13
shr rax, 1
imul rdx, rax, 0x3c0
lea rax, [0x14030b0a0]
add rdx, rax
movzx r8d, byte [rsp + r13 + 0x1b0]
mov rcx, rbp
call fcn.14014f790
mov rcx, rsi
mov rdx, r15
mov r8, rbp
call fcn.14014faa0
mov rcx, r12
mov rdx, rsi
mov r8, rdi
call fcn.14014f3b0
lea rcx, [rsp + 0x2b8]
mov rdx, rbx
mov r8, r14
call fcn.14014f3b0
lea rcx, [rsp + 0x2e0]
mov rdx, r14
mov r8, rdi
call fcn.14014f3b0
lea rcx, [rsp + 0x308]
mov rdx, rsi
mov r8, rbx
call fcn.14014f3b0
mov r8d, 0xa0
mov rcx, r15
mov rdx, r12
call sub.VCRUNTIME140.dll_memcpy
inc r13
cmp r13, 0x3f
jbe 0x1401504ed
lea rcx, [rsp + 0x218]
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x118], rax
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rsp + 0x108], xmm1
movups xmmword [rsp + 0xf8], xmm0
movups xmm0, xmmword [rcx + 0x28]
movups xmm1, xmmword [rcx + 0x38]
movaps xmmword [rsp + 0x120], xmm0
movaps xmmword [rsp + 0x130], xmm1
mov rax, qword [rcx + 0x48]
mov qword [rsp + 0x140], rax
movaps xmm0, xmmword [rsp + 0x1f0]
movaps xmm1, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0xf0], rax
lea r15, [rsp + 0x80]
lea rbp, [rsp + 0x58]
lea r12, [rsp + 0x2e0]
lea rbx, [rsp + 0x2b8]
lea r13, [rsp + 0x308]
lea rdi, [rsp + 0x290]
lea r14, [rsp + 0xd0]
mov rcx, rdi
mov rdx, r14
call fcn.14014feb0
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, rdi
mov r8, r13
call fcn.14014f3b0
mov rcx, rbp
mov rdx, rbx
mov r8, r12
call fcn.14014f3b0
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.14014f3b0
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x110], xmm0
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.14014feb0
mov rcx, rsi
mov rdx, rdi
mov r8, r13
call fcn.14014f3b0
mov rcx, rbp
mov rdx, rbx
mov r8, r12
call fcn.14014f3b0
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.14014f3b0
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x110], xmm0
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
mov rcx, rdi
mov rdx, r14
call fcn.14014feb0
mov rcx, rsi
mov rdx, rdi
mov r8, r13
call fcn.14014f3b0
mov rcx, rbp
mov rdx, rbx
mov r8, r12
call fcn.14014f3b0
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.14014f3b0
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x140], rax
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x110], xmm0
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movups xmm2, xmmword [rsp + 0x50]
movups xmm3, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x100], xmm3
movaps xmmword [rsp + 0xf0], xmm2
movaps xmmword [rsp + 0xe0], xmm1
movaps xmmword [rsp + 0xd0], xmm0
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov rdx, r14
call fcn.14014feb0
lea rbx, [rsp + 0xa8]
lea r14, [rsp + 0x330]
mov rcx, r14
mov rdx, rsi
mov r8, rbx
call fcn.14014f3b0
lea r15, [rsp + 0x58]
lea r12, [rsp + 0x80]
lea rcx, [rsp + 0x358]
mov rdx, r15
mov r8, r12
call fcn.14014f3b0
lea rcx, [rsp + 0x380]
mov rdx, r12
mov r8, rbx
call fcn.14014f3b0
lea rcx, [rsp + 0x3a8]
mov rdx, rsi
mov r8, r15
call fcn.14014f3b0
lea r15, [rsp + 0x1f0]
mov r8d, 0xa0
mov rcx, r15
mov rdx, r14
call sub.VCRUNTIME140.dll_memcpy
lea rbx, [rsp + 0xa8]
lea r12, [rsp + 0x58]
lea r13, [rsp + 0x80]
xor esi, esi
mov eax, 0x40
sub rax, rsi
mov ecx, esi
and ecx, 1
dec rsi
nop dword [rax]
cmp rax, rcx
jbe 0x1401509a9
lea edx, [rsi + 2]
inc rsi
test dl, 1
je 0x1401508f0
mov rcx, rsi
shr rcx, 1
cmp rsi, 0x40
jae 0x140150e2d
imul rdx, rcx, 0x3c0
lea rax, [0x14030b0a0]
add rdx, rax
movzx r8d, byte [rsp + rsi + 0x1b0]
inc rsi
mov rcx, r14
call fcn.14014f790
lea rbp, [rsp + 0x30]
mov rcx, rbp
mov rdx, r15
mov r8, r14
call fcn.14014faa0
mov rcx, rdi
mov rdx, rbp
mov r8, rbx
call fcn.14014f3b0
lea rcx, [rsp + 0x2b8]
mov rdx, r12
mov r8, r13
call fcn.14014f3b0
lea rcx, [rsp + 0x2e0]
mov rdx, r13
mov r8, rbx
call fcn.14014f3b0
lea rcx, [rsp + 0x308]
mov rdx, rbp
mov r8, r12
call fcn.14014f3b0
mov r8d, 0xa0
mov rcx, r15
mov rdx, rdi
call sub.VCRUNTIME140.dll_memcpy
jmp 0x1401508dd
mov r9, qword [rsp + 0x218]
mov rsi, qword [rsp + 0x220]
mov rdi, qword [rsp + 0x228]
mov r11, qword [rsp + 0x230]
mov r10, qword [rsp + 0x238]
mov rbx, qword [rsp + 0x240]
mov rax, qword [rsp + 0x248]
mov rcx, qword [rsp + 0x250]
mov rdx, qword [rsp + 0x258]
mov r8, qword [rsp + 0x260]
lea r14, [r9 + rbx]
lea r15, [rsi + rax]
lea r12, [rdi + rcx]
lea r13, [r11 + rdx]
lea rbp, [r10 + r8]
mov qword [rsp + 0x1b0], r14
mov qword [rsp + 0x1b8], r15
mov qword [rsp + 0x1c0], r12
mov qword [rsp + 0x1c8], r13
mov qword [rsp + 0x1d0], rbp
sub rbx, r9
movabs r9, 0x7ffffffffffed0
add r9, rbx
sub rax, rsi
movabs rsi, 0x7ffffffffffff0
add rax, rsi
sub rcx, rdi
add rcx, rsi
sub rdx, r11
add rdx, rsi
sub r8, r10
add r8, rsi
mov r10, r9
shr r10, 0x33
mov r11, rax
shr r11, 0x33
mov rsi, rcx
shr rsi, 0x33
mov rdi, rdx
shr rdi, 0x33
mov r14, r8
shr r14, 0x33
movabs rbx, 0x7ffffffffffff
and r9, rbx
and rax, rbx
add rax, r10
and rcx, rbx
add rcx, r11
and rdx, rbx
add rdx, rsi
and r8, rbx
add r8, rdi
lea r10, [r14 + r14*8]
lea r10, [r14 + r10*2]
add r10, r9
mov qword [rsp + 0xd0], r10
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xf0], r8
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0xd0]
call fcn.14014ef70
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x350], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x340], xmm1
movaps xmmword [rsp + 0x330], xmm0
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x2b0], rax
movups xmm0, xmmword [rsp + 0x68]
movaps xmmword [rsp + 0x2a0], xmm0
movups xmm0, xmmword [rsp + 0x58]
movaps xmmword [rsp + 0x290], xmm0
lea rsi, [rsp + 0x30]
lea rdx, [rsp + 0x330]
mov rcx, rsi
mov r8d, 5
call fcn.14014f190
lea rdi, [rsp + 0x1f0]
lea r8, [rsp + 0x290]
mov rcx, rdi
mov rdx, rsi
call fcn.14014f3b0
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x1b0]
mov r8, rdi
call fcn.14014f3b0
mov rax, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
mov r8, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x48]
mov r15, qword [rsp + 0x50]
mov r10, rax
shr r10, 0x33
mov r11, r9
shr r11, 0x33
mov rsi, r8
shr rsi, 0x33
mov rdi, rcx
shr rdi, 0x33
mov r14, r15
shr r14, 0x33
and rax, rbx
and r9, rbx
add r9, r10
and r8, rbx
add r8, r11
and rcx, rbx
add rcx, rsi
and r15, rbx
add r15, rdi
lea r10, [r14 + r14*8]
lea r10, [r14 + r10*2]
lea r11, [r10 + rax]
add rax, r10
add rax, 0x13
shr rax, 0x33
add rax, r9
shr rax, 0x33
add rax, r8
shr rax, 0x33
add rax, rcx
shr rax, 0x33
add rax, r15
shr rax, 0x33
lea r10, [rax + rax*8]
lea rbx, [rax + r10*2]
add rbx, r11
mov r10, rbx
mov rax, rbx
shr rax, 0x33
add rax, r9
mov r9, rax
shr r9, 0x33
add r9, r8
mov r12, r9
shr r12, 0x33
add r12, rcx
mov rdx, r12
shr rdx, 0x33
add rdx, r15
shr r10, 0x30
and r10d, 7
lea ecx, [r10 + rax*8]
mov dword [rsp + 0x2c], ecx
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x178], rax
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x168], rax
mov qword [rsp + 0x160], rax
shr rax, 0x2d
and eax, 0x3f
mov edi, r9d
shl edi, 6
or edi, eax
mov qword [rsp + 0x158], r9
mov qword [rsp + 0x150], r9
mov r15, r9
mov r13, r9
mov rbp, r9
mov r14, r9
shr r9, 0x32
and r9d, 1
lea eax, [r9 + r12*2]
mov dword [rsp + 0x28], eax
mov rsi, r12
mov r11, r12
mov r10, r12
mov r9, r12
mov r8, r12
shr r12, 0x2f
and r12d, 0xf
mov eax, edx
shl eax, 4
or eax, r12d
mov rcx, qword [rsp + 0x188]
mov byte [rcx], bl
mov byte [rcx + 1], bh
mov r12, rbx
shr r12, 0x10
mov byte [rcx + 2], r12b
mov r12, rbx
shr r12, 0x18
mov byte [rcx + 3], r12b
mov r12, rbx
shr r12, 0x20
mov byte [rcx + 4], r12b
shr rbx, 0x28
mov byte [rcx + 5], bl
mov ebx, dword [rsp + 0x2c]
mov byte [rcx + 6], bl
mov rbx, qword [rsp + 0x180]
shr rbx, 5
mov byte [rcx + 7], bl
mov rbx, qword [rsp + 0x178]
shr rbx, 0xd
mov byte [rcx + 8], bl
mov rbx, qword [rsp + 0x170]
shr rbx, 0x15
mov byte [rcx + 9], bl
mov rbx, qword [rsp + 0x168]
shr rbx, 0x1d
mov byte [rcx + 0xa], bl
mov rbx, qword [rsp + 0x160]
shr rbx, 0x25
mov byte [rcx + 0xb], bl
mov byte [rcx + 0xc], dil
mov rdi, qword [rsp + 0x158]
shr rdi, 2
mov byte [rcx + 0xd], dil
mov rdi, qword [rsp + 0x150]
shr rdi, 0xa
mov byte [rcx + 0xe], dil
shr r15, 0x12
mov byte [rcx + 0xf], r15b
shr r13, 0x1a
mov byte [rcx + 0x10], r13b
shr rbp, 0x22
mov byte [rcx + 0x11], bpl
shr r14, 0x2a
mov byte [rcx + 0x12], r14b
mov edi, dword [rsp + 0x28]
mov byte [rcx + 0x13], dil
shr rsi, 7
mov byte [rcx + 0x14], sil
shr r11, 0xf
mov byte [rcx + 0x15], r11b
shr r10, 0x17
mov byte [rcx + 0x16], r10b
shr r9, 0x1f
mov byte [rcx + 0x17], r9b
shr r8, 0x27
mov byte [rcx + 0x18], r8b
mov byte [rcx + 0x19], al
mov rax, rdx
shr rax, 4
mov byte [rcx + 0x1a], al
mov rax, rdx
shr rax, 0xc
mov byte [rcx + 0x1b], al
mov rax, rdx
shr rax, 0x14
mov byte [rcx + 0x1c], al
mov rax, rdx
shr rax, 0x1c
mov byte [rcx + 0x1d], al
mov rax, rdx
shr rax, 0x24
mov byte [rcx + 0x1e], al
shr rdx, 0x2c
and edx, 0x7f
mov byte [rcx + 0x1f], dl
add rsp, 0x3d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.C:Users_runneradmin.cargo_registry_srcindex.crates.io_6f17d22bba15001fcurve25519_dalek_4.1.1_srcedwards.rs
mov edx, 0x20
call fcn.1402ea300
ud2