The wininet API makes considerable use of TLS and has been observed in practice to clobber the fixed TLS entry cuckoomon uses (since it didn't reserve it with TlsAlloc).  To fix this, do things correctly and rewrite the assembly to support it.  Eliminate ensure_valid_hook_info() since we'll just move that code to hook_info(), it was an unnecessary "optimization" that further complicated the assembly.  While this seems to work much better for XP, there still appears to be a lingering issue on Windows 7 that will be resolved in a future commit.  Also make sure when using file/url of interest that secondary processes are logged fully.