code: def _parse(self, stream, context, path):
          
          num_players = context._._._.replay.num_players
          start = stream.tell()
          # Have to read everything to be able to use find()
          read_bytes = stream.read()
          # Try to find the first marker, a portion of the next player structure
          marker_up14 = read_bytes.find(b"\x16\xc6\x00\x00\x00\x21")
          marker_up15 = read_bytes.find(b"\x16\xf0\x00\x00\x00\x21")
          marker = -1
          if marker_up14 > 0 and marker_up15 < 0:
              marker = marker_up14
          elif marker_up15 > 0 and marker_up14 < 0:
              marker = marker_up15
          # If it exists, we're not on the last player yet
          if marker > 0:
              # Backtrack through the player name
              count = 0
              while struct.unpack("<H", read_bytes[marker-2:marker])[0] != count:
                  marker -= 1
                  count += 1
              # Backtrack through the rest of the next player structure
              backtrack = 43 + num_players
          # Otherwise, this is the last player
          else:
              # Search for the scenario header
              marker = read_bytes.find(b"\xf6\x28\x9c\x3f")
              # Backtrack through the achievements and initial structure footer
              backtrack = ((1817 * (num_players - 1)) + 4 + 19)
          # Seek to the position we found
          end = start + marker - backtrack
          stream.seek(end)
          return end
docs: Parse until the end of objects data.