def _EndRecData64(fpin, offset, endrec):
try:<EOL><INDENT>fpin.seek(offset - sizeEndCentDir64Locator, <NUM_LIT:2>)<EOL><DEDENT>except IOError:<EOL><INDENT>return endrec<EOL><DEDENT>data = fpin.read(sizeEndCentDir64Locator)<EOL>sig, diskno, reloff, disks = struct.unpack(structEndArchive64Locator, data)<EOL>if sig != stringEndArchive64Locator:<EOL><INDENT>return endrec<EOL><DEDENT>if diskno != <NUM_LIT:0> or disks != <NUM_LIT:1>:<EOL><INDENT>raise BadZipfile("<STR_LIT>")<EOL><DEDENT>fpin.seek(offset - sizeEndCentDir64Locator - sizeEndCentDir64, <NUM_LIT:2>)<EOL>data = fpin.read(sizeEndCentDir64)<EOL>sig, sz, create_version, read_version, disk_num, disk_dir,dircount, dircount2, dirsize, diroffset =struct.unpack(structEndArchive64, data)<EOL>if sig != stringEndArchive64:<EOL><INDENT>return endrec<EOL><DEDENT>endrec[_ECD_SIGNATURE] = sig<EOL>endrec[_ECD_DISK_NUMBER] = disk_num<EOL>endrec[_ECD_DISK_START] = disk_dir<EOL>endrec[_ECD_ENTRIES_THIS_DISK] = dircount<EOL>endrec[_ECD_ENTRIES_TOTAL] = dircount2<EOL>endrec[_ECD_SIZE] = dirsize<EOL>endrec[_ECD_OFFSET] = diroffset<EOL>return endrec<EOL>
Read the ZIP64 end-of-archive records and use that to update endrec