register unit divisor = topUnit + 1;
    assert(firstUnit < topUnit);     /* required for udiv_qrnnd */
The assert should be 
assert(firstUnit < divisor)
My hobbyist coding updates and releases as the mysterious "Mr. Tines"
    register unit divisor = topUnit + 1;
    assert(firstUnit < topUnit);     /* required for udiv_qrnnd */
The assert should be 
assert(firstUnit < divisor)