Rory McIlroy admitted he was far from his best on day three at Colonial, but he goes into the final round just three strokes adrift of leader Xander Schauffele.