So according to the link below, Bitcoin addresses are ECDSA public keys that have gone through a bunch of hash functions.
I understand why you would RIPEMD hash it, to make it shorter and I also understand why you would base 58 encode it to make it even shorter.
Lastly, I also understand why they hash it one more time to create a checksum that ensures people don't accidentally send to bogus addresses.
But what are the other steps for? Why for example SHA-256 hash before you RIPEMD hash?
List of steps are found here.
https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses