Yeah that looks like what I have at the top of post #122.
The processing time is why I calculate HitCritPDF() just once and then index into it later. The iteration of calculating rounds to kill is actually the slowest part for me, but that also has to do with dynamically reallocating memory (lazy programming).
Edit: I just noticed the other half of your post. I'll try and elaborate later.
Edited by MajorJuggler