masking a 64-bit value with a 32-bit mask that's zero-extended will turn off many more bits than intended. make the mask the right length to keep all the high-order 1s.