struct Packet { int size; int type; int errorcode; int digest; int state; char Message[]; }; Packet *msg; void __declspec(naked) DecryptMsg(Packet *Crypted) { __asm { mov eax, [esp + 4]; mov ecx, [eax]; sub ecx, 4; looplabel: test ecx, ecx; jz retnlabel; mov dl, [eax + ecx + 3]; ror dl, 3; not dl; mov [eax + ecx + 3], dl; dec ecx; jmp looplabel; retnlabel: retn; } }