There are many different breeds of asshole: the Arrogant, the Mean, the Cynic, the Stoic. However, if the asshole is a protagonist, there’s a good chance he’s also got a heart of gold (only don’t tell anyone, because he has a reputation to maintain). Surprisingly, these are characters that many come to adore, because while they might be snarky and mean, it covers up a hidden, good side that they won’t let anyone see.
Why this is bad: Actually, I love this trope. One of my MCs for Antanama follows this trope pretty well, actually, and I adore him. However, I don’t try to make it too much of a secret that he has a heart of gold, which is where some writers go wrong. Some expect us to be surprised when a character, who’s been a complete jerk for 257 pages, turns out to be really nice on the inside. However, it’s never that surprising. She’s been traveling with the protagonist for six months, so no, I’m not terribly surprised she’s actually a good person. In fact, I’d be more surprised if she turned out to be just an actual dick. So when we get that reveal of “Hey, look how good they really are!”, it can actually seem kind of pointless because I suspected that since we first met them.
How you can fix it: Don’t try to hide it, and don’t give it a big reveal. While, yes, the character is actively trying to hide that they’re a good person, you as the writer can show us that it’s not completely true. Let your character do things that imply their goodness: maybe on their travels, Asshole gives a homeless woman his coat; when the villain’s lair is crumbling, Asshole actively tries to save people (and maybe even some of the villains, too); if they’re low on food, maybe Asshole dishes out the day’s portions and gives everyone a little more than they give themselves. These subtle ways of showing their kindness allow the reader to get a sense of it, and you don’t need a point where someone goes, “Oh, you’re just a giant teddy bear, aren’t you?”
Bottom Line: Don’t be heavy-handed about it. No one needs to point out that your character is actually a pretty nice person. Let readers discover it themselves.