The scary thing is (and I know you've thought of this) is she's making you feel like a nasty SOB who never does a damn thing for her.
But we know different. The fact you've asked what can you do to remedy the situation shows a good solid guy trying to do the right thing. Now firstly, don't buy her anything, she'll only lose respect for you. You have better luck buying her a .99 cent ice cream cone on a day when she's in a good mood than $40.00 roses when she's on the rag. And she'll appreceate the ice cream more. (Seriously.) Rewarding an irrational woman with gifts validates whatever mindless logic she's spewing and empowers her to ***** twice as hard next time around.
Generally varying from woman to woman, estrogen fills their brains with rage, illogic, anger, and irrational thought. This is what we call womens intuition. (thoughts based on emotions and not on logic.)
All she really needs is someone to vent on, and someone to bring down to her own miserable level. We call her victim (you) an "emotional tampon." The best advice is to avoid it at all costs, unless you can listen to it for 3 hours without going insane. I highly recommend against it.
Here's what I do (but I'm the boss in my relationships)
Get offensive without getting upset or emotional.
I generally build her up (tell her she's doing great at work, lookin' nice in her clothes) then suggest she goes to visit her sister.
When asked why? She gets the truth. You're on the rag, the dog's hiding in the corner, and the whole roof's going to come down if you keep this emotional tirade up for another minute.
Never give into their childish rants, you only empower them to make your life worse. And here's a biggie: Never let them have 1 over you with sex. Spank off 3 times before you visit them if you find yourself following her around for the chance at a quick lay. Good luck bro, welcome to the world of women.