By the way, your version of mutagen (which you updated not so long ago) has become faster to check, before 300 billion took 12 hours, and now 8 hours. Cut another 6 hours and it will be like in Cyclone

for (int pos : flips) {
Int mask;
mask.SetInt32(1);
mask.ShiftL(pos);
currentKey.Xor(&mask);
}
Yes, this is the maximum. Only if you program XOR to work in assembly might it be faster. The same applies to the combination generator - they are a bottleneck
https://github.com/NoMachine1/Mutagen/commit/ffcddcbcdbf2c4bba12b0439d61a403a08f22d3b=======================================
=========== SOLUTION FOUND ============
=======================================
Private key: 0x1A96CA8D8
Checked 714563971 combinations
Bit flips: 15
Time: 50.04 seconds (00:00:50)
Speed: 42.27 Mkeys/s
Solution saved to puzzle_33_solution.txt