Looking at CheckQuery(), the first part retrieves OWP1 and OWP2 by sending a query to the dongle and some specific data strings and manipulating the returned data. The second part of the function seems to employ a similar method in a loop to retrieve algorithm Descriptors from any cell with 0303 access code.
Knowing the second part to definitely NOT work on USB and modern superpros, I assume the first part which retrieves OWP's also only works on early LPT dongles. Can you please confirm that this is not a general algorithmic method of retrieving OWP's, but a backdoor or loophole which only works on older LPT dongles. ?. Or is there hope and I have read it wrong?. I must admit, I do not understand bBit1 and bBit2.