using System.Globalization;
public static void Main()
var str = "596d6c304c6d78354c7a4a3262585a455a6a514b";
var hexBytes = new byte[str.Length/2];
for (int x = 0; x < str.Length / 2; x++)
var hexByteString = str.Substring(x*2, 2);
hexBytes[x] = byte.Parse(hexByteString, NumberStyles.HexNumber);
var concatenatedString = string.Concat(Encoding.UTF8.GetChars(hexBytes));
Console.WriteLine(concatenatedString);
var base64Bytes = Convert.FromBase64String(concatenatedString);
var decodedString = string.Concat(Encoding.UTF8.GetChars(base64Bytes));
Console.WriteLine(decodedString);