Can you see how this:
state = btn2_Cnt;
if(state != EEPROM.read (4)){
EEPROM.write(4, state);
looks a lot like this:
state1 = btn1_Cnt;
if(state1 != EEPROM.read (0)){
EEPROM.write(0, state1);
?
Quite often that says "time for a function".
Won't always make your code smaller, but it'll make it easier to debug.
(it is also worth pointing out that "btn1_Cnt" is an "int", and doesn't fit in an EEPROM byte)