Try to not repeatedly scan through the 'free' bitfield

Seems to help by a couple percent.
Can optimize the initial branch away since we know we'll always execute the loop at least once