Function at 0x140004530
Capabilities:
Encode data using xor
Encrypt data using salsa20 or chacha

Disassembly:
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm15
movaps xmmword [rsp + 0xf0], xmm14
movaps xmmword [rsp + 0xe0], xmm13
movaps xmmword [rsp + 0xd0], xmm12
movaps xmmword [rsp + 0xc0], xmm11
movaps xmmword [rsp + 0xb0], xmm10
movaps xmmword [rsp + 0xa0], xmm9
movaps xmmword [rsp + 0x90], xmm8
movaps xmmword [rsp + 0x80], xmm7
movaps xmmword [rsp + 0x70], xmm6
mov rax, qword [rcx + 0x20]
movdqa xmm5, xmmword [rcx]
movdqa xmm14, xmmword [rcx + 0x20]
lea r9, [rax + 1]
movd xmm8, r9d
shr r9, 0x20
movdqa xmm2, xmm14
pslldq xmm2, 8
shufps xmm2, xmm14, 0xe8
movd xmm0, r9d
por xmm0, xmm2
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
por xmm8, xmm1
lea r9, [rax + 2]
movd xmm9, r9d
shr r9, 0x20
movd xmm0, r9d
por xmm0, xmm2
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
por xmm9, xmm1
lea r9, [rax + 3]
movd xmm15, r9d
shr r9, 0x20
movd xmm0, r9d
por xmm0, xmm2
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
movdqa xmm12, xmmword [rcx + 0x10]
por xmm15, xmm1
test edx, edx
je 0x140004af1
movdqa xmm3, xmmword [str.expand_32_byte_k]
movdqa xmm2, xmm3
movdqa xmm1, xmm3
movdqa xmm11, xmm3
movdqa xmm7, xmm12
movdqa xmm0, xmm12
movdqa xmm13, xmm12
movdqa xmm4, xmm5
movdqa xmm10, xmm5
movdqa xmm6, xmm5
paddd xmm3, xmm4
paddd xmm2, xmm10
paddd xmm1, xmm6
paddd xmm11, xmm5
pxor xmm14, xmm3
pxor xmm8, xmm2
pxor xmm9, xmm1
pxor xmm15, xmm11
pshuflw xmm14, xmm14, 0xb1
pshufhw xmm14, xmm14, 0xb1
pshuflw xmm8, xmm8, 0xb1
pshufhw xmm8, xmm8, 0xb1
pshuflw xmm9, xmm9, 0xb1
pshufhw xmm9, xmm9, 0xb1
pshuflw xmm15, xmm15, 0xb1
pshufhw xmm15, xmm15, 0xb1
paddd xmm13, xmm14
paddd xmm0, xmm8
paddd xmm7, xmm9
paddd xmm12, xmm15
movdqa xmmword [rsp], xmm12
pxor xmm4, xmm13
pxor xmm10, xmm0
pxor xmm6, xmm7
pxor xmm5, xmm12
movdqa xmm12, xmm4
psrld xmm12, 0x14
pslld xmm4, 0xc
por xmm4, xmm12
movdqa xmm12, xmm10
psrld xmm12, 0x14
pslld xmm10, 0xc
por xmm10, xmm12
movdqa xmm12, xmm6
psrld xmm12, 0x14
pslld xmm6, 0xc
por xmm6, xmm12
movdqa xmm12, xmm5
psrld xmm12, 0x14
pslld xmm5, 0xc
por xmm5, xmm12
paddd xmm3, xmm4
paddd xmm2, xmm10
paddd xmm1, xmm6
paddd xmm11, xmm5
movdqa xmmword [rsp + 0x20], xmm11
movdqa xmm12, xmm3
movdqa xmm11, xmm7
movdqa xmm7, xmmword [0x14009e680]
pshufb xmm12, xmm7
pshufb xmm14, xmm7
pxor xmm14, xmm12
movdqa xmm12, xmm2
pshufb xmm12, xmm7
pshufb xmm8, xmm7
pxor xmm8, xmm12
movdqa xmm12, xmm1
pshufb xmm12, xmm7
pshufb xmm9, xmm7
pxor xmm9, xmm12
movdqa xmm12, xmmword [rsp + 0x20]
pshufb xmm12, xmm7
pshufb xmm15, xmm7
pxor xmm15, xmm12
paddd xmm13, xmm14
paddd xmm0, xmm8
paddd xmm11, xmm9
movdqa xmm7, xmmword [rsp]
paddd xmm7, xmm15
movdqa xmmword [rsp], xmm7
pxor xmm4, xmm13
pxor xmm10, xmm0
pxor xmm6, xmm11
pxor xmm5, xmm7
movdqa xmm12, xmm4
psrld xmm12, 0x19
pslld xmm4, 7
por xmm4, xmm12
movdqa xmm12, xmm10
psrld xmm12, 0x19
pslld xmm10, 7
por xmm10, xmm12
movdqa xmm12, xmm6
psrld xmm12, 0x19
pslld xmm6, 7
por xmm6, xmm12
movdqa xmm12, xmm5
psrld xmm12, 0x19
pslld xmm5, 7
por xmm5, xmm12
pshufd xmm12, xmm4, 0x39
pshufd xmm10, xmm10, 0x39
pshufd xmm6, xmm6, 0x39
pshufd xmm5, xmm5, 0x39
pshufd xmm13, xmm13, 0x4e
pshufd xmm0, xmm0, 0x4e
movdqa xmmword [rsp + 0x10], xmm0
pshufd xmm7, xmm11, 0x4e
movdqa xmm11, xmmword [rsp + 0x20]
pshufd xmm0, xmmword [rsp], 0x4e
movdqa xmmword [rsp], xmm0
paddd xmm3, xmm12
paddd xmm2, xmm10
paddd xmm1, xmm6
paddd xmm11, xmm5
pshuflw xmm4, xmm3, 0xb1
pshufhw xmm4, xmm4, 0xb1
movdqa xmm0, xmmword [0x14009e690]
pshufb xmm14, xmm0
pxor xmm14, xmm4
pshuflw xmm4, xmm2, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm8, xmm0
pxor xmm8, xmm4
pshuflw xmm4, xmm1, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm9, xmm0
pxor xmm9, xmm4
pshuflw xmm4, xmm11, 0xb1
pshufhw xmm4, xmm4, 0xb1
pshufb xmm15, xmm0
pxor xmm15, xmm4
paddd xmm13, xmm14
movdqa xmm4, xmmword [rsp + 0x10]
paddd xmm4, xmm8
movdqa xmmword [rsp + 0x10], xmm4
paddd xmm7, xmm9
movdqa xmm0, xmmword [rsp]
paddd xmm0, xmm15
movdqa xmmword [rsp], xmm0
pxor xmm12, xmm13
pxor xmm10, xmm4
pxor xmm6, xmm7
pxor xmm5, xmm0
movdqa xmm4, xmm12
psrld xmm4, 0x14
pslld xmm12, 0xc
por xmm12, xmm4
movdqa xmm4, xmm10
psrld xmm4, 0x14
pslld xmm10, 0xc
por xmm10, xmm4
movdqa xmm4, xmm6
psrld xmm4, 0x14
pslld xmm6, 0xc
por xmm6, xmm4
movdqa xmm4, xmm5
psrld xmm4, 0x14
pslld xmm5, 0xc
por xmm5, xmm4
paddd xmm3, xmm12
paddd xmm2, xmm10
paddd xmm1, xmm6
paddd xmm11, xmm5
pxor xmm14, xmm3
pxor xmm8, xmm2
pxor xmm9, xmm1
pxor xmm15, xmm11
movdqa xmm0, xmmword [0x14009e680]
pshufb xmm14, xmm0
pshufb xmm8, xmm0
pshufb xmm9, xmm0
pshufb xmm15, xmm0
paddd xmm13, xmm14
movdqa xmm0, xmmword [rsp + 0x10]
paddd xmm0, xmm8
paddd xmm7, xmm9
movdqa xmm4, xmmword [rsp]
paddd xmm4, xmm15
movdqa xmmword [rsp], xmm4
pxor xmm12, xmm13
pxor xmm10, xmm0
pxor xmm6, xmm7
pxor xmm5, xmm4
movdqa xmm4, xmm12
psrld xmm4, 0x19
pslld xmm12, 7
por xmm12, xmm4
movdqa xmm4, xmm10
psrld xmm4, 0x19
pslld xmm10, 7
por xmm10, xmm4
movdqa xmm4, xmm6
psrld xmm4, 0x19
pslld xmm6, 7
por xmm6, xmm4
movdqa xmm4, xmm5
psrld xmm4, 0x19
pslld xmm5, 7
por xmm5, xmm4
pshufd xmm4, xmm12, 0x93
pshufd xmm10, xmm10, 0x93
pshufd xmm6, xmm6, 0x93
pshufd xmm5, xmm5, 0x93
pshufd xmm13, xmm13, 0x4e
pshufd xmm0, xmm0, 0x4e
pshufd xmm7, xmm7, 0x4e
pshufd xmm12, xmmword [rsp], 0x4e
pshufd xmm14, xmm14, 0x39
pshufd xmm8, xmm8, 0x39
pshufd xmm9, xmm9, 0x39
pshufd xmm15, xmm15, 0x39
dec edx
jne 0x140004660
movdqa xmmword [rsp + 0x40], xmm15
movdqa xmmword [rsp + 0x10], xmm12
mov rax, qword [rcx + 0x20]
movaps xmm12, xmmword [rcx]
movaps xmmword [rsp + 0x20], xmm12
movaps xmm12, xmmword [rcx + 0x10]
movaps xmmword [rsp], xmm12
movdqa xmm15, xmmword [rcx + 0x20]
movdqa xmm12, xmm15
pslldq xmm12, 8
movdqa xmmword [rsp + 0x30], xmm15
shufps xmm12, xmm15, 0xe8
movdqa xmm15, xmmword [str.expand_32_byte_k]
paddd xmm3, xmm15
paddd xmm2, xmm15
paddd xmm1, xmm15
paddd xmm11, xmm15
jmp 0x140004b49
movdqa xmmword [rsp + 0x40], xmm15
movdqa xmm11, xmmword [0x14009e660]
movdqa xmm6, xmm5
movdqa xmm10, xmm5
movdqa xmm4, xmm5
movaps xmmword [rsp + 0x30], xmm14
movdqa xmmword [rsp + 0x20], xmm5
movdqa xmm13, xmm12
movdqa xmm0, xmm12
movdqa xmm7, xmm12
movdqa xmmword [rsp], xmm12
movdqa xmmword [rsp + 0x10], xmm12
movdqa xmm1, xmm11
movaps xmm12, xmm2
movdqa xmm2, xmm11
movdqa xmm3, xmm11
paddd xmm14, xmmword [rsp + 0x30]
lea r10, [rax + 1]
mov rdx, r10
shr rdx, 0x20
movd xmm15, edx
por xmm15, xmm12
movdqa xmmword [rsp + 0x50], xmm15
lea r9, [rax + 2]
mov rdx, r9
shr rdx, 0x20
movd xmm15, edx
por xmm15, xmm12
movdqa xmmword [rsp + 0x30], xmm15
lea rdx, [rax + 3]
mov r11, rdx
shr r11, 0x20
movd xmm15, r11d
por xmm15, xmm12
movdqa xmmword [rsp + 0x60], xmm15
add rax, 4
mov r11, rax
shr r11, 0x20
movd xmm15, r11d
por xmm15, xmm12
movdqa xmm12, xmm15
pslldq xmm12, 8
shufps xmm12, xmm15, 0xe8
movaps xmm15, xmm12
movd xmm12, eax
por xmm12, xmm15
movdqa xmmword [rcx + 0x20], xmm12
movdqu xmmword [r8], xmm3
movdqa xmm15, xmmword [rsp + 0x20]
paddd xmm4, xmm15
movdqu xmmword [r8 + 0x10], xmm4
movdqa xmm12, xmmword [rsp]
paddd xmm13, xmm12
movdqu xmmword [r8 + 0x20], xmm13
movdqu xmmword [r8 + 0x30], xmm14
movdqa xmm4, xmmword [rsp + 0x50]
movdqa xmm3, xmm4
pslldq xmm3, 8
shufps xmm3, xmm4, 0xe8
movd xmm4, r10d
orps xmm3, xmm4
paddd xmm3, xmm8
movdqu xmmword [r8 + 0x40], xmm2
paddd xmm10, xmm15
movdqu xmmword [r8 + 0x50], xmm10
paddd xmm0, xmm12
movdqu xmmword [r8 + 0x60], xmm0
movdqu xmmword [r8 + 0x70], xmm3
movdqa xmm0, xmmword [rsp + 0x30]
movdqa xmm2, xmm0
pslldq xmm2, 8
shufps xmm2, xmm0, 0xe8
movd xmm3, r9d
orps xmm2, xmm3
paddd xmm2, xmm9
movdqu xmmword [r8 + 0x80], xmm1
paddd xmm6, xmm15
movdqu xmmword [r8 + 0x90], xmm6
paddd xmm7, xmm12
movdqu xmmword [r8 + 0xa0], xmm7
movdqu xmmword [r8 + 0xb0], xmm2
movdqa xmm0, xmmword [rsp + 0x60]
movdqa xmm1, xmm0
pslldq xmm1, 8
shufps xmm1, xmm0, 0xe8
movd xmm2, edx
orps xmm1, xmm2
paddd xmm1, xmmword [rsp + 0x40]
movdqu xmmword [r8 + 0xc0], xmm11
paddd xmm5, xmm15
movdqu xmmword [r8 + 0xd0], xmm5
movdqa xmm0, xmmword [rsp + 0x10]
paddd xmm0, xmm12
movdqu xmmword [r8 + 0xe0], xmm0
movdqu xmmword [r8 + 0xf0], xmm1
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x90]
movaps xmm9, xmmword [rsp + 0xa0]
movaps xmm10, xmmword [rsp + 0xb0]
movaps xmm11, xmmword [rsp + 0xc0]
movaps xmm12, xmmword [rsp + 0xd0]
movaps xmm13, xmmword [rsp + 0xe0]
movaps xmm14, xmmword [rsp + 0xf0]
movaps xmm15, xmmword [rsp + 0x100]
add rsp, 0x118
ret