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

Disassembly:
push rsi
push rdi
sub rsp, 0x2c8
movaps xmmword [rsp + 0x2b0], xmm15
movaps xmmword [rsp + 0x2a0], xmm14
movaps xmmword [rsp + 0x290], xmm13
movdqa xmmword [rsp + 0x280], xmm12
movaps xmmword [rsp + 0x270], xmm11
movaps xmmword [rsp + 0x260], xmm10
movdqa xmmword [rsp + 0x250], xmm9
movaps xmmword [rsp + 0x240], xmm8
movaps xmmword [rsp + 0x230], xmm7
movaps xmmword [rsp + 0x220], xmm6
mov rsi, rdx
mov rdi, rcx
mov ecx, 0xf
call sym.std_detect::detect::cache::test::h5e21d754491c8f86
test al, al
je 0x1400c3e68
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rdi
pop rsi
jmp sym.rand_chacha::guts::refill_wide::impl_avx2::h44e56d34ed5a7fb8
call sym.std_detect::detect::arch::x86::__is_feature_detected::avx::hd8f04f9d8613894b
test al, al
je 0x1400c3edd
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rdi
pop rsi
jmp sym.rand_chacha::guts::refill_wide::impl_avx::hfa61a3c5f847c53c
mov ecx, 0xa
call sym.std_detect::detect::cache::test::h5e21d754491c8f86
test al, al
je 0x1400c3f57
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rdi
pop rsi
jmp sym.rand_chacha::guts::refill_wide::impl_sse41::hf007d4d7fb84336b
mov ecx, 9
call sym.std_detect::detect::cache::test::h5e21d754491c8f86
test al, al
je 0x1400c3fd1
mov rcx, rdi
mov rdx, rsi
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rdi
pop rsi
jmp sym.rand_chacha::guts::refill_wide::impl_ssse3::h1fc4619d7d1162ec
movdqa xmm3, xmmword [rdi]
movdqa xmm14, xmmword [rdi + 0x10]
movdqa xmm6, xmmword [rdi + 0x20]
mov rax, qword [rdi + 0x20]
lea rcx, [rax + 1]
movd xmm8, ecx
shr rcx, 0x20
pshufd xmm0, xmm6, 0xf8
pslldq xmm0, 4
movdqa xmmword [rsp + 0x80], xmm0
movd xmm0, ecx
pslldq xmm0, 8
shufps xmm0, xmm6, 0xe8
por xmm8, xmm0
lea rcx, [rax + 2]
movd xmm7, ecx
shr rcx, 0x20
movd xmm0, ecx
pslldq xmm0, 8
shufps xmm0, xmm6, 0xe8
por xmm7, xmm0
lea rcx, [rax + 3]
movd xmm1, ecx
shr rcx, 0x20
movd xmm0, ecx
pslldq xmm0, 8
shufps xmm0, xmm6, 0xe8
por xmm1, xmm0
movdqa xmm10, xmmword [str.expand_32_byte_kexpand_32_byte_kexpand_32_byte_k]
mov ecx, 6
movdqa xmmword [rsp + 0x70], xmm1
movdqa xmm4, xmm1
movdqa xmmword [rsp + 0x90], xmm7
movdqa xmmword [rsp + 0xa0], xmm8
movdqa xmm2, xmm8
movaps xmmword [rsp + 0xb0], xmm6
movdqa xmm8, xmm14
movdqa xmm15, xmm14
movdqa xmm11, xmm14
movdqa xmmword [rsp + 0xc0], xmm14
movdqa xmmword [rsp + 0x20], xmm14
movdqa xmm14, xmm7
movdqa xmm13, xmm3
movdqa xmm0, xmm3
movdqa xmm5, xmm3
movdqa xmmword [rsp + 0xd0], xmm3
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmmword [rsp + 0x60], xmm10
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x50], xmm10
sub ecx, 1
jb 0x1400c45b0
movdqa xmm7, xmm8
movdqa xmm9, xmmword [rsp + 0x50]
paddd xmm9, xmm3
movdqa xmm10, xmmword [rsp + 0x60]
paddd xmm10, xmm5
movdqa xmm12, xmmword [rsp + 0x30]
paddd xmm12, xmm0
movdqa xmm8, xmmword [rsp + 0x20]
movdqa xmm1, xmmword [rsp + 0x40]
paddd xmm1, xmm13
movdqa xmmword [rsp + 0x40], xmm1
pxor xmm6, xmm9
pxor xmm2, xmm10
pxor xmm14, xmm12
pxor xmm4, xmm1
pshuflw xmm1, xmm6, 0xb1
movdqa xmm6, xmm2
pshufhw xmm2, xmm1, 0xb1
pshuflw xmm1, xmm6, 0xb1
movdqa xmm6, xmm4
pshufhw xmm4, xmm1, 0xb1
pshuflw xmm1, xmm14, 0xb1
pshufhw xmm1, xmm1, 0xb1
pshuflw xmm6, xmm6, 0xb1
pshufhw xmm6, xmm6, 0xb1
paddd xmm8, xmm2
paddd xmm11, xmm4
movdqa xmmword [rsp + 0x30], xmm11
paddd xmm15, xmm1
movdqa xmm14, xmm7
paddd xmm14, xmm6
movdqa xmmword [rsp + 0x20], xmm14
pxor xmm3, xmm8
movdqa xmm7, xmm3
psrld xmm7, 0x14
pslld xmm3, 0xc
por xmm3, xmm7
pxor xmm5, xmm11
movdqa xmm7, xmm5
psrld xmm7, 0x14
pslld xmm5, 0xc
por xmm5, xmm7
pxor xmm0, xmm15
movdqa xmm7, xmm0
psrld xmm7, 0x14
pslld xmm0, 0xc
por xmm0, xmm7
pxor xmm13, xmm14
movdqa xmm7, xmm13
psrld xmm7, 0x14
pslld xmm13, 0xc
por xmm13, xmm7
paddd xmm9, xmm3
paddd xmm10, xmm5
paddd xmm12, xmm0
movdqa xmm11, xmmword [rsp + 0x40]
paddd xmm11, xmm13
pxor xmm2, xmm9
movdqa xmm7, xmm2
psrld xmm7, 0x18
pslld xmm2, 8
por xmm2, xmm7
pxor xmm4, xmm10
movdqa xmm7, xmm4
psrld xmm7, 0x18
pslld xmm4, 8
por xmm4, xmm7
pxor xmm1, xmm12
movdqa xmm7, xmm1
psrld xmm7, 0x18
pslld xmm1, 8
por xmm1, xmm7
pxor xmm6, xmm11
movdqa xmm7, xmm6
psrld xmm7, 0x18
pslld xmm6, 8
por xmm6, xmm7
paddd xmm8, xmm2
movdqa xmm14, xmmword [rsp + 0x30]
paddd xmm14, xmm4
paddd xmm15, xmm1
movdqa xmmword [rsp + 0x30], xmm15
movdqa xmm7, xmmword [rsp + 0x20]
paddd xmm7, xmm6
movdqa xmmword [rsp + 0x20], xmm7
pxor xmm3, xmm8
pxor xmm5, xmm14
pxor xmm0, xmm15
pxor xmm13, xmm7
movdqa xmm7, xmm3
psrld xmm7, 0x19
pslld xmm3, 7
por xmm3, xmm7
movdqa xmm7, xmm5
psrld xmm7, 0x19
pslld xmm5, 7
por xmm5, xmm7
movdqa xmm7, xmm0
psrld xmm7, 0x19
pslld xmm0, 7
por xmm0, xmm7
movdqa xmm7, xmm13
psrld xmm7, 0x19
pslld xmm13, 7
por xmm13, xmm7
pshufd xmm3, xmm3, 0x39
pshufd xmm5, xmm5, 0x39
pshufd xmm0, xmm0, 0x39
pshufd xmm15, xmm13, 0x39
pshufd xmm7, xmm8, 0x4e
movdqa xmmword [rsp + 0x40], xmm7
pshufd xmm13, xmm14, 0x4e
pshufd xmm14, xmmword [rsp + 0x30], 0x4e
pshufd xmm7, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm7
pshufd xmm2, xmm2, 0x93
pshufd xmm4, xmm4, 0x93
pshufd xmm1, xmm1, 0x93
pshufd xmm7, xmm6, 0x93
paddd xmm9, xmm3
paddd xmm10, xmm5
paddd xmm12, xmm0
paddd xmm11, xmm15
pshuflw xmm6, xmm9, 0xb1
pshufhw xmm8, xmm6, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm6, xmm2, 0xb1
pxor xmm6, xmm8
pshuflw xmm2, xmm10, 0xb1
pshufhw xmm8, xmm2, 0xb1
pshuflw xmm2, xmm4, 0xb1
pshufhw xmm2, xmm2, 0xb1
pxor xmm2, xmm8
pshuflw xmm4, xmm12, 0xb1
pshufhw xmm8, xmm4, 0xb1
pshuflw xmm1, xmm1, 0xb1
pshufhw xmm4, xmm1, 0xb1
pxor xmm4, xmm8
pshuflw xmm1, xmm11, 0xb1
pshufhw xmm8, xmm1, 0xb1
pshuflw xmm1, xmm7, 0xb1
pshufhw xmm1, xmm1, 0xb1
pxor xmm1, xmm8
movdqa xmm8, xmmword [rsp + 0x40]
paddd xmm8, xmm6
paddd xmm13, xmm2
paddd xmm14, xmm4
movdqa xmm7, xmmword [rsp + 0x20]
paddd xmm7, xmm1
movdqa xmmword [rsp + 0x20], xmm7
pxor xmm3, xmm8
pxor xmm5, xmm13
pxor xmm0, xmm14
pxor xmm15, xmm7
movdqa xmm7, xmm3
psrld xmm7, 0x14
pslld xmm3, 0xc
por xmm3, xmm7
movdqa xmm7, xmm5
psrld xmm7, 0x14
pslld xmm5, 0xc
por xmm5, xmm7
movdqa xmm7, xmm0
psrld xmm7, 0x14
pslld xmm0, 0xc
por xmm0, xmm7
movdqa xmm7, xmm15
psrld xmm7, 0x14
pslld xmm15, 0xc
por xmm15, xmm7
paddd xmm9, xmm3
paddd xmm10, xmm5
paddd xmm12, xmm0
paddd xmm11, xmm15
movdqa xmmword [rsp + 0x50], xmm9
pxor xmm6, xmm9
movdqa xmm7, xmm6
psrld xmm7, 0x18
pslld xmm6, 8
por xmm6, xmm7
movdqa xmmword [rsp + 0x60], xmm10
pxor xmm2, xmm10
movdqa xmm7, xmm2
psrld xmm7, 0x18
pslld xmm2, 8
por xmm2, xmm7
movdqa xmmword [rsp + 0x30], xmm12
pxor xmm4, xmm12
movdqa xmm7, xmm4
psrld xmm7, 0x18
pslld xmm4, 8
por xmm4, xmm7
movdqa xmm7, xmm11
movdqa xmmword [rsp + 0x40], xmm11
pxor xmm1, xmm11
movdqa xmm7, xmm1
psrld xmm7, 0x18
pslld xmm1, 8
por xmm1, xmm7
paddd xmm8, xmm6
paddd xmm13, xmm2
paddd xmm14, xmm4
movdqa xmm7, xmmword [rsp + 0x20]
paddd xmm7, xmm1
pxor xmm3, xmm8
pxor xmm5, xmm13
movdqa xmm11, xmm13
pxor xmm0, xmm14
movdqa xmm9, xmm14
pxor xmm15, xmm7
movdqa xmm10, xmm7
movdqa xmm7, xmm3
psrld xmm7, 0x19
pslld xmm3, 7
por xmm3, xmm7
movdqa xmm7, xmm5
psrld xmm7, 0x19
pslld xmm5, 7
por xmm5, xmm7
movdqa xmm7, xmm0
psrld xmm7, 0x19
pslld xmm0, 7
por xmm0, xmm7
movdqa xmm7, xmm15
psrld xmm7, 0x19
pslld xmm15, 7
por xmm15, xmm7
pshufd xmm3, xmm3, 0x93
pshufd xmm5, xmm5, 0x93
pshufd xmm0, xmm0, 0x93
pshufd xmm13, xmm15, 0x93
pshufd xmm7, xmm8, 0x4e
movdqa xmmword [rsp + 0x20], xmm7
pshufd xmm11, xmm11, 0x4e
pshufd xmm15, xmm14, 0x4e
pshufd xmm8, xmm10, 0x4e
pshufd xmm6, xmm6, 0x39
pshufd xmm2, xmm2, 0x39
pshufd xmm14, xmm4, 0x39
pshufd xmm4, xmm1, 0x39
jmp 0x1400c40df
add rax, 4
mov rcx, rax
shr rcx, 0x20
movd xmm1, ecx
por xmm1, xmmword [rsp + 0x80]
movdqa xmm7, xmm2
movdqa xmm2, xmm1
pslldq xmm2, 8
shufps xmm2, xmm1, 0xe8
movd xmm1, eax
por xmm1, xmm2
movaps xmm2, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xf0], xmm2
movaps xmm2, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x100], xmm2
movdqa xmm2, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x110], xmm2
movdqa xmmword [rsp + 0x120], xmm3
movdqa xmmword [rsp + 0x130], xmm5
movdqa xmmword [rsp + 0x140], xmm0
movdqa xmmword [rsp + 0x150], xmm13
movaps xmm0, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x160], xmm0
movdqa xmmword [rsp + 0x170], xmm11
movdqa xmmword [rsp + 0x180], xmm15
movdqa xmmword [rsp + 0x190], xmm8
movaps xmmword [rsp + 0x1a0], xmm6
movdqa xmmword [rsp + 0x1b0], xmm7
movdqa xmmword [rsp + 0x1c0], xmm14
movdqa xmmword [rsp + 0x1d0], xmm4
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x200], xmm0
movaps xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x210], xmm0
movdqa xmmword [rdi + 0x20], xmm1
xor eax, eax
movdqa xmm0, xmmword [str.expand_32_byte_kexpand_32_byte_kexpand_32_byte_k]
movdqa xmm5, xmmword [rsp + 0xd0]
movdqa xmm6, xmmword [rsp + 0xc0]
cmp rax, 0x40
je 0x1400c4745
movdqa xmm1, xmmword [rsp + rax + 0x1a0]
movdqa xmm2, xmmword [rsp + rax + 0xe0]
paddd xmm2, xmm0
movdqa xmm3, xmmword [rsp + rax + 0x120]
paddd xmm3, xmm5
movdqa xmm4, xmmword [rsp + rax + 0x160]
paddd xmm4, xmm6
paddd xmm1, xmmword [rsp + rax + 0x1e0]
movdqu xmmword [rsi + rax*4], xmm2
movdqu xmmword [rsi + rax*4 + 0x10], xmm3
movdqu xmmword [rsi + rax*4 + 0x20], xmm4
movdqu xmmword [rsi + rax*4 + 0x30], xmm1
add rax, 0x10
jmp 0x1400c46e9
movaps xmm6, xmmword [rsp + 0x220]
movaps xmm7, xmmword [rsp + 0x230]
movaps xmm8, xmmword [rsp + 0x240]
movaps xmm9, xmmword [rsp + 0x250]
movaps xmm10, xmmword [rsp + 0x260]
movaps xmm11, xmmword [rsp + 0x270]
movaps xmm12, xmmword [rsp + 0x280]
movaps xmm13, xmmword [rsp + 0x290]
movaps xmm14, xmmword [rsp + 0x2a0]
movaps xmm15, xmmword [rsp + 0x2b0]
add rsp, 0x2c8
pop rdi
pop rsi
ret