using Microsoft.VisualBasic;
using Microsoft.VisualBasic.CompilerServices;
public static string Crypt(ref string Action, ref string Key, ref string Src)
short num = (short)Strings.Len(Key);
short num6 = default(short);
if (Operators.CompareString(Action, "E", TextCompare: false) == 0)
text = Conversion.Hex(num2);
short num3 = (short)Strings.Len(Src);
for (short num4 = 1; num4 <= num3; num4 = (short)unchecked(num4 + 1))
short num5 = (short)unchecked(checked(Strings.Asc(Strings.Mid(Src, num4, 1)) + num2) % 255);
num6 = (short)((num6 >= num) ? 1 : checked((short)(num6 + 1)));
num5 = (short)(num5 ^ Strings.Asc(Strings.Mid(Key, num6, 1)));
text += Strings.Mid(Conversion.Hex(num5), 1, 2);
else if (Operators.CompareString(Action, "D", TextCompare: false) == 0)
short num2 = (short)Math.Round(Conversion.Val("&H" + Strings.Left(Src, 2)));
short num7 = (short)Strings.Len(Src);
for (short num4 = 3; num4 <= num7; num4 = (short)unchecked(num4 + 2))
short num5 = (short)Math.Round(Conversion.Val("&H" + Strings.Trim(Strings.Mid(Src, num4, 2))));
num6 = (short)((num6 >= num) ? 1 : checked((short)(num6 + 1)));
object obj = num5 ^ Strings.Asc(Strings.Mid(Key, num6, 1));
obj = ((!Operators.ConditionalCompareObjectLessEqual(obj, num2, TextCompare: false)) ? Operators.SubtractObject(obj, num2) : Operators.SubtractObject(Operators.AddObject(255, obj), num2));
text += Conversions.ToString(Strings.Chr(Conversions.ToInteger(obj)));
public static void Main()
Console.WriteLine("Hello World");
string Key = "ROBERTFKAISER";
string Src = "5B99B56B9B41E4113E1E76C4";
Console.WriteLine(Crypt(ref Action, ref Key, ref Src));