DSolve[-(x^a*y[x]^b*(c*y[x] + x*Derivative[1][y][x])) + f[x^c*y[x]]*(-a + b*x*Derivative[1][y][x]) == 0,y[x],x]