Indeed, I don't mind if it is redistributed, that's why I released it under the GPL.
The source code is not the cleanest around, but I hope it is readable. The majority is actually used to define all the different utilities and glue them together into one executable.
The actual work of updating the registry is being done by the regutil_*_main functions, and the functions in regutil.c.
Most of those function are about error handling (of which there is still not enough as shown by the FIXMEs in the code).
BTW Yokos, to control the sound settings in the registry you can use the regutil program like this:
regutil /iLiadRegistry/userSetting/sound/enable --set true
regutil /iLiadRegistry/userSetting/sound/volume --set 75
I can easily wrap this into a registry-sound utility if you like
The utilities only update the settings in the xml file though. I don't know how make the iLiad re-read the registry (other than rebooting).
Maybe there's some kind of API call for that? If anybody knows about it, please let me know and I'll incorporate it into the utilities.