//coded by IMPosTOR //impostor@de-compiler.me //www.de-compiler.me function Generate_Serial_by_IMPosTOR(User_Name: string): string; var a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,Rs : string; b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19 : integer; a,b,c,d,e,i,j : integer; begin result := 'Error : 01'; if length(User_Name) < 1 then begin result := 'Please Enter your Username !.'; exit; end; Rs := Random_Serial(31,0); a1 := 'EAB200-'; a2 := a1 + Rs; a3 := a2[18] + a2[19] + a2[21]; a4 := a2[8] + a2[10] + a2[11] + a2[13] + a2[14] + a2[16]; a5 := a2[29] + a2[30] + a2[31] + a2[33] + a2[34] + a2[35]; a6 := a2[23] + a2[25] + a2[26]; a7 := a4 + a3; a8 := a6 + a5; a9 := a8[1] + a7[8] + a7[4] + a8[7] + a8[5] + a8[9] + a7[2] + a8[3] + a7[6]; //Finally a15 check with a10, if same then registration Success. //a10 := a7[7] + a8[8] + a8[6] + a8[2] + a8[4] + a7[3] + a7[1] + a7[5] + a7[9]; a := length(a9) div 2; //umm,nothing :D ??? b := $5F; c := $62 mod b; //[$62] Magic code! d := $62 + $62; e := d mod b; j := 0; for i := 1 to length(a9) do begin j := j + 1; b1 := j and $80000001; if b1 < 0 then begin //008E3D91 |. 48 |DEC EAX //008E3D92 |. 83C8 FE |OR EAX,FFFFFFFE //008E3D95 |. 40 |INC EAX end; if b1 = 0 then begin b7 := (ord(a9[i])); b8 := c; b9 := b7 + b8; b10 := b9 - $20; b11 := b10 mod b; b12 := b11 + $20; a11 := a11 + inttohex(b12); end else begin b2 := (ord(a9[i])); b3 := e + b2; b4 := b3 - $20; b5 := b4 mod b; b6 := b5 + $20; a11 := a11 + inttohex(b6); end; end; a12 := hextostr(a11); a13 := ReversString(a12); a14 := a13[2] + a13[3] + a13[1] + a13[5] + a13[6] + a13[4] + a13[8] + a13[9] + a13[7]; for i := 1 to length(a14) do begin b15 := (ord(a14[i])); b16 := b15 and $0F; if b16 >= $0A then begin b17 := b16 + $41; b17 := b17 - $0A; end else begin b17 := (b16 + $30) and $8000000F; end; if (b17) > 9 then begin a17 := (hextostr(inttohex(b17))); b17 := hextoint(a17); end; a15 := a15 + inttohex(b17); b18 := b15; asm SHR b18,$4 end; if b18 >= $0A then begin b19 := b18 + $41; b19 := b19 - $0A; end else begin b19 := (b18 + $30)and $8000000F; end; a16 := a16 + inttohex(b19); end; insert(a15[1],Rs,11); delete(Rs,12,1); insert(a15[2],Rs,27); delete(Rs,28,1); insert(a15[3],Rs,24); delete(Rs,25,1); insert(a15[4],Rs,18); delete(Rs,19,1); insert(a15[5],Rs,22); delete(Rs,23,1); insert(a15[6],Rs,4); delete(Rs,5,1); insert(a15[7],Rs,1); delete(Rs,2,1); insert(a15[8],Rs,7); delete(Rs,8,1); insert(a15[9],Rs,14); delete(Rs,15,1); result := (a1 + Rs) ; end;