Mac MAC_GetMicroseconds64: void __cdecl (uint32_t* pCounterOut)
There is one cdecl stack arg. [EBP+8] -> ESI is an 8-byte out buffer: it calls MAC_GetMicrosecondsThunk(ESI+4 high, ESI low) at 0x0001ead1. The trailing MOV EAX,ESI is the struct-out pointer echo, and the only caller, QueryPerformanceCounter 0x0002c10c, ignores EAX: it reloads EAX from its own [EBP+8] and copies [EBP-8]/[EBP-4] out. So the Mac contract is void with one out pointer.
Changes 1, applied together
Set prototype
mac 0x0001eabdsignatureundefined MAC_GetMicroseconds64(void)→void MAC_GetMicroseconds64(uint32_t* pCounterOut)conventionunknown→__cdecl