$ od -c -N 50000 [eris]<LispCore>SOURCES>ADDARITH!25 0000000 ( D E F I N E - F I L E - I N F 0000020 O 247 R E A D T A B L E " I N 0000040 T E R L I S P " 247 P A C K A G 0000060 E " I N T E R L I S P " ) \r 006 0000100 001 ( F I L E C R E A T E D " 2 0000120 4 - O c t - 8 6 2 0 : 0 2 : 5 0000140 7 " 006 004 { E R I S } < L I S P 0000160 C O R E > S O U R C E S > A D D 0000200 A R I T H . ; 2 5 006 001 3 2 6 8 0000220 9 \r \r c h a n g 0000240 e s t o % : ( M A C R O S 0000260 \ G E T B A S E N I B B L E 0000300 \ P U T B A S E N I B B L E \ 0000320 G E T B A S E B I T \ P U T B 0000340 A S E B I T L O A D B Y T E 0000360 \r 0000400 D E P O 0000420 S I T B Y T E ) \r 0000440 ( V A 0000460 R S A D D A R I T H C O M S ) 0000500 \r 0000520 ( F N S \ R T I M E 0000540 S 2 \ R A T I O N A L I Z E 0000560 \ R P L U S 2 \ R M I N U S 0000600 C R E A T E R A T I O N A L R 0000620 A T I O N A L T O I N T E G E R 0000640 ) \r 0000660 ( R E C O R D S R 0000700 A T I O N A L ) \r \r 0000720 p r e v i o u s d a t e % : 0000740 " 7 - O c t - 8 6 1 5 : 4 8 0000760 : 4 1 " { E R I S } < L I S P 0001000 C O R E > S O U R C E S > A D D 0001020 A R I T H . ; 2 4 ) \r \r \r ( * 0001040 " \r C o p y r i g h t ( c ) 0001060 1 9 8 2 , 1 9 8 3 , 1 9 8 4 0001100 , 1 9 8 5 , 1 9 8 6 b y 0001120 X e r o x C o r p o r a t i o 0001140 n . A l l r i g h t s r 0001160 e s e r v e d . \r " ) \r \r ( P R 0001200 E T T Y C O M P R I N T A D D 0001220 A R I T H C O M S ) \r \r ( R P A 0001240 Q Q 006 002 A D D A R I T H C O M 0001260 S 006 001 ( ( L O C A L V A R S 0001300 . T ) \r 0001320 ( * ; " 0001340 O K " ) \r 0001360 ( M A C R O 0001400 S M A S K . 1 ' S M A S K . 0001420 0 ' S B I T T E S T B I T S 0001440 E T B I T C L E A R ) \r 0001460 0001500 ( C O M S ( O P T I M I Z 0001520 E R S C L : L O G N O T ) \r 0001540 0001560 ( F N S C 0001600 L : L O G N O T ) ) \r 0001620 0001640 ( C O M S ( * ; " B Y T E 0001660 h a c k i n g f u n c t i o 0001700 n s " ) \r 0001720 0001740 ( R E C O R D S B Y T E S P E 0001760 C ) \r 0002000 ( M 0002020 A C R O S L O A D B Y T E D 0002040 E P O S I T B Y T E ) \r 0002060 0002100 ( * ; " N O T 0002120 O K Y E T " ) \r 0002140 0002160 ( O P T I M I Z E R S 0002200 B Y T E D P B L D B ) \r 0002220 0002240 ( M A C R O 0002260 S B Y T E S I Z E B Y T E P 0002300 O S I T I O N ) \r 0002320 0002340 ( F N S L D B D P B 0002360 B Y T E ) \r 0002400 0002420 ( F N S \ L D B E X P A N 0002440 D E R \ D P B E X P A N D E R 0002460 ) ) \r 0002500 ( C O M S ( O 0002520 P T I M I Z E R S I M O D ) \r 0002540 0002560 ( F N S 0002600 I M O D L E S S P ) \r 0002620 0002640 ( M A C R O S I M 0002660 O D P L U S I M O D D I F F E 0002700 R E N C E ) ) \r 0002720 ( C O 0002740 M S ( F N S R O T ) \r 0002760 0003000 ( M A C R O S 0003020 . R O T . ) ) \r 0003040 ( C O 0003060 M S ( * ; ; " P r i m i t 0003100 i v e F u n c t i o n s f o 0003120 r e x t r a c t i n g f i e 0003140 l d s a s i n t e g e r s " 0003160 ) \r 0003200 ( M A 0003220 C R O S \ X L O A D B Y T E W 0003240 O R D ) \r 0003260 0003300 ( F N S \ P U T B A S E B I T 0003320 S ) \r 0003340 ( * 0003360 ; ; \r 0003400 0003420 " P r i m i t i v e f u 0003440 n c t i o n s , e s p e c i a 0003460 l l y n e e d e d f o r C 0003500 o m m o n L i s p a r r a y 0003520 p a c k a g e . " ) \r 0003540 0003560 ( D E C L A R E % : 0003600 D O N T C O P Y ( M A C R O 0003620 S . H I H A L F W O R D L O . 0003640 . H I H A L F W O R D H I . 0003660 . L O H A L F W O R D L O . \r 0003700 * 0003760 . L O H A L F W O R 0004000 D H I . ) \r 0004020 0004040 ( M A C R O S 0004060 \ G E T B A S E N I B B L E \ 0004100 P U T B A S E N I B B L E \ G 0004120 E T B A S E B I T \ P U T B A 0004140 S E B I T ) ) ) \r 0004160 ( C 0004200 O M S ( * ; ; \r 0004220 " B e g i n 0004240 n i n g o f r e w r i t e 0004260 o f s o m e L L A R I T H 0004300 t h i n g s , m o d u l a r l 0004320 y u s i n g t h e m a c r 0004340 o s o f t h i s f i l e " 0004360 \r 0004400 ) 0004420 \r 0004440 ( D E C 0004460 L A R E % : D O N T C O P Y 0004500 ( E X P O R T ( C O N S T A N 0004520 T S M A S K 0 W O R D 1 ' S 0004540 M A S K 1 W O R D 0 ' S \r 0004560 * 0004640 M A S K 0004660 W O R D 1 ' S M A S K H A L F 0004700 W O R D 1 ' S \r 0004720 * 0005000 B I T S P E R H A 0005020 L F W O R D ) \r 0005040 * 0005100 ( M 0005120 A C R O S E Q Z E R O P ) \r 0005140 * 0005220 ( M A C R O S \ M O 0005240 V E T O B O X . X U N B O X . 0005260 . X L L S H . . X L L S H 1 0005300 . \r 0005320 * 0005400 . X L R S H . . A D D . 2 W O 0005420 R D . I N T E G E R S . \r 0005440 * 0005520 . S U B . 0005540 2 W O R D . I N T E G E R S . 0005560 . 3 2 B I T M U L . ) \r 0005600 * 0005660 ( M A C R O S . S U M S M 0005700 A L L M O D . . D I F F E R E 0005720 N C E S M A L L M O D . ) ) \r 0005740 * 0006000 ( M A C R O S . A D D . 2 W 0006020 O R D . I N T E G E R S . . S 0006040 U B . 2 W O R D . I N T E G E R 0006060 S . . 3 2 B I T M U L . ) ) ) 0006100 \r 0006120 ( P R O P F I L E 0006140 T Y P E A D D A R I T H ) ) ) 0006160 \r ( D E C L A R E % : D O E V 0006200 A L @ C O M P I L E D O N T C 0006220 O P Y \r \r ( L O C A L V A R S 0006240 . T ) \r ) \r \r \r \r 006 004 ( * ; 0006260 " O K " ) 006 001 \r \r ( D E C L A 0006300 R E % : E V A L @ C O M P I L 0006320 E \r \r ( P U T P R O P S M A 0006340 S K . 1 ' S M A C R O ( O P 0006360 E N L A M B D A ( P O S I T I 0006400 O N S I Z E ) \r 0006420 0006440 ( L S H ( S 0006460 U B 1 ( L S H 1 S I Z E ) 0006500 ) \r 0006520 0006540 P O S I T I O N ) 0006560 ) ) \r [ P U T P R O P S M A S 0006600 K . 0 ' S M A C R O ( O P E 0006620 N L A M B D A ( P O S I T I O 0006640 N S I Z E ) \r 0006660 0006700 ( C L : L O G N 0006720 O T ( M A S K . 1 ' S P O S 0006740 I T I O N S I Z E ] \r [ P U T 0006760 P R O P S B I T T E S T M A 0007000 C R O ( ( N M A S K ) \r 0007020 0007040 ( N E Q 0 ( L 0007060 O G A N D N M A S K ] \r ( P 0007100 U T P R O P S B I T S E T M 0007120 A C R O ( = . L O G O R ) 0007140 ) \r [ P U T P R O P S B I T C 0007160 L E A R M A C R O ( ( X M 0007200 A S K ) \r 0007220 ( 0007240 L O G A N D X ( C L : L O G 0007260 N O T M A S K ] \r ) \r ( D E F 0007300 O P T I M I Z E R 006 002 C L : L 0007320 O G N O T 006 001 ( C L : I N T E 0007340 G E R ) ` ( L O G X O R - 1 0007360 , C L : I N T E G E R ) ) \r \r 0007400 ( D E F I N E Q \r \r ( 006 004 C L : 0007420 L O G N O T 006 001 \r [ L A M B 0007440 D A ( C L : I N T E G E R ) 006 0007460 003 006 001 0007500 0007520 006 003 ( * k 0007540 b r % : " 1 2 - J u l - 8 6 0007560 1 7 : 0 5 " ) 006 001 \r ( L 0007600 O G X O R - 1 C L : I N T E 0007620 G E R ] ) \r ) \r \r \r \r 006 004 ( * 0007640 ; " B Y T E h a c k i n g 0007660 f u n c t i o n s " ) 006 001 \r \r ( 0007700 D E C L A R E % : E V A L @ C 0007720 O M P I L E \r \r ( T Y P E R E C 0007740 O R D 006 002 B Y T E S P E C 006 001 0007760 ( B Y T E S P E C . S I Z E 0010000 B Y T E S P E C . P O S I T I O 0010020 N ) ) \r ) \r ( D E C L A R E % : 0010040 E V A L @ C O M P I L E \r \r 0010060 [ P U T P R O P S L O A D B Y 0010100 T E M A C R O ( ( N P O S 0010120 S I Z E ) \r 0010140 0010160 ( L O G A N D ( R S H N 0010200 P O S ) \r 0010220 0010240 ( M A S K . 1 ' S 0010260 0 S I Z E ] \r [ P U T P R O P 0010300 S D E P O S I T B Y T E M A 0010320 C R O ( O P E N L A M B D A 0010340 ( N P O S S I Z E V A L ) 0010360 \r 0010400 0010420 ( L O G O R ( B I T C 0010440 L E A R N ( M A S K . 1 ' S 0010460 P O S S I Z E ) ) \r 0010500 * 0010540 ( L S H ( L O G A 0010560 N D V A L ( M A S K . 1 ' S 0010600 0 S I Z E ) ) \r 0010620 * 0010660 P O S ] \r ) \r 0010700 \r \r \r 006 004 ( * ; " N O T O 0010720 K Y E T " ) 006 001 \r \r ( D E F O 0010740 P T I M I Z E R 006 002 B Y T E 006 0010760 001 ( & R E S T X ) ( P R O 0011000 G ( ( S I Z E ( L I S P F O 0011020 R M . S I M P L I F Y ( C A R 0011040 X ) \r 0011060 * 0011120 T ) ) \r 0011140 0011160 ( P O 0011200 S I T I O N ( L I S P F O R M 0011220 . S I M P L I F Y ( C A D R 0011240 X ) \r 0011260 * 0011320 T ) ) ) \r 0011340 * 0011400 ( R E T U R N ( C O N D \r 0011420 * 0011460 ( ( A N 0011500 D ( F I X P P O S I T I O N 0011520 ) \r 0011540 * 0011600 ( F I X P S I Z E 0011620 ) ) \r 0011640 * 0011700 ( K W O T E ( 006 002 c r e a 0011720 t e 006 001 B Y T E S P E C \r 0011740 * 0012020 B Y T E S 0012040 P E C . S I Z E _ S I Z E \r 0012060 * 0012140 B Y T 0012160 E S P E C . P O S I T I O N _ 0012200 P O S I T I O N ) ) ) \r 0012220 * 0012260 ( T ` ( 0012300 006 002 c r e a t e 006 001 B Y T E S 0012320 P E C \r 0012340 * 0012400 B Y T 0012420 E S P E C . S I Z E _ , S I 0012440 Z E \r 0012460 * 0012520 B Y T E 0012540 S P E C . P O S I T I O N _ 0012560 , P O S I T I O N ) ) ) ) ) ) \r 0012600 \r ( D E F O P T I M I Z E R 006 0012620 002 D P B 006 001 ( & R E S T X ) 0012640 ( \ D P B E X P A N D E R X 0012660 ) ) \r \r ( D E F O P T I M I Z E 0012700 R 006 002 L D B 006 001 ( & R E S T 0012720 X ) ( \ L D B E X P A N D E 0012740 R X ) ) \r \r ( D E C L A R E % 0012760 : E V A L @ C O M P I L E \r 0013000 \r ( P U T P R O P S B Y T E S 0013020 I Z E M A C R O ( ( B Y T E 0013040 S P E C ) \r 0013060 0013100 ( f e t c h B Y T E S P E C . 0013120 S I Z E o f B Y T E S P E C 0013140 ) ) ) \r ( P U T P R O P S B Y 0013160 T E P O S I T I O N M A C R O 0013200 ( ( B Y T E S P E C ) \r 0013220 0013240 ( f e t c 0013260 h B Y T E S P E C . P O S I T 0013300 I O N o f B Y T E S P E C ) 0013320 ) ) \r ) \r ( D E F I N E Q \r \r ( 0013340 006 004 L D B 006 001 \r [ L A M B D 0013360 A ( B Y T E S P E C C L : I 0013400 N T E G E R ) 006 003 006 001 0013420 0013440 006 003 ( * k b 0013460 r % : " 1 2 - J u l - 8 6 1 0013500 7 : 1 0 " ) 006 001 \r ( L O 0013520 A D B Y T E C L : I N T E G E 0013540 R ( 006 002 f e t c h 006 001 ( B Y 0013560 T E S P E C B Y T E S P E C . 0013600 P O S I T I O N ) 006 002 o f 006 001 0013620 B Y T E S P E C ) \r 0013640 ( 006 002 f e t c h 006 001 0013660 ( B Y T E S P E C B Y T E S 0013700 P E C . S I Z E ) 006 002 o f 006 001 0013720 B Y T E S P E C ] ) \r \r ( 006 004 0013740 D P B 006 001 \r [ L A M B D A 0013760 ( N E W B Y T E B Y T E S P E 0014000 C C L : I N T E G E R ) 006 003 006 0014020 001 0014040 006 003 ( * k b r % 0014060 : " 1 2 - J u l - 8 6 1 7 : 0014100 1 8 " ) 006 001 \r ( D E P O 0014120 S I T B Y T E C L : I N T E G 0014140 E R ( 006 002 f e t c h 006 001 ( B 0014160 Y T E S P E C B Y T E S P E C 0014200 . P O S I T I O N ) 006 002 o f 006 0014220 001 B Y T E S P E C ) \r 0014240 ( 006 002 f e t c h 006 0014260 001 ( B Y T E S P E C B Y T E 0014300 S P E C . S I Z E ) 006 002 o f 006 0014320 001 B Y T E S P E C ) \r 0014340 N E W B Y T E ] ) 0014360 \r \r ( 006 004 B Y T E 006 001 \r [ L 0014400 A M B D A ( S I Z E P O S I 0014420 T I O N ) 006 003 006 001 0014440 0014460 006 003 ( 0014500 * k b r % : " 1 4 - A u g - 0014520 8 6 1 4 : 1 8 " ) 006 001 \r 0014540 ( 006 002 c r e a t e 006 001 B Y T 0014560 E S P E C \r 0014600 B Y T E S P E C . S I Z E _ 0014620 S I Z E \r 0014640 B Y T E S P E C . P O S I T I 0014660 O N _ P O S I T I O N ] ) \r 0014700 ) \r ( D E F I N E Q \r \r ( 006 004 \ 0014720 L D B E X P A N D E R 006 001 \r 0014740 [ L A M B D A ( X ) 006 003 006 001 0014760 * 0015020 006 0015040 003 ( * k b r % : " 1 4 - A u 0015060 g - 8 6 1 4 : 2 7 " ) 006 001 \r 0015100 ( P R O G ( B S W O R 0015120 D T E M N S I Z E P O S 0015140 I T I O N ) 0015160 006 003 ( * 0015200 X = ( B Y T E S P E C C 0015220 L : I N T E G E R ) * ) 006 001 \r 0015240 ( S E T Q 0015260 B S ( L I S P F O R M . S I M 0015300 P L I F Y ( C A R X ) \r 0015320 0015340 T ) ) \r 0015360 ( S E T Q W O R D 0015400 ( C A D R X ) ) \r 0015420 ( R E T U R N ( C O 0015440 N D \r 0015460 [ ( A N D ( S 0015500 E T Q T E M ( C A R ( E V 0015520 A L U A B L E . C O N S T A N T 0015540 P B S ) ) ) \r 0015560 0015600 ( 006 002 t y p e ? 006 001 B Y 0015620 T E S P E C T E M ) ) \r 0015640 0015660 ( L I S T ' L O A D B Y 0015700 T E W O R D ( K W O T E ( 0015720 B Y T E P O S I T I O N T E M 0015740 ) ) \r 0015760 ( 0016000 K W O T E ( B Y T E S I Z E 0016020 T E M ] \r 0016040 ( T ( S E 0016060 T Q N ( L I S P F O R M . S 0016100 I M P L I F Y W O R D T ) ) 0016120 \r 0016140 ( C O N D \r 0016160 0016200 [ ( A N D 0016220 ( L I S T P B S ) \r 0016240 0016260 ( E Q 0016300 ( C A R B S ) \r 0016320 0016340 ' B 0016360 Y T E ) ) \r 0016400 0016420 ( S E T Q S I Z E ( C A 0016440 D R B S ) ) \r 0016460 0016500 ( S E T Q P O S I T I 0016520 O N ( C A D D R B S ) ) \r 0016540 0016560 ( C O N D 0016600 \r 0016620 0016640 [ ( O R ( E V A L U A B L E . 0016660 C O N S T A N T . F I X P N ) 0016700 \r 0016720 0016740 ( A N D ( A R G S . 0016760 C O M M U T A B L E P N S I 0017000 Z E ) \r 0017020 0017040 ( A R 0017060 G S . C O M M U T A B L E P N 0017100 P O S I T I O N ) \r 0017120 * 0017160 ( A R G S . C O M M U T 0017200 A B L E P S I Z E P O S I T 0017220 I O N ) ) ) \r 0017240 0017260 ` ( L O A D B Y T 0017300 E , W O R D , P O S I T I O 0017320 N , S I Z E ] \r 0017340 0017360 ( T ` ( [ L A 0017400 M B D A ( \ B y t e s i z e 0017420 \ B y t e p o s i t i o n ) \r 0017440 * 0017500 ( 006 002 D E C L A R E 006 0017520 001 ( L O C A L V A R S \ B y 0017540 t e s i z e \ B y t e p o s i 0017560 t i o n ) ) \r 0017600 0017620 ( L O 0017640 A D B Y T E % , W O R D \ 0017660 B y t e p o s i t i o n \ B y 0017700 t e s i z e ] \r 0017720 0017740 % , S 0017760 I Z E % , P O S I T I O N ] 0020000 \r 0020020 [ ( A N 0020040 D ( L I T A T O M B S ) \r 0020060 * 0020120 ( O R ( E V A L U A B L E . C 0020140 O N S T A N T . F I X P N ) \r 0020160 * 0020220 ( A R G S . C O M M U 0020240 T A B L E P B S N ) ) ) \r 0020260 0020300 ` ( L O A 0020320 D B Y T E % , W O R D ( B 0020340 Y T E P O S I T I O N % , B 0020360 S ) \r 0020400 0020420 ( B Y T E S I Z E 0020440 % , B S ] \r 0020460 0020500 ( T ` ( [ L A M B D A 0020520 ( \ P o s i t i o n S i z e ) \r 0020540 * 0020600 ( 006 002 D E C L A R E 006 001 ( 0020620 L O C A L V A R S \ P o s i t 0020640 i o n S i z e ) ) \r 0020660 0020700 ( L O A 0020720 D B Y T E % , W O R D ( B 0020740 Y T E P O S I T I O N \ P o s 0020760 i t i o n S i z e ) \r 0021000 * 0021040 ( B Y T E S I Z E \ P 0021060 o s i t i o n S i z e ] \r 0021100 0021120 % , 0021140 B S ] ) \r \r ( 006 004 \ D P B E X P 0021160 A N D E R 006 001 \r [ L A M B D 0021200 A ( X ) 006 003 006 001 0021220 * 0021260 006 003 ( * J o 0021300 n L " 2 5 - F E B - 8 3 2 0 0021320 : 4 9 " ) 006 001 \r ( P R O 0021340 G ( ( N E W B Y T E ( C A R 0021360 X ) ) \r 0021400 ( B S ( L I S P F O R M . S I 0021420 M P L I F Y ( C A D R X ) \r 0021440 0021460 T ) ) \r 0021500 ( W O R D ( L I S P 0021520 F O R M . S I M P L I F Y ( C 0021540 A D D R X ) \r 0021560 0021600 T ) ) \r S 0021620 I Z E P O S X Y B a g B 0021640 i t e r P N B Y T E F O R M 0021660 D E P O S I T F O R M C B S 0021700 P T E M ) \r 0021720 ( 006 002 i f 006 001 ( A N D ( L 0021740 I S T P B S ) \r 0021760 ( E Q 0022000 ( C A R B S ) \r 0022020 0022040 ' C O N S ) \r 0022060 ( E Q U A L 0022100 ( C A D R B S ) \r 0022120 0022140 ' ' B Y T E S P E C ) 0022160 \r 0022200 ( L I S T P ( S E T Q 0022220 T E M ( C A D D R B S ) ) 0022240 ) \r 0022260 ( E Q ( C A R T E 0022300 M ) \r 0022320 ' L I S T ) 0022340 ) \r 0022360 006 002 t h e n 006 001 \r 0022400 \r 006 0022420 003 ( * W h a t a c r a p p 0022440 y t h i n g t o d o i n 0022460 o r d e r t o t r y t o 0022500 d e - c o m p i l e t h e 0022520 e x p a n d e d f o r m o f 0022540 \r 006 001 006 003 ( 0022560 B Y T E < s i z e > < p o s 0022600 i t i o n > ) ) 006 001 \r \r 0022620 ( 0022640 006 002 p o p 006 001 T E M ) \r 0022660 0022700 ( S E T Q S I Z E ( 006 002 p o 0022720 p 006 001 T E M ) ) \r 0022740 ( S E 0022760 T Q P O S ( 006 002 p o p 006 001 0023000 T E M ) ) \r 0023020 ( S E T Q C 0023040 B S P ( A N D ( E V A L U A 0023060 B L E . C O N S T A N T P S I 0023100 Z E ) \r 0023120 0023140 ( E V A L U A B L 0023160 E . C O N S T A N T P P O S ) 0023200 ) ) \r 006 0023220 002 e l s e i f 006 001 ( A N D ( 0023240 S E T Q T E M ( C A R ( E 0023260 V A L U A B L E . C O N S T A N 0023300 T P B S ) ) ) \r 0023320 0023340 ( 006 002 t y p e ? 006 001 B Y T E 0023360 S P E C T E M ) ) \r 0023400 006 002 t h e n 006 0023420 001 ( S E T Q S I Z E ( K W 0023440 O T E ( B Y T E S I Z E T E 0023460 M ) ) ) \r 0023500 ( S E T Q P O 0023520 S ( K W O T E ( B Y T E P O 0023540 S I T I O N T E M ) ) ) \r 0023560 0023600 ( S E T Q C B S P T ) ) \r 0023620 ( S E T Q 0023640 N ( L I S P F O R M . S I M P 0023660 L I F Y N E W B Y T E T ) ) 0023700 \r [ S E T Q 0023720 B a g B i t e r P ( O R ( 0023740 N O T ( A R G S . C O M M U T 0023760 A B L E P N W O R D ) ) \r 0024000 0024020 ( A N 0024040 D ( N O T C B S P ) \r 0024060 * 0024120 ( N O T ( A R G S . C O M M U 0024140 T A B L E P N B S ] \r 0024160 ( S E T Q B Y T 0024200 E F O R M ( 006 002 i f 006 001 B a 0024220 g B i t e r P \r 0024240 0024260 006 002 t h e n 006 001 ' \ 0024300 N e w B y t e \r 0024320 0024340 006 002 e l s e 006 001 N E W B 0024360 Y T E ) ) \r 0024400 [ S E T Q D E P O S I T F O R 0024420 M \r ( 006 002 0024440 i f 006 001 ( A N D S I Z E P 0024460 O S ) \r 0024500 006 002 t h e n 006 001 0024520 * 0024560 006 003 ( * t h e S I 0024600 Z E a n d P O S I T I O N 0024620 s p e c i f i e r s \r 006 001 0024640 * 0024720 006 003 a r e 0024740 s o m e h o w e x t r a c t 0024760 a b l e . ) 006 001 \r 0025000 ( 006 002 0025020 i f 006 001 ( O R C B S P ( A 0025040 N D ( A R G S . C O M M U T A 0025060 B L E P S I Z E P O S ) \r 0025100 * 0025140 ( A R G S . C O M M U 0025160 T A B L E P W O R D B S ) ) 0025200 ) \r 0025220 006 002 t h e n 0025240 006 001 0025260 0025300 006 003 ( * C a s e w i t 0025320 h a d e t e c t e d c o n 0025340 s t a n t f o r \r 006 001 0025360 * 0025440 006 003 b y t e 0025460 s p e c i f i e r ) 006 001 \r 0025500 0025520 ` ( D E P O 0025540 S I T B Y T E % , W O R D 0025560 % , P O S % , S I Z E % 0025600 , B Y T E F O R M ) \r 0025620 0025640 006 002 e l s e 006 001 ` ( [ L A 0025660 M B D A ( \ B y t e s i z e 0025700 \ B y t e p o s i t i o n ) \r 0025720 0025740 ( 006 0025760 002 D E C L A R E 006 001 ( L O C A 0026000 L V A R S \ B y t e s i z e 0026020 \ B y t e p o s i t i o n ) ) \r 0026040 0026060 ( 0026100 D E P O S I T B Y T E % , W 0026120 O R D \ B y t e p o s i t i o 0026140 n \ B y t e s i z e % , B 0026160 Y T E F O R M ] \r 0026200 0026220 % , S I Z E % , 0026240 P O S ) ) \r 0026260 006 002 e l s e 006 001 ( 006 002 0026300 i f 006 001 ( A N D ( L I T A T 0026320 O M B S ) \r 0026340 0026360 ( A R G S . C O M M U T A B 0026400 L E P W O R D B S ) ) \r 0026420 0026440 006 002 t h e n 006 001 ` ( D 0026460 E P O S I T B Y T E % , W O 0026500 R D ( B Y T E P O S I T I O N 0026520 % , B S ) \r 0026540 0026560 ( B Y T E 0026600 S I Z E % , B S ) \r 0026620 0026640 % 0026660 , B Y T E F O R M ) \r 0026700 0026720 006 002 e l s e 006 001 ( S E T Q B 0026740 a g B i t e r P T ) \r 0026760 0027000 ` ( [ L A M B D A ( 0027020 \ B y t e S p e c ) \r 0027040 0027060 ( 006 002 D E C L A 0027100 R E 006 001 ( L O C A L V A R S 0027120 \ B y t e S p e c ) ) \r 0027140 0027160 ( D E P O S I 0027200 T B Y T E % , W O R D ( B 0027220 Y T E P O S I T I O N \ B y t 0027240 e S p e c ) \r 0027260 0027300 ( B Y T E 0027320 S I Z E \ B y t e S p e c ) \r 0027340 * 0027400 \ N e w B y t e ] \r 0027420 0027440 % , B S ] \r 0027460 ( R E T U R 0027500 N ( 006 002 i f 006 001 B a g B i t 0027520 e r P \r 0027540 006 002 t h e n 0027560 006 001 ` ( [ L A M B D A ( \ N 0027600 e w B y t e ) \r 0027620 0027640 ( 006 002 D E C L A R 0027660 E 006 001 ( L O C A L V A R S \ 0027700 N e w B y t e ) ) \r 0027720 0027740 % , D E P O 0027760 S I T F O R M ] \r 0030000 0030020 % , N E W B Y T E 0030040 ) \r 0030060 006 002 e l s e 006 001 D 0030100 E P O S I T F O R M ] ) \r ) \r ( 0030120 D E F O P T I M I Z E R 006 002 I 0030140 M O D 006 001 ( & R E S T L ) 0030160 ( P R O G ( ( N ( C O N S T 0030200 A N T E X P R E S S I O N P ( 0030220 C A D R L ) ) ) ) \r 0030240 0030260 ( 006 0030300 002 i f 006 001 ( N U L L N ) \r 0030320 * 0030360 006 002 t h e n 006 001 ( 0030400 R E T U R N ' I G N O R E M A 0030420 C R O ) ) \r 0030440 0030460 ( S E T Q N 0030500 ( C A R N ) ) \r 0030520 0030540 ( R E 0030560 T U R N ( C O N D \r 0030600 * 0030640 ( ( N O T ( 0030660 P O W E R O F T W O P N ) ) \r 0030700 * 0030740 ' 0030760 I G N O R E M A C R O ) \r 0031000 * 0031040 ( T ( L 0031060 I S T ' L O G A N D ( C A R 0031100 L ) \r 0031120 * 0031160 ( S U B 1 0031200 N ) ) ) ) ) ) ) \r \r ( D E F I 0031220 N E Q \r \r ( 006 004 I M O D L E S S 0031240 P 006 001 \r [ L A M B D A ( X 0031260 Y M O D U L U S ) 006 003 006 001 0031300 * 0031340 006 003 ( * l m m " 1 0031360 2 - A p r - 8 5 1 2 : 4 3 " ) 0031400 006 001 \r ( I L E S S P ( 0031420 I M O D D I F F E R E N C E Y 0031440 X M O D U L U S ) \r 0031460 ( F O L D H I M 0031500 O D U L U S 2 ] ) \r ) \r ( D E 0031520 C L A R E % : E V A L @ C O M 0031540 P I L E \r \r ( P U T P R O P S 0031560 I M O D P L U S M A C R O 0031600 ( ( X Y M O D U L U S ) \r 0031620 0031640 ( I M O D ( 0031660 I P L U S X Y ) \r 0031700 0031720 M O D U L 0031740 U S ) ) ) \r ( P U T P R O P S 0031760 I M O D D I F F E R E N C E M 0032000 A C R O ( ( X Y M O D U L 0032020 U S ) \r 0032040 0032060 ( I M O D ( I D I F F 0032100 E R E N C E X Y ) \r 0032120 * 0032160 M O D U L U S ) ) ) \r ) \r ( 0032200 D E F I N E Q \r \r ( 006 004 R O T 006 0032220 001 \r [ L A M B D A ( X N 0032240 F I E L D S I Z E ) 006 003 006 001 0032260 * 0032320 006 003 ( * P a v e l " 0032340 7 - O c t - 8 6 1 5 : 2 6 " ) 0032360 006 001 006 003 006 001 \r 0032400 * 0032440 006 003 ( * ; ; 0032460 " N o r m a l i z e N , t 0032500 h e s h i f t f a c t o r , 0032520 i n t o t h e h a l f - o 0032540 p e n i n t e r v a l o f 0032560 0 t o F I E L D S I Z E a 0032600 n d t r a n s f o r m a n 0032620 e g a t i v e N ( r o t a t 0032640 i n g r i g h t w a r d s ) 0032660 i n t o a p o s i t i v e 0032700 f o r m . " ) 006 001 \r ( L 0032720 E T * ( ( N ( I M O D N 0032740 F I E L D S I Z E ) ) \r 0032760 ( N . B ( I D I 0033000 F F E R E N C E F I E L D S I 0033020 Z E N ) ) ) \r 0033040 ( D E P O S I T B Y T E ( 0033060 L O A D B Y T E X N . B N 0033100 ) \r 0033120 N N . B X ] ) \r ) \r ( 0033140 D E C L A R E % : E V A L @ C 0033160 O M P I L E \r \r ( P U T P R O 0033200 P S . R O T . M A C R O ( 0033220 ( X F O R M N F I E L D S I 0033240 Z E ) \r 0033260 ( ( O P E 0033300 N L A M B D A ( X ) \r 0033320 0033340 ( D E P O 0033360 S I T B Y T E ( L O A D B Y T 0033400 E X ( I D I F F E R E N C E 0033420 F I E L D S I Z E N ) \r 0033440 * 0033520 N ) \r 0033540 0033560 N \r 0033600 * 0033640 ( I D I F F E R E N C E F 0033660 I E L D S I Z E N ) \r 0033700 * 0033740 X ) ) \r 0033760 X F 0034000 O R M ) ) ) \r ) \r \r \r \r 006 004 ( * 0034020 ; ; " P r i m i t i v e F 0034040 u n c t i o n s f o r e x t 0034060 r a c t i n g f i e l d s a 0034100 s i n t e g e r s " ) 006 001 \r \r 0034120 ( D E C L A R E % : E V A L @ 0034140 C O M P I L E \r \r [ P U T P R 0034160 O P S \ X L O A D B Y T E W O 0034200 R D D M A C R O ( ( N P O 0034220 S S I Z E ) \r 0034240 0034260 ( * N i s 0034300 c o n s t r a i n e d t o 0034320 b e a S M A L L P ) \r 0034340 0034360 ( L 0034400 O G A N D ( \ X L R S H W O R 0034420 D N P O S ) \r 0034440 * 0034500 ( M A S K . 1 ' S 0 ( I M 0034520 I N B I T S P E R W O R D S 0034540 I Z E ] \r ) \r ( D E F I N E Q \r 0034560 \r ( 006 004 \ P U T B A S E B I T S 0034600 006 001 \r [ L A M B D A ( A D 0034620 D R P O S I T I O N S I Z E 0034640 V A L ) 006 003 006 001 0034660 0034700 006 003 ( * l m m " 1 2 0034720 - A p r - 8 5 1 5 : 1 8 " ) 006 0034740 001 \r ( 006 002 i f 006 001 ( G 0034760 R E A T E R P P O S I T I O N 0035000 B I T S P E R W O R D ) \r 0035020 006 002 t h e n 006 001 ( 0035040 006 002 \ P U T B A S E B I T S 006 001 0035060 ( \ A D D B A S E A D D R 0035100 ( F O L D L O P O S I T I O N 0035120 B I T S P E R W O R D ) ) \r 0035140 0035160 ( I M O D P O S I T I O 0035200 N B I T S P E R W O R D ) \r 0035220 0035240 S I Z E V A L ) \r 0035260 006 002 e l s e i f 006 001 ( G 0035300 R E A T E R P S I Z E ( D I 0035320 F F E R E N C E B I T S P E R 0035340 W O R D P O S I T I O N ) ) \r 0035360 006 002 t h e n 006 001 0035400 * 0035460 006 003 ( * m o r e t h a n 0035500 o n e w o r d ) 006 001 \r 0035520 [ 006 002 \ P U T 0035540 B A S E B I T S 006 001 A D D R 0035560 P O S I T I O N ( D I F F E R 0035600 E N C E B I T S P E R W O R D 0035620 P O S I T I O N ) \r 0035640 ( 0035660 R S H V A L ( S E T Q S I 0035700 Z E ( D I F F E R E N C E S 0035720 I Z E ( D I F F E R E N C E 0035740 B I T S P E R W O R D P O S I 0035760 T I O N ] \r 0036000 ( 006 002 \ P U T B A S E B I 0036020 T S 006 001 ( \ A D D B A S E A 0036040 D D R 1 ) \r 0036060 0 S I Z 0036100 E V A L ) \r 006 002 e 0036120 l s e 006 001 0036140 * 0036200 006 003 ( * a s 0036220 i n g l e w o r d ) 006 001 \r 0036240 ( \ P U T B A 0036260 S E A D D R 0 ( D E P O S 0036300 I T B Y T E ( \ G E T B A S E 0036320 A D D R 0 ) \r 0036340 0036360 ( D I F 0036400 F E R E N C E ( S U B 1 B I 0036420 T S P E R W O R D ) \r 0036440 * 0036500 P O S I T I O N ) \r 0036520 * 0036560 S I Z E V A L ] ) \r ) \r \r 0036600 \r \r 006 004 ( * ; ; " P r i m i 0036620 t i v e f u n c t i o n s , 0036640 e s p e c i a l l y n e e d e 0036660 d f o r C o m m o n L i s p 0036700 a r r a y p a c k a g e . " 0036720 ) 006 001 \r \r ( D E C L A R E % : 0036740 D O N T C O P Y \r ( D E C L A 0036760 R E % : E V A L @ C O M P I L 0037000 E \r \r ( P U T P R O P S . H 0037020 I H A L F W O R D L O . M A C 0037040 R O ( ( X ) \r 0037060 0037100 ( L R S H X 0037120 B I T S P E R H A L F W O R D ) 0037140 ) ) \r [ P U T P R O P S . H I 0037160 H A L F W O R D H I . M A C R 0037200 O ( ( X ) \r 0037220 0037240 ( L O G A N D X 0037260 ( C O N S T A N T ( L S H 0037300 M A S K H A L F W O R D 1 ' S 0037320 B I T S P E R H A L F W O R D ] 0037340 \r ( P U T P R O P S . L O H A 0037360 L F W O R D L O . M A C R O 0037400 ( ( X ) \r 0037420 0037440 ( L O G A N D X M 0037460 A S K H A L F W O R D 1 ' S ) ) 0037500 ) \r ( P U T P R O P S . L O H 0037520 A L F W O R D H I . M A C R O 0037540 ( ( X ) \r 0037560 0037600 ( L L S H ( L O G 0037620 A N D X M A S K H A L F W O 0037640 R D 1 ' S ) \r 0037660 0037700 B I T 0037720 S P E R H A L F W O R D ) ) ) \r 0037740 ) \r \r ( D E C L A R E % : E V 0037760 A L @ C O M P I L E \r \r [ P U 0040000 T P R O P S \ G E T B A S E N 0040020 I B B L E D M A C R O ( O P 0040040 E N L A M B D A ( B A S E O 0040060 F F S T ) \r 0040100 0040120 ( [ L 0040140 A M B D A ( \ B y t e ) \r 0040160 * 0040220 ( D E 0040240 C L A R E ( L O C A L V A R S 0040260 \ B y t e ) ) \r 0040300 * 0040340 ( i f ( O D D 0040360 P O F F S T ) \r 0040400 * 0040440 t h e n 0040460 \r 0040500 * 0040540 ( L O G A N D \ B y t 0040560 e ( C O N S T A N T ( M A S 0040600 K . 1 ' S 0 B I T S P E R N 0040620 I B B L E ) \r 0040640 * 0040720 ) 0040740 ) \r 0040760 * 0041020 e l s e \r 0041040 * 0041100 ( L R 0041120 S H \ B y t e B I T S P E R 0041140 N I B B L E ] \r 0041160 * 0041220 ( \ G E T B A S E B Y T E B A 0041240 S E ( F O L D L O O F F S T 0041260 N I B B L E S P E R B Y T E ] 0041300 \r [ P U T P R O P S \ P U T B 0041320 A S E N I B B L E D M A C R O 0041340 \r ( O P E N L A M 0041360 B D A ( B A S E O F F S T 0041400 V A L ) \r 0041420 ( [ L A M B D A ( \ B y 0041440 t e N o ) \r 0041460 ( D E C 0041500 L A R E ( L O C A L V A R S 0041520 \ B y t e N o ) ) \r 0041540 0041560 ( [ L A M B D A ( \ B y t e ) 0041600 \r 0041620 ( 0041640 D E C L A R E ( L O C A L V A 0041660 R S \ B y t e ) ) \r 0041700 0041720 ( \ P U T B A 0041740 S E B Y T E B A S E \ B y t 0041760 e N o \r 0042000 0042020 ( i f ( O D 0042040 D P O F F S T ) \r 0042060 * 0042120 t h e n \r 0042140 * 0042200 ( L O G O R ( L O G A N D 0042220 \ B y t e ( C O N S T A N T 0042240 ( M A S K . 1 ' S B I T S P E 0042260 R N I B B L E \r 0042300 * 0042400 B I T S P E R N 0042420 I B B L E ) ) ) \r 0042440 * 0042500 V A L ) \r 0042520 * 0042560 e l s e \r 0042600 * 0042640 ( L O G O R ( L O G 0042660 A N D \ B y t e ( C O N S T 0042700 A N T ( M A S K . 1 ' S 0 0042720 B I T S P E R N I B B L E ) ) ) 0042740 \r 0042760 * 0043020 ( L L S H V A L B I T S P 0043040 E R N I B B L E ] \r 0043060 0043100 ( \ G E T B A S E B Y T E B 0043120 A S E \ B y t e N o ] \r 0043140 ( F O L 0043160 D L O O F F S T N I B B L E 0043200 S P E R B Y T E ] \r [ P U T P R 0043220 O P S \ G E T B A S E B I T 0043240 D M A C R O ( O P E N L A M B 0043260 D A ( B A S E O F F S T ) \r 0043300 * 0043340 ( [ L A M B D A ( \ B 0043360 y t e N o \ B i t M a s k ) \r 0043400 * 0043440 ( D E C 0043460 L A R E ( L O C A L V A R S 0043500 \ B y t e N o \ B i t M a s k 0043520 ) ) \r 0043540 0043560 ( 0043600 i f ( E Q 0 ( L O G A N D 0043620 \ B i t M a s k ( \ G E T B 0043640 A S E B Y T E B A S E \ B y 0043660 t e N o ) ) ) \r 0043700 * 0043740 t h e n 0 e 0043760 l s e 1 ] \r 0044000 0044020 ( F O L 0044040 D L O O F F S T B I T S P E 0044060 R B Y T E ) \r 0044100 0044120 ( M A S 0044140 K . 1 ' S ( I D I F F E R E N 0044160 C E ( C O N S T A N T ( S U 0044200 B 1 B I T S P E R B Y T E ) ) 0044220 \r 0044240 * 0044300 ( I M O D O F F 0044320 S T B I T S P E R B Y T E ) ) 0044340 \r 0044360 0044400 1 ] \r 0044420 [ P U T P R O P S \ P U T B A 0044440 S E B I T D M A C R O ( O P 0044460 E N L A M B D A ( B A S E O 0044500 F F S T V A L ) \r 0044520 0044540 ( [ 0044560 L A M B D A ( \ B y t e N o 0044600 \ B i t M a s k \ B y t e ) \r 0044620 * 0044660 ( D E C 0044700 L A R E ( L O C A L V A R S 0044720 \ B y t e N o \ B i t M a s k 0044740 \ B y t e ) ) \r 0044760 * 0045020 ( S E T Q \ B y t e 0045040 ( \ G E T B A S E B Y T E B 0045060 A S E \ B y t e N o ) ) \r 0045100 * 0045140 ( i f ( i 0045160 f ( E Q 0 ( L O G A N D 0045200 \ B i t M a s k \ B y t e ) ) 0045220 \r 0045240 * 0045300 t h e n \r 0045320 * 0045360 ( N 0045400 O T ( E Q 0 V A L ) ) \r 0045420 * 0045500 e l s e \r 0045520 * 0045560 ( E Q 0045600 0 V A L ) ) \r 0045620 * 0045660 t h e n \r 0045700 * 0045740 ( \ P 0045760 U T B A S E B Y T E B A S E 0046000 \ B y t e N o ( L O G X O R 0046020 \ B i t M a s k \ B y t e ) ) 0046040 ) \r 0046060 0046100 V A 0046120 L ] \r 0046140 0046160 ( F O L D L O 0046200 O F F S T B I T S P E R B Y T 0046220 E ) \r 0046240 0046260 ( M A S K . 1 ' 0046300 S ( I D I F F E R E N C E ( 0046320 C O N S T A N T ( S U B 1 B 0046340 I T S P E R B Y T E ) ) \r 0046360 * 0046440 ( I M O D O F F S T B 0046460 I T S P E R B Y T E ) ) \r 0046500 * 0046540 1 ] \r ) \r ) \r 0046560 \r \r \r 006 004 ( * ; ; " B e g i 0046600 n n i n g o f r e w r i t e 0046620 o f s o m e L L A R I T H 0046640 t h i n g s , m o d u l a r 0046660 l y u s i n g t h e m a c 0046700 r o s o f t h i s f i l e 0046720 " ) 006 001 \r \r ( D E C L A R E % : 0046740 D O N T C O P Y \r ( * F O 0046760 L L O W I N G D E F I N I T I 0047000 O N S E X P O R T E D ) \r \r \r 0047020 ( D E C L A R E % : E V A L @ 0047040 C O M P I L E \r \r ( R P A Q Q 0047060 006 002 M A S K 0 W O R D 1 ' S 006 0047100 001 3 2 7 6 7 ) \r \r ( R P A Q Q 0047120 006 002 M A S K 1 W O R D 0 ' S 006 0047140 001 3 2 7 6 8 ) \r \r ( R P A Q Q 0047160 006 002 M A S K W O R D 1 ' S 006 001 0047200 6 5 5 3 5 ) \r \r ( R P A Q Q 0047220 006 002 M A S K H A L F W O R D 1 ' 0047240 S 006 001 2 5 5 ) \r \r ( R P A Q Q 0047260 006 002 B I T S P E R H A L F W O 0047300 R D 006 001 8 ) \r \r ( C O N S T A 0047320 N T S M A S K 0 W O R D 1 ' S 0047340 M A S K 1 W O R D 0 ' S M A 0047360 S K W O R D 1 ' S M A S K H A 0047400 L F W O R D 1 ' S B I T S P E 0047420 R H A L F W O R D ) \r ) \r ( D E 0047440 C L A R E % : E V A L @ C O M 0047460 P I L E \r \r ( P U T P R O P S 0047500 E Q Z E R O P M A C R O ( 0047520 ( X ) \r 0047540 ( E Q 0047560 0 X ) ) ) \r ) \r ( D E C L A 0047600 R E % : E V A L @ C O M P I L 0047620 E \r \r [ P U T P R O P S \ M 0047640 O V E T O B O X D M A C R O 0047660 ( O P E N L A M B D A ( N D 0047700 ) \r 0047720 0047740 ( S E L E C T C ( N 0047760 T Y P X N ) \r 0050000 * 0050040 ( \ S M A L L P ( r e p l 0050060 a c e ( F I X P H I N U M ) 0050100 \r 0050120 * 0050160 o f D 0050200 w i t h 0 ) \r 0050220 * 0050260 ( r e p l a c 0050300 e ( F I X P L O N U M ) \r 0050320 * 0050400 o f D w i t h 0050420 N ) ) \r 0050440 0050460 ( 0050500 \ F I X P ( r e p l a c e ( 0050520 F I X P H I N U M ) \r 0050540 * 0050620 o f D w i t h ( f 0050640 e t c h ( F I X P H I N U M 0050660 ) \r 0050700 * 0050760 o f N ) 0051000 ) \r 0051020 * 0051060 ( r e p l a c e ( F I X 0051100 P L O N U M ) \r 0051120 * 0051200 o f D w i t h ( f e t c 0051220 h ( F I X P L O N U M ) \r 0051240 * 0051340 o f N ) ) ) \r 0051360 * 0051420 ( \ I L L E 0051440 G A L . A R G N ] \r [ P U T P 0051460 R O P S . X U N B O X . M A 0051500 C R O ( ( X H X L X ) \r 0051520 0051540 ( u n t i l 0051560 ( S E T Q L X ( S E L E C T 0051600 C ( N T Y P X X ) \r 0051620 * 0051660 [ \ S 0051700 M A L L P ( C O N D ( ( I G 0051720 E Q X 0 ) \r 0051740 * 0052020 ( S E T Q H 0052040 X 0 ) \r 0052060 * 0052140 X ) \r 0052160 * 0052240 ( T ( S E T 0052260 Q H X M A S K W O R D 1 ' S 0052300 ) \r 0052320 * 0052400 ( \ L O L O C X ] \r 0052420 * 0052500 ( \ F I X P ( S E T Q H X 0052520 ( f e t c h ( F I X P H I 0052540 N U M ) \r 0052560 * 0052640 o f 0052660 X ) ) \r 0052700 * 0052740 ( f e t 0052760 c h ( F I X P L O N U M ) \r 0053000 * 0053060 o 0053100 f X ) ) \r 0053120 * 0053160 N I L ) ) \r 0053200 0053220 d o 0053240 \r 0053260 0053300 ( S E T Q X ( L I S P E 0053320 R R O R " I L L E G A L A R 0053340 G " X T ] \r [ P U T P R O P 0053360 S . X L L S H . M A C R O 0053400 ( ( H I L O N ) \r 0053420 0053440 ( i f ( I G E Q N 0053460 B I T S P E R W O R D ) \r 0053500 0053520 t h e n \r 0053540 0053560 ( * J 0053600 u m p 1 6 b i t s i n a 0053620 s i n g l e b o u n d ! ) \r 0053640 0053660 ( S E 0053700 T Q H I L O ) \r 0053720 0053740 ( S E T Q L O 0053760 0 ) \r 0054000 0054020 ( S E T Q N ( I D I F F E R 0054040 E N C E N B I T S P E R W O 0054060 R D ) ) ) \r 0054100 ( 0054120 i f ( I G E Q N B I T S P 0054140 E R H A L F W O R D ) \r 0054160 0054200 t h e n \r 0054220 0054240 ( * J u 0054260 m p 8 b i t s i n a s 0054300 i n g l e b o u n d ! ) \r 0054320 0054340 ( S E T Q 0054360 H I ( L O G O R ( . L O H 0054400 A L F W O R D H I . H I ) \r 0054420 * 0054460 ( . H I 0054500 H A L F W O R D L O . L O ) ) 0054520 ) \r 0054540 ( 0054560 S E T Q L O ( . L O H A L F 0054600 W O R D H I . L O ) ) \r 0054620 0054640 ( S E T Q 0054660 N ( I D I F F E R E N C E N 0054700 B I T S P E R H A L F W O R D 0054720 ) ) ) \r 0054740 ( i f 0054760 ( I G E Q N 4 ) \r 0055000 0055020 t h e n \r 0055040 0055060 ( * J u 0055100 m p 4 b i t s i n a s 0055120 i n g l e b o u n d ! ) \r 0055140 0055160 ( S E T Q 0055200 H I ( L O G O R ( L R S H 0055220 L O ( C O N S T A N T ( I 0055240 D I F F E R E N C E B I T S P 0055260 E R W O R D 4 ) ) ) \r 0055300 * 0055340 ( L L S H [ 0055360 L O G A N D H I ( C O N S T 0055400 A N T ( M A S K . 1 ' S 0 0055420 ( I D I F F E R E N C E \r 0055440 * 0055560 B I T S P E R W O R D 4 ] 0055600 \r 0055620 * 0055660 4 ) ) ) \r 0055700 0055720 ( S E T Q L O ( 0055740 L L S H [ L O G A N D L O 0055760 ( C O N S T A N T ( M A S K . 0056000 1 ' S 0 ( I D I F F E R E N 0056020 C E B I T S P E R W O R D \r 0056040 * 0056160 4 ] \r 0056200 * 0056240 4 ) ) \r 0056260 0056300 ( S E T Q N ( I D I 0056320 F F E R E N C E N 4 ) ) ) \r 0056340 0056360 [ * M A S K 0056400 0 W O R D 1 ' S s h o u l d 0056420 b e s a m e a s ( S U B 1 0056440 ( L S H 1 ( S U B 1 B I 0056460 T S P E R W O R D ] \r 0056500 0056520 ( F R P T Q N ( S E 0056540 T Q H I ( L L S H ( L O G 0056560 A N D H I M A S K 0 W O R D 0056600 1 ' S ) \r 0056620 * 0056660 1 ) ) \r 0056700 0056720 ( S E T Q 0056740 L O ( L L S H ( i f ( I G 0056760 E Q L O M A S K 1 W O R D 0 0057000 ' S ) \r 0057020 * 0057060 t h e n \r 0057100 * 0057140 ( 0057160 a d d H I 1 ) \r 0057200 * 0057240 ( L O 0057260 G A N D L O M A S K 0 W O R 0057300 D 1 ' S ) \r 0057320 * 0057360 e l s e L O 0057400 ) \r 0057420 * 0057460 1 ] \r [ P U T P R O P S . X 0057500 L L S H 1 . M A C R O ( ( H 0057520 I L O ) \r 0057540 0057560 ( S E T Q H I ( L L S H ( 0057600 L O G A N D H I M A S K 0 W 0057620 O R D 1 ' S ) \r 0057640 * 0057700 1 ) ) \r 0057720 ( 0057740 S E T Q L O ( L S H ( C O 0057760 N D ( ( I G E Q L O M A S 0060000 K 1 W O R D 0 ' S ) \r 0060020 * 0060060 ( S E T Q 0060100 H I ( L O G O R H I 1 ) ) 0060120 \r 0060140 * 0060200 ( L O G A N D L O M A S K 0 0060220 W O R D 1 ' S ) ) \r 0060240 * 0060300 ( T L O ) ) \r 0060320 * 0060360 1 ] \r [ P U T P 0060400 R O P S . X L R S H . M A C 0060420 R O ( ( H I L O N ) \r 0060440 0060460 ( i f ( I G E Q 0060500 N B I T S P E R W O R D ) \r 0060520 0060540 t h e 0060560 n \r 0060600 ( 0060620 * J u m p 1 0 b i t s i 0060640 n a s i n g l e b o u n d 0060660 ! ) \r 0060700 0060720 ( S E T Q L O H I ) \r 0060740 0060760 ( S E T Q 0061000 H I 0 ) \r 0061020 0061040 ( S E T Q N ( I D I F 0061060 F E R E N C E N B I T S P E 0061100 R W O R D ) ) ) \r 0061120 0061140 ( i f ( I G E Q N B I 0061160 T S P E R H A L F W O R D ) \r 0061200 0061220 t h e n 0061240 \r 0061260 ( * 0061300 J u m p 8 b i t s i n 0061320 a s i n g l e b o u n d ! ) 0061340 \r 0061360 ( S 0061400 E T Q L O ( L O G O R ( . 0061420 H I H A L F W O R D L O . L O 0061440 ) \r 0061460 0061500 ( 0061520 . L O H A L F W O R D H I . H 0061540 I ) ) ) \r 0061560 0061600 ( S E T Q H I ( . H I H 0061620 A L F W O R D L O . H I ) ) \r 0061640 0061660 ( S E 0061700 T Q N ( I D I F F E R E N C 0061720 E N B I T S P E R H A L F W 0061740 O R D ) ) ) \r 0061760 0062000 ( i f ( I G E Q N 4 ) \r 0062020 0062040 t h e n 0062060 \r 0062100 ( * 0062120 J u m p 4 b i t s i n 0062140 a s i n g l e b o u n d ! ) 0062160 \r 0062200 ( S 0062220 E T Q L O ( L O G O R ( L 0062240 L S H ( L O G A N D H I ( 0062260 C O N S T A N T ( M A S K . 1 0062300 ' S 0 4 ) ) ) \r 0062320 * 0062360 ( C O 0062400 N S T A N T ( I D I F F E R E 0062420 N C E B I T S P E R W O R D 0062440 4 ) ) ) \r 0062460 * 0062520 ( L R S H L O 4 ) ) ) \r 0062540 0062560 ( S E 0062600 T Q H I ( L R S H H I 4 0062620 ) ) \r 0062640 0062660 ( S E T Q N ( I D I F F E R 0062700 E N C E N 4 ) ) ) \r 0062720 0062740 ( * M A S K 1 W O R 0062760 D 0 ' S s h o u l d b e s 0063000 a m e a s \ S I G N B I T ) 0063020 \r 0063040 ( F R P T Q 0063060 N ( S E T Q L O ( i f 0063100 ( O D D P H I ) \r 0063120 * 0063160 t h e n \r 0063200 * 0063240 ( L O 0063260 G O R ( L R S H L O 1 ) \r 0063300 * 0063360 M A S K 1 W O R D 0 0063400 ' S ) \r 0063420 * 0063460 e l s e \r 0063500 * 0063540 ( L R S H L O 0063560 1 ) ) ) \r 0063600 0063620 ( S E T Q H I ( L 0063640 R S H H I 1 ] \r [ P U T P R 0063660 O P S . A D D . 2 W O R D . I 0063700 N T E G E R S . M A C R O ( 0063720 ( H X L X H Y L Y ) \r 0063740 * 0064000 ( * I g n o r e s c 0064020 a r r y o u t o f h i g h 0064040 - o r d e r w o r d ) \r 0064060 * 0064120 ( S E T Q H X ( . S U 0064140 M S M A L L M O D . H X H Y 0064160 ) ) \r 0064200 0064220 ( S E T Q L 0064240 X ( . S U M S M A L L M O D . 0064260 L X L Y ( S E T Q H X \r 0064300 * 0064400 ( i f ( E 0064420 Q H X \r 0064440 * 0064540 M A X . S M A L 0064560 L . I N T E G E R ) \r 0064600 * 0064700 t h e n 0 0064720 e l s e \r 0064740 * 0065040 ( A D D 1 H X ] \r [ P U 0065060 T P R O P S . S U B . 2 W O R 0065100 D . I N T E G E R S . M A C R 0065120 O ( ( H X L X H Y L Y ) 0065140 \r 0065160 0065200 ( * I g n o r e 0065220 s c a r r y o u t o f h 0065240 i g h - o r d e r w o r d ) \r 0065260 * 0065320 ( S E T Q H X ( 0065340 . D I F F E R E N C E S M A L L 0065360 M O D . H X H Y ) ) \r 0065400 * 0065440 ( S E T Q L X ( . D I 0065460 F F E R E N C E S M A L L M O D 0065500 . L X L Y \r 0065520 * 0065560 ( S 0065600 E T Q H X ( i f ( E Q H 0065620 X 0 ) \r 0065640 * 0065720 t h e n M A X 0065740 . S M A L L . I N T E G E R e 0065760 l s e \r 0066000 * 0066060 ( S U B 1 H X ] 0066100 \r [ P U T P R O P S . 3 2 B I 0066120 T M U L . M A C R O ( ( H R 0066140 L R X Y ) \r 0066160 0066200 ( P R O G ( H X L 0066220 X H Y L Y ) \r 0066240 0066260 ( i f ( 0066300 I L E S S P X Y ) \r 0066320 * 0066360 t h e n \r 0066400 0066420 ( s w 0066440 a p X Y ) ) \r 0066460 0066500 ( * Y 0066520 i s t h e l e s s e r o f 0066540 t h e t w o n o w ) \r 0066560 * 0066620 ( . X U N B O X . X H X L 0066640 X ) \r 0066660 0066700 ( . X U N B O X . Y 0066720 H Y L Y ) \r 0066740 0066760 L P \r 0067000 0067020 ( 0067040 i f ( O D D P L Y ) \r 0067060 * 0067120 t h e n \r 0067140 0067160 ( . 0067200 A D D . 2 W O R D . I N T E G E 0067220 R S . H R L R H X L X ) 0067240 ) \r 0067260 0067300 ( i f ( E Q H Y 0 0067320 ) \r 0067340 0067360 t h e n \r 0067400 * 0067440 ( S E T Q L Y ( L R S 0067460 H L Y 1 ) ) \r 0067500 0067520 ( 0067540 i f ( E Q L Y 0 ) \r 0067560 * 0067620 t h e n \r 0067640 * 0067700 ( R E T U R N ) ) \r 0067720 * 0067760 e l s e \r 0070000 * 0070040 ( . L R S H 1 . H Y L Y ) 0070060 ) \r 0070100 0070120 ( * T r i m o f f 0070140 h i g h e s t b i t s , s o 0070160 t h a t l e f t - s h i f t 0070200 i n g d o e s n ' t g e n e 0070220 r a t e \r 0070240 0070260 F I X P s 0070300 ) \r 0070320 0070340 ( S E T Q H X ( L O 0070360 G A N D H X M A S K 0 W O R 0070400 D 1 ' S ) ) \r 0070420 0070440 ( . L L S H 1 0070460 . H X L X ) \r 0070500 0070520 ( G O L 0070540 P ] \r ) \r ( D E C L A R E % : 0070560 E V A L @ C O M P I L E \r \r [ 0070600 P U T P R O P S . S U M S M A 0070620 L L M O D . M A C R O ( ( X 0070640 Y O V E R F L O W F O R M ) 0070660 \r 0070700 0070720 ( [ L A M B D A ( \ S u m S m 0070740 a l l M o d V a r ) \r 0070760 * 0071020 ( D E C L A R E ( L O C A 0071040 L V A R S \ S u m S m a l l M 0071060 o d V a r ) ) \r 0071100 0071120 ( 0071140 I F ( I L E Q X \ S u m S 0071160 m a l l M o d V a r ) \r 0071200 * 0071240 T H E N \r 0071260 * 0071320 ( I P L U S X 0071340 Y ) \r 0071360 0071400 E L 0071420 S E O V E R F L O W F O R M 0071440 ( I D I F F E R E N C E X ( 0071460 A D D 1 \ S u m S m a l l M o 0071500 d V a r ] \r 0071520 0071540 ( I D I F F E R E N 0071560 C E M A X . S M A L L . I N T 0071600 E G E R Y ] \r [ P U T P R O P 0071620 S . D I F F E R E N C E S M A 0071640 L L M O D . M A C R O ( ( X 0071660 Y B O R R O W F O R M ) \r 0071700 * 0071740 ( I F ( N O T ( I 0071760 G R E A T E R P Y X ) ) \r 0072000 * 0072040 T H E N \r 0072060 * 0072120 ( I D I F F E R 0072140 E N C E X Y ) \r 0072160 * 0072220 E L S E B O R R O W F 0072240 O R M ( A D D 1 ( I D I F F 0072260 E R E N C E M A X . S M A L L 0072300 . I N T E G E R \r 0072320 * 0072420 ( I D I F F E R E N C E Y X 0072440 ] \r ) \r \r \r ( * E N D E X P 0072460 O R T E D D E F I N I T I O N 0072500 S ) \r \r \r ( D E C L A R E % : 0072520 E V A L @ C O M P I L E \r \r [ 0072540 P U T P R O P S . A D D . 2 W 0072560 O R D . I N T E G E R S . M A 0072600 C R O ( ( H X L X H Y L 0072620 Y ) \r 0072640 0072660 ( * I g n o 0072700 r e s c a r r y o u t o f 0072720 h i g h - o r d e r w o r d 0072740 ) \r 0072760 0073000 ( S E T Q H X 0073020 ( . S U M S M A L L M O D . 0073040 H X H Y ) ) \r 0073060 0073100 ( S 0073120 E T Q L X ( . S U M S M A L 0073140 L M O D . L X L Y ( S E T 0073160 Q H X \r 0073200 * 0073260 ( 0073300 i f ( E Q H X \r 0073320 * 0073420 M A X 0073440 . S M A L L . I N T E G E R ) \r 0073460 * 0073560 t h 0073600 e n 0 e l s e \r 0073620 * 0073720 ( A D D 1 H X 0073740 ] \r [ P U T P R O P S . S U B 0073760 . 2 W O R D . I N T E G E R S . 0074000 M A C R O ( ( H X L X H 0074020 Y L Y ) \r 0074040 0074060 ( * I 0074100 g n o r e s c a r r y o u t 0074120 o f h i g h - o r d e r w 0074140 o r d ) \r 0074160 0074200 ( S E T Q 0074220 H X ( . D I F F E R E N C E 0074240 S M A L L M O D . H X H Y ) 0074260 ) \r 0074300 0074320 ( S E T Q L X 0074340 ( . D I F F E R E N C E S M A 0074360 L L M O D . L X L Y \r 0074400 * 0074460 ( S E T Q H X ( i f 0074500 ( E Q H X 0 ) \r 0074520 * 0074600 t h e 0074620 n M A X . S M A L L . I N T E 0074640 G E R e l s e \r 0074660 * 0074740 ( S U B 0074760 1 H X ] \r [ P U T P R O P S 0075000 . 3 2 B I T M U L . M A C R O 0075020 ( ( H R L R X Y ) \r 0075040 0075060 ( P R O G 0075100 ( H X L X H Y L Y ) \r 0075120 * 0075160 ( i f ( I L E S S P X Y ) 0075200 \r 0075220 0075240 t h e n \r 0075260 * 0075320 ( s w a p X Y ) ) \r 0075340 * 0075400 ( * Y i s t h e l e s s 0075420 e r o f t h e t w o n o 0075440 w ) \r 0075460 0075500 ( . X U N B O X . X 0075520 H X L X ) \r 0075540 0075560 ( . X U N B 0075600 O X . Y H Y L Y ) \r 0075620 0075640 L 0075660 P \r 0075700 0075720 ( i f ( O D D P L Y 0075740 ) \r 0075760 0076000 t h e n \r 0076020 * 0076060 ( . A D D . 2 W O R D . I 0076100 N T E G E R S . H R L R H 0076120 X L X ) ) \r 0076140 0076160 ( i f ( E Q 0076200 H Y 0 ) \r 0076220 0076240 t h e 0076260 n \r 0076300 0076320 ( S E T Q L Y 0076340 ( L R S H L Y 1 ) ) \r 0076360 * 0076420 ( i f ( E Q L Y 0 0076440 ) \r 0076460 0076500 t h e n 0076520 \r 0076540 0076560 ( R E T U 0076600 R N ) ) \r 0076620 0076640 e l s e \r 0076660 * 0076720 ( . L R S H 1 . H 0076740 Y L Y ) ) \r 0076760 0077000 ( * T r i m 0077020 o f f h i g h e s t b i t 0077040 s , s o t h a t l e f t - 0077060 s h i f t i n g d o e s n ' t 0077100 g e n e r a t e \r 0077120 * 0077160 F I X P s ) \r 0077200 0077220 ( S E T Q H 0077240 X ( L O G A N D H X M A S 0077260 K 0 W O R D 1 ' S ) ) \r 0077300 0077320 ( . 0077340 L L S H 1 . H X L X ) \r 0077360 * 0077420 ( G O L P ] \r ) \r ) \r \r ( P U 0077440 T P R O P S 006 002 A D D A R I T 0077460 H F I L E T Y P E 006 001 C L : 0077500 C O M P I L E - F I L E ) \r ( P 0077520 U T P R O P S A D D A R I T H 0077540 C O P Y R I G H T ( " X e r 0077560 o x C o r p o r a t i o n " 0077600 1 9 8 2 1 9 8 3 1 9 8 4 1 0077620 9 8 5 1 9 8 6 ) ) \r ( D E C L 0077640 A R E % : D O N T C O P Y \r 0077660 ( F I L E M A P ( N I L ( 0077700 3 8 4 0 3 9 9 1 ( C L : L O 0077720 G N O T 3 8 5 0 . 3 9 8 9 0077740 ) ) ( 5 8 4 5 6 5 9 3 ( L 0077760 D B 5 8 5 5 . 6 1 0 7 ) 0100000 ( D P B 6 1 0 9 . 6 3 8 4 0100020 ) ( B Y T E \r 6 3 8 6 . 0100040 6 5 9 1 ) ) ( 6 5 9 4 1 2 3 0100060 6 6 ( \ L D B E X P A N D E R 0100100 6 6 0 4 . 8 8 0 4 ) ( \ 0100120 D P B E X P A N D E R 8 8 0 6 0100140 . 1 2 3 6 4 ) ) ( 1 2 9 3 0100160 9 1 3 1 3 2 ( \r I M O D L E 0100200 S S P 1 2 9 4 9 . 1 3 1 3 0100220 0 ) ) ( 1 3 4 3 9 1 3 9 1 8 0100240 ( R O T 1 3 4 4 9 . 1 3 0100260 9 1 6 ) ) ( 1 4 6 9 5 1 5 7 0100300 4 2 ( \ P U T B A S E B I T S 0100320 1 4 7 0 5 . 1 5 7 4 0 ) ) 0100340 \r ) ) ) \r S T O P \r 0100352