BNLS Checksum Algorithm

Ok, this is one of the most important parts of my application and it is becoming very hard to translate. This code is needed for my bot, otherwise, it will not connect. I would like to know if the following code can be easily (or anyway) translated into Python. I'm not saying you have to do this for me unless you wan't to, this has just become very hard to accomplish. The following code is C++. I also have this code in VB6 and C# incase anyone would like to see that instead.

Here is some information about the BNLS Checksum:
The BNLS checksum algorithm calculates the checksum of a password using the 32-bit server code received in BNLS_AUTHORIZE (0x0e). You should create the BNLS checksum as follows:
Create an ANSI string whose length is the length of the password + 8 characters.
Copy the password to the beginning. (Note that the password is case sensitive.)
In the last 8 characters, store the hexadecimal representation of the server code, in uppercase, padded with zeroes on the left.
Calculate the standard CRC-32 checksum (using the standard polynomial 0xEDB88320) of the string. The result is the BNLS checksum, to be sent in BNLS_AUTHORIZEPROOF (0x0f).

"You should create the BNLS checksum as follows:
Create an ANSI string whose length is the length of the password + 8 characters."

You don't need to explicitly create strings with a particular length in Python, so there's no need for this.

"Copy the password to the beginning. (Note that the password is case sensitive.)"
You don't have to do anything special like strcpy to copy strings in Python, and it is case sensitive anyway by default.

"In the last 8 characters, store the hexadecimal representation of the server code, in uppercase, padded with zeroes on the left"
This matters, but how you do it depends on how you are reading the code elsewhere in your program.

"test".zfill(n) will pad a string with zeros on the left up to n characters.

To remove the "0x" from the start of a hex string and pad with zeros, it might be:
textToCheck = password + serverCode[2:].zfill(8)

I think you asked a while ago about changing a string into hex characters... so you could use that if you need to.

"Calculate the standard CRC-32 checksum"
Done with the library function binascii.crc32. I think this is what takes up most of the code in the other language examples.

Now, the example code on the bnetdocs didn't make much sense to me. The copying things to something else the polynomial stuff, etc. So I tried converting the code. I know that there are many errors in there. CByte and CRC32 are not recognized in Python. And a few of the statements need to be fixed in order to in Python. Do you have any ideas?