code: function () {
                  if ((i = x.getLowestSetBit()) > 0) {
                      x.rShiftTo(i, x);
                  }
                  if ((i = y.getLowestSetBit()) > 0) {
                      y.rShiftTo(i, y);
                  }
                  if (x.compareTo(y) >= 0) {
                      x.subTo(y, x);
                      x.rShiftTo(1, x);
                  } else {
                      y.subTo(x, y);
                      y.rShiftTo(1, y);
                  }
                  if (!(x.signum() > 0)) {
                      if (g > 0) y.lShiftTo(g, y);
                      setTimeout(function () {
                          callback(y)
                      }, 0); // escape
                  } else {
                      setTimeout(gcda1, 0);
                  }
              }
docs: Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.