REDIVIVUS

Proposals / #1204

Mac A5Q3_KillMonsterInstantly: void __fastcc (D2QuestDataStrc* pQuestData ECX, D2UnitStrc* pUnit EDX)

approved · by KierTaylor · submitted 2026-11-05, approved 2026-11-05

Mac 0x0023cd94 is "undefined (void)", convention unknown. Entry: EDI=ECX, ESI=EDX. ESI is a monster unit (NULL check, [ESI]==1, [ESI+0x14] data, [ESI+0x2c] path, [ESI+0xc4] flags, passed as the unit to the kill/state calls). EDI is quest data: [EDI+4] (D2QuestDataStrc.pGame) is passed as arg 1 to 0x001d9431, 0x001aad10 and 0x001db226. No [EBP+n] reads; no result; plain RET. Callers: Q33_CleanupQuestMonsters loads ECX=ESI (quest data, it reads [ESI+4] as game right after) and EDX=unit from 0x0027905c (0x002450b3-0x002450bc); Q33_KillAnyaMonsterTimer tail-jumps with ECX=ESI, EDX=EAX. Windows twin 0x00589340 has the same two values (D2UnitStrc* pUnitStrc, game/quest pointer).

Changes 1, applied together

  1. Set prototype mac 0x0023cd94

    signatureundefined A5Q3_KillMonsterInstantly(void)→void A5Q3_KillMonsterInstantly(D2QuestDataStrc * pQuestData, D2UnitStrc * pUnit)
    conventionunknown→__fastcc