handle 64 bit shifts via multiply and correctly process offsets