Hallo james!
Diese Zeile kann noch ärger machen:
$lnCrc32 = $CRCTbl[$lnZ + 1] ^ ($lnCrc32 >> 8);
wenn nämlich von links das Vorzeichen nachrückt (wie es für vorzeichenbehaftete Zahlen richtig wäre)
dann sollte
(($lnCrc32 >> 8)&0x00ffffff)
das korrigieren.
Gruss,
Carsten