MOV ECX, 3 //Encrypt Amount... PUSH ECX EncryptPacket: MOV ECX, PacketSize MOV ESI, PacketBuffer XOR EAX, EAX EncryptLoop1: MOV DL, BYTE PTR DS:[ESI] ROL DL, 3 ADD DL, CL XOR DL, AL MOV AL, DL ROR DL, CL NOT DL ADD DL, 48 MOV BYTE PTR DS:[ESI], DL INC ESI DEC ECX CMP ECX, 0 JNZ EncryptLoop1 MOV ECX, PacketSize XOR EAX, EAX EncryptLoop2: DEC ESI MOV DL, BYTE PTR DS:[ESI] ROL DL, 4 ADD DL, CL XOR DL, AL MOV AL, DL XOR DL, 13 ROR DL, 3 MOV BYTE PTR DS:[ESI], DL DEC ECX CMP ECX, 0 JNZ EncryptLoop2 POP ECX DEC ECX CMP ECX, 0 PUSH ECX JNZ EncryptPacket