Recover the Mac character-logon frame-pump callback contract
Ghidra vmac 111 · 3cfe190
The exact callback registered by Mac selected-character handling is FUN_002c4107; the equivalent original Windows registration selects MAINMENU_PollMCPCharLogonPump at432fe0. Full target/producer/dispatcher bodies and helper state accesses establish the pair. The existing int(int) frame-pump interface is corroborated by actual one-DWORD frame-index dispatch, incremented from zero on both builds. This implementation ignores that argument but explicitly returns full EAX1 at its sole normal exit. Recover int __cdecl(int nFrameIndex) and the identical selected Windows name. Mac RET0 and caller-owned outgoing slot differ from Windows RET4; no Windows stdcall import. No shared funcdef, caller, helper, global, field or layout edits; existing locals preserved. The formal is justified by its actual callback interface, not decompiled arity or an invented entry read.
Changes 2, applied together
Set prototype
mac 0x002c4107signatureundefined FUN_002c4107(void)→int FUN_002c4107(int nFrameIndex)conventionunknown→__cdeclRename function
mac 0x002c4107nameFUN_002c4107→MAINMENU_PollMCPCharLogonPump