66: def isaac
67: i = 0
68: x = 0
69: y = 0
70:
71: @cc += 1
72: @bb += @cc
73: @bb & 0xffffffff
74:
75: while (i < 256) do
76: x = @mm[i]
77: @aa = (@mm[(i + 128) & 255] + (@aa^(@aa << 13)) ) & 0xffffffff
78: @mm[i] = y = (@mm[(x>>2)&255] + @aa + @bb ) & 0xffffffff
79: @randrsl[i] = @bb = (@mm[(y>>10)&255] + x ) & 0xffffffff
80: i += 1
81:
82: x = @mm[i]
83: @aa = (@mm[(i+128)&255] + (@aa^(0x03ffffff & (@aa >> 6))) ) & 0xffffffff
84: @mm[i] = y = (@mm[(x>>2)&255] + @aa + @bb ) & 0xffffffff
85: @randrsl[i] = @bb = (@mm[(y>>10)&255] + x ) & 0xffffffff
86: i += 1
87:
88: x = @mm[i]
89: @aa = (@mm[(i + 128)&255] + (@aa^(@aa << 2)) ) & 0xffffffff
90: @mm[i] = y = (@mm[(x>>2)&255] + @aa + @bb ) & 0xffffffff
91: @randrsl[i] = @bb = (@mm[(y>>10)&255] + x ) & 0xffffffff
92: i += 1
93:
94: x = @mm[i]
95: @aa = (@mm[(i+128)&255] + (@aa^(0x0000ffff & (@aa >> 16))) ) & 0xffffffff
96: @mm[i] = y = (@mm[(x>>2)&255] + @aa + @bb ) & 0xffffffff
97: @randrsl[i] = @bb = (@mm[(y>>10)&255] + x ) & 0xffffffff
98: i += 1
99: end
100: end