/// <summary>
        /// Kryen pjesetimin e numrit <see cref="x"/> me numrin <see cref="y"/> ne fushen me
        /// <see cref="z"/> elemente
        /// </summary>
        /// <param name="x">numri nga i cili do te pjesetohet numri <see cref="y"/></param>
        /// <param name="y">pjesetuesi i numrit <see cref="x"/></param>
        /// <param name="z">fusha ne te cilen do te kryhet veprimi i pjesetimi</param>
        /// <returns>vleren qe merret nga pjesetimi i dy numrave</returns>
        public static int Divide(int x, int y, int z)
        {
            // Ne fillim gjejme te anasjelltin e y ne fushen z
            int  b = Convert.ToInt32(Algebra.GCD1(y, z));
            long a = x * b;

            if (a > z)
            {
                a = a % z;
            }
            return(Convert.ToInt32(a));
        }
        /// <summary>
        /// Ben deshifrimin e numrit serial qe eshte i ruajtur ne rregjistra nga versioni i plote ne
        /// versionin DEMO
        /// </summary>
        /// <returns>numrin serial te deshifruar</returns>
        private static string DecryptKeyFull(string encrypted)
        {
            try
            {
                string keyFull = GetKeyValue(path, name);
                if (keyFull == null || keyFull == "")
                {
                    StoreKeyToRegistry(name, encrypted);
                    keyFull = encrypted;
                }
                Encoding ascii = Encoding.ASCII;
                int      nr;

                // Bejme deshifrimin e kohes se ngarkimit te sistemit
                string loadedSystemTime = keyFull.Substring(keyFull.Length - 4, 4);
                string systemTimeDec    = "";
                Byte[] systemTime       = ascii.GetBytes(loadedSystemTime);
                foreach (Byte b in systemTime)
                {
                    nr = Algebra.GetIndex(Convert.ToChar(b));
                    // Bejme kete veprim: ((nr + 8) / 3) - 15
                    nr             = Algebra.Substract(Algebra.Divide(Algebra.Sum(nr, 6, 59), 3, 59), 15, 59);
                    systemTimeDec += Algebra.GetChar(nr).ToString();
                }

                // Bejme deshifrimin e numrit serial te sistemit
                string systemSerial        = keyFull.Substring(0, 8);
                string systemSerialDec     = "";
                Byte[] encodedSystemSerial = ascii.GetBytes(systemSerial);
                foreach (Byte b in encodedSystemSerial)
                {
                    nr = Algebra.GetIndex(Convert.ToChar(b));
                    // Bejme kete veprim: ((nr - 7) / 10) + 2
                    nr = Algebra.Sum(Algebra.Divide(Algebra.Substract(nr, 7, 59), 10, 59), 2, 59);
                    systemSerialDec += Algebra.GetChar(nr).ToString();
                }

                // Bejme deshifrimin e numrit serial te hard diskut
                string hardDiskSerial    = keyFull.Substring(8, 8);
                string hardDiskSerialDec = "";
                Byte[] encodedHDSerial   = ascii.GetBytes(hardDiskSerial);
                int    i = 0;
                foreach (Byte b in encodedHDSerial)
                {
                    nr = Algebra.GetIndex(Convert.ToChar(b));
                    // Bejme kete veprim: ((nr - ((i * 3) + 3) / 7) - 6
                    nr = Algebra.Substract(Algebra.Divide(Algebra.Substract(nr,
                                                                            Algebra.Sum(Algebra.Multiply(i, 3, 59), 3, 59), 59), 7, 59), 6, 59);
                    hardDiskSerialDec += Algebra.GetChar(nr).ToString();
                    i++;
                }
                // Tani bashkojme vlerat e gjetura nga deshifrimet e mesiperme dhe e kthejme kete vlere
                return(systemSerialDec + hardDiskSerialDec + systemTimeDec);
            }
            catch (Exception ex)
            {
                return("");
            }
        }