Find all functions $f: \mathbb{R} \to\mathbb{R} $ such that if $a+f(b)+f^2(c) = 0$ then $f(a)^3 + bf(b)^2 + c^2f(c) = 3abc$ 
Find all functions $ f : \mathbb R \to \mathbb R $ such that for all $ a , b , c \in \mathbb R $, if
$$ a + f ( b ) + f ^ 2 ( c ) = 0 \tag {Eq1} \label {eqn1} $$
then
$$ f ( a ) ^ 3 + b f ( b ) ^ 2 + c ^ 2 f ( c ) = 3 a b c \text . \tag {Eq2} \label {eqn2} $$

I've been trying to solve this "implication-based" functional equation. My first thought was to use substitution to \eqref{eqn2} from \eqref{eqn1}.
$$ f ( a ) = - f ^ 2 ( c ) - a $$
$$ f ( a ) ^ 2 = f ^ 2 ( c ) ^ 2 + 2 a f ^ 2 ( c ) + a ^ 2 $$
therefore after some manipulation:
$$ f ( a ) ^ 3 + b f ^ 2 ( c ) ^ 2 + 2 a b f ^ 2 ( c ) + c ^ 2 f ( c ) = a b ( 3 c - a ) $$
Then, I tried plugging in some values, for instance the simplest case $a=b=c=1$
$$f(1)^3 + f^2(1)^2 + 2f^2(1) + f(1) = 2$$
I have not been able to deduce any useful information from this, nor from similar substitutions with 1.
I'd be grateful for your help with this problem.

First of all, note that the problem can be stated in the following equivalent form.

Find all functions $ f : \mathbb R \to \mathbb R $ such that
$$ f \left( - f ( x ) - f ^ 2 ( y ) \right) ^ 3 + 3 x y \left( f ( x ) + f ^ 2 ( y ) \right) + x f ( x ) ^ 2 + y ^ 2 f ( y ) = 0 \tag 0 \label 0 $$
for all $ x , y \in \mathbb R $. Here, $ f ^ 2 ( y ) $ means $ f \bigl( f ( y ) \bigr) $, and $ f ( x ) ^ 2 $ means $ f ( x ) \cdot f ( x ) $.

It's straightforward to verify that the constant zero function, the identity function and the additive inversion function all satisfy the required condition. We prove that these are the only solutions.
Letting $ k = f ( 0 ) $ and putting $ x = y = 0 $ in \eqref{0}, we get $ f \bigl( - k - f ( k ) \bigr) = 0 $. Then, plugging $ x = - k - f ( k ) $ and $ y = 0 $ in \eqref{0} we can see that $ f \bigl( - f ( k ) \bigr) = 0 $. Now, set $ x = - f ( k ) $ in \eqref{0} and consider the equation once with $ y = - k - f ( k ) $ and another time with $ y = - f ( k ) $. Comparing the two results, you can conclude $ k ^ 2 f ( k ) = 0 $, which together with $ f \bigl( - f ( k ) \bigr) = 0 $ implies $ k = 0 $.
Putting $ y = 0 $ in \eqref{0} gives
$$ f \bigl( - f ( x ) \bigr) ^ 3 = - x f ( x ) ^ 2 \tag 1 \label 1 $$
for all $ x \in \mathbb R $, while plugging $ x = 0 $ in \eqref{0} yields
$$ f \left( - f ^ 2 ( y ) \right) ^ 3 = - y ^ 2 f ( y ) \tag 2 \label 2 $$
for all $ y \in \mathbb R $. Letting $ x = f ( y ) $ in \eqref{1}, we get $ f \left( - f ^ 2 ( y ) \right) ^ 3 = - f ( y ) f ^ 2 ( y ) ^ 2 $, which together with \eqref{2} shows that for any $ y \in \mathbb R \setminus \{ 0 \} $ with $ f ( y ) \ne 0 $ we have $ f ^ 2 ( y ) ^ 2 = y ^ 2 $. But also note that if $ y , f ( y ) \ne 0 $ and $ f ^ 2 ( y ) = - y $, then \eqref{2} gives $ f ( y ) \in \{ - y , y \} $; $ f ( y ) = y $ cannot happen since it implies $ f ^ 2 ( y ) = y $ (which contradicts $ f ^ 2 ( y ) = - y $ as $ y \ne 0 $), and $ f ( y ) = - y $ is not possible because it implies $ f ( - y ) = f ^ 2 ( y ) = - y $, which then substituting $ - y $ for $ y $ in \eqref{2} implies $ f ( y ) = y $ (contradicting $ f ( y ) = - y $ as $ y \ne 0 $). Therefore, the case $ f ^ 2 ( y ) = - y $ is ruled out, and we must have
$$ f ( y ) \ne 0 \implies f ^ 2 ( y ) = y \tag 3 \label 3 $$
for all $ y \in \mathbb R \setminus \{ 0 \} $. Now, assume that there exists $ y _ 0 \in \mathbb R \setminus \{ 0 \} $ with $ f ( y _ 0 ) \ne 0 $. Putting $ y = y _ 0 $ in \eqref{2} and using \eqref{3} we have $ f ( - y _ 0 ) ^ 3 = - y _ 0 ^ 2 f ( y _ 0 ) $. Using this and \eqref{3} and setting $ y = y _ 0 $ in \eqref{0}, we can see that if $ f ( x ) = 0 $ for some $ x \in \mathbb R $, then we must have $ x = 0 $. Hence, using \eqref{3} we can conclude $ f ^ 2 ( y ) = y $ for all $ y \in \mathbb R $. Consequently, substituting $ f ( x ) $ for $ x $ in \eqref{0}, we get
$$ f ( - x - y ) ^ 3 + 3 y ( x + y ) f ( x ) + x ^ 2 f ( x ) + y ^ 2 f ( y ) = 0 \tag 4 \label 4 $$
for all $ x , y \in \mathbb R $. Interchanging $ x $ and $ y $ in \eqref{4} and comparing with \eqref{4} itself, it's straightforward to see that
$$ y f ( x ) = x f ( y ) $$
for all $ x , y \in \mathbb R $. In particular, this gives $ f ( x ) = f ( 1 ) x $ for all $ x \in \mathbb R $, and as $ f ^ 2 ( 1 ) = 1 $, we have $ f ( 1 ) \in \{ - 1 , 1 \} $. Therefore, we've proven that if $ f $ differs from the constant zero function, we must either have $ f ( x ) = x $ for all $ x \in \mathbb R $ or $ f ( x ) = - x $ for all $ x \in \mathbb R $, which proves what was claimed.
