While debugging League of Legends I noticed that `LoadLibraryEx()` is invoked with binary filename (non-text) and non-NULL `hFile`. In Windows such call would return `NULL` with LastError set as `ERROR_INVALID_PARAMETER` but current Wine implementation would try to proceed ahead. I don't know if this is intentional trick to mess up debugging/reversing tools or if we have some memory corruption before that overwrites filename buffer. But then I can't imagine how `hFile` could have gotten corrupted since shouldn't that be simple static value in register... Having this MR causes very noticeable difference in LoL: * without it - process deadlocks * with it - no deadlock Also while looking at this, I tried a lot of different flag combinations on Windows 10 and here I implemented so it works exactly like that. I also implemented test case for non-NULL `hFile` but I didn't bother for other flags since I don't know if we even care about those. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4587