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

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x168
movaps xmmword [rsp + 0x150], xmm15
movaps xmmword [rsp + 0x140], xmm14
movaps xmmword [rsp + 0x130], xmm13
movaps xmmword [rsp + 0x120], xmm12
movaps xmmword [rsp + 0x110], xmm11
movaps xmmword [rsp + 0x100], xmm10
movaps xmmword [rsp + 0xf0], xmm9
movaps xmmword [rsp + 0xe0], xmm8
movaps xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xc0], xmm6
mov rsi, qword [0x14031e670]
mov rax, qword [rsi]
test rax, rax
je 0x1401e4794
test ax, ax
js 0x1401e47b2
mov rax, qword [rsi]
test rax, rax
je 0x1401e481b
test eax, 0x4000
jne 0x1401e483b
mov rax, qword [rsi]
test rax, rax
je 0x1401e4a5c
test eax, 0x400
jne 0x1401e4a7c
mov rax, qword [rsi]
test rax, rax
je 0x1401e4ae5
test eax, 0x200
jne 0x1401e4b05
movdqa xmm2, xmmword [rcx]
movdqa xmm14, xmmword [rcx + 0x10]
movdqa xmm3, xmmword [rcx + 0x20]
mov rax, qword [rcx + 0x20]
lea r9, [rax + 1]
movd xmm4, r9d
shr r9, 0x20
pshufd xmm12, xmm3, 0xf8
pslldq xmm12, 4
movd xmm0, r9d
pslldq xmm0, 8
shufps xmm0, xmm3, 0xe8
por xmm4, xmm0
lea r9, [rax + 2]
movd xmm7, r9d
shr r9, 0x20
movd xmm0, r9d
pslldq xmm0, 8
shufps xmm0, xmm3, 0xe8
por xmm7, xmm0
lea r9, [rax + 3]
movd xmm5, r9d
shr r9, 0x20
movd xmm0, r9d
pslldq xmm0, 8
shufps xmm0, xmm3, 0xe8
por xmm5, xmm0
test edx, edx
movdqa xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xa0], xmm3
movdqa xmmword [rsp + 0x90], xmm4
movdqa xmmword [rsp + 0x80], xmm7
movdqa xmmword [rsp + 0x70], xmm5
je 0x1401e48a4
movdqa xmmword [rsp + 0x50], xmm12
movdqa xmm10, xmmword [0x1403be040]
movdqa xmm9, xmm10
movdqa xmm8, xmm10
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmm1, xmm2
movdqa xmm15, xmm2
movdqa xmm13, xmm2
movdqa xmm11, xmm2
movdqa xmm6, xmm14
movdqa xmm0, xmm14
movdqa xmmword [rsp + 0x20], xmm14
movdqa xmmword [rsp + 0x60], xmm14
movdqa xmmword [rsp + 0x40], xmm14
movdqa xmm2, xmm7
nop dword [rax]
paddd xmm10, xmm1
paddd xmm9, xmm15
paddd xmm8, xmm13
movdqa xmm7, xmmword [rsp + 0x30]
paddd xmm7, xmm11
movdqa xmmword [rsp + 0x30], xmm7
pxor xmm3, xmm10
pxor xmm4, xmm9
pxor xmm2, xmm8
pxor xmm5, xmm7
pshuflw xmm3, xmm3, 0xb1
pshufhw xmm7, xmm3, 0xb1
pshuflw xmm3, xmm4, 0xb1
pshufhw xmm4, xmm3, 0xb1
pshuflw xmm2, xmm2, 0xb1
pshufhw xmm12, xmm2, 0xb1
pshuflw xmm2, xmm5, 0xb1
pshufhw xmm14, xmm2, 0xb1
paddd xmm6, xmm7
paddd xmm0, xmm4
movdqa xmm2, xmmword [rsp + 0x20]
paddd xmm2, xmm12
movdqa xmm5, xmm2
movdqa xmmword [rsp + 0x20], xmm2
movdqa xmm3, xmmword [rsp + 0x40]
paddd xmm3, xmm14
pxor xmm1, xmm6
movdqa xmm2, xmm1
psrld xmm2, 0x14
pslld xmm1, 0xc
por xmm1, xmm2
pxor xmm15, xmm0
movdqa xmm2, xmm15
psrld xmm2, 0x14
pslld xmm15, 0xc
por xmm15, xmm2
pxor xmm13, xmm5
movdqa xmm2, xmm13
psrld xmm2, 0x14
pslld xmm13, 0xc
por xmm13, xmm2
pxor xmm11, xmm3
movdqa xmm2, xmm11
psrld xmm2, 0x14
pslld xmm11, 0xc
por xmm11, xmm2
paddd xmm10, xmm1
paddd xmm9, xmm15
paddd xmm8, xmm13
movdqa xmm5, xmmword [rsp + 0x30]
paddd xmm5, xmm11
movdqa xmmword [rsp + 0x30], xmm5
pxor xmm7, xmm10
movdqa xmm2, xmm7
psrld xmm2, 0x18
pslld xmm7, 8
por xmm7, xmm2
pxor xmm4, xmm9
movdqa xmm2, xmm4
psrld xmm2, 0x18
pslld xmm4, 8
por xmm4, xmm2
pxor xmm12, xmm8
movdqa xmm2, xmm12
psrld xmm2, 0x18
pslld xmm12, 8
por xmm12, xmm2
pxor xmm14, xmm5
movdqa xmm2, xmm14
psrld xmm2, 0x18
pslld xmm14, 8
por xmm14, xmm2
paddd xmm6, xmm7
paddd xmm0, xmm4
movdqa xmm2, xmmword [rsp + 0x20]
paddd xmm2, xmm12
movdqa xmmword [rsp + 0x20], xmm2
paddd xmm3, xmm14
pxor xmm1, xmm6
pxor xmm15, xmm0
pxor xmm13, xmm2
pxor xmm11, xmm3
movdqa xmm2, xmm1
psrld xmm2, 0x19
pslld xmm1, 7
por xmm1, xmm2
movdqa xmm2, xmm15
psrld xmm2, 0x19
pslld xmm15, 7
por xmm15, xmm2
movdqa xmm2, xmm13
psrld xmm2, 0x19
pslld xmm13, 7
por xmm13, xmm2
movdqa xmm2, xmm11
psrld xmm2, 0x19
pslld xmm11, 7
por xmm11, xmm2
pshufd xmm1, xmm1, 0x39
pshufd xmm2, xmm15, 0x39
pshufd xmm5, xmm13, 0x39
pshufd xmm11, xmm11, 0x39
pshufd xmm6, xmm6, 0x4e
pshufd xmm0, xmm0, 0x4e
pshufd xmm13, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm13
pshufd xmm3, xmm3, 0x4e
pshufd xmm7, xmm7, 0x93
pshufd xmm13, xmm4, 0x93
pshufd xmm4, xmm12, 0x93
movdqa xmmword [rsp + 0x40], xmm4
pshufd xmm14, xmm14, 0x93
paddd xmm10, xmm1
paddd xmm9, xmm2
paddd xmm8, xmm5
movdqa xmm15, xmmword [rsp + 0x30]
paddd xmm15, xmm11
pshuflw xmm4, xmm10, 0xb1
pshufhw xmm12, xmm4, 0xb1
pshuflw xmm4, xmm7, 0xb1
pshufhw xmm4, xmm4, 0xb1
pxor xmm4, xmm12
pshuflw xmm7, xmm9, 0xb1
pshufhw xmm7, xmm7, 0xb1
pshuflw xmm12, xmm13, 0xb1
pshufhw xmm12, xmm12, 0xb1
pxor xmm12, xmm7
pshuflw xmm7, xmm8, 0xb1
pshufhw xmm13, xmm7, 0xb1
pshuflw xmm7, xmmword [rsp + 0x40], 0xb1
pshufhw xmm7, xmm7, 0xb1
pxor xmm7, xmm13
pshuflw xmm13, xmm15, 0xb1
pshufhw xmm13, xmm13, 0xb1
pshuflw xmm14, xmm14, 0xb1
pshufhw xmm14, xmm14, 0xb1
pxor xmm14, xmm13
paddd xmm6, xmm4
paddd xmm0, xmm12
movdqa xmm13, xmmword [rsp + 0x20]
paddd xmm13, xmm7
movdqa xmmword [rsp + 0x20], xmm13
paddd xmm3, xmm14
pxor xmm1, xmm6
pxor xmm2, xmm0
pxor xmm5, xmm13
pxor xmm11, xmm3
movdqa xmm13, xmm1
psrld xmm13, 0x14
pslld xmm1, 0xc
por xmm1, xmm13
movdqa xmm13, xmm2
psrld xmm13, 0x14
pslld xmm2, 0xc
por xmm2, xmm13
movdqa xmm13, xmm5
psrld xmm13, 0x14
pslld xmm5, 0xc
por xmm5, xmm13
movdqa xmm13, xmm11
psrld xmm13, 0x14
pslld xmm11, 0xc
por xmm11, xmm13
paddd xmm10, xmm1
paddd xmm9, xmm2
paddd xmm8, xmm5
paddd xmm15, xmm11
pxor xmm4, xmm10
movdqa xmm13, xmm4
psrld xmm13, 0x18
pslld xmm4, 8
por xmm4, xmm13
pxor xmm12, xmm9
movdqa xmm13, xmm12
psrld xmm13, 0x18
pslld xmm12, 8
por xmm12, xmm13
pxor xmm7, xmm8
movdqa xmm13, xmm7
psrld xmm13, 0x18
pslld xmm7, 8
por xmm7, xmm13
movdqa xmmword [rsp + 0x30], xmm15
pxor xmm14, xmm15
movdqa xmm13, xmm14
psrld xmm13, 0x18
pslld xmm14, 8
por xmm14, xmm13
paddd xmm6, xmm4
paddd xmm0, xmm12
movdqa xmm13, xmmword [rsp + 0x20]
paddd xmm13, xmm7
movdqa xmmword [rsp + 0x20], xmm13
paddd xmm3, xmm14
pxor xmm1, xmm6
pxor xmm2, xmm0
pxor xmm5, xmm13
pxor xmm11, xmm3
movdqa xmm13, xmm1
psrld xmm13, 0x19
pslld xmm1, 7
por xmm1, xmm13
movdqa xmm13, xmm2
psrld xmm13, 0x19
pslld xmm2, 7
por xmm2, xmm13
movdqa xmm13, xmm5
psrld xmm13, 0x19
pslld xmm5, 7
por xmm5, xmm13
movdqa xmm13, xmm11
psrld xmm13, 0x19
pslld xmm11, 7
por xmm11, xmm13
pshufd xmm1, xmm1, 0x93
pshufd xmm15, xmm2, 0x93
pshufd xmm13, xmm5, 0x93
pshufd xmm11, xmm11, 0x93
pshufd xmm6, xmm6, 0x4e
pshufd xmm0, xmm0, 0x4e
pshufd xmm2, xmmword [rsp + 0x20], 0x4e
movdqa xmmword [rsp + 0x20], xmm2
pshufd xmm2, xmm3, 0x4e
movdqa xmmword [rsp + 0x40], xmm2
pshufd xmm3, xmm4, 0x39
pshufd xmm4, xmm12, 0x39
pshufd xmm2, xmm7, 0x39
pshufd xmm5, xmm14, 0x39
dec edx
jne 0x1401e42a0
movdqa xmm7, xmmword [0x1403be040]
paddd xmm10, xmm7
paddd xmm9, xmm7
paddd xmm8, xmm7
movdqa xmm12, xmmword [rsp + 0x30]
paddd xmm12, xmm7
movdqa xmmword [rsp + 0x30], xmm12
movdqa xmm14, xmmword [rsp + 0x60]
movdqa xmm12, xmmword [rsp + 0x50]
jmp 0x1401e48ed
mov rdi, r8
mov r14, rcx
mov ebx, edx
call sym.std_detect::detect::cache::detect_and_initialize::h995d4eec2ccd2cf1
mov edx, ebx
mov rcx, r14
mov r8, rdi
test ax, ax
jns 0x1401e4150
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_avx2::h3116f6beb69633c0
mov rdi, r8
mov r14, rcx
mov ebx, edx
call sym.std_detect::detect::cache::detect_and_initialize::h995d4eec2ccd2cf1
mov edx, ebx
mov rcx, r14
mov r8, rdi
test eax, 0x4000
je 0x1401e4167
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_avx::he78f147a0cbbe05b
movdqa xmm10, xmmword [0x1403be050]
movdqa xmm11, xmm2
movdqa xmmword [rsp + 0x40], xmm14
movdqa xmm13, xmm2
movdqa xmmword [rsp + 0x20], xmm14
movdqa xmm15, xmm2
movdqa xmm0, xmm14
movdqa xmm1, xmm2
movdqa xmm6, xmm14
movdqa xmm2, xmm7
movdqa xmm8, xmm10
movdqa xmm9, xmm10
movdqa xmmword [rsp + 0x30], xmm10
add rax, 4
mov rdx, rax
shr rdx, 0x20
movd xmm7, edx
por xmm7, xmm12
movdqa xmm12, xmm7
pslldq xmm12, 8
shufps xmm12, xmm7, 0xe8
movd xmm7, eax
por xmm7, xmm12
movdqa xmmword [rcx + 0x20], xmm7
movdqu xmmword [r8], xmm10
movdqa xmm7, xmmword [rsp + 0xb0]
paddd xmm1, xmm7
movdqu xmmword [r8 + 0x10], xmm1
paddd xmm6, xmm14
movdqu xmmword [r8 + 0x20], xmm6
paddd xmm3, xmmword [rsp + 0xa0]
movdqu xmmword [r8 + 0x30], xmm3
movdqu xmmword [r8 + 0x40], xmm9
paddd xmm15, xmm7
movdqu xmmword [r8 + 0x50], xmm15
paddd xmm0, xmm14
movdqu xmmword [r8 + 0x60], xmm0
paddd xmm4, xmmword [rsp + 0x90]
movdqu xmmword [r8 + 0x70], xmm4
movdqu xmmword [r8 + 0x80], xmm8
paddd xmm13, xmm7
movdqu xmmword [r8 + 0x90], xmm13
movdqa xmm0, xmmword [rsp + 0x20]
paddd xmm0, xmm14
movdqu xmmword [r8 + 0xa0], xmm0
paddd xmm2, xmmword [rsp + 0x80]
movdqu xmmword [r8 + 0xb0], xmm2
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [r8 + 0xc0], xmm0
paddd xmm11, xmm7
movdqu xmmword [r8 + 0xd0], xmm11
movdqa xmm0, xmmword [rsp + 0x40]
paddd xmm0, xmm14
movdqu xmmword [r8 + 0xe0], xmm0
paddd xmm5, xmmword [rsp + 0x70]
movdqu xmmword [r8 + 0xf0], xmm5
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
ret
mov rdi, r8
mov r14, rcx
mov ebx, edx
call sym.std_detect::detect::cache::detect_and_initialize::h995d4eec2ccd2cf1
mov edx, ebx
mov rcx, r14
mov r8, rdi
test eax, 0x400
je 0x1401e417e
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_sse41::he008fb12b888fb07
mov rsi, r8
mov rbx, rcx
mov edi, edx
call sym.std_detect::detect::cache::detect_and_initialize::h995d4eec2ccd2cf1
mov edx, edi
mov rcx, rbx
mov r8, rsi
test eax, 0x200
je 0x1401e4195
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
movaps xmm9, xmmword [rsp + 0xf0]
movaps xmm10, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm12, xmmword [rsp + 0x120]
movaps xmm13, xmmword [rsp + 0x130]
movaps xmm14, xmmword [rsp + 0x140]
movaps xmm15, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rdi
pop rsi
pop r14
jmp sym.rand_chacha::guts::refill_wide::impl_ssse3::he9568f9df6285dcb