Interesting. Works fine on 32-bit XP but fails on Windows 7 (64-bit, at least). Unlikely to be the processor's fault, my guess (by sifting through the assembler code) is that the author relied on some default behaviour from the WIn32 API which eventually got changed. There is a call to the HLT opcode in the code at line 582, which is curious considering halt instructions are privileged - I guess he used it to generate an exception in case the preceding ExitThread fails somehow.
Perhaps one of the assembler gurus on the forum can be more accurate
Edited by Bacterius, 28 June 2012 - 12:49 PM.