I took a quick look at running 3DS Max v4 in Wine. It pretty quickly chokes when when feeding RegSetValueExA with a null pointer as the data for the key "NullFile". The appended hack will go around that. Unfortunately the executable dies later on:
danae% wine 3dsmax.exe Line 193: Unrecognized input 'read=0x378-0x37a' Line 194: Unrecognized input 'write=0x378-0x37a' fixme:win32:PE_CreateModule Security directory ignored fixme:reg:RegSetValueExA (188,"NullFile" ...) data is null pointer (3ds4 hack) FIXME:pthread_rwlock_rdlock FIXME:pthread_rwlock_unlock FIXME:pthread_rwlock_rdlock FIXME:pthread_rwlock_unlock FIXME:pthread_rwlock_rdlock FIXME:pthread_rwlock_unlock FIXME:pthread_rwlock_rdlock FIXME:pthread_rwlock_unlock fixme:winsock:_get_sock_fd handle -1 is not a socket (GLE 6) MSG .0 fatal: getsockopt(SO_OPENTYPE) failed - Invalid handle wine: Unhandled exception, starting debugger... zsh: terminated wine 3dsmax.exe
I doubt this helps anyone fix the problem, but it might save someone 10min if trying to get 3ds working later on. When I get some time I'll do a real report with the nessesary traces.