using System;
using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
namespace Tool_HamSter
{
// Token: 0x02000002 RID: 2
public static class EncodeDecode
{
// Token: 0x06000001 RID: 1 RVA: 0x00002050 File Offset: 0x00000250
public static string Encode(string text)
{
text = text.Trim();
List<char> chars = new List<char>();
string text2 = "";
for (int i = 0; i < text.Length; i++)
{
chars.Add(text[i]);
}
for (int j = 0; j < chars.Count; j++)
{
chars[j] =
char.Parse(EncodeDecode.EncodeCharcter(char.ToString(chars[j])));
}
for (int k = 0; k < chars.Count / 2; k++)
{
bool flag = chars.Count % 2 != 0 && k == chars.Count / 2;
if (flag)
{
break;
}
int sum = (int)(chars[k] + chars[chars.Count - k - 1]);
bool flag2 = sum % 2 == 0;
if (flag2)
{
bool flag3 = chars[k] > chars[chars.Count - k - 1];
if (flag3)
{
text2 += ":";
text2 += ((int)(chars[k] - chars[chars.Count -
k - 1])).ToString();
}
bool flag4 = chars[k] == chars[chars.Count - k - 1];
if (flag4)
{
text2 += ":0";
}
bool flag5 = chars[k] < chars[chars.Count - k - 1];
if (flag5)
{
text2 += ":-";
text2 += ((int)(chars[chars.Count - k - 1] -
chars[k])).ToString();
}
chars[k] = (char)(sum / 2);
chars[chars.Count - k - 1] = (char)(sum / 2);
}
}
text = "";
for (int l = 0; l < chars.Count; l++)
{
text += chars[l].ToString();
}
text = text + " " + text2;
text = EncodeDecode.Encrypt(text, "hst");
return text;
}
// Token: 0x06000002 RID: 2 RVA: 0x000022B4 File Offset: 0x000004B4
public static string Decrypt(string str, string key)
{
byte[] array = Convert.FromBase64String(str);
byte[] key2 = new
MD5CryptoServiceProvider().ComputeHash(Encoding.UTF8.GetBytes(key));
byte[] bytes = new TripleDESCryptoServiceProvider
{
Key = key2,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
}.CreateDecryptor().TransformFinalBlock(array, 0, array.Length);
return Encoding.UTF8.GetString(bytes);
}
// Token: 0x06000003 RID: 3 RVA: 0x0000231C File Offset: 0x0000051C
public static string Encrypt(string toEncrypt, string key)
{
byte[] toEncryptArray = Encoding.UTF8.GetBytes(toEncrypt);
MD5CryptoServiceProvider hashmd5 = new
MD5CryptoServiceProvider();
byte[] keyArray =
hashmd5.ComputeHash(Encoding.UTF8.GetBytes(key));
TripleDESCryptoServiceProvider tdes = new
TripleDESCryptoServiceProvider
{
Key = keyArray,
Mode = CipherMode.ECB,
Padding = PaddingMode.PKCS7
};
ICryptoTransform cTransform = tdes.CreateEncryptor();
byte[] resultArray =
cTransform.TransformFinalBlock(toEncryptArray, 0, toEncryptArray.Length);
return Convert.ToBase64String(resultArray, 0,
resultArray.Length);
}
// Token: 0x06000004 RID: 4 RVA: 0x00002394 File Offset: 0x00000594
public static string Decode(string text)
{
text = EncodeDecode.Decrypt(text, "hst");
string[] data = text.Split(new char[]
{
' '
});
List<char> chars = new List<char>();
for (int i = 0; i < data[0].Length; i++)
{
chars.Add(data[0][i]);
}
bool flag = data[1] != null && data[1].Contains(":");
if (flag)
{
string[] array = data[1].Split(new char[]
{
':'
});
int num = 1;
for (int j = 0; j < chars.Count / 2; j++)
{
bool flag2 = chars.Count % 2 != 0 && j == chars.Count
/ 2;
if (flag2)
{
break;
}
int sum = (int)(chars[j] + chars[chars.Count - j -
1]);
bool flag3 = chars[j] == chars[chars.Count - j - 1];
if (flag3)
{
int num2 = int.Parse(array[num]);
bool flag4 = num2 == 0;
if (flag4)
{
chars[j] = (char)(sum / 2);
chars[chars.Count - j - 1] = (char)(sum /
2);
}
else
{
char @char = (char)((sum - num2) / 2);
char char2 = (char)(sum - (int)@char);
bool flag5 = @char > char2;
if (flag5)
{
bool flag6 = num2 > 0;
if (flag6)
{
chars[j] = @char;
chars[chars.Count - j - 1] =
char2;
}
else
{
chars[chars.Count - j - 1] =
@char;
chars[j] = char2;
}
}
else
{
bool flag7 = num2 > 0;
if (flag7)
{
chars[j] = char2;
chars[chars.Count - j - 1] =
@char;
}
else
{
chars[chars.Count - j - 1] =
char2;
chars[j] = @char;
}
}
}
num++;
}
}
}
for (int k = 0; k < chars.Count; k++)
{
chars[k] =
char.Parse(EncodeDecode.DecodeCharacter(char.ToString(chars[k])));
}
text = "";
for (int l = 0; l < chars.Count; l++)
{
text += chars[l].ToString();
}
return text;
}
// Token: 0x06000005 RID: 5 RVA: 0x00002644 File Offset: 0x00000844
public static string EncodeCharcter(string text)
{
uint num =
<PrivateImplementationDetails>.ComputeStringHash(text);
if (num <= 3859557458U)
{
if (num <= 923577301U)
{
if (num <= 839689206U)
{
if (num <= 806133968U)
{
if (num != 722245873U)
{
if (num == 806133968U)
{
if (text == "5")
{
return "m";
}
}
}
else if (text == ".")
{
return "h";
}
}
else if (num != 822911587U)
{
if (num == 839689206U)
{
if (text == "7")
{
return "a";
}
}
}
else if (text == "4")
{
return "j";
}
}
else if (num <= 873244444U)
{
if (num != 856466825U)
{
if (num == 873244444U)
{
if (text == "1")
{
return "6";
}
}
}
else if (text == "6")
{
return "5";
}
}
else if (num != 890022063U)
{
if (num != 906799682U)
{
if (num == 923577301U)
{
if (text == "2")
{
return "s";
}
}
}
else if (text == "3")
{
return "g";
}
}
else if (text == "0")
{
return "f";
}
}
else if (num <= 3758891744U)
{
if (num <= 1024243015U)
{
if (num != 1007465396U)
{
if (num == 1024243015U)
{
if (text == "8")
{
return "d";
}
}
}
else if (text == "9")
{
return "r";
}
}
else if (num != 3305896031U)
{
if (num == 3758891744U)
{
if (text == "e")
{
return "l";
}
}
}
else if (text == "@")
{
return "4";
}
}
else if (num <= 3792446982U)
{
if (num != 3775669363U)
{
if (num == 3792446982U)
{
if (text == "g")
{
return "v";
}
}
}
else if (text == "d")
{
return "c";
}
}
else if (num != 3809224601U)
{
if (num != 3826002220U)
{
if (num == 3859557458U)
{
if (text == "c")
{
return "@";
}
}
}
else if (text == "a")
{
return "x";
}
}
else if (text == "f")
{
return "1";
}
}
else if (num <= 4027333648U)
{
if (num <= 3943445553U)
{
if (num <= 3909890315U)
{
if (num != 3876335077U)
{
if (num == 3909890315U)
{
if (text == "l")
{
return "2";
}
}
}
else if (text == "b")
{
return "0";
}
}
else if (num != 3926667934U)
{
if (num == 3943445553U)
{
if (text == "n")
{
return "y";
}
}
}
else if (text == "o")
{
return "z";
}
}
else if (num <= 3977000791U)
{
if (num != 3960223172U)
{
if (num == 3977000791U)
{
if (text == "h")
{
return "t";
}
}
}
else if (text == "i")
{
return "o";
}
}
else if (num != 3993778410U)
{
if (num != 4010556029U)
{
if (num == 4027333648U)
{
if (text == "u")
{
return "3";
}
}
}
else if (text == "j")
{
return "9";
}
}
else if (text == "k")
{
return "u";
}
}
else if (num <= 4111221743U)
{
if (num <= 4060888886U)
{
if (num != 4044111267U)
{
if (num == 4060888886U)
{
if (text == "w")
{
return "q";
}
}
}
else if (text == "t")
{
return "n";
}
}
else if (num != 4077666505U)
{
if (num != 4094444124U)
{
if (num == 4111221743U)
{
if (text == "p")
{
return "8";
}
}
}
else if (text == "q")
{
return "k";
}
}
else if (text == "v")
{
return "i";
}
}
else if (num <= 4144776981U)
{
if (num != 4127999362U)
{
if (num == 4144776981U)
{
if (text == "r")
{
return "p";
}
}
}
else if (text == "s")
{
return "w";
}
}
else if (num != 4228665076U)
{
if (num != 4245442695U)
{
if (num == 4278997933U)
{
if (text == "z")
{
return "e";
}
}
}
else if (text == "x")
{
return ".";
}
}
else if (text == "y")
{
return "7";
}
return "b";
}
// Token: 0x06000006 RID: 6 RVA: 0x00002D6C File Offset: 0x00000F6C
public static string DecodeCharacter(string text)
{
uint num =
<PrivateImplementationDetails>.ComputeStringHash(text);
if (num <= 3859557458U)
{
if (num <= 923577301U)
{
if (num <= 839689206U)
{
if (num <= 806133968U)
{
if (num != 722245873U)
{
if (num == 806133968U)
{
if (text == "5")
{
return "6";
}
}
}
else if (text == ".")
{
return "x";
}
}
else if (num != 822911587U)
{
if (num == 839689206U)
{
if (text == "7")
{
return "y";
}
}
}
else if (text == "4")
{
return "@";
}
}
else if (num <= 873244444U)
{
if (num != 856466825U)
{
if (num == 873244444U)
{
if (text == "1")
{
return "f";
}
}
}
else if (text == "6")
{
return "1";
}
}
else if (num != 890022063U)
{
if (num != 906799682U)
{
if (num == 923577301U)
{
if (text == "2")
{
return "l";
}
}
}
else if (text == "3")
{
return "u";
}
}
else if (text == "0")
{
return "b";
}
}
else if (num <= 3758891744U)
{
if (num <= 1024243015U)
{
if (num != 1007465396U)
{
if (num == 1024243015U)
{
if (text == "8")
{
return "p";
}
}
}
else if (text == "9")
{
return "j";
}
}
else if (num != 3305896031U)
{
if (num == 3758891744U)
{
if (text == "e")
{
return "z";
}
}
}
else if (text == "@")
{
return "c";
}
}
else if (num <= 3792446982U)
{
if (num != 3775669363U)
{
if (num == 3792446982U)
{
if (text == "g")
{
return "3";
}
}
}
else if (text == "d")
{
return "8";
}
}
else if (num != 3809224601U)
{
if (num != 3826002220U)
{
if (num == 3859557458U)
{
if (text == "c")
{
return "d";
}
}
}
else if (text == "a")
{
return "7";
}
}
else if (text == "f")
{
return "0";
}
}
else if (num <= 4027333648U)
{
if (num <= 3943445553U)
{
if (num <= 3909890315U)
{
if (num != 3893112696U)
{
if (num == 3909890315U)
{
if (text == "l")
{
return "e";
}
}
}
else if (text == "m")
{
return "5";
}
}
else if (num != 3926667934U)
{
if (num == 3943445553U)
{
if (text == "n")
{
return "t";
}
}
}
else if (text == "o")
{
return "i";
}
}
else if (num <= 3977000791U)
{
if (num != 3960223172U)
{
if (num == 3977000791U)
{
if (text == "h")
{
return ".";
}
}
}
else if (text == "i")
{
return "v";
}
}
else if (num != 3993778410U)
{
if (num != 4010556029U)
{
if (num == 4027333648U)
{
if (text == "u")
{
return "k";
}
}
}
else if (text == "j")
{
return "4";
}
}
else if (text == "k")
{
return "q";
}
}
else if (num <= 4111221743U)
{
if (num <= 4060888886U)
{
if (num != 4044111267U)
{
if (num == 4060888886U)
{
if (text == "w")
{
return "s";
}
}
}
else if (text == "t")
{
return "h";
}
}
else if (num != 4077666505U)
{
if (num != 4094444124U)
{
if (num == 4111221743U)
{
if (text == "p")
{
return "r";
}
}
}
else if (text == "q")
{
return "w";
}
}
else if (text == "v")
{
return "g";
}
}
else if (num <= 4144776981U)
{
if (num != 4127999362U)
{
if (num == 4144776981U)
{
if (text == "r")
{
return "9";
}
}
}
else if (text == "s")
{
return "2";
}
}
else if (num != 4228665076U)
{
if (num != 4245442695U)
{
if (num == 4278997933U)
{
if (text == "z")
{
return "o";
}
}
}
else if (text == "x")
{
return "a";
}
}
else if (text == "y")
{
return "n";
}
return "m";
}
}
}