;ELC
;;; Compiled
;;; in Emacs version 26.1
;;; with all optimizations.
;;; This file uses dynamic docstrings, first added in Emacs 19.29.
;;; This file does not contain utf-8 non-ASCII characters,
;;; and so can be loaded in Emacs versions earlier than 23.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
#@38 Work buffer of four 32-bit integers.
(defvar md4-buffer (make-vector 4 '(0 . 0)) (#$ . 408))
#@164 Return the MD4 hash for a string IN of length N bytes.
The returned hash is 16 bytes long. N is required to handle
strings containing the character 0.
(fn IN N)
(defalias 'md4 #[514 "\301\302\303_B\302\304\305\302\"\301\302\306I\210\307\310I\210\311\312I\210\313\314I\210\315V\203B \316\302\315O!\262\317!\210\315\301O\262\315Z\262\202 \302\262W\203[ HI\210T\262\202E \305I\210\320X\203\224 \321!\262\322\302HI\210\323\307HI\210\324\311HI\210\325\313HI\210\316!\262\317!\210\202\312 \321!\262\326\302HI\210\327\307HI\210\330\311HI\210\331\313HI\210\316!\262\317!\210\316\315\301O!\262\317!\210\266\321\302H!\321\307H!\321\311H!\321\313H!R\207" [md4-buffer nil 0 8 make-string 128 (26437 . 8961) 1 (61389 . 43913) 2 (39098 . 56574) 3 (4146 . 21622) 64 md4-copy64 md4-64 55 md4-pack-int32 56 57 58 59 120 121 122 123] 11 (#$ . 508)])
#@14
(fn X Y Z)
(defalias 'md4-F #[771 "\300\301\"\301\302!\"\"\207" [logior logand lognot] 8 (#$ . 1413)])
(put 'md4-F 'byte-optimizer 'byte-compile-inline-expand)
#@14
(fn X Y Z)
(defalias 'md4-G #[771 "\300\301\"\301\"\301\"#\207" [logior logand] 9 (#$ . 1586)])
(put 'md4-G 'byte-optimizer 'byte-compile-inline-expand)
#@14
(fn X Y Z)
(defalias 'md4-H #[771 "\300#\207" [logxor] 7 (#$ . 1753)])
(put 'md4-H 'byte-optimizer 'byte-compile-inline-expand)
#@18
(fn NAME FUNC)
(defalias 'md4-make-step '(macro . #[514 "\300\301\302\303\304\305\306B\307BBBD\310\304\311\312B\313BBBD\314BB\315BBF\207" [defun (a b c d xk s ac) let* h1 + (car a) ((car b) (car c) (car d)) ((car xk) (car ac)) l1 (cdr a) ((cdr b) (cdr c) (cdr d)) ((cdr xk) (cdr ac)) ((h2 (logand 65535 (+ h1 (lsh l1 -16)))) (l2 (logand 65535 l1)) (h3 (logand 65535 (if (> s 15) (+ (lsh h2 (- s 32)) (lsh l2 (- s 16))) (+ (lsh h2 s) (lsh l2 (- s 16)))))) (l3 (logand 65535 (if (> s 15) (+ (lsh l2 (- s 32)) (lsh h2 (- s 16))) (+ (lsh l2 s) (lsh h2 (- s 16))))))) ((cons h3 l3))] 12 (#$ . 1892)]))
#@24
(fn A B C D XK S AC)
(defalias 'md4-round1 #[1799 "\300@@@@\301\302\"\302\303!\"\"\266\203@@$\300AAAA\301\302\"\302\303!\"\"\266\203AA$\302\304\305\"\\\306\"\302\306\"\302\307V\203j \304\310Z\"\304 \311Z\"\\\202w \304\"\304 \311Z\"\\\306\"\302\307V\203\223 \304 \310Z\"\304\n\311Z\"\\\202\240 \304 \"\304\n\311Z\"\\\306\"B\207" [+ logior logand lognot lsh -16 65535 15 32 16] 18 (#$ . 2502)])
#@24
(fn A B C D XK S AC)
(defalias 'md4-round2 #[1799 "\300@@@@\301\302\"\302\"\302\"#\266\203@@$\300AAAA\301\302\"\302\"\302\"#\266\203AA$\302\303\304\"\\\305\"\302\305\"\302\306V\203l \303\307Z\"\303 \310Z\"\\\202y \303\"\303 \310Z\"\\\305\"\302\306V\203\225 \303 \307Z\"\303\n\310Z\"\\\202\242 \303 \"\303\n\310Z\"\\\305\"B\207" [+ logior logand lsh -16 65535 15 32 16] 19 (#$ . 2961)])
#@24
(fn A B C D XK S AC)
(defalias 'md4-round3 #[1799 "\300@@@@\301#\266\203@@$\300AAAA\301#\266\203AA$\302\303\304\"\\\305\"\302\305\"\302\306V\203Z \303\307Z\"\303 \310Z\"\\\202g \303\"\303 \310Z\"\\\305\"\302\306V\203\203 \303 \307Z\"\303\n\310Z\"\\\202\220 \303 \"\303\n\310Z\"\\\305\"B\207" [+ logxor logand lsh -16 65535 15 32 16] 18 (#$ . 3415)])
#@57 Return 32-bit sum of 32-bit integers X and Y.
(fn X Y)
(defalias 'md4-add #[514 "@@\\AA\\\300\301\302\"\\\303\"\300\303\"B\207" [logand lsh -16 65535] 9 (#$ . 3827)])
(put 'md4-add 'byte-optimizer 'byte-compile-inline-expand)
#@12
(fn X Y)
(defalias 'md4-and #[514 "\300@@\"\300AA\"B\207" [logand] 6 (#$ . 4067)])
(put 'md4-and 'byte-optimizer 'byte-compile-inline-expand)
#@152 Calculate MD4 hash of M.
M is a 64-bytes chunk, represented as 16 pairs of 32-bit integers.
The resulting MD4 value is placed in `md4-buffer'.
(fn M)
(defalias 'md4-64 #[257 "\301H\302H\303H\304H\305 \301H\304\306&\262\305 \302H\307\310&\262\305 \303H\311\312&\262\305 \304H\313\314&\262\305 \315H\304\316&\262\305 \317H\307\320&\262\305 \321H\311\322&\262\305 \307H\313\323&\262\305 \324H\304\325&\262\305 \326H\307\327&\262\305 \330H\311\331&\262\305 \311H\313\332&\262\305 \333H\304\334&\262\305 \335H\307\336&\262\305 \337H\311\340&\262\305 \341H\313\342&\262\343 \301H\304\344&\262\343 \315H\317\345&\262\343 \324H\326\346&\262\343 \333H\335\347&\262\343 \302H\304\350&\262\343 \317H\317\351&\262\343 \326H\326\352&\262\343 \335H\335\353&\262\343 \303H\304\354&\262\343 \321H\317\355&\262\343 \330H\326\356&\262\343 \337H\335\357&\262\343 \304H\304\360&\262\343 \307H\317\361&\262\343 \311H\326\362&\262\343 \341H\335\363&\262\364 \301H\304\365&\262\364 \324H\326\366&\262\364 \315H\311\367&\262\364 \333H\341\370&\262\364 \303H\304\371&\262\364 \330H\326\372&\262\364 \321H\311\373&\262\364 \337H\341\374&\262\364 \302H\304\375&\262\364 \326H\326\376&\262\364 \317H\311\377&\262\364 \335H\341\201@ &\262\364 \304H\304\201A &\262\364 \311H\326\201B &\262\364 \307H\311\201C &\262\364 \341H\341\201D &\262\301\301H@@\\AA\\\201E \201F \201G \"\\\201H \"\201E \201H \"B\266\204I\210\302\302H@@\\AA\\\201E \201F \201G \"\\\201H \"\201E \201H \"B\266\204I\210\303\303H@@\\AA\\\201E \201F \201G \"\\\201H \"\201E \201H \"B\266\204I\210\304\304H@@\\AA\\\201E \201F \201G \"\\\201H \"\201E \201H \"B\266\204I\207" [md4-buffer 0 1 2 3 md4-round1 (0 . 0) 7 (0 . 0) 11 (0 . 0) 19 (0 . 0) 4 (0 . 0) 5 (0 . 0) 6 (0 . 0) (0 . 0) 8 (0 . 0) 9 (0 . 0) 10 (0 . 0) (0 . 0) 12 (0 . 0) 13 (0 . 0) 14 (0 . 0) 15 (0 . 0) md4-round2 (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) (23170 . 31129) md4-round3 (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) (28377 . 60321) logand lsh -16 65535] 16 (#$ . 4222)])
#@71 Unpack a 64 bytes string into 16 pairs of 32 bits integers.
(fn SEQ)
(defalias 'md4-copy64 #[257 "\300\301\302\"\302\303\301W\203: \304_\262\305\\H\306\307\\H\310\"\\H\306TH\310\"\\BI\210T\262\202 \207" [make-vector 16 0 nil 4 2 lsh 3 8] 11 (#$ . 7021)])
#@70 Pack 16 bits integer in 2 bytes string as little endian.
(fn INT16)
(defalias 'md4-pack-int16 #[257 "\300\301\302\"\211\302\303\304\"I\210\211\305\306\307\"I\210\211\207" [make-string 2 0 logand 255 1 lsh -8] 7 (#$ . 7304)])
#@156 Pack 32 bits integer in a 4 bytes string as little endian.
A 32 bits integer is represented as a pair of two 16 bits
integers (cons high low).
(fn INT32)
(defalias 'md4-pack-int32 #[257 "\300\301\302\"@A\302\303\304\"I\210\305\306\307\"I\210\310\303\304\"I\210\311\306\307\"I\210\207" [make-string 4 0 logand 255 1 lsh -8 2 3] 9 (#$ . 7539)])
#@12
(fn STR)
(defalias 'md4-unpack-int16 #[257 "\211G\300=\203 \301\302H\303\"\304H\\\207\305\306\"\207" [2 lsh 1 8 0 error "%s is not 2 bytes long"] 4 (#$ . 7900)])
#@12
(fn STR)
(defalias 'md4-unpack-int32 #[257 "\211G\300=\203 \301\302H\303\"\304H\\\301\305H\303\"\306H\\B\207\307\310\"\207" [4 lsh 3 8 2 1 0 error "%s is not 4 bytes long"] 5 (#$ . 8074)])
(provide 'md4)
|