So it been running for a few hours and just stopped in Windbg trying to allocate a plain old dynamic string

unCompressedString = Space$(containedUncompressedLen + 256000)

where containedUncompressedLen = 22884489

It got passed a compressed (zlib) string of length 1340757. The compressed string has the previously uncompressed length in the header in plain text. 22884489.

All it was trying to do is make space for the decompression.

For what its worth Task Manager committed memory is about 1.4 gig for the process.