using System.Collections.Generic;
public static void Main()
var bcdMapping = new Dictionary<string, string>{
var fascn = "D70339DA15256C10843C45A16858210D5B3CCC90870339A3FF";
Console.WriteLine(fascn);
for(var i=0; i<fascn.Length; i+=2)
var byteStr = fascn[i].ToString() + fascn[i+1].ToString();
var byteInt = int.Parse(byteStr, System.Globalization.NumberStyles.HexNumber);
var bitStr = Convert.ToString(byteInt, 2).PadLeft(8, '0');
string fascnDecoded = "";
for(var i=0; i<bits.Length; i+=5)
fascnDecoded += bcdMapping[bits.Substring(i, 5)];
Console.WriteLine(fascnDecoded);
twic += fascnDecoded.Substring(1, 4);
twic += fascnDecoded.Substring(6, 4);
twic += fascnDecoded.Substring(11, 6);