open comment asterisk css dash cat dot c 
 
 asterisk 
 
 asterisk Copyright 1999 Derek Fawcus dot 
 
 asterisk 
 
 asterisk Released under version 2 of the GPL dot 
 
 asterisk 
 
 asterisk Decode selected sector types from a CSS encoded DVD to stdout dot Use as a 
 
 asterisk filter on the input to mpeg2player or ac3dec dot 
 
 asterisk 
 
 close comment 
 
 number sign include is lesser than stdio dot h is greater than 
 
 number sign include is lesser than stdlib dot h is greater than 
 
 number sign if defined open a parentheses underscore underscore linux underscore underscore close a parentheses 
 
 number sign include is lesser than getopt dot h is greater than 
 
 number sign endif open comment number sign include is lesser than string dot h is greater than 
 
 number sign include is lesser than unistd dot h is greater than 
 
 number sign include is lesser than fcntl dot h is greater than 
 
 
 
 number sign include " css dash descramble dot h " 
 
 
 
 static struct playkey pkey1a1 is assigned open a bracket 0x36b comma open a bracket 0x51 comma 0x67 comma 0x67 comma 0xc5 comma 0xe0 close a bracket close a bracket dot comma 
 
 static struct playkey pkey2a1 is assigned open a bracket 0x762 comma open a bracket 0x2c comma 0xb2 comma 0xc1 comma 0x09 comma 0xee close a bracket close a bracket dot comma 
 
 static struct playkey pkey1b1 is assigned open a bracket 0x36b comma open a bracket 0x90 comma 0xc1 comma 0xd7 comma 0x84 comma 0x48 close a bracket close a bracket dot comma 
 
 
 
 static struct playkey pkey1a2 is assigned open a bracket 0x2f3 comma open a bracket 0x51 comma 0x67 comma 0x67 comma 0xc5 comma 0xe0 close a bracket close a bracket dot comma 
 
 static struct playkey pkey2a2 is assigned open a bracket 0x730 comma open a bracket 0x2c comma 0xb2 comma 0xc1 comma 0x09 comma 0xee close a bracket close a bracket dot comma 
 
 static struct playkey pkey1b2 is assigned open a bracket 0x2f3 comma open a bracket 0x90 comma 0xc1 comma 0xd7 comma 0x84 comma 0x48 close a bracket close a bracket dot comma 
 
 
 
 static struct playkey pkey1a3 is assigned open a bracket 0x235 comma open a bracket 0x51 comma 0x67 comma 0x67 comma 0xc5 comma 0xe0 close a bracket close a bracket dot comma 
 
 static struct playkey pkey1b3 is assigned open a bracket 0x235 comma open a bracket 0x90 comma 0xc1 comma 0xd7 comma 0x84 comma 0x48 close a bracket close a bracket dot comma 
 
 
 
 static struct playkey pkey3a1 is assigned open a bracket 0x249 comma open a bracket 0xb7 comma 0x3f comma 0xd4 comma 0xaa comma 0x14 close a bracket close a bracket dot comma open comment static struct playkey pkey4a1 is assigned open a bracket 0x028 comma open a bracket 0x53 comma 0xd4 comma 0xf7 comma 0xd9 comma 0x8f close a bracket close a bracket dot comma open comment 
 
 
 
 static struct playkey asterisk playkeys open a square bracket close a square bracket is assigned open a bracket 
 
 bitwise and pkey1a1 comma bitwise and pkey2a1 comma bitwise and pkey1b1 comma 
 
 bitwise and pkey1a2 comma bitwise and pkey2a2 comma bitwise and pkey1b2 comma 
 
 bitwise and pkey1a3 comma bitwise and pkey1b3 comma 
 
 bitwise and pkey3a1 comma bitwise and pkey4a1 comma 
 
 NULL close a bracket dot comma 
 
 
 
 static unsigned char disk underscore key open a square bracket 2048 close a square bracket dot comma 
 
 static unsigned char title underscore key open a square bracket 5 close a square bracket dot comma 
 
 
 
 static unsigned char sector open a square bracket 2048 close a square bracket dot comma 
 
 
 
 unsigned long sectors is assigned 0 dot comma 
 
 unsigned long crypted is assigned 0 dot comma 
 
 unsigned long skipped is assigned 0 dot comma 
 
 
 
 int do underscore all is assigned 0 dot comma 
 
 int do underscore video is assigned 0 dot comma 
 
 int do underscore ac3 is assigned 0 dot comma 
 
 int do underscore mpg is assigned 0 dot comma 
 
 int verbose is assigned 0 dot comma 
 
 int keep underscore pack is assigned 0 dot comma 
 
 int keep underscore pes is assigned dash 1 dot comma 
 
 
 
 number sign define STCODE open a parentheses p comma a comma b comma c comma d close a parentheses open a parentheses open a parentheses p close a parentheses open a square bracket 0 close a square bracket ==,a &&, open a parentheses p close a parentheses open a square bracket 1 close a square bracket is equal to 
 
 static void un underscore css open a parentheses int fdi comma int fdo close a parentheses 
 
 open a bracket 
 
 unsigned char asterisk sp comma asterisk pes dot comma 
 
 int writen comma wr comma peslen comma hdrlen dot comma 
 
 
 
 while open a parentheses read open a parentheses fdi comma sector comma 2048 close a parentheses ==
2048 close a parentheses open a bracket 
 
 + + sectors dot comma 
 
 if open a parentheses ! STCODE open a parentheses sector comma 0x00 comma 0x00 comma 0x01 comma 0xba close a parentheses close a parentheses open a bracket 
 
 fputs open a parentheses " Not Pack start code backslash n " comma stderr close a parentheses dot comma 
 
 + + skipped dot comma continue dot comma 
 
 close a bracket 
 
 
 
 if open a parentheses do underscore all close a parentheses 
 
 goto write underscore it dot comma 
 
 
 
 pes is assigned sector + 14 + open a parentheses sector open a square bracket 13 close a square bracket bitwise and 0x07 close a parentheses dot comma 
 
 if open a parentheses STCODE open a parentheses pes comma 0x00 comma 0x00 comma 0x01 comma 0xbb close a parentheses close a parentheses open a bracket open comment System Header Pack Layer */p 
 peslen is assigned open a parentheses pes open a square bracket 0x04 close a square bracket is lesser than is lesser than 8 close a parentheses + pes open a square bracket 0x05 close a square bracket dot comma 
 
 pes + is assigned peslen + 6 dot comma 
 
 close a bracket 
 
 
 
 if open a parentheses pes open a square bracket 0x00 close a square bracket logical or pes open a square bracket 0x01 close a square bracket logical or pes open a square bracket 0x02 close a square bracket is not equal to + + skipped dot comma continue dot comma 
 
 close a bracket 
 
 peslen is assigned open a parentheses pes open a square bracket 0x04 close a square bracket is lesser than is lesser than 8 close a parentheses + pes open a square bracket 0x05 close a square bracket dot comma 
 
 hdrlen is assigned pes open a square bracket 0x08 close a square bracket + 6 + 3 dot comma 
 
 if open a parentheses open a parentheses pes open a square bracket 0x03 close a square bracket bitwise and 0xf0 close a parentheses is equal to 0xe0 close a parentheses open a bracket 
 
 if open a parentheses do underscore video close a parentheses 
 
 goto write underscore it dot comma 
 
 close a bracket else if open a parentheses do underscore mpg &&xpes open a square bracket 0x03 close a square bracket is equal to open a parentheses 0xc0 bitwise or open a parentheses do underscore mpg dash 1 close a parentheses close a parentheses close a parentheses open a bracket /*
MPEG Audio close comment 
 goto write underscore it dot comma 
 
 close a bracket else if open a parentheses pes open a square bracket 0x03 close a square bracket ==[0xbd close a parentheses open a bracket /*xAC3 Audio close comment if open a parentheses do underscore ac3 close a parentheses open a bracket 
 
 int audiotrack is assigned do underscore ac3 dash 1 dot comma 
 
 if open a parentheses pes open a square bracket hdrlen close a square bracket ==_ open a parentheses 0x80 bitwise or open a parentheses audiotrack bitwise and 7 close a parentheses close a parentheses close a parentheses open a bracket 
 
 hdrlen + is assigned 4 dot comma 
 
 goto write underscore it dot comma 
 
 close a bracket 
 
 close a bracket 
 
 close a bracket else 
 
 + + skipped dot comma 
 
 continue dot comma 
 
 
 
 write underscore it : 
 
 if open a parentheses sector open a square bracket 20 close a square bracket bitwise and 0x30 close a parentheses open a bracket 
 
 + + crypted dot comma 
 
 css underscore descramble open a parentheses sector comma title underscore key close a parentheses dot comma 
 
 sector open a square bracket 20 close a square bracket bitwise and is assigned 0x8f dot comma 
 
 close a bracket 
 
 writen is assigned 0 dot comma 
 
 if open a parentheses keep underscore pack close a parentheses 
 
 sp is assigned sector comma peslen is assigned 2048 dot comma 
 
 else if open a parentheses keep underscore pes close a parentheses 
 
 sp is assigned pes comma peslen is assigned 2048 dash open a parentheses pes dash sector close a parentheses dot comma 
 
 else 
 
 sp is assigned pes + hdrlen comma peslen dash is assigned hdrlen dash 6 dot comma 
 
 
 
 do open a bracket 
 
 wr is assigned write open a parentheses fdo comma sp comma peslen dash writen close a parentheses dot comma 
 
 sp + is assigned wr dot comma 
 
 writen + is assigned wr dot comma 
 
 close a bracket while open a parentheses wr is greater than 0 &&,writen is lesser than peslen close a parentheses dot comma 
 
 close a bracket 
 
 close a bracket 
 
 
 
 static void usage underscore exit open a parentheses void close a parentheses 
 
 open a bracket 
 
 fputs open a parentheses " usage : css dash cat open a square bracket dash t title dash no close a square bracket open a square bracket dash m mpeg dash audio dash no close a square bracket open a square bracket dash avPp12345678 close a square bracket vob underscore file backslash n " comma stderr close a parentheses dot comma 
 
 exit open a parentheses 2 close a parentheses dot comma 
 
 close a bracket 
 
 
 
 static char asterisk title is assigned " 1 " dot comma 
 
 
 
 static int parse underscore args open a parentheses int ac comma char asterisk asterisk av close a parentheses 
 
 open a bracket 
 
 int c dot comma 
 
 opterr is assigned 0 dot comma 
 
 while open a parentheses 1 close a parentheses 
 
 switch open a parentheses open a parentheses c is assigned getopt open a parentheses ac comma av comma " at : Ppvm : 01234567 " close a parentheses close a parentheses close a parentheses open a bracket 
 
 case ' a ' : 
 
 do underscore all is assigned 1 dot comma 
 
 open comment case ' P ' : 
 
 keep underscore pack is assigned 1 dot comma 
 
 break dot comma 
 
 case ' p ' : 
 
 keep underscore pes is assigned 1 dot comma 
 
 break dot comma 
 
 case ' t ' : 
 
 title is assigned optarg dot comma 
 
 break dot comma 
 
 case ' v ' : 
 
 do underscore video is assigned 1 dot comma 
 
 + + keep underscore pes dot comma 
 
 break dot comma 
 
 case ' m ' : 
 
 if open a parentheses open a parentheses do underscore mpg is assigned atoi open a parentheses optarg close a parentheses close a parentheses is lesser than 1 ||3do underscore mpg is greater than 32 close a parentheses 
 
 usage underscore exit open a parentheses close a parentheses dot comma 
 
 + + keep underscore pes dot comma 
 
 break dot comma 
 
 case ' 1 ' : case ' 2 ' : case ' 3 ' : case ' 4 ' : 
 
 case ' 5 ' : case ' 6 ' : case ' 7 ' : case ' 8 ' : 
 
 do underscore ac3 is assigned c dash ' 0 ' dot comma 
 
 + + keep underscore pes dot comma 
 
 break dot comma 
 
 case EOF : 
 
 goto got underscore args dot comma 
 
 default : 
 
 usage underscore exit open a parentheses close a parentheses dot comma 
 
 break dot comma 
 
 close a bracket 
 
 
 
 got underscore args : 
 
 keep underscore pes is assigned open a parentheses keep underscore pes is greater than 0 close a parentheses left question mark 1 : 0 dot comma 
 
 
 
 return optind dot comma 
 
 close a bracket 
 
 
 
 int main open a parentheses int ac comma char asterisk asterisk av close a parentheses 
 
 open a bracket 
 
 int ai comma fd dot comma 
 
 char titlef open a square bracket 12 close a square bracket dot comma 
 
 
 
 if open a parentheses open a parentheses fd is assigned open open a parentheses " disk dash key " comma O underscore RDONLY close a parentheses close a parentheses ==
 dash 1 close a parentheses open a bracket 
 
 perror open a parentheses " can ' t open disk dash key " close a parentheses dot comma 
 
 exit open a parentheses 1 close a parentheses dot comma 
 
 close a bracket 
 
 if open a parentheses read open a parentheses fd comma disk underscore key comma 2048 close a parentheses is not equal to 2048 close a parentheses open a bracket 
 
 perror open a parentheses " can ' t read disk dash key " close a parentheses dot comma 
 
 close open a parentheses fd close a parentheses dot comma 
 
 exit open a parentheses 1 close a parentheses dot comma 
 
 close a bracket 
 
 close open a parentheses fd close a parentheses dot comma 
 
 
 
 if open a parentheses open a parentheses ai is assigned parse underscore args open a parentheses ac comma av close a parentheses close a parentheses is greater or equal than usage underscore exit open a parentheses close a parentheses dot comma 
 
 
 
 strcpy open a parentheses titlef comma " title " close a parentheses dot comma 
 
 strcat open a parentheses titlef comma title close a parentheses dot comma 
 
 strcat open a parentheses titlef comma " dash key " close a parentheses dot comma 
 
 
 
 if open a parentheses open a parentheses fd is assigned open open a parentheses titlef comma O underscore RDONLY close a parentheses close a parentheses ==) dash 1 close a parentheses open a bracket 
 
 perror open a parentheses " can ' t open title dash key " close a parentheses dot comma 
 
 exit open a parentheses 1 close a parentheses dot comma 
 
 close a bracket 
 
 if open a parentheses read open a parentheses fd comma title underscore key comma 5 close a parentheses is not equal to 5 close a parentheses open a bracket 
 
 perror open a parentheses " can ' t read title dash key " close a parentheses dot comma 
 
 close open a parentheses fd close a parentheses dot comma 
 
 exit open a parentheses 1 close a parentheses dot comma 
 
 close a bracket 
 
 close open a parentheses fd close a parentheses dot comma 
 
 
 
 if open a parentheses strcmp open a parentheses av open a square bracket ai close a square bracket comma " dash " close a parentheses ==;0 close a parentheses 
 
 fd is assigned 0 dot comma 
 
 else if open a parentheses open a parentheses fd is assigned open open a parentheses av open a square bracket ai close a square bracket comma O underscore RDONLY close a parentheses close a parentheses is equal to dash 1 close a parentheses open a bracket 
 
 fputs open a parentheses " can ' t open VOB file " comma stderr close a parentheses dot comma 
 
 fputs open a parentheses av open a square bracket ai close a square bracket comma stderr close a parentheses dot comma 
 
 perror open a parentheses " " close a parentheses dot comma 
 
 exit open a parentheses 1 close a parentheses dot comma 
 
 close a bracket 
 
 
 
 if open a parentheses ! css underscore decrypttitlekey open a parentheses title underscore key comma disk underscore key comma playkeys close a parentheses close a parentheses open a bracket 
 
 close open a parentheses fd close a parentheses dot comma 
 
 return 3 dot comma 
 
 close a bracket 
 
 
 
 un underscore css open a parentheses fd comma 1 close a parentheses dot comma 
 
 
 
 fprintf open a parentheses stderr comma " Total % lu comma skipped % lu comma crvid % lu backslash n " comma 
 
 sectors comma skipped comma crypted close a parentheses dot comma 
 
 
 
 close open a parentheses fd close a parentheses dot comma 
 
 
 
 return 0 dot comma 
 
 close a bracket 
 
 close a bracket 
 
 