More likely the hacks are there because requirements changed and the software wasn't initially built to be flexible enough to support change.
A rewrite will solve it in the short term - until requirements change again.
However, I would much rather apply the new 'hacks' onto the rewritten 10 line function than figure out the original 200 line behemoth.