# 23 "serpent.c" # 1 "/usr/include/sys/types.h" 1 3 # 26 "/usr/include/sys/types.h" 3 # 1 "/usr/include/features.h" 1 3 # 283 "/usr/include/features.h" 3 # 1 "/usr/include/sys/cdefs.h" 1 3 # 284 "/usr/include/features.h" 2 3 # 312 "/usr/include/features.h" 3 # 1 "/usr/include/gnu/stubs.h" 1 3 # 313 "/usr/include/features.h" 2 3 # 27 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/bits/types.h" 1 3 # 26 "/usr/include/bits/types.h" 3 # 1 "/usr/include/features.h" 1 3 # 27 "/usr/include/bits/types.h" 2 3 # 1 "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h" 1 3 # 199 "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h" 3 typedef unsigned int size_t; # 30 "/usr/include/bits/types.h" 2 3 typedef unsigned char __u_char; typedef unsigned short __u_short; typedef unsigned int __u_int; typedef unsigned long __u_long; __extension__ typedef unsigned long long int __u_quad_t; __extension__ typedef long long int __quad_t; # 49 "/usr/include/bits/types.h" 3 typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; typedef __quad_t *__qaddr_t; typedef __u_quad_t __dev_t; typedef __u_int __uid_t; typedef __u_int __gid_t; typedef __u_long __ino_t; typedef __u_int __mode_t; typedef __u_int __nlink_t; typedef long int __off_t; typedef __quad_t __loff_t; typedef int __pid_t; typedef int __ssize_t; typedef __u_long __rlim_t; typedef __u_quad_t __rlim64_t; typedef __u_int __id_t; typedef struct { int __val[2]; } __fsid_t; typedef int __daddr_t; typedef char *__caddr_t; typedef long int __time_t; typedef unsigned int __useconds_t; typedef long int __suseconds_t; typedef long int __swblk_t; typedef long int __clock_t; typedef int __clockid_t; typedef int __timer_t; typedef int __key_t; typedef unsigned short int __ipc_pid_t; typedef long int __blksize_t; typedef long int __blkcnt_t; typedef __quad_t __blkcnt64_t; typedef __u_long __fsblkcnt_t; typedef __u_quad_t __fsblkcnt64_t; typedef __u_long __fsfilcnt_t; typedef __u_quad_t __fsfilcnt64_t; typedef __u_quad_t __ino64_t; typedef __loff_t __off64_t; typedef long int __t_scalar_t; typedef unsigned long int __t_uscalar_t; typedef int __intptr_t; typedef unsigned int __socklen_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 # 23 "/usr/include/bits/pthreadtypes.h" 3 # 1 "/usr/include/bits/sched.h" 1 3 # 68 "/usr/include/bits/sched.h" 3 struct __sched_param { int __sched_priority; }; # 24 "/usr/include/bits/pthreadtypes.h" 2 3 struct _pthread_fastlock { long int __status; int __spinlock; }; typedef struct _pthread_descr_struct *_pthread_descr; typedef struct __pthread_attr_s { int __detachstate; int __schedpolicy; struct __sched_param __schedparam; int __inheritsched; int __scope; size_t __guardsize; int __stackaddr_set; void *__stackaddr; size_t __stacksize; } pthread_attr_t; typedef struct { struct _pthread_fastlock __c_lock; _pthread_descr __c_waiting; } pthread_cond_t; typedef struct { int __dummy; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef struct { int __m_reserved; int __m_count; _pthread_descr __m_owner; int __m_kind; struct _pthread_fastlock __m_lock; } pthread_mutex_t; typedef struct { int __mutexkind; } pthread_mutexattr_t; typedef int pthread_once_t; # 140 "/usr/include/bits/pthreadtypes.h" 3 typedef unsigned long int pthread_t; # 144 "/usr/include/bits/types.h" 2 3 # 31 "/usr/include/sys/types.h" 2 3 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; # 61 "/usr/include/sys/types.h" 3 typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; # 99 "/usr/include/sys/types.h" 3 typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 132 "/usr/include/sys/types.h" 3 # 1 "/usr/include/time.h" 1 3 # 67 "/usr/include/time.h" 3 # 1 "/usr/include/bits/types.h" 1 3 # 68 "/usr/include/time.h" 2 3 typedef __time_t time_t; # 79 "/usr/include/time.h" 3 # 1 "/usr/include/bits/types.h" 1 3 # 80 "/usr/include/time.h" 2 3 typedef __clockid_t clockid_t; # 91 "/usr/include/time.h" 3 # 1 "/usr/include/bits/types.h" 1 3 # 92 "/usr/include/time.h" 2 3 typedef __timer_t timer_t; # 133 "/usr/include/sys/types.h" 2 3 # 146 "/usr/include/sys/types.h" 3 # 1 "/usr/lib/gcc-lib/i386-redhat-linux/2.96/include/stddef.h" 1 3 # 147 "/usr/include/sys/types.h" 2 3 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 190 "/usr/include/sys/types.h" 3 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 212 "/usr/include/sys/types.h" 3 # 1 "/usr/include/endian.h" 1 3 # 22 "/usr/include/endian.h" 3 # 1 "/usr/include/features.h" 1 3 # 23 "/usr/include/endian.h" 2 3 # 37 "/usr/include/endian.h" 3 # 1 "/usr/include/bits/endian.h" 1 3 # 38 "/usr/include/endian.h" 2 3 # 213 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/select.h" 1 3 # 25 "/usr/include/sys/select.h" 3 # 1 "/usr/include/features.h" 1 3 # 26 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/types.h" 1 3 # 29 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/select.h" 1 3 # 32 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/sigset.h" 1 3 # 23 "/usr/include/bits/sigset.h" 3 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/sys/select.h" 2 3 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 # 106 "/usr/include/time.h" 3 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 45 "/usr/include/sys/select.h" 2 3 # 1 "/usr/include/bits/time.h" 1 3 # 63 "/usr/include/bits/time.h" 3 # 1 "/usr/include/bits/types.h" 1 3 # 64 "/usr/include/bits/time.h" 2 3 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/sys/select.h" 2 3 typedef __suseconds_t suseconds_t; typedef long int __fd_mask; typedef struct { __fd_mask __fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 102 "/usr/include/sys/select.h" 3 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout) ; # 216 "/usr/include/sys/types.h" 2 3 # 1 "/usr/include/sys/sysmacros.h" 1 3 # 219 "/usr/include/sys/types.h" 2 3 # 230 "/usr/include/sys/types.h" 3 typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 24 "serpent.c" 2 # 1 "/usr/include/asm/byteorder.h" 1 3 # 1 "/usr/include/asm/types.h" 1 3 typedef unsigned short umode_t; typedef __signed__ char __s8; typedef unsigned char __u8; typedef __signed__ short __s16; typedef unsigned short __u16; typedef __signed__ int __s32; typedef unsigned int __u32; typedef __signed__ long long __s64; typedef unsigned long long __u64; # 5 "/usr/include/asm/byteorder.h" 2 3 # 13 "/usr/include/asm/byteorder.h" 3 static __inline__ __const__ __u32 ___arch__swab32(__u32 x) { __asm__("xchgb %b0,%h0\n\t" "rorl $16,%0\n\t" "xchgb %b0,%h0" :"=q" (x) : "0" (x)); return x; } static __inline__ __const__ __u16 ___arch__swab16(__u16 x) { __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x)); return x; } # 45 "/usr/include/asm/byteorder.h" 3 # 1 "/usr/include/linux/byteorder/little_endian.h" 1 3 # 11 "/usr/include/linux/byteorder/little_endian.h" 3 # 1 "/usr/include/linux/byteorder/swab.h" 1 3 # 131 "/usr/include/linux/byteorder/swab.h" 3 extern __inline__ __const__ __u16 __fswab16(__u16 x) { return ___arch__swab16(x); } extern __inline__ __u16 __swab16p(__u16 *x) { return ___arch__swab16(*(x)); } extern __inline__ void __swab16s(__u16 *addr) { do { *(addr) = ___arch__swab16(*((addr))); } while (0); } extern __inline__ __const__ __u32 __fswab32(__u32 x) { return ___arch__swab32(x); } extern __inline__ __u32 __swab32p(__u32 *x) { return ___arch__swab32(*(x)); } extern __inline__ void __swab32s(__u32 *addr) { do { *(addr) = ___arch__swab32(*((addr))); } while (0); } extern __inline__ __const__ __u64 __fswab64(__u64 x) { __u32 h = x >> 32; __u32 l = x & ((1ULL<<32)-1); return (((__u64)__fswab32(l)) << 32) | ((__u64)(__fswab32(h))); } extern __inline__ __u64 __swab64p(__u64 *x) { return ({ __u64 __tmp = (*(x)) ; ({ __u64 __x = (__tmp); ((__u64)( (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }); }); } extern __inline__ void __swab64s(__u64 *addr) { do { *(addr) = ({ __u64 __tmp = (*((addr))) ; ({ __u64 __x = (__tmp); ((__u64)( (__u64)(((__u64)(__x) & (__u64)0x00000000000000ffULL) << 56) | (__u64)(((__u64)(__x) & (__u64)0x000000000000ff00ULL) << 40) | (__u64)(((__u64)(__x) & (__u64)0x0000000000ff0000ULL) << 24) | (__u64)(((__u64)(__x) & (__u64)0x00000000ff000000ULL) << 8) | (__u64)(((__u64)(__x) & (__u64)0x000000ff00000000ULL) >> 8) | (__u64)(((__u64)(__x) & (__u64)0x0000ff0000000000ULL) >> 24) | (__u64)(((__u64)(__x) & (__u64)0x00ff000000000000ULL) >> 40) | (__u64)(((__u64)(__x) & (__u64)0xff00000000000000ULL) >> 56) )); }); }); } while (0); } # 12 "/usr/include/linux/byteorder/little_endian.h" 2 3 # 66 "/usr/include/linux/byteorder/little_endian.h" 3 # 1 "/usr/include/linux/byteorder/generic.h" 1 3 # 150 "/usr/include/linux/byteorder/generic.h" 3 extern __u32 ntohl(__u32); extern __u32 htonl(__u32); extern unsigned short int ntohs(unsigned short int); extern unsigned short int htons(unsigned short int); # 67 "/usr/include/linux/byteorder/little_endian.h" 2 3 # 46 "/usr/include/asm/byteorder.h" 2 3 # 25 "serpent.c" 2 # 1 "serpent.h" 1 # 1 "/usr/include/sys/types.h" 1 3 # 7 "serpent.h" 2 struct serpent_context { u_int32_t keyinfo[140]; }; typedef struct serpent_context serpent_context; int serpent_set_key(serpent_context *ctx, const u_int8_t * in_key, int key_len); int serpent_decrypt(serpent_context *ctx, const u_int8_t * in_blk, u_int8_t * out_blk); int serpent_encrypt(serpent_context *ctx, const u_int8_t * in_blk, u_int8_t * out_blk); # 28 "serpent.c" 2 # 442 "serpent.c" int serpent_set_key(serpent_context *cx, const unsigned char *key, int key_len) { const u_int32_t *in_key = (const u_int32_t *)key; u_int32_t *l_key = cx->keyinfo; u_int32_t i,lk,r0,r1,r2,r3,r4; if (key_len != 16 && key_len != 24 && key_len != 32) return -1; key_len *= 8; i = 0; lk = (key_len + 31) / 32; while(i < lk) { l_key[i] = __fswab32((in_key[lk - i - 1])); i++; } if (key_len < 256) { while(i < 8) l_key[i++] = 0; i = key_len / 32; lk = 1 << key_len % 32; l_key[i] &= lk - 1; l_key[i] |= lk; } for(i = 0; i < 132; ++i) { lk = l_key[i] ^ l_key[i + 3] ^ l_key[i + 5] ^ l_key[i + 7] ^ 0x9e3779b9 ^ i; l_key[i + 8] = (lk << 11) | (lk >> 21); } r0 = l_key[0 +8]; r1 = l_key[0 +9]; r2 = l_key[0 +10]; r3 = l_key[0 +11];; r4 = r0 ; r0 = r0 | r3; r3 = r3 ^ r1; r1 = r1 & r4; r4 = r4 ^ r2; r2 = r2 ^ r3; r3 = r3 & r0; r4 = r4 | r1; r3 = r3 ^ r4; r0 = r0 ^ r1; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = r1 | r0; r1 = r1 ^ r2; r0 = r0 ^ r3; r2 = r1; r1 = r1 | r3; r1 = r1 ^ r0;; l_key[0 +8] = r1; l_key[0 +9] = r2; l_key[0 +10] = r3; l_key[0 +11] = r4; r0 = l_key[4 +8]; r1 = l_key[4 +9]; r2 = l_key[4 +10]; r3 = l_key[4 +11];; r4 = r0; r0 = r0 & r2; r0 = r0 ^ r3; r2 = r2 ^ r1; r2 = r2 ^ r0; r3 = r3 | r4; r3 = r3 ^ r1; r4 = r4 ^ r2; r1 = r3; r3 = r3 | r4; r3 = r3 ^ r0; r0 = r0 & r1; r4 = r4 ^ r0; r1 = r1 ^ r3; r1 = r1 ^ r4; r4 = -1 ^ r4;; l_key[4 +8] = r2; l_key[4 +9] = r3; l_key[4 +10] = r1; l_key[4 +11] = r4; r0 = l_key[8 +8]; r1 = l_key[8 +9]; r2 = l_key[8 +10]; r3 = l_key[8 +11];; r1 = -1 ^ r1; r4 = r0; r0 = r0 ^ r1; r4 = r4 | r1; r4 = r4 ^ r3; r3 = r3 & r0; r2 = r2 ^ r4; r3 = r3 ^ r1; r3 = r3 | r2; r0 = r0 ^ r4; r3 = r3 ^ r0; r1 = r1 & r2; r0 = r0 | r1; r1 = r1 ^ r4; r0 = r0 ^ r2; r4 = r4 | r3; r0 = r0 ^ r4; r4 = -1 ^ r4; r1 = r1 ^ r3; r4 = r4 & r2; r1 = -1 ^ r1; r4 = r4 ^ r0; r1 = r1 ^ r4;; l_key[8 +8] = r3; l_key[8 +9] = r1; l_key[8 +10] = r2; l_key[8 +11] = r0; r0 = l_key[12 +8]; r1 = l_key[12 +9]; r2 = l_key[12 +10]; r3 = l_key[12 +11];; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = r0 | r3; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r4 = -1 ^ r4; r4 = r4 | r1; r1 = r1 ^ r3; r1 = r1 ^ r4; r3 = r3 | r0; r1 = r1 ^ r3; r4 = r4 ^ r3;; l_key[12 +8] = r1; l_key[12 +9] = r4; l_key[12 +10] = r2; l_key[12 +11] = r0; r0 = l_key[16 +8]; r1 = l_key[16 +9]; r2 = l_key[16 +10]; r3 = l_key[16 +11];; r4 = r2; r2 = r2 & r1; r2 = r2 ^ r3; r3 = r3 & r1; r4 = r4 ^ r2; r2 = r2 ^ r1; r1 = r1 ^ r0; r0 = r0 | r4; r0 = r0 ^ r2; r3 = r3 ^ r1; r2 = r2 ^ r3; r3 = r3 & r0; r3 = r3 ^ r4; r4 = r4 ^ r2; r2 = r2 & r0; r4 = -1 ^ r4; r2 = r2 ^ r4; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r1;; l_key[16 +8] = r2; l_key[16 +9] = r4; l_key[16 +10] = r3; l_key[16 +11] = r0; r0 = l_key[20 +8]; r1 = l_key[20 +9]; r2 = l_key[20 +10]; r3 = l_key[20 +11];; r2 = -1 ^ r2; r4 = r3; r3 = r3 & r0; r0 = r0 ^ r4; r3 = r3 ^ r2; r2 = r2 | r4; r1 = r1 ^ r3; r2 = r2 ^ r0; r0 = r0 | r1; r2 = r2 ^ r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r4 = r4 ^ r3; r4 = r4 ^ r0; r3 = -1 ^ r3; r2 = r2 & r4; r2 = r2 ^ r3; l_key[20 +8] = r0; l_key[20 +9] = r1; l_key[20 +10] = r4; l_key[20 +11] = r2; r0 = l_key[24 +8]; r1 = l_key[24 +9]; r2 = l_key[24 +10]; r3 = l_key[24 +11];; r0 = r0 ^ r1; r1 = r1 ^ r3; r3 = -1 ^ r3; r4 = r1; r1 = r1 & r0; r2 = r2 ^ r3; r1 = r1 ^ r2; r2 = r2 | r4; r4 = r4 ^ r3; r3 = r3 & r1; r3 = r3 ^ r0; r4 = r4 ^ r1; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 & r3; r2 = -1 ^ r2; r0 = r0 ^ r4; r4 = r4 | r3; r2 = r2 ^ r4;; l_key[24 +8] = r1; l_key[24 +9] = r3; l_key[24 +10] = r0; l_key[24 +11] = r2; r0 = l_key[28 +8]; r1 = l_key[28 +9]; r2 = l_key[28 +10]; r3 = l_key[28 +11];; r1 = r1 ^ r3; r3 = -1 ^ r3; r2 = r2 ^ r3; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r1 = r1 ^ r2; r4 = r4 ^ r3; r0 = r0 ^ r4; r2 = r2 & r4; r2 = r2 ^ r0; r0 = r0 & r1; r3 = r3 ^ r0; r4 = r4 | r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r2 = r2 & r3; r0 = -1 ^ r0; r4 = r4 ^ r2; l_key[28 +8] = r1; l_key[28 +9] = r4; l_key[28 +10] = r0; l_key[28 +11] = r3; r0 = l_key[32 +8]; r1 = l_key[32 +9]; r2 = l_key[32 +10]; r3 = l_key[32 +11];; r4 = r0 ; r0 = r0 | r3; r3 = r3 ^ r1; r1 = r1 & r4; r4 = r4 ^ r2; r2 = r2 ^ r3; r3 = r3 & r0; r4 = r4 | r1; r3 = r3 ^ r4; r0 = r0 ^ r1; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = r1 | r0; r1 = r1 ^ r2; r0 = r0 ^ r3; r2 = r1; r1 = r1 | r3; r1 = r1 ^ r0;; l_key[32 +8] = r1; l_key[32 +9] = r2; l_key[32 +10] = r3; l_key[32 +11] = r4; r0 = l_key[36 +8]; r1 = l_key[36 +9]; r2 = l_key[36 +10]; r3 = l_key[36 +11];; r4 = r0; r0 = r0 & r2; r0 = r0 ^ r3; r2 = r2 ^ r1; r2 = r2 ^ r0; r3 = r3 | r4; r3 = r3 ^ r1; r4 = r4 ^ r2; r1 = r3; r3 = r3 | r4; r3 = r3 ^ r0; r0 = r0 & r1; r4 = r4 ^ r0; r1 = r1 ^ r3; r1 = r1 ^ r4; r4 = -1 ^ r4;; l_key[36 +8] = r2; l_key[36 +9] = r3; l_key[36 +10] = r1; l_key[36 +11] = r4; r0 = l_key[40 +8]; r1 = l_key[40 +9]; r2 = l_key[40 +10]; r3 = l_key[40 +11];; r1 = -1 ^ r1; r4 = r0; r0 = r0 ^ r1; r4 = r4 | r1; r4 = r4 ^ r3; r3 = r3 & r0; r2 = r2 ^ r4; r3 = r3 ^ r1; r3 = r3 | r2; r0 = r0 ^ r4; r3 = r3 ^ r0; r1 = r1 & r2; r0 = r0 | r1; r1 = r1 ^ r4; r0 = r0 ^ r2; r4 = r4 | r3; r0 = r0 ^ r4; r4 = -1 ^ r4; r1 = r1 ^ r3; r4 = r4 & r2; r1 = -1 ^ r1; r4 = r4 ^ r0; r1 = r1 ^ r4;; l_key[40 +8] = r3; l_key[40 +9] = r1; l_key[40 +10] = r2; l_key[40 +11] = r0; r0 = l_key[44 +8]; r1 = l_key[44 +9]; r2 = l_key[44 +10]; r3 = l_key[44 +11];; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = r0 | r3; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r4 = -1 ^ r4; r4 = r4 | r1; r1 = r1 ^ r3; r1 = r1 ^ r4; r3 = r3 | r0; r1 = r1 ^ r3; r4 = r4 ^ r3;; l_key[44 +8] = r1; l_key[44 +9] = r4; l_key[44 +10] = r2; l_key[44 +11] = r0; r0 = l_key[48 +8]; r1 = l_key[48 +9]; r2 = l_key[48 +10]; r3 = l_key[48 +11];; r4 = r2; r2 = r2 & r1; r2 = r2 ^ r3; r3 = r3 & r1; r4 = r4 ^ r2; r2 = r2 ^ r1; r1 = r1 ^ r0; r0 = r0 | r4; r0 = r0 ^ r2; r3 = r3 ^ r1; r2 = r2 ^ r3; r3 = r3 & r0; r3 = r3 ^ r4; r4 = r4 ^ r2; r2 = r2 & r0; r4 = -1 ^ r4; r2 = r2 ^ r4; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r1;; l_key[48 +8] = r2; l_key[48 +9] = r4; l_key[48 +10] = r3; l_key[48 +11] = r0; r0 = l_key[52 +8]; r1 = l_key[52 +9]; r2 = l_key[52 +10]; r3 = l_key[52 +11];; r2 = -1 ^ r2; r4 = r3; r3 = r3 & r0; r0 = r0 ^ r4; r3 = r3 ^ r2; r2 = r2 | r4; r1 = r1 ^ r3; r2 = r2 ^ r0; r0 = r0 | r1; r2 = r2 ^ r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r4 = r4 ^ r3; r4 = r4 ^ r0; r3 = -1 ^ r3; r2 = r2 & r4; r2 = r2 ^ r3; l_key[52 +8] = r0; l_key[52 +9] = r1; l_key[52 +10] = r4; l_key[52 +11] = r2; r0 = l_key[56 +8]; r1 = l_key[56 +9]; r2 = l_key[56 +10]; r3 = l_key[56 +11];; r0 = r0 ^ r1; r1 = r1 ^ r3; r3 = -1 ^ r3; r4 = r1; r1 = r1 & r0; r2 = r2 ^ r3; r1 = r1 ^ r2; r2 = r2 | r4; r4 = r4 ^ r3; r3 = r3 & r1; r3 = r3 ^ r0; r4 = r4 ^ r1; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 & r3; r2 = -1 ^ r2; r0 = r0 ^ r4; r4 = r4 | r3; r2 = r2 ^ r4;; l_key[56 +8] = r1; l_key[56 +9] = r3; l_key[56 +10] = r0; l_key[56 +11] = r2; r0 = l_key[60 +8]; r1 = l_key[60 +9]; r2 = l_key[60 +10]; r3 = l_key[60 +11];; r1 = r1 ^ r3; r3 = -1 ^ r3; r2 = r2 ^ r3; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r1 = r1 ^ r2; r4 = r4 ^ r3; r0 = r0 ^ r4; r2 = r2 & r4; r2 = r2 ^ r0; r0 = r0 & r1; r3 = r3 ^ r0; r4 = r4 | r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r2 = r2 & r3; r0 = -1 ^ r0; r4 = r4 ^ r2; l_key[60 +8] = r1; l_key[60 +9] = r4; l_key[60 +10] = r0; l_key[60 +11] = r3; r0 = l_key[64 +8]; r1 = l_key[64 +9]; r2 = l_key[64 +10]; r3 = l_key[64 +11];; r4 = r0 ; r0 = r0 | r3; r3 = r3 ^ r1; r1 = r1 & r4; r4 = r4 ^ r2; r2 = r2 ^ r3; r3 = r3 & r0; r4 = r4 | r1; r3 = r3 ^ r4; r0 = r0 ^ r1; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = r1 | r0; r1 = r1 ^ r2; r0 = r0 ^ r3; r2 = r1; r1 = r1 | r3; r1 = r1 ^ r0;; l_key[64 +8] = r1; l_key[64 +9] = r2; l_key[64 +10] = r3; l_key[64 +11] = r4; r0 = l_key[68 +8]; r1 = l_key[68 +9]; r2 = l_key[68 +10]; r3 = l_key[68 +11];; r4 = r0; r0 = r0 & r2; r0 = r0 ^ r3; r2 = r2 ^ r1; r2 = r2 ^ r0; r3 = r3 | r4; r3 = r3 ^ r1; r4 = r4 ^ r2; r1 = r3; r3 = r3 | r4; r3 = r3 ^ r0; r0 = r0 & r1; r4 = r4 ^ r0; r1 = r1 ^ r3; r1 = r1 ^ r4; r4 = -1 ^ r4;; l_key[68 +8] = r2; l_key[68 +9] = r3; l_key[68 +10] = r1; l_key[68 +11] = r4; r0 = l_key[72 +8]; r1 = l_key[72 +9]; r2 = l_key[72 +10]; r3 = l_key[72 +11];; r1 = -1 ^ r1; r4 = r0; r0 = r0 ^ r1; r4 = r4 | r1; r4 = r4 ^ r3; r3 = r3 & r0; r2 = r2 ^ r4; r3 = r3 ^ r1; r3 = r3 | r2; r0 = r0 ^ r4; r3 = r3 ^ r0; r1 = r1 & r2; r0 = r0 | r1; r1 = r1 ^ r4; r0 = r0 ^ r2; r4 = r4 | r3; r0 = r0 ^ r4; r4 = -1 ^ r4; r1 = r1 ^ r3; r4 = r4 & r2; r1 = -1 ^ r1; r4 = r4 ^ r0; r1 = r1 ^ r4;; l_key[72 +8] = r3; l_key[72 +9] = r1; l_key[72 +10] = r2; l_key[72 +11] = r0; r0 = l_key[76 +8]; r1 = l_key[76 +9]; r2 = l_key[76 +10]; r3 = l_key[76 +11];; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = r0 | r3; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r4 = -1 ^ r4; r4 = r4 | r1; r1 = r1 ^ r3; r1 = r1 ^ r4; r3 = r3 | r0; r1 = r1 ^ r3; r4 = r4 ^ r3;; l_key[76 +8] = r1; l_key[76 +9] = r4; l_key[76 +10] = r2; l_key[76 +11] = r0; r0 = l_key[80 +8]; r1 = l_key[80 +9]; r2 = l_key[80 +10]; r3 = l_key[80 +11];; r4 = r2; r2 = r2 & r1; r2 = r2 ^ r3; r3 = r3 & r1; r4 = r4 ^ r2; r2 = r2 ^ r1; r1 = r1 ^ r0; r0 = r0 | r4; r0 = r0 ^ r2; r3 = r3 ^ r1; r2 = r2 ^ r3; r3 = r3 & r0; r3 = r3 ^ r4; r4 = r4 ^ r2; r2 = r2 & r0; r4 = -1 ^ r4; r2 = r2 ^ r4; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r1;; l_key[80 +8] = r2; l_key[80 +9] = r4; l_key[80 +10] = r3; l_key[80 +11] = r0; r0 = l_key[84 +8]; r1 = l_key[84 +9]; r2 = l_key[84 +10]; r3 = l_key[84 +11];; r2 = -1 ^ r2; r4 = r3; r3 = r3 & r0; r0 = r0 ^ r4; r3 = r3 ^ r2; r2 = r2 | r4; r1 = r1 ^ r3; r2 = r2 ^ r0; r0 = r0 | r1; r2 = r2 ^ r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r4 = r4 ^ r3; r4 = r4 ^ r0; r3 = -1 ^ r3; r2 = r2 & r4; r2 = r2 ^ r3; l_key[84 +8] = r0; l_key[84 +9] = r1; l_key[84 +10] = r4; l_key[84 +11] = r2; r0 = l_key[88 +8]; r1 = l_key[88 +9]; r2 = l_key[88 +10]; r3 = l_key[88 +11];; r0 = r0 ^ r1; r1 = r1 ^ r3; r3 = -1 ^ r3; r4 = r1; r1 = r1 & r0; r2 = r2 ^ r3; r1 = r1 ^ r2; r2 = r2 | r4; r4 = r4 ^ r3; r3 = r3 & r1; r3 = r3 ^ r0; r4 = r4 ^ r1; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 & r3; r2 = -1 ^ r2; r0 = r0 ^ r4; r4 = r4 | r3; r2 = r2 ^ r4;; l_key[88 +8] = r1; l_key[88 +9] = r3; l_key[88 +10] = r0; l_key[88 +11] = r2; r0 = l_key[92 +8]; r1 = l_key[92 +9]; r2 = l_key[92 +10]; r3 = l_key[92 +11];; r1 = r1 ^ r3; r3 = -1 ^ r3; r2 = r2 ^ r3; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r1 = r1 ^ r2; r4 = r4 ^ r3; r0 = r0 ^ r4; r2 = r2 & r4; r2 = r2 ^ r0; r0 = r0 & r1; r3 = r3 ^ r0; r4 = r4 | r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r2 = r2 & r3; r0 = -1 ^ r0; r4 = r4 ^ r2; l_key[92 +8] = r1; l_key[92 +9] = r4; l_key[92 +10] = r0; l_key[92 +11] = r3; r0 = l_key[96 +8]; r1 = l_key[96 +9]; r2 = l_key[96 +10]; r3 = l_key[96 +11];; r4 = r0 ; r0 = r0 | r3; r3 = r3 ^ r1; r1 = r1 & r4; r4 = r4 ^ r2; r2 = r2 ^ r3; r3 = r3 & r0; r4 = r4 | r1; r3 = r3 ^ r4; r0 = r0 ^ r1; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = r1 | r0; r1 = r1 ^ r2; r0 = r0 ^ r3; r2 = r1; r1 = r1 | r3; r1 = r1 ^ r0;; l_key[96 +8] = r1; l_key[96 +9] = r2; l_key[96 +10] = r3; l_key[96 +11] = r4; r0 = l_key[100 +8]; r1 = l_key[100 +9]; r2 = l_key[100 +10]; r3 = l_key[100 +11];; r4 = r0; r0 = r0 & r2; r0 = r0 ^ r3; r2 = r2 ^ r1; r2 = r2 ^ r0; r3 = r3 | r4; r3 = r3 ^ r1; r4 = r4 ^ r2; r1 = r3; r3 = r3 | r4; r3 = r3 ^ r0; r0 = r0 & r1; r4 = r4 ^ r0; r1 = r1 ^ r3; r1 = r1 ^ r4; r4 = -1 ^ r4;; l_key[100 +8] = r2; l_key[100 +9] = r3; l_key[100 +10] = r1; l_key[100 +11] = r4; r0 = l_key[104 +8]; r1 = l_key[104 +9]; r2 = l_key[104 +10]; r3 = l_key[104 +11];; r1 = -1 ^ r1; r4 = r0; r0 = r0 ^ r1; r4 = r4 | r1; r4 = r4 ^ r3; r3 = r3 & r0; r2 = r2 ^ r4; r3 = r3 ^ r1; r3 = r3 | r2; r0 = r0 ^ r4; r3 = r3 ^ r0; r1 = r1 & r2; r0 = r0 | r1; r1 = r1 ^ r4; r0 = r0 ^ r2; r4 = r4 | r3; r0 = r0 ^ r4; r4 = -1 ^ r4; r1 = r1 ^ r3; r4 = r4 & r2; r1 = -1 ^ r1; r4 = r4 ^ r0; r1 = r1 ^ r4;; l_key[104 +8] = r3; l_key[104 +9] = r1; l_key[104 +10] = r2; l_key[104 +11] = r0; r0 = l_key[108 +8]; r1 = l_key[108 +9]; r2 = l_key[108 +10]; r3 = l_key[108 +11];; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = r0 | r3; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r4 = -1 ^ r4; r4 = r4 | r1; r1 = r1 ^ r3; r1 = r1 ^ r4; r3 = r3 | r0; r1 = r1 ^ r3; r4 = r4 ^ r3;; l_key[108 +8] = r1; l_key[108 +9] = r4; l_key[108 +10] = r2; l_key[108 +11] = r0; r0 = l_key[112 +8]; r1 = l_key[112 +9]; r2 = l_key[112 +10]; r3 = l_key[112 +11];; r4 = r2; r2 = r2 & r1; r2 = r2 ^ r3; r3 = r3 & r1; r4 = r4 ^ r2; r2 = r2 ^ r1; r1 = r1 ^ r0; r0 = r0 | r4; r0 = r0 ^ r2; r3 = r3 ^ r1; r2 = r2 ^ r3; r3 = r3 & r0; r3 = r3 ^ r4; r4 = r4 ^ r2; r2 = r2 & r0; r4 = -1 ^ r4; r2 = r2 ^ r4; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r1;; l_key[112 +8] = r2; l_key[112 +9] = r4; l_key[112 +10] = r3; l_key[112 +11] = r0; r0 = l_key[116 +8]; r1 = l_key[116 +9]; r2 = l_key[116 +10]; r3 = l_key[116 +11];; r2 = -1 ^ r2; r4 = r3; r3 = r3 & r0; r0 = r0 ^ r4; r3 = r3 ^ r2; r2 = r2 | r4; r1 = r1 ^ r3; r2 = r2 ^ r0; r0 = r0 | r1; r2 = r2 ^ r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r4 = r4 ^ r3; r4 = r4 ^ r0; r3 = -1 ^ r3; r2 = r2 & r4; r2 = r2 ^ r3; l_key[116 +8] = r0; l_key[116 +9] = r1; l_key[116 +10] = r4; l_key[116 +11] = r2; r0 = l_key[120 +8]; r1 = l_key[120 +9]; r2 = l_key[120 +10]; r3 = l_key[120 +11];; r0 = r0 ^ r1; r1 = r1 ^ r3; r3 = -1 ^ r3; r4 = r1; r1 = r1 & r0; r2 = r2 ^ r3; r1 = r1 ^ r2; r2 = r2 | r4; r4 = r4 ^ r3; r3 = r3 & r1; r3 = r3 ^ r0; r4 = r4 ^ r1; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 & r3; r2 = -1 ^ r2; r0 = r0 ^ r4; r4 = r4 | r3; r2 = r2 ^ r4;; l_key[120 +8] = r1; l_key[120 +9] = r3; l_key[120 +10] = r0; l_key[120 +11] = r2; r0 = l_key[124 +8]; r1 = l_key[124 +9]; r2 = l_key[124 +10]; r3 = l_key[124 +11];; r1 = r1 ^ r3; r3 = -1 ^ r3; r2 = r2 ^ r3; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r1 = r1 ^ r2; r4 = r4 ^ r3; r0 = r0 ^ r4; r2 = r2 & r4; r2 = r2 ^ r0; r0 = r0 & r1; r3 = r3 ^ r0; r4 = r4 | r1; r4 = r4 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r2 = r2 & r3; r0 = -1 ^ r0; r4 = r4 ^ r2; l_key[124 +8] = r1; l_key[124 +9] = r4; l_key[124 +10] = r0; l_key[124 +11] = r3; r0 = l_key[128 +8]; r1 = l_key[128 +9]; r2 = l_key[128 +10]; r3 = l_key[128 +11];; r4 = r0 ; r0 = r0 | r3; r3 = r3 ^ r1; r1 = r1 & r4; r4 = r4 ^ r2; r2 = r2 ^ r3; r3 = r3 & r0; r4 = r4 | r1; r3 = r3 ^ r4; r0 = r0 ^ r1; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = r1 | r0; r1 = r1 ^ r2; r0 = r0 ^ r3; r2 = r1; r1 = r1 | r3; r1 = r1 ^ r0;; l_key[128 +8] = r1; l_key[128 +9] = r2; l_key[128 +10] = r3; l_key[128 +11] = r4; return 0; }; int serpent_encrypt(serpent_context *cx, const u_int8_t *in, u_int8_t *out) { u_int32_t *l_key = cx->keyinfo; const u_int32_t *in_blk = (const u_int32_t *) in; u_int32_t *out_blk = (u_int32_t *) out; u_int32_t r0,r1,r2,r3,r4; r0 = __fswab32((in_blk[3])); r1 = __fswab32((in_blk[2])); r2 = __fswab32((in_blk[1])); r3 = __fswab32((in_blk[0])); r0 = r0 ^ l_key[0 +8]; r1 = r1 ^ l_key[0 +9]; r2 = r2 ^ l_key[0 +10]; r3 = r3 ^ l_key[0 +11];; r3 = r3 ^ r0; r4 = r1; r1 = r1 & r3; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = r0 | r3; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r4 = -1 ^ r4; r4 = r4 | r1; r1 = r1 ^ r3; r1 = r1 ^ r4; r3 = r3 | r0; r1 = r1 ^ r3; r4 = r4 ^ r3;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r2 = ((r2 << 3) | (r2 >> (32 - 3))); r0 = r0 ^ r2; r3 = r1 << 3; r4 = r4 ^ r1; r0 = r0 ^ r3; r4 = r4 ^ r2; r0 = ((r0 << 7) | (r0 >> (32 - 7))); r4 = ((r4 << 1) | (r4 >> (32 - 1))); r2 = r2 ^ r0; r3 = r4 << 7; r1 = r1 ^ r4; r2 = r2 ^ r3; r1 = r1 ^ r0; r2 = ((r2 << 22) | (r2 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[4 +8]; r4 = r4 ^ l_key[4 +9]; r2 = r2 ^ l_key[4 +10]; r0 = r0 ^ l_key[4 +11];; r4 = -1 ^ r4; r3 = r1; r1 = r1 ^ r4; r3 = r3 | r4; r3 = r3 ^ r0; r0 = r0 & r1; r2 = r2 ^ r3; r0 = r0 ^ r4; r0 = r0 | r2; r1 = r1 ^ r3; r0 = r0 ^ r1; r4 = r4 & r2; r1 = r1 | r4; r4 = r4 ^ r3; r1 = r1 ^ r2; r3 = r3 | r0; r1 = r1 ^ r3; r3 = -1 ^ r3; r4 = r4 ^ r0; r3 = r3 & r2; r4 = -1 ^ r4; r3 = r3 ^ r1; r4 = r4 ^ r3;; r0 = ((r0 << 13) | (r0 >> (32 - 13))); r2 = ((r2 << 3) | (r2 >> (32 - 3))); r1 = r1 ^ r2; r3 = r0 << 3; r4 = r4 ^ r0; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r4 = ((r4 << 1) | (r4 >> (32 - 1))); r2 = r2 ^ r1; r3 = r4 << 7; r0 = r0 ^ r4; r2 = r2 ^ r3; r0 = r0 ^ r1; r2 = ((r2 << 22) | (r2 >> (32 - 22))); r0 = ((r0 << 5) | (r0 >> (32 - 5)));; r0 = r0 ^ l_key[8 +8]; r4 = r4 ^ l_key[8 +9]; r2 = r2 ^ l_key[8 +10]; r1 = r1 ^ l_key[8 +11];; r3 = r0; r0 = r0 & r2; r0 = r0 ^ r1; r2 = r2 ^ r4; r2 = r2 ^ r0; r1 = r1 | r3; r1 = r1 ^ r4; r3 = r3 ^ r2; r4 = r1; r1 = r1 | r3; r1 = r1 ^ r0; r0 = r0 & r4; r3 = r3 ^ r0; r4 = r4 ^ r1; r4 = r4 ^ r3; r3 = -1 ^ r3;; r2 = ((r2 << 13) | (r2 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r3 = r3 ^ r4; r0 = r2 << 3; r1 = r1 ^ r2; r3 = r3 ^ r0; r1 = r1 ^ r4; r3 = ((r3 << 7) | (r3 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r4 = r4 ^ r3; r0 = r1 << 7; r2 = r2 ^ r1; r4 = r4 ^ r0; r2 = r2 ^ r3; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r2 = ((r2 << 5) | (r2 >> (32 - 5)));; r2 = r2 ^ l_key[12 +8]; r1 = r1 ^ l_key[12 +9]; r4 = r4 ^ l_key[12 +10]; r3 = r3 ^ l_key[12 +11];; r0 = r2 ; r2 = r2 | r3; r3 = r3 ^ r1; r1 = r1 & r0; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 & r2; r0 = r0 | r1; r3 = r3 ^ r0; r2 = r2 ^ r1; r0 = r0 & r2; r1 = r1 ^ r3; r0 = r0 ^ r4; r1 = r1 | r2; r1 = r1 ^ r4; r2 = r2 ^ r3; r4 = r1; r1 = r1 | r3; r1 = r1 ^ r2;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r0 = r0 ^ r3; r2 = r1 << 3; r4 = r4 ^ r1; r0 = r0 ^ r2; r4 = r4 ^ r3; r0 = ((r0 << 7) | (r0 >> (32 - 7))); r4 = ((r4 << 1) | (r4 >> (32 - 1))); r3 = r3 ^ r0; r2 = r4 << 7; r1 = r1 ^ r4; r3 = r3 ^ r2; r1 = r1 ^ r0; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[16 +8]; r4 = r4 ^ l_key[16 +9]; r3 = r3 ^ l_key[16 +10]; r0 = r0 ^ l_key[16 +11];; r4 = r4 ^ r0; r0 = -1 ^ r0; r3 = r3 ^ r0; r0 = r0 ^ r1; r2 = r4; r4 = r4 & r0; r4 = r4 ^ r3; r2 = r2 ^ r0; r1 = r1 ^ r2; r3 = r3 & r2; r3 = r3 ^ r1; r1 = r1 & r4; r0 = r0 ^ r1; r2 = r2 | r4; r2 = r2 ^ r1; r1 = r1 | r0; r1 = r1 ^ r3; r3 = r3 & r0; r1 = -1 ^ r1; r2 = r2 ^ r3; r4 = ((r4 << 13) | (r4 >> (32 - 13))); r1 = ((r1 << 3) | (r1 >> (32 - 3))); r0 = r0 ^ r1; r3 = r4 << 3; r2 = r2 ^ r4; r0 = r0 ^ r3; r2 = r2 ^ r1; r0 = ((r0 << 7) | (r0 >> (32 - 7))); r2 = ((r2 << 1) | (r2 >> (32 - 1))); r1 = r1 ^ r0; r3 = r2 << 7; r4 = r4 ^ r2; r1 = r1 ^ r3; r4 = r4 ^ r0; r1 = ((r1 << 22) | (r1 >> (32 - 22))); r4 = ((r4 << 5) | (r4 >> (32 - 5)));; r4 = r4 ^ l_key[20 +8]; r2 = r2 ^ l_key[20 +9]; r1 = r1 ^ l_key[20 +10]; r0 = r0 ^ l_key[20 +11];; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = -1 ^ r0; r3 = r2; r2 = r2 & r4; r1 = r1 ^ r0; r2 = r2 ^ r1; r1 = r1 | r3; r3 = r3 ^ r0; r0 = r0 & r2; r0 = r0 ^ r4; r3 = r3 ^ r2; r3 = r3 ^ r1; r1 = r1 ^ r4; r4 = r4 & r0; r1 = -1 ^ r1; r4 = r4 ^ r3; r3 = r3 | r0; r1 = r1 ^ r3;; r2 = ((r2 << 13) | (r2 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r1 = r1 ^ r4; r3 = r2 << 3; r0 = r0 ^ r2; r1 = r1 ^ r3; r0 = r0 ^ r4; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r0 = ((r0 << 1) | (r0 >> (32 - 1))); r4 = r4 ^ r1; r3 = r0 << 7; r2 = r2 ^ r0; r4 = r4 ^ r3; r2 = r2 ^ r1; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r2 = ((r2 << 5) | (r2 >> (32 - 5)));; r2 = r2 ^ l_key[24 +8]; r0 = r0 ^ l_key[24 +9]; r4 = r4 ^ l_key[24 +10]; r1 = r1 ^ l_key[24 +11];; r4 = -1 ^ r4; r3 = r1; r1 = r1 & r2; r2 = r2 ^ r3; r1 = r1 ^ r4; r4 = r4 | r3; r0 = r0 ^ r1; r4 = r4 ^ r2; r2 = r2 | r0; r4 = r4 ^ r0; r3 = r3 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r3 = r3 ^ r1; r3 = r3 ^ r2; r1 = -1 ^ r1; r4 = r4 & r3; r4 = r4 ^ r1; r2 = ((r2 << 13) | (r2 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r4 = r4 ^ r3; r1 = r2 << 3; r0 = r0 ^ r2; r4 = r4 ^ r1; r0 = r0 ^ r3; r4 = ((r4 << 7) | (r4 >> (32 - 7))); r0 = ((r0 << 1) | (r0 >> (32 - 1))); r3 = r3 ^ r4; r1 = r0 << 7; r2 = r2 ^ r0; r3 = r3 ^ r1; r2 = r2 ^ r4; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r2 = ((r2 << 5) | (r2 >> (32 - 5)));; r2 = r2 ^ l_key[28 +8]; r0 = r0 ^ l_key[28 +9]; r3 = r3 ^ l_key[28 +10]; r4 = r4 ^ l_key[28 +11];; r1 = r3; r3 = r3 & r0; r3 = r3 ^ r4; r4 = r4 & r0; r1 = r1 ^ r3; r3 = r3 ^ r0; r0 = r0 ^ r2; r2 = r2 | r1; r2 = r2 ^ r3; r4 = r4 ^ r0; r3 = r3 ^ r4; r4 = r4 & r2; r4 = r4 ^ r1; r1 = r1 ^ r3; r3 = r3 & r2; r1 = -1 ^ r1; r3 = r3 ^ r1; r1 = r1 & r2; r0 = r0 ^ r4; r1 = r1 ^ r0;; r3 = ((r3 << 13) | (r3 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r2 = r2 ^ r4; r0 = r3 << 3; r1 = r1 ^ r3; r2 = r2 ^ r0; r1 = r1 ^ r4; r2 = ((r2 << 7) | (r2 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r4 = r4 ^ r2; r0 = r1 << 7; r3 = r3 ^ r1; r4 = r4 ^ r0; r3 = r3 ^ r2; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r3 = ((r3 << 5) | (r3 >> (32 - 5)));; r3 = r3 ^ l_key[32 +8]; r1 = r1 ^ l_key[32 +9]; r4 = r4 ^ l_key[32 +10]; r2 = r2 ^ l_key[32 +11];; r2 = r2 ^ r3; r0 = r1; r1 = r1 & r2; r0 = r0 ^ r4; r1 = r1 ^ r3; r3 = r3 | r2; r3 = r3 ^ r0; r0 = r0 ^ r2; r2 = r2 ^ r4; r4 = r4 | r1; r4 = r4 ^ r0; r0 = -1 ^ r0; r0 = r0 | r1; r1 = r1 ^ r2; r1 = r1 ^ r0; r2 = r2 | r3; r1 = r1 ^ r2; r0 = r0 ^ r2;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r3 = r3 ^ r4; r2 = r1 << 3; r0 = r0 ^ r1; r3 = r3 ^ r2; r0 = r0 ^ r4; r3 = ((r3 << 7) | (r3 >> (32 - 7))); r0 = ((r0 << 1) | (r0 >> (32 - 1))); r4 = r4 ^ r3; r2 = r0 << 7; r1 = r1 ^ r0; r4 = r4 ^ r2; r1 = r1 ^ r3; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[36 +8]; r0 = r0 ^ l_key[36 +9]; r4 = r4 ^ l_key[36 +10]; r3 = r3 ^ l_key[36 +11];; r0 = -1 ^ r0; r2 = r1; r1 = r1 ^ r0; r2 = r2 | r0; r2 = r2 ^ r3; r3 = r3 & r1; r4 = r4 ^ r2; r3 = r3 ^ r0; r3 = r3 | r4; r1 = r1 ^ r2; r3 = r3 ^ r1; r0 = r0 & r4; r1 = r1 | r0; r0 = r0 ^ r2; r1 = r1 ^ r4; r2 = r2 | r3; r1 = r1 ^ r2; r2 = -1 ^ r2; r0 = r0 ^ r3; r2 = r2 & r4; r0 = -1 ^ r0; r2 = r2 ^ r1; r0 = r0 ^ r2;; r3 = ((r3 << 13) | (r3 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r1 = r1 ^ r4; r2 = r3 << 3; r0 = r0 ^ r3; r1 = r1 ^ r2; r0 = r0 ^ r4; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r0 = ((r0 << 1) | (r0 >> (32 - 1))); r4 = r4 ^ r1; r2 = r0 << 7; r3 = r3 ^ r0; r4 = r4 ^ r2; r3 = r3 ^ r1; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r3 = ((r3 << 5) | (r3 >> (32 - 5)));; r3 = r3 ^ l_key[40 +8]; r0 = r0 ^ l_key[40 +9]; r4 = r4 ^ l_key[40 +10]; r1 = r1 ^ l_key[40 +11];; r2 = r3; r3 = r3 & r4; r3 = r3 ^ r1; r4 = r4 ^ r0; r4 = r4 ^ r3; r1 = r1 | r2; r1 = r1 ^ r0; r2 = r2 ^ r4; r0 = r1; r1 = r1 | r2; r1 = r1 ^ r3; r3 = r3 & r0; r2 = r2 ^ r3; r0 = r0 ^ r1; r0 = r0 ^ r2; r2 = -1 ^ r2;; r4 = ((r4 << 13) | (r4 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r2 = r2 ^ r0; r3 = r4 << 3; r1 = r1 ^ r4; r2 = r2 ^ r3; r1 = r1 ^ r0; r2 = ((r2 << 7) | (r2 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r0 = r0 ^ r2; r3 = r1 << 7; r4 = r4 ^ r1; r0 = r0 ^ r3; r4 = r4 ^ r2; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r4 = ((r4 << 5) | (r4 >> (32 - 5)));; r4 = r4 ^ l_key[44 +8]; r1 = r1 ^ l_key[44 +9]; r0 = r0 ^ l_key[44 +10]; r2 = r2 ^ l_key[44 +11];; r3 = r4 ; r4 = r4 | r2; r2 = r2 ^ r1; r1 = r1 & r3; r3 = r3 ^ r0; r0 = r0 ^ r2; r2 = r2 & r4; r3 = r3 | r1; r2 = r2 ^ r3; r4 = r4 ^ r1; r3 = r3 & r4; r1 = r1 ^ r2; r3 = r3 ^ r0; r1 = r1 | r4; r1 = r1 ^ r0; r4 = r4 ^ r2; r0 = r1; r1 = r1 | r2; r1 = r1 ^ r4;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r2 = ((r2 << 3) | (r2 >> (32 - 3))); r3 = r3 ^ r2; r4 = r1 << 3; r0 = r0 ^ r1; r3 = r3 ^ r4; r0 = r0 ^ r2; r3 = ((r3 << 7) | (r3 >> (32 - 7))); r0 = ((r0 << 1) | (r0 >> (32 - 1))); r2 = r2 ^ r3; r4 = r0 << 7; r1 = r1 ^ r0; r2 = r2 ^ r4; r1 = r1 ^ r3; r2 = ((r2 << 22) | (r2 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[48 +8]; r0 = r0 ^ l_key[48 +9]; r2 = r2 ^ l_key[48 +10]; r3 = r3 ^ l_key[48 +11];; r0 = r0 ^ r3; r3 = -1 ^ r3; r2 = r2 ^ r3; r3 = r3 ^ r1; r4 = r0; r0 = r0 & r3; r0 = r0 ^ r2; r4 = r4 ^ r3; r1 = r1 ^ r4; r2 = r2 & r4; r2 = r2 ^ r1; r1 = r1 & r0; r3 = r3 ^ r1; r4 = r4 | r0; r4 = r4 ^ r1; r1 = r1 | r3; r1 = r1 ^ r2; r2 = r2 & r3; r1 = -1 ^ r1; r4 = r4 ^ r2; r0 = ((r0 << 13) | (r0 >> (32 - 13))); r1 = ((r1 << 3) | (r1 >> (32 - 3))); r3 = r3 ^ r1; r2 = r0 << 3; r4 = r4 ^ r0; r3 = r3 ^ r2; r4 = r4 ^ r1; r3 = ((r3 << 7) | (r3 >> (32 - 7))); r4 = ((r4 << 1) | (r4 >> (32 - 1))); r1 = r1 ^ r3; r2 = r4 << 7; r0 = r0 ^ r4; r1 = r1 ^ r2; r0 = r0 ^ r3; r1 = ((r1 << 22) | (r1 >> (32 - 22))); r0 = ((r0 << 5) | (r0 >> (32 - 5)));; r0 = r0 ^ l_key[52 +8]; r4 = r4 ^ l_key[52 +9]; r1 = r1 ^ l_key[52 +10]; r3 = r3 ^ l_key[52 +11];; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = -1 ^ r3; r2 = r4; r4 = r4 & r0; r1 = r1 ^ r3; r4 = r4 ^ r1; r1 = r1 | r2; r2 = r2 ^ r3; r3 = r3 & r4; r3 = r3 ^ r0; r2 = r2 ^ r4; r2 = r2 ^ r1; r1 = r1 ^ r0; r0 = r0 & r3; r1 = -1 ^ r1; r0 = r0 ^ r2; r2 = r2 | r3; r1 = r1 ^ r2;; r4 = ((r4 << 13) | (r4 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r1 = r1 ^ r0; r2 = r4 << 3; r3 = r3 ^ r4; r1 = r1 ^ r2; r3 = r3 ^ r0; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r3 = ((r3 << 1) | (r3 >> (32 - 1))); r0 = r0 ^ r1; r2 = r3 << 7; r4 = r4 ^ r3; r0 = r0 ^ r2; r4 = r4 ^ r1; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r4 = ((r4 << 5) | (r4 >> (32 - 5)));; r4 = r4 ^ l_key[56 +8]; r3 = r3 ^ l_key[56 +9]; r0 = r0 ^ l_key[56 +10]; r1 = r1 ^ l_key[56 +11];; r0 = -1 ^ r0; r2 = r1; r1 = r1 & r4; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = r0 | r2; r3 = r3 ^ r1; r0 = r0 ^ r4; r4 = r4 | r3; r0 = r0 ^ r3; r2 = r2 ^ r4; r4 = r4 | r1; r4 = r4 ^ r0; r2 = r2 ^ r1; r2 = r2 ^ r4; r1 = -1 ^ r1; r0 = r0 & r2; r0 = r0 ^ r1; r4 = ((r4 << 13) | (r4 >> (32 - 13))); r2 = ((r2 << 3) | (r2 >> (32 - 3))); r0 = r0 ^ r2; r1 = r4 << 3; r3 = r3 ^ r4; r0 = r0 ^ r1; r3 = r3 ^ r2; r0 = ((r0 << 7) | (r0 >> (32 - 7))); r3 = ((r3 << 1) | (r3 >> (32 - 1))); r2 = r2 ^ r0; r1 = r3 << 7; r4 = r4 ^ r3; r2 = r2 ^ r1; r4 = r4 ^ r0; r2 = ((r2 << 22) | (r2 >> (32 - 22))); r4 = ((r4 << 5) | (r4 >> (32 - 5)));; r4 = r4 ^ l_key[60 +8]; r3 = r3 ^ l_key[60 +9]; r2 = r2 ^ l_key[60 +10]; r0 = r0 ^ l_key[60 +11];; r1 = r2; r2 = r2 & r3; r2 = r2 ^ r0; r0 = r0 & r3; r1 = r1 ^ r2; r2 = r2 ^ r3; r3 = r3 ^ r4; r4 = r4 | r1; r4 = r4 ^ r2; r0 = r0 ^ r3; r2 = r2 ^ r0; r0 = r0 & r4; r0 = r0 ^ r1; r1 = r1 ^ r2; r2 = r2 & r4; r1 = -1 ^ r1; r2 = r2 ^ r1; r1 = r1 & r4; r3 = r3 ^ r0; r1 = r1 ^ r3;; r2 = ((r2 << 13) | (r2 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r4 = r4 ^ r0; r3 = r2 << 3; r1 = r1 ^ r2; r4 = r4 ^ r3; r1 = r1 ^ r0; r4 = ((r4 << 7) | (r4 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r0 = r0 ^ r4; r3 = r1 << 7; r2 = r2 ^ r1; r0 = r0 ^ r3; r2 = r2 ^ r4; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r2 = ((r2 << 5) | (r2 >> (32 - 5)));; r2 = r2 ^ l_key[64 +8]; r1 = r1 ^ l_key[64 +9]; r0 = r0 ^ l_key[64 +10]; r4 = r4 ^ l_key[64 +11];; r4 = r4 ^ r2; r3 = r1; r1 = r1 & r4; r3 = r3 ^ r0; r1 = r1 ^ r2; r2 = r2 | r4; r2 = r2 ^ r3; r3 = r3 ^ r4; r4 = r4 ^ r0; r0 = r0 | r1; r0 = r0 ^ r3; r3 = -1 ^ r3; r3 = r3 | r1; r1 = r1 ^ r4; r1 = r1 ^ r3; r4 = r4 | r2; r1 = r1 ^ r4; r3 = r3 ^ r4;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r2 = r2 ^ r0; r4 = r1 << 3; r3 = r3 ^ r1; r2 = r2 ^ r4; r3 = r3 ^ r0; r2 = ((r2 << 7) | (r2 >> (32 - 7))); r3 = ((r3 << 1) | (r3 >> (32 - 1))); r0 = r0 ^ r2; r4 = r3 << 7; r1 = r1 ^ r3; r0 = r0 ^ r4; r1 = r1 ^ r2; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[68 +8]; r3 = r3 ^ l_key[68 +9]; r0 = r0 ^ l_key[68 +10]; r2 = r2 ^ l_key[68 +11];; r3 = -1 ^ r3; r4 = r1; r1 = r1 ^ r3; r4 = r4 | r3; r4 = r4 ^ r2; r2 = r2 & r1; r0 = r0 ^ r4; r2 = r2 ^ r3; r2 = r2 | r0; r1 = r1 ^ r4; r2 = r2 ^ r1; r3 = r3 & r0; r1 = r1 | r3; r3 = r3 ^ r4; r1 = r1 ^ r0; r4 = r4 | r2; r1 = r1 ^ r4; r4 = -1 ^ r4; r3 = r3 ^ r2; r4 = r4 & r0; r3 = -1 ^ r3; r4 = r4 ^ r1; r3 = r3 ^ r4;; r2 = ((r2 << 13) | (r2 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r1 = r1 ^ r0; r4 = r2 << 3; r3 = r3 ^ r2; r1 = r1 ^ r4; r3 = r3 ^ r0; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r3 = ((r3 << 1) | (r3 >> (32 - 1))); r0 = r0 ^ r1; r4 = r3 << 7; r2 = r2 ^ r3; r0 = r0 ^ r4; r2 = r2 ^ r1; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r2 = ((r2 << 5) | (r2 >> (32 - 5)));; r2 = r2 ^ l_key[72 +8]; r3 = r3 ^ l_key[72 +9]; r0 = r0 ^ l_key[72 +10]; r1 = r1 ^ l_key[72 +11];; r4 = r2; r2 = r2 & r0; r2 = r2 ^ r1; r0 = r0 ^ r3; r0 = r0 ^ r2; r1 = r1 | r4; r1 = r1 ^ r3; r4 = r4 ^ r0; r3 = r1; r1 = r1 | r4; r1 = r1 ^ r2; r2 = r2 & r3; r4 = r4 ^ r2; r3 = r3 ^ r1; r3 = r3 ^ r4; r4 = -1 ^ r4;; r0 = ((r0 << 13) | (r0 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r4 = r4 ^ r3; r2 = r0 << 3; r1 = r1 ^ r0; r4 = r4 ^ r2; r1 = r1 ^ r3; r4 = ((r4 << 7) | (r4 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r3 = r3 ^ r4; r2 = r1 << 7; r0 = r0 ^ r1; r3 = r3 ^ r2; r0 = r0 ^ r4; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r0 = ((r0 << 5) | (r0 >> (32 - 5)));; r0 = r0 ^ l_key[76 +8]; r1 = r1 ^ l_key[76 +9]; r3 = r3 ^ l_key[76 +10]; r4 = r4 ^ l_key[76 +11];; r2 = r0 ; r0 = r0 | r4; r4 = r4 ^ r1; r1 = r1 & r2; r2 = r2 ^ r3; r3 = r3 ^ r4; r4 = r4 & r0; r2 = r2 | r1; r4 = r4 ^ r2; r0 = r0 ^ r1; r2 = r2 & r0; r1 = r1 ^ r4; r2 = r2 ^ r3; r1 = r1 | r0; r1 = r1 ^ r3; r0 = r0 ^ r4; r3 = r1; r1 = r1 | r4; r1 = r1 ^ r0;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r2 = r2 ^ r4; r0 = r1 << 3; r3 = r3 ^ r1; r2 = r2 ^ r0; r3 = r3 ^ r4; r2 = ((r2 << 7) | (r2 >> (32 - 7))); r3 = ((r3 << 1) | (r3 >> (32 - 1))); r4 = r4 ^ r2; r0 = r3 << 7; r1 = r1 ^ r3; r4 = r4 ^ r0; r1 = r1 ^ r2; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[80 +8]; r3 = r3 ^ l_key[80 +9]; r4 = r4 ^ l_key[80 +10]; r2 = r2 ^ l_key[80 +11];; r3 = r3 ^ r2; r2 = -1 ^ r2; r4 = r4 ^ r2; r2 = r2 ^ r1; r0 = r3; r3 = r3 & r2; r3 = r3 ^ r4; r0 = r0 ^ r2; r1 = r1 ^ r0; r4 = r4 & r0; r4 = r4 ^ r1; r1 = r1 & r3; r2 = r2 ^ r1; r0 = r0 | r3; r0 = r0 ^ r1; r1 = r1 | r2; r1 = r1 ^ r4; r4 = r4 & r2; r1 = -1 ^ r1; r0 = r0 ^ r4; r3 = ((r3 << 13) | (r3 >> (32 - 13))); r1 = ((r1 << 3) | (r1 >> (32 - 3))); r2 = r2 ^ r1; r4 = r3 << 3; r0 = r0 ^ r3; r2 = r2 ^ r4; r0 = r0 ^ r1; r2 = ((r2 << 7) | (r2 >> (32 - 7))); r0 = ((r0 << 1) | (r0 >> (32 - 1))); r1 = r1 ^ r2; r4 = r0 << 7; r3 = r3 ^ r0; r1 = r1 ^ r4; r3 = r3 ^ r2; r1 = ((r1 << 22) | (r1 >> (32 - 22))); r3 = ((r3 << 5) | (r3 >> (32 - 5)));; r3 = r3 ^ l_key[84 +8]; r0 = r0 ^ l_key[84 +9]; r1 = r1 ^ l_key[84 +10]; r2 = r2 ^ l_key[84 +11];; r3 = r3 ^ r0; r0 = r0 ^ r2; r2 = -1 ^ r2; r4 = r0; r0 = r0 & r3; r1 = r1 ^ r2; r0 = r0 ^ r1; r1 = r1 | r4; r4 = r4 ^ r2; r2 = r2 & r0; r2 = r2 ^ r3; r4 = r4 ^ r0; r4 = r4 ^ r1; r1 = r1 ^ r3; r3 = r3 & r2; r1 = -1 ^ r1; r3 = r3 ^ r4; r4 = r4 | r2; r1 = r1 ^ r4;; r0 = ((r0 << 13) | (r0 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r1 = r1 ^ r3; r4 = r0 << 3; r2 = r2 ^ r0; r1 = r1 ^ r4; r2 = r2 ^ r3; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r2 = ((r2 << 1) | (r2 >> (32 - 1))); r3 = r3 ^ r1; r4 = r2 << 7; r0 = r0 ^ r2; r3 = r3 ^ r4; r0 = r0 ^ r1; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r0 = ((r0 << 5) | (r0 >> (32 - 5)));; r0 = r0 ^ l_key[88 +8]; r2 = r2 ^ l_key[88 +9]; r3 = r3 ^ l_key[88 +10]; r1 = r1 ^ l_key[88 +11];; r3 = -1 ^ r3; r4 = r1; r1 = r1 & r0; r0 = r0 ^ r4; r1 = r1 ^ r3; r3 = r3 | r4; r2 = r2 ^ r1; r3 = r3 ^ r0; r0 = r0 | r2; r3 = r3 ^ r2; r4 = r4 ^ r0; r0 = r0 | r1; r0 = r0 ^ r3; r4 = r4 ^ r1; r4 = r4 ^ r0; r1 = -1 ^ r1; r3 = r3 & r4; r3 = r3 ^ r1; r0 = ((r0 << 13) | (r0 >> (32 - 13))); r4 = ((r4 << 3) | (r4 >> (32 - 3))); r3 = r3 ^ r4; r1 = r0 << 3; r2 = r2 ^ r0; r3 = r3 ^ r1; r2 = r2 ^ r4; r3 = ((r3 << 7) | (r3 >> (32 - 7))); r2 = ((r2 << 1) | (r2 >> (32 - 1))); r4 = r4 ^ r3; r1 = r2 << 7; r0 = r0 ^ r2; r4 = r4 ^ r1; r0 = r0 ^ r3; r4 = ((r4 << 22) | (r4 >> (32 - 22))); r0 = ((r0 << 5) | (r0 >> (32 - 5)));; r0 = r0 ^ l_key[92 +8]; r2 = r2 ^ l_key[92 +9]; r4 = r4 ^ l_key[92 +10]; r3 = r3 ^ l_key[92 +11];; r1 = r4; r4 = r4 & r2; r4 = r4 ^ r3; r3 = r3 & r2; r1 = r1 ^ r4; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 | r1; r0 = r0 ^ r4; r3 = r3 ^ r2; r4 = r4 ^ r3; r3 = r3 & r0; r3 = r3 ^ r1; r1 = r1 ^ r4; r4 = r4 & r0; r1 = -1 ^ r1; r4 = r4 ^ r1; r1 = r1 & r0; r2 = r2 ^ r3; r1 = r1 ^ r2;; r4 = ((r4 << 13) | (r4 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r0 = r0 ^ r3; r2 = r4 << 3; r1 = r1 ^ r4; r0 = r0 ^ r2; r1 = r1 ^ r3; r0 = ((r0 << 7) | (r0 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r3 = r3 ^ r0; r2 = r1 << 7; r4 = r4 ^ r1; r3 = r3 ^ r2; r4 = r4 ^ r0; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r4 = ((r4 << 5) | (r4 >> (32 - 5)));; r4 = r4 ^ l_key[96 +8]; r1 = r1 ^ l_key[96 +9]; r3 = r3 ^ l_key[96 +10]; r0 = r0 ^ l_key[96 +11];; r0 = r0 ^ r4; r2 = r1; r1 = r1 & r0; r2 = r2 ^ r3; r1 = r1 ^ r4; r4 = r4 | r0; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 ^ r3; r3 = r3 | r1; r3 = r3 ^ r2; r2 = -1 ^ r2; r2 = r2 | r1; r1 = r1 ^ r0; r1 = r1 ^ r2; r0 = r0 | r4; r1 = r1 ^ r0; r2 = r2 ^ r0;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r4 = r4 ^ r3; r0 = r1 << 3; r2 = r2 ^ r1; r4 = r4 ^ r0; r2 = r2 ^ r3; r4 = ((r4 << 7) | (r4 >> (32 - 7))); r2 = ((r2 << 1) | (r2 >> (32 - 1))); r3 = r3 ^ r4; r0 = r2 << 7; r1 = r1 ^ r2; r3 = r3 ^ r0; r1 = r1 ^ r4; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[100 +8]; r2 = r2 ^ l_key[100 +9]; r3 = r3 ^ l_key[100 +10]; r4 = r4 ^ l_key[100 +11];; r2 = -1 ^ r2; r0 = r1; r1 = r1 ^ r2; r0 = r0 | r2; r0 = r0 ^ r4; r4 = r4 & r1; r3 = r3 ^ r0; r4 = r4 ^ r2; r4 = r4 | r3; r1 = r1 ^ r0; r4 = r4 ^ r1; r2 = r2 & r3; r1 = r1 | r2; r2 = r2 ^ r0; r1 = r1 ^ r3; r0 = r0 | r4; r1 = r1 ^ r0; r0 = -1 ^ r0; r2 = r2 ^ r4; r0 = r0 & r3; r2 = -1 ^ r2; r0 = r0 ^ r1; r2 = r2 ^ r0;; r4 = ((r4 << 13) | (r4 >> (32 - 13))); r3 = ((r3 << 3) | (r3 >> (32 - 3))); r1 = r1 ^ r3; r0 = r4 << 3; r2 = r2 ^ r4; r1 = r1 ^ r0; r2 = r2 ^ r3; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r2 = ((r2 << 1) | (r2 >> (32 - 1))); r3 = r3 ^ r1; r0 = r2 << 7; r4 = r4 ^ r2; r3 = r3 ^ r0; r4 = r4 ^ r1; r3 = ((r3 << 22) | (r3 >> (32 - 22))); r4 = ((r4 << 5) | (r4 >> (32 - 5)));; r4 = r4 ^ l_key[104 +8]; r2 = r2 ^ l_key[104 +9]; r3 = r3 ^ l_key[104 +10]; r1 = r1 ^ l_key[104 +11];; r0 = r4; r4 = r4 & r3; r4 = r4 ^ r1; r3 = r3 ^ r2; r3 = r3 ^ r4; r1 = r1 | r0; r1 = r1 ^ r2; r0 = r0 ^ r3; r2 = r1; r1 = r1 | r0; r1 = r1 ^ r4; r4 = r4 & r2; r0 = r0 ^ r4; r2 = r2 ^ r1; r2 = r2 ^ r0; r0 = -1 ^ r0;; r3 = ((r3 << 13) | (r3 >> (32 - 13))); r2 = ((r2 << 3) | (r2 >> (32 - 3))); r0 = r0 ^ r2; r4 = r3 << 3; r1 = r1 ^ r3; r0 = r0 ^ r4; r1 = r1 ^ r2; r0 = ((r0 << 7) | (r0 >> (32 - 7))); r1 = ((r1 << 1) | (r1 >> (32 - 1))); r2 = r2 ^ r0; r4 = r1 << 7; r3 = r3 ^ r1; r2 = r2 ^ r4; r3 = r3 ^ r0; r2 = ((r2 << 22) | (r2 >> (32 - 22))); r3 = ((r3 << 5) | (r3 >> (32 - 5)));; r3 = r3 ^ l_key[108 +8]; r1 = r1 ^ l_key[108 +9]; r2 = r2 ^ l_key[108 +10]; r0 = r0 ^ l_key[108 +11];; r4 = r3 ; r3 = r3 | r0; r0 = r0 ^ r1; r1 = r1 & r4; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 & r3; r4 = r4 | r1; r0 = r0 ^ r4; r3 = r3 ^ r1; r4 = r4 & r3; r1 = r1 ^ r0; r4 = r4 ^ r2; r1 = r1 | r3; r1 = r1 ^ r2; r3 = r3 ^ r0; r2 = r1; r1 = r1 | r0; r1 = r1 ^ r3;; r1 = ((r1 << 13) | (r1 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r4 = r4 ^ r0; r3 = r1 << 3; r2 = r2 ^ r1; r4 = r4 ^ r3; r2 = r2 ^ r0; r4 = ((r4 << 7) | (r4 >> (32 - 7))); r2 = ((r2 << 1) | (r2 >> (32 - 1))); r0 = r0 ^ r4; r3 = r2 << 7; r1 = r1 ^ r2; r0 = r0 ^ r3; r1 = r1 ^ r4; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r1 = ((r1 << 5) | (r1 >> (32 - 5)));; r1 = r1 ^ l_key[112 +8]; r2 = r2 ^ l_key[112 +9]; r0 = r0 ^ l_key[112 +10]; r4 = r4 ^ l_key[112 +11];; r2 = r2 ^ r4; r4 = -1 ^ r4; r0 = r0 ^ r4; r4 = r4 ^ r1; r3 = r2; r2 = r2 & r4; r2 = r2 ^ r0; r3 = r3 ^ r4; r1 = r1 ^ r3; r0 = r0 & r3; r0 = r0 ^ r1; r1 = r1 & r2; r4 = r4 ^ r1; r3 = r3 | r2; r3 = r3 ^ r1; r1 = r1 | r4; r1 = r1 ^ r0; r0 = r0 & r4; r1 = -1 ^ r1; r3 = r3 ^ r0; r2 = ((r2 << 13) | (r2 >> (32 - 13))); r1 = ((r1 << 3) | (r1 >> (32 - 3))); r4 = r4 ^ r1; r0 = r2 << 3; r3 = r3 ^ r2; r4 = r4 ^ r0; r3 = r3 ^ r1; r4 = ((r4 << 7) | (r4 >> (32 - 7))); r3 = ((r3 << 1) | (r3 >> (32 - 1))); r1 = r1 ^ r4; r0 = r3 << 7; r2 = r2 ^ r3; r1 = r1 ^ r0; r2 = r2 ^ r4; r1 = ((r1 << 22) | (r1 >> (32 - 22))); r2 = ((r2 << 5) | (r2 >> (32 - 5)));; r2 = r2 ^ l_key[116 +8]; r3 = r3 ^ l_key[116 +9]; r1 = r1 ^ l_key[116 +10]; r4 = r4 ^ l_key[116 +11];; r2 = r2 ^ r3; r3 = r3 ^ r4; r4 = -1 ^ r4; r0 = r3; r3 = r3 & r2; r1 = r1 ^ r4; r3 = r3 ^ r1; r1 = r1 | r0; r0 = r0 ^ r4; r4 = r4 & r3; r4 = r4 ^ r2; r0 = r0 ^ r3; r0 = r0 ^ r1; r1 = r1 ^ r2; r2 = r2 & r4; r1 = -1 ^ r1; r2 = r2 ^ r0; r0 = r0 | r4; r1 = r1 ^ r0;; r3 = ((r3 << 13) | (r3 >> (32 - 13))); r2 = ((r2 << 3) | (r2 >> (32 - 3))); r1 = r1 ^ r2; r0 = r3 << 3; r4 = r4 ^ r3; r1 = r1 ^ r0; r4 = r4 ^ r2; r1 = ((r1 << 7) | (r1 >> (32 - 7))); r4 = ((r4 << 1) | (r4 >> (32 - 1))); r2 = r2 ^ r1; r0 = r4 << 7; r3 = r3 ^ r4; r2 = r2 ^ r0; r3 = r3 ^ r1; r2 = ((r2 << 22) | (r2 >> (32 - 22))); r3 = ((r3 << 5) | (r3 >> (32 - 5)));; r3 = r3 ^ l_key[120 +8]; r4 = r4 ^ l_key[120 +9]; r2 = r2 ^ l_key[120 +10]; r1 = r1 ^ l_key[120 +11];; r2 = -1 ^ r2; r0 = r1; r1 = r1 & r3; r3 = r3 ^ r0; r1 = r1 ^ r2; r2 = r2 | r0; r4 = r4 ^ r1; r2 = r2 ^ r3; r3 = r3 | r4; r2 = r2 ^ r4; r0 = r0 ^ r3; r3 = r3 | r1; r3 = r3 ^ r2; r0 = r0 ^ r1; r0 = r0 ^ r3; r1 = -1 ^ r1; r2 = r2 & r0; r2 = r2 ^ r1; r3 = ((r3 << 13) | (r3 >> (32 - 13))); r0 = ((r0 << 3) | (r0 >> (32 - 3))); r2 = r2 ^ r0; r1 = r3 << 3; r4 = r4 ^ r3; r2 = r2 ^ r1; r4 = r4 ^ r0; r2 = ((r2 << 7) | (r2 >> (32 - 7))); r4 = ((r4 << 1) | (r4 >> (32 - 1))); r0 = r0 ^ r2; r1 = r4 << 7; r3 = r3 ^ r4; r0 = r0 ^ r1; r3 = r3 ^ r2; r0 = ((r0 << 22) | (r0 >> (32 - 22))); r3 = ((r3 << 5) | (r3 >> (32 - 5)));; r3 = r3 ^ l_key[124 +8]; r4 = r4 ^ l_key[124 +9]; r0 = r0 ^ l_key[124 +10]; r2 = r2 ^ l_key[124 +11];; r1 = r0; r0 = r0 & r4; r0 = r0 ^ r2; r2 = r2 & r4; r1 = r1 ^ r0; r0 = r0 ^ r4; r4 = r4 ^ r3; r3 = r3 | r1; r3 = r3 ^ r0; r2 = r2 ^ r4; r0 = r0 ^ r2; r2 = r2 & r3; r2 = r2 ^ r1; r1 = r1 ^ r0; r0 = r0 & r3; r1 = -1 ^ r1; r0 = r0 ^ r1; r1 = r1 & r3; r4 = r4 ^ r2; r1 = r1 ^ r4;; r0 = r0 ^ l_key[128 +8]; r1 = r1 ^ l_key[128 +9]; r2 = r2 ^ l_key[128 +10]; r3 = r3 ^ l_key[128 +11];; out_blk[3] = __fswab32((r0)); out_blk[2] = __fswab32((r1)); out_blk[1] = __fswab32((r2)); out_blk[0] = __fswab32((r3)); return 0; }; int serpent_decrypt(serpent_context *cx, const u_int8_t *in, u_int8_t *out) { u_int32_t *l_key = cx->keyinfo; const u_int32_t *in_blk = (const u_int32_t *)in; u_int32_t *out_blk = (u_int32_t *)out; u_int32_t r0,r1,r2,r3,r4; r0 = __fswab32((in_blk[3])); r1 = __fswab32((in_blk[2])); r2 = __fswab32((in_blk[1])); r3 = __fswab32((in_blk[0])); r0 = r0 ^ l_key[128 +8]; r1 = r1 ^ l_key[128 +9]; r2 = r2 ^ l_key[128 +10]; r3 = r3 ^ l_key[128 +11];; r4 = r2; r2 = r2 ^ r0; r0 = r0 & r3; r4 = r4 | r3; r2 = r2 ^ -1; r3 = r3 ^ r1; r1 = r1 | r0; r0 = r0 ^ r2; r2 = r2 & r4; r3 = r3 & r4; r1 = r1 ^ r2; r2 = r2 ^ r0; r0 = r0 | r2; r4 = r4 ^ r1; r0 = r0 ^ r3; r3 = r3 ^ r4; r4 = r4 | r0; r3 = r3 ^ r2; r4 = r4 ^ r2;; r3 = r3 ^ l_key[124 +8]; r0 = r0 ^ l_key[124 +9]; r1 = r1 ^ l_key[124 +10]; r4 = r4 ^ l_key[124 +11];; r1 = ((r1 >> 22) | (r1 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r1 = r1 ^ r4; r2 = r0 << 7; r3 = r3 ^ r0; r1 = r1 ^ r2; r3 = r3 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r0 = ((r0 >> 1) | (r0 << (32 - 1))); r4 = r4 ^ r1; r2 = r3 << 3; r0 = r0 ^ r3; r4 = r4 ^ r2; r0 = r0 ^ r1; r1 = ((r1 >> 3) | (r1 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r3 = r3 ^ r1; r2 = r1; r1 = r1 & r3; r2 = r2 ^ r4; r1 = r1 ^ -1; r4 = r4 ^ r0; r1 = r1 ^ r4; r2 = r2 | r3; r3 = r3 ^ r1; r4 = r4 ^ r2; r2 = r2 ^ r0; r0 = r0 & r4; r0 = r0 ^ r3; r3 = r3 ^ r4; r3 = r3 | r1; r4 = r4 ^ r0; r2 = r2 ^ r3;; r0 = r0 ^ l_key[120 +8]; r1 = r1 ^ l_key[120 +9]; r2 = r2 ^ l_key[120 +10]; r4 = r4 ^ l_key[120 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r0 = ((r0 >> 5) | (r0 << (32 - 5))); r2 = r2 ^ r4; r3 = r1 << 7; r0 = r0 ^ r1; r2 = r2 ^ r3; r0 = r0 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r1 = ((r1 >> 1) | (r1 << (32 - 1))); r4 = r4 ^ r2; r3 = r0 << 3; r1 = r1 ^ r0; r4 = r4 ^ r3; r1 = r1 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r0 = ((r0 >> 13) | (r0 << (32 - 13)));; r1 = r1 ^ -1; r3 = r4; r2 = r2 ^ r1; r4 = r4 | r0; r4 = r4 ^ r2; r2 = r2 | r1; r2 = r2 & r0; r3 = r3 ^ r4; r2 = r2 ^ r3; r3 = r3 | r0; r3 = r3 ^ r1; r1 = r1 & r2; r1 = r1 ^ r4; r3 = r3 ^ r2; r4 = r4 & r3; r3 = r3 ^ r1; r4 = r4 ^ r0; r4 = r4 ^ r3; r3 = r3 ^ -1;; r1 = r1 ^ l_key[116 +8]; r3 = r3 ^ l_key[116 +9]; r4 = r4 ^ l_key[116 +10]; r2 = r2 ^ l_key[116 +11];; r4 = ((r4 >> 22) | (r4 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r4 = r4 ^ r2; r0 = r3 << 7; r1 = r1 ^ r3; r4 = r4 ^ r0; r1 = r1 ^ r2; r2 = ((r2 >> 7) | (r2 << (32 - 7))); r3 = ((r3 >> 1) | (r3 << (32 - 1))); r2 = r2 ^ r4; r0 = r1 << 3; r3 = r3 ^ r1; r2 = r2 ^ r0; r3 = r3 ^ r4; r4 = ((r4 >> 3) | (r4 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r0 = r4; r4 = r4 & r2; r4 = r4 ^ r3; r3 = r3 | r2; r3 = r3 & r1; r0 = r0 ^ r4; r0 = r0 ^ r3; r3 = r3 & r4; r1 = r1 ^ -1; r2 = r2 ^ r0; r3 = r3 ^ r2; r2 = r2 & r1; r2 = r2 ^ r4; r1 = r1 ^ r3; r4 = r4 & r1; r2 = r2 ^ r1; r4 = r4 ^ r0; r4 = r4 | r2; r2 = r2 ^ r1; r4 = r4 ^ r3;; r1 = r1 ^ l_key[112 +8]; r2 = r2 ^ l_key[112 +9]; r4 = r4 ^ l_key[112 +10]; r0 = r0 ^ l_key[112 +11];; r4 = ((r4 >> 22) | (r4 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r4 = r4 ^ r0; r3 = r2 << 7; r1 = r1 ^ r2; r4 = r4 ^ r3; r1 = r1 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r0 = r0 ^ r4; r3 = r1 << 3; r2 = r2 ^ r1; r0 = r0 ^ r3; r2 = r2 ^ r4; r4 = ((r4 >> 3) | (r4 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r3 = r4; r4 = r4 ^ r2; r1 = r1 ^ r4; r3 = r3 & r4; r3 = r3 ^ r1; r1 = r1 & r2; r2 = r2 ^ r0; r0 = r0 | r3; r4 = r4 ^ r0; r1 = r1 ^ r0; r2 = r2 ^ r3; r0 = r0 & r4; r0 = r0 ^ r2; r2 = r2 ^ r1; r2 = r2 | r4; r1 = r1 ^ r0; r2 = r2 ^ r3; r1 = r1 ^ r2;; r4 = r4 ^ l_key[108 +8]; r2 = r2 ^ l_key[108 +9]; r0 = r0 ^ l_key[108 +10]; r1 = r1 ^ l_key[108 +11];; r0 = ((r0 >> 22) | (r0 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r0 = r0 ^ r1; r3 = r2 << 7; r4 = r4 ^ r2; r0 = r0 ^ r3; r4 = r4 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r1 = r1 ^ r0; r3 = r4 << 3; r2 = r2 ^ r4; r1 = r1 ^ r3; r2 = r2 ^ r0; r0 = ((r0 >> 3) | (r0 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r0 = r0 ^ r1; r1 = r1 ^ r4; r3 = r1; r1 = r1 & r0; r1 = r1 ^ r2; r2 = r2 | r0; r2 = r2 ^ r3; r3 = r3 & r1; r0 = r0 ^ r1; r3 = r3 & r4; r3 = r3 ^ r0; r0 = r0 & r2; r0 = r0 | r4; r1 = r1 ^ -1; r0 = r0 ^ r1; r4 = r4 ^ r1; r4 = r4 & r2; r1 = r1 ^ r3; r1 = r1 ^ r4;; r2 = r2 ^ l_key[104 +8]; r3 = r3 ^ l_key[104 +9]; r0 = r0 ^ l_key[104 +10]; r1 = r1 ^ l_key[104 +11];; r0 = ((r0 >> 22) | (r0 << (32 - 22))); r2 = ((r2 >> 5) | (r2 << (32 - 5))); r0 = r0 ^ r1; r4 = r3 << 7; r2 = r2 ^ r3; r0 = r0 ^ r4; r2 = r2 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r3 = ((r3 >> 1) | (r3 << (32 - 1))); r1 = r1 ^ r0; r4 = r2 << 3; r3 = r3 ^ r2; r1 = r1 ^ r4; r3 = r3 ^ r0; r0 = ((r0 >> 3) | (r0 << (32 - 3))); r2 = ((r2 >> 13) | (r2 << (32 - 13)));; r4 = r3; r3 = r3 ^ r1; r1 = r1 & r3; r4 = r4 ^ r0; r1 = r1 ^ r2; r2 = r2 | r3; r0 = r0 ^ r1; r2 = r2 ^ r4; r2 = r2 | r0; r3 = r3 ^ r1; r2 = r2 ^ r3; r3 = r3 | r1; r3 = r3 ^ r2; r4 = r4 ^ -1; r4 = r4 ^ r3; r3 = r3 | r2; r3 = r3 ^ r2; r3 = r3 | r4; r1 = r1 ^ r3;; r4 = r4 ^ l_key[100 +8]; r2 = r2 ^ l_key[100 +9]; r1 = r1 ^ l_key[100 +10]; r0 = r0 ^ l_key[100 +11];; r1 = ((r1 >> 22) | (r1 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r1 = r1 ^ r0; r3 = r2 << 7; r4 = r4 ^ r2; r1 = r1 ^ r3; r4 = r4 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r0 = r0 ^ r1; r3 = r4 << 3; r2 = r2 ^ r4; r0 = r0 ^ r3; r2 = r2 ^ r1; r1 = ((r1 >> 3) | (r1 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r1 = r1 ^ -1; r3 = r2; r2 = r2 | r4; r3 = r3 ^ -1; r2 = r2 ^ r1; r1 = r1 | r3; r2 = r2 ^ r0; r4 = r4 ^ r3; r1 = r1 ^ r4; r4 = r4 & r0; r3 = r3 ^ r4; r4 = r4 | r2; r4 = r4 ^ r1; r0 = r0 ^ r3; r1 = r1 ^ r2; r0 = r0 ^ r4; r0 = r0 ^ r2; r1 = r1 & r0; r3 = r3 ^ r1;; r4 = r4 ^ l_key[96 +8]; r3 = r3 ^ l_key[96 +9]; r2 = r2 ^ l_key[96 +10]; r0 = r0 ^ l_key[96 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r2 = r2 ^ r0; r1 = r3 << 7; r4 = r4 ^ r3; r2 = r2 ^ r1; r4 = r4 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r3 = ((r3 >> 1) | (r3 << (32 - 1))); r0 = r0 ^ r2; r1 = r4 << 3; r3 = r3 ^ r4; r0 = r0 ^ r1; r3 = r3 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r1 = r2; r2 = r2 ^ r4; r4 = r4 & r0; r1 = r1 | r0; r2 = r2 ^ -1; r0 = r0 ^ r3; r3 = r3 | r4; r4 = r4 ^ r2; r2 = r2 & r1; r0 = r0 & r1; r3 = r3 ^ r2; r2 = r2 ^ r4; r4 = r4 | r2; r1 = r1 ^ r3; r4 = r4 ^ r0; r0 = r0 ^ r1; r1 = r1 | r4; r0 = r0 ^ r2; r1 = r1 ^ r2;; r0 = r0 ^ l_key[92 +8]; r4 = r4 ^ l_key[92 +9]; r3 = r3 ^ l_key[92 +10]; r1 = r1 ^ l_key[92 +11];; r3 = ((r3 >> 22) | (r3 << (32 - 22))); r0 = ((r0 >> 5) | (r0 << (32 - 5))); r3 = r3 ^ r1; r2 = r4 << 7; r0 = r0 ^ r4; r3 = r3 ^ r2; r0 = r0 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r4 = ((r4 >> 1) | (r4 << (32 - 1))); r1 = r1 ^ r3; r2 = r0 << 3; r4 = r4 ^ r0; r1 = r1 ^ r2; r4 = r4 ^ r3; r3 = ((r3 >> 3) | (r3 << (32 - 3))); r0 = ((r0 >> 13) | (r0 << (32 - 13)));; r0 = r0 ^ r3; r2 = r3; r3 = r3 & r0; r2 = r2 ^ r1; r3 = r3 ^ -1; r1 = r1 ^ r4; r3 = r3 ^ r1; r2 = r2 | r0; r0 = r0 ^ r3; r1 = r1 ^ r2; r2 = r2 ^ r4; r4 = r4 & r1; r4 = r4 ^ r0; r0 = r0 ^ r1; r0 = r0 | r3; r1 = r1 ^ r4; r2 = r2 ^ r0;; r4 = r4 ^ l_key[88 +8]; r3 = r3 ^ l_key[88 +9]; r2 = r2 ^ l_key[88 +10]; r1 = r1 ^ l_key[88 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r2 = r2 ^ r1; r0 = r3 << 7; r4 = r4 ^ r3; r2 = r2 ^ r0; r4 = r4 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r3 = ((r3 >> 1) | (r3 << (32 - 1))); r1 = r1 ^ r2; r0 = r4 << 3; r3 = r3 ^ r4; r1 = r1 ^ r0; r3 = r3 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r3 = r3 ^ -1; r0 = r1; r2 = r2 ^ r3; r1 = r1 | r4; r1 = r1 ^ r2; r2 = r2 | r3; r2 = r2 & r4; r0 = r0 ^ r1; r2 = r2 ^ r0; r0 = r0 | r4; r0 = r0 ^ r3; r3 = r3 & r2; r3 = r3 ^ r1; r0 = r0 ^ r2; r1 = r1 & r0; r0 = r0 ^ r3; r1 = r1 ^ r4; r1 = r1 ^ r0; r0 = r0 ^ -1;; r3 = r3 ^ l_key[84 +8]; r0 = r0 ^ l_key[84 +9]; r1 = r1 ^ l_key[84 +10]; r2 = r2 ^ l_key[84 +11];; r1 = ((r1 >> 22) | (r1 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r1 = r1 ^ r2; r4 = r0 << 7; r3 = r3 ^ r0; r1 = r1 ^ r4; r3 = r3 ^ r2; r2 = ((r2 >> 7) | (r2 << (32 - 7))); r0 = ((r0 >> 1) | (r0 << (32 - 1))); r2 = r2 ^ r1; r4 = r3 << 3; r0 = r0 ^ r3; r2 = r2 ^ r4; r0 = r0 ^ r1; r1 = ((r1 >> 3) | (r1 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r4 = r1; r1 = r1 & r2; r1 = r1 ^ r0; r0 = r0 | r2; r0 = r0 & r3; r4 = r4 ^ r1; r4 = r4 ^ r0; r0 = r0 & r1; r3 = r3 ^ -1; r2 = r2 ^ r4; r0 = r0 ^ r2; r2 = r2 & r3; r2 = r2 ^ r1; r3 = r3 ^ r0; r1 = r1 & r3; r2 = r2 ^ r3; r1 = r1 ^ r4; r1 = r1 | r2; r2 = r2 ^ r3; r1 = r1 ^ r0;; r3 = r3 ^ l_key[80 +8]; r2 = r2 ^ l_key[80 +9]; r1 = r1 ^ l_key[80 +10]; r4 = r4 ^ l_key[80 +11];; r1 = ((r1 >> 22) | (r1 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r1 = r1 ^ r4; r0 = r2 << 7; r3 = r3 ^ r2; r1 = r1 ^ r0; r3 = r3 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r4 = r4 ^ r1; r0 = r3 << 3; r2 = r2 ^ r3; r4 = r4 ^ r0; r2 = r2 ^ r1; r1 = ((r1 >> 3) | (r1 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r0 = r1; r1 = r1 ^ r2; r3 = r3 ^ r1; r0 = r0 & r1; r0 = r0 ^ r3; r3 = r3 & r2; r2 = r2 ^ r4; r4 = r4 | r0; r1 = r1 ^ r4; r3 = r3 ^ r4; r2 = r2 ^ r0; r4 = r4 & r1; r4 = r4 ^ r2; r2 = r2 ^ r3; r2 = r2 | r1; r3 = r3 ^ r4; r2 = r2 ^ r0; r3 = r3 ^ r2;; r1 = r1 ^ l_key[76 +8]; r2 = r2 ^ l_key[76 +9]; r4 = r4 ^ l_key[76 +10]; r3 = r3 ^ l_key[76 +11];; r4 = ((r4 >> 22) | (r4 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r4 = r4 ^ r3; r0 = r2 << 7; r1 = r1 ^ r2; r4 = r4 ^ r0; r1 = r1 ^ r3; r3 = ((r3 >> 7) | (r3 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r3 = r3 ^ r4; r0 = r1 << 3; r2 = r2 ^ r1; r3 = r3 ^ r0; r2 = r2 ^ r4; r4 = ((r4 >> 3) | (r4 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r4 = r4 ^ r3; r3 = r3 ^ r1; r0 = r3; r3 = r3 & r4; r3 = r3 ^ r2; r2 = r2 | r4; r2 = r2 ^ r0; r0 = r0 & r3; r4 = r4 ^ r3; r0 = r0 & r1; r0 = r0 ^ r4; r4 = r4 & r2; r4 = r4 | r1; r3 = r3 ^ -1; r4 = r4 ^ r3; r1 = r1 ^ r3; r1 = r1 & r2; r3 = r3 ^ r0; r3 = r3 ^ r1;; r2 = r2 ^ l_key[72 +8]; r0 = r0 ^ l_key[72 +9]; r4 = r4 ^ l_key[72 +10]; r3 = r3 ^ l_key[72 +11];; r4 = ((r4 >> 22) | (r4 << (32 - 22))); r2 = ((r2 >> 5) | (r2 << (32 - 5))); r4 = r4 ^ r3; r1 = r0 << 7; r2 = r2 ^ r0; r4 = r4 ^ r1; r2 = r2 ^ r3; r3 = ((r3 >> 7) | (r3 << (32 - 7))); r0 = ((r0 >> 1) | (r0 << (32 - 1))); r3 = r3 ^ r4; r1 = r2 << 3; r0 = r0 ^ r2; r3 = r3 ^ r1; r0 = r0 ^ r4; r4 = ((r4 >> 3) | (r4 << (32 - 3))); r2 = ((r2 >> 13) | (r2 << (32 - 13)));; r1 = r0; r0 = r0 ^ r3; r3 = r3 & r0; r1 = r1 ^ r4; r3 = r3 ^ r2; r2 = r2 | r0; r4 = r4 ^ r3; r2 = r2 ^ r1; r2 = r2 | r4; r0 = r0 ^ r3; r2 = r2 ^ r0; r0 = r0 | r3; r0 = r0 ^ r2; r1 = r1 ^ -1; r1 = r1 ^ r0; r0 = r0 | r2; r0 = r0 ^ r2; r0 = r0 | r1; r3 = r3 ^ r0;; r1 = r1 ^ l_key[68 +8]; r2 = r2 ^ l_key[68 +9]; r3 = r3 ^ l_key[68 +10]; r4 = r4 ^ l_key[68 +11];; r3 = ((r3 >> 22) | (r3 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r3 = r3 ^ r4; r0 = r2 << 7; r1 = r1 ^ r2; r3 = r3 ^ r0; r1 = r1 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r4 = r4 ^ r3; r0 = r1 << 3; r2 = r2 ^ r1; r4 = r4 ^ r0; r2 = r2 ^ r3; r3 = ((r3 >> 3) | (r3 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r3 = r3 ^ -1; r0 = r2; r2 = r2 | r1; r0 = r0 ^ -1; r2 = r2 ^ r3; r3 = r3 | r0; r2 = r2 ^ r4; r1 = r1 ^ r0; r3 = r3 ^ r1; r1 = r1 & r4; r0 = r0 ^ r1; r1 = r1 | r2; r1 = r1 ^ r3; r4 = r4 ^ r0; r3 = r3 ^ r2; r4 = r4 ^ r1; r4 = r4 ^ r2; r3 = r3 & r4; r0 = r0 ^ r3;; r1 = r1 ^ l_key[64 +8]; r0 = r0 ^ l_key[64 +9]; r2 = r2 ^ l_key[64 +10]; r4 = r4 ^ l_key[64 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r2 = r2 ^ r4; r3 = r0 << 7; r1 = r1 ^ r0; r2 = r2 ^ r3; r1 = r1 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r0 = ((r0 >> 1) | (r0 << (32 - 1))); r4 = r4 ^ r2; r3 = r1 << 3; r0 = r0 ^ r1; r4 = r4 ^ r3; r0 = r0 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r3 = r2; r2 = r2 ^ r1; r1 = r1 & r4; r3 = r3 | r4; r2 = r2 ^ -1; r4 = r4 ^ r0; r0 = r0 | r1; r1 = r1 ^ r2; r2 = r2 & r3; r4 = r4 & r3; r0 = r0 ^ r2; r2 = r2 ^ r1; r1 = r1 | r2; r3 = r3 ^ r0; r1 = r1 ^ r4; r4 = r4 ^ r3; r3 = r3 | r1; r4 = r4 ^ r2; r3 = r3 ^ r2;; r4 = r4 ^ l_key[60 +8]; r1 = r1 ^ l_key[60 +9]; r0 = r0 ^ l_key[60 +10]; r3 = r3 ^ l_key[60 +11];; r0 = ((r0 >> 22) | (r0 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r0 = r0 ^ r3; r2 = r1 << 7; r4 = r4 ^ r1; r0 = r0 ^ r2; r4 = r4 ^ r3; r3 = ((r3 >> 7) | (r3 << (32 - 7))); r1 = ((r1 >> 1) | (r1 << (32 - 1))); r3 = r3 ^ r0; r2 = r4 << 3; r1 = r1 ^ r4; r3 = r3 ^ r2; r1 = r1 ^ r0; r0 = ((r0 >> 3) | (r0 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r4 = r4 ^ r0; r2 = r0; r0 = r0 & r4; r2 = r2 ^ r3; r0 = r0 ^ -1; r3 = r3 ^ r1; r0 = r0 ^ r3; r2 = r2 | r4; r4 = r4 ^ r0; r3 = r3 ^ r2; r2 = r2 ^ r1; r1 = r1 & r3; r1 = r1 ^ r4; r4 = r4 ^ r3; r4 = r4 | r0; r3 = r3 ^ r1; r2 = r2 ^ r4;; r1 = r1 ^ l_key[56 +8]; r0 = r0 ^ l_key[56 +9]; r2 = r2 ^ l_key[56 +10]; r3 = r3 ^ l_key[56 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r2 = r2 ^ r3; r4 = r0 << 7; r1 = r1 ^ r0; r2 = r2 ^ r4; r1 = r1 ^ r3; r3 = ((r3 >> 7) | (r3 << (32 - 7))); r0 = ((r0 >> 1) | (r0 << (32 - 1))); r3 = r3 ^ r2; r4 = r1 << 3; r0 = r0 ^ r1; r3 = r3 ^ r4; r0 = r0 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r0 = r0 ^ -1; r4 = r3; r2 = r2 ^ r0; r3 = r3 | r1; r3 = r3 ^ r2; r2 = r2 | r0; r2 = r2 & r1; r4 = r4 ^ r3; r2 = r2 ^ r4; r4 = r4 | r1; r4 = r4 ^ r0; r0 = r0 & r2; r0 = r0 ^ r3; r4 = r4 ^ r2; r3 = r3 & r4; r4 = r4 ^ r0; r3 = r3 ^ r1; r3 = r3 ^ r4; r4 = r4 ^ -1;; r0 = r0 ^ l_key[52 +8]; r4 = r4 ^ l_key[52 +9]; r3 = r3 ^ l_key[52 +10]; r2 = r2 ^ l_key[52 +11];; r3 = ((r3 >> 22) | (r3 << (32 - 22))); r0 = ((r0 >> 5) | (r0 << (32 - 5))); r3 = r3 ^ r2; r1 = r4 << 7; r0 = r0 ^ r4; r3 = r3 ^ r1; r0 = r0 ^ r2; r2 = ((r2 >> 7) | (r2 << (32 - 7))); r4 = ((r4 >> 1) | (r4 << (32 - 1))); r2 = r2 ^ r3; r1 = r0 << 3; r4 = r4 ^ r0; r2 = r2 ^ r1; r4 = r4 ^ r3; r3 = ((r3 >> 3) | (r3 << (32 - 3))); r0 = ((r0 >> 13) | (r0 << (32 - 13)));; r1 = r3; r3 = r3 & r2; r3 = r3 ^ r4; r4 = r4 | r2; r4 = r4 & r0; r1 = r1 ^ r3; r1 = r1 ^ r4; r4 = r4 & r3; r0 = r0 ^ -1; r2 = r2 ^ r1; r4 = r4 ^ r2; r2 = r2 & r0; r2 = r2 ^ r3; r0 = r0 ^ r4; r3 = r3 & r0; r2 = r2 ^ r0; r3 = r3 ^ r1; r3 = r3 | r2; r2 = r2 ^ r0; r3 = r3 ^ r4;; r0 = r0 ^ l_key[48 +8]; r2 = r2 ^ l_key[48 +9]; r3 = r3 ^ l_key[48 +10]; r1 = r1 ^ l_key[48 +11];; r3 = ((r3 >> 22) | (r3 << (32 - 22))); r0 = ((r0 >> 5) | (r0 << (32 - 5))); r3 = r3 ^ r1; r4 = r2 << 7; r0 = r0 ^ r2; r3 = r3 ^ r4; r0 = r0 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r1 = r1 ^ r3; r4 = r0 << 3; r2 = r2 ^ r0; r1 = r1 ^ r4; r2 = r2 ^ r3; r3 = ((r3 >> 3) | (r3 << (32 - 3))); r0 = ((r0 >> 13) | (r0 << (32 - 13)));; r4 = r3; r3 = r3 ^ r2; r0 = r0 ^ r3; r4 = r4 & r3; r4 = r4 ^ r0; r0 = r0 & r2; r2 = r2 ^ r1; r1 = r1 | r4; r3 = r3 ^ r1; r0 = r0 ^ r1; r2 = r2 ^ r4; r1 = r1 & r3; r1 = r1 ^ r2; r2 = r2 ^ r0; r2 = r2 | r3; r0 = r0 ^ r1; r2 = r2 ^ r4; r0 = r0 ^ r2;; r3 = r3 ^ l_key[44 +8]; r2 = r2 ^ l_key[44 +9]; r1 = r1 ^ l_key[44 +10]; r0 = r0 ^ l_key[44 +11];; r1 = ((r1 >> 22) | (r1 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r1 = r1 ^ r0; r4 = r2 << 7; r3 = r3 ^ r2; r1 = r1 ^ r4; r3 = r3 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r0 = r0 ^ r1; r4 = r3 << 3; r2 = r2 ^ r3; r0 = r0 ^ r4; r2 = r2 ^ r1; r1 = ((r1 >> 3) | (r1 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r1 = r1 ^ r0; r0 = r0 ^ r3; r4 = r0; r0 = r0 & r1; r0 = r0 ^ r2; r2 = r2 | r1; r2 = r2 ^ r4; r4 = r4 & r0; r1 = r1 ^ r0; r4 = r4 & r3; r4 = r4 ^ r1; r1 = r1 & r2; r1 = r1 | r3; r0 = r0 ^ -1; r1 = r1 ^ r0; r3 = r3 ^ r0; r3 = r3 & r2; r0 = r0 ^ r4; r0 = r0 ^ r3;; r2 = r2 ^ l_key[40 +8]; r4 = r4 ^ l_key[40 +9]; r1 = r1 ^ l_key[40 +10]; r0 = r0 ^ l_key[40 +11];; r1 = ((r1 >> 22) | (r1 << (32 - 22))); r2 = ((r2 >> 5) | (r2 << (32 - 5))); r1 = r1 ^ r0; r3 = r4 << 7; r2 = r2 ^ r4; r1 = r1 ^ r3; r2 = r2 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r4 = ((r4 >> 1) | (r4 << (32 - 1))); r0 = r0 ^ r1; r3 = r2 << 3; r4 = r4 ^ r2; r0 = r0 ^ r3; r4 = r4 ^ r1; r1 = ((r1 >> 3) | (r1 << (32 - 3))); r2 = ((r2 >> 13) | (r2 << (32 - 13)));; r3 = r4; r4 = r4 ^ r0; r0 = r0 & r4; r3 = r3 ^ r1; r0 = r0 ^ r2; r2 = r2 | r4; r1 = r1 ^ r0; r2 = r2 ^ r3; r2 = r2 | r1; r4 = r4 ^ r0; r2 = r2 ^ r4; r4 = r4 | r0; r4 = r4 ^ r2; r3 = r3 ^ -1; r3 = r3 ^ r4; r4 = r4 | r2; r4 = r4 ^ r2; r4 = r4 | r3; r0 = r0 ^ r4;; r3 = r3 ^ l_key[36 +8]; r2 = r2 ^ l_key[36 +9]; r0 = r0 ^ l_key[36 +10]; r1 = r1 ^ l_key[36 +11];; r0 = ((r0 >> 22) | (r0 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r0 = r0 ^ r1; r4 = r2 << 7; r3 = r3 ^ r2; r0 = r0 ^ r4; r3 = r3 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r1 = r1 ^ r0; r4 = r3 << 3; r2 = r2 ^ r3; r1 = r1 ^ r4; r2 = r2 ^ r0; r0 = ((r0 >> 3) | (r0 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r0 = r0 ^ -1; r4 = r2; r2 = r2 | r3; r4 = r4 ^ -1; r2 = r2 ^ r0; r0 = r0 | r4; r2 = r2 ^ r1; r3 = r3 ^ r4; r0 = r0 ^ r3; r3 = r3 & r1; r4 = r4 ^ r3; r3 = r3 | r2; r3 = r3 ^ r0; r1 = r1 ^ r4; r0 = r0 ^ r2; r1 = r1 ^ r3; r1 = r1 ^ r2; r0 = r0 & r1; r4 = r4 ^ r0;; r3 = r3 ^ l_key[32 +8]; r4 = r4 ^ l_key[32 +9]; r2 = r2 ^ l_key[32 +10]; r1 = r1 ^ l_key[32 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r2 = r2 ^ r1; r0 = r4 << 7; r3 = r3 ^ r4; r2 = r2 ^ r0; r3 = r3 ^ r1; r1 = ((r1 >> 7) | (r1 << (32 - 7))); r4 = ((r4 >> 1) | (r4 << (32 - 1))); r1 = r1 ^ r2; r0 = r3 << 3; r4 = r4 ^ r3; r1 = r1 ^ r0; r4 = r4 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r0 = r2; r2 = r2 ^ r3; r3 = r3 & r1; r0 = r0 | r1; r2 = r2 ^ -1; r1 = r1 ^ r4; r4 = r4 | r3; r3 = r3 ^ r2; r2 = r2 & r0; r1 = r1 & r0; r4 = r4 ^ r2; r2 = r2 ^ r3; r3 = r3 | r2; r0 = r0 ^ r4; r3 = r3 ^ r1; r1 = r1 ^ r0; r0 = r0 | r3; r1 = r1 ^ r2; r0 = r0 ^ r2;; r1 = r1 ^ l_key[28 +8]; r3 = r3 ^ l_key[28 +9]; r4 = r4 ^ l_key[28 +10]; r0 = r0 ^ l_key[28 +11];; r4 = ((r4 >> 22) | (r4 << (32 - 22))); r1 = ((r1 >> 5) | (r1 << (32 - 5))); r4 = r4 ^ r0; r2 = r3 << 7; r1 = r1 ^ r3; r4 = r4 ^ r2; r1 = r1 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r3 = ((r3 >> 1) | (r3 << (32 - 1))); r0 = r0 ^ r4; r2 = r1 << 3; r3 = r3 ^ r1; r0 = r0 ^ r2; r3 = r3 ^ r4; r4 = ((r4 >> 3) | (r4 << (32 - 3))); r1 = ((r1 >> 13) | (r1 << (32 - 13)));; r1 = r1 ^ r4; r2 = r4; r4 = r4 & r1; r2 = r2 ^ r0; r4 = r4 ^ -1; r0 = r0 ^ r3; r4 = r4 ^ r0; r2 = r2 | r1; r1 = r1 ^ r4; r0 = r0 ^ r2; r2 = r2 ^ r3; r3 = r3 & r0; r3 = r3 ^ r1; r1 = r1 ^ r0; r1 = r1 | r4; r0 = r0 ^ r3; r2 = r2 ^ r1;; r3 = r3 ^ l_key[24 +8]; r4 = r4 ^ l_key[24 +9]; r2 = r2 ^ l_key[24 +10]; r0 = r0 ^ l_key[24 +11];; r2 = ((r2 >> 22) | (r2 << (32 - 22))); r3 = ((r3 >> 5) | (r3 << (32 - 5))); r2 = r2 ^ r0; r1 = r4 << 7; r3 = r3 ^ r4; r2 = r2 ^ r1; r3 = r3 ^ r0; r0 = ((r0 >> 7) | (r0 << (32 - 7))); r4 = ((r4 >> 1) | (r4 << (32 - 1))); r0 = r0 ^ r2; r1 = r3 << 3; r4 = r4 ^ r3; r0 = r0 ^ r1; r4 = r4 ^ r2; r2 = ((r2 >> 3) | (r2 << (32 - 3))); r3 = ((r3 >> 13) | (r3 << (32 - 13)));; r4 = r4 ^ -1; r1 = r0; r2 = r2 ^ r4; r0 = r0 | r3; r0 = r0 ^ r2; r2 = r2 | r4; r2 = r2 & r3; r1 = r1 ^ r0; r2 = r2 ^ r1; r1 = r1 | r3; r1 = r1 ^ r4; r4 = r4 & r2; r4 = r4 ^ r0; r1 = r1 ^ r2; r0 = r0 & r1; r1 = r1 ^ r4; r0 = r0 ^ r3; r0 = r0 ^ r1; r1 = r1 ^ -1;; r4 = r4 ^ l_key[20 +8]; r1 = r1 ^ l_key[20 +9]; r0 = r0 ^ l_key[20 +10]; r2 = r2 ^ l_key[20 +11];; r0 = ((r0 >> 22) | (r0 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r0 = r0 ^ r2; r3 = r1 << 7; r4 = r4 ^ r1; r0 = r0 ^ r3; r4 = r4 ^ r2; r2 = ((r2 >> 7) | (r2 << (32 - 7))); r1 = ((r1 >> 1) | (r1 << (32 - 1))); r2 = r2 ^ r0; r3 = r4 << 3; r1 = r1 ^ r4; r2 = r2 ^ r3; r1 = r1 ^ r0; r0 = ((r0 >> 3) | (r0 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r3 = r0; r0 = r0 & r2; r0 = r0 ^ r1; r1 = r1 | r2; r1 = r1 & r4; r3 = r3 ^ r0; r3 = r3 ^ r1; r1 = r1 & r0; r4 = r4 ^ -1; r2 = r2 ^ r3; r1 = r1 ^ r2; r2 = r2 & r4; r2 = r2 ^ r0; r4 = r4 ^ r1; r0 = r0 & r4; r2 = r2 ^ r4; r0 = r0 ^ r3; r0 = r0 | r2; r2 = r2 ^ r4; r0 = r0 ^ r1;; r4 = r4 ^ l_key[16 +8]; r2 = r2 ^ l_key[16 +9]; r0 = r0 ^ l_key[16 +10]; r3 = r3 ^ l_key[16 +11];; r0 = ((r0 >> 22) | (r0 << (32 - 22))); r4 = ((r4 >> 5) | (r4 << (32 - 5))); r0 = r0 ^ r3; r1 = r2 << 7; r4 = r4 ^ r2; r0 = r0 ^ r1; r4 = r4 ^ r3; r3 = ((r3 >> 7) | (r3 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r3 = r3 ^ r0; r1 = r4 << 3; r2 = r2 ^ r4; r3 = r3 ^ r1; r2 = r2 ^ r0; r0 = ((r0 >> 3) | (r0 << (32 - 3))); r4 = ((r4 >> 13) | (r4 << (32 - 13)));; r1 = r0; r0 = r0 ^ r2; r4 = r4 ^ r0; r1 = r1 & r0; r1 = r1 ^ r4; r4 = r4 & r2; r2 = r2 ^ r3; r3 = r3 | r1; r0 = r0 ^ r3; r4 = r4 ^ r3; r2 = r2 ^ r1; r3 = r3 & r0; r3 = r3 ^ r2; r2 = r2 ^ r4; r2 = r2 | r0; r4 = r4 ^ r3; r2 = r2 ^ r1; r4 = r4 ^ r2;; r0 = r0 ^ l_key[12 +8]; r2 = r2 ^ l_key[12 +9]; r3 = r3 ^ l_key[12 +10]; r4 = r4 ^ l_key[12 +11];; r3 = ((r3 >> 22) | (r3 << (32 - 22))); r0 = ((r0 >> 5) | (r0 << (32 - 5))); r3 = r3 ^ r4; r1 = r2 << 7; r0 = r0 ^ r2; r3 = r3 ^ r1; r0 = r0 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r4 = r4 ^ r3; r1 = r0 << 3; r2 = r2 ^ r0; r4 = r4 ^ r1; r2 = r2 ^ r3; r3 = ((r3 >> 3) | (r3 << (32 - 3))); r0 = ((r0 >> 13) | (r0 << (32 - 13)));; r3 = r3 ^ r4; r4 = r4 ^ r0; r1 = r4; r4 = r4 & r3; r4 = r4 ^ r2; r2 = r2 | r3; r2 = r2 ^ r1; r1 = r1 & r4; r3 = r3 ^ r4; r1 = r1 & r0; r1 = r1 ^ r3; r3 = r3 & r2; r3 = r3 | r0; r4 = r4 ^ -1; r3 = r3 ^ r4; r0 = r0 ^ r4; r0 = r0 & r2; r4 = r4 ^ r1; r4 = r4 ^ r0;; r2 = r2 ^ l_key[8 +8]; r1 = r1 ^ l_key[8 +9]; r3 = r3 ^ l_key[8 +10]; r4 = r4 ^ l_key[8 +11];; r3 = ((r3 >> 22) | (r3 << (32 - 22))); r2 = ((r2 >> 5) | (r2 << (32 - 5))); r3 = r3 ^ r4; r0 = r1 << 7; r2 = r2 ^ r1; r3 = r3 ^ r0; r2 = r2 ^ r4; r4 = ((r4 >> 7) | (r4 << (32 - 7))); r1 = ((r1 >> 1) | (r1 << (32 - 1))); r4 = r4 ^ r3; r0 = r2 << 3; r1 = r1 ^ r2; r4 = r4 ^ r0; r1 = r1 ^ r3; r3 = ((r3 >> 3) | (r3 << (32 - 3))); r2 = ((r2 >> 13) | (r2 << (32 - 13)));; r0 = r1; r1 = r1 ^ r4; r4 = r4 & r1; r0 = r0 ^ r3; r4 = r4 ^ r2; r2 = r2 | r1; r3 = r3 ^ r4; r2 = r2 ^ r0; r2 = r2 | r3; r1 = r1 ^ r4; r2 = r2 ^ r1; r1 = r1 | r4; r1 = r1 ^ r2; r0 = r0 ^ -1; r0 = r0 ^ r1; r1 = r1 | r2; r1 = r1 ^ r2; r1 = r1 | r0; r4 = r4 ^ r1;; r0 = r0 ^ l_key[4 +8]; r2 = r2 ^ l_key[4 +9]; r4 = r4 ^ l_key[4 +10]; r3 = r3 ^ l_key[4 +11];; r4 = ((r4 >> 22) | (r4 << (32 - 22))); r0 = ((r0 >> 5) | (r0 << (32 - 5))); r4 = r4 ^ r3; r1 = r2 << 7; r0 = r0 ^ r2; r4 = r4 ^ r1; r0 = r0 ^ r3; r3 = ((r3 >> 7) | (r3 << (32 - 7))); r2 = ((r2 >> 1) | (r2 << (32 - 1))); r3 = r3 ^ r4; r1 = r0 << 3; r2 = r2 ^ r0; r3 = r3 ^ r1; r2 = r2 ^ r4; r4 = ((r4 >> 3) | (r4 << (32 - 3))); r0 = ((r0 >> 13) | (r0 << (32 - 13)));; r4 = r4 ^ -1; r1 = r2; r2 = r2 | r0; r1 = r1 ^ -1; r2 = r2 ^ r4; r4 = r4 | r1; r2 = r2 ^ r3; r0 = r0 ^ r1; r4 = r4 ^ r0; r0 = r0 & r3; r1 = r1 ^ r0; r0 = r0 | r2; r0 = r0 ^ r4; r3 = r3 ^ r1; r4 = r4 ^ r2; r3 = r3 ^ r0; r3 = r3 ^ r2; r4 = r4 & r3; r1 = r1 ^ r4;; r0 = r0 ^ l_key[0 +8]; r1 = r1 ^ l_key[0 +9]; r2 = r2 ^ l_key[0 +10]; r3 = r3 ^ l_key[0 +11];; out_blk[3] = __fswab32((r0)); out_blk[2] = __fswab32((r1)); out_blk[1] = __fswab32((r2)); out_blk[0] = __fswab32((r3)); return 0; };