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

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm15
movaps xmmword [rsp + 0x110], xmm14
movaps xmmword [rsp + 0x100], xmm13
movaps xmmword [rsp + 0xf0], xmm12
movaps xmmword [rsp + 0xe0], xmm11
movaps xmmword [rsp + 0xd0], xmm10
movaps xmmword [rsp + 0xc0], xmm9
movaps xmmword [rsp + 0xb0], xmm8
movaps xmmword [rsp + 0xa0], xmm7
movaps xmmword [rsp + 0x90], xmm6
mov rsi, r8
mov ebx, edx
mov rdi, rcx
mov r14, qword [0x14009d188]
mov rax, qword [r14]
test rax, rax
je 0x140002e5e
test ax, ax
js 0x140002e6c
mov rax, qword [r14]
test rax, rax
je 0x140002edd
test eax, 0x4000
jne 0x140002eed
mov rax, qword [r14]
test rax, rax
je 0x14000319b
test eax, 0x400
jne 0x1400031ab
mov rax, qword [r14]
test rax, rax
je 0x14000321c
test eax, 0x200
jne 0x14000322c
mov rax, qword [rdi + 0x20]
movdqa xmm6, xmmword [rdi]
movdqa xmm12, xmmword [rdi + 0x10]
movaps xmm0, xmmword [rdi + 0x20]
lea rcx, [rax + 1]
movd xmm1, ecx
shr rcx, 0x20
movd xmm2, ecx
pslldq xmm2, 8
shufps xmm2, xmm0, 0xe8
por xmm1, xmm2
lea rcx, [rax + 2]
movd xmm15, ecx
shr rcx, 0x20
movd xmm2, ecx
pslldq xmm2, 8
shufps xmm2, xmm0, 0xe8
por xmm15, xmm2
add rax, 3
movd xmm14, eax
shr rax, 0x20
movd xmm2, eax
pslldq xmm2, 8
shufps xmm2, xmm0, 0xe8
por xmm14, xmm2
test ebx, ebx
movdqa xmmword [rsp + 0x80], xmm12
movdqa xmmword [rsp + 0x70], xmm6
je 0x140002f5e
movdqa xmm5, xmmword [0x14009e540]
movdqa xmm4, xmm5
movdqa xmm10, xmm5
movdqa xmm8, xmm5
movdqa xmmword [rsp + 0x20], xmm12
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm3, xmm12
movdqa xmm13, xmm6
movdqa xmm11, xmm6
movdqa xmm9, xmm6
movdqa xmm7, xmm6
nop
paddd xmm5, xmm13
paddd xmm4, xmm11
paddd xmm10, xmm9
paddd xmm8, xmm7
movdqa xmmword [rsp + 0x40], xmm8
xorps xmm0, xmm5
pxor xmm1, xmm4
pxor xmm15, xmm10
pxor xmm14, xmm8
pshuflw xmm0, xmm0, 0xb1
pshufhw xmm2, xmm0, 0xb1
pshuflw xmm0, xmm1, 0xb1
movdqa xmm1, xmm14
pshufhw xmm14, xmm0, 0xb1
pshuflw xmm0, xmm15, 0xb1
pshufhw xmm6, xmm0, 0xb1
pshuflw xmm0, xmm1, 0xb1
pshufhw xmm15, xmm0, 0xb1
paddd xmm12, xmm2
paddd xmm3, xmm14
movdqa xmm1, xmm3
movdqa xmm3, xmmword [rsp + 0x30]
paddd xmm3, xmm6
movdqa xmm8, xmmword [rsp + 0x20]
paddd xmm8, xmm15
pxor xmm13, xmm12
pxor xmm11, xmm1
pxor xmm9, xmm3
pxor xmm7, xmm8
movdqa xmm0, xmm13
psrld xmm0, 0x14
pslld xmm13, 0xc
por xmm13, xmm0
movdqa xmm0, xmm11
psrld xmm0, 0x14
pslld xmm11, 0xc
por xmm11, xmm0
movdqa xmm0, xmm9
psrld xmm0, 0x14
pslld xmm9, 0xc
por xmm9, xmm0
movdqa xmm0, xmm7
psrld xmm0, 0x14
pslld xmm7, 0xc
por xmm7, xmm0
paddd xmm5, xmm13
paddd xmm4, xmm11
paddd xmm10, xmm9
movdqa xmm0, xmmword [rsp + 0x40]
paddd xmm0, xmm7
movdqa xmmword [rsp + 0x40], xmm0
pxor xmm2, xmm5
movdqa xmm0, xmm2
psrld xmm0, 0x18
pslld xmm2, 8
por xmm2, xmm0
pxor xmm14, xmm4
movdqa xmm0, xmm14
psrld xmm0, 0x18
pslld xmm14, 8
por xmm14, xmm0
pxor xmm6, xmm10
movdqa xmm0, xmm6
psrld xmm0, 0x18
pslld xmm6, 8
por xmm6, xmm0
pxor xmm15, xmmword [rsp + 0x40]
movdqa xmm0, xmm15
psrld xmm0, 0x18
pslld xmm15, 8
por xmm15, xmm0
paddd xmm12, xmm2
paddd xmm1, xmm14
movdqa xmmword [rsp + 0x20], xmm1
paddd xmm3, xmm6
paddd xmm8, xmm15
pxor xmm13, xmm12
pxor xmm11, xmm1
pxor xmm9, xmm3
pxor xmm7, xmm8
movdqa xmm0, xmm13
psrld xmm0, 0x19
pslld xmm13, 7
por xmm13, xmm0
movdqa xmm0, xmm11
psrld xmm0, 0x19
pslld xmm11, 7
por xmm11, xmm0
movdqa xmm0, xmm9
psrld xmm0, 0x19
pslld xmm9, 7
por xmm9, xmm0
movdqa xmm0, xmm7
psrld xmm0, 0x19
pslld xmm7, 7
por xmm7, xmm0
pshufd xmm0, xmm13, 0x39
pshufd xmm1, xmm11, 0x39
pshufd xmm9, xmm9, 0x39
pshufd xmm7, xmm7, 0x39
pshufd xmm12, xmm12, 0x4e
pshufd xmm11, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x30], xmm11
pshufd xmm3, xmm3, 0x4e
pshufd xmm8, xmm8, 0x4e
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmm8, xmmword [rsp + 0x40]
pshufd xmm2, xmm2, 0x93
pshufd xmm11, xmm14, 0x93
pshufd xmm6, xmm6, 0x93
pshufd xmm13, xmm15, 0x93
paddd xmm5, xmm0
paddd xmm4, xmm1
paddd xmm10, xmm9
paddd xmm8, xmm7
pshuflw xmm14, xmm5, 0xb1
pshufhw xmm15, xmm14, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm14, xmm2, 0xb1
pxor xmm14, xmm15
pshuflw xmm2, xmm4, 0xb1
pshufhw xmm2, xmm2, 0xb1
pshuflw xmm11, xmm11, 0xb1
pshufhw xmm15, xmm11, 0xb1
pxor xmm15, xmm2
pshuflw xmm2, xmm10, 0xb1
pshufhw xmm11, xmm2, 0xb1
pshuflw xmm2, xmm6, 0xb1
pshufhw xmm2, xmm2, 0xb1
pxor xmm2, xmm11
pshuflw xmm6, xmm8, 0xb1
pshufhw xmm11, xmm6, 0xb1
pshuflw xmm6, xmm13, 0xb1
pshufhw xmm6, xmm6, 0xb1
pxor xmm6, xmm11
paddd xmm12, xmm14
movdqa xmm11, xmmword [rsp + 0x30]
paddd xmm11, xmm15
movdqa xmmword [rsp + 0x30], xmm11
movdqa xmm13, xmm3
paddd xmm13, xmm2
movdqa xmm3, xmmword [rsp + 0x20]
paddd xmm3, xmm6
movdqa xmmword [rsp + 0x20], xmm3
pxor xmm0, xmm12
pxor xmm1, xmm11
pxor xmm9, xmm13
pxor xmm7, xmm3
movdqa xmm11, xmm0
psrld xmm11, 0x14
pslld xmm0, 0xc
por xmm0, xmm11
movdqa xmm11, xmm1
psrld xmm11, 0x14
pslld xmm1, 0xc
por xmm1, xmm11
movdqa xmm11, xmm9
psrld xmm11, 0x14
pslld xmm9, 0xc
por xmm9, xmm11
movdqa xmm11, xmm7
psrld xmm11, 0x14
pslld xmm7, 0xc
por xmm7, xmm11
paddd xmm5, xmm0
paddd xmm4, xmm1
paddd xmm10, xmm9
paddd xmm8, xmm7
pxor xmm14, xmm5
movdqa xmm11, xmm14
psrld xmm11, 0x18
pslld xmm14, 8
por xmm14, xmm11
pxor xmm15, xmm4
movdqa xmm11, xmm15
psrld xmm11, 0x18
pslld xmm15, 8
por xmm15, xmm11
pxor xmm2, xmm10
movdqa xmm11, xmm2
psrld xmm11, 0x18
pslld xmm2, 8
por xmm2, xmm11
pxor xmm6, xmm8
movdqa xmm11, xmm6
psrld xmm11, 0x18
pslld xmm6, 8
por xmm6, xmm11
paddd xmm12, xmm14
movdqa xmm3, xmmword [rsp + 0x30]
paddd xmm3, xmm15
movdqa xmm11, xmm13
paddd xmm11, xmm2
movdqa xmmword [rsp + 0x40], xmm11
movdqa xmm13, xmmword [rsp + 0x20]
paddd xmm13, xmm6
movdqa xmmword [rsp + 0x20], xmm13
pxor xmm0, xmm12
pxor xmm1, xmm3
pxor xmm9, xmm11
pxor xmm7, xmm13
movdqa xmm11, xmm0
psrld xmm11, 0x19
pslld xmm0, 7
por xmm0, xmm11
movdqa xmm11, xmm1
psrld xmm11, 0x19
pslld xmm1, 7
por xmm1, xmm11
movdqa xmm11, xmm9
psrld xmm11, 0x19
pslld xmm9, 7
por xmm9, xmm11
movdqa xmm11, xmm7
psrld xmm11, 0x19
pslld xmm7, 7
por xmm7, xmm11
pshufd xmm13, xmm0, 0x93
pshufd xmm11, xmm1, 0x93
pshufd xmm9, xmm9, 0x93
pshufd xmm7, xmm7, 0x93
pshufd xmm12, xmm12, 0x4e
pshufd xmm3, xmm3, 0x4e
pshufd xmm0, xmmword [rsp + 0x40], 0x4e
movdqa xmmword [rsp + 0x30], xmm0
pshufd xmm0, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm0
pshufd xmm0, xmm14, 0x39
pshufd xmm1, xmm15, 0x39
pshufd xmm15, xmm2, 0x39
pshufd xmm14, xmm6, 0x39
dec ebx
jne 0x140002950
movdqa xmmword [rsp + 0x50], xmm14
mov rax, qword [rdi + 0x20]
movdqa xmm6, xmmword [rdi + 0x20]
pshufd xmm14, xmm6, 0xf8
pslldq xmm14, 4
movdqa xmm2, xmmword [0x14009e540]
paddd xmm5, xmm2
paddd xmm4, xmm2
paddd xmm10, xmm2
paddd xmm8, xmm2
movdqa xmm2, xmm14
jmp 0x140002fb6
call dbg.detect_and_initialize
test ax, ax
jns 0x140002848
mov rcx, rdi
mov edx, ebx
mov r8, rsi
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_avx2::hd7d65de8ea1b45f7
call dbg.detect_and_initialize
test eax, 0x4000
je 0x14000285f
mov rcx, rdi
mov edx, ebx
mov r8, rsi
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_avx::hcb609bd4c77948b1
movdqa xmmword [rsp + 0x50], xmm14
pshufd xmm2, xmm0, 0xf8
pslldq xmm2, 4
movq rax, xmm0
movdqa xmm8, xmmword [0x14009e550]
movdqa xmm7, xmm6
movdqa xmmword [rsp + 0x20], xmm12
movdqa xmm9, xmm6
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm11, xmm6
movdqa xmm3, xmm12
movdqa xmm13, xmm6
movdqa xmm6, xmm0
movdqa xmm10, xmm8
movdqa xmm4, xmm8
movdqa xmm5, xmm8
paddd xmm0, xmm6
lea r8, [rax + 1]
mov rcx, r8
shr rcx, 0x20
movd xmm14, ecx
por xmm14, xmm2
lea rdx, [rax + 2]
mov rcx, rdx
shr rcx, 0x20
movd xmm6, ecx
por xmm6, xmm2
movdqa xmmword [rsp + 0x60], xmm6
lea rcx, [rax + 3]
mov r9, rcx
shr r9, 0x20
movd xmm6, r9d
por xmm6, xmm2
movdqa xmmword [rsp + 0x40], xmm6
add rax, 4
mov r9, rax
shr r9, 0x20
movd xmm6, r9d
por xmm6, xmm2
movdqa xmm2, xmm6
pslldq xmm2, 8
shufps xmm2, xmm6, 0xe8
movd xmm6, eax
por xmm6, xmm2
movdqa xmmword [rdi + 0x20], xmm6
movdqu xmmword [rsi], xmm5
movdqa xmm6, xmmword [rsp + 0x70]
paddd xmm13, xmm6
movdqu xmmword [rsi + 0x10], xmm13
movdqa xmm5, xmmword [rsp + 0x80]
paddd xmm12, xmm5
movdqu xmmword [rsi + 0x20], xmm12
movdqu xmmword [rsi + 0x30], xmm0
movdqa xmm0, xmm14
pslldq xmm0, 8
shufps xmm0, xmm14, 0xe8
movd xmm2, r8d
orps xmm0, xmm2
paddd xmm0, xmm1
movdqu xmmword [rsi + 0x40], xmm4
paddd xmm11, xmm6
movdqu xmmword [rsi + 0x50], xmm11
paddd xmm3, xmm5
movdqu xmmword [rsi + 0x60], xmm3
movdqu xmmword [rsi + 0x70], xmm0
movdqa xmm1, xmmword [rsp + 0x60]
movdqa xmm0, xmm1
pslldq xmm0, 8
shufps xmm0, xmm1, 0xe8
movd xmm1, edx
orps xmm0, xmm1
paddd xmm0, xmm15
movdqu xmmword [rsi + 0x80], xmm10
paddd xmm9, xmm6
movdqu xmmword [rsi + 0x90], xmm9
movdqa xmm1, xmmword [rsp + 0x30]
paddd xmm1, xmm5
movdqu xmmword [rsi + 0xa0], xmm1
movdqu xmmword [rsi + 0xb0], xmm0
movdqa xmm1, xmmword [rsp + 0x40]
movdqa xmm0, xmm1
pslldq xmm0, 8
shufps xmm0, xmm1, 0xe8
movd xmm1, ecx
orps xmm0, xmm1
paddd xmm0, xmmword [rsp + 0x50]
movdqu xmmword [rsi + 0xc0], xmm8
paddd xmm7, xmm6
movdqu xmmword [rsi + 0xd0], xmm7
movdqa xmm1, xmmword [rsp + 0x20]
paddd xmm1, xmm5
movdqu xmmword [rsi + 0xe0], xmm1
movdqu xmmword [rsi + 0xf0], xmm0
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r14
ret
call dbg.detect_and_initialize
test eax, 0x400
je 0x140002876
mov rcx, rdi
mov edx, ebx
mov r8, rsi
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_sse41::h33bfda759ff87f1b
call dbg.detect_and_initialize
test eax, 0x200
je 0x14000288d
mov rcx, rdi
mov edx, ebx
mov r8, rsi
movaps xmm6, xmmword [rsp + 0x90]
movaps xmm7, xmmword [rsp + 0xa0]
movaps xmm8, xmmword [rsp + 0xb0]
movaps xmm9, xmmword [rsp + 0xc0]
movaps xmm10, xmmword [rsp + 0xd0]
movaps xmm11, xmmword [rsp + 0xe0]
movaps xmm12, xmmword [rsp + 0xf0]
movaps xmm13, xmmword [rsp + 0x100]
movaps xmm14, xmmword [rsp + 0x110]
movaps xmm15, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_ssse3::h0793608d1d41fdab