Initial values:
$a = 3,\quad b = 5,\quad c= 7$
In dynamic scoping when a function is called the called function gets the variable of the calling function even if not explicitly passed (and not the global one)
Here, in main, all $a,b,c$ are the global ones as there is no declaration here.
In func1:
New $a,b$ are declared. $a = 6, b = 8.$ func2 is called with these new values and the original global $c$.
In func2:
New $b,c$ declared. $b=4.$ $c = a + b$ assigns $6+4 = 10$ to $c$. $10$ will be printed and $a$ becomes $6+11 = 17$
In func1:
$a+b+c$ is printed which will be $17 + 8 + 7 = 32.$