Function at 0x14000cb3f
Capabilities:
Encrypt data using salsa20 or chacha

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x428
vmovdqa xmmword [rsp + 0x410], xmm15
vmovaps xmmword [rsp + 0x400], xmm14
vmovaps xmmword [rsp + 0x3f0], xmm13
vmovaps xmmword [rsp + 0x3e0], xmm12
vmovaps xmmword [rsp + 0x3d0], xmm11
vmovaps xmmword [rsp + 0x3c0], xmm10
vmovaps xmmword [rsp + 0x3b0], xmm9
vmovdqa xmmword [rsp + 0x3a0], xmm8
vmovaps xmmword [rsp + 0x390], xmm7
vmovaps xmmword [rsp + 0x380], xmm6
vmovdqa xmm9, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 1]
vpinsrd xmm0, xmm9, r8d, 0
shr r8, 0x20
vpinsrd xmm11, xmm0, r8d, 1
mov rsi, rdx
lea rdx, [rax + 2]
vpinsrd xmm0, xmm9, edx, 0
shr rdx, 0x20
vpinsrd xmm1, xmm0, edx, 1
vmovdqa xmm5, xmmword [rcx]
lea rdx, [rax + 3]
vpinsrd xmm0, xmm9, edx, 0
shr rdx, 0x20
vpinsrd xmm0, xmm0, edx, 1
vmovdqa xmm14, xmmword [rcx + 0x10]
vmovdqa xmm13, xmmword [str.expand_32_byte_k]
mov edx, 6
vmovdqa xmmword [rsp + 0x70], xmm0
vmovdqa xmm2, xmm0
vmovdqa xmmword [rsp + 0x80], xmm1
vmovdqa xmm6, xmm1
vmovdqa xmmword [rsp + 0x90], xmm11
vmovdqa xmmword [rsp + 0xa0], xmm9
vmovdqa xmmword [rsp + 0x30], xmm14
vmovdqa xmm10, xmm14
vmovdqa xmm12, xmm14
vmovdqa xmmword [rsp + 0xb0], xmm14
vmovdqa xmm7, xmm5
vmovdqa xmm0, xmm5
vmovdqa xmm3, xmm5
vmovdqa xmmword [rsp + 0xc0], xmm5
vmovdqa xmm1, xmm13
vmovdqa xmmword [rsp + 0x20], xmm13
vmovdqa xmmword [rsp + 0x40], xmm13
sub edx, 1
jb 0x14000d02f
vmovdqa xmm4, xmm10
vpaddd xmm10, xmm13, xmm5
vpxor xmm8, xmm9, xmm10
vpshuflw xmm8, xmm8, 0xb1
vmovdqa xmm13, xmm12
vpshufhw xmm12, xmm8, 0xb1
vpaddd xmm8, xmm12, xmm14
vmovdqa xmmword [rsp + 0x60], xmm8
vpxor xmm5, xmm8, xmm5
vpsrld xmm9, xmm5, 0x14
vpslld xmm5, xmm5, 0xc
vpor xmm15, xmm9, xmm5
vmovdqa xmm9, xmm6
vpaddd xmm6, xmm3, xmmword [rsp + 0x20]
vmovdqa xmm8, xmm2
vpxor xmm2, xmm11, xmm6
vpshuflw xmm2, xmm2, 0xb1
vpshufhw xmm11, xmm2, 0xb1
vpaddd xmm2, xmm11, xmm13
vmovdqa xmmword [rsp + 0x20], xmm2
vpxor xmm3, xmm2, xmm3
vpsrld xmm14, xmm3, 0x14
vpslld xmm3, xmm3, 0xc
vpor xmm13, xmm14, xmm3
vpaddd xmm5, xmm1, xmm0
vpxor xmm3, xmm9, xmm5
vpshuflw xmm3, xmm3, 0xb1
vpshufhw xmm2, xmm3, 0xb1
vpaddd xmm1, xmm2, xmm4
vmovdqa xmmword [rsp + 0xd0], xmm1
vpxor xmm3, xmm1, xmm0
vpsrld xmm4, xmm3, 0x14
vpslld xmm3, xmm3, 0xc
vpor xmm14, xmm3, xmm4
vpaddd xmm4, xmm7, xmmword [rsp + 0x40]
vpxor xmm3, xmm8, xmm4
vpshuflw xmm3, xmm3, 0xb1
vpshufhw xmm1, xmm3, 0xb1
vpaddd xmm9, xmm1, xmmword [rsp + 0x30]
vpxor xmm3, xmm9, xmm7
vpsrld xmm8, xmm3, 0x14
vpslld xmm3, xmm3, 0xc
vpor xmm3, xmm8, xmm3
vpaddd xmm8, xmm15, xmm10
vmovdqa xmm10, xmmword [0x14004d290]
vpshufb xmm0, xmm12, xmm10
vpshufb xmm12, xmm8, xmm10
vpxor xmm12, xmm12, xmm0
vpaddd xmm0, xmm13, xmm6
vmovdqa xmmword [rsp + 0xe0], xmm0
vpshufb xmm6, xmm11, xmm10
vpshufb xmm11, xmm0, xmm10
vpxor xmm11, xmm11, xmm6
vpaddd xmm0, xmm14, xmm5
vmovdqa xmmword [rsp + 0x30], xmm0
vpshufb xmm2, xmm2, xmm10
vpshufb xmm5, xmm0, xmm10
vpxor xmm5, xmm2, xmm5
vpaddd xmm2, xmm3, xmm4
vmovdqa xmmword [rsp + 0x40], xmm2
vpshufb xmm0, xmm1, xmm10
vpshufb xmm1, xmm2, xmm10
vpxor xmm2, xmm0, xmm1
vpaddd xmm0, xmm12, xmmword [rsp + 0x60]
vmovdqa xmmword [rsp + 0xf0], xmm0
vpxor xmm0, xmm15, xmm0
vpsrld xmm6, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm0, xmm0, xmm6
vpaddd xmm4, xmm11, xmmword [rsp + 0x20]
vpxor xmm6, xmm13, xmm4
vpsrld xmm7, xmm6, 0x19
vpslld xmm6, xmm6, 7
vpor xmm6, xmm6, xmm7
vpaddd xmm7, xmm5, xmmword [rsp + 0xd0]
vpxor xmm13, xmm14, xmm7
vpsrld xmm14, xmm13, 0x19
vpslld xmm13, xmm13, 7
vpor xmm14, xmm13, xmm14
vpaddd xmm1, xmm9, xmm2
vmovdqa xmmword [rsp + 0x60], xmm1
vpxor xmm3, xmm1, xmm3
vpsrld xmm13, xmm3, 0x19
vpslld xmm3, xmm3, 7
vpor xmm15, xmm13, xmm3
vpshufd xmm1, xmm0, 0x39
vpaddd xmm13, xmm8, xmm1
vpshuflw xmm3, xmm13, 0xb1
vpshufhw xmm3, xmm3, 0xb1
vmovdqa xmm0, xmmword [0x14004d2a0]
vpshufb xmm8, xmm12, xmm0
vpxor xmm12, xmm8, xmm3
vpshufd xmm8, xmm6, 0x39
vpaddd xmm3, xmm8, xmmword [rsp + 0xe0]
vmovdqa xmmword [rsp + 0x20], xmm3
vpshuflw xmm6, xmm3, 0xb1
vpshufhw xmm6, xmm6, 0xb1
vpshufb xmm10, xmm11, xmm0
vpxor xmm6, xmm10, xmm6
vpshufd xmm14, xmm14, 0x39
vpaddd xmm3, xmm14, xmmword [rsp + 0x30]
vmovdqa xmmword [rsp + 0x30], xmm3
vpshuflw xmm10, xmm3, 0xb1
vpshufhw xmm10, xmm10, 0xb1
vpshufb xmm5, xmm5, xmm0
vpxor xmm5, xmm10, xmm5
vpshufd xmm3, xmm15, 0x39
vpaddd xmm9, xmm3, xmmword [rsp + 0x40]
vmovdqa xmmword [rsp + 0x40], xmm9
vpshuflw xmm10, xmm9, 0xb1
vpshufhw xmm10, xmm10, 0xb1
vpshufb xmm2, xmm2, xmm0
vpxor xmm2, xmm10, xmm2
vpshufd xmm10, xmmword [rsp + 0xf0], 0x4e
vpaddd xmm15, xmm10, xmm12
vpxor xmm1, xmm15, xmm1
vpsrld xmm10, xmm1, 0x14
vpslld xmm1, xmm1, 0xc
vpor xmm1, xmm10, xmm1
vpshufd xmm9, xmm4, 0x4e
vpaddd xmm11, xmm9, xmm6
vpxor xmm8, xmm11, xmm8
vpsrld xmm9, xmm8, 0x14
vpslld xmm8, xmm8, 0xc
vpor xmm8, xmm8, xmm9
vpshufd xmm7, xmm7, 0x4e
vpaddd xmm10, xmm7, xmm5
vpxor xmm7, xmm10, xmm14
vpsrld xmm9, xmm7, 0x14
vpslld xmm7, xmm7, 0xc
vpor xmm14, xmm9, xmm7
vpshufd xmm4, xmmword [rsp + 0x60], 0x4e
vpaddd xmm4, xmm4, xmm2
vpxor xmm0, xmm4, xmm3
vpsrld xmm7, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm7, xmm0, xmm7
vpaddd xmm13, xmm13, xmm1
vpxor xmm0, xmm12, xmm13
vmovdqa xmm3, xmmword [0x14004d290]
vpshufb xmm9, xmm0, xmm3
vpaddd xmm12, xmm15, xmm9
vpxor xmm0, xmm12, xmm1
vpsrld xmm1, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm0, xmm0, xmm1
vpaddd xmm1, xmm8, xmmword [rsp + 0x20]
vmovdqa xmmword [rsp + 0x20], xmm1
vpxor xmm1, xmm6, xmm1
vpshufb xmm6, xmm1, xmm3
vmovdqa xmm15, xmm3
vpaddd xmm11, xmm11, xmm6
vpxor xmm1, xmm11, xmm8
vpsrld xmm3, xmm1, 0x19
vpslld xmm1, xmm1, 7
vpor xmm3, xmm1, xmm3
vpaddd xmm1, xmm14, xmmword [rsp + 0x30]
vpxor xmm5, xmm5, xmm1
vpshufb xmm8, xmm5, xmm15
vpaddd xmm10, xmm10, xmm8
vpxor xmm5, xmm10, xmm14
vpsrld xmm14, xmm5, 0x19
vpslld xmm5, xmm5, 7
vpor xmm14, xmm14, xmm5
vpaddd xmm5, xmm7, xmmword [rsp + 0x40]
vmovdqa xmmword [rsp + 0x40], xmm5
vpxor xmm2, xmm2, xmm5
vpshufb xmm2, xmm2, xmm15
vpaddd xmm4, xmm4, xmm2
vpxor xmm5, xmm4, xmm7
vpsrld xmm7, xmm5, 0x19
vpslld xmm5, xmm5, 7
vpor xmm7, xmm5, xmm7
vpshufd xmm5, xmm0, 0x93
vpshufd xmm3, xmm3, 0x93
vpshufd xmm0, xmm14, 0x93
vpshufd xmm7, xmm7, 0x93
vpshufd xmm14, xmm12, 0x4e
vpshufd xmm12, xmm11, 0x4e
vpshufd xmm10, xmm10, 0x4e
vpshufd xmm4, xmm4, 0x4e
vmovdqa xmmword [rsp + 0x30], xmm4
vpshufd xmm9, xmm9, 0x39
vpshufd xmm11, xmm6, 0x39
vpshufd xmm6, xmm8, 0x39
vpshufd xmm2, xmm2, 0x39
jmp 0x14000cc6e
lea r8, [rsp + 0x1d0]
vmovdqa xmmword [r8 - 0x40], xmm13
vmovaps xmm4, xmmword [rsp + 0x20]
vmovaps xmmword [r8 - 0x30], xmm4
vmovdqa xmmword [r8 - 0x20], xmm1
vmovaps xmm1, xmmword [rsp + 0x40]
vmovaps xmmword [r8 - 0x10], xmm1
lea r9, [rsp + 0x1d0]
vmovdqa xmmword [r9], xmm5
vmovdqa xmmword [r9 + 0x10], xmm3
vmovdqa xmmword [r9 + 0x20], xmm0
vmovdqa xmmword [r9 + 0x30], xmm7
lea r12, [rsp + 0x210]
vmovdqa xmmword [r12], xmm14
vmovdqa xmmword [r12 + 0x10], xmm12
vmovdqa xmmword [r12 + 0x20], xmm10
vmovaps xmm0, xmmword [rsp + 0x30]
vmovaps xmmword [r12 + 0x30], xmm0
lea r15, [rsp + 0x250]
vmovdqa xmmword [r15], xmm9
vmovdqa xmmword [r15 + 0x10], xmm11
vmovdqa xmmword [r15 + 0x20], xmm6
vmovdqa xmmword [r15 + 0x30], xmm2
lea r14, [rsp + 0x290]
vmovdqa xmm0, xmmword [rsp + 0xa0]
vmovdqa xmmword [r14], xmm0
vmovaps xmm1, xmmword [rsp + 0x90]
vmovaps xmmword [r14 + 0x10], xmm1
vmovaps xmm1, xmmword [rsp + 0x80]
vmovaps xmmword [r14 + 0x20], xmm1
vmovdqa xmm1, xmmword [rsp + 0x70]
vmovdqa xmmword [r14 + 0x30], xmm1
add rax, 4
vpinsrd xmm0, xmm0, eax, 0
shr rax, 0x20
vpinsrd xmm0, xmm0, eax, 1
vmovdqa xmmword [rcx + 0x20], xmm0
lea rdi, [rsp + 0x108]
lea rdx, [rsp + 0x190]
mov rcx, rdi
call fcn.14000e45c
lea rbx, [rsp + 0x2d0]
mov rcx, rbx
mov rdx, rdi
mov r8, r12
call fcn.14000e4c3
lea r12, [rsp + 0x108]
mov rcx, r12
mov rdx, rbx
mov r8, r15
call fcn.14000e534
lea rcx, [rsp + 0x2d0]
mov rdx, r12
mov r8, r14
call fcn.14000e599
xor r12d, r12d
vmovdqa xmm6, xmmword [str.expand_32_byte_k]
lea r14, [rsp + 0x50]
vmovdqa xmm10, xmmword [rsp + 0xc0]
vmovdqa xmm11, xmmword [rsp + 0xb0]
mov rcx, rdi
mov rdx, rbx
call fcn.14000e613
mov rax, qword [rsp + 0x108]
test rax, rax
je 0x14000d248
cmp r12, 0x100
je 0x14000d2b6
lea r15, [rsi + r12]
mov rcx, qword [rsp + 0x128]
vmovdqa xmm0, xmmword [rcx]
mov rcx, qword [rsp + 0x110]
mov rdx, qword [rsp + 0x118]
vpaddd xmm1, xmm6, xmmword [rax]
vpaddd xmm7, xmm10, xmmword [rcx]
vpaddd xmm8, xmm11, xmmword [rdx]
mov rax, qword [rsp + 0x120]
vpaddd xmm9, xmm0, xmmword [rax]
vmovdqa xmmword [rsp + 0x50], xmm1
mov rcx, r15
mov rdx, r14
call fcn.14000daee
vmovdqa xmmword [rsp + 0x50], xmm7
lea rcx, [r15 + 0x10]
mov rdx, r14
call fcn.14000daee
vmovdqa xmmword [rsp + 0x50], xmm8
lea rcx, [r15 + 0x20]
mov rdx, r14
call fcn.14000daee
vmovdqa xmmword [rsp + 0x50], xmm9
add r15, 0x30
mov rcx, r15
mov rdx, r14
call fcn.14000daee
add r12, 0x40
jmp 0x14000d194
vzeroupper
vmovaps xmm6, xmmword [rsp + 0x380]
vmovaps xmm7, xmmword [rsp + 0x390]
vmovaps xmm8, xmmword [rsp + 0x3a0]
vmovaps xmm9, xmmword [rsp + 0x3b0]
vmovaps xmm10, xmmword [rsp + 0x3c0]
vmovaps xmm11, xmmword [rsp + 0x3d0]
vmovaps xmm12, xmmword [rsp + 0x3e0]
vmovaps xmm13, xmmword [rsp + 0x3f0]
vmovaps xmm14, xmmword [rsp + 0x400]
vmovaps xmm15, xmmword [rsp + 0x410]
add rsp, 0x428
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, str.C:Userswin10_x64.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rand_chacha_0.3.1_srcguts.rs
call fcn.140006140
int3