rendered paste bodywhile(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])}^