program ideone;
var
b: Byte;
i: Integer;
serialn: String;
ProductId: String;
IdentCode: String;
LicenseKey: String;
HoldRegs: Array [1..19] of Byte = (0,$DF,32,$E8,83,$97,$B2,3,0,96,$9F,$9F,33,38,64,53,0,0,1);
begin
IdentCode := '';
LicenseKey := '';
serialn := 'SC-W0V K37682008' + Chr(0) + Chr(0);
ProductId := 'MODPN2XV94501MB02';
for i := 1 to Length(ProductId) do
begin
b := Ord(serialn[i]) xor Ord(ProductId[i]);
b := (b mod 13) + 65;
IdentCode := IdentCode + Chr(b);
end;
IdentCode := IdentCode + Chr($32);
for i := 1 to 17 do
begin
b := Ord(IdentCode[i]) xor HoldRegs[i] xor i;
b := (b mod 26) + 65;
LicenseKey := LicenseKey + Chr(b);
end;
LicenseKey := LicenseKey + Chr($0);
Writeln('IDENT CODE: ' + IdentCode);
Writeln('LICENSE KEYE: ' + LicenseKey);
end.
cHJvZ3JhbSBpZGVvbmU7CnZhcgoJYjogQnl0ZTsKCWk6IEludGVnZXI7CglzZXJpYWxuOiBTdHJpbmc7CglQcm9kdWN0SWQ6IFN0cmluZzsKCUlkZW50Q29kZTogU3RyaW5nOwoJTGljZW5zZUtleTogU3RyaW5nOwoJSG9sZFJlZ3M6IEFycmF5IFsxLi4xOV0gb2YgQnl0ZSA9ICgwLCRERiwzMiwkRTgsODMsJDk3LCRCMiwzLDAsOTYsJDlGLCQ5RiwzMywzOCw2NCw1MywwLDAsMSk7CmJlZ2luCglJZGVudENvZGUgOj0gJyc7CglMaWNlbnNlS2V5IDo9ICcnOwoJc2VyaWFsbiA6PSAnU0MtVzBWIEszNzY4MjAwOCcgKyBDaHIoMCkgKyBDaHIoMCk7CglQcm9kdWN0SWQgOj0gJ01PRFBOMlhWOTQ1MDFNQjAyJzsKCgkKCWZvciBpIDo9IDEgdG8gTGVuZ3RoKFByb2R1Y3RJZCkgZG8KCWJlZ2luCgkJYiA6PSBPcmQoc2VyaWFsbltpXSkgeG9yIE9yZChQcm9kdWN0SWRbaV0pOwoJCWIgOj0gKGIgbW9kIDEzKSArIDY1OwoJCUlkZW50Q29kZSA6PSBJZGVudENvZGUgKyBDaHIoYik7CgllbmQ7CglJZGVudENvZGUgOj0gSWRlbnRDb2RlICsgQ2hyKCQzMik7CgkKCglmb3IgaSA6PSAxIHRvIDE3IGRvCgliZWdpbgoJCWIgOj0gT3JkKElkZW50Q29kZVtpXSkgeG9yIEhvbGRSZWdzW2ldIHhvciBpOwoJCWIgOj0gKGIgbW9kIDI2KSArIDY1OwoJCUxpY2Vuc2VLZXkgOj0gTGljZW5zZUtleSArIENocihiKTsKCWVuZDsKCUxpY2Vuc2VLZXkgOj0gTGljZW5zZUtleSArIENocigkMCk7CgoKCVdyaXRlbG4oJ0lERU5UIENPREU6ICcgKyBJZGVudENvZGUpOwoJV3JpdGVsbignTElDRU5TRSBLRVlFOiAnICsgTGljZW5zZUtleSk7CmVuZC4=