DWORD QuickChecksum(DWORD *pData, int size) { if(!pData) return 0; DWORD sum; DWORD tmp; sum = *pData; for(int i = 1; i < (size/4); i++) { tmp = pData[i]; tmp = (DWORD)(sum >> 29) + tmp; tmp = (DWORD)(sum >> 17) + tmp; sum = (DWORD)(sum << 3) ^ tmp; } return sum; }