Great Reply: I laughed at “Oh come on, Fred, you’d screw a snake if you could get it’s legs apart.” Some guys are sleazy, and deserve exactly what you give them: the humiliation they deserve.
Call them out in public, rather than damselling as a victim later. Every guy knows that if you don’t stand up to a bully, you will be their victim forever. You stand up and fight if necessary: you don’t even need to win: just hurt him enough that he doesn’t come back for more.
If all else fails, just say “No”: that usually works.