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

Disassembly:
sub rsp, 0x218
vmovaps xmmword [rsp + 0x200], xmm15
vmovaps xmmword [rsp + 0x1f0], xmm14
vmovaps xmmword [rsp + 0x1e0], xmm13
vmovaps xmmword [rsp + 0x1d0], xmm12
vmovdqa xmmword [rsp + 0x1c0], xmm11
vmovaps xmmword [rsp + 0x1b0], xmm10
vmovaps xmmword [rsp + 0x1a0], xmm9
vmovaps xmmword [rsp + 0x190], xmm8
vmovaps xmmword [rsp + 0x180], xmm7
vmovaps xmmword [rsp + 0x170], xmm6
mov rax, rcx
mov r8, qword [rdx + 0x28]
mov rcx, qword [rdx + 0x20]
mov r9, r8
shld r9, rcx, 0x3c
mov r10, qword [rdx + 0x30]
shld r8, rcx, 0x1c
vmovq xmm0, r8
vmovq xmm1, r9
vpunpckldq xmm0, xmm1, xmm0
vpinsrd xmm1, xmm0, r10d, 2
shr r10, 0x20
vpinsrd xmm4, xmm1, r10d, 3
vmovq r8, xmm0
lea r9, [r8 + 1]
vpinsrd xmm0, xmm4, r9d, 0
shr r9, 0x20
vpinsrd xmm1, xmm0, r9d, 1
vmovdqu ymm2, ymmword [rdx]
lea r9, [r8 + 2]
vpinsrd xmm0, xmm4, r9d, 0
shr r9, 0x20
vpinsrd xmm0, xmm0, r9d, 1
vmovups xmm3, xmmword [rdx]
vmovaps xmmword [rsp + 0x80], xmm3
lea r9, [r8 + 3]
vpinsrd xmm3, xmm4, r9d, 0
shr r9, 0x20
vpinsrd xmm5, xmm3, r9d, 1
vmovups xmm3, xmmword [rdx + 0x10]
vmovaps xmmword [rsp + 0x70], xmm3
vpermq ymm10, ymm2, 0x44
vpermq ymm8, ymm2, 0xee
vmovdqu ymmword [rsp + 0x150], ymm4
vinserti128 ymm6, ymm4, xmm1, 1
vmovdqa xmmword [rsp + 0x60], xmm5
vinserti128 ymm7, ymm0, xmm5, 1
vbroadcasti128 ymm5, xmmword [0x14010d620]
mov edx, 0xa
vbroadcasti128 ymm2, xmmword [0x14010d630]
vmovdqa ymm3, ymmword [0x14010d600]
vmovdqa ymm4, ymm5
vmovdqa ymm12, ymm10
vmovdqa ymm9, ymm8
nop dword [rax]
vpaddd ymm5, ymm10, ymm5
vpaddd ymm4, ymm12, ymm4
vpxor ymm6, ymm6, ymm5
vpxor ymm7, ymm7, ymm4
vpshuflw ymm6, ymm6, 0xb1
vpshufhw ymm6, ymm6, 0xb1
vpshuflw ymm7, ymm7, 0xb1
vpshufhw ymm7, ymm7, 0xb1
vpaddd ymm8, ymm8, ymm6
vpaddd ymm9, ymm9, ymm7
vpxor ymm10, ymm8, ymm10
vpsrld ymm11, ymm10, 0x14
vpslld ymm10, ymm10, 0xc
vpor ymm10, ymm10, ymm11
vpxor ymm11, ymm9, ymm12
vpsrld ymm12, ymm11, 0x14
vpslld ymm11, ymm11, 0xc
vpor ymm11, ymm11, ymm12
vpaddd ymm5, ymm10, ymm5
vpaddd ymm4, ymm11, ymm4
vpshufb ymm12, ymm5, ymm2
vpshufb ymm6, ymm6, ymm2
vpxor ymm6, ymm12, ymm6
vpshufb ymm12, ymm4, ymm2
vpshufb ymm7, ymm7, ymm2
vpxor ymm7, ymm12, ymm7
vpaddd ymm8, ymm8, ymm6
vpaddd ymm9, ymm9, ymm7
vpxor ymm10, ymm8, ymm10
vpxor ymm11, ymm9, ymm11
vpsrld ymm12, ymm10, 0x19
vpslld ymm10, ymm10, 7
vpor ymm10, ymm10, ymm12
vpsrld ymm12, ymm11, 0x19
vpslld ymm11, ymm11, 7
vpor ymm11, ymm11, ymm12
vpshufd ymm10, ymm10, 0x39
vpshufd ymm11, ymm11, 0x39
vpshufd ymm8, ymm8, 0x4e
vpshufd ymm9, ymm9, 0x4e
vpaddd ymm5, ymm10, ymm5
vpaddd ymm4, ymm11, ymm4
vpshuflw ymm12, ymm5, 0xb1
vpshufhw ymm12, ymm12, 0xb1
vpshufb ymm6, ymm6, ymm3
vpxor ymm6, ymm12, ymm6
vpshuflw ymm12, ymm4, 0xb1
vpshufhw ymm12, ymm12, 0xb1
vpshufb ymm7, ymm7, ymm3
vpxor ymm7, ymm12, ymm7
vpaddd ymm8, ymm8, ymm6
vpaddd ymm9, ymm9, ymm7
vpxor ymm10, ymm8, ymm10
vpsrld ymm12, ymm10, 0x14
vpslld ymm10, ymm10, 0xc
vpor ymm10, ymm10, ymm12
vpxor ymm11, ymm9, ymm11
vpsrld ymm12, ymm11, 0x14
vpslld ymm11, ymm11, 0xc
vpor ymm11, ymm11, ymm12
vpaddd ymm5, ymm10, ymm5
vpaddd ymm4, ymm11, ymm4
vpxor ymm6, ymm6, ymm5
vpshufb ymm6, ymm6, ymm2
vpxor ymm7, ymm7, ymm4
vpshufb ymm7, ymm7, ymm2
vpaddd ymm8, ymm8, ymm6
vpaddd ymm9, ymm9, ymm7
vpxor ymm10, ymm8, ymm10
vpxor ymm11, ymm9, ymm11
vpsrld ymm12, ymm10, 0x19
vpslld ymm10, ymm10, 7
vpor ymm10, ymm10, ymm12
vpsrld ymm12, ymm11, 0x19
vpslld ymm11, ymm11, 7
vpor ymm11, ymm11, ymm12
vpshufd ymm6, ymm6, 0x39
vpshufd ymm7, ymm7, 0x39
vpshufd ymm10, ymm10, 0x93
vpshufd ymm12, ymm11, 0x93
vpshufd ymm8, ymm8, 0x4e
vpshufd ymm9, ymm9, 0x4e
dec edx
jne 0x140027970
vextracti128 xmm2, ymm5, 1
vextracti128 xmm3, ymm6, 1
vpaddd xmm1, xmm1, xmm3
vmovdqa xmmword [rsp + 0x50], xmm1
vmovdqa xmm1, xmmword [0x14010d620]
vpaddd xmm3, xmm5, xmm1
vmovdqa xmmword [rsp], xmm3
vpaddd xmm2, xmm2, xmm1
vmovdqa xmmword [rsp + 0x20], xmm2
vpaddd xmm2, xmm4, xmm1
vmovdqa xmmword [rsp + 0x40], xmm2
vextracti128 xmm2, ymm4, 1
vpaddd xmm1, xmm2, xmm1
vmovdqa xmmword [rsp + 0x30], xmm1
vpaddd xmm0, xmm0, xmm7
vmovdqa xmmword [rsp + 0x10], xmm0
vmovdqu ymmword [rsp + 0xb0], ymm10
vmovdqu ymmword [rsp + 0x130], ymm12
vmovdqu ymmword [rsp + 0xd0], ymm8
vmovdqu ymmword [rsp + 0xf0], ymm6
vmovdqu ymmword [rsp + 0x110], ymm9
vmovdqu ymmword [rsp + 0x90], ymm7
vzeroupper
vmovdqu ymm0, ymmword [rsp + 0x90]
vextracti128 xmm0, ymm0, 1
vpaddd xmm0, xmm0, xmmword [rsp + 0x60]
vmovaps xmm1, xmmword [rsp]
vmovaps xmmword [rax], xmm1
vmovdqa xmm3, xmmword [rsp + 0x80]
vmovdqu ymm6, ymmword [rsp + 0xb0]
vpaddd xmm1, xmm6, xmm3
vmovdqa xmmword [rax + 0x10], xmm1
vmovdqa xmm4, xmmword [rsp + 0x70]
vmovdqu ymm5, ymmword [rsp + 0xd0]
vpaddd xmm1, xmm5, xmm4
vmovdqa xmmword [rax + 0x20], xmm1
vmovdqu ymm2, ymmword [rsp + 0x150]
vpaddd xmm1, xmm2, xmmword [rsp + 0xf0]
vmovdqa xmmword [rax + 0x30], xmm1
vmovaps xmm1, xmmword [rsp + 0x20]
vmovaps xmmword [rax + 0x40], xmm1
vextracti128 xmm1, ymm6, 1
vpaddd xmm1, xmm1, xmm3
vmovdqa xmmword [rax + 0x50], xmm1
vextracti128 xmm1, ymm5, 1
vpaddd xmm1, xmm1, xmm4
vmovdqa xmmword [rax + 0x60], xmm1
vmovaps xmm1, xmmword [rsp + 0x50]
vmovaps xmmword [rax + 0x70], xmm1
vmovaps xmm1, xmmword [rsp + 0x40]
vmovaps xmmword [rax + 0x80], xmm1
vmovdqu ymm6, ymmword [rsp + 0x130]
vpaddd xmm1, xmm6, xmm3
vmovdqa xmmword [rax + 0x90], xmm1
vmovdqu ymm5, ymmword [rsp + 0x110]
vpaddd xmm1, xmm5, xmm4
vmovdqa xmmword [rax + 0xa0], xmm1
vmovaps xmm1, xmmword [rsp + 0x10]
vmovaps xmmword [rax + 0xb0], xmm1
vmovaps xmm1, xmmword [rsp + 0x30]
vmovaps xmmword [rax + 0xc0], xmm1
vextracti128 xmm1, ymm6, 1
vpaddd xmm1, xmm1, xmm3
vmovdqa xmmword [rax + 0xd0], xmm1
vextracti128 xmm1, ymm5, 1
vpaddd xmm1, xmm1, xmm4
vmovdqa xmmword [rax + 0xe0], xmm1
vmovdqa xmmword [rax + 0xf0], xmm0
and ecx, 0xf
mov qword [rax + 0x100], rcx
vmovdqa xmmword [rax + 0x110], xmm3
vmovdqa xmmword [rax + 0x120], xmm4
add r8, 4
mov rcx, r8
shr rcx, 0x20
vpinsrd xmm0, xmm2, r8d, 0
vpinsrd xmm0, xmm0, ecx, 1
vmovdqa xmmword [rax + 0x130], xmm0
vmovaps xmm6, xmmword [rsp + 0x170]
vmovaps xmm7, xmmword [rsp + 0x180]
vmovaps xmm8, xmmword [rsp + 0x190]
vmovaps xmm9, xmmword [rsp + 0x1a0]
vmovaps xmm10, xmmword [rsp + 0x1b0]
vmovaps xmm11, xmmword [rsp + 0x1c0]
vmovaps xmm12, xmmword [rsp + 0x1d0]
vmovaps xmm13, xmmword [rsp + 0x1e0]
vmovaps xmm14, xmmword [rsp + 0x1f0]
vmovaps xmm15, xmmword [rsp + 0x200]
add rsp, 0x218
vzeroupper
ret