Type Mac CACHE_ComputeCRC32 as uint32_t __fastcc (byte*, int32_t)
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
Set prototype
mac 0x00059616signatureundefined CACHE_ComputeCRC32(void)→uint32_t CACHE_ComputeCRC32(byte* pData, int32_t nByteLen)conventionunknown→__fastcc