private static int ShiftOverwrite(int original, uint mask, int value, int shift) { var maskedOriginal = (original & mask); var newBits = value << shift; return (int)(maskedOriginal | newBits); }