docs: def _decrypt(self, data, key):
          """Decrypt hash or block table or a sector."""
          seed1 = key
          seed2 = 0xEEEEEEEE
          result = BytesIO()
  
          for i in range(len(data) // 4):
              seed2 += self.encryption_table[0x400 + (seed1 & 0xFF)]
              seed2 &= 0xFFFFFFFF
              value = struct.unpack("<I", data[i*4:i*4+4])[0]
              value = (value ^ (seed1 + seed2)) & 0xFFFFFFFF
  
              seed1 = ((~seed1 << 0x15) + 0x11111111) | (seed1 >> 0x0B)
              seed1 &= 0xFFFFFFFF
              seed2 = value + seed2 + (seed2 << 5) + 3 & 0xFFFFFFFF
  
              result.write(struct.pack("<I", value))
  
          return result.getvalue()