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))))