// we have reached the end of the hash and they all must have been ffffff
Isn't this line misleading?
As per the script, loop will move to next set of hex value if the integer value of previous set is 1000000 and more. The hex value of 106 is f4240 which means if the set of hex is f4240 and more then the loop will move to next set of hex.
So, this hash should be the lowest value for which loop will generate the different result:
f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f4240f423e
Any value from the above hash till the last hash i.e. the following hash will return 99.99:
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
It isn't required that the hash must all been ffffff.