Public key to bitmessage address
First the public part of the signing key and the encryption key are merged together.
Then you take the SHA512 hash of that.
Then you take the RIPEMD160 of that.
This is repeated until you have a result that starts with a zero (Or two zeros, if eighteen byte ripe is required)
Then you remove the zeros at the beginning.
Then you slap the stream number (in big endian) in front of that.
Then you slap the address version (in big endian) in front of that.
Then you take a double SHA512 of that and use the first four bytes as a checksum, that you slap on at the end.
Then you base58 encode this.
Then you slap "BM-" in front of it all.