Function: md4-make-step
md4-make-step is a macro defined in md4.el.gz.
Signature
(md4-make-step NAME FUNC)
Source Code
;; Defined in /usr/src/emacs/lisp/md4.el.gz
(defmacro md4-make-step (name func)
`(defun ,name (a b c d xk s ac)
(let*
((h1 (+ (car a) (,func (car b) (car c) (car d)) (car xk) (car ac)))
(l1 (+ (cdr a) (,func (cdr b) (cdr c) (cdr d)) (cdr xk) (cdr ac)))
(h2 (logand 65535 (+ h1 (ash l1 -16))))
(l2 (logand 65535 l1))
;; cyclic shift of 32 bits integer
(h3 (logand 65535 (if (> s 15)
(+ (ash h2 (- s 32)) (ash l2 (- s 16)))
(+ (ash h2 s) (ash l2 (- s 16))))))
(l3 (logand 65535 (if (> s 15)
(+ (ash l2 (- s 32)) (ash h2 (- s 16)))
(+ (ash l2 s) (ash h2 (- s 16)))))))
(cons h3 l3))))