You may or may not be able to debounce within the routine. It depends on what comes before and after it. First off, you need to be sure that the code inside this routine will not trigger on a bounce from a previous hit.
Be aware the switch bounces on both push and release, and you don't know how long the user's going to hold that button down. It may be 50mS and it may be 3 sec. If you only debounce after it falls, then they release it 1 sec later, you will get a false negative edge.
Generally I code that a button press is responded to immediately, but any change is then disregarded for the next 50mS or so, then disregarded while the line remains low, then disregarded for another 50mS. You can use a tmr interrupt to decrement a counter. Or if most of the rest of the code is just looping, you could decrement inside the code. Exactly how much is not critical, 50mS to 500mS is pretty typical.