Based on that I wrote this function. It takes in c and number of steps, then it iterates down n and uses gcd to attempt to find the factors.
def goDownSteps(c, steps=2): e, n, d, x, a, b = rowForAB(1, c) bb = b for i in range(steps): ee, nn, dd, xx, aa, bb = rowNegX(n, -(2 * i * n + x), bb) g = math.gcd(c, bb) if g != 1: print(g, c / g) break
Unfortunately it's still way too slow.