Concurrent Object-Stream Decryption

AES-256 encrypted /Type /ObjStm containers decrypt concurrently on bounded worker threads; the file encryption key needs no per-object derivation, so each container is an independent pure byte operation

THPDFObjStmDecodePool

The pool takes the queued ciphertexts, decrypts them across up to WorkerCount threads, and returns results in queue order; per-request key material is defensively copied and scrubbed on every exit path, failures degrade per container and cancellation marks the remaining queue cancelled

THotPDF.ObjStmDecryptWorkers

The property selects the worker count (default 1 keeps the serial path). With more than one worker the type-2 loader pre-decrypts every distinct AES-256 container through the pool before the serial decode-and-index pass, which consumes the plaintexts in document order; legacy RC4 and AES-128 containers derive per-object keys on the instance and stay on the calling thread