REDIVIVUS

Proposals / #1659

Type Mac CACHE_ComputeCRC32 as uint32_t __fastcc (byte*, int32_t)

checked · by KierTaylor · submitted 2026-11-08

Register function: ECX -> EDI is the data pointer (walked byte by byte, asserted non-NULL when the length is set, line 0x91), EDX -> ESI is the byte count (loop counter); returns ~crc in EAX, plain RET, no stack args. CACHE_Open compares the result (CALL 0x00058f9c then CMP EDI,EAX). Windows twin 0x00518de0 is uint32_t (int32_t nByteLen, byte* pbData); on Mac the roles are ECX = data, EDX = nByteLen.

Changes 1, applied together

  1. Set prototype mac 0x00059616

    signatureundefined CACHE_ComputeCRC32(void)→uint32_t CACHE_ComputeCRC32(byte* pData, int32_t nByteLen)
    conventionunknown→__fastcc