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

Disassembly:
sub rsp, 0xc8
vmovaps xmmword [rsp + 0xb0], xmm15
vmovaps xmmword [rsp + 0xa0], xmm14
vmovdqa xmmword [rsp + 0x90], xmm13
vmovaps xmmword [rsp + 0x80], xmm12
vmovaps xmmword [rsp + 0x70], xmm11
vmovdqa xmmword [rsp + 0x60], xmm10
vmovdqa xmmword [rsp + 0x50], xmm9
vmovaps xmmword [rsp + 0x40], xmm8
vmovaps xmmword [rsp + 0x30], xmm7
vmovaps xmmword [rsp + 0x20], xmm6
mov rax, qword [rcx + 0x20]
vmovdqa xmm1, xmmword [rcx + 0x20]
lea r9, [rax + 1]
vpinsrd xmm0, xmm1, r9d, 0
shr r9, 0x20
vpinsrd xmm4, xmm0, r9d, 1
vmovdqa xmm0, xmmword [rcx]
lea r9, [rax + 2]
vpinsrd xmm2, xmm1, r9d, 0
shr r9, 0x20
vpinsrd xmm6, xmm2, r9d, 1
vmovdqa xmm2, xmmword [rcx + 0x10]
add rax, 3
vpinsrd xmm3, xmm1, eax, 0
shr rax, 0x20
vpinsrd xmm8, xmm3, eax, 1
vmovdqu ymmword [rsp], ymm0
vperm2i128 ymm3, ymm0, ymmword [rcx], 2
vperm2i128 ymm5, ymm2, ymmword [rcx + 0x10], 2
vinserti128 ymm7, ymm1, xmm4, 1
vinserti128 ymm6, ymm6, xmm8, 1
test edx, edx
je 0x140028c67
vbroadcasti128 ymm8, xmmword [str.expand_32_byte_k]
vbroadcasti128 ymm9, xmmword [0x14010d7b0]
vmovdqa ymm10, ymmword [0x14010d780]
vmovdqa ymm4, ymm8
vmovdqa ymm11, ymm3
vmovdqa ymm12, ymm5
nop dword [rax]
vpaddd ymm8, ymm8, ymm11
vpaddd ymm4, ymm4, ymm3
vpxor ymm7, ymm8, ymm7
vpxor ymm6, ymm6, ymm4
vpshuflw ymm7, ymm7, 0xb1
vpshufhw ymm7, ymm7, 0xb1
vpshuflw ymm6, ymm6, 0xb1
vpshufhw ymm6, ymm6, 0xb1
vpaddd ymm12, ymm12, ymm7
vpaddd ymm5, ymm6, ymm5
vpxor ymm11, ymm12, ymm11
vpsrld ymm13, ymm11, 0x14
vpslld ymm11, ymm11, 0xc
vpor ymm11, ymm11, ymm13
vpxor ymm3, ymm5, ymm3
vpsrld ymm13, ymm3, 0x14
vpslld ymm3, ymm3, 0xc
vpor ymm3, ymm13, ymm3
vpaddd ymm8, ymm11, ymm8
vpaddd ymm4, ymm3, ymm4
vpshufb ymm13, ymm8, ymm9
vpshufb ymm7, ymm7, ymm9
vpxor ymm7, ymm13, ymm7
vpshufb ymm13, ymm4, ymm9
vpshufb ymm6, ymm6, ymm9
vpxor ymm6, ymm13, ymm6
vpaddd ymm12, ymm12, ymm7
vpaddd ymm5, ymm5, ymm6
vpxor ymm11, ymm12, ymm11
vpxor ymm3, ymm5, ymm3
vpsrld ymm13, ymm11, 0x19
vpslld ymm11, ymm11, 7
vpor ymm11, ymm11, ymm13
vpsrld ymm13, ymm3, 0x19
vpslld ymm3, ymm3, 7
vpor ymm3, ymm13, ymm3
vpshufd ymm11, ymm11, 0x39
vpshufd ymm3, ymm3, 0x39
vpshufd ymm12, ymm12, 0x4e
vpshufd ymm5, ymm5, 0x4e
vpaddd ymm8, ymm11, ymm8
vpaddd ymm4, ymm3, ymm4
vpshuflw ymm13, ymm8, 0xb1
vpshufhw ymm13, ymm13, 0xb1
vpshufb ymm7, ymm7, ymm10
vpxor ymm7, ymm13, ymm7
vpshuflw ymm13, ymm4, 0xb1
vpshufhw ymm13, ymm13, 0xb1
vpshufb ymm6, ymm6, ymm10
vpxor ymm6, ymm13, ymm6
vpaddd ymm12, ymm12, ymm7
vpaddd ymm5, ymm5, ymm6
vpxor ymm11, ymm12, ymm11
vpsrld ymm13, ymm11, 0x14
vpslld ymm11, ymm11, 0xc
vpor ymm11, ymm11, ymm13
vpxor ymm3, ymm5, ymm3
vpsrld ymm13, ymm3, 0x14
vpslld ymm3, ymm3, 0xc
vpor ymm3, ymm13, ymm3
vpaddd ymm8, ymm11, ymm8
vpaddd ymm4, ymm3, ymm4
vpxor ymm7, ymm8, ymm7
vpshufb ymm7, ymm7, ymm9
vpxor ymm6, ymm6, ymm4
vpshufb ymm6, ymm6, ymm9
vpaddd ymm12, ymm12, ymm7
vpaddd ymm5, ymm5, ymm6
vpxor ymm11, ymm12, ymm11
vpxor ymm3, ymm5, ymm3
vpsrld ymm13, ymm11, 0x19
vpslld ymm11, ymm11, 7
vpor ymm11, ymm11, ymm13
vpsrld ymm13, ymm3, 0x19
vpslld ymm3, ymm3, 7
vpor ymm3, ymm13, ymm3
vpshufd ymm7, ymm7, 0x39
vpshufd ymm6, ymm6, 0x39
vpshufd ymm11, ymm11, 0x93
vpshufd ymm3, ymm3, 0x93
vpshufd ymm12, ymm12, 0x4e
vpshufd ymm5, ymm5, 0x4e
dec edx
jne 0x140028ad0
jmp 0x140028c7c
vbroadcasti128 ymm4, xmmword [str.expand_32_byte_k]
vmovdqa ymm12, ymm5
vmovdqa ymm11, ymm3
vmovdqa ymm8, ymm4
vmovq rax, xmm1
lea rdx, [rax + 1]
vpinsrd xmm9, xmm1, edx, 0
shr rdx, 0x20
vpinsrd xmm10, xmm9, edx, 1
lea rdx, [rax + 2]
vpinsrd xmm9, xmm1, edx, 0
shr rdx, 0x20
vpinsrd xmm9, xmm9, edx, 1
lea rdx, [rax + 4]
vpinsrd xmm13, xmm1, edx, 0
shr rdx, 0x20
vpinsrd xmm13, xmm13, edx, 1
vextracti128 xmm14, ymm8, 1
vextracti128 xmm15, ymm7, 1
vpaddd xmm15, xmm10, xmm15
vextracti128 xmm0, ymm11, 1
vmovdqa xmmword [rcx + 0x20], xmm13
vmovdqa xmm10, xmmword [str.expand_32_byte_k]
vpaddd xmm8, xmm8, xmm10
vmovdqu xmmword [r8], xmm8
vextracti128 xmm8, ymm12, 1
vmovdqu ymm13, ymmword [rsp]
vpaddd xmm11, xmm11, xmm13
vmovdqu xmmword [r8 + 0x10], xmm11
vpaddd xmm11, xmm12, xmm2
vmovdqu xmmword [r8 + 0x20], xmm11
vpaddd xmm7, xmm7, xmm1
vmovdqu xmmword [r8 + 0x30], xmm7
vpaddd xmm7, xmm14, xmm10
vmovdqu xmmword [r8 + 0x40], xmm7
vpaddd xmm0, xmm13, xmm0
vmovdqu xmmword [r8 + 0x50], xmm0
vpaddd xmm0, xmm8, xmm2
vmovdqu xmmword [r8 + 0x60], xmm0
vmovdqu xmmword [r8 + 0x70], xmm15
vpaddd xmm0, xmm10, xmm4
vmovdqu xmmword [r8 + 0x80], xmm0
vpaddd xmm0, xmm13, xmm3
vmovdqu xmmword [r8 + 0x90], xmm0
vpaddd xmm0, xmm5, xmm2
vmovdqu xmmword [r8 + 0xa0], xmm0
vpaddd xmm0, xmm9, xmm6
vmovdqu xmmword [r8 + 0xb0], xmm0
vextracti128 xmm0, ymm6, 1
vextracti128 xmm5, ymm5, 1
vextracti128 xmm3, ymm3, 1
add rax, 3
vpinsrd xmm1, xmm1, eax, 0
vextracti128 xmm4, ymm4, 1
shr rax, 0x20
vpinsrd xmm1, xmm1, eax, 1
vpaddd xmm0, xmm1, xmm0
vpaddd xmm1, xmm10, xmm4
vmovdqu xmmword [r8 + 0xc0], xmm1
vpaddd xmm1, xmm13, xmm3
vmovdqu xmmword [r8 + 0xd0], xmm1
vpaddd xmm1, xmm5, xmm2
vmovdqu xmmword [r8 + 0xe0], xmm1
vmovdqu xmmword [r8 + 0xf0], xmm0
vzeroupper
vmovaps xmm6, xmmword [rsp + 0x20]
vmovaps xmm7, xmmword [rsp + 0x30]
vmovaps xmm8, xmmword [rsp + 0x40]
vmovaps xmm9, xmmword [rsp + 0x50]
vmovaps xmm10, xmmword [rsp + 0x60]
vmovaps xmm11, xmmword [rsp + 0x70]
vmovaps xmm12, xmmword [rsp + 0x80]
vmovaps xmm13, xmmword [rsp + 0x90]
vmovaps xmm14, xmmword [rsp + 0xa0]
vmovaps xmm15, xmmword [rsp + 0xb0]
add rsp, 0xc8
ret