3 hour workout session will raise the cortisol levels in your body. A 3 hour workout really isnt necessary, especially a 1 hour ab workout I would also do an hour of legs and then some cardio afterwards- not the other way around. I would do some carbs before for some energy and do simple carbs and protein post workout. Your muscle craves simple carbs after they have been worked. Proteins have amino acids which are muscle building blocks. everyone does things differently so try switching things up to see what works for you