Yeah, I haven't given up yet. This thing is pretty good, actually.
The key is 256 characters long. The thing about this that is different from roasting, is the key position changes depending on the value (un xor-d) of the byte before. You always start at 1, so its still decryptable. This isn't as secure as AES/DES/whatever, because you can still create messages using a public key (there is no private key, actually), but oh well, its more secure than plain text.
The GetKey function is just for debugging purposes, really. You should probably exchange random keys.
http://www.javaop.com/~joe/VB6/Xorcrypt.zip