does SymEnumSymbols() on native return an actual name for the (internal) functions different from the exported one?
I don't know if it's possible for the internal and external names to be completely different on real Windows, but one small difference is that on 32-bit Windows, the function name reported from SymEnumSymbols is simply GetCurrentThreadId, whereas Wine reports GetCurrentThreadId@0. (This patch only fixes the 64-bit version of Cheat Engine; 32-bit Cheat Engine still can't find the function because Wine isn't stripping off the @0 as it should.)
does the program filters on dbghelp for public symbol only ? (SYMOPT_PUBLIC_ONLY in SymSetOption()?)
I don't see any occurrences of SYMOPT_PUBLIC_ONLY in https://github.com/cheat-engine/cheat-engine