All pastes #558072 Raw Edit

sdsd

public cpp v1 · immutable
·published 2007-06-11 06:53 UTC
rendered paste body
function PTencrypt(s:string;key,v:dword):string;var mk,eax,si,ebp,esi,edx,ecx,edi,ebx:dword;    re:string;begin    ecx:=key or $80010000;    ebx:=v;    edx:=ebx and $ffff;    eax:=(ecx shl $10) or edx;    esi:=length(s);    re:=copy(s,1,4)+#0#0#0#0+chr(eax)+chr(eax div 256)+chr(eax div $10000)+chr(eax div $1000000);    eax:=eax shr 4;    edx:=esi+8;    eax:=eax+esi;    re[1]:=chr(edx);    re[2]:=chr(edx div $100);    re[3]:=chr(edx div $10000);    re[4]:=chr(edx div $1000000);    edx:=eax;    mk:=ecx;    ebx:=ebx+(ecx and 255);    ebp:=0;    for eax:=4 to esi-1 do begin        ecx:=byte(s[eax+1]);        edi:=ecx;        ecx:=(ecx xor (edx and 255))            xor (ebx and 255);        re:=re+chr(ecx);        ebx:=(eax div 2) * eax;        ebp:=ebp+edi;        edx:=edx+ebx;        ebx:=0; // may be the packet number        ebx:=(ecx and 255) xor ebx;    end;    ecx:=mk and $ffff0000;    edi:=ebp and $ffff;    ecx:=ecx or edi;    re[5]:=chr(ecx);    re[6]:=chr(ecx div $100);    re[7]:=chr(ecx div $10000);    re[8]:=chr(ecx div $1000000);    result:=re;end;