http://bugs.winehq.org/show_bug.cgi?id=21790
--- Comment #11 from Nikolay Sivov bunglehead@gmail.com 2013-09-24 03:20:39 CDT --- No, I don't think it's the case. It stops if lookup_winsxs() fails for a reason that's not STATUS_NO_SUCH_FILE. It's normal to get this status when no assembly is found in winsxs. A part of log I posted in comment 7 contains all local paths it tries after lookup_winsxs() failed to find it. Some traces added to for(..) loop show that it's actually executed (try number in my log is 'i' value).
So the real problem seems as you described - we don't get a proper path to application dir for that module loaded with MBX@8@48E1E8.### name. Probably get_module_filename() should use some hooked call instead of picking data from loader structures directly, or a failure happens even earlier and loader data should actually point to application dir and we shouldn't even see this generated names.