fn read_byte(data: &[u8], offset: &mut usize) -> u8