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

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3a8
movaps xmmword [rsp + 0x390], xmm15
movaps xmmword [rsp + 0x380], xmm14
movaps xmmword [rsp + 0x370], xmm13
movaps xmmword [rsp + 0x360], xmm12
movaps xmmword [rsp + 0x350], xmm11
movaps xmmword [rsp + 0x340], xmm10
movdqa xmmword [rsp + 0x330], xmm9
movaps xmmword [rsp + 0x320], xmm8
movaps xmmword [rsp + 0x310], xmm7
movdqa xmmword [rsp + 0x300], xmm6
mov rsi, r8
movdqa xmm4, xmmword [rcx]
movdqa xmm1, xmmword [rcx + 0x10]
movdqa xmm12, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r8, [rax + 1]
movdqa xmm13, xmm12
pinsrd xmm13, r8d, 0
shr r8, 0x20
pinsrd xmm13, r8d, 1
lea r8, [rax + 2]
movdqa xmm14, xmm12
pinsrd xmm14, r8d, 0
shr r8, 0x20
pinsrd xmm14, r8d, 1
lea r8, [rax + 3]
movdqa xmm15, xmm12
pinsrd xmm15, r8d, 0
shr r8, 0x20
pinsrd xmm15, r8d, 1
movdqa xmm0, xmmword [0x140227df0]
movdqa xmmword [rsp + 0x70], xmm15
movdqa xmmword [rsp + 0x80], xmm14
movdqa xmmword [rsp + 0x90], xmm13
movdqa xmmword [rsp + 0xa0], xmm12
movdqa xmm7, xmm1
movdqa xmm10, xmm1
movdqa xmm11, xmm1
movdqa xmmword [rsp + 0xb0], xmm1
movdqa xmm5, xmm1
movdqa xmm2, xmm4
movdqa xmm3, xmm4
movdqa xmm8, xmm4
movdqa xmmword [rsp + 0xc0], xmm4
movdqa xmmword [rsp + 0x30], xmm0
movdqa xmmword [rsp + 0x60], xmm0
movdqa xmmword [rsp + 0x20], xmm0
movdqa xmmword [rsp + 0x50], xmm0
sub edx, 1
jb 0x140008b1a
movdqa xmm0, xmmword [rsp + 0x50]
paddd xmm0, xmm4
movdqa xmm1, xmmword [rsp + 0x60]
paddd xmm1, xmm8
movdqa xmm6, xmmword [rsp + 0x30]
paddd xmm6, xmm3
movdqa xmm9, xmmword [rsp + 0x20]
paddd xmm9, xmm2
pxor xmm12, xmm0
pxor xmm13, xmm1
pxor xmm14, xmm6
pxor xmm15, xmm9
pshuflw xmm12, xmm12, 0xb1
pshufhw xmm12, xmm12, 0xb1
pshuflw xmm13, xmm13, 0xb1
pshufhw xmm13, xmm13, 0xb1
pshuflw xmm14, xmm14, 0xb1
pshufhw xmm14, xmm14, 0xb1
pshuflw xmm15, xmm15, 0xb1
pshufhw xmm15, xmm15, 0xb1
paddd xmm5, xmm12
movdqa xmmword [rsp + 0x40], xmm5
paddd xmm11, xmm13
paddd xmm10, xmm14
paddd xmm7, xmm15
movdqa xmmword [rsp + 0x20], xmm7
pxor xmm4, xmm5
movdqa xmm5, xmm4
psrld xmm5, 0x14
pslld xmm4, 0xc
por xmm4, xmm5
pxor xmm8, xmm11
movdqa xmm5, xmm8
psrld xmm5, 0x14
pslld xmm8, 0xc
por xmm8, xmm5
pxor xmm3, xmm10
movdqa xmm5, xmm3
psrld xmm5, 0x14
pslld xmm3, 0xc
por xmm3, xmm5
pxor xmm2, xmm7
movdqa xmm5, xmm2
psrld xmm5, 0x14
pslld xmm2, 0xc
por xmm2, xmm5
paddd xmm0, xmm4
paddd xmm1, xmm8
paddd xmm6, xmm3
paddd xmm9, xmm2
movdqa xmm5, xmm0
movdqa xmm7, xmm10
movdqa xmm10, xmmword [0x140227e00]
pshufb xmm5, xmm10
pshufb xmm12, xmm10
pxor xmm12, xmm5
movdqa xmm5, xmm1
pshufb xmm5, xmm10
pshufb xmm13, xmm10
pxor xmm13, xmm5
movdqa xmm5, xmm6
pshufb xmm5, xmm10
pshufb xmm14, xmm10
pxor xmm14, xmm5
movdqa xmm5, xmm9
pshufb xmm5, xmm10
pshufb xmm15, xmm10
pxor xmm15, xmm5
movdqa xmm10, xmmword [rsp + 0x40]
paddd xmm10, xmm12
paddd xmm11, xmm13
paddd xmm7, xmm14
movdqa xmm5, xmmword [rsp + 0x20]
paddd xmm5, xmm15
movdqa xmmword [rsp + 0x20], xmm5
pxor xmm4, xmm10
pxor xmm8, xmm11
pxor xmm3, xmm7
pxor xmm2, xmm5
movdqa xmm5, xmm4
psrld xmm5, 0x19
pslld xmm4, 7
por xmm4, xmm5
movdqa xmm5, xmm8
psrld xmm5, 0x19
pslld xmm8, 7
por xmm8, xmm5
movdqa xmm5, xmm3
psrld xmm5, 0x19
pslld xmm3, 7
por xmm3, xmm5
movdqa xmm5, xmm2
psrld xmm5, 0x19
pslld xmm2, 7
por xmm2, xmm5
pshufd xmm5, xmm4, 0x39
pshufd xmm8, xmm8, 0x39
pshufd xmm3, xmm3, 0x39
pshufd xmm2, xmm2, 0x39
pshufd xmm4, xmm10, 0x4e
movdqa xmmword [rsp + 0x30], xmm4
pshufd xmm10, xmm11, 0x4e
pshufd xmm4, xmm7, 0x4e
movdqa xmmword [rsp + 0x40], xmm4
pshufd xmm7, xmmword [rsp + 0x20], 0x4e
paddd xmm0, xmm5
paddd xmm1, xmm8
paddd xmm6, xmm3
paddd xmm9, xmm2
pshuflw xmm4, xmm0, 0xb1
pshufhw xmm4, xmm4, 0xb1
movdqa xmm11, xmmword [0x140227e10]
pshufb xmm12, xmm11
pxor xmm12, xmm4
pshuflw xmm4, xmm1, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm13, xmm11
pxor xmm13, xmm4
pshuflw xmm4, xmm6, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm14, xmm11
pxor xmm14, xmm4
pshuflw xmm4, xmm9, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm15, xmm11
pxor xmm15, xmm4
movdqa xmm11, xmmword [rsp + 0x30]
paddd xmm11, xmm12
paddd xmm10, xmm13
movdqa xmm4, xmmword [rsp + 0x40]
paddd xmm4, xmm14
movdqa xmmword [rsp + 0x40], xmm4
paddd xmm7, xmm15
pxor xmm5, xmm11
pxor xmm8, xmm10
pxor xmm3, xmm4
pxor xmm2, xmm7
movdqa xmm4, xmm5
psrld xmm4, 0x14
pslld xmm5, 0xc
por xmm5, xmm4
movdqa xmm4, xmm8
psrld xmm4, 0x14
pslld xmm8, 0xc
por xmm8, xmm4
movdqa xmm4, xmm3
psrld xmm4, 0x14
pslld xmm3, 0xc
por xmm3, xmm4
movdqa xmm4, xmm2
psrld xmm4, 0x14
pslld xmm2, 0xc
por xmm2, xmm4
paddd xmm0, xmm5
paddd xmm1, xmm8
paddd xmm6, xmm3
paddd xmm9, xmm2
movdqa xmmword [rsp + 0x50], xmm0
pxor xmm12, xmm0
movdqa xmm0, xmmword [0x140227e00]
pshufb xmm12, xmm0
movdqa xmmword [rsp + 0x60], xmm1
pxor xmm13, xmm1
pshufb xmm13, xmm0
movdqa xmmword [rsp + 0x30], xmm6
pxor xmm14, xmm6
pshufb xmm14, xmm0
movdqa xmmword [rsp + 0x20], xmm9
pxor xmm15, xmm9
pshufb xmm15, xmm0
paddd xmm11, xmm12
paddd xmm10, xmm13
movdqa xmm0, xmmword [rsp + 0x40]
paddd xmm0, xmm14
paddd xmm7, xmm15
pxor xmm5, xmm11
pxor xmm8, xmm10
pxor xmm3, xmm0
pxor xmm2, xmm7
movdqa xmm4, xmm5
psrld xmm4, 0x19
pslld xmm5, 7
por xmm5, xmm4
movdqa xmm4, xmm8
psrld xmm4, 0x19
pslld xmm8, 7
por xmm8, xmm4
movdqa xmm4, xmm3
psrld xmm4, 0x19
pslld xmm3, 7
por xmm3, xmm4
movdqa xmm4, xmm2
psrld xmm4, 0x19
pslld xmm2, 7
por xmm2, xmm4
pshufd xmm4, xmm5, 0x93
pshufd xmm8, xmm8, 0x93
pshufd xmm3, xmm3, 0x93
pshufd xmm2, xmm2, 0x93
pshufd xmm5, xmm11, 0x4e
pshufd xmm11, xmm10, 0x4e
pshufd xmm10, xmm0, 0x4e
pshufd xmm7, xmm7, 0x4e
pshufd xmm12, xmm12, 0x39
pshufd xmm13, xmm13, 0x39
pshufd xmm14, xmm14, 0x39
pshufd xmm15, xmm15, 0x39
jmp 0x1400086e0
lea r8, [rsp + 0x150]
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [r8 - 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x60]
movaps xmmword [r8 - 0x30], xmm0
movaps xmm0, xmmword [rsp + 0x30]
movaps xmmword [r8 - 0x20], xmm0
movdqa xmm0, xmm5
movaps xmm5, xmmword [rsp + 0x20]
movaps xmmword [r8 - 0x10], xmm5
lea r9, [rsp + 0x210]
movdqa xmmword [r9], xmm4
movdqa xmmword [r9 + 0x10], xmm8
movdqa xmmword [r9 + 0x20], xmm3
movdqa xmmword [r9 + 0x30], xmm2
lea r12, [rsp + 0x190]
movdqa xmmword [r12 - 0x40], xmm0
movdqa xmmword [r12 - 0x30], xmm11
movdqa xmmword [r12 - 0x20], xmm10
movdqa xmmword [r12 - 0x10], xmm7
lea r15, [rsp + 0x1d0]
movdqa xmmword [r15 - 0x40], xmm12
movdqa xmmword [r15 - 0x30], xmm13
movdqa xmmword [r15 - 0x20], xmm14
movdqa xmmword [r15 - 0x10], xmm15
lea r14, [rsp + 0x210]
movdqa xmm0, xmmword [rsp + 0xa0]
movdqa xmmword [r14 - 0x40], xmm0
movaps xmm1, xmmword [rsp + 0x90]
movaps xmmword [r14 - 0x30], xmm1
movaps xmm1, xmmword [rsp + 0x80]
movaps xmmword [r14 - 0x20], xmm1
movaps xmm1, xmmword [rsp + 0x70]
movaps xmmword [r14 - 0x10], xmm1
add rax, 4
pinsrd xmm0, eax, 0
shr rax, 0x20
pinsrd xmm0, eax, 1
movdqa xmmword [rcx + 0x20], xmm0
lea rdi, [rsp + 0xd8]
lea rdx, [rsp + 0x110]
mov rcx, rdi
call fcn.140006820
mov rax, qword [rdi + 0x20]
mov rcx, qword [rdi + 0x28]
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rdi + 0x10]
lea rbx, [rsp + 0x250]
movdqa xmmword [rbx + 0x10], xmm1
movdqa xmmword [rbx], xmm0
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rcx
sub rcx, rax
cmp rcx, 4
mov eax, 4
cmovb rax, rcx
mov rdx, qword [rdi + 0x30]
mov qword [rbx + 0x30], rdx
lea rdx, [rsp + 0x150]
mov qword [rbx + 0x38], rdx
mov qword [rbx + 0x40], r12
and qword [rbx + 0x48], 0
mov qword [rbx + 0x50], rax
mov qword [rbx + 0x58], rcx
lea rcx, [rsp + 0x190]
mov qword [rbx + 0x60], rcx
mov qword [rbx + 0x68], r15
and qword [rbx + 0x70], 0
mov qword [rbx + 0x78], rax
mov qword [rbx + 0x80], rax
lea rcx, [rsp + 0x1d0]
mov qword [rbx + 0x88], rcx
mov qword [rbx + 0x90], r14
and qword [rbx + 0x98], 0
mov qword [rbx + 0xa0], rax
mov qword [rbx + 0xa8], rax
xor r14d, r14d
movdqa xmm6, xmmword [0x140227df0]
movdqa xmm7, xmmword [rsp + 0xc0]
movdqa xmm8, xmmword [rsp + 0xb0]
mov rcx, rdi
mov rdx, rbx
call fcn.1400065e4
mov rax, qword [rsp + 0xd8]
test rax, rax
je 0x140008d71
cmp r14, 0x100
je 0x140008dda
mov rcx, qword [rsp + 0xf8]
movdqa xmm0, xmmword [rcx]
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xe0]
mov r8, qword [rsp + 0xe8]
movdqa xmm1, xmmword [rax]
paddd xmm1, xmm6
movdqa xmm2, xmmword [rdx]
paddd xmm2, xmm7
movdqa xmm3, xmmword [r8]
paddd xmm3, xmm8
paddd xmm0, xmmword [rcx]
movdqu xmmword [rsi + r14], xmm1
movdqu xmmword [rsi + r14 + 0x10], xmm2
movdqu xmmword [rsi + r14 + 0x20], xmm3
movdqu xmmword [rsi + r14 + 0x30], xmm0
add r14, 0x40
jmp 0x140008ce6
movaps xmm6, xmmword [rsp + 0x300]
movaps xmm7, xmmword [rsp + 0x310]
movaps xmm8, xmmword [rsp + 0x320]
movaps xmm9, xmmword [rsp + 0x330]
movaps xmm10, xmmword [rsp + 0x340]
movaps xmm11, xmmword [rsp + 0x350]
movaps xmm12, xmmword [rsp + 0x360]
movaps xmm13, xmmword [rsp + 0x370]
movaps xmm14, xmmword [rsp + 0x380]
movaps xmm15, xmmword [rsp + 0x390]
add rsp, 0x3a8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rand_chacha_0.3.1_srcguts.rs
call fcn.14008c1f0
int3