use integer;
if ($#ARGV<2){
	die "Usage: skysave.pl <template_file> <EEPROM_dump> <4_digit_CTR_code>";
}
open INFILE,$ARGV[0] or die;
$CTR=uc($ARGV[2]);
seek (INFILE, $start, SEEK_SET);
while(<INFILE>){
	if (m/.*?((CTR-P-)?$CTR).*?/) {
		open OUTFILE,">$CTR.sav" or die;
		binmode OUTFILE;
		print OUTFILE "CTR_SAVE$1\0\0\xFF\xFF\xFF\xFF";
		while(<INFILE>){
			if (m/.*?SHA1:/) {
				for ($i=0; $i<4; $i++){
					readline INFILE;
				}
				for ($i=0; $i<4; $i++){
					foreach $a (split(' ',readline INFILE)){
						print OUTFILE chr(hex($a));
					}
				}
				close INFILE;
				open INFILE,$ARGV[1] or die;
				binmode INFILE;
				$size=0;
				while(read INFILE, $buffer, 0x20000){
					print OUTFILE $buffer;
					$size+=0x20000;
				}
				while($size<0x100000){
					print OUTFILE "\xFF";
					$size++;
				}
				close INFILE;
				close OUTFILE;
				exit;
			}
		}
		exit;
	}
}
close INFILE;