REDIVIVUS

Proposals / #1496

Mac LINKEDLIST_UnlinkFreeAndGetCount: void* __cdecl (void* pList, void* pNode)

checked · by KierTaylor · submitted 2026-11-08

There are two cdecl stack args. [EBP+8] = the list (+4 head link used when the node is NULL). [EBP+0xc] -> EBX = the node: its next link (+4) is kept in EDI, it is unlinked twice via TSLINK_Unlink 0x00011e36 and freed with SMemFree 0x00018c44 (line -2). It deliberately returns the next node (CMOVZ ESI,EDI; MOV EAX,ESI at 0x00011e2c). This is the same template as WND_RemoveAndFreeRecord 0x00019464. Callers: SEvtDispatch 0x00011332 / 0x000114e7.

Changes 1, applied together

  1. Set prototype mac 0x00011dc6

    signatureundefined LINKEDLIST_UnlinkFreeAndGetCount(void)→void* LINKEDLIST_UnlinkFreeAndGetCount(void* pList, void* pNode)
    conventionunknown→__cdecl