Maybe I am wrong , but
initializing RAF true gives you raf.ReadShort(8) = 0D61
So, try
raf.Initialize3(b, false)
this will give you raf.ReadShort(8) = x610D (0110000100001101b)
shift it right 3 places to keep just the 13 bits you need --> 0000110000100001b (x0C21)
now, since altitude is an int (4 bytes) you need to mask it with 00FF
and that will finally yeld 33meters (battery 80%)
Dim bc As ByteConverter
Dim b() As Byte = bc.HexToBytes("bd534f4287228a40610d0800")
Dim raf As RandomAccessFile
raf.Initialize3(b, False) 'big endian
Dim altitude As Int = raf.ReadShort(8)
Log(altitude) '24845 or 610D
altitude = Bit.ShiftRight(altitude, 3)
Log(altitude) '3105 or C21
altitude = Bit.And(0x00ff, altitude)
Log(altitude) '33 meters
udg