We know -x^2 has a maximum point of 0 at x=0, and -x^2 dominates the behaviour of f. We complete the square on this eqn, so we have f(x) = -(x - 4)^2 + 16 + c. We note that g(x) = -(x - 4)^2 has a maximum of 0 at x = 4. Hence f(x) has a maximum of 16 + c at x = 4. So its range is f(x) <= 16 + c, c must be 3, since it is -(x - 4)^2 with a vertical translation of 16 + c.
First we calculate f(2), which is 12 + c. Then we calculate f(f(2)), which is c + 8(12 + c) - (12 + c)^2 which is equal to 96 - 144 + c( 1 + 8 - 24) -c^2, which is equal to -(c^2 + 15c + 48). f(f(2)) = 8 implies -(c^2 + 15c + 48) = 8, that is to sayc^2 + 15c + 56 = 0. the roots of this quadratic are then the possible values of c, such that f(f(2)) = 8. The quadratic factorises to (c + 7)(c + 8) = 0, so c = -7 or c = -8.