void main(int argc,char *argv[]){
int i,j;
FILE *fq,*fp;
int line=0,k=0,n=0,read_size;
unsigned long long int z,zz;

init(); g64(64);
fq=fopen(argv[1],"rb");
while((read_size=fread(buff,1,4096,fq))){
for(k=0;k<256;k++){ for(i=0;i<16;i++)
u.m[i]=buff[i+k*16]; for(i=0;i<4;i++){
c1.cc[i]=((c1.cc[i]+u.cc[i])&f2)^c1.cc[(i+1)&0x3];
c2.cc[i]=((c2.cc[i]+u.cc[i])&f2)^c2.cc[(i+1)&0x3];
}
z=(c1.dd[0]&&ff)^((c1.dd[1]&ff)>>4); c1.dd[0]=c1.dd[0]&f; c1.dd[1]=c1.dd[1]&f;
i=c1.cc[0]%64; c1.dd[0]^=g[i][0]; c1.dd[1]^=g[i][1];
c1.dd[0]^= z; c1.dd[1]^= ~z; i=c2.dd[0]%64;
zz=(c2.dd[0]&&ff)^((c2.dd[1]&ff)>>4);
c2.dd[0]=c2.dd[0]&f; c2.dd[1]=c2.dd[1]&f;
c2.dd[0]^=g[i][0]; c2.dd[1]^=g[i][1];
c1=s5(c1); c2=s5(c2); c2.dd[0]^=zz; c2.dd[1]^=~zz;
}
}
printf("%02x %02x %02x %02x %02x %02x %02x %02x *%s",c1.cc[0],c1.cc[1],c1.cc[2],c1.cc[3],c2.cc[0],c2.cc[1],c2.cc[2],c2.cc[3],argv[1]);
fclose(fq);
}