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

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xa0
vmovaps xmmword [rsp + 0x90], xmm15
vmovaps xmmword [rsp + 0x80], xmm14
vmovdqa xmmword [rsp + 0x70], xmm13
vmovdqa xmmword [rsp + 0x60], xmm12
vmovdqa xmmword [rsp + 0x50], xmm11
vmovaps xmmword [rsp + 0x40], xmm10
vmovaps xmmword [rsp + 0x30], xmm9
vmovaps xmmword [rsp + 0x20], xmm8
vmovaps xmmword [rsp + 0x10], xmm7
vmovaps xmmword [rsp], xmm6
mov rax, qword [rcx + 0x20]
vmovdqa xmm0, xmmword [rcx + 0x20]
lea r9, [rax + 1]
mov r10, r9
shr r10, 0x20
vpinsrd xmm1, xmm0, r9d, 0
vpinsrd xmm3, xmm1, r10d, 1
lea r11, [rax + 2]
mov rsi, r11
shr rsi, 0x20
vpinsrd xmm1, xmm0, r11d, 0
vpinsrd xmm4, xmm1, esi, 1
lea rdi, [rax + 3]
mov rbx, rdi
shr rbx, 0x20
vpinsrd xmm1, xmm0, edi, 0
vpinsrd xmm5, xmm1, ebx, 1
vbroadcasti128 ymm1, xmmword [rcx]
vbroadcasti128 ymm2, xmmword [rcx + 0x10]
vinserti128 ymm6, ymm0, xmm3, 1
vinserti128 ymm3, ymm4, xmm5, 1
test edx, edx
je 0x14002cc17
vbroadcasti128 ymm4, xmmword [0x1400f8f40]
vbroadcasti128 ymm11, xmmword [0x1400f8f50]
vmovdqa ymm12, ymmword [0x1400f8f20]
vmovdqa ymm8, ymm4
vmovdqa ymm7, ymm2
vmovdqa ymm10, ymm2
vmovdqa ymm5, ymm1
vmovdqa ymm9, ymm1
nop word cs:[rax + rax]
vpaddd ymm8, ymm9, ymm8
vpaddd ymm4, ymm5, ymm4
vpxor ymm6, ymm8, ymm6
vpxor ymm3, ymm3, ymm4
vpshuflw ymm6, ymm6, 0xb1
vpshufhw ymm6, ymm6, 0xb1
vpshuflw ymm3, ymm3, 0xb1
vpshufhw ymm3, ymm3, 0xb1
vpaddd ymm10, ymm10, ymm6
vpaddd ymm7, ymm7, ymm3
vpxor ymm9, ymm10, ymm9
vpsrld ymm13, ymm9, 0x14
vpslld ymm9, ymm9, 0xc
vpor ymm9, ymm9, ymm13
vpxor ymm5, ymm7, ymm5
vpsrld ymm13, ymm5, 0x14
vpslld ymm5, ymm5, 0xc
vpor ymm5, ymm13, ymm5
vpaddd ymm8, ymm9, ymm8
vpaddd ymm4, ymm5, ymm4
vpshufb ymm13, ymm8, ymm11
vpshufb ymm6, ymm6, ymm11
vpxor ymm6, ymm13, ymm6
vpshufb ymm13, ymm4, ymm11
vpshufb ymm3, ymm3, ymm11
vpxor ymm3, ymm13, ymm3
vpaddd ymm10, ymm10, ymm6
vpaddd ymm7, ymm7, ymm3
vpxor ymm9, ymm10, ymm9
vpxor ymm5, ymm7, ymm5
vpsrld ymm13, ymm9, 0x19
vpslld ymm9, ymm9, 7
vpor ymm9, ymm9, ymm13
vpsrld ymm13, ymm5, 0x19
vpslld ymm5, ymm5, 7
vpor ymm5, ymm13, ymm5
vpshufd ymm9, ymm9, 0x39
vpshufd ymm5, ymm5, 0x39
vpshufd ymm10, ymm10, 0x4e
vpshufd ymm7, ymm7, 0x4e
vpaddd ymm8, ymm9, ymm8
vpaddd ymm4, ymm5, ymm4
vpshuflw ymm13, ymm8, 0xb1
vpshufhw ymm13, ymm13, 0xb1
vpshufb ymm6, ymm6, ymm12
vpxor ymm6, ymm13, ymm6
vpshuflw ymm13, ymm4, 0xb1
vpshufhw ymm13, ymm13, 0xb1
vpshufb ymm3, ymm3, ymm12
vpxor ymm3, ymm13, ymm3
vpaddd ymm10, ymm10, ymm6
vpaddd ymm7, ymm7, ymm3
vpxor ymm9, ymm10, ymm9
vpxor ymm5, ymm7, ymm5
vpsrld ymm13, ymm9, 0x14
vpslld ymm9, ymm9, 0xc
vpor ymm9, ymm9, ymm13
vpsrld ymm13, ymm5, 0x14
vpslld ymm5, ymm5, 0xc
vpor ymm5, ymm13, ymm5
vpaddd ymm8, ymm9, ymm8
vpaddd ymm4, ymm5, ymm4
vpxor ymm6, ymm8, ymm6
vpshufb ymm6, ymm6, ymm11
vpxor ymm3, ymm3, ymm4
vpshufb ymm3, ymm3, ymm11
vpaddd ymm10, ymm10, ymm6
vpaddd ymm7, ymm7, ymm3
vpxor ymm9, ymm10, ymm9
vpxor ymm5, ymm7, ymm5
vpsrld ymm13, ymm9, 0x19
vpslld ymm9, ymm9, 7
vpor ymm9, ymm9, ymm13
vpsrld ymm13, ymm5, 0x19
vpslld ymm5, ymm5, 7
vpor ymm5, ymm13, ymm5
vpshufd ymm9, ymm9, 0x93
vpshufd ymm5, ymm5, 0x93
vpshufd ymm10, ymm10, 0x4e
vpshufd ymm7, ymm7, 0x4e
vpshufd ymm6, ymm6, 0x39
vpshufd ymm3, ymm3, 0x39
dec edx
jne 0x14002ca80
jmp 0x14002cc34
vbroadcasti128 ymm8, xmmword [0x1400f8f40]
vmovdqa ymm9, ymm1
vmovdqa ymm5, ymm1
vmovdqa ymm10, ymm2
vmovdqa ymm7, ymm2
vmovdqa ymm4, ymm8
vpinsrd xmm11, xmm0, r9d, 0
vpinsrd xmm12, xmm11, r10d, 1
vpinsrd xmm11, xmm0, r11d, 0
vpinsrd xmm11, xmm11, esi, 1
vpinsrd xmm13, xmm0, edi, 0
vpinsrd xmm13, xmm13, ebx, 1
add rax, 4
mov rdx, rax
shr rdx, 0x20
vpinsrd xmm14, xmm0, eax, 0
vpinsrd xmm14, xmm14, edx, 1
vextracti128 xmm15, ymm6, 1
vpaddd xmm12, xmm12, xmm15
vextracti128 xmm15, ymm3, 1
vpaddd xmm13, xmm13, xmm15
vextracti128 xmm15, ymm8, 1
vmovdqa xmmword [rcx + 0x20], xmm14
vmovdqa xmm14, xmmword [0x1400f8f40]
vpaddd xmm8, xmm8, xmm14
vmovdqu xmmword [r8], xmm8
vpaddd xmm8, xmm9, xmm1
vmovdqu xmmword [r8 + 0x10], xmm8
vpaddd xmm8, xmm10, xmm2
vmovdqu xmmword [r8 + 0x20], xmm8
vextracti128 xmm8, ymm4, 1
vextracti128 xmm9, ymm9, 1
vpaddd xmm0, xmm6, xmm0
vextracti128 xmm6, ymm5, 1
vextracti128 xmm10, ymm10, 1
vmovdqu xmmword [r8 + 0x30], xmm0
vextracti128 xmm0, ymm7, 1
vpaddd xmm15, xmm15, xmm14
vmovdqu xmmword [r8 + 0x40], xmm15
vpaddd xmm9, xmm9, xmm1
vmovdqu xmmword [r8 + 0x50], xmm9
vpaddd xmm9, xmm10, xmm2
vmovdqu xmmword [r8 + 0x60], xmm9
vmovdqu xmmword [r8 + 0x70], xmm12
vpaddd xmm4, xmm14, xmm4
vmovdqu xmmword [r8 + 0x80], xmm4
vpaddd xmm4, xmm5, xmm1
vmovdqu xmmword [r8 + 0x90], xmm4
vpaddd xmm4, xmm7, xmm2
vmovdqu xmmword [r8 + 0xa0], xmm4
vpaddd xmm3, xmm11, xmm3
vmovdqu xmmword [r8 + 0xb0], xmm3
vpaddd xmm3, xmm8, xmm14
vmovdqu xmmword [r8 + 0xc0], xmm3
vpaddd xmm1, xmm6, xmm1
vmovdqu xmmword [r8 + 0xd0], xmm1
vpaddd xmm0, xmm0, xmm2
vmovdqu xmmword [r8 + 0xe0], xmm0
vmovdqu xmmword [r8 + 0xf0], xmm13
vzeroupper
vmovaps xmm6, xmmword [rsp]
vmovaps xmm7, xmmword [rsp + 0x10]
vmovaps xmm8, xmmword [rsp + 0x20]
vmovaps xmm9, xmmword [rsp + 0x30]
vmovaps xmm10, xmmword [rsp + 0x40]
vmovaps xmm11, xmmword [rsp + 0x50]
vmovaps xmm12, xmmword [rsp + 0x60]
vmovaps xmm13, xmmword [rsp + 0x70]
vmovaps xmm14, xmmword [rsp + 0x80]
vmovaps xmm15, xmmword [rsp + 0x90]
add rsp, 0xa0
pop rbx
pop rdi
pop rsi
ret