Even though this is python code, lot of stuff is coded at the bit level:
dual-g5 lib # grep U32 *
U32.py:class U32:
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: def __neg__(self): return U32(self.v)
U32.py: def __pos__(self): return U32(self.v)
U32.py: def __abs__(self): return U32(self.v)
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: r = U32()
U32.py: return U32(not norm(self.v))
des_c.py:from U32 import U32
des_c.py: l = U32(c[0])
des_c.py: l = l | (U32(c[1]) << 8)
des_c.py: l = l | (U32(c[2]) << 16)
des_c.py: l = l | (U32(c[3]) << 24)
des_c.py: l1, l2 = U32(0), U32(0)
des_c.py: l2 = l2 | (U32(c[7]) << 24)
des_c.py: l2 = l2 | (U32(c[6]) << 16)
des_c.py: l2 = l2 | (U32(c[5]) << 8)
des_c.py: l2 = l2 | U32(c[4])
des_c.py: l1 = l1 | (U32(c[3]) << 24)
des_c.py: l1 = l1 | (U32(c[2]) << 16)
des_c.py: l1 = l1 | (U32(c[1]) << 8)
des_c.py: l1 = l1 | U32(c[0])
des_c.py: c.append(int(l & U32(0xFF)))
des_c.py: c.append(int((l >> 8) & U32(0xFF)))
des_c.py: c.append(int((l >> 16) & U32(0xFF)))
des_c.py: c.append(int((l >> 24) & U32(0xFF)))
des_c.py: l = U32(c[0] << 24)
des_c.py: l = l | (U32(c[1]) << 16)
des_c.py: l = l | (U32(c[2]) << 8)
des_c.py: l = l | (U32(c[3]))
des_c.py: c.append(int((l >> 24) & U32(0xFF)))
des_c.py: c.append(int((l >> 16) & U32(0xFF)))
des_c.py: c.append(int((l >> 8) & U32(0xFF)))
des_c.py: c.append(int((l ) & U32(0xFF)))
des_c.py: c[7] = int((l2 >> 24) & U32(0xFF))
des_c.py: c[6] = int((l2 >> 16) & U32(0xFF))
des_c.py: c[5] = int((l2 >> 8) & U32(0xFF))
des_c.py: c[4] = int((l2 ) & U32(0xFF))
des_c.py: c[3] = int((l1 >> 24) & U32(0xFF))
des_c.py: c[2] = int((l1 >> 16) & U32(0xFF))
des_c.py: c[1] = int((l1 >> 8) & U32(0xFF))
des_c.py: c[0] = int((l1 ) & U32(0xFF))
des_c.py: L = L ^ (des_SPtrans[1][int((t ) & U32(0x3f))] | \
des_c.py: des_SPtrans[3][int((t >> 8) & U32(0x3f))] | \
des_c.py: des_SPtrans[5][int((t >> 16) & U32(0x3f))] | \
des_c.py: des_SPtrans[7][int((t >> 24) & U32(0x3f))] | \
des_c.py: des_SPtrans[0][int((u ) & U32(0x3f))] | \
des_c.py: des_SPtrans[2][int((u >> 8) & U32(0x3f))] | \
des_c.py: des_SPtrans[4][int((u >> 16) & U32(0x3f))] | \
des_c.py: des_SPtrans[6][int((u >> 24) & U32(0x3f))])
des_c.py: # input - U32[]
des_c.py: # output - U32[]
des_c.py: # ks - des_key_shedule - U32[2][16]
des_c.py: # l, r, t, u - U32
des_c.py: # s - U32[]
des_c.py: t = U32(0)
des_c.py: u = U32(0)
des_c.py: r, l, t = PERM_OP((r, l, t), 4, U32(0x0f0f0f0fL))
des_c.py: l, r, t = PERM_OP((l, r, t), 16, U32(0x0000ffffL))
des_c.py: r, l, t = PERM_OP((r, l, t), 2, U32(0x33333333L))
des_c.py: l, r, t = PERM_OP((l, r, t), 8, U32(0x00ff00ffL))
des_c.py: r, l, t = PERM_OP((r, l, t), 1, U32(0x55555555L))
des_c.py: r, l, t = PERM_OP((r, l, t), 1, U32(0x55555555L))
des_c.py: l, r, t = PERM_OP((l, r, t), 8, U32(0x00ff00ffL))
des_c.py: r, l, t = PERM_OP((r, l, t), 2, U32(0x33333333L))
des_c.py: l, r, t = PERM_OP((l, r, t), 16, U32(0x0000ffffL))
des_c.py: r, l, t = PERM_OP((r, l, t), 4, U32(0x0f0f0f0fL))
des_c.py: l, r, t, u = U32(0), U32(0), U32(0), U32(0)
des_c.py: # ks - des_key_shedule - U32[2][16]
des_c.py: l0, l1, ll[0], ll[1] = U32(0), U32(0), U32(0), U32(0)
des_c.py: t = U32(0)
des_c.py: d, c, t = PERM_OP((d, c, t), 4, U32(0x0f0f0f0fL))
des_c.py: c, t = HPERM_OP((c, t), -2, U32(0xcccc0000L))
des_c.py: d, t = HPERM_OP((d, t), -2, U32(0xcccc0000L))
des_c.py: d, c, t = PERM_OP((d, c, t), 1, U32(0x55555555L))
des_c.py: c, d, t = PERM_OP((c, d, t), 8, U32(0x00ff00ffL))
des_c.py: d, c, t = PERM_OP((d, c, t), 1, U32(0x55555555L))
des_c.py: d = (((d & U32(0x000000ffL)) << 16)|(d & U32(0x0000ff00L))|((d & U32(0x00ff0000L)) >> 16)|((c & U32(0xf0000000L)) >> 4))
des_c.py: c = c & U32(0x0fffffffL)
des_c.py: c = c & U32(0x0fffffffL)
des_c.py: d = d & U32(0x0fffffffL)
des_c.py: s= des_skb[0][int((c ) & U32(0x3f))]|\
des_c.py: des_skb[1][int(((c>> 6) & U32(0x03))|((c>> 7) & U32(0x3c)))]|\
des_c.py: des_skb[2][int(((c>>13) & U32(0x0f))|((c>>14) & U32(0x30)))]|\
des_c.py: des_skb[3][int(((c>>20) & U32(0x01))|((c>>21) & U32(0x06)) | ((c>>22) & U32(0x38)))]
des_c.py: t= des_skb[4][int((d ) & U32(0x3f) )]|\
des_c.py: des_skb[5][int(((d>> 7) & U32(0x03))|((d>> 8) & U32(0x3c)))]|\
des_c.py: des_skb[6][int((d>>15) & U32(0x3f) )]|\
des_c.py: des_skb[7][int(((d>>21) & U32(0x0f))|((d>>22) & U32(0x30)))]
des_c.py: k.append(((t << 16)|(s & U32(0x0000ffffL))) & U32(0xffffffffL))
des_c.py: s = ((s >> 16)|(t & U32(0xffff0000L)))
des_c.py: k.append(s & U32(0xffffffffL))
des_data.py:from U32 import U32
des_data.py:U32(0x00820200L), U32(0x00020000L), U32(0x80800000L), U32(0x80820200L),
des_data.py:U32(0x00800000L), U32(0x80020200L), U32(0x80020000L), U32(0x80800000L),
des_data.py:U32(0x80020200L), U32(0x00820200L), U32(0x00820000L), U32(0x80000200L),
des_data.py:U32(0x80800200L), U32(0x00800000L), U32(0x00000000L), U32(0x80020000L),
des_data.py:U32(0x00020000L), U32(0x80000000L), U32(0x00800200L), U32(0x00020200L),
des_data.py:U32(0x80820200L), U32(0x00820000L), U32(0x80000200L), U32(0x00800200L),
des_data.py:U32(0x80000000L), U32(0x00000200L), U32(0x00020200L), U32(0x80820000L),
des_data.py:U32(0x00000200L), U32(0x80800200L), U32(0x80820000L), U32(0x00000000L),
des_data.py:U32(0x00000000L), U32(0x80820200L), U32(0x00800200L), U32(0x80020000L),
des_data.py:U32(0x00820200L), U32(0x00020000L), U32(0x80000200L), U32(0x00800200L),
des_data.py:U32(0x80820000L), U32(0x00000200L), U32(0x00020200L), U32(0x80800000L),
des_data.py:U32(0x80020200L), U32(0x80000000L), U32(0x80800000L), U32(0x00820000L),
des_data.py:U32(0x80820200L), U32(0x00020200L), U32(0x00820000L), U32(0x80800200L),
des_data.py:U32(0x00800000L), U32(0x80000200L), U32(0x80020000L), U32(0x00000000L),
des_data.py:U32(0x00020000L), U32(0x00800000L), U32(0x80800200L), U32(0x00820200L),
des_data.py:U32(0x80000000L), U32(0x80820000L), U32(0x00000200L), U32(0x80020200L),
des_data.py:U32(0x10042004L), U32(0x00000000L), U32(0x00042000L), U32(0x10040000L),
des_data.py:U32(0x10000004L), U32(0x00002004L), U32(0x10002000L), U32(0x00042000L),
des_data.py:U32(0x00002000L), U32(0x10040004L), U32(0x00000004L), U32(0x10002000L),
des_data.py:U32(0x00040004L), U32(0x10042000L), U32(0x10040000L), U32(0x00000004L),
des_data.py:U32(0x00040000L), U32(0x10002004L), U32(0x10040004L), U32(0x00002000L),
des_data.py:U32(0x00042004L), U32(0x10000000L), U32(0x00000000L), U32(0x00040004L),
des_data.py:U32(0x10002004L), U32(0x00042004L), U32(0x10042000L), U32(0x10000004L),
des_data.py:U32(0x10000000L), U32(0x00040000L), U32(0x00002004L), U32(0x10042004L),
des_data.py:U32(0x00040004L), U32(0x10042000L), U32(0x10002000L), U32(0x00042004L),
des_data.py:U32(0x10042004L), U32(0x00040004L), U32(0x10000004L), U32(0x00000000L),
des_data.py:U32(0x10000000L), U32(0x00002004L), U32(0x00040000L), U32(0x10040004L),
des_data.py:U32(0x00002000L), U32(0x10000000L), U32(0x00042004L), U32(0x10002004L),
des_data.py:U32(0x10042000L), U32(0x00002000L), U32(0x00000000L), U32(0x10000004L),
des_data.py:U32(0x00000004L), U32(0x10042004L), U32(0x00042000L), U32(0x10040000L),
des_data.py:U32(0x10040004L), U32(0x00040000L), U32(0x00002004L), U32(0x10002000L),
des_data.py:U32(0x10002004L), U32(0x00000004L), U32(0x10040000L), U32(0x00042000L),
des_data.py:U32(0x41000000L), U32(0x01010040L), U32(0x00000040L), U32(0x41000040L),
des_data.py:U32(0x40010000L), U32(0x01000000L), U32(0x41000040L), U32(0x00010040L),
des_data.py:U32(0x01000040L), U32(0x00010000L), U32(0x01010000L), U32(0x40000000L),
des_data.py:U32(0x41010040L), U32(0x40000040L), U32(0x40000000L), U32(0x41010000L),
des_data.py:U32(0x00000000L), U32(0x40010000L), U32(0x01010040L), U32(0x00000040L),
des_data.py:U32(0x40000040L), U32(0x41010040L), U32(0x00010000L), U32(0x41000000L),
des_data.py:U32(0x41010000L), U32(0x01000040L), U32(0x40010040L), U32(0x01010000L),
des_data.py:U32(0x00010040L), U32(0x00000000L), U32(0x01000000L), U32(0x40010040L),
des_data.py:U32(0x01010040L), U32(0x00000040L), U32(0x40000000L), U32(0x00010000L),
des_data.py:U32(0x40000040L), U32(0x40010000L), U32(0x01010000L), U32(0x41000040L),
des_data.py:U32(0x00000000L), U32(0x01010040L), U32(0x00010040L), U32(0x41010000L),
des_data.py:U32(0x40010000L), U32(0x01000000L), U32(0x41010040L), U32(0x40000000L),
des_data.py:U32(0x40010040L), U32(0x41000000L), U32(0x01000000L), U32(0x41010040L),
des_data.py:U32(0x00010000L), U32(0x01000040L), U32(0x41000040L), U32(0x00010040L),
des_data.py:U32(0x01000040L), U32(0x00000000L), U32(0x41010000L), U32(0x40000040L),
des_data.py:U32(0x41000000L), U32(0x40010040L), U32(0x00000040L), U32(0x01010000L),
des_data.py:U32(0x00100402L), U32(0x04000400L), U32(0x00000002L), U32(0x04100402L),
des_data.py:U32(0x00000000L), U32(0x04100000L), U32(0x04000402L), U32(0x00100002L),
des_data.py:U32(0x04100400L), U32(0x04000002L), U32(0x04000000L), U32(0x00000402L),
des_data.py:U32(0x04000002L), U32(0x00100402L), U32(0x00100000L), U32(0x04000000L),
des_data.py:U32(0x04100002L), U32(0x00100400L), U32(0x00000400L), U32(0x00000002L),
des_data.py:U32(0x00100400L), U32(0x04000402L), U32(0x04100000L), U32(0x00000400L),
des_data.py:U32(0x00000402L), U32(0x00000000L), U32(0x00100002L), U32(0x04100400L),
des_data.py:U32(0x04000400L), U32(0x04100002L), U32(0x04100402L), U32(0x00100000L),
des_data.py:U32(0x04100002L), U32(0x00000402L), U32(0x00100000L), U32(0x04000002L),
des_data.py:U32(0x00100400L), U32(0x04000400L), U32(0x00000002L), U32(0x04100000L),
des_data.py:U32(0x04000402L), U32(0x00000000L), U32(0x00000400L), U32(0x00100002L),
des_data.py:U32(0x00000000L), U32(0x04100002L), U32(0x04100400L), U32(0x00000400L),
des_data.py:U32(0x04000000L), U32(0x04100402L), U32(0x00100402L), U32(0x00100000L),
des_data.py:U32(0x04100402L), U32(0x00000002L), U32(0x04000400L), U32(0x00100402L),
des_data.py:U32(0x00100002L), U32(0x00100400L), U32(0x04100000L), U32(0x04000402L),
des_data.py:U32(0x00000402L), U32(0x04000000L), U32(0x04000002L), U32(0x04100400L),
des_data.py:U32(0x02000000L), U32(0x00004000L), U32(0x00000100L), U32(0x02004108L),
des_data.py:U32(0x02004008L), U32(0x02000100L), U32(0x00004108L), U32(0x02004000L),
des_data.py:U32(0x00004000L), U32(0x00000008L), U32(0x02000008L), U32(0x00004100L),
des_data.py:U32(0x02000108L), U32(0x02004008L), U32(0x02004100L), U32(0x00000000L),
des_data.py:U32(0x00004100L), U32(0x02000000L), U32(0x00004008L), U32(0x00000108L),
des_data.py:U32(0x02000100L), U32(0x00004108L), U32(0x00000000L), U32(0x02000008L),
des_data.py:U32(0x00000008L), U32(0x02000108L), U32(0x02004108L), U32(0x00004008L),
des_data.py:U32(0x02004000L), U32(0x00000100L), U32(0x00000108L), U32(0x02004100L),
des_data.py:U32(0x02004100L), U32(0x02000108L), U32(0x00004008L), U32(0x02004000L),
des_data.py:U32(0x00004000L), U32(0x00000008L), U32(0x02000008L), U32(0x02000100L),
des_data.py:U32(0x02000000L), U32(0x00004100L), U32(0x02004108L), U32(0x00000000L),
des_data.py:U32(0x00004108L), U32(0x02000000L), U32(0x00000100L), U32(0x00004008L),
des_data.py:U32(0x02000108L), U32(0x00000100L), U32(0x00000000L), U32(0x02004108L),
des_data.py:U32(0x02004008L), U32(0x02004100L), U32(0x00000108L), U32(0x00004000L),
des_data.py:U32(0x00004100L), U32(0x02004008L), U32(0x02000100L), U32(0x00000108L),
des_data.py:U32(0x00000008L), U32(0x00004108L), U32(0x02004000L), U32(0x02000008L),
des_data.py:U32(0x20000010L), U32(0x00080010L), U32(0x00000000L), U32(0x20080800L),
des_data.py:U32(0x00080010L), U32(0x00000800L), U32(0x20000810L), U32(0x00080000L),
des_data.py:U32(0x00000810L), U32(0x20080810L), U32(0x00080800L), U32(0x20000000L),
des_data.py:U32(0x20000800L), U32(0x20000010L), U32(0x20080000L), U32(0x00080810L),
des_data.py:U32(0x00080000L), U32(0x20000810L), U32(0x20080010L), U32(0x00000000L),
des_data.py:U32(0x00000800L), U32(0x00000010L), U32(0x20080800L), U32(0x20080010L),
des_data.py:U32(0x20080810L), U32(0x20080000L), U32(0x20000000L), U32(0x00000810L),
des_data.py:U32(0x00000010L), U32(0x00080800L), U32(0x00080810L), U32(0x20000800L),
des_data.py:U32(0x00000810L), U32(0x20000000L), U32(0x20000800L), U32(0x00080810L),
des_data.py:U32(0x20080800L), U32(0x00080010L), U32(0x00000000L), U32(0x20000800L),
des_data.py:U32(0x20000000L), U32(0x00000800L), U32(0x20080010L), U32(0x00080000L),
des_data.py:U32(0x00080010L), U32(0x20080810L), U32(0x00080800L), U32(0x00000010L),
des_data.py:U32(0x20080810L), U32(0x00080800L), U32(0x00080000L), U32(0x20000810L),
des_data.py:U32(0x20000010L), U32(0x20080000L), U32(0x00080810L), U32(0x00000000L),
des_data.py:U32(0x00000800L), U32(0x20000010L), U32(0x20000810L), U32(0x20080800L),
des_data.py:U32(0x20080000L), U32(0x00000810L), U32(0x00000010L), U32(0x20080010L),
des_data.py:U32(0x00001000L), U32(0x00000080L), U32(0x00400080L), U32(0x00400001L),
des_data.py:U32(0x00401081L), U32(0x00001001L), U32(0x00001080L), U32(0x00000000L),
des_data.py:U32(0x00400000L), U32(0x00400081L), U32(0x00000081L), U32(0x00401000L),
des_data.py:U32(0x00000001L), U32(0x00401080L), U32(0x00401000L), U32(0x00000081L),
des_data.py:U32(0x00400081L), U32(0x00001000L), U32(0x00001001L), U32(0x00401081L),
des_data.py:U32(0x00000000L), U32(0x00400080L), U32(0x00400001L), U32(0x00001080L),
des_data.py:U32(0x00401001L), U32(0x00001081L), U32(0x00401080L), U32(0x00000001L),
des_data.py:U32(0x00001081L), U32(0x00401001L), U32(0x00000080L), U32(0x00400000L),
des_data.py:U32(0x00001081L), U32(0x00401000L), U32(0x00401001L), U32(0x00000081L),
des_data.py:U32(0x00001000L), U32(0x00000080L), U32(0x00400000L), U32(0x00401001L),
des_data.py:U32(0x00400081L), U32(0x00001081L), U32(0x00001080L), U32(0x00000000L),
des_data.py:U32(0x00000080L), U32(0x00400001L), U32(0x00000001L), U32(0x00400080L),
des_data.py:U32(0x00000000L), U32(0x00400081L), U32(0x00400080L), U32(0x00001080L),
des_data.py:U32(0x00000081L), U32(0x00001000L), U32(0x00401081L), U32(0x00400000L),
des_data.py:U32(0x00401080L), U32(0x00000001L), U32(0x00001001L), U32(0x00401081L),
des_data.py:U32(0x00400001L), U32(0x00401080L), U32(0x00401000L), U32(0x00001001L),
des_data.py:U32(0x08200020L), U32(0x08208000L), U32(0x00008020L), U32(0x00000000L),
des_data.py:U32(0x08008000L), U32(0x00200020L), U32(0x08200000L), U32(0x08208020L),
des_data.py:U32(0x00000020L), U32(0x08000000L), U32(0x00208000L), U32(0x00008020L),
des_data.py:U32(0x00208020L), U32(0x08008020L), U32(0x08000020L), U32(0x08200000L),
des_data.py:U32(0x00008000L), U32(0x00208020L), U32(0x00200020L), U32(0x08008000L),
des_data.py:U32(0x08208020L), U32(0x08000020L), U32(0x00000000L), U32(0x00208000L),
des_data.py:U32(0x08000000L), U32(0x00200000L), U32(0x08008020L), U32(0x08200020L),
des_data.py:U32(0x00200000L), U32(0x00008000L), U32(0x08208000L), U32(0x00000020L),
des_data.py:U32(0x00200000L), U32(0x00008000L), U32(0x08000020L), U32(0x08208020L),
des_data.py:U32(0x00008020L), U32(0x08000000L), U32(0x00000000L), U32(0x00208000L),
des_data.py:U32(0x08200020L), U32(0x08008020L), U32(0x08008000L), U32(0x00200020L),
des_data.py:U32(0x08208000L), U32(0x00000020L), U32(0x00200020L), U32(0x08008000L),
des_data.py:U32(0x08208020L), U32(0x00200000L), U32(0x08200000L), U32(0x08000020L),
des_data.py:U32(0x00208000L), U32(0x00008020L), U32(0x08008020L), U32(0x08200000L),
des_data.py:U32(0x00000020L), U32(0x08208000L), U32(0x00208020L), U32(0x00000000L),
des_data.py:U32(0x08000000L), U32(0x08200020L), U32(0x00008000L), U32(0x00208020L),
des_data.py:U32(0x00000000L),U32(0x00000010L),U32(0x20000000L),U32(0x20000010L),
des_data.py:U32(0x00010000L),U32(0x00010010L),U32(0x20010000L),U32(0x20010010L),
des_data.py:U32(0x00000800L),U32(0x00000810L),U32(0x20000800L),U32(0x20000810L),
des_data.py:U32(0x00010800L),U32(0x00010810L),U32(0x20010800L),U32(0x20010810L),
des_data.py:U32(0x00000020L),U32(0x00000030L),U32(0x20000020L),U32(0x20000030L),
des_data.py:U32(0x00010020L),U32(0x00010030L),U32(0x20010020L),U32(0x20010030L),
des_data.py:U32(0x00000820L),U32(0x00000830L),U32(0x20000820L),U32(0x20000830L),
des_data.py:U32(0x00010820L),U32(0x00010830L),U32(0x20010820L),U32(0x20010830L),
des_data.py:U32(0x00080000L),U32(0x00080010L),U32(0x20080000L),U32(0x20080010L),
des_data.py:U32(0x00090000L),U32(0x00090010L),U32(0x20090000L),U32(0x20090010L),
des_data.py:U32(0x00080800L),U32(0x00080810L),U32(0x20080800L),U32(0x20080810L),
des_data.py:U32(0x00090800L),U32(0x00090810L),U32(0x20090800L),U32(0x20090810L),
des_data.py:U32(0x00080020L),U32(0x00080030L),U32(0x20080020L),U32(0x20080030L),
des_data.py:U32(0x00090020L),U32(0x00090030L),U32(0x20090020L),U32(0x20090030L),
des_data.py:U32(0x00080820L),U32(0x00080830L),U32(0x20080820L),U32(0x20080830L),
des_data.py:U32(0x00090820L),U32(0x00090830L),U32(0x20090820L),U32(0x20090830L),
des_data.py:U32(0x00000000L),U32(0x02000000L),U32(0x00002000L),U32(0x02002000L),
des_data.py:U32(0x00200000L),U32(0x02200000L),U32(0x00202000L),U32(0x02202000L),
des_data.py:U32(0x00000004L),U32(0x02000004L),U32(0x00002004L),U32(0x02002004L),
des_data.py:U32(0x00200004L),U32(0x02200004L),U32(0x00202004L),U32(0x02202004L),
des_data.py:U32(0x00000400L),U32(0x02000400L),U32(0x00002400L),U32(0x02002400L),
des_data.py:U32(0x00200400L),U32(0x02200400L),U32(0x00202400L),U32(0x02202400L),
des_data.py:U32(0x00000404L),U32(0x02000404L),U32(0x00002404L),U32(0x02002404L),
des_data.py:U32(0x00200404L),U32(0x02200404L),U32(0x00202404L),U32(0x02202404L),
des_data.py:U32(0x10000000L),U32(0x12000000L),U32(0x10002000L),U32(0x12002000L),
des_data.py:U32(0x10200000L),U32(0x12200000L),U32(0x10202000L),U32(0x12202000L),
des_data.py:U32(0x10000004L),U32(0x12000004L),U32(0x10002004L),U32(0x12002004L),
des_data.py:U32(0x10200004L),U32(0x12200004L),U32(0x10202004L),U32(0x12202004L),
des_data.py:U32(0x10000400L),U32(0x12000400L),U32(0x10002400L),U32(0x12002400L),
des_data.py:U32(0x10200400L),U32(0x12200400L),U32(0x10202400L),U32(0x12202400L),
des_data.py:U32(0x10000404L),U32(0x12000404L),U32(0x10002404L),U32(0x12002404L),
des_data.py:U32(0x10200404L),U32(0x12200404L),U32(0x10202404L),U32(0x12202404L),
des_data.py:U32(0x00000000L),U32(0x00000001L),U32(0x00040000L),U32(0x00040001L),
des_data.py:U32(0x01000000L),U32(0x01000001L),U32(0x01040000L),U32(0x01040001L),
des_data.py:U32(0x00000002L),U32(0x00000003L),U32(0x00040002L),U32(0x00040003L),
des_data.py:U32(0x01000002L),U32(0x01000003L),U32(0x01040002L),U32(0x01040003L),
des_data.py:U32(0x00000200L),U32(0x00000201L),U32(0x00040200L),U32(0x00040201L),
des_data.py:U32(0x01000200L),U32(0x01000201L),U32(0x01040200L),U32(0x01040201L),
des_data.py:U32(0x00000202L),U32(0x00000203L),U32(0x00040202L),U32(0x00040203L),
des_data.py:U32(0x01000202L),U32(0x01000203L),U32(0x01040202L),U32(0x01040203L),
des_data.py:U32(0x08000000L),U32(0x08000001L),U32(0x08040000L),U32(0x08040001L),
des_data.py:U32(0x09000000L),U32(0x09000001L),U32(0x09040000L),U32(0x09040001L),
des_data.py:U32(0x08000002L),U32(0x08000003L),U32(0x08040002L),U32(0x08040003L),
des_data.py:U32(0x09000002L),U32(0x09000003L),U32(0x09040002L),U32(0x09040003L),
des_data.py:U32(0x08000200L),U32(0x08000201L),U32(0x08040200L),U32(0x08040201L),
des_data.py:U32(0x09000200L),U32(0x09000201L),U32(0x09040200L),U32(0x09040201L),
des_data.py:U32(0x08000202L),U32(0x08000203L),U32(0x08040202L),U32(0x08040203L),
des_data.py:U32(0x09000202L),U32(0x09000203L),U32(0x09040202L),U32(0x09040203L),
des_data.py:U32(0x00000000L),U32(0x00100000L),U32(0x00000100L),U32(0x00100100L),
des_data.py:U32(0x00000008L),U32(0x00100008L),U32(0x00000108L),U32(0x00100108L),
des_data.py:U32(0x00001000L),U32(0x00101000L),U32(0x00001100L),U32(0x00101100L),
des_data.py:U32(0x00001008L),U32(0x00101008L),U32(0x00001108L),U32(0x00101108L),
des_data.py:U32(0x04000000L),U32(0x04100000L),U32(0x04000100L),U32(0x04100100L),
des_data.py:U32(0x04000008L),U32(0x04100008L),U32(0x04000108L),U32(0x04100108L),
des_data.py:U32(0x04001000L),U32(0x04101000L),U32(0x04001100L),U32(0x04101100L),
des_data.py:U32(0x04001008L),U32(0x04101008L),U32(0x04001108L),U32(0x04101108L),
des_data.py:U32(0x00020000L),U32(0x00120000L),U32(0x00020100L),U32(0x00120100L),
des_data.py:U32(0x00020008L),U32(0x00120008L),U32(0x00020108L),U32(0x00120108L),
des_data.py:U32(0x00021000L),U32(0x00121000L),U32(0x00021100L),U32(0x00121100L),
des_data.py:U32(0x00021008L),U32(0x00121008L),U32(0x00021108L),U32(0x00121108L),
des_data.py:U32(0x04020000L),U32(0x04120000L),U32(0x04020100L),U32(0x04120100L),
des_data.py:U32(0x04020008L),U32(0x04120008L),U32(0x04020108L),U32(0x04120108L),
des_data.py:U32(0x04021000L),U32(0x04121000L),U32(0x04021100L),U32(0x04121100L),
des_data.py:U32(0x04021008L),U32(0x04121008L),U32(0x04021108L),U32(0x04121108L),
des_data.py:U32(0x00000000L),U32(0x10000000L),U32(0x00010000L),U32(0x10010000L),
des_data.py:U32(0x00000004L),U32(0x10000004L),U32(0x00010004L),U32(0x10010004L),
des_data.py:U32(0x20000000L),U32(0x30000000L),U32(0x20010000L),U32(0x30010000L),
des_data.py:U32(0x20000004L),U32(0x30000004L),U32(0x20010004L),U32(0x30010004L),
des_data.py:U32(0x00100000L),U32(0x10100000L),U32(0x00110000L),U32(0x10110000L),
des_data.py:U32(0x00100004L),U32(0x10100004L),U32(0x00110004L),U32(0x10110004L),
des_data.py:U32(0x20100000L),U32(0x30100000L),U32(0x20110000L),U32(0x30110000L),
des_data.py:U32(0x20100004L),U32(0x30100004L),U32(0x20110004L),U32(0x30110004L),
des_data.py:U32(0x00001000L),U32(0x10001000L),U32(0x00011000L),U32(0x10011000L),
des_data.py:U32(0x00001004L),U32(0x10001004L),U32(0x00011004L),U32(0x10011004L),
des_data.py:U32(0x20001000L),U32(0x30001000L),U32(0x20011000L),U32(0x30011000L),
des_data.py:U32(0x20001004L),U32(0x30001004L),U32(0x20011004L),U32(0x30011004L),
des_data.py:U32(0x00101000L),U32(0x10101000L),U32(0x00111000L),U32(0x10111000L),
des_data.py:U32(0x00101004L),U32(0x10101004L),U32(0x00111004L),U32(0x10111004L),
des_data.py:U32(0x20101000L),U32(0x30101000L),U32(0x20111000L),U32(0x30111000L),
des_data.py:U32(0x20101004L),U32(0x30101004L),U32(0x20111004L),U32(0x30111004L),
des_data.py:U32(0x00000000L),U32(0x08000000L),U32(0x00000008L),U32(0x08000008L),
des_data.py:U32(0x00000400L),U32(0x08000400L),U32(0x00000408L),U32(0x08000408L),
des_data.py:U32(0x00020000L),U32(0x08020000L),U32(0x00020008L),U32(0x08020008L),
des_data.py:U32(0x00020400L),U32(0x08020400L),U32(0x00020408L),U32(0x08020408L),
des_data.py:U32(0x00000001L),U32(0x08000001L),U32(0x00000009L),U32(0x08000009L),
des_data.py:U32(0x00000401L),U32(0x08000401L),U32(0x00000409L),U32(0x08000409L),
des_data.py:U32(0x00020001L),U32(0x08020001L),U32(0x00020009L),U32(0x08020009L),
des_data.py:U32(0x00020401L),U32(0x08020401L),U32(0x00020409L),U32(0x08020409L),
des_data.py:U32(0x02000000L),U32(0x0A000000L),U32(0x02000008L),U32(0x0A000008L),
des_data.py:U32(0x02000400L),U32(0x0A000400L),U32(0x02000408L),U32(0x0A000408L),
des_data.py:U32(0x02020000L),U32(0x0A020000L),U32(0x02020008L),U32(0x0A020008L),
des_data.py:U32(0x02020400L),U32(0x0A020400L),U32(0x02020408L),U32(0x0A020408L),
des_data.py:U32(0x02000001L),U32(0x0A000001L),U32(0x02000009L),U32(0x0A000009L),
des_data.py:U32(0x02000401L),U32(0x0A000401L),U32(0x02000409L),U32(0x0A000409L),
des_data.py:U32(0x02020001L),U32(0x0A020001L),U32(0x02020009L),U32(0x0A020009L),
des_data.py:U32(0x02020401L),U32(0x0A020401L),U32(0x02020409L),U32(0x0A020409L),
des_data.py:U32(0x00000000L),U32(0x00000100L),U32(0x00080000L),U32(0x00080100L),
des_data.py:U32(0x01000000L),U32(0x01000100L),U32(0x01080000L),U32(0x01080100L),
des_data.py:U32(0x00000010L),U32(0x00000110L),U32(0x00080010L),U32(0x00080110L),
des_data.py:U32(0x01000010L),U32(0x01000110L),U32(0x01080010L),U32(0x01080110L),
des_data.py:U32(0x00200000L),U32(0x00200100L),U32(0x00280000L),U32(0x00280100L),
des_data.py:U32(0x01200000L),U32(0x01200100L),U32(0x01280000L),U32(0x01280100L),
des_data.py:U32(0x00200010L),U32(0x00200110L),U32(0x00280010L),U32(0x00280110L),
des_data.py:U32(0x01200010L),U32(0x01200110L),U32(0x01280010L),U32(0x01280110L),
des_data.py:U32(0x00000200L),U32(0x00000300L),U32(0x00080200L),U32(0x00080300L),
des_data.py:U32(0x01000200L),U32(0x01000300L),U32(0x01080200L),U32(0x01080300L),
des_data.py:U32(0x00000210L),U32(0x00000310L),U32(0x00080210L),U32(0x00080310L),
des_data.py:U32(0x01000210L),U32(0x01000310L),U32(0x01080210L),U32(0x01080310L),
des_data.py:U32(0x00200200L),U32(0x00200300L),U32(0x00280200L),U32(0x00280300L),
des_data.py:U32(0x01200200L),U32(0x01200300L),U32(0x01280200L),U32(0x01280300L),
des_data.py:U32(0x00200210L),U32(0x00200310L),U32(0x00280210L),U32(0x00280310L),
des_data.py:U32(0x01200210L),U32(0x01200310L),U32(0x01280210L),U32(0x01280310L),
des_data.py:U32(0x00000000L),U32(0x04000000L),U32(0x00040000L),U32(0x04040000L),
des_data.py:U32(0x00000002L),U32(0x04000002L),U32(0x00040002L),U32(0x04040002L),
des_data.py:U32(0x00002000L),U32(0x04002000L),U32(0x00042000L),U32(0x04042000L),
des_data.py:U32(0x00002002L),U32(0x04002002L),U32(0x00042002L),U32(0x04042002L),
des_data.py:U32(0x00000020L),U32(0x04000020L),U32(0x00040020L),U32(0x04040020L),
des_data.py:U32(0x00000022L),U32(0x04000022L),U32(0x00040022L),U32(0x04040022L),
des_data.py:U32(0x00002020L),U32(0x04002020L),U32(0x00042020L),U32(0x04042020L),
des_data.py:U32(0x00002022L),U32(0x04002022L),U32(0x00042022L),U32(0x04042022L),
des_data.py:U32(0x00000800L),U32(0x04000800L),U32(0x00040800L),U32(0x04040800L),
des_data.py:U32(0x00000802L),U32(0x04000802L),U32(0x00040802L),U32(0x04040802L),
des_data.py:U32(0x00002800L),U32(0x04002800L),U32(0x00042800L),U32(0x04042800L),
des_data.py:U32(0x00002802L),U32(0x04002802L),U32(0x00042802L),U32(0x04042802L),
des_data.py:U32(0x00000820L),U32(0x04000820L),U32(0x00040820L),U32(0x04040820L),
des_data.py:U32(0x00000822L),U32(0x04000822L),U32(0x00040822L),U32(0x04040822L),
des_data.py:U32(0x00002820L),U32(0x04002820L),U32(0x00042820L),U32(0x04042820L),
des_data.py:U32(0x00002822L),U32(0x04002822L),U32(0x00042822L),U32(0x04042822L),
md4.py:from U32 import U32
md4.py: self.A = U32(0x67452301L)
md4.py: self.B = U32(0xefcdab89L)
md4.py: self.C = U32(0x98badcfeL)
md4.py: self.D = U32(0x10325476L)
md4.py: self.count, self.len1, self.len2 = U32(0L), U32(0L), U32(0L)
md4.py: ilen = U32(len(buf))
md4.py: self.len2 = self.len2 + U32(1)
md4.py: L = U32(0)
md4.py: if (64 - long(self.count)) < long(ilen): L = U32(64 - long(self.count))
md4.py: self.count = U32(0L)
md4.py: X.append(U32(self.buf[i]) + (U32(self.buf[i+1]) << 8) + \
md4.py: (U32(self.buf[i+2]) << 16) + (U32(self.buf[i+3]) << 24))
md4.py: padlen, oldlen1, oldlen2 = U32(0), U32(0), U32(0)
md4.py: if (56 <= long(self.count)): padlen = U32(56 - long(self.count) + 64)
md4.py: else: padlen = U32(56 - long(self.count))
md4.py: s[0]= (oldlen1) & U32(0xFF)
md4.py: s[1]=((oldlen1) >> 8) & U32(0xFF)
md4.py: s[2]=((oldlen1) >> 16) & U32(0xFF)
md4.py: s[3]=((oldlen1) >> 24) & U32(0xFF)
md4.py: s[4]= (oldlen2) & U32(0xFF)
md4.py: s[5]=((oldlen2) >> 8) & U32(0xFF)
md4.py: s[6]=((oldlen2) >> 16) & U32(0xFF)
md4.py: s[7]=((oldlen2) >> 24) & U32(0xFF)
md4.py: res[ 0]= temp.A & U32(0xFF)
md4.py: res[ 1]=(temp.A >> 8) & U32(0xFF)
md4.py: res[ 2]=(temp.A >> 16) & U32(0xFF)
md4.py: res[ 3]=(temp.A >> 24) & U32(0xFF)
md4.py: res[ 4]= temp.B & U32(0xFF)
md4.py: res[ 5]=(temp.B >> 8) & U32(0xFF)
md4.py: res[ 6]=(temp.B >> 16) & U32(0xFF)
md4.py: res[ 7]=(temp.B >> 24) & U32(0xFF)
md4.py: res[ 8]= temp.C & U32(0xFF)
md4.py: res[ 9]=(temp.C >> 8) & U32(0xFF)
md4.py: res[10]=(temp.C >> 16) & U32(0xFF)
md4.py: res[11]=(temp.C >> 24) & U32(0xFF)
md4.py: res[12]= temp.D & U32(0xFF)
md4.py: res[13]=(temp.D >> 8) & U32(0xFF)
md4.py: res[14]=(temp.D >> 16) & U32(0xFF)
md4.py: res[15]=(temp.D >> 24) & U32(0xFF)
md4.py:def f2(a, b, c, d, k, s, X): return ROL(a + G(b, c, d) + X[k] + U32(0x5a827999L), s)
md4.py:def f3(a, b, c, d, k, s, X): return ROL(a + H(b, c, d) + X[k] + U32(0x6ed9eba1L), s)
It's probably best to have this tested by a ppc user behind an MsProxy server before masking stable on ppc.