//coded by IMPosTOR //impostor@de-compiler.me //www.de-compiler.me function Generate_Serial_by_IMPosTOR : string; const co : string = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789'; var m : integer; a,b : integer; p1 ,b1 : string; i,j : integer; a1,a2,a3 : integer; a4,a5,a6 : integer; rn : string; r4,count : integer; r1,r2,r3,r5,r6,rf: string; begin result := ''; rn := random_serial(8,7); a := sHexToInt(rn); b := (a xor $31443772) shl 1; r1 := ReverseHex(sbinttohex(a,8,0)); r2 := ReverseHex(sbinttohex(b,8,0)); r3 := r1[5] + r1[6]; r4 := sHexToInt(r3) xor 1; r5 := r1[7] + r1[8]; rf := sbinttohex(r4,2,0) + r5 + r1[05] + r1[06] + r1[07] + r1[08] + r2; a1 := 0; count := 0; for i := 1 to 8 do begin inc(count); a1 := a1 * $63306CE7; m := sHexToInt(copy(rf,count,2)); inc(count); a2 := m - a1; a1 := a2; end; asm mov eax, a1 mov ecx, $0FFF1 xor edx, edx div ecx mov a3, edx end; a4 := a3 xor $06BF; r6 := ReverseHex(sbinttohex(a4,4,0)); rf := rf + r6 +'0000'; for i := 1 to 4 do begin if i = 1 then begin a6 := 0; b1 := ReverseHex(copy(rf,1,8)); end; if i = 2 then begin a6 := 1; b1 := ReverseHex(copy(rf,7,8)); end; if i = 3 then begin a6 := 2; b1 := ReverseHex(copy(rf,13,8)); end; if i = 4 then begin a6 := 3; b1 := ReverseHex(copy(rf,19,8)); end; for j := 1 to 5 do begin a5 := (sHexToInt(b1) shr a6) and $1F; p1 := p1 + co[a5 + 1]; a6 := a6 + 5; end; end; insert('-',p1,5); insert('-',p1,10); insert('-',p1,15); result := copy(p1,1,19); end;