def add32(a, b):
    """ Add two 32-bit words discarding carry above 32nd bit,
		and without creating a Python long.
		Timing shouldn't vary.
	"""
    lo = (a & 65535) + (b & 65535)
    hi = (a >> 16) + (b >> 16) + (lo >> 16)
    return (-(hi & 32768) | hi & 32767) << 16 | lo & 65535
