It is a bit overly complex. Why do you go through two FETs before turning on the top FET ?
Well in order for me to drive the top FETs I would need a high gate voltage. The voltage of the arduino is not enough to switch them on. So I used inverters to drive them. It just so happen that those FETs are the ones I have at hand and I made use of it.
If you are going to use four pins to control the bridge then you can compensate for one FET's inversion in your code.
Hehe I could just use one inversion as you have said in my code but its just prototype anyway, I wanted to set my mindset 0 - off and 1 - on. Since like I said I already have these FETs anyway so I just made use of them.
Most H-bridges have only two pins controlling them and also use a p-channel FET for the top ones.
Well with regards to the number of pins, I can think of other ways to control them with lesser number of pins. I just though that I can have complete control over all the FETs of my H-Bridge if I have this set-up. Well if you're saying this is unsafe or can cause some problems in the arduino I can revise the control set-up(any suggestion?). But for all intents and purposes it works for the time being.