Bom dia Juliomar,
Ontem, após vários testes e comparações, descobrimos o seguinte:
Se na propriedade do projeto estiver marcada a opção:
Delphi Compiler -> Compiling -> Runtime errors -> Range checking -> True
Na unit GZIPUtils.pas, na função:
function crc32(thecrc: cardinal; S: TStream; len: Cardinal): Cardinal;
Na linha 395:
Result := UpdateCrc32(b, Result);
Começamos a receber o erro de Range check error.
Pelo que verificamos em debug, o escopo do Cardinal é de 0..4294967295, enquanto que a função UpdateCrc32 retorna um tipo Integer que pode ser de -2147483648..2147483647. Logo, ao retornar um valor negativo ou um valor além do escopo do tipo da variável, vai ocasionar a exceção descrita.
O demo da ACBr e o outro projeto nosso que não deu erro estava False na propriedade acima. No projeto que apresentava o problema setamos para False, efetuamos um Clean e um Build e voltou a ter o mesmo comportamento dos outros projetos.
Com isto, resolvemos o problema. Estamos te passando o que concluímos para uma avaliação.
Desde já agradeço.