I think the whole dump has to fit into your memory.
Yes, this. The file itself is loaded into a temporary buffer array while it is scanned. In essence, you have to have enough memory to hold the entire file in the ram for a few minutes, or as long as the scan can proceed. Once it's done, it unloads the buffer and uses a streamreader to access the file via offsets.