Offreg.dll comes from MS WDK.
i have included in the zip file both the 32bits version (offreg.dll) and 64bits version (offreg64.dll).
The 32bits should be fine in most systems (including 64bits ones) except on system where the 32bits subsystem is missing.
On a "64bits only" system offreg64.exe will load offreg64.dll and then use MS API's in that library.
So now either I am passing the wrong parameters in 64bits mode or the function names are different.
I am back to work tomorrow and there I'll have tons of 64 bits system to test on.