Mac UIMENU_PlayCutScene: void __fastcall (D2ControlMsg* pControlMsg ECX, char* szSceneName EDX)
Both callers (MAINMENU_Unused1 0x002c1fb3, MAINMENU_Unused2 0x002c2033) load ECX=[EBP+8] (their own control-message arg) and EDX=LEA of a scene-name string, then set EAX=1 themselves, so the callee's EAX is unused. The Mac body saves EDX (the scene name, used later to build the video path). It overwrites ECX before reading it, but the slot is kept because callers pass it, as in the Windows twin 0x00431870 (szSceneName, pControlMsg; void). There are no stack-arg reads.
Changes 1, applied together
Set prototype
mac 0x002ca053signatureundefined UIMENU_PlayCutScene(void)→void UIMENU_PlayCutScene(D2ControlMsg* pControlMsg, char* szSceneName)conventionunknown→__fastcall