When you receive InitCryptoMessageEvent, you need generate Prime and Generator with BigInteger. And you generate hash for this Prime and Generator and you need put it in memory. You send this hash to client and client get banner with hash.
On your banner you need use MUS for get Prime and Generator with token and encode it for client (see capostrike banner), now client have Prime and Generator.
Now client generate PublicKey, encrypt it with public RSA Key and send it to server.
Because Habbo.swf is patched with custom RSA key, we can decrypt it in emulator.
Server decrypt DiffieHellman public key of client with private RSA key, and generate publickey with own PrivateKey.
Server send own publickey to client and generate sharedkey, client and server now get the same sharedkey.
Now this sharedkey is used for rc4 algorithm, client crypt all packet with rc4 and server decrypt all packet with same sharedkey.
Habbo use non-blocking rc4 algorithm and PKCS1 RSA.
Sorry my english is bad, you need more explain ? xd