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

Disassembly:
sub rsp, 0x128
vmovaps xmmword [rsp + 0x110], xmm15
vmovdqa xmmword [rsp + 0x100], xmm14
vmovaps xmmword [rsp + 0xf0], xmm13
vmovaps xmmword [rsp + 0xe0], xmm12
vmovaps xmmword [rsp + 0xd0], xmm11
vmovaps xmmword [rsp + 0xc0], xmm10
vmovaps xmmword [rsp + 0xb0], xmm9
vmovdqa xmmword [rsp + 0xa0], xmm8
vmovaps xmmword [rsp + 0x90], xmm7
vmovaps xmmword [rsp + 0x80], xmm6
mov rax, qword [rcx + 0x20]
vmovdqa xmm13, xmmword [rcx]
vmovdqa xmm11, xmmword [rcx + 0x20]
lea r9, [rax + 1]
vpinsrd xmm1, xmm11, r9d, 0
shr r9, 0x20
vpinsrd xmm10, xmm1, r9d, 1
vmovdqa xmm3, xmmword [rcx + 0x10]
lea r9, [rax + 2]
vpinsrd xmm1, xmm11, r9d, 0
shr r9, 0x20
vpinsrd xmm7, xmm1, r9d, 1
lea r9, [rax + 3]
vpinsrd xmm1, xmm11, r9d, 0
shr r9, 0x20
vpinsrd xmm2, xmm1, r9d, 1
test edx, edx
vmovdqa xmmword [rsp + 0x10], xmm3
je 0x140003bd6
vmovdqa xmm4, xmmword [0x14009e5f0]
vmovdqa xmm1, xmm4
vmovdqa xmm6, xmm4
vmovdqa xmmword [rsp + 0x40], xmm4
vmovdqa xmmword [rsp + 0x30], xmm3
vmovdqa xmmword [rsp], xmm3
vmovdqa xmm15, xmm3
vmovdqa xmm12, xmm13
vmovdqa xmm9, xmm13
vmovdqa xmm0, xmm13
vmovdqa xmmword [rsp + 0x50], xmm13
nop word cs:[rax + rax]
vpaddd xmm3, xmm12, xmm4
vmovdqa xmmword [rsp + 0x70], xmm3
vpxor xmm4, xmm11, xmm3
vpshuflw xmm4, xmm4, 0xb1
vpshufhw xmm13, xmm4, 0xb1
vpaddd xmm3, xmm15, xmm13
vmovdqa xmmword [rsp + 0x20], xmm3
vpxor xmm12, xmm12, xmm3
vpsrld xmm5, xmm12, 0x14
vpslld xmm12, xmm12, 0xc
vpor xmm8, xmm12, xmm5
vpaddd xmm5, xmm9, xmm1
vpxor xmm1, xmm10, xmm5
vpshuflw xmm1, xmm1, 0xb1
vpshufhw xmm10, xmm1, 0xb1
vpaddd xmm1, xmm10, xmmword [rsp]
vmovdqa xmmword [rsp + 0x60], xmm1
vpxor xmm9, xmm9, xmm1
vpsrld xmm11, xmm9, 0x14
vpslld xmm9, xmm9, 0xc
vpor xmm9, xmm9, xmm11
vpaddd xmm3, xmm0, xmm6
vpxor xmm7, xmm7, xmm3
vpshuflw xmm7, xmm7, 0xb1
vpshufhw xmm7, xmm7, 0xb1
vpaddd xmm12, xmm7, xmmword [rsp + 0x30]
vpxor xmm6, xmm12, xmm0
vpsrld xmm11, xmm6, 0x14
vpslld xmm6, xmm6, 0xc
vpor xmm4, xmm11, xmm6
vmovdqa xmm1, xmmword [rsp + 0x50]
vpaddd xmm6, xmm1, xmmword [rsp + 0x40]
vpxor xmm0, xmm2, xmm6
vpshuflw xmm0, xmm0, 0xb1
vpshufhw xmm2, xmm0, 0xb1
vpaddd xmm15, xmm2, xmmword [rsp + 0x10]
vpxor xmm11, xmm15, xmm1
vpsrld xmm1, xmm11, 0x14
vpslld xmm11, xmm11, 0xc
vpor xmm14, xmm11, xmm1
vpaddd xmm1, xmm8, xmmword [rsp + 0x70]
vmovdqa xmmword [rsp + 0x10], xmm1
vmovdqa xmm0, xmmword [0x14009e600]
vpshufb xmm13, xmm13, xmm0
vpshufb xmm11, xmm1, xmm0
vpxor xmm13, xmm11, xmm13
vpaddd xmm5, xmm9, xmm5
vpshufb xmm10, xmm10, xmm0
vpshufb xmm11, xmm5, xmm0
vpxor xmm10, xmm11, xmm10
vpaddd xmm3, xmm4, xmm3
vmovdqa xmmword [rsp], xmm3
vpshufb xmm7, xmm7, xmm0
vpshufb xmm11, xmm3, xmm0
vpxor xmm7, xmm11, xmm7
vpaddd xmm6, xmm14, xmm6
vpshufb xmm2, xmm2, xmm0
vpshufb xmm11, xmm6, xmm0
vpxor xmm2, xmm11, xmm2
vpaddd xmm0, xmm13, xmmword [rsp + 0x20]
vmovdqa xmmword [rsp + 0x40], xmm0
vpxor xmm8, xmm8, xmm0
vpsrld xmm11, xmm8, 0x19
vpslld xmm8, xmm8, 7
vpor xmm11, xmm8, xmm11
vpaddd xmm0, xmm10, xmmword [rsp + 0x60]
vmovdqa xmmword [rsp + 0x50], xmm0
vpxor xmm8, xmm9, xmm0
vpsrld xmm9, xmm8, 0x19
vpslld xmm8, xmm8, 7
vpor xmm9, xmm8, xmm9
vpaddd xmm8, xmm12, xmm7
vpxor xmm4, xmm8, xmm4
vpsrld xmm12, xmm4, 0x19
vpslld xmm4, xmm4, 7
vpor xmm4, xmm12, xmm4
vpaddd xmm0, xmm15, xmm2
vmovdqa xmm15, xmm2
vpxor xmm1, xmm14, xmm0
vmovdqa xmm14, xmm0
vpsrld xmm2, xmm1, 0x19
vpslld xmm1, xmm1, 7
vpor xmm1, xmm1, xmm2
vpshufd xmm3, xmm11, 0x39
vpaddd xmm12, xmm3, xmmword [rsp + 0x10]
vpshuflw xmm2, xmm12, 0xb1
vpshufhw xmm2, xmm2, 0xb1
vmovdqa xmm0, xmmword [0x14009e610]
vpshufb xmm11, xmm13, xmm0
vpxor xmm11, xmm11, xmm2
vpshufd xmm9, xmm9, 0x39
vpaddd xmm2, xmm9, xmm5
vmovdqa xmmword [rsp + 0x10], xmm2
vpshuflw xmm2, xmm2, 0xb1
vpshufhw xmm2, xmm2, 0xb1
vpshufb xmm5, xmm10, xmm0
vpxor xmm5, xmm5, xmm2
vpshufd xmm4, xmm4, 0x39
vpaddd xmm2, xmm4, xmmword [rsp]
vmovdqa xmmword [rsp], xmm2
vpshuflw xmm2, xmm2, 0xb1
vpshufhw xmm2, xmm2, 0xb1
vpshufb xmm7, xmm7, xmm0
vpxor xmm13, xmm7, xmm2
vmovdqa xmmword [rsp + 0x20], xmm13
vpshufd xmm1, xmm1, 0x39
vpaddd xmm2, xmm1, xmm6
vmovdqa xmmword [rsp + 0x30], xmm2
vpshuflw xmm7, xmm2, 0xb1
vpshufhw xmm7, xmm7, 0xb1
vpshufb xmm10, xmm15, xmm0
vpxor xmm7, xmm10, xmm7
vpshufd xmm10, xmmword [rsp + 0x40], 0x4e
vpaddd xmm15, xmm10, xmm11
vpxor xmm0, xmm15, xmm3
vpsrld xmm10, xmm0, 0x14
vpslld xmm0, xmm0, 0xc
vpor xmm0, xmm10, xmm0
vpshufd xmm10, xmmword [rsp + 0x50], 0x4e
vpaddd xmm6, xmm10, xmm5
vpxor xmm9, xmm9, xmm6
vpsrld xmm10, xmm9, 0x14
vpslld xmm9, xmm9, 0xc
vpor xmm2, xmm9, xmm10
vpshufd xmm8, xmm8, 0x4e
vpaddd xmm10, xmm8, xmm13
vpxor xmm4, xmm10, xmm4
vpsrld xmm8, xmm4, 0x14
vpslld xmm4, xmm4, 0xc
vpor xmm4, xmm8, xmm4
vpshufd xmm8, xmm14, 0x4e
vpaddd xmm8, xmm8, xmm7
vpxor xmm1, xmm8, xmm1
vpsrld xmm9, xmm1, 0x14
vpslld xmm1, xmm1, 0xc
vpor xmm9, xmm9, xmm1
vpaddd xmm1, xmm12, xmm0
vmovdqa xmmword [rsp + 0x70], xmm1
vpxor xmm1, xmm11, xmm1
vmovdqa xmm14, xmmword [0x14009e600]
vpshufb xmm11, xmm1, xmm14
vpaddd xmm15, xmm15, xmm11
vpxor xmm0, xmm15, xmm0
vpsrld xmm1, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm12, xmm0, xmm1
vpaddd xmm1, xmm2, xmmword [rsp + 0x10]
vpxor xmm0, xmm1, xmm5
vpshufb xmm5, xmm0, xmm14
vpaddd xmm13, xmm6, xmm5
vpxor xmm0, xmm13, xmm2
vpsrld xmm2, xmm0, 0x19
vpslld xmm0, xmm0, 7
vpor xmm0, xmm0, xmm2
vpaddd xmm6, xmm4, xmmword [rsp]
vpxor xmm3, xmm6, xmmword [rsp + 0x20]
vpshufb xmm3, xmm3, xmm14
vpaddd xmm10, xmm10, xmm3
vpxor xmm4, xmm10, xmm4
vpsrld xmm2, xmm4, 0x19
vpslld xmm4, xmm4, 7
vpor xmm2, xmm4, xmm2
vpaddd xmm4, xmm9, xmmword [rsp + 0x30]
vmovdqa xmmword [rsp + 0x40], xmm4
vpxor xmm4, xmm4, xmm7
vpshufb xmm4, xmm4, xmm14
vpaddd xmm7, xmm8, xmm4
vpxor xmm8, xmm9, xmm7
vpsrld xmm9, xmm8, 0x19
vpslld xmm8, xmm8, 7
vpor xmm8, xmm8, xmm9
vpshufd xmm12, xmm12, 0x93
vpshufd xmm9, xmm0, 0x93
vpshufd xmm0, xmm2, 0x93
vpshufd xmm2, xmm8, 0x93
vmovdqa xmmword [rsp + 0x50], xmm2
vpshufd xmm15, xmm15, 0x4e
vpshufd xmm2, xmm13, 0x4e
vmovdqa xmmword [rsp], xmm2
vpshufd xmm2, xmm10, 0x4e
vmovdqa xmmword [rsp + 0x30], xmm2
vpshufd xmm2, xmm7, 0x4e
vmovdqa xmmword [rsp + 0x10], xmm2
vpshufd xmm11, xmm11, 0x39
vpshufd xmm10, xmm5, 0x39
vpshufd xmm7, xmm3, 0x39
vpshufd xmm2, xmm4, 0x39
vmovdqa xmm4, xmmword [rsp + 0x70]
dec edx
jne 0x1400037d0
mov rax, qword [rcx + 0x20]
vmovaps xmm3, xmmword [rcx]
vmovaps xmmword [rsp + 0x60], xmm3
vmovaps xmm3, xmmword [rcx + 0x10]
vmovaps xmmword [rsp + 0x20], xmm3
vmovdqa xmm3, xmmword [rcx + 0x20]
vmovdqa xmm8, xmmword [0x14009e5f0]
vpaddd xmm5, xmm8, xmm4
vpaddd xmm1, xmm8, xmm1
vpaddd xmm4, xmm8, xmm6
vpaddd xmm14, xmm8, xmmword [rsp + 0x40]
vmovdqa xmm13, xmmword [rsp + 0x50]
vmovdqa xmm6, xmm0
vmovdqa xmm0, xmm3
vmovdqa xmm3, xmm4
jmp 0x140003c17
vmovdqa xmm14, xmmword [0x14009e5e0]
vmovdqa xmm6, xmm13
vmovdqa xmmword [rsp + 0x30], xmm3
vmovdqa xmm9, xmm13
vmovdqa xmmword [rsp], xmm3
vmovdqa xmm12, xmm13
vmovdqa xmm15, xmm3
vmovdqa xmm0, xmm11
vmovdqa xmmword [rsp + 0x20], xmm3
vmovdqa xmmword [rsp + 0x60], xmm13
vmovdqa xmm3, xmm14
vmovdqa xmm1, xmm14
vmovdqa xmm5, xmm14
lea rdx, [rax + 1]
mov r9, rdx
shr r9, 0x20
vpinsrd xmm4, xmm0, edx, 0
vpinsrd xmm4, xmm4, r9d, 1
vpaddd xmm10, xmm10, xmm4
lea rdx, [rax + 2]
mov r9, rdx
shr r9, 0x20
vpinsrd xmm4, xmm0, edx, 0
vpinsrd xmm4, xmm4, r9d, 1
vpaddd xmm8, xmm7, xmm4
lea rdx, [rax + 3]
mov r9, rdx
shr r9, 0x20
vpinsrd xmm4, xmm0, edx, 0
vpinsrd xmm4, xmm4, r9d, 1
vpaddd xmm7, xmm2, xmm4
add rax, 4
mov rdx, rax
shr rdx, 0x20
vpinsrd xmm4, xmm0, eax, 0
vpinsrd xmm4, xmm4, edx, 1
vmovdqa xmmword [rcx + 0x20], xmm4
vmovdqu xmmword [r8], xmm5
vmovdqa xmm5, xmmword [rsp + 0x60]
vpaddd xmm4, xmm12, xmm5
vmovdqu xmmword [r8 + 0x10], xmm4
vmovdqa xmm2, xmmword [rsp + 0x20]
vpaddd xmm4, xmm15, xmm2
vmovdqu xmmword [r8 + 0x20], xmm4
vpaddd xmm4, xmm11, xmm0
vmovdqu xmmword [r8 + 0x30], xmm4
vmovdqu xmmword [r8 + 0x40], xmm1
vpaddd xmm0, xmm9, xmm5
vmovdqu xmmword [r8 + 0x50], xmm0
vpaddd xmm0, xmm2, xmmword [rsp]
vmovdqu xmmword [r8 + 0x60], xmm0
vmovdqu xmmword [r8 + 0x70], xmm10
vmovdqu xmmword [r8 + 0x80], xmm3
vpaddd xmm0, xmm6, xmm5
vmovdqu xmmword [r8 + 0x90], xmm0
vpaddd xmm0, xmm2, xmmword [rsp + 0x30]
vmovdqu xmmword [r8 + 0xa0], xmm0
vmovdqu xmmword [r8 + 0xb0], xmm8
vmovdqu xmmword [r8 + 0xc0], xmm14
vpaddd xmm0, xmm13, xmm5
vmovdqu xmmword [r8 + 0xd0], xmm0
vpaddd xmm0, xmm2, xmmword [rsp + 0x10]
vmovdqu xmmword [r8 + 0xe0], xmm0
vmovdqu xmmword [r8 + 0xf0], xmm7
vzeroupper
vmovaps xmm6, xmmword [rsp + 0x80]
vmovaps xmm7, xmmword [rsp + 0x90]
vmovaps xmm8, xmmword [rsp + 0xa0]
vmovaps xmm9, xmmword [rsp + 0xb0]
vmovaps xmm10, xmmword [rsp + 0xc0]
vmovaps xmm11, xmmword [rsp + 0xd0]
vmovaps xmm12, xmmword [rsp + 0xe0]
vmovaps xmm13, xmmword [rsp + 0xf0]
vmovaps xmm14, xmmword [rsp + 0x100]
vmovaps xmm15, xmmword [rsp + 0x110]
add rsp, 0x128
ret