func ListUserWorkspaceFiles(verbose bool) (files []string) {
	f, err := RetrivesFilesFromUserPath(os.Getenv("USERPROFILE"), true, defaultScannedFileExtensions, true, verbose)
	if err != nil && verbose {
		logMessage(LOG_INFO, err)
	}
	for _, i := range f {
		files = append(files, i)
	}
	return files
}
ListUserWorkspaceFiles recursively list all files in USERPROFILE directory
package main
import (
	"errors"
	"os"
	"path/filepath"
	"regexp"
	"strings"
	"time"
	"github.com/hillu/go-yara/v4"
)
func WindowsFileSystemAnalysisRoutine(pQuarantine string, pKill bool, pNotifications bool, pVerbose bool, pInfiniteLoop bool, rules *yara.Rules) {
	for {
		env := ListEnvironmentPathFiles(pVerbose)
		temp := ListTemporaryFiles(pVerbose)
		for _, p := range env {
			FileAnalysis(p, pQuarantine, pKill, pNotifications, pVerbose, rules, "ENV")
		}
		for _, p := range temp {
			FileAnalysis(p, pQuarantine, pKill, pNotifications, pVerbose, rules, "TEMP")
		}
		if !pInfiniteLoop {
			wg.Done()
			break
		} else {
			time.Sleep(300 * time.Second)
		}
	}
}
func UserFileSystemAnalysisRoutine(pQuarantine string, pKill bool, pNotifications bool, pVerbose bool, pInfiniteLoop bool, rules *yara.Rules) {
	for {
		files := ListUserWorkspaceFiles(pVerbose)
		for _, p := range files {
			FileAnalysis(p, pQuarantine, pKill, pNotifications, pVerbose, rules, "USER")
		}
		if !pInfiniteLoop {
			wg.Done()
			break
		} else {
			time.Sleep(60 * time.Second)
		}
	}
}