Imported functions in ARM64EC have two `__imp_` symbols: - The usual `__imp_` symbol, which is guaranteed to be directly callable from ARM64 code and is used when calling the function (this may be a thunk if the imported function is x86_64). - The `__imp_aux_` symbol, which is the exact pointer as returned by `GetProcAddress` (it could point to an x86_64 function or the export thunk of an ARM64EC function).
When C code retrieves the address of a function, it uses `__imp_aux_` instead of `__imp_`. This is reflected in `__ASM_DEFINE_IMPORT` by defining `__imp_` to the mangled function name and `__imp_aux_` to the demangled one.
We currently don't depend on it in Wine itself, but it makes the whole thing more correct. Tested by adding `trace("%p\n", exp2);` to msvcrt tests.