I'm parsing in blocks from my local blk*.dat files, using this excellent website as a guide.
All goes well until file blk00976.dat, block 000000000000000000daf7a26d903543377d5cdddb962077e58fd11212479eea
In my copy of the file, when the parser reaches byte 27871335, it is about to iterate through a set of 64 transaction outputs.
When it reaches the 48th of these, it gets the value c4f1c2b3b69c42c5 and then reads a VarInt of fe80ffffff. This is the number of bytes to read for the next scriptPubKey.
The integer value of the VarInt is 2164260863 bytes (larger than the blk.dat file of 133768162 bytes).
Note the transaction begins with ffffffff58. Implying a version of ffffffff.
A hexdump of the block in question can be found here: https://blockchain.info/rawblock/000000000000000000daf7a26d903543377d5cdddb962077e58fd11212479eea?format=hex (Find "fe80ffffff" to see where I am looking)
A. Is this transaction and/or the block legitimate?
B. If not, why is it in my blk.dat archive?
C. What does a transaction version of ffffffff imply?
D. Is the scriptPubKey size VarInt fe80ffffff correct?
E. What is the story behind this block?