Why are you friends with him? When parents tell you that people judge you by your friends, it's because people judge you by your friends. To take the argument to a ridiculous extreme, wouldn't you side-eye someone who knowingly hung out with a rapist or an animal abuser? Your friend is utterly socially repugnant and cruel. He truly doesn't sound like a nice person. I'm on the spectrum (this means some form of autism) and I can be socially awkward, but never cruel. Telling someone to SHUT THE FUCK UP the way he did is beyond crass; it's abusive and controlling. If you take a step back and examine how he treats you, it probably isn't much better. Try staying away from him for a couple of weeks and see if you actually miss him or if it's a relief not to deal with him anymore. He may have a few good qualities, but they cannot possibly outweigh the behaviours you describe.