private uint GetTime(UInt32 data, ref UInt16 numOfBytes)
{
byte[] buff = BitConverter.GetBytes(data); numOfBytes++;
for (int i = 0; i < buff.Length; i++) { if ((buff[i] & 0x80) > 0) { numOfBytes++; } else { break; } }
for (int i = numOfBytes; i < 4; i++) buff[i] = 0x00;
Array.Reverse(buff);
data = BitConverter.ToUInt32(buff, 0);
data >>= (32 - (numOfBytes * 8));
UInt32 b = data;
UInt32 bffr = (data & 0x7F);
int c = 1;
while ((data >>= 8) > 0)
{
bffr |= ((data & 0x7F) << (7 * c)); c++;
}
return bffr;
}