anchor.diff:          (keys-start 4)
           (grand-rounds (grand-rounds context))
           (data (make-array 4 :element-type '(unsigned-byte 32))))
  +    (declare (type (simple-array (unsigned-byte 32) (*)) round-keys data)
  +             (type fixnum keys-start grand-rounds)
  +             (dynamic-extent data))
       (dotimes (i 4)
         (setf (aref data i) (logxor (ub32ref/be plaintext (+ plaintext-start (* 4 i)))
                                     (aref round-keys i))))
  
positive.code:                                   0 4 4 12 12 0 0 8 8 4 4 8 8 0 0 12 12)))
  
  (defun camellia-feistel (data data-start keys keys-start key-offset)
    (declare (type (simple-array (unsigned-byte 32) (*)) data keys))
    (macrolet ((sbox1 (n)
                 `(aref +camellia-sbox1+ (logand ,n 255)))
               (sbox2 (n)
  
negative.code:          (grand-rounds (grand-rounds context))
           (keys-start (if (= 3 grand-rounds) 48 64))
           (data (make-array 4 :element-type '(unsigned-byte 32))))
      (declare (type (simple-array (unsigned-byte 32) (*)) round-keys data)
               (type fixnum keys-start grand-rounds)
               (dynamic-extent data))
      (dotimes (i 4)
        (setf (aref data i) (logxor (ub32ref/be ciphertext (+ ciphertext-start (* 4 i)))
                                    (aref round-keys (+ keys-start i)))))
  