public static bool Parse(string act, string reg) { Version version = Version.Demo; if (reg.Length != 29) { Alert.Show("Mã đăng kí không đúng !", Color.Red); version = Version.Demo; return(false); } string x = Backward(reg.ToUpper()); long num3 = 0; long num4 = 0; long num2 = 0; char[] trimChars = new char[] { '0' }; string str = x.Substring(0, 5); if (!isMACValid(str)) { Alert.Show("Mã đăng kí không đúng !", Color.Red); version = Version.Demo; return(false); } string aaa = x.Substring(5, 6); string a = Sc.FillCharacter(SystemInfo.RunQuery("Processor", "ProcessorId"), 3); string b = Sc.FillCharacter(SystemInfo.RunQuery("BaseBoard", "Product"), 3); if (aaa != a + b) { Alert.Show("Mã đăng kí không đúng !", Color.Red); version = Version.Demo; return(false); } Radix.Decode(x.Substring(11, 6).TrimStart(trimChars), 0x24L, ref num3); long gUIDValue = GetGUIDValue(act.Replace("-", "").Replace(" ", "").ToUpper()); if (num3 != gUIDValue) { Alert.Show("Mã đăng kí không đúng !", Color.Red); version = Version.Demo; return(false); } Radix.Decode(x.Substring(17, 6).TrimStart(trimChars), 0x24L, ref num4); StaticClass.m_Version = (int)num4; if ((StaticClass.m_Version & 0x88) == 0x88) { version = Version.Pro; } else if ((StaticClass.m_Version & 0x888) == 0x888) { version = Version.Enterprise; } else { version = Version.Demo; } Radix.Decode(x.Substring(23, 6).TrimStart(trimChars), 0x24L, ref num2); DateTime time = DateTime.FromOADate((double)num2); if ((DateTime.Compare(DateTime.Today, time) > 0)) { Alert.Show("License hết hạn !", Color.Red); version = Version.Demo; return(false); } StaticClass.version = version; return(true); }