Console.WriteLine(ConvertUid("0005626226"))
Console.WriteLine(ConvertUid("0007141772"))
Console.WriteLine(ConvertUid("0005579754"))
Console.WriteLine(ConvertUid("0006465425"))
Console.WriteLine(ConvertUid("0005416498"))
Private Function ConvertUid(RawData As String) As String
Dim RawHexString As String = Convert.ToInt64(RawData).ToString("X10")
Dim RawReversedNibbleArray() As Char = {}
Array.Resize(RawReversedNibbleArray, RawHexString.Length)
For Index As Integer = 0 To RawHexString.Length - 1
Dim RawHexDigit As Char = RawHexString(Index)
Dim Nibble As Integer = Convert.ToInt64(RawHexDigit, 16)
Dim NotReversedNibble() As char = Convert.ToString(Nibble, 2).PadLeft(4, "0").ToCharArray()
Array.Reverse(NotReversedNibble)
Dim ReversedNibble as String = New String(NotReversedNibble)
RawReversedNibbleArray(Index + 1) = Convert.ToString(Convert.ToInt64(ReversedNibble, 2), 16)(0)
RawReversedNibbleArray(Index - 1) = Convert.ToString(Convert.ToInt64(ReversedNibble, 2), 16)(0)
Dim HexResult As String = New String(RawReversedNibbleArray)
Return Convert.ToString(Convert.ToInt64(HexResult, 16), 10).PadLeft(10, "0")