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

Disassembly:
sub rsp, 0xa8
vmovaps xmmword [rsp + 0x90], xmm15
vmovdqa xmmword [rsp + 0x80], xmm14
vmovaps xmmword [rsp + 0x70], xmm13
vmovaps xmmword [rsp + 0x60], xmm12
vmovaps 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 r8, [rax + 1]
vpinsrd xmm1, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm3, xmm1, r8d, 1
lea r8, [rax + 2]
vpinsrd xmm1, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm4, xmm1, r8d, 1
vmovdqa xmm1, xmmword [rcx]
add rax, 3
vpinsrd xmm5, xmm0, eax, 0
vmovdqa xmm2, xmmword [rcx + 0x10]
shr rax, 0x20
vpinsrd xmm5, xmm5, eax, 1
vperm2i128 ymm10, ymm1, ymmword [rcx], 2
vperm2i128 ymm12, ymm2, ymmword [rcx + 0x10], 2
vinserti128 ymm13, ymm0, xmm3, 1
vinserti128 ymm7, ymm4, xmm5, 1
vbroadcasti128 ymm9, xmmword [str.expand_32_byte_k]
mov eax, 6
vmovdqa ymm4, ymmword [0x1400303e0]
vbroadcasti128 ymm5, xmmword [0x140030430]
vmovdqa ymm6, ymmword [0x140030400]
vmovdqa ymm3, ymm9
vmovdqa ymm8, ymm10
vmovdqa ymm11, ymm12
nop word cs:[rax + rax]
vpaddd ymm9, ymm9, ymm10
vpaddd ymm3, ymm8, ymm3
vpxor ymm13, ymm13, ymm9
vpxor ymm7, ymm7, ymm3
vpshufb ymm13, ymm13, ymm4
vpshufb ymm7, ymm7, ymm4
vpaddd ymm12, ymm13, ymm12
vpaddd ymm11, ymm11, ymm7
vpxor ymm10, ymm12, ymm10
vpsrld ymm14, ymm10, 0x14
vpslld ymm10, ymm10, 0xc
vpor ymm10, ymm10, ymm14
vpxor ymm8, ymm11, ymm8
vpsrld ymm14, ymm8, 0x14
vpslld ymm8, ymm8, 0xc
vpor ymm8, ymm8, ymm14
vpaddd ymm9, ymm10, ymm9
vpaddd ymm3, ymm8, ymm3
vpxor ymm13, ymm13, ymm9
vpshufb ymm13, ymm13, ymm5
vpxor ymm7, ymm7, ymm3
vpshufb ymm7, ymm7, ymm5
vpaddd ymm12, ymm12, ymm13
vpaddd ymm11, ymm11, ymm7
vpxor ymm10, ymm12, ymm10
vpxor ymm8, ymm11, ymm8
vpsrld ymm14, ymm10, 0x19
vpslld ymm10, ymm10, 7
vpor ymm10, ymm10, ymm14
vpsrld ymm14, ymm8, 0x19
vpslld ymm8, ymm8, 7
vpor ymm8, ymm8, ymm14
vpshufd ymm10, ymm10, 0x39
vpshufd ymm8, ymm8, 0x39
vpshufd ymm12, ymm12, 0x4e
vpshufd ymm11, ymm11, 0x4e
vpaddd ymm9, ymm10, ymm9
vpaddd ymm3, ymm8, ymm3
vpshufb ymm14, ymm9, ymm4
vpshufb ymm13, ymm13, ymm6
vpxor ymm13, ymm14, ymm13
vpshufb ymm14, ymm3, ymm4
vpshufb ymm7, ymm7, ymm6
vpxor ymm7, ymm14, ymm7
vpaddd ymm12, ymm12, ymm13
vpaddd ymm11, ymm11, ymm7
vpxor ymm10, ymm12, ymm10
vpsrld ymm14, ymm10, 0x14
vpslld ymm10, ymm10, 0xc
vpor ymm10, ymm10, ymm14
vpxor ymm8, ymm11, ymm8
vpsrld ymm14, ymm8, 0x14
vpslld ymm8, ymm8, 0xc
vpor ymm8, ymm8, ymm14
vpaddd ymm9, ymm10, ymm9
vpaddd ymm3, ymm8, ymm3
vpxor ymm13, ymm13, ymm9
vpshufb ymm13, ymm13, ymm5
vpxor ymm7, ymm7, ymm3
vpshufb ymm7, ymm7, ymm5
vpaddd ymm12, ymm12, ymm13
vpaddd ymm11, ymm11, ymm7
vpxor ymm10, ymm12, ymm10
vpxor ymm8, ymm11, ymm8
vpsrld ymm14, ymm10, 0x19
vpslld ymm10, ymm10, 7
vpor ymm10, ymm10, ymm14
vpsrld ymm14, ymm8, 0x19
vpslld ymm8, ymm8, 7
vpor ymm8, ymm8, ymm14
vpshufd ymm13, ymm13, 0x39
vpshufd ymm7, ymm7, 0x39
vpshufd ymm10, ymm10, 0x93
vpshufd ymm8, ymm8, 0x93
vpshufd ymm12, ymm12, 0x4e
vpshufd ymm11, ymm11, 0x4e
dec eax
jne 0x140010960
vmovq rax, xmm0
lea r8, [rax + 1]
vpinsrd xmm4, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm5, xmm4, r8d, 1
lea r8, [rax + 2]
vpinsrd xmm4, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm4, xmm4, r8d, 1
lea r8, [rax + 4]
vpinsrd xmm6, xmm0, r8d, 0
shr r8, 0x20
vpinsrd xmm6, xmm6, r8d, 1
vextracti128 xmm14, ymm9, 1
vmovdqa xmmword [rcx + 0x20], xmm6
vmovdqa xmm6, xmmword [str.expand_32_byte_k]
vpaddd xmm9, xmm9, xmm6
vmovdqu xmmword [rdx], xmm9
vextracti128 xmm9, ymm10, 1
vpaddd xmm10, xmm10, xmm1
vmovdqu xmmword [rdx + 0x10], xmm10
vextracti128 xmm10, ymm12, 1
vpaddd xmm12, xmm12, xmm2
vmovdqu xmmword [rdx + 0x20], xmm12
vextracti128 xmm12, ymm13, 1
vpaddd xmm13, xmm13, xmm0
vmovdqu xmmword [rdx + 0x30], xmm13
vpaddd xmm5, xmm12, xmm5
vpaddd xmm12, xmm14, xmm6
vmovdqu xmmword [rdx + 0x40], xmm12
vpaddd xmm9, xmm9, xmm1
vmovdqu xmmword [rdx + 0x50], xmm9
vpaddd xmm9, xmm10, xmm2
vmovdqu xmmword [rdx + 0x60], xmm9
vmovdqu xmmword [rdx + 0x70], xmm5
vpaddd xmm5, xmm3, xmm6
vmovdqu xmmword [rdx + 0x80], xmm5
vpaddd xmm5, xmm8, xmm1
vmovdqu xmmword [rdx + 0x90], xmm5
vpaddd xmm5, xmm11, xmm2
vmovdqu xmmword [rdx + 0xa0], xmm5
vpaddd xmm4, xmm4, xmm7
vmovdqu xmmword [rdx + 0xb0], xmm4
vextracti128 xmm4, ymm7, 1
vextracti128 xmm5, ymm11, 1
vextracti128 xmm7, ymm8, 1
add rax, 3
vpinsrd xmm0, xmm0, eax, 0
vextracti128 xmm3, ymm3, 1
shr rax, 0x20
vpinsrd xmm0, xmm0, eax, 1
vpaddd xmm0, xmm0, xmm4
vpaddd xmm3, xmm3, xmm6
vmovdqu xmmword [rdx + 0xc0], xmm3
vpaddd xmm1, xmm7, xmm1
vmovdqu xmmword [rdx + 0xd0], xmm1
vpaddd xmm1, xmm5, xmm2
vmovdqu xmmword [rdx + 0xe0], xmm1
vmovdqu xmmword [rdx + 0xf0], xmm0
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, 0xa8
ret