https://bugs.winehq.org/show_bug.cgi?id=46303
--- Comment #10 from Piotr Caban piotr.caban@gmail.com --- We have already tests showing this problem in wine. I'll work on a fix but I'm afraid the change will be to risky to include in Wine 4.0.
In native msvc* dlls some functions behave differently when locale was never set (or there was only setlocale(X, "C") call). In case of toupper only characters from a...z range should be modified.
Side note: The result returned by toupper in "working" case is incorrect but the application happens to work with it.
tolower tests with "initial" locale: https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/msvcrt/tests/string.c...