Earlier quoted context omitted.
I think this is the format, some parts are split ( maybe some obfuscation attempt ) 0-4 month 4-7 year 8-10 hour 11-15 day 22-23 hour 24-29 flags 30-31 year
I might be misunderstanding, but this seems very wrong. your method on the first entry: 10011011010100101100001101010000 year = 101 00 (20? year should be 25 or 2025) month = 1001 (9, but month is Nov) day = 1001 (9, not enough bits to encode large days) hour = 01 1 or 01 11 (3, 7, or 14 reversed, should be 11) no minute field
0x9B530150 -> 0x5001539B ->
01(year_1) 010000(flags) 00(hour_2) 000001(minute) 01010(day) 011(hour_1) 1001(year_2) 1011(month)
month 1011 -> 11
year 01 1001 -> 25
day = 01010 -> 10
hour = 011 00 -> 12
minute = 000001 -> 1
with no endianness change should be:
1001(year_2) 1011(month) 01010(day) 01100(hour) 000001(minute) 01(year_1) 010000(flags)
with your data:
1001(year_2) 1011(month) 01010(day) 01011 (hour) 000011(minute) 01(year_1) 010000(flags)
16+9=25 11 10 11 3