Yes the removal of excess zeroes is covered in the link I provided.

The leading character '1', which has a value of zero in base58, is reserved for representing an entire leading zero byte, as when it is in a leading position, has no value as a base-58 symbol. There can be one or more leading '1's when necessary to represent one or more leading zero bytes. Count the number of leading zero bytes that were the result of step 3 (for old Bitcoin addresses, there will always be at least one for the version/application byte; for new addresses, there will never be any). Each leading zero byte shall be represented by its own character '1' in the final result.

In your example all of the leading zeros

**000000**71F5AB3BE5657C2B8742575C9D5EED6220BBC3565FA8 are removed and encoded as a single "1" for each byte before encoding the rest of the value.

So

**000000** = 111

the the rest 71F5AB3BE5657C2B8742575C9D5EED6220BBC3565FA8 is treated as a single large (256 bit) number. Take the number divide by 58, calculate the mod and store the excess. Convert the mod value (0 to 57) into a base58 digit. Continue this process until the number has been reduced to zero. You will be left with a string of base58 characters.

For example the first (least significant digit):

0x71F5AB3BE5657C2B8742575C9D5EED6220BBC3565FA8 mod 0x3A = 0x10 = "H"

Honestly this is one of those things which I think Satoshi made excessively complicated for no real benefit, but he did and to change it now would be a breaking change which isn't going to happen.