Reconstructing a Dead USB protocol: From Unknown Chip to Working Implementation