//coded by IMPosTOR //impostor@de-compiler.me //www.de-compiler.me function Generate_Serial_by_IMPosTOR : string; var i,j : integer; Magic : string; M : integer; c1,c2,c3 : integer; part1,part2,part3,part4 : string; begin result := 'Error : 01'; Magic := '2YOPB3AQCVUXMNRS97WE0IZD4KLFGHJ8165T'; repeat Part1 := Random_Serial(5,6); c1 := 0; c2 := 0; c3 := 0; for i := 1 to 5 do begin M := (ord(Part1[i])); for j := 1 to length(Magic) do begin if M = (ord(Magic[j])) then begin c1 := (c2 * 8) + c2; c3 := (j - 1) + c2; c2 := (c1 * 4) + c3; break; end; end; end; until c2 mod $2B = 0; repeat Part2 := Random_Serial(5,6); c1 := 0; c2 := 0; c3 := 0; for i := 1 to 5 do begin M := (ord(Part2[i])); for j := 1 to length(Magic) do begin if M = (ord(Magic[j])) then begin c1 := (c2 * 8) + c2; c3 := (j - 1) + c2; c2 := (c1 * 4) + c3; break; end; end; end; until c2 mod $17 = 0; repeat Part3 := Random_Serial(5,6); c1 := 0; c2 := 0; c3 := 0; for i := 1 to 5 do begin M := (ord(Part3[i])); for j := 1 to length(Magic) do begin if M = (ord(Magic[j])) then begin c1 := (c2 * 8) + c2; c3 := (j - 1) + c2; c2 := (c1 * 4) + c3; break; end; end; end; until c2 mod $11 = 0; repeat Part4 := Random_Serial(5,6); c1 := 0; c2 := 0; c3 := 0; for i := 1 to 5 do begin M := (ord(Part4[i])); for j := 1 to length(Magic) do begin if M = (ord(Magic[j])) then begin c1 := (c2 * 8) + c2; c3 := (j - 1) + c2; c2 := (c1 * 4) + c3; break; end; end; end; until c2 mod $35 = 0; result := Part1 + '-' + Part2 + '-' + Part3 + '-' + Part4; end;