//coded by IMPosTOR //impostor@de-compiler.me //www.de-compiler.me function Generate_Serial_by_IMPosTOR(User_Name,License : string) : string; const magic : string = '5150A7F47E5365411AC3A4173A965E273BCB6BAB1FF1459DACAB58FA4B9303E3' + '2055FA30ADF66D76889176CCF5254C024FFCD7E5C5D7CB2A26804435B58FA362' + 'DE495AB125671BBA45980EEA5DE1C0FEC302752F8112F04C8DA397466BC6F9D3' + '03E75F8F15959C92BFEB7A6D95DA5952D42D83BE58D32174492969E08E44C8C9' + '756A89C2F478798E996B3E5827DD71B9BEB64FE1F017AD88C966AC207DB43ACE' + '63184ADFE582311A9760335162457F53B1E07764BB84AE6BFE1CA081F9942B08' + '705868488F19FD4594876CDE52B7F87BAB23D37372E2024BE3578F1F662AAB55' + 'B20728EB2F03C2B5869A7BC5D3A5083730F2872823B2A5BF02BA6A03ED5C8216' + '8A2B1CCFA792B479F3F0F2074EA1E26965CDF4DA06D5BE05D11F6234C48AFEA6' + '349D532EA2A055F30532E18AA475EBF60B39EC8340AAEF605E069F71BD51106E' + '3EF98A21963D06DDDDAE053E4D46BDE691B58D5471055DC4046FD40660FF1550' + '1924FB98D697E9BD89CC434067779ED9B0BD42E807888B89E7385B1979DBEEC8' + 'A1470A7C7CE90F42F8C91E84'; var i,m : integer; c1,c2,c3 : integer; p1,p2,p3 : string; n1,n2,n3 : string; h : string; hash_result : string; final_part : string; part1,part2,part3 : string; begin result := 'Error : 01'; if not(Isvalid(User_Name)) then begin result := 'Username must include : [A-Z , a-z , 0-9] ...'; exit; end; if length(user_name) < 1 then begin result := 'Username must > 1 ...'; exit; end; p1 := Random_Serial(2,6); p2 := Random_Serial(3,6); //U BECG ===> U = Home Lic. if IsRadioButton1 = true then p3 := 'E'; //Enterprise Lic. if IsRadioButton2 = true then p3 := 'C'; //Trust Lic. if IsRadioButton3 = true then p3 := 'B'; //Business Lic. if IsRadioButton4 = true then p3 := 'G'; //Educational Lic. n1 := User_Name + License + p3 + p1 + '-' + p2; c2 := 0; c3 := length(n1); for i := 1 to length(n1) do begin m := ord(n1[i]); n2 := copy(magic,(m * 2) + 1,8); n3 := n2[07] + n2[08] + n2[05] + n2[06] + n2[03] + n2[04] + n2[01] + n2[02]; c1 := c2 + hextoint(n3); c2 := c1 * c3; c3 := c3 - 1; end; h := inttostr(c2); HashStr(HASH_TIGER160, h, hash_result); part1 := copy(hash_result,09,8); part2 := copy(hash_result,00,8); part3 := copy(hash_result,33,8); final_part := part1 + part2 + part3 + '-' + License + '-' + p3 + p1 + '-' + p2; result := final_part; end;