+# Trade memory for CPU for part of L() calculations
+_Cache = None
+
+
+def _cache_ensure():
+ global _Cache
+ if _Cache is not None:
+ return
+ cache = []
+ for byteN in xrange(8):
+ cache.append([0 for _ in xrange(256)])
+ for byteN in xrange(8):
+ for byteVal in xrange(256):
+ res64 = 0
+ val = byteVal
+ for bitN in xrange(8):
+ if val & 0x80 > 0:
+ res64 ^= A[(7 - byteN) * 8 + bitN]
+ val <<= 1
+ cache[byteN][byteVal] = res64
+ _Cache = cache
+