All pastes #177297 Raw Edit

Stuff

public text v1 · immutable
#177297 ·published 2006-09-20 10:20 UTC
rendered paste body
while(s/NAME=(.+?);SIZE=(\d+)(.*?)\n//){^
 if($2>0){print" $1 ($2) ";my($n,$dir)=($1);^
  while($n=~s!^(.+?)/!!){$dir=($dir?$dir.'/':'').$1;mkdir$dir}^
  open(OUT,">".($dir?"$dir/":'').$n)||die"Can't open $n\n";^
  binmode(OUT);^
  read(IN,my$b,$2);^
  if($3=~/ENC=1/){$b=rc4($key,$b);print"[encoded] "}^
  print OUT $b;^
  $fcount++;^
  print"ok!\n";^
  close(OUT)}^
 else{print CFG "$1=".($3=~/VALUE=(.+)/?$1:'')."\n"}^
}^
close(CFG);^
close(IN);^
print"\nTotal files: $fcount\n";^
##########################################################################^
sub rc4{my($x,$y,$key,@s)=(0,0,shift,0..255);my@k=unpack('C*',$key);^
for($x=0;$x!=256;$x++){$y=($k[$x%@k]+$s[$x]+$y)%256;@s[$x,$y]=@s[$y,$x]}^
$x=$y=0;my$z=undef;^
for(unpack('C*',shift)){^
 $x=($x+1)%256;$y=($s[$x]+$y)%256;@s[$x,$y]=@s[$y,$x];^
 $z.=pack('C',$_^=$s[($s[$x]+$s[$y])%256])}^