using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Reflection;
using System.Security.Cryptography;
using System.Text;
namespace WindowsFormsApplication1
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string finalValue = "v5.5.2";
string Ve = "abcd";
string We = "efgh";
string Xe = "ijkl";
string Ye;
//GetFinalValue(ref finalValue);
if ((Ve.Trim().Length != 0) && (We.Trim().Length != 0) && (Xe.Trim().Length != 0) )
{
Ye = ComputeKey(Ve + We + finalValue.Substring(0, 4), Xe);
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
public static bool GetFinalValue(ref string finalValue)
{
try
{
Assembly assembly = Assembly.LoadFile(Application.StartupPath + @"\Alvas.Audio.dll"

;
finalValue = "v" + assembly.GetName().Version.ToString().Substring(0, 5);
return true;
}
catch (Exception)
{
return false;
}
}
public static string ComputeKey(string A_0, string A_1)
{
HashFunc hashfunc = new HashFunc(A_0);
return hashfunc.af(A_1 + "kurapica"

.ToUpper();
}
}
internal class HashFunc
{
// Fields
private int Ge;
private int He;
private int Ie;
private int Je;
private string Ke;
private string Le;
private string Me;
private string Ne;
private string Oe;
private string Pe;
private string Qe;
private string[] Re = new string[0x62];
// Methods
private string e7(string text, int index)
{
return text.Substring(0, index);
}
private string e8(string text, int index)
{
return text.Substring(text.Length - index);
}
private string e9(string A_0)
{
MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
UTF8Encoding encoding = new UTF8Encoding();
string str = "";
foreach (byte num in provider.ComputeHash(encoding.GetBytes(A_0)))
{
str = str + num.ToString();
}
return str;
}
public string af(string A_0)
{
try
{
SHA1 sha = SHA1.Create();
sha.ComputeHash(Encoding.UTF8.GetBytes(A_0));
string str = "";
for (int i = 0; i < sha.Hash.Length; i++)
{
str = str + sha.Hash[I].ToString("X2"

;
}
return str;
}
catch (Exception)
{
}
return "";
}
public HashFunc(string A_0)
{
this.Ne = this.e9("dwgxhQIeLxUA" + A_0 + "B4dHHhd"

;
this.Ke = "8x3p5BeabcdfghijklmnoqrstuvwyzACDEFGHIJKLMNOPQRSTUVWXYZ1246790";
int index = 0;
this.Ie = this.Ke.Length;
this.Re[0] = this.Ke;
int num2 = this.Ie;
for (int i = 1; i <= num2; i++)
{
this.Le = this.e7(this.Re[index], 1);
this.Me = this.e8(this.Re[index], this.Ie - 1);
this.Re[I] = this.Me + this.Le;
index++;
}
}
}
}