0000: 2f 2a 0a 43 6f 64 65 20 61 75 74 6f 6d 61 74 69 /*.Code automati
0010: 63 61 6c 6c 79 20 67 65 6e 65 72 61 74 65 64 20 cally generated
0020: 62 79 20 4b 65 63 63 61 6b 54 6f 6f 6c 73 21 0a by KeccakTools!.
0030: 0a 54 68 65 20 4b 65 63 63 61 6b 20 73 70 6f 6e .The Keccak spon
0040: 67 65 20 66 75 6e 63 74 69 6f 6e 2c 20 64 65 73 ge function, des
0050: 69 67 6e 65 64 20 62 79 20 47 75 69 64 6f 20 42 igned by Guido B
0060: 65 72 74 6f 6e 69 2c 20 4a 6f 61 6e 20 44 61 65 ertoni, Joan Dae
0070: 6d 65 6e 2c 0a 4d 69 63 68 61 c3 ab 6c 20 50 65 men,.Michaël Pe
0080: 65 74 65 72 73 20 61 6e 64 20 47 69 6c 6c 65 73 eters and Gilles
0090: 20 56 61 6e 20 41 73 73 63 68 65 2e 20 46 6f 72 Van Assche. For
00a0: 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f more informatio
00b0: 6e 2c 20 66 65 65 64 62 61 63 6b 20 6f 72 0a 71 n, feedback or.q
00c0: 75 65 73 74 69 6f 6e 73 2c 20 70 6c 65 61 73 65 uestions, please
00d0: 20 72 65 66 65 72 20 74 6f 20 6f 75 72 20 77 65 refer to our we
00e0: 62 73 69 74 65 3a 20 68 74 74 70 3a 2f 2f 6b 65 bsite: http://ke
00f0: 63 63 61 6b 2e 6e 6f 65 6b 65 6f 6e 2e 6f 72 67 ccak.noekeon.org
0100: 2f 0a 0a 49 6d 70 6c 65 6d 65 6e 74 61 74 69 6f /..Implementatio
0110: 6e 20 62 79 20 74 68 65 20 64 65 73 69 67 6e 65 n by the designe
0120: 72 73 2c 0a 68 65 72 65 62 79 20 64 65 6e 6f 74 rs,.hereby denot
0130: 65 64 20 61 73 20 22 74 68 65 20 69 6d 70 6c 65 ed as "the imple
0140: 6d 65 6e 74 65 72 22 2e 0a 0a 54 6f 20 74 68 65 menter"...To the
0150: 20 65 78 74 65 6e 74 20 70 6f 73 73 69 62 6c 65 extent possible
0160: 20 75 6e 64 65 72 20 6c 61 77 2c 20 74 68 65 20 under law, the
0170: 69 6d 70 6c 65 6d 65 6e 74 65 72 20 68 61 73 20 implementer has
0180: 77 61 69 76 65 64 20 61 6c 6c 20 63 6f 70 79 72 waived all copyr
0190: 69 67 68 74 0a 61 6e 64 20 72 65 6c 61 74 65 64 ight.and related
01a0: 20 6f 72 20 6e 65 69 67 68 62 6f 72 69 6e 67 20 or neighboring
01b0: 72 69 67 68 74 73 20 74 6f 20 74 68 65 20 73 6f rights to the so
01c0: 75 72 63 65 20 63 6f 64 65 20 69 6e 20 74 68 69 urce code in thi
01d0: 73 20 66 69 6c 65 2e 0a 68 74 74 70 3a 2f 2f 63 s file..http://c
01e0: 72 65 61 74 69 76 65 63 6f 6d 6d 6f 6e 73 2e 6f reativecommons.o
01f0: 72 67 2f 70 75 62 6c 69 63 64 6f 6d 61 69 6e 2f rg/publicdomain/
0200: 7a 65 72 6f 2f 31 2e 30 2f 0a 2a 2f 0a 0a 23 64 zero/1.0/.*/..#d
0210: 65 66 69 6e 65 20 64 65 63 6c 61 72 65 41 42 43 efine declareABC
0220: 44 45 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 DE \. UINT32
0230: 41 62 61 30 2c 20 41 62 65 30 2c 20 41 62 69 30 Aba0, Abe0, Abi0
0240: 2c 20 41 62 6f 30 2c 20 41 62 75 30 3b 20 5c 0a , Abo0, Abu0; \.
0250: 20 20 20 20 55 49 4e 54 33 32 20 41 62 61 31 2c UINT32 Aba1,
0260: 20 41 62 65 31 2c 20 41 62 69 31 2c 20 41 62 6f Abe1, Abi1, Abo
0270: 31 2c 20 41 62 75 31 3b 20 5c 0a 20 20 20 20 55 1, Abu1; \. U
0280: 49 4e 54 33 32 20 41 67 61 30 2c 20 41 67 65 30 INT32 Aga0, Age0
0290: 2c 20 41 67 69 30 2c 20 41 67 6f 30 2c 20 41 67 , Agi0, Ago0, Ag
02a0: 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 u0; \. UINT32
02b0: 20 41 67 61 31 2c 20 41 67 65 31 2c 20 41 67 69 Aga1, Age1, Agi
02c0: 31 2c 20 41 67 6f 31 2c 20 41 67 75 31 3b 20 5c 1, Ago1, Agu1; \
02d0: 0a 20 20 20 20 55 49 4e 54 33 32 20 41 6b 61 30 . UINT32 Aka0
02e0: 2c 20 41 6b 65 30 2c 20 41 6b 69 30 2c 20 41 6b , Ake0, Aki0, Ak
02f0: 6f 30 2c 20 41 6b 75 30 3b 20 5c 0a 20 20 20 20 o0, Aku0; \.
0300: 55 49 4e 54 33 32 20 41 6b 61 31 2c 20 41 6b 65 UINT32 Aka1, Ake
0310: 31 2c 20 41 6b 69 31 2c 20 41 6b 6f 31 2c 20 41 1, Aki1, Ako1, A
0320: 6b 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 ku1; \. UINT3
0330: 32 20 41 6d 61 30 2c 20 41 6d 65 30 2c 20 41 6d 2 Ama0, Ame0, Am
0340: 69 30 2c 20 41 6d 6f 30 2c 20 41 6d 75 30 3b 20 i0, Amo0, Amu0;
0350: 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 41 6d 61 \. UINT32 Ama
0360: 31 2c 20 41 6d 65 31 2c 20 41 6d 69 31 2c 20 41 1, Ame1, Ami1, A
0370: 6d 6f 31 2c 20 41 6d 75 31 3b 20 5c 0a 20 20 20 mo1, Amu1; \.
0380: 20 55 49 4e 54 33 32 20 41 73 61 30 2c 20 41 73 UINT32 Asa0, As
0390: 65 30 2c 20 41 73 69 30 2c 20 41 73 6f 30 2c 20 e0, Asi0, Aso0,
03a0: 41 73 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 Asu0; \. UINT
03b0: 33 32 20 41 73 61 31 2c 20 41 73 65 31 2c 20 41 32 Asa1, Ase1, A
03c0: 73 69 31 2c 20 41 73 6f 31 2c 20 41 73 75 31 3b si1, Aso1, Asu1;
03d0: 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 42 62 \. UINT32 Bb
03e0: 61 30 2c 20 42 62 65 30 2c 20 42 62 69 30 2c 20 a0, Bbe0, Bbi0,
03f0: 42 62 6f 30 2c 20 42 62 75 30 3b 20 5c 0a 20 20 Bbo0, Bbu0; \.
0400: 20 20 55 49 4e 54 33 32 20 42 62 61 31 2c 20 42 UINT32 Bba1, B
0410: 62 65 31 2c 20 42 62 69 31 2c 20 42 62 6f 31 2c be1, Bbi1, Bbo1,
0420: 20 42 62 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e Bbu1; \. UIN
0430: 54 33 32 20 42 67 61 30 2c 20 42 67 65 30 2c 20 T32 Bga0, Bge0,
0440: 42 67 69 30 2c 20 42 67 6f 30 2c 20 42 67 75 30 Bgi0, Bgo0, Bgu0
0450: 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 42 ; \. UINT32 B
0460: 67 61 31 2c 20 42 67 65 31 2c 20 42 67 69 31 2c ga1, Bge1, Bgi1,
0470: 20 42 67 6f 31 2c 20 42 67 75 31 3b 20 5c 0a 20 Bgo1, Bgu1; \.
0480: 20 20 20 55 49 4e 54 33 32 20 42 6b 61 30 2c 20 UINT32 Bka0,
0490: 42 6b 65 30 2c 20 42 6b 69 30 2c 20 42 6b 6f 30 Bke0, Bki0, Bko0
04a0: 2c 20 42 6b 75 30 3b 20 5c 0a 20 20 20 20 55 49 , Bku0; \. UI
04b0: 4e 54 33 32 20 42 6b 61 31 2c 20 42 6b 65 31 2c NT32 Bka1, Bke1,
04c0: 20 42 6b 69 31 2c 20 42 6b 6f 31 2c 20 42 6b 75 Bki1, Bko1, Bku
04d0: 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 1; \. UINT32
04e0: 42 6d 61 30 2c 20 42 6d 65 30 2c 20 42 6d 69 30 Bma0, Bme0, Bmi0
04f0: 2c 20 42 6d 6f 30 2c 20 42 6d 75 30 3b 20 5c 0a , Bmo0, Bmu0; \.
0500: 20 20 20 20 55 49 4e 54 33 32 20 42 6d 61 31 2c UINT32 Bma1,
0510: 20 42 6d 65 31 2c 20 42 6d 69 31 2c 20 42 6d 6f Bme1, Bmi1, Bmo
0520: 31 2c 20 42 6d 75 31 3b 20 5c 0a 20 20 20 20 55 1, Bmu1; \. U
0530: 49 4e 54 33 32 20 42 73 61 30 2c 20 42 73 65 30 INT32 Bsa0, Bse0
0540: 2c 20 42 73 69 30 2c 20 42 73 6f 30 2c 20 42 73 , Bsi0, Bso0, Bs
0550: 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 u0; \. UINT32
0560: 20 42 73 61 31 2c 20 42 73 65 31 2c 20 42 73 69 Bsa1, Bse1, Bsi
0570: 31 2c 20 42 73 6f 31 2c 20 42 73 75 31 3b 20 5c 1, Bso1, Bsu1; \
0580: 0a 20 20 20 20 55 49 4e 54 33 32 20 43 61 30 2c . UINT32 Ca0,
0590: 20 43 65 30 2c 20 43 69 30 2c 20 43 6f 30 2c 20 Ce0, Ci0, Co0,
05a0: 43 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 Cu0; \. UINT3
05b0: 32 20 43 61 31 2c 20 43 65 31 2c 20 43 69 31 2c 2 Ca1, Ce1, Ci1,
05c0: 20 43 6f 31 2c 20 43 75 31 3b 20 5c 0a 20 20 20 Co1, Cu1; \.
05d0: 20 55 49 4e 54 33 32 20 44 61 30 2c 20 44 65 30 UINT32 Da0, De0
05e0: 2c 20 44 69 30 2c 20 44 6f 30 2c 20 44 75 30 3b , Di0, Do0, Du0;
05f0: 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 44 61 \. UINT32 Da
0600: 31 2c 20 44 65 31 2c 20 44 69 31 2c 20 44 6f 31 1, De1, Di1, Do1
0610: 2c 20 44 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e , Du1; \. UIN
0620: 54 33 32 20 45 62 61 30 2c 20 45 62 65 30 2c 20 T32 Eba0, Ebe0,
0630: 45 62 69 30 2c 20 45 62 6f 30 2c 20 45 62 75 30 Ebi0, Ebo0, Ebu0
0640: 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 45 ; \. UINT32 E
0650: 62 61 31 2c 20 45 62 65 31 2c 20 45 62 69 31 2c ba1, Ebe1, Ebi1,
0660: 20 45 62 6f 31 2c 20 45 62 75 31 3b 20 5c 0a 20 Ebo1, Ebu1; \.
0670: 20 20 20 55 49 4e 54 33 32 20 45 67 61 30 2c 20 UINT32 Ega0,
0680: 45 67 65 30 2c 20 45 67 69 30 2c 20 45 67 6f 30 Ege0, Egi0, Ego0
0690: 2c 20 45 67 75 30 3b 20 5c 0a 20 20 20 20 55 49 , Egu0; \. UI
06a0: 4e 54 33 32 20 45 67 61 31 2c 20 45 67 65 31 2c NT32 Ega1, Ege1,
06b0: 20 45 67 69 31 2c 20 45 67 6f 31 2c 20 45 67 75 Egi1, Ego1, Egu
06c0: 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 1; \. UINT32
06d0: 45 6b 61 30 2c 20 45 6b 65 30 2c 20 45 6b 69 30 Eka0, Eke0, Eki0
06e0: 2c 20 45 6b 6f 30 2c 20 45 6b 75 30 3b 20 5c 0a , Eko0, Eku0; \.
06f0: 20 20 20 20 55 49 4e 54 33 32 20 45 6b 61 31 2c UINT32 Eka1,
0700: 20 45 6b 65 31 2c 20 45 6b 69 31 2c 20 45 6b 6f Eke1, Eki1, Eko
0710: 31 2c 20 45 6b 75 31 3b 20 5c 0a 20 20 20 20 55 1, Eku1; \. U
0720: 49 4e 54 33 32 20 45 6d 61 30 2c 20 45 6d 65 30 INT32 Ema0, Eme0
0730: 2c 20 45 6d 69 30 2c 20 45 6d 6f 30 2c 20 45 6d , Emi0, Emo0, Em
0740: 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 u0; \. UINT32
0750: 20 45 6d 61 31 2c 20 45 6d 65 31 2c 20 45 6d 69 Ema1, Eme1, Emi
0760: 31 2c 20 45 6d 6f 31 2c 20 45 6d 75 31 3b 20 5c 1, Emo1, Emu1; \
0770: 0a 20 20 20 20 55 49 4e 54 33 32 20 45 73 61 30 . UINT32 Esa0
0780: 2c 20 45 73 65 30 2c 20 45 73 69 30 2c 20 45 73 , Ese0, Esi0, Es
0790: 6f 30 2c 20 45 73 75 30 3b 20 5c 0a 20 20 20 20 o0, Esu0; \.
07a0: 55 49 4e 54 33 32 20 45 73 61 31 2c 20 45 73 65 UINT32 Esa1, Ese
07b0: 31 2c 20 45 73 69 31 2c 20 45 73 6f 31 2c 20 45 1, Esi1, Eso1, E
07c0: 73 75 31 3b 20 5c 0a 0a 23 64 65 66 69 6e 65 20 su1; \..#define
07d0: 70 72 65 70 61 72 65 54 68 65 74 61 20 5c 0a 20 prepareTheta \.
07e0: 20 20 20 43 61 30 20 3d 20 41 62 61 30 5e 41 67 Ca0 = Aba0^Ag
07f0: 61 30 5e 41 6b 61 30 5e 41 6d 61 30 5e 41 73 61 a0^Aka0^Ama0^Asa
0800: 30 3b 20 5c 0a 20 20 20 20 43 61 31 20 3d 20 41 0; \. Ca1 = A
0810: 62 61 31 5e 41 67 61 31 5e 41 6b 61 31 5e 41 6d ba1^Aga1^Aka1^Am
0820: 61 31 5e 41 73 61 31 3b 20 5c 0a 20 20 20 20 43 a1^Asa1; \. C
0830: 65 30 20 3d 20 41 62 65 30 5e 41 67 65 30 5e 41 e0 = Abe0^Age0^A
0840: 6b 65 30 5e 41 6d 65 30 5e 41 73 65 30 3b 20 5c ke0^Ame0^Ase0; \
0850: 0a 20 20 20 20 43 65 31 20 3d 20 41 62 65 31 5e . Ce1 = Abe1^
0860: 41 67 65 31 5e 41 6b 65 31 5e 41 6d 65 31 5e 41 Age1^Ake1^Ame1^A
0870: 73 65 31 3b 20 5c 0a 20 20 20 20 43 69 30 20 3d se1; \. Ci0 =
0880: 20 41 62 69 30 5e 41 67 69 30 5e 41 6b 69 30 5e Abi0^Agi0^Aki0^
0890: 41 6d 69 30 5e 41 73 69 30 3b 20 5c 0a 20 20 20 Ami0^Asi0; \.
08a0: 20 43 69 31 20 3d 20 41 62 69 31 5e 41 67 69 31 Ci1 = Abi1^Agi1
08b0: 5e 41 6b 69 31 5e 41 6d 69 31 5e 41 73 69 31 3b ^Aki1^Ami1^Asi1;
08c0: 20 5c 0a 20 20 20 20 43 6f 30 20 3d 20 41 62 6f \. Co0 = Abo
08d0: 30 5e 41 67 6f 30 5e 41 6b 6f 30 5e 41 6d 6f 30 0^Ago0^Ako0^Amo0
08e0: 5e 41 73 6f 30 3b 20 5c 0a 20 20 20 20 43 6f 31 ^Aso0; \. Co1
08f0: 20 3d 20 41 62 6f 31 5e 41 67 6f 31 5e 41 6b 6f = Abo1^Ago1^Ako
0900: 31 5e 41 6d 6f 31 5e 41 73 6f 31 3b 20 5c 0a 20 1^Amo1^Aso1; \.
0910: 20 20 20 43 75 30 20 3d 20 41 62 75 30 5e 41 67 Cu0 = Abu0^Ag
0920: 75 30 5e 41 6b 75 30 5e 41 6d 75 30 5e 41 73 75 u0^Aku0^Amu0^Asu
0930: 30 3b 20 5c 0a 20 20 20 20 43 75 31 20 3d 20 41 0; \. Cu1 = A
0940: 62 75 31 5e 41 67 75 31 5e 41 6b 75 31 5e 41 6d bu1^Agu1^Aku1^Am
0950: 75 31 5e 41 73 75 31 3b 20 5c 0a 0a 23 69 66 64 u1^Asu1; \..#ifd
0960: 65 66 20 55 73 65 42 65 62 69 67 6f 6b 69 6d 69 ef UseBebigokimi
0970: 73 61 0a 2f 2f 20 2d 2d 2d 20 43 6f 64 65 20 66 sa.// --- Code f
0980: 6f 72 20 72 6f 75 6e 64 2c 20 77 69 74 68 20 70 or round, with p
0990: 72 65 70 61 72 65 2d 74 68 65 74 61 20 28 6c 61 repare-theta (la
09a0: 6e 65 20 63 6f 6d 70 6c 65 6d 65 6e 74 69 6e 67 ne complementing
09b0: 20 70 61 74 74 65 72 6e 20 27 62 65 62 69 67 6f pattern 'bebigo
09c0: 6b 69 6d 69 73 61 27 29 0a 2f 2f 20 2d 2d 2d 20 kimisa').// ---
09d0: 75 73 69 6e 67 20 66 61 63 74 6f 72 20 32 20 69 using factor 2 i
09e0: 6e 74 65 72 6c 65 61 76 69 6e 67 2c 20 36 34 2d nterleaving, 64-
09f0: 62 69 74 20 6c 61 6e 65 73 20 6d 61 70 70 65 64 bit lanes mapped
0a00: 20 74 6f 20 33 32 2d 62 69 74 20 77 6f 72 64 73 to 32-bit words
0a10: 0a 23 64 65 66 69 6e 65 20 74 68 65 74 61 52 68 .#define thetaRh
0a20: 6f 50 69 43 68 69 49 6f 74 61 50 72 65 70 61 72 oPiChiIotaPrepar
0a30: 65 54 68 65 74 61 28 69 2c 20 41 2c 20 45 29 20 eTheta(i, A, E)
0a40: 5c 0a 20 20 20 20 44 61 30 20 3d 20 43 75 30 5e \. Da0 = Cu0^
0a50: 52 4f 4c 33 32 28 43 65 31 2c 20 31 29 3b 20 5c ROL32(Ce1, 1); \
0a60: 0a 20 20 20 20 44 61 31 20 3d 20 43 75 31 5e 43 . Da1 = Cu1^C
0a70: 65 30 3b 20 5c 0a 20 20 20 20 44 65 30 20 3d 20 e0; \. De0 =
0a80: 43 61 30 5e 52 4f 4c 33 32 28 43 69 31 2c 20 31 Ca0^ROL32(Ci1, 1
0a90: 29 3b 20 5c 0a 20 20 20 20 44 65 31 20 3d 20 43 ); \. De1 = C
0aa0: 61 31 5e 43 69 30 3b 20 5c 0a 20 20 20 20 44 69 a1^Ci0; \. Di
0ab0: 30 20 3d 20 43 65 30 5e 52 4f 4c 33 32 28 43 6f 0 = Ce0^ROL32(Co
0ac0: 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 69 31 1, 1); \. Di1
0ad0: 20 3d 20 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 20 = Ce1^Co0; \.
0ae0: 20 20 44 6f 30 20 3d 20 43 69 30 5e 52 4f 4c 33 Do0 = Ci0^ROL3
0af0: 32 28 43 75 31 2c 20 31 29 3b 20 5c 0a 20 20 20 2(Cu1, 1); \.
0b00: 20 44 6f 31 20 3d 20 43 69 31 5e 43 75 30 3b 20 Do1 = Ci1^Cu0;
0b10: 5c 0a 20 20 20 20 44 75 30 20 3d 20 43 6f 30 5e \. Du0 = Co0^
0b20: 52 4f 4c 33 32 28 43 61 31 2c 20 31 29 3b 20 5c ROL32(Ca1, 1); \
0b30: 0a 20 20 20 20 44 75 31 20 3d 20 43 6f 31 5e 43 . Du1 = Co1^C
0b40: 61 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 a0; \.\. A##b
0b50: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 a0 ^= Da0; \.
0b60: 20 42 62 61 30 20 3d 20 41 23 23 62 61 30 3b 20 Bba0 = A##ba0;
0b70: 5c 0a 20 20 20 20 41 23 23 67 65 30 20 5e 3d 20 \. A##ge0 ^=
0b80: 44 65 30 3b 20 5c 0a 20 20 20 20 42 62 65 30 20 De0; \. Bbe0
0b90: 3d 20 52 4f 4c 33 32 28 41 23 23 67 65 30 2c 20 = ROL32(A##ge0,
0ba0: 32 32 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 69 22); \. A##ki
0bb0: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 1 ^= Di1; \.
0bc0: 42 62 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bbi0 = ROL32(A##
0bd0: 6b 69 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20 20 ki1, 22); \.
0be0: 45 23 23 62 61 30 20 3d 20 20 20 42 62 61 30 20 E##ba0 = Bba0
0bf0: 5e 28 20 20 42 62 65 30 20 7c 20 20 42 62 69 30 ^( Bbe0 | Bbi0
0c00: 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 30 ); \. E##ba0
0c10: 20 5e 3d 20 4b 65 63 63 61 6b 46 31 36 30 30 52 ^= KeccakF1600R
0c20: 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 6e oundConstants_in
0c30: 74 32 5f 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 43 t2_0[i]; \. C
0c40: 61 30 20 3d 20 45 23 23 62 61 30 3b 20 5c 0a 20 a0 = E##ba0; \.
0c50: 20 20 20 41 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 A##mo1 ^= Do1
0c60: 3b 20 5c 0a 20 20 20 20 42 62 6f 30 20 3d 20 52 ; \. Bbo0 = R
0c70: 4f 4c 33 32 28 41 23 23 6d 6f 31 2c 20 31 31 29 OL32(A##mo1, 11)
0c80: 3b 20 5c 0a 20 20 20 20 45 23 23 62 65 30 20 3d ; \. E##be0 =
0c90: 20 20 20 42 62 65 30 20 5e 28 28 7e 42 62 69 30 Bbe0 ^((~Bbi0
0ca0: 29 7c 20 20 42 62 6f 30 20 29 3b 20 5c 0a 20 20 )| Bbo0 ); \.
0cb0: 20 20 43 65 30 20 3d 20 45 23 23 62 65 30 3b 20 Ce0 = E##be0;
0cc0: 5c 0a 20 20 20 20 41 23 23 73 75 30 20 5e 3d 20 \. A##su0 ^=
0cd0: 44 75 30 3b 20 5c 0a 20 20 20 20 42 62 75 30 20 Du0; \. Bbu0
0ce0: 3d 20 52 4f 4c 33 32 28 41 23 23 73 75 30 2c 20 = ROL32(A##su0,
0cf0: 37 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 69 30 7); \. E##bi0
0d00: 20 3d 20 20 20 42 62 69 30 20 5e 28 20 20 42 62 = Bbi0 ^( Bb
0d10: 6f 30 20 26 20 20 42 62 75 30 20 29 3b 20 5c 0a o0 & Bbu0 ); \.
0d20: 20 20 20 20 43 69 30 20 3d 20 45 23 23 62 69 30 Ci0 = E##bi0
0d30: 3b 20 5c 0a 20 20 20 20 45 23 23 62 6f 30 20 3d ; \. E##bo0 =
0d40: 20 20 20 42 62 6f 30 20 5e 28 20 20 42 62 75 30 Bbo0 ^( Bbu0
0d50: 20 7c 20 20 42 62 61 30 20 29 3b 20 5c 0a 20 20 | Bba0 ); \.
0d60: 20 20 43 6f 30 20 3d 20 45 23 23 62 6f 30 3b 20 Co0 = E##bo0;
0d70: 5c 0a 20 20 20 20 45 23 23 62 75 30 20 3d 20 20 \. E##bu0 =
0d80: 20 42 62 75 30 20 5e 28 20 20 42 62 61 30 20 26 Bbu0 ^( Bba0 &
0d90: 20 20 42 62 65 30 20 29 3b 20 5c 0a 20 20 20 20 Bbe0 ); \.
0da0: 43 75 30 20 3d 20 45 23 23 62 75 30 3b 20 5c 0a Cu0 = E##bu0; \.
0db0: 5c 0a 20 20 20 20 41 23 23 62 61 31 20 5e 3d 20 \. A##ba1 ^=
0dc0: 44 61 31 3b 20 5c 0a 20 20 20 20 42 62 61 31 20 Da1; \. Bba1
0dd0: 3d 20 41 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 = A##ba1; \.
0de0: 41 23 23 67 65 31 20 5e 3d 20 44 65 31 3b 20 5c A##ge1 ^= De1; \
0df0: 0a 20 20 20 20 42 62 65 31 20 3d 20 52 4f 4c 33 . Bbe1 = ROL3
0e00: 32 28 41 23 23 67 65 31 2c 20 32 32 29 3b 20 5c 2(A##ge1, 22); \
0e10: 0a 20 20 20 20 41 23 23 6b 69 30 20 5e 3d 20 44 . A##ki0 ^= D
0e20: 69 30 3b 20 5c 0a 20 20 20 20 42 62 69 31 20 3d i0; \. Bbi1 =
0e30: 20 52 4f 4c 33 32 28 41 23 23 6b 69 30 2c 20 32 ROL32(A##ki0, 2
0e40: 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 31 1); \. E##ba1
0e50: 20 3d 20 20 20 42 62 61 31 20 5e 28 20 20 42 62 = Bba1 ^( Bb
0e60: 65 31 20 7c 20 20 42 62 69 31 20 29 3b 20 5c 0a e1 | Bbi1 ); \.
0e70: 20 20 20 20 45 23 23 62 61 31 20 5e 3d 20 4b 65 E##ba1 ^= Ke
0e80: 63 63 61 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f ccakF1600RoundCo
0e90: 6e 73 74 61 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 nstants_int2_1[i
0ea0: 5d 3b 20 5c 0a 20 20 20 20 43 61 31 20 3d 20 45 ]; \. Ca1 = E
0eb0: 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 ##ba1; \. A##
0ec0: 6d 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 mo0 ^= Do0; \.
0ed0: 20 20 42 62 6f 31 20 3d 20 52 4f 4c 33 32 28 41 Bbo1 = ROL32(A
0ee0: 23 23 6d 6f 30 2c 20 31 30 29 3b 20 5c 0a 20 20 ##mo0, 10); \.
0ef0: 20 20 45 23 23 62 65 31 20 3d 20 20 20 42 62 65 E##be1 = Bbe
0f00: 31 20 5e 28 28 7e 42 62 69 31 29 7c 20 20 42 62 1 ^((~Bbi1)| Bb
0f10: 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 o1 ); \. Ce1
0f20: 3d 20 45 23 23 62 65 31 3b 20 5c 0a 20 20 20 20 = E##be1; \.
0f30: 41 23 23 73 75 31 20 5e 3d 20 44 75 31 3b 20 5c A##su1 ^= Du1; \
0f40: 0a 20 20 20 20 42 62 75 31 20 3d 20 52 4f 4c 33 . Bbu1 = ROL3
0f50: 32 28 41 23 23 73 75 31 2c 20 37 29 3b 20 5c 0a 2(A##su1, 7); \.
0f60: 20 20 20 20 45 23 23 62 69 31 20 3d 20 20 20 42 E##bi1 = B
0f70: 62 69 31 20 5e 28 20 20 42 62 6f 31 20 26 20 20 bi1 ^( Bbo1 &
0f80: 42 62 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 69 Bbu1 ); \. Ci
0f90: 31 20 3d 20 45 23 23 62 69 31 3b 20 5c 0a 20 20 1 = E##bi1; \.
0fa0: 20 20 45 23 23 62 6f 31 20 3d 20 20 20 42 62 6f E##bo1 = Bbo
0fb0: 31 20 5e 28 20 20 42 62 75 31 20 7c 20 20 42 62 1 ^( Bbu1 | Bb
0fc0: 61 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f 31 20 a1 ); \. Co1
0fd0: 3d 20 45 23 23 62 6f 31 3b 20 5c 0a 20 20 20 20 = E##bo1; \.
0fe0: 45 23 23 62 75 31 20 3d 20 20 20 42 62 75 31 20 E##bu1 = Bbu1
0ff0: 5e 28 20 20 42 62 61 31 20 26 20 20 42 62 65 31 ^( Bba1 & Bbe1
1000: 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 20 3d 20 ); \. Cu1 =
1010: 45 23 23 62 75 31 3b 20 5c 0a 5c 0a 20 20 20 20 E##bu1; \.\.
1020: 41 23 23 62 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c A##bo0 ^= Do0; \
1030: 0a 20 20 20 20 42 67 61 30 20 3d 20 52 4f 4c 33 . Bga0 = ROL3
1040: 32 28 41 23 23 62 6f 30 2c 20 31 34 29 3b 20 5c 2(A##bo0, 14); \
1050: 0a 20 20 20 20 41 23 23 67 75 30 20 5e 3d 20 44 . A##gu0 ^= D
1060: 75 30 3b 20 5c 0a 20 20 20 20 42 67 65 30 20 3d u0; \. Bge0 =
1070: 20 52 4f 4c 33 32 28 41 23 23 67 75 30 2c 20 31 ROL32(A##gu0, 1
1080: 30 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 61 31 0); \. A##ka1
1090: 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 ^= Da1; \. B
10a0: 67 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b gi0 = ROL32(A##k
10b0: 61 31 2c 20 32 29 3b 20 5c 0a 20 20 20 20 45 23 a1, 2); \. E#
10c0: 23 67 61 30 20 3d 20 20 20 42 67 61 30 20 5e 28 #ga0 = Bga0 ^(
10d0: 20 20 42 67 65 30 20 7c 20 20 42 67 69 30 20 29 Bge0 | Bgi0 )
10e0: 3b 20 5c 0a 20 20 20 20 43 61 30 20 5e 3d 20 45 ; \. Ca0 ^= E
10f0: 23 23 67 61 30 3b 20 5c 0a 20 20 20 20 41 23 23 ##ga0; \. A##
1100: 6d 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 me1 ^= De1; \.
1110: 20 20 42 67 6f 30 20 3d 20 52 4f 4c 33 32 28 41 Bgo0 = ROL32(A
1120: 23 23 6d 65 31 2c 20 32 33 29 3b 20 5c 0a 20 20 ##me1, 23); \.
1130: 20 20 45 23 23 67 65 30 20 3d 20 20 20 42 67 65 E##ge0 = Bge
1140: 30 20 5e 28 20 20 42 67 69 30 20 26 20 20 42 67 0 ^( Bgi0 & Bg
1150: 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43 65 30 20 o0 ); \. Ce0
1160: 5e 3d 20 45 23 23 67 65 30 3b 20 5c 0a 20 20 20 ^= E##ge0; \.
1170: 20 41 23 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 A##si1 ^= Di1;
1180: 5c 0a 20 20 20 20 42 67 75 30 20 3d 20 52 4f 4c \. Bgu0 = ROL
1190: 33 32 28 41 23 23 73 69 31 2c 20 33 31 29 3b 20 32(A##si1, 31);
11a0: 5c 0a 20 20 20 20 45 23 23 67 69 30 20 3d 20 20 \. E##gi0 =
11b0: 20 42 67 69 30 20 5e 28 20 20 42 67 6f 30 20 7c Bgi0 ^( Bgo0 |
11c0: 28 7e 42 67 75 30 29 29 3b 20 5c 0a 20 20 20 20 (~Bgu0)); \.
11d0: 43 69 30 20 5e 3d 20 45 23 23 67 69 30 3b 20 5c Ci0 ^= E##gi0; \
11e0: 0a 20 20 20 20 45 23 23 67 6f 30 20 3d 20 20 20 . E##go0 =
11f0: 42 67 6f 30 20 5e 28 20 20 42 67 75 30 20 7c 20 Bgo0 ^( Bgu0 |
1200: 20 42 67 61 30 20 29 3b 20 5c 0a 20 20 20 20 43 Bga0 ); \. C
1210: 6f 30 20 5e 3d 20 45 23 23 67 6f 30 3b 20 5c 0a o0 ^= E##go0; \.
1220: 20 20 20 20 45 23 23 67 75 30 20 3d 20 20 20 42 E##gu0 = B
1230: 67 75 30 20 5e 28 20 20 42 67 61 30 20 26 20 20 gu0 ^( Bga0 &
1240: 42 67 65 30 20 29 3b 20 5c 0a 20 20 20 20 43 75 Bge0 ); \. Cu
1250: 30 20 5e 3d 20 45 23 23 67 75 30 3b 20 5c 0a 5c 0 ^= E##gu0; \.\
1260: 0a 20 20 20 20 41 23 23 62 6f 31 20 5e 3d 20 44 . A##bo1 ^= D
1270: 6f 31 3b 20 5c 0a 20 20 20 20 42 67 61 31 20 3d o1; \. Bga1 =
1280: 20 52 4f 4c 33 32 28 41 23 23 62 6f 31 2c 20 31 ROL32(A##bo1, 1
1290: 34 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 75 31 4); \. A##gu1
12a0: 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 ^= Du1; \. B
12b0: 67 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 ge1 = ROL32(A##g
12c0: 75 31 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 41 u1, 10); \. A
12d0: 23 23 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a ##ka0 ^= Da0; \.
12e0: 20 20 20 20 42 67 69 31 20 3d 20 52 4f 4c 33 32 Bgi1 = ROL32
12f0: 28 41 23 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20 (A##ka0, 1); \.
1300: 20 20 20 45 23 23 67 61 31 20 3d 20 20 20 42 67 E##ga1 = Bg
1310: 61 31 20 5e 28 20 20 42 67 65 31 20 7c 20 20 42 a1 ^( Bge1 | B
1320: 67 69 31 20 29 3b 20 5c 0a 20 20 20 20 43 61 31 gi1 ); \. Ca1
1330: 20 5e 3d 20 45 23 23 67 61 31 3b 20 5c 0a 20 20 ^= E##ga1; \.
1340: 20 20 41 23 23 6d 65 30 20 5e 3d 20 44 65 30 3b A##me0 ^= De0;
1350: 20 5c 0a 20 20 20 20 42 67 6f 31 20 3d 20 52 4f \. Bgo1 = RO
1360: 4c 33 32 28 41 23 23 6d 65 30 2c 20 32 32 29 3b L32(A##me0, 22);
1370: 20 5c 0a 20 20 20 20 45 23 23 67 65 31 20 3d 20 \. E##ge1 =
1380: 20 20 42 67 65 31 20 5e 28 20 20 42 67 69 31 20 Bge1 ^( Bgi1
1390: 26 20 20 42 67 6f 31 20 29 3b 20 5c 0a 20 20 20 & Bgo1 ); \.
13a0: 20 43 65 31 20 5e 3d 20 45 23 23 67 65 31 3b 20 Ce1 ^= E##ge1;
13b0: 5c 0a 20 20 20 20 41 23 23 73 69 30 20 5e 3d 20 \. A##si0 ^=
13c0: 44 69 30 3b 20 5c 0a 20 20 20 20 42 67 75 31 20 Di0; \. Bgu1
13d0: 3d 20 52 4f 4c 33 32 28 41 23 23 73 69 30 2c 20 = ROL32(A##si0,
13e0: 33 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 69 30); \. E##gi
13f0: 31 20 3d 20 20 20 42 67 69 31 20 5e 28 20 20 42 1 = Bgi1 ^( B
1400: 67 6f 31 20 7c 28 7e 42 67 75 31 29 29 3b 20 5c go1 |(~Bgu1)); \
1410: 0a 20 20 20 20 43 69 31 20 5e 3d 20 45 23 23 67 . Ci1 ^= E##g
1420: 69 31 3b 20 5c 0a 20 20 20 20 45 23 23 67 6f 31 i1; \. E##go1
1430: 20 3d 20 20 20 42 67 6f 31 20 5e 28 20 20 42 67 = Bgo1 ^( Bg
1440: 75 31 20 7c 20 20 42 67 61 31 20 29 3b 20 5c 0a u1 | Bga1 ); \.
1450: 20 20 20 20 43 6f 31 20 5e 3d 20 45 23 23 67 6f Co1 ^= E##go
1460: 31 3b 20 5c 0a 20 20 20 20 45 23 23 67 75 31 20 1; \. E##gu1
1470: 3d 20 20 20 42 67 75 31 20 5e 28 20 20 42 67 61 = Bgu1 ^( Bga
1480: 31 20 26 20 20 42 67 65 31 20 29 3b 20 5c 0a 20 1 & Bge1 ); \.
1490: 20 20 20 43 75 31 20 5e 3d 20 45 23 23 67 75 31 Cu1 ^= E##gu1
14a0: 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 31 ; \.\. A##be1
14b0: 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 20 20 42 ^= De1; \. B
14c0: 6b 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 ka0 = ROL32(A##b
14d0: 65 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 41 23 e1, 1); \. A#
14e0: 23 67 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 #gi0 ^= Di0; \.
14f0: 20 20 20 42 6b 65 30 20 3d 20 52 4f 4c 33 32 28 Bke0 = ROL32(
1500: 41 23 23 67 69 30 2c 20 33 29 3b 20 5c 0a 20 20 A##gi0, 3); \.
1510: 20 20 41 23 23 6b 6f 31 20 5e 3d 20 44 6f 31 3b A##ko1 ^= Do1;
1520: 20 5c 0a 20 20 20 20 42 6b 69 30 20 3d 20 52 4f \. Bki0 = RO
1530: 4c 33 32 28 41 23 23 6b 6f 31 2c 20 31 33 29 3b L32(A##ko1, 13);
1540: 20 5c 0a 20 20 20 20 45 23 23 6b 61 30 20 3d 20 \. E##ka0 =
1550: 20 20 42 6b 61 30 20 5e 28 20 20 42 6b 65 30 20 Bka0 ^( Bke0
1560: 7c 20 20 42 6b 69 30 20 29 3b 20 5c 0a 20 20 20 | Bki0 ); \.
1570: 20 43 61 30 20 5e 3d 20 45 23 23 6b 61 30 3b 20 Ca0 ^= E##ka0;
1580: 5c 0a 20 20 20 20 41 23 23 6d 75 30 20 5e 3d 20 \. A##mu0 ^=
1590: 44 75 30 3b 20 5c 0a 20 20 20 20 42 6b 6f 30 20 Du0; \. Bko0
15a0: 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 30 2c 20 = ROL32(A##mu0,
15b0: 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65 30 4); \. E##ke0
15c0: 20 3d 20 20 20 42 6b 65 30 20 5e 28 20 20 42 6b = Bke0 ^( Bk
15d0: 69 30 20 26 20 20 42 6b 6f 30 20 29 3b 20 5c 0a i0 & Bko0 ); \.
15e0: 20 20 20 20 43 65 30 20 5e 3d 20 45 23 23 6b 65 Ce0 ^= E##ke
15f0: 30 3b 20 5c 0a 20 20 20 20 41 23 23 73 61 30 20 0; \. A##sa0
1600: 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 20 42 6b ^= Da0; \. Bk
1610: 75 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 61 u0 = ROL32(A##sa
1620: 30 2c 20 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 0, 9); \. E##
1630: 6b 69 30 20 3d 20 20 20 42 6b 69 30 20 5e 28 28 ki0 = Bki0 ^((
1640: 7e 42 6b 6f 30 29 26 20 20 42 6b 75 30 20 29 3b ~Bko0)& Bku0 );
1650: 20 5c 0a 20 20 20 20 43 69 30 20 5e 3d 20 45 23 \. Ci0 ^= E#
1660: 23 6b 69 30 3b 20 5c 0a 20 20 20 20 45 23 23 6b #ki0; \. E##k
1670: 6f 30 20 3d 20 28 7e 42 6b 6f 30 29 5e 28 20 20 o0 = (~Bko0)^(
1680: 42 6b 75 30 20 7c 20 20 42 6b 61 30 20 29 3b 20 Bku0 | Bka0 );
1690: 5c 0a 20 20 20 20 43 6f 30 20 5e 3d 20 45 23 23 \. Co0 ^= E##
16a0: 6b 6f 30 3b 20 5c 0a 20 20 20 20 45 23 23 6b 75 ko0; \. E##ku
16b0: 30 20 3d 20 20 20 42 6b 75 30 20 5e 28 20 20 42 0 = Bku0 ^( B
16c0: 6b 61 30 20 26 20 20 42 6b 65 30 20 29 3b 20 5c ka0 & Bke0 ); \
16d0: 0a 20 20 20 20 43 75 30 20 5e 3d 20 45 23 23 6b . Cu0 ^= E##k
16e0: 75 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 u0; \.\. A##b
16f0: 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 e0 ^= De0; \.
1700: 20 42 6b 61 31 20 3d 20 41 23 23 62 65 30 3b 20 Bka1 = A##be0;
1710: 5c 0a 20 20 20 20 41 23 23 67 69 31 20 5e 3d 20 \. A##gi1 ^=
1720: 44 69 31 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 Di1; \. Bke1
1730: 3d 20 52 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 = ROL32(A##gi1,
1740: 33 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 3); \. A##ko0
1750: 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 ^= Do0; \. B
1760: 6b 69 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b ki1 = ROL32(A##k
1770: 6f 30 2c 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 o0, 12); \. E
1780: 23 23 6b 61 31 20 3d 20 20 20 42 6b 61 31 20 5e ##ka1 = Bka1 ^
1790: 28 20 20 42 6b 65 31 20 7c 20 20 42 6b 69 31 20 ( Bke1 | Bki1
17a0: 29 3b 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d 20 ); \. Ca1 ^=
17b0: 45 23 23 6b 61 31 3b 20 5c 0a 20 20 20 20 41 23 E##ka1; \. A#
17c0: 23 6d 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 #mu1 ^= Du1; \.
17d0: 20 20 20 42 6b 6f 31 20 3d 20 52 4f 4c 33 32 28 Bko1 = ROL32(
17e0: 41 23 23 6d 75 31 2c 20 34 29 3b 20 5c 0a 20 20 A##mu1, 4); \.
17f0: 20 20 45 23 23 6b 65 31 20 3d 20 20 20 42 6b 65 E##ke1 = Bke
1800: 31 20 5e 28 20 20 42 6b 69 31 20 26 20 20 42 6b 1 ^( Bki1 & Bk
1810: 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 o1 ); \. Ce1
1820: 5e 3d 20 45 23 23 6b 65 31 3b 20 5c 0a 20 20 20 ^= E##ke1; \.
1830: 20 41 23 23 73 61 31 20 5e 3d 20 44 61 31 3b 20 A##sa1 ^= Da1;
1840: 5c 0a 20 20 20 20 42 6b 75 31 20 3d 20 52 4f 4c \. Bku1 = ROL
1850: 33 32 28 41 23 23 73 61 31 2c 20 39 29 3b 20 5c 32(A##sa1, 9); \
1860: 0a 20 20 20 20 45 23 23 6b 69 31 20 3d 20 20 20 . E##ki1 =
1870: 42 6b 69 31 20 5e 28 28 7e 42 6b 6f 31 29 26 20 Bki1 ^((~Bko1)&
1880: 20 42 6b 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 Bku1 ); \. C
1890: 69 31 20 5e 3d 20 45 23 23 6b 69 31 3b 20 5c 0a i1 ^= E##ki1; \.
18a0: 20 20 20 20 45 23 23 6b 6f 31 20 3d 20 28 7e 42 E##ko1 = (~B
18b0: 6b 6f 31 29 5e 28 20 20 42 6b 75 31 20 7c 20 20 ko1)^( Bku1 |
18c0: 42 6b 61 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f Bka1 ); \. Co
18d0: 31 20 5e 3d 20 45 23 23 6b 6f 31 3b 20 5c 0a 20 1 ^= E##ko1; \.
18e0: 20 20 20 45 23 23 6b 75 31 20 3d 20 20 20 42 6b E##ku1 = Bk
18f0: 75 31 20 5e 28 20 20 42 6b 61 31 20 26 20 20 42 u1 ^( Bka1 & B
1900: 6b 65 31 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 ke1 ); \. Cu1
1910: 20 5e 3d 20 45 23 23 6b 75 31 3b 20 5c 0a 5c 0a ^= E##ku1; \.\.
1920: 20 20 20 20 41 23 23 62 75 31 20 5e 3d 20 44 75 A##bu1 ^= Du
1930: 31 3b 20 5c 0a 20 20 20 20 42 6d 61 30 20 3d 20 1; \. Bma0 =
1940: 52 4f 4c 33 32 28 41 23 23 62 75 31 2c 20 31 34 ROL32(A##bu1, 14
1950: 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 30 20 ); \. A##ga0
1960: 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 20 42 6d ^= Da0; \. Bm
1970: 65 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 61 e0 = ROL32(A##ga
1980: 30 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 23 0, 18); \. A#
1990: 23 6b 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 #ke0 ^= De0; \.
19a0: 20 20 20 42 6d 69 30 20 3d 20 52 4f 4c 33 32 28 Bmi0 = ROL32(
19b0: 41 23 23 6b 65 30 2c 20 35 29 3b 20 5c 0a 20 20 A##ke0, 5); \.
19c0: 20 20 45 23 23 6d 61 30 20 3d 20 20 20 42 6d 61 E##ma0 = Bma
19d0: 30 20 5e 28 20 20 42 6d 65 30 20 26 20 20 42 6d 0 ^( Bme0 & Bm
19e0: 69 30 20 29 3b 20 5c 0a 20 20 20 20 43 61 30 20 i0 ); \. Ca0
19f0: 5e 3d 20 45 23 23 6d 61 30 3b 20 5c 0a 20 20 20 ^= E##ma0; \.
1a00: 20 41 23 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20 A##mi1 ^= Di1;
1a10: 5c 0a 20 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c \. Bmo0 = ROL
1a20: 33 32 28 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c 32(A##mi1, 8); \
1a30: 0a 20 20 20 20 45 23 23 6d 65 30 20 3d 20 20 20 . E##me0 =
1a40: 42 6d 65 30 20 5e 28 20 20 42 6d 69 30 20 7c 20 Bme0 ^( Bmi0 |
1a50: 20 42 6d 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43 Bmo0 ); \. C
1a60: 65 30 20 5e 3d 20 45 23 23 6d 65 30 3b 20 5c 0a e0 ^= E##me0; \.
1a70: 20 20 20 20 41 23 23 73 6f 30 20 5e 3d 20 44 6f A##so0 ^= Do
1a80: 30 3b 20 5c 0a 20 20 20 20 42 6d 75 30 20 3d 20 0; \. Bmu0 =
1a90: 52 4f 4c 33 32 28 41 23 23 73 6f 30 2c 20 32 38 ROL32(A##so0, 28
1aa0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 69 30 20 ); \. E##mi0
1ab0: 3d 20 20 20 42 6d 69 30 20 5e 28 28 7e 42 6d 6f = Bmi0 ^((~Bmo
1ac0: 30 29 7c 20 20 42 6d 75 30 20 29 3b 20 5c 0a 20 0)| Bmu0 ); \.
1ad0: 20 20 20 43 69 30 20 5e 3d 20 45 23 23 6d 69 30 Ci0 ^= E##mi0
1ae0: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 30 20 3d ; \. E##mo0 =
1af0: 20 28 7e 42 6d 6f 30 29 5e 28 20 20 42 6d 75 30 (~Bmo0)^( Bmu0
1b00: 20 26 20 20 42 6d 61 30 20 29 3b 20 5c 0a 20 20 & Bma0 ); \.
1b10: 20 20 43 6f 30 20 5e 3d 20 45 23 23 6d 6f 30 3b Co0 ^= E##mo0;
1b20: 20 5c 0a 20 20 20 20 45 23 23 6d 75 30 20 3d 20 \. E##mu0 =
1b30: 20 20 42 6d 75 30 20 5e 28 20 20 42 6d 61 30 20 Bmu0 ^( Bma0
1b40: 7c 20 20 42 6d 65 30 20 29 3b 20 5c 0a 20 20 20 | Bme0 ); \.
1b50: 20 43 75 30 20 5e 3d 20 45 23 23 6d 75 30 3b 20 Cu0 ^= E##mu0;
1b60: 5c 0a 5c 0a 20 20 20 20 41 23 23 62 75 30 20 5e \.\. A##bu0 ^
1b70: 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 6d 61 = Du0; \. Bma
1b80: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 75 30 1 = ROL32(A##bu0
1b90: 2c 20 31 33 29 3b 20 5c 0a 20 20 20 20 41 23 23 , 13); \. A##
1ba0: 67 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 ga1 ^= Da1; \.
1bb0: 20 20 42 6d 65 31 20 3d 20 52 4f 4c 33 32 28 41 Bme1 = ROL32(A
1bc0: 23 23 67 61 31 2c 20 31 38 29 3b 20 5c 0a 20 20 ##ga1, 18); \.
1bd0: 20 20 41 23 23 6b 65 31 20 5e 3d 20 44 65 31 3b A##ke1 ^= De1;
1be0: 20 5c 0a 20 20 20 20 42 6d 69 31 20 3d 20 52 4f \. Bmi1 = RO
1bf0: 4c 33 32 28 41 23 23 6b 65 31 2c 20 35 29 3b 20 L32(A##ke1, 5);
1c00: 5c 0a 20 20 20 20 45 23 23 6d 61 31 20 3d 20 20 \. E##ma1 =
1c10: 20 42 6d 61 31 20 5e 28 20 20 42 6d 65 31 20 26 Bma1 ^( Bme1 &
1c20: 20 20 42 6d 69 31 20 29 3b 20 5c 0a 20 20 20 20 Bmi1 ); \.
1c30: 43 61 31 20 5e 3d 20 45 23 23 6d 61 31 3b 20 5c Ca1 ^= E##ma1; \
1c40: 0a 20 20 20 20 41 23 23 6d 69 30 20 5e 3d 20 44 . A##mi0 ^= D
1c50: 69 30 3b 20 5c 0a 20 20 20 20 42 6d 6f 31 20 3d i0; \. Bmo1 =
1c60: 20 52 4f 4c 33 32 28 41 23 23 6d 69 30 2c 20 37 ROL32(A##mi0, 7
1c70: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 65 31 20 ); \. E##me1
1c80: 3d 20 20 20 42 6d 65 31 20 5e 28 20 20 42 6d 69 = Bme1 ^( Bmi
1c90: 31 20 7c 20 20 42 6d 6f 31 20 29 3b 20 5c 0a 20 1 | Bmo1 ); \.
1ca0: 20 20 20 43 65 31 20 5e 3d 20 45 23 23 6d 65 31 Ce1 ^= E##me1
1cb0: 3b 20 5c 0a 20 20 20 20 41 23 23 73 6f 31 20 5e ; \. A##so1 ^
1cc0: 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6d 75 = Do1; \. Bmu
1cd0: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 6f 31 1 = ROL32(A##so1
1ce0: 2c 20 32 38 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 28); \. E##
1cf0: 6d 69 31 20 3d 20 20 20 42 6d 69 31 20 5e 28 28 mi1 = Bmi1 ^((
1d00: 7e 42 6d 6f 31 29 7c 20 20 42 6d 75 31 20 29 3b ~Bmo1)| Bmu1 );
1d10: 20 5c 0a 20 20 20 20 43 69 31 20 5e 3d 20 45 23 \. Ci1 ^= E#
1d20: 23 6d 69 31 3b 20 5c 0a 20 20 20 20 45 23 23 6d #mi1; \. E##m
1d30: 6f 31 20 3d 20 28 7e 42 6d 6f 31 29 5e 28 20 20 o1 = (~Bmo1)^(
1d40: 42 6d 75 31 20 26 20 20 42 6d 61 31 20 29 3b 20 Bmu1 & Bma1 );
1d50: 5c 0a 20 20 20 20 43 6f 31 20 5e 3d 20 45 23 23 \. Co1 ^= E##
1d60: 6d 6f 31 3b 20 5c 0a 20 20 20 20 45 23 23 6d 75 mo1; \. E##mu
1d70: 31 20 3d 20 20 20 42 6d 75 31 20 5e 28 20 20 42 1 = Bmu1 ^( B
1d80: 6d 61 31 20 7c 20 20 42 6d 65 31 20 29 3b 20 5c ma1 | Bme1 ); \
1d90: 0a 20 20 20 20 43 75 31 20 5e 3d 20 45 23 23 6d . Cu1 ^= E##m
1da0: 75 31 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 u1; \.\. A##b
1db0: 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 i0 ^= Di0; \.
1dc0: 20 42 73 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 Bsa0 = ROL32(A#
1dd0: 23 62 69 30 2c 20 33 31 29 3b 20 5c 0a 20 20 20 #bi0, 31); \.
1de0: 20 41 23 23 67 6f 31 20 5e 3d 20 44 6f 31 3b 20 A##go1 ^= Do1;
1df0: 5c 0a 20 20 20 20 42 73 65 30 20 3d 20 52 4f 4c \. Bse0 = ROL
1e00: 33 32 28 41 23 23 67 6f 31 2c 20 32 38 29 3b 20 32(A##go1, 28);
1e10: 5c 0a 20 20 20 20 41 23 23 6b 75 31 20 5e 3d 20 \. A##ku1 ^=
1e20: 44 75 31 3b 20 5c 0a 20 20 20 20 42 73 69 30 20 Du1; \. Bsi0
1e30: 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 31 2c 20 = ROL32(A##ku1,
1e40: 32 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 20); \. E##sa
1e50: 30 20 3d 20 20 20 42 73 61 30 20 5e 28 28 7e 42 0 = Bsa0 ^((~B
1e60: 73 65 30 29 26 20 20 42 73 69 30 20 29 3b 20 5c se0)& Bsi0 ); \
1e70: 0a 20 20 20 20 43 61 30 20 5e 3d 20 45 23 23 73 . Ca0 ^= E##s
1e80: 61 30 3b 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 a0; \. A##ma1
1e90: 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 ^= Da1; \. B
1ea0: 73 6f 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d so0 = ROL32(A##m
1eb0: 61 31 2c 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 a1, 21); \. E
1ec0: 23 23 73 65 30 20 3d 20 28 7e 42 73 65 30 29 5e ##se0 = (~Bse0)^
1ed0: 28 20 20 42 73 69 30 20 7c 20 20 42 73 6f 30 20 ( Bsi0 | Bso0
1ee0: 29 3b 20 5c 0a 20 20 20 20 43 65 30 20 5e 3d 20 ); \. Ce0 ^=
1ef0: 45 23 23 73 65 30 3b 20 5c 0a 20 20 20 20 41 23 E##se0; \. A#
1f00: 23 73 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 #se0 ^= De0; \.
1f10: 20 20 20 42 73 75 30 20 3d 20 52 4f 4c 33 32 28 Bsu0 = ROL32(
1f20: 41 23 23 73 65 30 2c 20 31 29 3b 20 5c 0a 20 20 A##se0, 1); \.
1f30: 20 20 45 23 23 73 69 30 20 3d 20 20 20 42 73 69 E##si0 = Bsi
1f40: 30 20 5e 28 20 20 42 73 6f 30 20 26 20 20 42 73 0 ^( Bso0 & Bs
1f50: 75 30 20 29 3b 20 5c 0a 20 20 20 20 43 69 30 20 u0 ); \. Ci0
1f60: 5e 3d 20 45 23 23 73 69 30 3b 20 5c 0a 20 20 20 ^= E##si0; \.
1f70: 20 45 23 23 73 6f 30 20 3d 20 20 20 42 73 6f 30 E##so0 = Bso0
1f80: 20 5e 28 20 20 42 73 75 30 20 7c 20 20 42 73 61 ^( Bsu0 | Bsa
1f90: 30 20 29 3b 20 5c 0a 20 20 20 20 43 6f 30 20 5e 0 ); \. Co0 ^
1fa0: 3d 20 45 23 23 73 6f 30 3b 20 5c 0a 20 20 20 20 = E##so0; \.
1fb0: 45 23 23 73 75 30 20 3d 20 20 20 42 73 75 30 20 E##su0 = Bsu0
1fc0: 5e 28 20 20 42 73 61 30 20 26 20 20 42 73 65 30 ^( Bsa0 & Bse0
1fd0: 20 29 3b 20 5c 0a 20 20 20 20 43 75 30 20 5e 3d ); \. Cu0 ^=
1fe0: 20 45 23 23 73 75 30 3b 20 5c 0a 5c 0a 20 20 20 E##su0; \.\.
1ff0: 20 41 23 23 62 69 31 20 5e 3d 20 44 69 31 3b 20 A##bi1 ^= Di1;
2000: 5c 0a 20 20 20 20 42 73 61 31 20 3d 20 52 4f 4c \. Bsa1 = ROL
2010: 33 32 28 41 23 23 62 69 31 2c 20 33 31 29 3b 20 32(A##bi1, 31);
2020: 5c 0a 20 20 20 20 41 23 23 67 6f 30 20 5e 3d 20 \. A##go0 ^=
2030: 44 6f 30 3b 20 5c 0a 20 20 20 20 42 73 65 31 20 Do0; \. Bse1
2040: 3d 20 52 4f 4c 33 32 28 41 23 23 67 6f 30 2c 20 = ROL32(A##go0,
2050: 32 37 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 27); \. A##ku
2060: 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 0 ^= Du0; \.
2070: 42 73 69 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bsi1 = ROL32(A##
2080: 6b 75 30 2c 20 31 39 29 3b 20 5c 0a 20 20 20 20 ku0, 19); \.
2090: 45 23 23 73 61 31 20 3d 20 20 20 42 73 61 31 20 E##sa1 = Bsa1
20a0: 5e 28 28 7e 42 73 65 31 29 26 20 20 42 73 69 31 ^((~Bse1)& Bsi1
20b0: 20 29 3b 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d ); \. Ca1 ^=
20c0: 20 45 23 23 73 61 31 3b 20 5c 0a 20 20 20 20 41 E##sa1; \. A
20d0: 23 23 6d 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a ##ma0 ^= Da0; \.
20e0: 20 20 20 20 42 73 6f 31 20 3d 20 52 4f 4c 33 32 Bso1 = ROL32
20f0: 28 41 23 23 6d 61 30 2c 20 32 30 29 3b 20 5c 0a (A##ma0, 20); \.
2100: 20 20 20 20 45 23 23 73 65 31 20 3d 20 28 7e 42 E##se1 = (~B
2110: 73 65 31 29 5e 28 20 20 42 73 69 31 20 7c 20 20 se1)^( Bsi1 |
2120: 42 73 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 Bso1 ); \. Ce
2130: 31 20 5e 3d 20 45 23 23 73 65 31 3b 20 5c 0a 20 1 ^= E##se1; \.
2140: 20 20 20 41 23 23 73 65 31 20 5e 3d 20 44 65 31 A##se1 ^= De1
2150: 3b 20 5c 0a 20 20 20 20 42 73 75 31 20 3d 20 52 ; \. Bsu1 = R
2160: 4f 4c 33 32 28 41 23 23 73 65 31 2c 20 31 29 3b OL32(A##se1, 1);
2170: 20 5c 0a 20 20 20 20 45 23 23 73 69 31 20 3d 20 \. E##si1 =
2180: 20 20 42 73 69 31 20 5e 28 20 20 42 73 6f 31 20 Bsi1 ^( Bso1
2190: 26 20 20 42 73 75 31 20 29 3b 20 5c 0a 20 20 20 & Bsu1 ); \.
21a0: 20 43 69 31 20 5e 3d 20 45 23 23 73 69 31 3b 20 Ci1 ^= E##si1;
21b0: 5c 0a 20 20 20 20 45 23 23 73 6f 31 20 3d 20 20 \. E##so1 =
21c0: 20 42 73 6f 31 20 5e 28 20 20 42 73 75 31 20 7c Bso1 ^( Bsu1 |
21d0: 20 20 42 73 61 31 20 29 3b 20 5c 0a 20 20 20 20 Bsa1 ); \.
21e0: 43 6f 31 20 5e 3d 20 45 23 23 73 6f 31 3b 20 5c Co1 ^= E##so1; \
21f0: 0a 20 20 20 20 45 23 23 73 75 31 20 3d 20 20 20 . E##su1 =
2200: 42 73 75 31 20 5e 28 20 20 42 73 61 31 20 26 20 Bsu1 ^( Bsa1 &
2210: 20 42 73 65 31 20 29 3b 20 5c 0a 20 20 20 20 43 Bse1 ); \. C
2220: 75 31 20 5e 3d 20 45 23 23 73 75 31 3b 20 5c 0a u1 ^= E##su1; \.
2230: 5c 0a 0a 2f 2f 20 2d 2d 2d 20 43 6f 64 65 20 66 \..// --- Code f
2240: 6f 72 20 72 6f 75 6e 64 20 28 6c 61 6e 65 20 63 or round (lane c
2250: 6f 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 70 61 74 omplementing pat
2260: 74 65 72 6e 20 27 62 65 62 69 67 6f 6b 69 6d 69 tern 'bebigokimi
2270: 73 61 27 29 0a 2f 2f 20 2d 2d 2d 20 75 73 69 6e sa').// --- usin
2280: 67 20 66 61 63 74 6f 72 20 32 20 69 6e 74 65 72 g factor 2 inter
2290: 6c 65 61 76 69 6e 67 2c 20 36 34 2d 62 69 74 20 leaving, 64-bit
22a0: 6c 61 6e 65 73 20 6d 61 70 70 65 64 20 74 6f 20 lanes mapped to
22b0: 33 32 2d 62 69 74 20 77 6f 72 64 73 0a 23 64 65 32-bit words.#de
22c0: 66 69 6e 65 20 74 68 65 74 61 52 68 6f 50 69 43 fine thetaRhoPiC
22d0: 68 69 49 6f 74 61 28 69 2c 20 41 2c 20 45 29 20 hiIota(i, A, E)
22e0: 5c 0a 20 20 20 20 44 61 30 20 3d 20 43 75 30 5e \. Da0 = Cu0^
22f0: 52 4f 4c 33 32 28 43 65 31 2c 20 31 29 3b 20 5c ROL32(Ce1, 1); \
2300: 0a 20 20 20 20 44 61 31 20 3d 20 43 75 31 5e 43 . Da1 = Cu1^C
2310: 65 30 3b 20 5c 0a 20 20 20 20 44 65 30 20 3d 20 e0; \. De0 =
2320: 43 61 30 5e 52 4f 4c 33 32 28 43 69 31 2c 20 31 Ca0^ROL32(Ci1, 1
2330: 29 3b 20 5c 0a 20 20 20 20 44 65 31 20 3d 20 43 ); \. De1 = C
2340: 61 31 5e 43 69 30 3b 20 5c 0a 20 20 20 20 44 69 a1^Ci0; \. Di
2350: 30 20 3d 20 43 65 30 5e 52 4f 4c 33 32 28 43 6f 0 = Ce0^ROL32(Co
2360: 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 69 31 1, 1); \. Di1
2370: 20 3d 20 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 20 = Ce1^Co0; \.
2380: 20 20 44 6f 30 20 3d 20 43 69 30 5e 52 4f 4c 33 Do0 = Ci0^ROL3
2390: 32 28 43 75 31 2c 20 31 29 3b 20 5c 0a 20 20 20 2(Cu1, 1); \.
23a0: 20 44 6f 31 20 3d 20 43 69 31 5e 43 75 30 3b 20 Do1 = Ci1^Cu0;
23b0: 5c 0a 20 20 20 20 44 75 30 20 3d 20 43 6f 30 5e \. Du0 = Co0^
23c0: 52 4f 4c 33 32 28 43 61 31 2c 20 31 29 3b 20 5c ROL32(Ca1, 1); \
23d0: 0a 20 20 20 20 44 75 31 20 3d 20 43 6f 31 5e 43 . Du1 = Co1^C
23e0: 61 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 a0; \.\. A##b
23f0: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 a0 ^= Da0; \.
2400: 20 42 62 61 30 20 3d 20 41 23 23 62 61 30 3b 20 Bba0 = A##ba0;
2410: 5c 0a 20 20 20 20 41 23 23 67 65 30 20 5e 3d 20 \. A##ge0 ^=
2420: 44 65 30 3b 20 5c 0a 20 20 20 20 42 62 65 30 20 De0; \. Bbe0
2430: 3d 20 52 4f 4c 33 32 28 41 23 23 67 65 30 2c 20 = ROL32(A##ge0,
2440: 32 32 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 69 22); \. A##ki
2450: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 1 ^= Di1; \.
2460: 42 62 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bbi0 = ROL32(A##
2470: 6b 69 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20 20 ki1, 22); \.
2480: 45 23 23 62 61 30 20 3d 20 20 20 42 62 61 30 20 E##ba0 = Bba0
2490: 5e 28 20 20 42 62 65 30 20 7c 20 20 42 62 69 30 ^( Bbe0 | Bbi0
24a0: 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 30 ); \. E##ba0
24b0: 20 5e 3d 20 4b 65 63 63 61 6b 46 31 36 30 30 52 ^= KeccakF1600R
24c0: 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 6e oundConstants_in
24d0: 74 32 5f 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 41 t2_0[i]; \. A
24e0: 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a ##mo1 ^= Do1; \.
24f0: 20 20 20 20 42 62 6f 30 20 3d 20 52 4f 4c 33 32 Bbo0 = ROL32
2500: 28 41 23 23 6d 6f 31 2c 20 31 31 29 3b 20 5c 0a (A##mo1, 11); \.
2510: 20 20 20 20 45 23 23 62 65 30 20 3d 20 20 20 42 E##be0 = B
2520: 62 65 30 20 5e 28 28 7e 42 62 69 30 29 7c 20 20 be0 ^((~Bbi0)|
2530: 42 62 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 23 Bbo0 ); \. A#
2540: 23 73 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20 #su0 ^= Du0; \.
2550: 20 20 20 42 62 75 30 20 3d 20 52 4f 4c 33 32 28 Bbu0 = ROL32(
2560: 41 23 23 73 75 30 2c 20 37 29 3b 20 5c 0a 20 20 A##su0, 7); \.
2570: 20 20 45 23 23 62 69 30 20 3d 20 20 20 42 62 69 E##bi0 = Bbi
2580: 30 20 5e 28 20 20 42 62 6f 30 20 26 20 20 42 62 0 ^( Bbo0 & Bb
2590: 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 u0 ); \. E##b
25a0: 6f 30 20 3d 20 20 20 42 62 6f 30 20 5e 28 20 20 o0 = Bbo0 ^(
25b0: 42 62 75 30 20 7c 20 20 42 62 61 30 20 29 3b 20 Bbu0 | Bba0 );
25c0: 5c 0a 20 20 20 20 45 23 23 62 75 30 20 3d 20 20 \. E##bu0 =
25d0: 20 42 62 75 30 20 5e 28 20 20 42 62 61 30 20 26 Bbu0 ^( Bba0 &
25e0: 20 20 42 62 65 30 20 29 3b 20 5c 0a 5c 0a 20 20 Bbe0 ); \.\.
25f0: 20 20 41 23 23 62 61 31 20 5e 3d 20 44 61 31 3b A##ba1 ^= Da1;
2600: 20 5c 0a 20 20 20 20 42 62 61 31 20 3d 20 41 23 \. Bba1 = A#
2610: 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 67 #ba1; \. A##g
2620: 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 20 e1 ^= De1; \.
2630: 20 42 62 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 Bbe1 = ROL32(A#
2640: 23 67 65 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20 #ge1, 22); \.
2650: 20 41 23 23 6b 69 30 20 5e 3d 20 44 69 30 3b 20 A##ki0 ^= Di0;
2660: 5c 0a 20 20 20 20 42 62 69 31 20 3d 20 52 4f 4c \. Bbi1 = ROL
2670: 33 32 28 41 23 23 6b 69 30 2c 20 32 31 29 3b 20 32(A##ki0, 21);
2680: 5c 0a 20 20 20 20 45 23 23 62 61 31 20 3d 20 20 \. E##ba1 =
2690: 20 42 62 61 31 20 5e 28 20 20 42 62 65 31 20 7c Bba1 ^( Bbe1 |
26a0: 20 20 42 62 69 31 20 29 3b 20 5c 0a 20 20 20 20 Bbi1 ); \.
26b0: 45 23 23 62 61 31 20 5e 3d 20 4b 65 63 63 61 6b E##ba1 ^= Keccak
26c0: 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 74 61 F1600RoundConsta
26d0: 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 5d 3b 20 5c nts_int2_1[i]; \
26e0: 0a 20 20 20 20 41 23 23 6d 6f 30 20 5e 3d 20 44 . A##mo0 ^= D
26f0: 6f 30 3b 20 5c 0a 20 20 20 20 42 62 6f 31 20 3d o0; \. Bbo1 =
2700: 20 52 4f 4c 33 32 28 41 23 23 6d 6f 30 2c 20 31 ROL32(A##mo0, 1
2710: 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 65 31 0); \. E##be1
2720: 20 3d 20 20 20 42 62 65 31 20 5e 28 28 7e 42 62 = Bbe1 ^((~Bb
2730: 69 31 29 7c 20 20 42 62 6f 31 20 29 3b 20 5c 0a i1)| Bbo1 ); \.
2740: 20 20 20 20 41 23 23 73 75 31 20 5e 3d 20 44 75 A##su1 ^= Du
2750: 31 3b 20 5c 0a 20 20 20 20 42 62 75 31 20 3d 20 1; \. Bbu1 =
2760: 52 4f 4c 33 32 28 41 23 23 73 75 31 2c 20 37 29 ROL32(A##su1, 7)
2770: 3b 20 5c 0a 20 20 20 20 45 23 23 62 69 31 20 3d ; \. E##bi1 =
2780: 20 20 20 42 62 69 31 20 5e 28 20 20 42 62 6f 31 Bbi1 ^( Bbo1
2790: 20 26 20 20 42 62 75 31 20 29 3b 20 5c 0a 20 20 & Bbu1 ); \.
27a0: 20 20 45 23 23 62 6f 31 20 3d 20 20 20 42 62 6f E##bo1 = Bbo
27b0: 31 20 5e 28 20 20 42 62 75 31 20 7c 20 20 42 62 1 ^( Bbu1 | Bb
27c0: 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 a1 ); \. E##b
27d0: 75 31 20 3d 20 20 20 42 62 75 31 20 5e 28 20 20 u1 = Bbu1 ^(
27e0: 42 62 61 31 20 26 20 20 42 62 65 31 20 29 3b 20 Bba1 & Bbe1 );
27f0: 5c 0a 5c 0a 20 20 20 20 41 23 23 62 6f 30 20 5e \.\. A##bo0 ^
2800: 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 67 61 = Do0; \. Bga
2810: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 6f 30 0 = ROL32(A##bo0
2820: 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23 23 , 14); \. A##
2830: 67 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20 20 gu0 ^= Du0; \.
2840: 20 20 42 67 65 30 20 3d 20 52 4f 4c 33 32 28 41 Bge0 = ROL32(A
2850: 23 23 67 75 30 2c 20 31 30 29 3b 20 5c 0a 20 20 ##gu0, 10); \.
2860: 20 20 41 23 23 6b 61 31 20 5e 3d 20 44 61 31 3b A##ka1 ^= Da1;
2870: 20 5c 0a 20 20 20 20 42 67 69 30 20 3d 20 52 4f \. Bgi0 = RO
2880: 4c 33 32 28 41 23 23 6b 61 31 2c 20 32 29 3b 20 L32(A##ka1, 2);
2890: 5c 0a 20 20 20 20 45 23 23 67 61 30 20 3d 20 20 \. E##ga0 =
28a0: 20 42 67 61 30 20 5e 28 20 20 42 67 65 30 20 7c Bga0 ^( Bge0 |
28b0: 20 20 42 67 69 30 20 29 3b 20 5c 0a 20 20 20 20 Bgi0 ); \.
28c0: 41 23 23 6d 65 31 20 5e 3d 20 44 65 31 3b 20 5c A##me1 ^= De1; \
28d0: 0a 20 20 20 20 42 67 6f 30 20 3d 20 52 4f 4c 33 . Bgo0 = ROL3
28e0: 32 28 41 23 23 6d 65 31 2c 20 32 33 29 3b 20 5c 2(A##me1, 23); \
28f0: 0a 20 20 20 20 45 23 23 67 65 30 20 3d 20 20 20 . E##ge0 =
2900: 42 67 65 30 20 5e 28 20 20 42 67 69 30 20 26 20 Bge0 ^( Bgi0 &
2910: 20 42 67 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 Bgo0 ); \. A
2920: 23 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a ##si1 ^= Di1; \.
2930: 20 20 20 20 42 67 75 30 20 3d 20 52 4f 4c 33 32 Bgu0 = ROL32
2940: 28 41 23 23 73 69 31 2c 20 33 31 29 3b 20 5c 0a (A##si1, 31); \.
2950: 20 20 20 20 45 23 23 67 69 30 20 3d 20 20 20 42 E##gi0 = B
2960: 67 69 30 20 5e 28 20 20 42 67 6f 30 20 7c 28 7e gi0 ^( Bgo0 |(~
2970: 42 67 75 30 29 29 3b 20 5c 0a 20 20 20 20 45 23 Bgu0)); \. E#
2980: 23 67 6f 30 20 3d 20 20 20 42 67 6f 30 20 5e 28 #go0 = Bgo0 ^(
2990: 20 20 42 67 75 30 20 7c 20 20 42 67 61 30 20 29 Bgu0 | Bga0 )
29a0: 3b 20 5c 0a 20 20 20 20 45 23 23 67 75 30 20 3d ; \. E##gu0 =
29b0: 20 20 20 42 67 75 30 20 5e 28 20 20 42 67 61 30 Bgu0 ^( Bga0
29c0: 20 26 20 20 42 67 65 30 20 29 3b 20 5c 0a 5c 0a & Bge0 ); \.\.
29d0: 20 20 20 20 41 23 23 62 6f 31 20 5e 3d 20 44 6f A##bo1 ^= Do
29e0: 31 3b 20 5c 0a 20 20 20 20 42 67 61 31 20 3d 20 1; \. Bga1 =
29f0: 52 4f 4c 33 32 28 41 23 23 62 6f 31 2c 20 31 34 ROL32(A##bo1, 14
2a00: 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 75 31 20 ); \. A##gu1
2a10: 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 67 ^= Du1; \. Bg
2a20: 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 75 e1 = ROL32(A##gu
2a30: 31 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 41 23 1, 10); \. A#
2a40: 23 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 #ka0 ^= Da0; \.
2a50: 20 20 20 42 67 69 31 20 3d 20 52 4f 4c 33 32 28 Bgi1 = ROL32(
2a60: 41 23 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20 20 A##ka0, 1); \.
2a70: 20 20 45 23 23 67 61 31 20 3d 20 20 20 42 67 61 E##ga1 = Bga
2a80: 31 20 5e 28 20 20 42 67 65 31 20 7c 20 20 42 67 1 ^( Bge1 | Bg
2a90: 69 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 6d i1 ); \. A##m
2aa0: 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 e0 ^= De0; \.
2ab0: 20 42 67 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 Bgo1 = ROL32(A#
2ac0: 23 6d 65 30 2c 20 32 32 29 3b 20 5c 0a 20 20 20 #me0, 22); \.
2ad0: 20 45 23 23 67 65 31 20 3d 20 20 20 42 67 65 31 E##ge1 = Bge1
2ae0: 20 5e 28 20 20 42 67 69 31 20 26 20 20 42 67 6f ^( Bgi1 & Bgo
2af0: 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 69 1 ); \. A##si
2b00: 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20 0 ^= Di0; \.
2b10: 42 67 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bgu1 = ROL32(A##
2b20: 73 69 30 2c 20 33 30 29 3b 20 5c 0a 20 20 20 20 si0, 30); \.
2b30: 45 23 23 67 69 31 20 3d 20 20 20 42 67 69 31 20 E##gi1 = Bgi1
2b40: 5e 28 20 20 42 67 6f 31 20 7c 28 7e 42 67 75 31 ^( Bgo1 |(~Bgu1
2b50: 29 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 6f 31 )); \. E##go1
2b60: 20 3d 20 20 20 42 67 6f 31 20 5e 28 20 20 42 67 = Bgo1 ^( Bg
2b70: 75 31 20 7c 20 20 42 67 61 31 20 29 3b 20 5c 0a u1 | Bga1 ); \.
2b80: 20 20 20 20 45 23 23 67 75 31 20 3d 20 20 20 42 E##gu1 = B
2b90: 67 75 31 20 5e 28 20 20 42 67 61 31 20 26 20 20 gu1 ^( Bga1 &
2ba0: 42 67 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 20 Bge1 ); \.\.
2bb0: 41 23 23 62 65 31 20 5e 3d 20 44 65 31 3b 20 5c A##be1 ^= De1; \
2bc0: 0a 20 20 20 20 42 6b 61 30 20 3d 20 52 4f 4c 33 . Bka0 = ROL3
2bd0: 32 28 41 23 23 62 65 31 2c 20 31 29 3b 20 5c 0a 2(A##be1, 1); \.
2be0: 20 20 20 20 41 23 23 67 69 30 20 5e 3d 20 44 69 A##gi0 ^= Di
2bf0: 30 3b 20 5c 0a 20 20 20 20 42 6b 65 30 20 3d 20 0; \. Bke0 =
2c00: 52 4f 4c 33 32 28 41 23 23 67 69 30 2c 20 33 29 ROL32(A##gi0, 3)
2c10: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 31 20 5e ; \. A##ko1 ^
2c20: 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6b 69 = Do1; \. Bki
2c30: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 31 0 = ROL32(A##ko1
2c40: 2c 20 31 33 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 13); \. E##
2c50: 6b 61 30 20 3d 20 20 20 42 6b 61 30 20 5e 28 20 ka0 = Bka0 ^(
2c60: 20 42 6b 65 30 20 7c 20 20 42 6b 69 30 20 29 3b Bke0 | Bki0 );
2c70: 20 5c 0a 20 20 20 20 41 23 23 6d 75 30 20 5e 3d \. A##mu0 ^=
2c80: 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 6b 6f 30 Du0; \. Bko0
2c90: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 30 2c = ROL32(A##mu0,
2ca0: 20 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65 4); \. E##ke
2cb0: 30 20 3d 20 20 20 42 6b 65 30 20 5e 28 20 20 42 0 = Bke0 ^( B
2cc0: 6b 69 30 20 26 20 20 42 6b 6f 30 20 29 3b 20 5c ki0 & Bko0 ); \
2cd0: 0a 20 20 20 20 41 23 23 73 61 30 20 5e 3d 20 44 . A##sa0 ^= D
2ce0: 61 30 3b 20 5c 0a 20 20 20 20 42 6b 75 30 20 3d a0; \. Bku0 =
2cf0: 20 52 4f 4c 33 32 28 41 23 23 73 61 30 2c 20 39 ROL32(A##sa0, 9
2d00: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 30 20 ); \. E##ki0
2d10: 3d 20 20 20 42 6b 69 30 20 5e 28 28 7e 42 6b 6f = Bki0 ^((~Bko
2d20: 30 29 26 20 20 42 6b 75 30 20 29 3b 20 5c 0a 20 0)& Bku0 ); \.
2d30: 20 20 20 45 23 23 6b 6f 30 20 3d 20 28 7e 42 6b E##ko0 = (~Bk
2d40: 6f 30 29 5e 28 20 20 42 6b 75 30 20 7c 20 20 42 o0)^( Bku0 | B
2d50: 6b 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 ka0 ); \. E##
2d60: 6b 75 30 20 3d 20 20 20 42 6b 75 30 20 5e 28 20 ku0 = Bku0 ^(
2d70: 20 42 6b 61 30 20 26 20 20 42 6b 65 30 20 29 3b Bka0 & Bke0 );
2d80: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 30 20 \.\. A##be0
2d90: 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 6b ^= De0; \. Bk
2da0: 61 31 20 3d 20 41 23 23 62 65 30 3b 20 5c 0a 20 a1 = A##be0; \.
2db0: 20 20 20 41 23 23 67 69 31 20 5e 3d 20 44 69 31 A##gi1 ^= Di1
2dc0: 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 3d 20 52 ; \. Bke1 = R
2dd0: 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 33 29 3b OL32(A##gi1, 3);
2de0: 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 20 5e 3d \. A##ko0 ^=
2df0: 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 6b 69 31 Do0; \. Bki1
2e00: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 30 2c = ROL32(A##ko0,
2e10: 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 12); \. E##k
2e20: 61 31 20 3d 20 20 20 42 6b 61 31 20 5e 28 20 20 a1 = Bka1 ^(
2e30: 42 6b 65 31 20 7c 20 20 42 6b 69 31 20 29 3b 20 Bke1 | Bki1 );
2e40: 5c 0a 20 20 20 20 41 23 23 6d 75 31 20 5e 3d 20 \. A##mu1 ^=
2e50: 44 75 31 3b 20 5c 0a 20 20 20 20 42 6b 6f 31 20 Du1; \. Bko1
2e60: 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 31 2c 20 = ROL32(A##mu1,
2e70: 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65 31 4); \. E##ke1
2e80: 20 3d 20 20 20 42 6b 65 31 20 5e 28 20 20 42 6b = Bke1 ^( Bk
2e90: 69 31 20 26 20 20 42 6b 6f 31 20 29 3b 20 5c 0a i1 & Bko1 ); \.
2ea0: 20 20 20 20 41 23 23 73 61 31 20 5e 3d 20 44 61 A##sa1 ^= Da
2eb0: 31 3b 20 5c 0a 20 20 20 20 42 6b 75 31 20 3d 20 1; \. Bku1 =
2ec0: 52 4f 4c 33 32 28 41 23 23 73 61 31 2c 20 39 29 ROL32(A##sa1, 9)
2ed0: 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 31 20 3d ; \. E##ki1 =
2ee0: 20 20 20 42 6b 69 31 20 5e 28 28 7e 42 6b 6f 31 Bki1 ^((~Bko1
2ef0: 29 26 20 20 42 6b 75 31 20 29 3b 20 5c 0a 20 20 )& Bku1 ); \.
2f00: 20 20 45 23 23 6b 6f 31 20 3d 20 28 7e 42 6b 6f E##ko1 = (~Bko
2f10: 31 29 5e 28 20 20 42 6b 75 31 20 7c 20 20 42 6b 1)^( Bku1 | Bk
2f20: 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b a1 ); \. E##k
2f30: 75 31 20 3d 20 20 20 42 6b 75 31 20 5e 28 20 20 u1 = Bku1 ^(
2f40: 42 6b 61 31 20 26 20 20 42 6b 65 31 20 29 3b 20 Bka1 & Bke1 );
2f50: 5c 0a 5c 0a 20 20 20 20 41 23 23 62 75 31 20 5e \.\. A##bu1 ^
2f60: 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 6d 61 = Du1; \. Bma
2f70: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 75 31 0 = ROL32(A##bu1
2f80: 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23 23 , 14); \. A##
2f90: 67 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 ga0 ^= Da0; \.
2fa0: 20 20 42 6d 65 30 20 3d 20 52 4f 4c 33 32 28 41 Bme0 = ROL32(A
2fb0: 23 23 67 61 30 2c 20 31 38 29 3b 20 5c 0a 20 20 ##ga0, 18); \.
2fc0: 20 20 41 23 23 6b 65 30 20 5e 3d 20 44 65 30 3b A##ke0 ^= De0;
2fd0: 20 5c 0a 20 20 20 20 42 6d 69 30 20 3d 20 52 4f \. Bmi0 = RO
2fe0: 4c 33 32 28 41 23 23 6b 65 30 2c 20 35 29 3b 20 L32(A##ke0, 5);
2ff0: 5c 0a 20 20 20 20 45 23 23 6d 61 30 20 3d 20 20 \. E##ma0 =
3000: 20 42 6d 61 30 20 5e 28 20 20 42 6d 65 30 20 26 Bma0 ^( Bme0 &
3010: 20 20 42 6d 69 30 20 29 3b 20 5c 0a 20 20 20 20 Bmi0 ); \.
3020: 41 23 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20 5c A##mi1 ^= Di1; \
3030: 0a 20 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c 33 . Bmo0 = ROL3
3040: 32 28 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c 0a 2(A##mi1, 8); \.
3050: 20 20 20 20 45 23 23 6d 65 30 20 3d 20 20 20 42 E##me0 = B
3060: 6d 65 30 20 5e 28 20 20 42 6d 69 30 20 7c 20 20 me0 ^( Bmi0 |
3070: 42 6d 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 23 Bmo0 ); \. A#
3080: 23 73 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 #so0 ^= Do0; \.
3090: 20 20 20 42 6d 75 30 20 3d 20 52 4f 4c 33 32 28 Bmu0 = ROL32(
30a0: 41 23 23 73 6f 30 2c 20 32 38 29 3b 20 5c 0a 20 A##so0, 28); \.
30b0: 20 20 20 45 23 23 6d 69 30 20 3d 20 20 20 42 6d E##mi0 = Bm
30c0: 69 30 20 5e 28 28 7e 42 6d 6f 30 29 7c 20 20 42 i0 ^((~Bmo0)| B
30d0: 6d 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 mu0 ); \. E##
30e0: 6d 6f 30 20 3d 20 28 7e 42 6d 6f 30 29 5e 28 20 mo0 = (~Bmo0)^(
30f0: 20 42 6d 75 30 20 26 20 20 42 6d 61 30 20 29 3b Bmu0 & Bma0 );
3100: 20 5c 0a 20 20 20 20 45 23 23 6d 75 30 20 3d 20 \. E##mu0 =
3110: 20 20 42 6d 75 30 20 5e 28 20 20 42 6d 61 30 20 Bmu0 ^( Bma0
3120: 7c 20 20 42 6d 65 30 20 29 3b 20 5c 0a 5c 0a 20 | Bme0 ); \.\.
3130: 20 20 20 41 23 23 62 75 30 20 5e 3d 20 44 75 30 A##bu0 ^= Du0
3140: 3b 20 5c 0a 20 20 20 20 42 6d 61 31 20 3d 20 52 ; \. Bma1 = R
3150: 4f 4c 33 32 28 41 23 23 62 75 30 2c 20 31 33 29 OL32(A##bu0, 13)
3160: 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 31 20 5e ; \. A##ga1 ^
3170: 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 6d 65 = Da1; \. Bme
3180: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 61 31 1 = ROL32(A##ga1
3190: 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 23 23 , 18); \. A##
31a0: 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 ke1 ^= De1; \.
31b0: 20 20 42 6d 69 31 20 3d 20 52 4f 4c 33 32 28 41 Bmi1 = ROL32(A
31c0: 23 23 6b 65 31 2c 20 35 29 3b 20 5c 0a 20 20 20 ##ke1, 5); \.
31d0: 20 45 23 23 6d 61 31 20 3d 20 20 20 42 6d 61 31 E##ma1 = Bma1
31e0: 20 5e 28 20 20 42 6d 65 31 20 26 20 20 42 6d 69 ^( Bme1 & Bmi
31f0: 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 6d 69 1 ); \. A##mi
3200: 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20 0 ^= Di0; \.
3210: 42 6d 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bmo1 = ROL32(A##
3220: 6d 69 30 2c 20 37 29 3b 20 5c 0a 20 20 20 20 45 mi0, 7); \. E
3230: 23 23 6d 65 31 20 3d 20 20 20 42 6d 65 31 20 5e ##me1 = Bme1 ^
3240: 28 20 20 42 6d 69 31 20 7c 20 20 42 6d 6f 31 20 ( Bmi1 | Bmo1
3250: 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 6f 31 20 ); \. A##so1
3260: 5e 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6d ^= Do1; \. Bm
3270: 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 6f u1 = ROL32(A##so
3280: 31 2c 20 32 38 29 3b 20 5c 0a 20 20 20 20 45 23 1, 28); \. E#
3290: 23 6d 69 31 20 3d 20 20 20 42 6d 69 31 20 5e 28 #mi1 = Bmi1 ^(
32a0: 28 7e 42 6d 6f 31 29 7c 20 20 42 6d 75 31 20 29 (~Bmo1)| Bmu1 )
32b0: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 31 20 3d ; \. E##mo1 =
32c0: 20 28 7e 42 6d 6f 31 29 5e 28 20 20 42 6d 75 31 (~Bmo1)^( Bmu1
32d0: 20 26 20 20 42 6d 61 31 20 29 3b 20 5c 0a 20 20 & Bma1 ); \.
32e0: 20 20 45 23 23 6d 75 31 20 3d 20 20 20 42 6d 75 E##mu1 = Bmu
32f0: 31 20 5e 28 20 20 42 6d 61 31 20 7c 20 20 42 6d 1 ^( Bma1 | Bm
3300: 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 e1 ); \.\. A#
3310: 23 62 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 #bi0 ^= Di0; \.
3320: 20 20 20 42 73 61 30 20 3d 20 52 4f 4c 33 32 28 Bsa0 = ROL32(
3330: 41 23 23 62 69 30 2c 20 33 31 29 3b 20 5c 0a 20 A##bi0, 31); \.
3340: 20 20 20 41 23 23 67 6f 31 20 5e 3d 20 44 6f 31 A##go1 ^= Do1
3350: 3b 20 5c 0a 20 20 20 20 42 73 65 30 20 3d 20 52 ; \. Bse0 = R
3360: 4f 4c 33 32 28 41 23 23 67 6f 31 2c 20 32 38 29 OL32(A##go1, 28)
3370: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 31 20 5e ; \. A##ku1 ^
3380: 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 73 69 = Du1; \. Bsi
3390: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 31 0 = ROL32(A##ku1
33a0: 2c 20 32 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 20); \. E##
33b0: 73 61 30 20 3d 20 20 20 42 73 61 30 20 5e 28 28 sa0 = Bsa0 ^((
33c0: 7e 42 73 65 30 29 26 20 20 42 73 69 30 20 29 3b ~Bse0)& Bsi0 );
33d0: 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 20 5e 3d \. A##ma1 ^=
33e0: 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 73 6f 30 Da1; \. Bso0
33f0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 61 31 2c = ROL32(A##ma1,
3400: 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 21); \. E##s
3410: 65 30 20 3d 20 28 7e 42 73 65 30 29 5e 28 20 20 e0 = (~Bse0)^(
3420: 42 73 69 30 20 7c 20 20 42 73 6f 30 20 29 3b 20 Bsi0 | Bso0 );
3430: 5c 0a 20 20 20 20 41 23 23 73 65 30 20 5e 3d 20 \. A##se0 ^=
3440: 44 65 30 3b 20 5c 0a 20 20 20 20 42 73 75 30 20 De0; \. Bsu0
3450: 3d 20 52 4f 4c 33 32 28 41 23 23 73 65 30 2c 20 = ROL32(A##se0,
3460: 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 69 30 1); \. E##si0
3470: 20 3d 20 20 20 42 73 69 30 20 5e 28 20 20 42 73 = Bsi0 ^( Bs
3480: 6f 30 20 26 20 20 42 73 75 30 20 29 3b 20 5c 0a o0 & Bsu0 ); \.
3490: 20 20 20 20 45 23 23 73 6f 30 20 3d 20 20 20 42 E##so0 = B
34a0: 73 6f 30 20 5e 28 20 20 42 73 75 30 20 7c 20 20 so0 ^( Bsu0 |
34b0: 42 73 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 Bsa0 ); \. E#
34c0: 23 73 75 30 20 3d 20 20 20 42 73 75 30 20 5e 28 #su0 = Bsu0 ^(
34d0: 20 20 42 73 61 30 20 26 20 20 42 73 65 30 20 29 Bsa0 & Bse0 )
34e0: 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 69 31 ; \.\. A##bi1
34f0: 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 42 ^= Di1; \. B
3500: 73 61 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 sa1 = ROL32(A##b
3510: 69 31 2c 20 33 31 29 3b 20 5c 0a 20 20 20 20 41 i1, 31); \. A
3520: 23 23 67 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a ##go0 ^= Do0; \.
3530: 20 20 20 20 42 73 65 31 20 3d 20 52 4f 4c 33 32 Bse1 = ROL32
3540: 28 41 23 23 67 6f 30 2c 20 32 37 29 3b 20 5c 0a (A##go0, 27); \.
3550: 20 20 20 20 41 23 23 6b 75 30 20 5e 3d 20 44 75 A##ku0 ^= Du
3560: 30 3b 20 5c 0a 20 20 20 20 42 73 69 31 20 3d 20 0; \. Bsi1 =
3570: 52 4f 4c 33 32 28 41 23 23 6b 75 30 2c 20 31 39 ROL32(A##ku0, 19
3580: 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 31 20 ); \. E##sa1
3590: 3d 20 20 20 42 73 61 31 20 5e 28 28 7e 42 73 65 = Bsa1 ^((~Bse
35a0: 31 29 26 20 20 42 73 69 31 20 29 3b 20 5c 0a 20 1)& Bsi1 ); \.
35b0: 20 20 20 41 23 23 6d 61 30 20 5e 3d 20 44 61 30 A##ma0 ^= Da0
35c0: 3b 20 5c 0a 20 20 20 20 42 73 6f 31 20 3d 20 52 ; \. Bso1 = R
35d0: 4f 4c 33 32 28 41 23 23 6d 61 30 2c 20 32 30 29 OL32(A##ma0, 20)
35e0: 3b 20 5c 0a 20 20 20 20 45 23 23 73 65 31 20 3d ; \. E##se1 =
35f0: 20 28 7e 42 73 65 31 29 5e 28 20 20 42 73 69 31 (~Bse1)^( Bsi1
3600: 20 7c 20 20 42 73 6f 31 20 29 3b 20 5c 0a 20 20 | Bso1 ); \.
3610: 20 20 41 23 23 73 65 31 20 5e 3d 20 44 65 31 3b A##se1 ^= De1;
3620: 20 5c 0a 20 20 20 20 42 73 75 31 20 3d 20 52 4f \. Bsu1 = RO
3630: 4c 33 32 28 41 23 23 73 65 31 2c 20 31 29 3b 20 L32(A##se1, 1);
3640: 5c 0a 20 20 20 20 45 23 23 73 69 31 20 3d 20 20 \. E##si1 =
3650: 20 42 73 69 31 20 5e 28 20 20 42 73 6f 31 20 26 Bsi1 ^( Bso1 &
3660: 20 20 42 73 75 31 20 29 3b 20 5c 0a 20 20 20 20 Bsu1 ); \.
3670: 45 23 23 73 6f 31 20 3d 20 20 20 42 73 6f 31 20 E##so1 = Bso1
3680: 5e 28 20 20 42 73 75 31 20 7c 20 20 42 73 61 31 ^( Bsu1 | Bsa1
3690: 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 75 31 ); \. E##su1
36a0: 20 3d 20 20 20 42 73 75 31 20 5e 28 20 20 42 73 = Bsu1 ^( Bs
36b0: 61 31 20 26 20 20 42 73 65 31 20 29 3b 20 5c 0a a1 & Bse1 ); \.
36c0: 5c 0a 0a 23 65 6c 73 65 20 2f 2f 20 55 73 65 42 \..#else // UseB
36d0: 65 62 69 67 6f 6b 69 6d 69 73 61 0a 2f 2f 20 2d ebigokimisa.// -
36e0: 2d 2d 20 43 6f 64 65 20 66 6f 72 20 72 6f 75 6e -- Code for roun
36f0: 64 2c 20 77 69 74 68 20 70 72 65 70 61 72 65 2d d, with prepare-
3700: 74 68 65 74 61 0a 2f 2f 20 2d 2d 2d 20 75 73 69 theta.// --- usi
3710: 6e 67 20 66 61 63 74 6f 72 20 32 20 69 6e 74 65 ng factor 2 inte
3720: 72 6c 65 61 76 69 6e 67 2c 20 36 34 2d 62 69 74 rleaving, 64-bit
3730: 20 6c 61 6e 65 73 20 6d 61 70 70 65 64 20 74 6f lanes mapped to
3740: 20 33 32 2d 62 69 74 20 77 6f 72 64 73 0a 23 64 32-bit words.#d
3750: 65 66 69 6e 65 20 74 68 65 74 61 52 68 6f 50 69 efine thetaRhoPi
3760: 43 68 69 49 6f 74 61 50 72 65 70 61 72 65 54 68 ChiIotaPrepareTh
3770: 65 74 61 28 69 2c 20 41 2c 20 45 29 20 5c 0a 20 eta(i, A, E) \.
3780: 20 20 20 44 61 30 20 3d 20 43 75 30 5e 52 4f 4c Da0 = Cu0^ROL
3790: 33 32 28 43 65 31 2c 20 31 29 3b 20 5c 0a 20 20 32(Ce1, 1); \.
37a0: 20 20 44 61 31 20 3d 20 43 75 31 5e 43 65 30 3b Da1 = Cu1^Ce0;
37b0: 20 5c 0a 20 20 20 20 44 65 30 20 3d 20 43 61 30 \. De0 = Ca0
37c0: 5e 52 4f 4c 33 32 28 43 69 31 2c 20 31 29 3b 20 ^ROL32(Ci1, 1);
37d0: 5c 0a 20 20 20 20 44 65 31 20 3d 20 43 61 31 5e \. De1 = Ca1^
37e0: 43 69 30 3b 20 5c 0a 20 20 20 20 44 69 30 20 3d Ci0; \. Di0 =
37f0: 20 43 65 30 5e 52 4f 4c 33 32 28 43 6f 31 2c 20 Ce0^ROL32(Co1,
3800: 31 29 3b 20 5c 0a 20 20 20 20 44 69 31 20 3d 20 1); \. Di1 =
3810: 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 20 20 20 44 Ce1^Co0; \. D
3820: 6f 30 20 3d 20 43 69 30 5e 52 4f 4c 33 32 28 43 o0 = Ci0^ROL32(C
3830: 75 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 6f u1, 1); \. Do
3840: 31 20 3d 20 43 69 31 5e 43 75 30 3b 20 5c 0a 20 1 = Ci1^Cu0; \.
3850: 20 20 20 44 75 30 20 3d 20 43 6f 30 5e 52 4f 4c Du0 = Co0^ROL
3860: 33 32 28 43 61 31 2c 20 31 29 3b 20 5c 0a 20 20 32(Ca1, 1); \.
3870: 20 20 44 75 31 20 3d 20 43 6f 31 5e 43 61 30 3b Du1 = Co1^Ca0;
3880: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 61 30 20 \.\. A##ba0
3890: 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 20 42 62 ^= Da0; \. Bb
38a0: 61 30 20 3d 20 41 23 23 62 61 30 3b 20 5c 0a 20 a0 = A##ba0; \.
38b0: 20 20 20 41 23 23 67 65 30 20 5e 3d 20 44 65 30 A##ge0 ^= De0
38c0: 3b 20 5c 0a 20 20 20 20 42 62 65 30 20 3d 20 52 ; \. Bbe0 = R
38d0: 4f 4c 33 32 28 41 23 23 67 65 30 2c 20 32 32 29 OL32(A##ge0, 22)
38e0: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 69 31 20 5e ; \. A##ki1 ^
38f0: 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 42 62 69 = Di1; \. Bbi
3900: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 69 31 0 = ROL32(A##ki1
3910: 2c 20 32 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 22); \. E##
3920: 62 61 30 20 3d 20 20 20 42 62 61 30 20 5e 28 28 ba0 = Bba0 ^((
3930: 7e 42 62 65 30 29 26 20 20 42 62 69 30 20 29 3b ~Bbe0)& Bbi0 );
3940: 20 5c 0a 20 20 20 20 45 23 23 62 61 30 20 5e 3d \. E##ba0 ^=
3950: 20 4b 65 63 63 61 6b 46 31 36 30 30 52 6f 75 6e KeccakF1600Roun
3960: 64 43 6f 6e 73 74 61 6e 74 73 5f 69 6e 74 32 5f dConstants_int2_
3970: 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 43 61 30 20 0[i]; \. Ca0
3980: 3d 20 45 23 23 62 61 30 3b 20 5c 0a 20 20 20 20 = E##ba0; \.
3990: 41 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c A##mo1 ^= Do1; \
39a0: 0a 20 20 20 20 42 62 6f 30 20 3d 20 52 4f 4c 33 . Bbo0 = ROL3
39b0: 32 28 41 23 23 6d 6f 31 2c 20 31 31 29 3b 20 5c 2(A##mo1, 11); \
39c0: 0a 20 20 20 20 45 23 23 62 65 30 20 3d 20 20 20 . E##be0 =
39d0: 42 62 65 30 20 5e 28 28 7e 42 62 69 30 29 26 20 Bbe0 ^((~Bbi0)&
39e0: 20 42 62 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43 Bbo0 ); \. C
39f0: 65 30 20 3d 20 45 23 23 62 65 30 3b 20 5c 0a 20 e0 = E##be0; \.
3a00: 20 20 20 41 23 23 73 75 30 20 5e 3d 20 44 75 30 A##su0 ^= Du0
3a10: 3b 20 5c 0a 20 20 20 20 42 62 75 30 20 3d 20 52 ; \. Bbu0 = R
3a20: 4f 4c 33 32 28 41 23 23 73 75 30 2c 20 37 29 3b OL32(A##su0, 7);
3a30: 20 5c 0a 20 20 20 20 45 23 23 62 69 30 20 3d 20 \. E##bi0 =
3a40: 20 20 42 62 69 30 20 5e 28 28 7e 42 62 6f 30 29 Bbi0 ^((~Bbo0)
3a50: 26 20 20 42 62 75 30 20 29 3b 20 5c 0a 20 20 20 & Bbu0 ); \.
3a60: 20 43 69 30 20 3d 20 45 23 23 62 69 30 3b 20 5c Ci0 = E##bi0; \
3a70: 0a 20 20 20 20 45 23 23 62 6f 30 20 3d 20 20 20 . E##bo0 =
3a80: 42 62 6f 30 20 5e 28 28 7e 42 62 75 30 29 26 20 Bbo0 ^((~Bbu0)&
3a90: 20 42 62 61 30 20 29 3b 20 5c 0a 20 20 20 20 43 Bba0 ); \. C
3aa0: 6f 30 20 3d 20 45 23 23 62 6f 30 3b 20 5c 0a 20 o0 = E##bo0; \.
3ab0: 20 20 20 45 23 23 62 75 30 20 3d 20 20 20 42 62 E##bu0 = Bb
3ac0: 75 30 20 5e 28 28 7e 42 62 61 30 29 26 20 20 42 u0 ^((~Bba0)& B
3ad0: 62 65 30 20 29 3b 20 5c 0a 20 20 20 20 43 75 30 be0 ); \. Cu0
3ae0: 20 3d 20 45 23 23 62 75 30 3b 20 5c 0a 5c 0a 20 = E##bu0; \.\.
3af0: 20 20 20 41 23 23 62 61 31 20 5e 3d 20 44 61 31 A##ba1 ^= Da1
3b00: 3b 20 5c 0a 20 20 20 20 42 62 61 31 20 3d 20 41 ; \. Bba1 = A
3b10: 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 ##ba1; \. A##
3b20: 67 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 ge1 ^= De1; \.
3b30: 20 20 42 62 65 31 20 3d 20 52 4f 4c 33 32 28 41 Bbe1 = ROL32(A
3b40: 23 23 67 65 31 2c 20 32 32 29 3b 20 5c 0a 20 20 ##ge1, 22); \.
3b50: 20 20 41 23 23 6b 69 30 20 5e 3d 20 44 69 30 3b A##ki0 ^= Di0;
3b60: 20 5c 0a 20 20 20 20 42 62 69 31 20 3d 20 52 4f \. Bbi1 = RO
3b70: 4c 33 32 28 41 23 23 6b 69 30 2c 20 32 31 29 3b L32(A##ki0, 21);
3b80: 20 5c 0a 20 20 20 20 45 23 23 62 61 31 20 3d 20 \. E##ba1 =
3b90: 20 20 42 62 61 31 20 5e 28 28 7e 42 62 65 31 29 Bba1 ^((~Bbe1)
3ba0: 26 20 20 42 62 69 31 20 29 3b 20 5c 0a 20 20 20 & Bbi1 ); \.
3bb0: 20 45 23 23 62 61 31 20 5e 3d 20 4b 65 63 63 61 E##ba1 ^= Kecca
3bc0: 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 74 kF1600RoundConst
3bd0: 61 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 5d 3b 20 ants_int2_1[i];
3be0: 5c 0a 20 20 20 20 43 61 31 20 3d 20 45 23 23 62 \. Ca1 = E##b
3bf0: 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 6d 6f 30 a1; \. A##mo0
3c00: 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 ^= Do0; \. B
3c10: 62 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d bo1 = ROL32(A##m
3c20: 6f 30 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 45 o0, 10); \. E
3c30: 23 23 62 65 31 20 3d 20 20 20 42 62 65 31 20 5e ##be1 = Bbe1 ^
3c40: 28 28 7e 42 62 69 31 29 26 20 20 42 62 6f 31 20 ((~Bbi1)& Bbo1
3c50: 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 3d 20 45 ); \. Ce1 = E
3c60: 23 23 62 65 31 3b 20 5c 0a 20 20 20 20 41 23 23 ##be1; \. A##
3c70: 73 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 su1 ^= Du1; \.
3c80: 20 20 42 62 75 31 20 3d 20 52 4f 4c 33 32 28 41 Bbu1 = ROL32(A
3c90: 23 23 73 75 31 2c 20 37 29 3b 20 5c 0a 20 20 20 ##su1, 7); \.
3ca0: 20 45 23 23 62 69 31 20 3d 20 20 20 42 62 69 31 E##bi1 = Bbi1
3cb0: 20 5e 28 28 7e 42 62 6f 31 29 26 20 20 42 62 75 ^((~Bbo1)& Bbu
3cc0: 31 20 29 3b 20 5c 0a 20 20 20 20 43 69 31 20 3d 1 ); \. Ci1 =
3cd0: 20 45 23 23 62 69 31 3b 20 5c 0a 20 20 20 20 45 E##bi1; \. E
3ce0: 23 23 62 6f 31 20 3d 20 20 20 42 62 6f 31 20 5e ##bo1 = Bbo1 ^
3cf0: 28 28 7e 42 62 75 31 29 26 20 20 42 62 61 31 20 ((~Bbu1)& Bba1
3d00: 29 3b 20 5c 0a 20 20 20 20 43 6f 31 20 3d 20 45 ); \. Co1 = E
3d10: 23 23 62 6f 31 3b 20 5c 0a 20 20 20 20 45 23 23 ##bo1; \. E##
3d20: 62 75 31 20 3d 20 20 20 42 62 75 31 20 5e 28 28 bu1 = Bbu1 ^((
3d30: 7e 42 62 61 31 29 26 20 20 42 62 65 31 20 29 3b ~Bba1)& Bbe1 );
3d40: 20 5c 0a 20 20 20 20 43 75 31 20 3d 20 45 23 23 \. Cu1 = E##
3d50: 62 75 31 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 bu1; \.\. A##
3d60: 62 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 bo0 ^= Do0; \.
3d70: 20 20 42 67 61 30 20 3d 20 52 4f 4c 33 32 28 41 Bga0 = ROL32(A
3d80: 23 23 62 6f 30 2c 20 31 34 29 3b 20 5c 0a 20 20 ##bo0, 14); \.
3d90: 20 20 41 23 23 67 75 30 20 5e 3d 20 44 75 30 3b A##gu0 ^= Du0;
3da0: 20 5c 0a 20 20 20 20 42 67 65 30 20 3d 20 52 4f \. Bge0 = RO
3db0: 4c 33 32 28 41 23 23 67 75 30 2c 20 31 30 29 3b L32(A##gu0, 10);
3dc0: 20 5c 0a 20 20 20 20 41 23 23 6b 61 31 20 5e 3d \. A##ka1 ^=
3dd0: 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 67 69 30 Da1; \. Bgi0
3de0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 61 31 2c = ROL32(A##ka1,
3df0: 20 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 61 2); \. E##ga
3e00: 30 20 3d 20 20 20 42 67 61 30 20 5e 28 28 7e 42 0 = Bga0 ^((~B
3e10: 67 65 30 29 26 20 20 42 67 69 30 20 29 3b 20 5c ge0)& Bgi0 ); \
3e20: 0a 20 20 20 20 43 61 30 20 5e 3d 20 45 23 23 67 . Ca0 ^= E##g
3e30: 61 30 3b 20 5c 0a 20 20 20 20 41 23 23 6d 65 31 a0; \. A##me1
3e40: 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 20 20 42 ^= De1; \. B
3e50: 67 6f 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d go0 = ROL32(A##m
3e60: 65 31 2c 20 32 33 29 3b 20 5c 0a 20 20 20 20 45 e1, 23); \. E
3e70: 23 23 67 65 30 20 3d 20 20 20 42 67 65 30 20 5e ##ge0 = Bge0 ^
3e80: 28 28 7e 42 67 69 30 29 26 20 20 42 67 6f 30 20 ((~Bgi0)& Bgo0
3e90: 29 3b 20 5c 0a 20 20 20 20 43 65 30 20 5e 3d 20 ); \. Ce0 ^=
3ea0: 45 23 23 67 65 30 3b 20 5c 0a 20 20 20 20 41 23 E##ge0; \. A#
3eb0: 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 #si1 ^= Di1; \.
3ec0: 20 20 20 42 67 75 30 20 3d 20 52 4f 4c 33 32 28 Bgu0 = ROL32(
3ed0: 41 23 23 73 69 31 2c 20 33 31 29 3b 20 5c 0a 20 A##si1, 31); \.
3ee0: 20 20 20 45 23 23 67 69 30 20 3d 20 20 20 42 67 E##gi0 = Bg
3ef0: 69 30 20 5e 28 28 7e 42 67 6f 30 29 26 20 20 42 i0 ^((~Bgo0)& B
3f00: 67 75 30 20 29 3b 20 5c 0a 20 20 20 20 43 69 30 gu0 ); \. Ci0
3f10: 20 5e 3d 20 45 23 23 67 69 30 3b 20 5c 0a 20 20 ^= E##gi0; \.
3f20: 20 20 45 23 23 67 6f 30 20 3d 20 20 20 42 67 6f E##go0 = Bgo
3f30: 30 20 5e 28 28 7e 42 67 75 30 29 26 20 20 42 67 0 ^((~Bgu0)& Bg
3f40: 61 30 20 29 3b 20 5c 0a 20 20 20 20 43 6f 30 20 a0 ); \. Co0
3f50: 5e 3d 20 45 23 23 67 6f 30 3b 20 5c 0a 20 20 20 ^= E##go0; \.
3f60: 20 45 23 23 67 75 30 20 3d 20 20 20 42 67 75 30 E##gu0 = Bgu0
3f70: 20 5e 28 28 7e 42 67 61 30 29 26 20 20 42 67 65 ^((~Bga0)& Bge
3f80: 30 20 29 3b 20 5c 0a 20 20 20 20 43 75 30 20 5e 0 ); \. Cu0 ^
3f90: 3d 20 45 23 23 67 75 30 3b 20 5c 0a 5c 0a 20 20 = E##gu0; \.\.
3fa0: 20 20 41 23 23 62 6f 31 20 5e 3d 20 44 6f 31 3b A##bo1 ^= Do1;
3fb0: 20 5c 0a 20 20 20 20 42 67 61 31 20 3d 20 52 4f \. Bga1 = RO
3fc0: 4c 33 32 28 41 23 23 62 6f 31 2c 20 31 34 29 3b L32(A##bo1, 14);
3fd0: 20 5c 0a 20 20 20 20 41 23 23 67 75 31 20 5e 3d \. A##gu1 ^=
3fe0: 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 67 65 31 Du1; \. Bge1
3ff0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 75 31 2c = ROL32(A##gu1,
4000: 20 31 30 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 10); \. A##k
4010: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 a0 ^= Da0; \.
4020: 20 42 67 69 31 20 3d 20 52 4f 4c 33 32 28 41 23 Bgi1 = ROL32(A#
4030: 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20 20 20 20 #ka0, 1); \.
4040: 45 23 23 67 61 31 20 3d 20 20 20 42 67 61 31 20 E##ga1 = Bga1
4050: 5e 28 28 7e 42 67 65 31 29 26 20 20 42 67 69 31 ^((~Bge1)& Bgi1
4060: 20 29 3b 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d ); \. Ca1 ^=
4070: 20 45 23 23 67 61 31 3b 20 5c 0a 20 20 20 20 41 E##ga1; \. A
4080: 23 23 6d 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a ##me0 ^= De0; \.
4090: 20 20 20 20 42 67 6f 31 20 3d 20 52 4f 4c 33 32 Bgo1 = ROL32
40a0: 28 41 23 23 6d 65 30 2c 20 32 32 29 3b 20 5c 0a (A##me0, 22); \.
40b0: 20 20 20 20 45 23 23 67 65 31 20 3d 20 20 20 42 E##ge1 = B
40c0: 67 65 31 20 5e 28 28 7e 42 67 69 31 29 26 20 20 ge1 ^((~Bgi1)&
40d0: 42 67 6f 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 Bgo1 ); \. Ce
40e0: 31 20 5e 3d 20 45 23 23 67 65 31 3b 20 5c 0a 20 1 ^= E##ge1; \.
40f0: 20 20 20 41 23 23 73 69 30 20 5e 3d 20 44 69 30 A##si0 ^= Di0
4100: 3b 20 5c 0a 20 20 20 20 42 67 75 31 20 3d 20 52 ; \. Bgu1 = R
4110: 4f 4c 33 32 28 41 23 23 73 69 30 2c 20 33 30 29 OL32(A##si0, 30)
4120: 3b 20 5c 0a 20 20 20 20 45 23 23 67 69 31 20 3d ; \. E##gi1 =
4130: 20 20 20 42 67 69 31 20 5e 28 28 7e 42 67 6f 31 Bgi1 ^((~Bgo1
4140: 29 26 20 20 42 67 75 31 20 29 3b 20 5c 0a 20 20 )& Bgu1 ); \.
4150: 20 20 43 69 31 20 5e 3d 20 45 23 23 67 69 31 3b Ci1 ^= E##gi1;
4160: 20 5c 0a 20 20 20 20 45 23 23 67 6f 31 20 3d 20 \. E##go1 =
4170: 20 20 42 67 6f 31 20 5e 28 28 7e 42 67 75 31 29 Bgo1 ^((~Bgu1)
4180: 26 20 20 42 67 61 31 20 29 3b 20 5c 0a 20 20 20 & Bga1 ); \.
4190: 20 43 6f 31 20 5e 3d 20 45 23 23 67 6f 31 3b 20 Co1 ^= E##go1;
41a0: 5c 0a 20 20 20 20 45 23 23 67 75 31 20 3d 20 20 \. E##gu1 =
41b0: 20 42 67 75 31 20 5e 28 28 7e 42 67 61 31 29 26 Bgu1 ^((~Bga1)&
41c0: 20 20 42 67 65 31 20 29 3b 20 5c 0a 20 20 20 20 Bge1 ); \.
41d0: 43 75 31 20 5e 3d 20 45 23 23 67 75 31 3b 20 5c Cu1 ^= E##gu1; \
41e0: 0a 5c 0a 20 20 20 20 41 23 23 62 65 31 20 5e 3d .\. A##be1 ^=
41f0: 20 44 65 31 3b 20 5c 0a 20 20 20 20 42 6b 61 30 De1; \. Bka0
4200: 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 65 31 2c = ROL32(A##be1,
4210: 20 31 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 69 1); \. A##gi
4220: 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20 0 ^= Di0; \.
4230: 42 6b 65 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bke0 = ROL32(A##
4240: 67 69 30 2c 20 33 29 3b 20 5c 0a 20 20 20 20 41 gi0, 3); \. A
4250: 23 23 6b 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a ##ko1 ^= Do1; \.
4260: 20 20 20 20 42 6b 69 30 20 3d 20 52 4f 4c 33 32 Bki0 = ROL32
4270: 28 41 23 23 6b 6f 31 2c 20 31 33 29 3b 20 5c 0a (A##ko1, 13); \.
4280: 20 20 20 20 45 23 23 6b 61 30 20 3d 20 20 20 42 E##ka0 = B
4290: 6b 61 30 20 5e 28 28 7e 42 6b 65 30 29 26 20 20 ka0 ^((~Bke0)&
42a0: 42 6b 69 30 20 29 3b 20 5c 0a 20 20 20 20 43 61 Bki0 ); \. Ca
42b0: 30 20 5e 3d 20 45 23 23 6b 61 30 3b 20 5c 0a 20 0 ^= E##ka0; \.
42c0: 20 20 20 41 23 23 6d 75 30 20 5e 3d 20 44 75 30 A##mu0 ^= Du0
42d0: 3b 20 5c 0a 20 20 20 20 42 6b 6f 30 20 3d 20 52 ; \. Bko0 = R
42e0: 4f 4c 33 32 28 41 23 23 6d 75 30 2c 20 34 29 3b OL32(A##mu0, 4);
42f0: 20 5c 0a 20 20 20 20 45 23 23 6b 65 30 20 3d 20 \. E##ke0 =
4300: 20 20 42 6b 65 30 20 5e 28 28 7e 42 6b 69 30 29 Bke0 ^((~Bki0)
4310: 26 20 20 42 6b 6f 30 20 29 3b 20 5c 0a 20 20 20 & Bko0 ); \.
4320: 20 43 65 30 20 5e 3d 20 45 23 23 6b 65 30 3b 20 Ce0 ^= E##ke0;
4330: 5c 0a 20 20 20 20 41 23 23 73 61 30 20 5e 3d 20 \. A##sa0 ^=
4340: 44 61 30 3b 20 5c 0a 20 20 20 20 42 6b 75 30 20 Da0; \. Bku0
4350: 3d 20 52 4f 4c 33 32 28 41 23 23 73 61 30 2c 20 = ROL32(A##sa0,
4360: 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 30 9); \. E##ki0
4370: 20 3d 20 20 20 42 6b 69 30 20 5e 28 28 7e 42 6b = Bki0 ^((~Bk
4380: 6f 30 29 26 20 20 42 6b 75 30 20 29 3b 20 5c 0a o0)& Bku0 ); \.
4390: 20 20 20 20 43 69 30 20 5e 3d 20 45 23 23 6b 69 Ci0 ^= E##ki
43a0: 30 3b 20 5c 0a 20 20 20 20 45 23 23 6b 6f 30 20 0; \. E##ko0
43b0: 3d 20 20 20 42 6b 6f 30 20 5e 28 28 7e 42 6b 75 = Bko0 ^((~Bku
43c0: 30 29 26 20 20 42 6b 61 30 20 29 3b 20 5c 0a 20 0)& Bka0 ); \.
43d0: 20 20 20 43 6f 30 20 5e 3d 20 45 23 23 6b 6f 30 Co0 ^= E##ko0
43e0: 3b 20 5c 0a 20 20 20 20 45 23 23 6b 75 30 20 3d ; \. E##ku0 =
43f0: 20 20 20 42 6b 75 30 20 5e 28 28 7e 42 6b 61 30 Bku0 ^((~Bka0
4400: 29 26 20 20 42 6b 65 30 20 29 3b 20 5c 0a 20 20 )& Bke0 ); \.
4410: 20 20 43 75 30 20 5e 3d 20 45 23 23 6b 75 30 3b Cu0 ^= E##ku0;
4420: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 30 20 \.\. A##be0
4430: 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 6b ^= De0; \. Bk
4440: 61 31 20 3d 20 41 23 23 62 65 30 3b 20 5c 0a 20 a1 = A##be0; \.
4450: 20 20 20 41 23 23 67 69 31 20 5e 3d 20 44 69 31 A##gi1 ^= Di1
4460: 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 3d 20 52 ; \. Bke1 = R
4470: 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 33 29 3b OL32(A##gi1, 3);
4480: 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 20 5e 3d \. A##ko0 ^=
4490: 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 6b 69 31 Do0; \. Bki1
44a0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 30 2c = ROL32(A##ko0,
44b0: 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 12); \. E##k
44c0: 61 31 20 3d 20 20 20 42 6b 61 31 20 5e 28 28 7e a1 = Bka1 ^((~
44d0: 42 6b 65 31 29 26 20 20 42 6b 69 31 20 29 3b 20 Bke1)& Bki1 );
44e0: 5c 0a 20 20 20 20 43 61 31 20 5e 3d 20 45 23 23 \. Ca1 ^= E##
44f0: 6b 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 6d 75 ka1; \. A##mu
4500: 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 1 ^= Du1; \.
4510: 42 6b 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bko1 = ROL32(A##
4520: 6d 75 31 2c 20 34 29 3b 20 5c 0a 20 20 20 20 45 mu1, 4); \. E
4530: 23 23 6b 65 31 20 3d 20 20 20 42 6b 65 31 20 5e ##ke1 = Bke1 ^
4540: 28 28 7e 42 6b 69 31 29 26 20 20 42 6b 6f 31 20 ((~Bki1)& Bko1
4550: 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 5e 3d 20 ); \. Ce1 ^=
4560: 45 23 23 6b 65 31 3b 20 5c 0a 20 20 20 20 41 23 E##ke1; \. A#
4570: 23 73 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 #sa1 ^= Da1; \.
4580: 20 20 20 42 6b 75 31 20 3d 20 52 4f 4c 33 32 28 Bku1 = ROL32(
4590: 41 23 23 73 61 31 2c 20 39 29 3b 20 5c 0a 20 20 A##sa1, 9); \.
45a0: 20 20 45 23 23 6b 69 31 20 3d 20 20 20 42 6b 69 E##ki1 = Bki
45b0: 31 20 5e 28 28 7e 42 6b 6f 31 29 26 20 20 42 6b 1 ^((~Bko1)& Bk
45c0: 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 69 31 20 u1 ); \. Ci1
45d0: 5e 3d 20 45 23 23 6b 69 31 3b 20 5c 0a 20 20 20 ^= E##ki1; \.
45e0: 20 45 23 23 6b 6f 31 20 3d 20 20 20 42 6b 6f 31 E##ko1 = Bko1
45f0: 20 5e 28 28 7e 42 6b 75 31 29 26 20 20 42 6b 61 ^((~Bku1)& Bka
4600: 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f 31 20 5e 1 ); \. Co1 ^
4610: 3d 20 45 23 23 6b 6f 31 3b 20 5c 0a 20 20 20 20 = E##ko1; \.
4620: 45 23 23 6b 75 31 20 3d 20 20 20 42 6b 75 31 20 E##ku1 = Bku1
4630: 5e 28 28 7e 42 6b 61 31 29 26 20 20 42 6b 65 31 ^((~Bka1)& Bke1
4640: 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 20 5e 3d ); \. Cu1 ^=
4650: 20 45 23 23 6b 75 31 3b 20 5c 0a 5c 0a 20 20 20 E##ku1; \.\.
4660: 20 41 23 23 62 75 31 20 5e 3d 20 44 75 31 3b 20 A##bu1 ^= Du1;
4670: 5c 0a 20 20 20 20 42 6d 61 30 20 3d 20 52 4f 4c \. Bma0 = ROL
4680: 33 32 28 41 23 23 62 75 31 2c 20 31 34 29 3b 20 32(A##bu1, 14);
4690: 5c 0a 20 20 20 20 41 23 23 67 61 30 20 5e 3d 20 \. A##ga0 ^=
46a0: 44 61 30 3b 20 5c 0a 20 20 20 20 42 6d 65 30 20 Da0; \. Bme0
46b0: 3d 20 52 4f 4c 33 32 28 41 23 23 67 61 30 2c 20 = ROL32(A##ga0,
46c0: 31 38 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 65 18); \. A##ke
46d0: 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 0 ^= De0; \.
46e0: 42 6d 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bmi0 = ROL32(A##
46f0: 6b 65 30 2c 20 35 29 3b 20 5c 0a 20 20 20 20 45 ke0, 5); \. E
4700: 23 23 6d 61 30 20 3d 20 20 20 42 6d 61 30 20 5e ##ma0 = Bma0 ^
4710: 28 28 7e 42 6d 65 30 29 26 20 20 42 6d 69 30 20 ((~Bme0)& Bmi0
4720: 29 3b 20 5c 0a 20 20 20 20 43 61 30 20 5e 3d 20 ); \. Ca0 ^=
4730: 45 23 23 6d 61 30 3b 20 5c 0a 20 20 20 20 41 23 E##ma0; \. A#
4740: 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 #mi1 ^= Di1; \.
4750: 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c 33 32 28 Bmo0 = ROL32(
4760: 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c 0a 20 20 A##mi1, 8); \.
4770: 20 20 45 23 23 6d 65 30 20 3d 20 20 20 42 6d 65 E##me0 = Bme
4780: 30 20 5e 28 28 7e 42 6d 69 30 29 26 20 20 42 6d 0 ^((~Bmi0)& Bm
4790: 6f 30 20 29 3b 20 5c 0a 20 20 20 20 43 65 30 20 o0 ); \. Ce0
47a0: 5e 3d 20 45 23 23 6d 65 30 3b 20 5c 0a 20 20 20 ^= E##me0; \.
47b0: 20 41 23 23 73 6f 30 20 5e 3d 20 44 6f 30 3b 20 A##so0 ^= Do0;
47c0: 5c 0a 20 20 20 20 42 6d 75 30 20 3d 20 52 4f 4c \. Bmu0 = ROL
47d0: 33 32 28 41 23 23 73 6f 30 2c 20 32 38 29 3b 20 32(A##so0, 28);
47e0: 5c 0a 20 20 20 20 45 23 23 6d 69 30 20 3d 20 20 \. E##mi0 =
47f0: 20 42 6d 69 30 20 5e 28 28 7e 42 6d 6f 30 29 26 Bmi0 ^((~Bmo0)&
4800: 20 20 42 6d 75 30 20 29 3b 20 5c 0a 20 20 20 20 Bmu0 ); \.
4810: 43 69 30 20 5e 3d 20 45 23 23 6d 69 30 3b 20 5c Ci0 ^= E##mi0; \
4820: 0a 20 20 20 20 45 23 23 6d 6f 30 20 3d 20 20 20 . E##mo0 =
4830: 42 6d 6f 30 20 5e 28 28 7e 42 6d 75 30 29 26 20 Bmo0 ^((~Bmu0)&
4840: 20 42 6d 61 30 20 29 3b 20 5c 0a 20 20 20 20 43 Bma0 ); \. C
4850: 6f 30 20 5e 3d 20 45 23 23 6d 6f 30 3b 20 5c 0a o0 ^= E##mo0; \.
4860: 20 20 20 20 45 23 23 6d 75 30 20 3d 20 20 20 42 E##mu0 = B
4870: 6d 75 30 20 5e 28 28 7e 42 6d 61 30 29 26 20 20 mu0 ^((~Bma0)&
4880: 42 6d 65 30 20 29 3b 20 5c 0a 20 20 20 20 43 75 Bme0 ); \. Cu
4890: 30 20 5e 3d 20 45 23 23 6d 75 30 3b 20 5c 0a 5c 0 ^= E##mu0; \.\
48a0: 0a 20 20 20 20 41 23 23 62 75 30 20 5e 3d 20 44 . A##bu0 ^= D
48b0: 75 30 3b 20 5c 0a 20 20 20 20 42 6d 61 31 20 3d u0; \. Bma1 =
48c0: 20 52 4f 4c 33 32 28 41 23 23 62 75 30 2c 20 31 ROL32(A##bu0, 1
48d0: 33 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 31 3); \. A##ga1
48e0: 20 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 ^= Da1; \. B
48f0: 6d 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 me1 = ROL32(A##g
4900: 61 31 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 a1, 18); \. A
4910: 23 23 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a ##ke1 ^= De1; \.
4920: 20 20 20 20 42 6d 69 31 20 3d 20 52 4f 4c 33 32 Bmi1 = ROL32
4930: 28 41 23 23 6b 65 31 2c 20 35 29 3b 20 5c 0a 20 (A##ke1, 5); \.
4940: 20 20 20 45 23 23 6d 61 31 20 3d 20 20 20 42 6d E##ma1 = Bm
4950: 61 31 20 5e 28 28 7e 42 6d 65 31 29 26 20 20 42 a1 ^((~Bme1)& B
4960: 6d 69 31 20 29 3b 20 5c 0a 20 20 20 20 43 61 31 mi1 ); \. Ca1
4970: 20 5e 3d 20 45 23 23 6d 61 31 3b 20 5c 0a 20 20 ^= E##ma1; \.
4980: 20 20 41 23 23 6d 69 30 20 5e 3d 20 44 69 30 3b A##mi0 ^= Di0;
4990: 20 5c 0a 20 20 20 20 42 6d 6f 31 20 3d 20 52 4f \. Bmo1 = RO
49a0: 4c 33 32 28 41 23 23 6d 69 30 2c 20 37 29 3b 20 L32(A##mi0, 7);
49b0: 5c 0a 20 20 20 20 45 23 23 6d 65 31 20 3d 20 20 \. E##me1 =
49c0: 20 42 6d 65 31 20 5e 28 28 7e 42 6d 69 31 29 26 Bme1 ^((~Bmi1)&
49d0: 20 20 42 6d 6f 31 20 29 3b 20 5c 0a 20 20 20 20 Bmo1 ); \.
49e0: 43 65 31 20 5e 3d 20 45 23 23 6d 65 31 3b 20 5c Ce1 ^= E##me1; \
49f0: 0a 20 20 20 20 41 23 23 73 6f 31 20 5e 3d 20 44 . A##so1 ^= D
4a00: 6f 31 3b 20 5c 0a 20 20 20 20 42 6d 75 31 20 3d o1; \. Bmu1 =
4a10: 20 52 4f 4c 33 32 28 41 23 23 73 6f 31 2c 20 32 ROL32(A##so1, 2
4a20: 38 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 69 31 8); \. E##mi1
4a30: 20 3d 20 20 20 42 6d 69 31 20 5e 28 28 7e 42 6d = Bmi1 ^((~Bm
4a40: 6f 31 29 26 20 20 42 6d 75 31 20 29 3b 20 5c 0a o1)& Bmu1 ); \.
4a50: 20 20 20 20 43 69 31 20 5e 3d 20 45 23 23 6d 69 Ci1 ^= E##mi
4a60: 31 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 31 20 1; \. E##mo1
4a70: 3d 20 20 20 42 6d 6f 31 20 5e 28 28 7e 42 6d 75 = Bmo1 ^((~Bmu
4a80: 31 29 26 20 20 42 6d 61 31 20 29 3b 20 5c 0a 20 1)& Bma1 ); \.
4a90: 20 20 20 43 6f 31 20 5e 3d 20 45 23 23 6d 6f 31 Co1 ^= E##mo1
4aa0: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 75 31 20 3d ; \. E##mu1 =
4ab0: 20 20 20 42 6d 75 31 20 5e 28 28 7e 42 6d 61 31 Bmu1 ^((~Bma1
4ac0: 29 26 20 20 42 6d 65 31 20 29 3b 20 5c 0a 20 20 )& Bme1 ); \.
4ad0: 20 20 43 75 31 20 5e 3d 20 45 23 23 6d 75 31 3b Cu1 ^= E##mu1;
4ae0: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 69 30 20 \.\. A##bi0
4af0: 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 20 42 73 ^= Di0; \. Bs
4b00: 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 69 a0 = ROL32(A##bi
4b10: 30 2c 20 33 31 29 3b 20 5c 0a 20 20 20 20 41 23 0, 31); \. A#
4b20: 23 67 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a 20 #go1 ^= Do1; \.
4b30: 20 20 20 42 73 65 30 20 3d 20 52 4f 4c 33 32 28 Bse0 = ROL32(
4b40: 41 23 23 67 6f 31 2c 20 32 38 29 3b 20 5c 0a 20 A##go1, 28); \.
4b50: 20 20 20 41 23 23 6b 75 31 20 5e 3d 20 44 75 31 A##ku1 ^= Du1
4b60: 3b 20 5c 0a 20 20 20 20 42 73 69 30 20 3d 20 52 ; \. Bsi0 = R
4b70: 4f 4c 33 32 28 41 23 23 6b 75 31 2c 20 32 30 29 OL32(A##ku1, 20)
4b80: 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 30 20 3d ; \. E##sa0 =
4b90: 20 20 20 42 73 61 30 20 5e 28 28 7e 42 73 65 30 Bsa0 ^((~Bse0
4ba0: 29 26 20 20 42 73 69 30 20 29 3b 20 5c 0a 20 20 )& Bsi0 ); \.
4bb0: 20 20 43 61 30 20 5e 3d 20 45 23 23 73 61 30 3b Ca0 ^= E##sa0;
4bc0: 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 20 5e 3d \. A##ma1 ^=
4bd0: 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 73 6f 30 Da1; \. Bso0
4be0: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 61 31 2c = ROL32(A##ma1,
4bf0: 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 21); \. E##s
4c00: 65 30 20 3d 20 20 20 42 73 65 30 20 5e 28 28 7e e0 = Bse0 ^((~
4c10: 42 73 69 30 29 26 20 20 42 73 6f 30 20 29 3b 20 Bsi0)& Bso0 );
4c20: 5c 0a 20 20 20 20 43 65 30 20 5e 3d 20 45 23 23 \. Ce0 ^= E##
4c30: 73 65 30 3b 20 5c 0a 20 20 20 20 41 23 23 73 65 se0; \. A##se
4c40: 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 0 ^= De0; \.
4c50: 42 73 75 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bsu0 = ROL32(A##
4c60: 73 65 30 2c 20 31 29 3b 20 5c 0a 20 20 20 20 45 se0, 1); \. E
4c70: 23 23 73 69 30 20 3d 20 20 20 42 73 69 30 20 5e ##si0 = Bsi0 ^
4c80: 28 28 7e 42 73 6f 30 29 26 20 20 42 73 75 30 20 ((~Bso0)& Bsu0
4c90: 29 3b 20 5c 0a 20 20 20 20 43 69 30 20 5e 3d 20 ); \. Ci0 ^=
4ca0: 45 23 23 73 69 30 3b 20 5c 0a 20 20 20 20 45 23 E##si0; \. E#
4cb0: 23 73 6f 30 20 3d 20 20 20 42 73 6f 30 20 5e 28 #so0 = Bso0 ^(
4cc0: 28 7e 42 73 75 30 29 26 20 20 42 73 61 30 20 29 (~Bsu0)& Bsa0 )
4cd0: 3b 20 5c 0a 20 20 20 20 43 6f 30 20 5e 3d 20 45 ; \. Co0 ^= E
4ce0: 23 23 73 6f 30 3b 20 5c 0a 20 20 20 20 45 23 23 ##so0; \. E##
4cf0: 73 75 30 20 3d 20 20 20 42 73 75 30 20 5e 28 28 su0 = Bsu0 ^((
4d00: 7e 42 73 61 30 29 26 20 20 42 73 65 30 20 29 3b ~Bsa0)& Bse0 );
4d10: 20 5c 0a 20 20 20 20 43 75 30 20 5e 3d 20 45 23 \. Cu0 ^= E#
4d20: 23 73 75 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 #su0; \.\. A#
4d30: 23 62 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 #bi1 ^= Di1; \.
4d40: 20 20 20 42 73 61 31 20 3d 20 52 4f 4c 33 32 28 Bsa1 = ROL32(
4d50: 41 23 23 62 69 31 2c 20 33 31 29 3b 20 5c 0a 20 A##bi1, 31); \.
4d60: 20 20 20 41 23 23 67 6f 30 20 5e 3d 20 44 6f 30 A##go0 ^= Do0
4d70: 3b 20 5c 0a 20 20 20 20 42 73 65 31 20 3d 20 52 ; \. Bse1 = R
4d80: 4f 4c 33 32 28 41 23 23 67 6f 30 2c 20 32 37 29 OL32(A##go0, 27)
4d90: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 30 20 5e ; \. A##ku0 ^
4da0: 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 73 69 = Du0; \. Bsi
4db0: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 30 1 = ROL32(A##ku0
4dc0: 2c 20 31 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 19); \. E##
4dd0: 73 61 31 20 3d 20 20 20 42 73 61 31 20 5e 28 28 sa1 = Bsa1 ^((
4de0: 7e 42 73 65 31 29 26 20 20 42 73 69 31 20 29 3b ~Bse1)& Bsi1 );
4df0: 20 5c 0a 20 20 20 20 43 61 31 20 5e 3d 20 45 23 \. Ca1 ^= E#
4e00: 23 73 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 6d #sa1; \. A##m
4e10: 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 20 a0 ^= Da0; \.
4e20: 20 42 73 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 Bso1 = ROL32(A#
4e30: 23 6d 61 30 2c 20 32 30 29 3b 20 5c 0a 20 20 20 #ma0, 20); \.
4e40: 20 45 23 23 73 65 31 20 3d 20 20 20 42 73 65 31 E##se1 = Bse1
4e50: 20 5e 28 28 7e 42 73 69 31 29 26 20 20 42 73 6f ^((~Bsi1)& Bso
4e60: 31 20 29 3b 20 5c 0a 20 20 20 20 43 65 31 20 5e 1 ); \. Ce1 ^
4e70: 3d 20 45 23 23 73 65 31 3b 20 5c 0a 20 20 20 20 = E##se1; \.
4e80: 41 23 23 73 65 31 20 5e 3d 20 44 65 31 3b 20 5c A##se1 ^= De1; \
4e90: 0a 20 20 20 20 42 73 75 31 20 3d 20 52 4f 4c 33 . Bsu1 = ROL3
4ea0: 32 28 41 23 23 73 65 31 2c 20 31 29 3b 20 5c 0a 2(A##se1, 1); \.
4eb0: 20 20 20 20 45 23 23 73 69 31 20 3d 20 20 20 42 E##si1 = B
4ec0: 73 69 31 20 5e 28 28 7e 42 73 6f 31 29 26 20 20 si1 ^((~Bso1)&
4ed0: 42 73 75 31 20 29 3b 20 5c 0a 20 20 20 20 43 69 Bsu1 ); \. Ci
4ee0: 31 20 5e 3d 20 45 23 23 73 69 31 3b 20 5c 0a 20 1 ^= E##si1; \.
4ef0: 20 20 20 45 23 23 73 6f 31 20 3d 20 20 20 42 73 E##so1 = Bs
4f00: 6f 31 20 5e 28 28 7e 42 73 75 31 29 26 20 20 42 o1 ^((~Bsu1)& B
4f10: 73 61 31 20 29 3b 20 5c 0a 20 20 20 20 43 6f 31 sa1 ); \. Co1
4f20: 20 5e 3d 20 45 23 23 73 6f 31 3b 20 5c 0a 20 20 ^= E##so1; \.
4f30: 20 20 45 23 23 73 75 31 20 3d 20 20 20 42 73 75 E##su1 = Bsu
4f40: 31 20 5e 28 28 7e 42 73 61 31 29 26 20 20 42 73 1 ^((~Bsa1)& Bs
4f50: 65 31 20 29 3b 20 5c 0a 20 20 20 20 43 75 31 20 e1 ); \. Cu1
4f60: 5e 3d 20 45 23 23 73 75 31 3b 20 5c 0a 5c 0a 0a ^= E##su1; \.\..
4f70: 2f 2f 20 2d 2d 2d 20 43 6f 64 65 20 66 6f 72 20 // --- Code for
4f80: 72 6f 75 6e 64 0a 2f 2f 20 2d 2d 2d 20 75 73 69 round.// --- usi
4f90: 6e 67 20 66 61 63 74 6f 72 20 32 20 69 6e 74 65 ng factor 2 inte
4fa0: 72 6c 65 61 76 69 6e 67 2c 20 36 34 2d 62 69 74 rleaving, 64-bit
4fb0: 20 6c 61 6e 65 73 20 6d 61 70 70 65 64 20 74 6f lanes mapped to
4fc0: 20 33 32 2d 62 69 74 20 77 6f 72 64 73 0a 23 64 32-bit words.#d
4fd0: 65 66 69 6e 65 20 74 68 65 74 61 52 68 6f 50 69 efine thetaRhoPi
4fe0: 43 68 69 49 6f 74 61 28 69 2c 20 41 2c 20 45 29 ChiIota(i, A, E)
4ff0: 20 5c 0a 20 20 20 20 44 61 30 20 3d 20 43 75 30 \. Da0 = Cu0
5000: 5e 52 4f 4c 33 32 28 43 65 31 2c 20 31 29 3b 20 ^ROL32(Ce1, 1);
5010: 5c 0a 20 20 20 20 44 61 31 20 3d 20 43 75 31 5e \. Da1 = Cu1^
5020: 43 65 30 3b 20 5c 0a 20 20 20 20 44 65 30 20 3d Ce0; \. De0 =
5030: 20 43 61 30 5e 52 4f 4c 33 32 28 43 69 31 2c 20 Ca0^ROL32(Ci1,
5040: 31 29 3b 20 5c 0a 20 20 20 20 44 65 31 20 3d 20 1); \. De1 =
5050: 43 61 31 5e 43 69 30 3b 20 5c 0a 20 20 20 20 44 Ca1^Ci0; \. D
5060: 69 30 20 3d 20 43 65 30 5e 52 4f 4c 33 32 28 43 i0 = Ce0^ROL32(C
5070: 6f 31 2c 20 31 29 3b 20 5c 0a 20 20 20 20 44 69 o1, 1); \. Di
5080: 31 20 3d 20 43 65 31 5e 43 6f 30 3b 20 5c 0a 20 1 = Ce1^Co0; \.
5090: 20 20 20 44 6f 30 20 3d 20 43 69 30 5e 52 4f 4c Do0 = Ci0^ROL
50a0: 33 32 28 43 75 31 2c 20 31 29 3b 20 5c 0a 20 20 32(Cu1, 1); \.
50b0: 20 20 44 6f 31 20 3d 20 43 69 31 5e 43 75 30 3b Do1 = Ci1^Cu0;
50c0: 20 5c 0a 20 20 20 20 44 75 30 20 3d 20 43 6f 30 \. Du0 = Co0
50d0: 5e 52 4f 4c 33 32 28 43 61 31 2c 20 31 29 3b 20 ^ROL32(Ca1, 1);
50e0: 5c 0a 20 20 20 20 44 75 31 20 3d 20 43 6f 31 5e \. Du1 = Co1^
50f0: 43 61 30 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 Ca0; \.\. A##
5100: 62 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 20 ba0 ^= Da0; \.
5110: 20 20 42 62 61 30 20 3d 20 41 23 23 62 61 30 3b Bba0 = A##ba0;
5120: 20 5c 0a 20 20 20 20 41 23 23 67 65 30 20 5e 3d \. A##ge0 ^=
5130: 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 62 65 30 De0; \. Bbe0
5140: 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 65 30 2c = ROL32(A##ge0,
5150: 20 32 32 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 22); \. A##k
5160: 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 i1 ^= Di1; \.
5170: 20 42 62 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 Bbi0 = ROL32(A#
5180: 23 6b 69 31 2c 20 32 32 29 3b 20 5c 0a 20 20 20 #ki1, 22); \.
5190: 20 45 23 23 62 61 30 20 3d 20 20 20 42 62 61 30 E##ba0 = Bba0
51a0: 20 5e 28 28 7e 42 62 65 30 29 26 20 20 42 62 69 ^((~Bbe0)& Bbi
51b0: 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 61 0 ); \. E##ba
51c0: 30 20 5e 3d 20 4b 65 63 63 61 6b 46 31 36 30 30 0 ^= KeccakF1600
51d0: 52 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 RoundConstants_i
51e0: 6e 74 32 5f 30 5b 69 5d 3b 20 5c 0a 20 20 20 20 nt2_0[i]; \.
51f0: 41 23 23 6d 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c A##mo1 ^= Do1; \
5200: 0a 20 20 20 20 42 62 6f 30 20 3d 20 52 4f 4c 33 . Bbo0 = ROL3
5210: 32 28 41 23 23 6d 6f 31 2c 20 31 31 29 3b 20 5c 2(A##mo1, 11); \
5220: 0a 20 20 20 20 45 23 23 62 65 30 20 3d 20 20 20 . E##be0 =
5230: 42 62 65 30 20 5e 28 28 7e 42 62 69 30 29 26 20 Bbe0 ^((~Bbi0)&
5240: 20 42 62 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 Bbo0 ); \. A
5250: 23 23 73 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a ##su0 ^= Du0; \.
5260: 20 20 20 20 42 62 75 30 20 3d 20 52 4f 4c 33 32 Bbu0 = ROL32
5270: 28 41 23 23 73 75 30 2c 20 37 29 3b 20 5c 0a 20 (A##su0, 7); \.
5280: 20 20 20 45 23 23 62 69 30 20 3d 20 20 20 42 62 E##bi0 = Bb
5290: 69 30 20 5e 28 28 7e 42 62 6f 30 29 26 20 20 42 i0 ^((~Bbo0)& B
52a0: 62 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 bu0 ); \. E##
52b0: 62 6f 30 20 3d 20 20 20 42 62 6f 30 20 5e 28 28 bo0 = Bbo0 ^((
52c0: 7e 42 62 75 30 29 26 20 20 42 62 61 30 20 29 3b ~Bbu0)& Bba0 );
52d0: 20 5c 0a 20 20 20 20 45 23 23 62 75 30 20 3d 20 \. E##bu0 =
52e0: 20 20 42 62 75 30 20 5e 28 28 7e 42 62 61 30 29 Bbu0 ^((~Bba0)
52f0: 26 20 20 42 62 65 30 20 29 3b 20 5c 0a 5c 0a 20 & Bbe0 ); \.\.
5300: 20 20 20 41 23 23 62 61 31 20 5e 3d 20 44 61 31 A##ba1 ^= Da1
5310: 3b 20 5c 0a 20 20 20 20 42 62 61 31 20 3d 20 41 ; \. Bba1 = A
5320: 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 41 23 23 ##ba1; \. A##
5330: 67 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 20 ge1 ^= De1; \.
5340: 20 20 42 62 65 31 20 3d 20 52 4f 4c 33 32 28 41 Bbe1 = ROL32(A
5350: 23 23 67 65 31 2c 20 32 32 29 3b 20 5c 0a 20 20 ##ge1, 22); \.
5360: 20 20 41 23 23 6b 69 30 20 5e 3d 20 44 69 30 3b A##ki0 ^= Di0;
5370: 20 5c 0a 20 20 20 20 42 62 69 31 20 3d 20 52 4f \. Bbi1 = RO
5380: 4c 33 32 28 41 23 23 6b 69 30 2c 20 32 31 29 3b L32(A##ki0, 21);
5390: 20 5c 0a 20 20 20 20 45 23 23 62 61 31 20 3d 20 \. E##ba1 =
53a0: 20 20 42 62 61 31 20 5e 28 28 7e 42 62 65 31 29 Bba1 ^((~Bbe1)
53b0: 26 20 20 42 62 69 31 20 29 3b 20 5c 0a 20 20 20 & Bbi1 ); \.
53c0: 20 45 23 23 62 61 31 20 5e 3d 20 4b 65 63 63 61 E##ba1 ^= Kecca
53d0: 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 74 kF1600RoundConst
53e0: 61 6e 74 73 5f 69 6e 74 32 5f 31 5b 69 5d 3b 20 ants_int2_1[i];
53f0: 5c 0a 20 20 20 20 41 23 23 6d 6f 30 20 5e 3d 20 \. A##mo0 ^=
5400: 44 6f 30 3b 20 5c 0a 20 20 20 20 42 62 6f 31 20 Do0; \. Bbo1
5410: 3d 20 52 4f 4c 33 32 28 41 23 23 6d 6f 30 2c 20 = ROL32(A##mo0,
5420: 31 30 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 65 10); \. E##be
5430: 31 20 3d 20 20 20 42 62 65 31 20 5e 28 28 7e 42 1 = Bbe1 ^((~B
5440: 62 69 31 29 26 20 20 42 62 6f 31 20 29 3b 20 5c bi1)& Bbo1 ); \
5450: 0a 20 20 20 20 41 23 23 73 75 31 20 5e 3d 20 44 . A##su1 ^= D
5460: 75 31 3b 20 5c 0a 20 20 20 20 42 62 75 31 20 3d u1; \. Bbu1 =
5470: 20 52 4f 4c 33 32 28 41 23 23 73 75 31 2c 20 37 ROL32(A##su1, 7
5480: 29 3b 20 5c 0a 20 20 20 20 45 23 23 62 69 31 20 ); \. E##bi1
5490: 3d 20 20 20 42 62 69 31 20 5e 28 28 7e 42 62 6f = Bbi1 ^((~Bbo
54a0: 31 29 26 20 20 42 62 75 31 20 29 3b 20 5c 0a 20 1)& Bbu1 ); \.
54b0: 20 20 20 45 23 23 62 6f 31 20 3d 20 20 20 42 62 E##bo1 = Bb
54c0: 6f 31 20 5e 28 28 7e 42 62 75 31 29 26 20 20 42 o1 ^((~Bbu1)& B
54d0: 62 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 ba1 ); \. E##
54e0: 62 75 31 20 3d 20 20 20 42 62 75 31 20 5e 28 28 bu1 = Bbu1 ^((
54f0: 7e 42 62 61 31 29 26 20 20 42 62 65 31 20 29 3b ~Bba1)& Bbe1 );
5500: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 6f 30 20 \.\. A##bo0
5510: 5e 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 67 ^= Do0; \. Bg
5520: 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 6f a0 = ROL32(A##bo
5530: 30 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23 0, 14); \. A#
5540: 23 67 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 20 #gu0 ^= Du0; \.
5550: 20 20 20 42 67 65 30 20 3d 20 52 4f 4c 33 32 28 Bge0 = ROL32(
5560: 41 23 23 67 75 30 2c 20 31 30 29 3b 20 5c 0a 20 A##gu0, 10); \.
5570: 20 20 20 41 23 23 6b 61 31 20 5e 3d 20 44 61 31 A##ka1 ^= Da1
5580: 3b 20 5c 0a 20 20 20 20 42 67 69 30 20 3d 20 52 ; \. Bgi0 = R
5590: 4f 4c 33 32 28 41 23 23 6b 61 31 2c 20 32 29 3b OL32(A##ka1, 2);
55a0: 20 5c 0a 20 20 20 20 45 23 23 67 61 30 20 3d 20 \. E##ga0 =
55b0: 20 20 42 67 61 30 20 5e 28 28 7e 42 67 65 30 29 Bga0 ^((~Bge0)
55c0: 26 20 20 42 67 69 30 20 29 3b 20 5c 0a 20 20 20 & Bgi0 ); \.
55d0: 20 41 23 23 6d 65 31 20 5e 3d 20 44 65 31 3b 20 A##me1 ^= De1;
55e0: 5c 0a 20 20 20 20 42 67 6f 30 20 3d 20 52 4f 4c \. Bgo0 = ROL
55f0: 33 32 28 41 23 23 6d 65 31 2c 20 32 33 29 3b 20 32(A##me1, 23);
5600: 5c 0a 20 20 20 20 45 23 23 67 65 30 20 3d 20 20 \. E##ge0 =
5610: 20 42 67 65 30 20 5e 28 28 7e 42 67 69 30 29 26 Bge0 ^((~Bgi0)&
5620: 20 20 42 67 6f 30 20 29 3b 20 5c 0a 20 20 20 20 Bgo0 ); \.
5630: 41 23 23 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c A##si1 ^= Di1; \
5640: 0a 20 20 20 20 42 67 75 30 20 3d 20 52 4f 4c 33 . Bgu0 = ROL3
5650: 32 28 41 23 23 73 69 31 2c 20 33 31 29 3b 20 5c 2(A##si1, 31); \
5660: 0a 20 20 20 20 45 23 23 67 69 30 20 3d 20 20 20 . E##gi0 =
5670: 42 67 69 30 20 5e 28 28 7e 42 67 6f 30 29 26 20 Bgi0 ^((~Bgo0)&
5680: 20 42 67 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 Bgu0 ); \. E
5690: 23 23 67 6f 30 20 3d 20 20 20 42 67 6f 30 20 5e ##go0 = Bgo0 ^
56a0: 28 28 7e 42 67 75 30 29 26 20 20 42 67 61 30 20 ((~Bgu0)& Bga0
56b0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 75 30 20 ); \. E##gu0
56c0: 3d 20 20 20 42 67 75 30 20 5e 28 28 7e 42 67 61 = Bgu0 ^((~Bga
56d0: 30 29 26 20 20 42 67 65 30 20 29 3b 20 5c 0a 5c 0)& Bge0 ); \.\
56e0: 0a 20 20 20 20 41 23 23 62 6f 31 20 5e 3d 20 44 . A##bo1 ^= D
56f0: 6f 31 3b 20 5c 0a 20 20 20 20 42 67 61 31 20 3d o1; \. Bga1 =
5700: 20 52 4f 4c 33 32 28 41 23 23 62 6f 31 2c 20 31 ROL32(A##bo1, 1
5710: 34 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 75 31 4); \. A##gu1
5720: 20 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 ^= Du1; \. B
5730: 67 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 ge1 = ROL32(A##g
5740: 75 31 2c 20 31 30 29 3b 20 5c 0a 20 20 20 20 41 u1, 10); \. A
5750: 23 23 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a ##ka0 ^= Da0; \.
5760: 20 20 20 20 42 67 69 31 20 3d 20 52 4f 4c 33 32 Bgi1 = ROL32
5770: 28 41 23 23 6b 61 30 2c 20 31 29 3b 20 5c 0a 20 (A##ka0, 1); \.
5780: 20 20 20 45 23 23 67 61 31 20 3d 20 20 20 42 67 E##ga1 = Bg
5790: 61 31 20 5e 28 28 7e 42 67 65 31 29 26 20 20 42 a1 ^((~Bge1)& B
57a0: 67 69 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 gi1 ); \. A##
57b0: 6d 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 me0 ^= De0; \.
57c0: 20 20 42 67 6f 31 20 3d 20 52 4f 4c 33 32 28 41 Bgo1 = ROL32(A
57d0: 23 23 6d 65 30 2c 20 32 32 29 3b 20 5c 0a 20 20 ##me0, 22); \.
57e0: 20 20 45 23 23 67 65 31 20 3d 20 20 20 42 67 65 E##ge1 = Bge
57f0: 31 20 5e 28 28 7e 42 67 69 31 29 26 20 20 42 67 1 ^((~Bgi1)& Bg
5800: 6f 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 o1 ); \. A##s
5810: 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 i0 ^= Di0; \.
5820: 20 42 67 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 Bgu1 = ROL32(A#
5830: 23 73 69 30 2c 20 33 30 29 3b 20 5c 0a 20 20 20 #si0, 30); \.
5840: 20 45 23 23 67 69 31 20 3d 20 20 20 42 67 69 31 E##gi1 = Bgi1
5850: 20 5e 28 28 7e 42 67 6f 31 29 26 20 20 42 67 75 ^((~Bgo1)& Bgu
5860: 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 67 6f 1 ); \. E##go
5870: 31 20 3d 20 20 20 42 67 6f 31 20 5e 28 28 7e 42 1 = Bgo1 ^((~B
5880: 67 75 31 29 26 20 20 42 67 61 31 20 29 3b 20 5c gu1)& Bga1 ); \
5890: 0a 20 20 20 20 45 23 23 67 75 31 20 3d 20 20 20 . E##gu1 =
58a0: 42 67 75 31 20 5e 28 28 7e 42 67 61 31 29 26 20 Bgu1 ^((~Bga1)&
58b0: 20 42 67 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 Bge1 ); \.\.
58c0: 20 41 23 23 62 65 31 20 5e 3d 20 44 65 31 3b 20 A##be1 ^= De1;
58d0: 5c 0a 20 20 20 20 42 6b 61 30 20 3d 20 52 4f 4c \. Bka0 = ROL
58e0: 33 32 28 41 23 23 62 65 31 2c 20 31 29 3b 20 5c 32(A##be1, 1); \
58f0: 0a 20 20 20 20 41 23 23 67 69 30 20 5e 3d 20 44 . A##gi0 ^= D
5900: 69 30 3b 20 5c 0a 20 20 20 20 42 6b 65 30 20 3d i0; \. Bke0 =
5910: 20 52 4f 4c 33 32 28 41 23 23 67 69 30 2c 20 33 ROL32(A##gi0, 3
5920: 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 31 20 ); \. A##ko1
5930: 5e 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 6b ^= Do1; \. Bk
5940: 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f i0 = ROL32(A##ko
5950: 31 2c 20 31 33 29 3b 20 5c 0a 20 20 20 20 45 23 1, 13); \. E#
5960: 23 6b 61 30 20 3d 20 20 20 42 6b 61 30 20 5e 28 #ka0 = Bka0 ^(
5970: 28 7e 42 6b 65 30 29 26 20 20 42 6b 69 30 20 29 (~Bke0)& Bki0 )
5980: 3b 20 5c 0a 20 20 20 20 41 23 23 6d 75 30 20 5e ; \. A##mu0 ^
5990: 3d 20 44 75 30 3b 20 5c 0a 20 20 20 20 42 6b 6f = Du0; \. Bko
59a0: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 30 0 = ROL32(A##mu0
59b0: 2c 20 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b , 4); \. E##k
59c0: 65 30 20 3d 20 20 20 42 6b 65 30 20 5e 28 28 7e e0 = Bke0 ^((~
59d0: 42 6b 69 30 29 26 20 20 42 6b 6f 30 20 29 3b 20 Bki0)& Bko0 );
59e0: 5c 0a 20 20 20 20 41 23 23 73 61 30 20 5e 3d 20 \. A##sa0 ^=
59f0: 44 61 30 3b 20 5c 0a 20 20 20 20 42 6b 75 30 20 Da0; \. Bku0
5a00: 3d 20 52 4f 4c 33 32 28 41 23 23 73 61 30 2c 20 = ROL32(A##sa0,
5a10: 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 30 9); \. E##ki0
5a20: 20 3d 20 20 20 42 6b 69 30 20 5e 28 28 7e 42 6b = Bki0 ^((~Bk
5a30: 6f 30 29 26 20 20 42 6b 75 30 20 29 3b 20 5c 0a o0)& Bku0 ); \.
5a40: 20 20 20 20 45 23 23 6b 6f 30 20 3d 20 20 20 42 E##ko0 = B
5a50: 6b 6f 30 20 5e 28 28 7e 42 6b 75 30 29 26 20 20 ko0 ^((~Bku0)&
5a60: 42 6b 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 Bka0 ); \. E#
5a70: 23 6b 75 30 20 3d 20 20 20 42 6b 75 30 20 5e 28 #ku0 = Bku0 ^(
5a80: 28 7e 42 6b 61 30 29 26 20 20 42 6b 65 30 20 29 (~Bka0)& Bke0 )
5a90: 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 65 30 ; \.\. A##be0
5aa0: 20 5e 3d 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 ^= De0; \. B
5ab0: 6b 61 31 20 3d 20 41 23 23 62 65 30 3b 20 5c 0a ka1 = A##be0; \.
5ac0: 20 20 20 20 41 23 23 67 69 31 20 5e 3d 20 44 69 A##gi1 ^= Di
5ad0: 31 3b 20 5c 0a 20 20 20 20 42 6b 65 31 20 3d 20 1; \. Bke1 =
5ae0: 52 4f 4c 33 32 28 41 23 23 67 69 31 2c 20 33 29 ROL32(A##gi1, 3)
5af0: 3b 20 5c 0a 20 20 20 20 41 23 23 6b 6f 30 20 5e ; \. A##ko0 ^
5b00: 3d 20 44 6f 30 3b 20 5c 0a 20 20 20 20 42 6b 69 = Do0; \. Bki
5b10: 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 6f 30 1 = ROL32(A##ko0
5b20: 2c 20 31 32 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 12); \. E##
5b30: 6b 61 31 20 3d 20 20 20 42 6b 61 31 20 5e 28 28 ka1 = Bka1 ^((
5b40: 7e 42 6b 65 31 29 26 20 20 42 6b 69 31 20 29 3b ~Bke1)& Bki1 );
5b50: 20 5c 0a 20 20 20 20 41 23 23 6d 75 31 20 5e 3d \. A##mu1 ^=
5b60: 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 6b 6f 31 Du1; \. Bko1
5b70: 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 75 31 2c = ROL32(A##mu1,
5b80: 20 34 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 65 4); \. E##ke
5b90: 31 20 3d 20 20 20 42 6b 65 31 20 5e 28 28 7e 42 1 = Bke1 ^((~B
5ba0: 6b 69 31 29 26 20 20 42 6b 6f 31 20 29 3b 20 5c ki1)& Bko1 ); \
5bb0: 0a 20 20 20 20 41 23 23 73 61 31 20 5e 3d 20 44 . A##sa1 ^= D
5bc0: 61 31 3b 20 5c 0a 20 20 20 20 42 6b 75 31 20 3d a1; \. Bku1 =
5bd0: 20 52 4f 4c 33 32 28 41 23 23 73 61 31 2c 20 39 ROL32(A##sa1, 9
5be0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6b 69 31 20 ); \. E##ki1
5bf0: 3d 20 20 20 42 6b 69 31 20 5e 28 28 7e 42 6b 6f = Bki1 ^((~Bko
5c00: 31 29 26 20 20 42 6b 75 31 20 29 3b 20 5c 0a 20 1)& Bku1 ); \.
5c10: 20 20 20 45 23 23 6b 6f 31 20 3d 20 20 20 42 6b E##ko1 = Bk
5c20: 6f 31 20 5e 28 28 7e 42 6b 75 31 29 26 20 20 42 o1 ^((~Bku1)& B
5c30: 6b 61 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 ka1 ); \. E##
5c40: 6b 75 31 20 3d 20 20 20 42 6b 75 31 20 5e 28 28 ku1 = Bku1 ^((
5c50: 7e 42 6b 61 31 29 26 20 20 42 6b 65 31 20 29 3b ~Bka1)& Bke1 );
5c60: 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 75 31 20 \.\. A##bu1
5c70: 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 6d ^= Du1; \. Bm
5c80: 61 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 62 75 a0 = ROL32(A##bu
5c90: 31 2c 20 31 34 29 3b 20 5c 0a 20 20 20 20 41 23 1, 14); \. A#
5ca0: 23 67 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 20 #ga0 ^= Da0; \.
5cb0: 20 20 20 42 6d 65 30 20 3d 20 52 4f 4c 33 32 28 Bme0 = ROL32(
5cc0: 41 23 23 67 61 30 2c 20 31 38 29 3b 20 5c 0a 20 A##ga0, 18); \.
5cd0: 20 20 20 41 23 23 6b 65 30 20 5e 3d 20 44 65 30 A##ke0 ^= De0
5ce0: 3b 20 5c 0a 20 20 20 20 42 6d 69 30 20 3d 20 52 ; \. Bmi0 = R
5cf0: 4f 4c 33 32 28 41 23 23 6b 65 30 2c 20 35 29 3b OL32(A##ke0, 5);
5d00: 20 5c 0a 20 20 20 20 45 23 23 6d 61 30 20 3d 20 \. E##ma0 =
5d10: 20 20 42 6d 61 30 20 5e 28 28 7e 42 6d 65 30 29 Bma0 ^((~Bme0)
5d20: 26 20 20 42 6d 69 30 20 29 3b 20 5c 0a 20 20 20 & Bmi0 ); \.
5d30: 20 41 23 23 6d 69 31 20 5e 3d 20 44 69 31 3b 20 A##mi1 ^= Di1;
5d40: 5c 0a 20 20 20 20 42 6d 6f 30 20 3d 20 52 4f 4c \. Bmo0 = ROL
5d50: 33 32 28 41 23 23 6d 69 31 2c 20 38 29 3b 20 5c 32(A##mi1, 8); \
5d60: 0a 20 20 20 20 45 23 23 6d 65 30 20 3d 20 20 20 . E##me0 =
5d70: 42 6d 65 30 20 5e 28 28 7e 42 6d 69 30 29 26 20 Bme0 ^((~Bmi0)&
5d80: 20 42 6d 6f 30 20 29 3b 20 5c 0a 20 20 20 20 41 Bmo0 ); \. A
5d90: 23 23 73 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a ##so0 ^= Do0; \.
5da0: 20 20 20 20 42 6d 75 30 20 3d 20 52 4f 4c 33 32 Bmu0 = ROL32
5db0: 28 41 23 23 73 6f 30 2c 20 32 38 29 3b 20 5c 0a (A##so0, 28); \.
5dc0: 20 20 20 20 45 23 23 6d 69 30 20 3d 20 20 20 42 E##mi0 = B
5dd0: 6d 69 30 20 5e 28 28 7e 42 6d 6f 30 29 26 20 20 mi0 ^((~Bmo0)&
5de0: 42 6d 75 30 20 29 3b 20 5c 0a 20 20 20 20 45 23 Bmu0 ); \. E#
5df0: 23 6d 6f 30 20 3d 20 20 20 42 6d 6f 30 20 5e 28 #mo0 = Bmo0 ^(
5e00: 28 7e 42 6d 75 30 29 26 20 20 42 6d 61 30 20 29 (~Bmu0)& Bma0 )
5e10: 3b 20 5c 0a 20 20 20 20 45 23 23 6d 75 30 20 3d ; \. E##mu0 =
5e20: 20 20 20 42 6d 75 30 20 5e 28 28 7e 42 6d 61 30 Bmu0 ^((~Bma0
5e30: 29 26 20 20 42 6d 65 30 20 29 3b 20 5c 0a 5c 0a )& Bme0 ); \.\.
5e40: 20 20 20 20 41 23 23 62 75 30 20 5e 3d 20 44 75 A##bu0 ^= Du
5e50: 30 3b 20 5c 0a 20 20 20 20 42 6d 61 31 20 3d 20 0; \. Bma1 =
5e60: 52 4f 4c 33 32 28 41 23 23 62 75 30 2c 20 31 33 ROL32(A##bu0, 13
5e70: 29 3b 20 5c 0a 20 20 20 20 41 23 23 67 61 31 20 ); \. A##ga1
5e80: 5e 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 6d ^= Da1; \. Bm
5e90: 65 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 67 61 e1 = ROL32(A##ga
5ea0: 31 2c 20 31 38 29 3b 20 5c 0a 20 20 20 20 41 23 1, 18); \. A#
5eb0: 23 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 20 #ke1 ^= De1; \.
5ec0: 20 20 20 42 6d 69 31 20 3d 20 52 4f 4c 33 32 28 Bmi1 = ROL32(
5ed0: 41 23 23 6b 65 31 2c 20 35 29 3b 20 5c 0a 20 20 A##ke1, 5); \.
5ee0: 20 20 45 23 23 6d 61 31 20 3d 20 20 20 42 6d 61 E##ma1 = Bma
5ef0: 31 20 5e 28 28 7e 42 6d 65 31 29 26 20 20 42 6d 1 ^((~Bme1)& Bm
5f00: 69 31 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 6d i1 ); \. A##m
5f10: 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 20 20 20 i0 ^= Di0; \.
5f20: 20 42 6d 6f 31 20 3d 20 52 4f 4c 33 32 28 41 23 Bmo1 = ROL32(A#
5f30: 23 6d 69 30 2c 20 37 29 3b 20 5c 0a 20 20 20 20 #mi0, 7); \.
5f40: 45 23 23 6d 65 31 20 3d 20 20 20 42 6d 65 31 20 E##me1 = Bme1
5f50: 5e 28 28 7e 42 6d 69 31 29 26 20 20 42 6d 6f 31 ^((~Bmi1)& Bmo1
5f60: 20 29 3b 20 5c 0a 20 20 20 20 41 23 23 73 6f 31 ); \. A##so1
5f70: 20 5e 3d 20 44 6f 31 3b 20 5c 0a 20 20 20 20 42 ^= Do1; \. B
5f80: 6d 75 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 mu1 = ROL32(A##s
5f90: 6f 31 2c 20 32 38 29 3b 20 5c 0a 20 20 20 20 45 o1, 28); \. E
5fa0: 23 23 6d 69 31 20 3d 20 20 20 42 6d 69 31 20 5e ##mi1 = Bmi1 ^
5fb0: 28 28 7e 42 6d 6f 31 29 26 20 20 42 6d 75 31 20 ((~Bmo1)& Bmu1
5fc0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 6d 6f 31 20 ); \. E##mo1
5fd0: 3d 20 20 20 42 6d 6f 31 20 5e 28 28 7e 42 6d 75 = Bmo1 ^((~Bmu
5fe0: 31 29 26 20 20 42 6d 61 31 20 29 3b 20 5c 0a 20 1)& Bma1 ); \.
5ff0: 20 20 20 45 23 23 6d 75 31 20 3d 20 20 20 42 6d E##mu1 = Bm
6000: 75 31 20 5e 28 28 7e 42 6d 61 31 29 26 20 20 42 u1 ^((~Bma1)& B
6010: 6d 65 31 20 29 3b 20 5c 0a 5c 0a 20 20 20 20 41 me1 ); \.\. A
6020: 23 23 62 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a ##bi0 ^= Di0; \.
6030: 20 20 20 20 42 73 61 30 20 3d 20 52 4f 4c 33 32 Bsa0 = ROL32
6040: 28 41 23 23 62 69 30 2c 20 33 31 29 3b 20 5c 0a (A##bi0, 31); \.
6050: 20 20 20 20 41 23 23 67 6f 31 20 5e 3d 20 44 6f A##go1 ^= Do
6060: 31 3b 20 5c 0a 20 20 20 20 42 73 65 30 20 3d 20 1; \. Bse0 =
6070: 52 4f 4c 33 32 28 41 23 23 67 6f 31 2c 20 32 38 ROL32(A##go1, 28
6080: 29 3b 20 5c 0a 20 20 20 20 41 23 23 6b 75 31 20 ); \. A##ku1
6090: 5e 3d 20 44 75 31 3b 20 5c 0a 20 20 20 20 42 73 ^= Du1; \. Bs
60a0: 69 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6b 75 i0 = ROL32(A##ku
60b0: 31 2c 20 32 30 29 3b 20 5c 0a 20 20 20 20 45 23 1, 20); \. E#
60c0: 23 73 61 30 20 3d 20 20 20 42 73 61 30 20 5e 28 #sa0 = Bsa0 ^(
60d0: 28 7e 42 73 65 30 29 26 20 20 42 73 69 30 20 29 (~Bse0)& Bsi0 )
60e0: 3b 20 5c 0a 20 20 20 20 41 23 23 6d 61 31 20 5e ; \. A##ma1 ^
60f0: 3d 20 44 61 31 3b 20 5c 0a 20 20 20 20 42 73 6f = Da1; \. Bso
6100: 30 20 3d 20 52 4f 4c 33 32 28 41 23 23 6d 61 31 0 = ROL32(A##ma1
6110: 2c 20 32 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 , 21); \. E##
6120: 73 65 30 20 3d 20 20 20 42 73 65 30 20 5e 28 28 se0 = Bse0 ^((
6130: 7e 42 73 69 30 29 26 20 20 42 73 6f 30 20 29 3b ~Bsi0)& Bso0 );
6140: 20 5c 0a 20 20 20 20 41 23 23 73 65 30 20 5e 3d \. A##se0 ^=
6150: 20 44 65 30 3b 20 5c 0a 20 20 20 20 42 73 75 30 De0; \. Bsu0
6160: 20 3d 20 52 4f 4c 33 32 28 41 23 23 73 65 30 2c = ROL32(A##se0,
6170: 20 31 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 69 1); \. E##si
6180: 30 20 3d 20 20 20 42 73 69 30 20 5e 28 28 7e 42 0 = Bsi0 ^((~B
6190: 73 6f 30 29 26 20 20 42 73 75 30 20 29 3b 20 5c so0)& Bsu0 ); \
61a0: 0a 20 20 20 20 45 23 23 73 6f 30 20 3d 20 20 20 . E##so0 =
61b0: 42 73 6f 30 20 5e 28 28 7e 42 73 75 30 29 26 20 Bso0 ^((~Bsu0)&
61c0: 20 42 73 61 30 20 29 3b 20 5c 0a 20 20 20 20 45 Bsa0 ); \. E
61d0: 23 23 73 75 30 20 3d 20 20 20 42 73 75 30 20 5e ##su0 = Bsu0 ^
61e0: 28 28 7e 42 73 61 30 29 26 20 20 42 73 65 30 20 ((~Bsa0)& Bse0
61f0: 29 3b 20 5c 0a 5c 0a 20 20 20 20 41 23 23 62 69 ); \.\. A##bi
6200: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 20 20 20 20 1 ^= Di1; \.
6210: 42 73 61 31 20 3d 20 52 4f 4c 33 32 28 41 23 23 Bsa1 = ROL32(A##
6220: 62 69 31 2c 20 33 31 29 3b 20 5c 0a 20 20 20 20 bi1, 31); \.
6230: 41 23 23 67 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c A##go0 ^= Do0; \
6240: 0a 20 20 20 20 42 73 65 31 20 3d 20 52 4f 4c 33 . Bse1 = ROL3
6250: 32 28 41 23 23 67 6f 30 2c 20 32 37 29 3b 20 5c 2(A##go0, 27); \
6260: 0a 20 20 20 20 41 23 23 6b 75 30 20 5e 3d 20 44 . A##ku0 ^= D
6270: 75 30 3b 20 5c 0a 20 20 20 20 42 73 69 31 20 3d u0; \. Bsi1 =
6280: 20 52 4f 4c 33 32 28 41 23 23 6b 75 30 2c 20 31 ROL32(A##ku0, 1
6290: 39 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 61 31 9); \. E##sa1
62a0: 20 3d 20 20 20 42 73 61 31 20 5e 28 28 7e 42 73 = Bsa1 ^((~Bs
62b0: 65 31 29 26 20 20 42 73 69 31 20 29 3b 20 5c 0a e1)& Bsi1 ); \.
62c0: 20 20 20 20 41 23 23 6d 61 30 20 5e 3d 20 44 61 A##ma0 ^= Da
62d0: 30 3b 20 5c 0a 20 20 20 20 42 73 6f 31 20 3d 20 0; \. Bso1 =
62e0: 52 4f 4c 33 32 28 41 23 23 6d 61 30 2c 20 32 30 ROL32(A##ma0, 20
62f0: 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 65 31 20 ); \. E##se1
6300: 3d 20 20 20 42 73 65 31 20 5e 28 28 7e 42 73 69 = Bse1 ^((~Bsi
6310: 31 29 26 20 20 42 73 6f 31 20 29 3b 20 5c 0a 20 1)& Bso1 ); \.
6320: 20 20 20 41 23 23 73 65 31 20 5e 3d 20 44 65 31 A##se1 ^= De1
6330: 3b 20 5c 0a 20 20 20 20 42 73 75 31 20 3d 20 52 ; \. Bsu1 = R
6340: 4f 4c 33 32 28 41 23 23 73 65 31 2c 20 31 29 3b OL32(A##se1, 1);
6350: 20 5c 0a 20 20 20 20 45 23 23 73 69 31 20 3d 20 \. E##si1 =
6360: 20 20 42 73 69 31 20 5e 28 28 7e 42 73 6f 31 29 Bsi1 ^((~Bso1)
6370: 26 20 20 42 73 75 31 20 29 3b 20 5c 0a 20 20 20 & Bsu1 ); \.
6380: 20 45 23 23 73 6f 31 20 3d 20 20 20 42 73 6f 31 E##so1 = Bso1
6390: 20 5e 28 28 7e 42 73 75 31 29 26 20 20 42 73 61 ^((~Bsu1)& Bsa
63a0: 31 20 29 3b 20 5c 0a 20 20 20 20 45 23 23 73 75 1 ); \. E##su
63b0: 31 20 3d 20 20 20 42 73 75 31 20 5e 28 28 7e 42 1 = Bsu1 ^((~B
63c0: 73 61 31 29 26 20 20 42 73 65 31 20 29 3b 20 5c sa1)& Bse1 ); \
63d0: 0a 5c 0a 0a 23 65 6e 64 69 66 20 2f 2f 20 55 73 .\..#endif // Us
63e0: 65 42 65 62 69 67 6f 6b 69 6d 69 73 61 0a 0a 63 eBebigokimisa..c
63f0: 6f 6e 73 74 20 55 49 4e 54 33 32 20 4b 65 63 63 onst UINT32 Kecc
6400: 61 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 akF1600RoundCons
6410: 74 61 6e 74 73 5f 69 6e 74 32 5f 30 5b 32 34 5d tants_int2_0[24]
6420: 20 3d 20 7b 0a 20 20 20 20 30 78 30 30 30 30 30 = {. 0x00000
6430: 30 30 31 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 001UL,. 0x000
6440: 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 00000UL,. 0x0
6450: 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 0000000UL,. 0
6460: 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 x00000000UL,.
6470: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0a 20 0x00000001UL,.
6480: 20 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0x00000001UL,
6490: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55 . 0x00000001U
64a0: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 L,. 0x0000000
64b0: 31 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 1UL,. 0x00000
64c0: 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 000UL,. 0x000
64d0: 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 00000UL,. 0x0
64e0: 30 30 30 30 30 30 31 55 4c 2c 0a 20 20 20 20 30 0000001UL,. 0
64f0: 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 x00000000UL,.
6500: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0a 20 0x00000001UL,.
6510: 20 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0x00000001UL,
6520: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55 . 0x00000001U
6530: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 L,. 0x0000000
6540: 31 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 1UL,. 0x00000
6550: 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 000UL,. 0x000
6560: 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 30 00000UL,. 0x0
6570: 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 20 30 0000000UL,. 0
6580: 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 20 20 20 x00000000UL,.
6590: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 0a 20 0x00000001UL,.
65a0: 20 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 0x00000000UL,
65b0: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55 . 0x00000001U
65c0: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 L,. 0x0000000
65d0: 30 55 4c 20 7d 3b 0a 0a 63 6f 6e 73 74 20 55 49 0UL };..const UI
65e0: 4e 54 33 32 20 4b 65 63 63 61 6b 46 31 36 30 30 NT32 KeccakF1600
65f0: 52 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 RoundConstants_i
6600: 6e 74 32 5f 31 5b 32 34 5d 20 3d 20 7b 0a 20 20 nt2_1[24] = {.
6610: 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 0a 0x00000000UL,.
6620: 20 20 20 20 30 78 30 30 30 30 30 30 38 39 55 4c 0x00000089UL
6630: 2c 0a 20 20 20 20 30 78 38 30 30 30 30 30 38 62 ,. 0x8000008b
6640: 55 4c 2c 0a 20 20 20 20 30 78 38 30 30 30 38 30 UL,. 0x800080
6650: 38 30 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 80UL,. 0x0000
6660: 30 30 38 62 55 4c 2c 0a 20 20 20 20 30 78 30 30 008bUL,. 0x00
6670: 30 30 38 30 30 30 55 4c 2c 0a 20 20 20 20 30 78 008000UL,. 0x
6680: 38 30 30 30 38 30 38 38 55 4c 2c 0a 20 20 20 20 80008088UL,.
6690: 30 78 38 30 30 30 30 30 38 32 55 4c 2c 0a 20 20 0x80000082UL,.
66a0: 20 20 30 78 30 30 30 30 30 30 30 62 55 4c 2c 0a 0x0000000bUL,.
66b0: 20 20 20 20 30 78 30 30 30 30 30 30 30 61 55 4c 0x0000000aUL
66c0: 2c 0a 20 20 20 20 30 78 30 30 30 30 38 30 38 32 ,. 0x00008082
66d0: 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 38 30 UL,. 0x000080
66e0: 30 33 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 03UL,. 0x0000
66f0: 38 30 38 62 55 4c 2c 0a 20 20 20 20 30 78 38 30 808bUL,. 0x80
6700: 30 30 30 30 30 62 55 4c 2c 0a 20 20 20 20 30 78 00000bUL,. 0x
6710: 38 30 30 30 30 30 38 61 55 4c 2c 0a 20 20 20 20 8000008aUL,.
6720: 30 78 38 30 30 30 30 30 38 31 55 4c 2c 0a 20 20 0x80000081UL,.
6730: 20 20 30 78 38 30 30 30 30 30 38 31 55 4c 2c 0a 0x80000081UL,.
6740: 20 20 20 20 30 78 38 30 30 30 30 30 30 38 55 4c 0x80000008UL
6750: 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 38 33 ,. 0x00000083
6760: 55 4c 2c 0a 20 20 20 20 30 78 38 30 30 30 38 30 UL,. 0x800080
6770: 30 33 55 4c 2c 0a 20 20 20 20 30 78 38 30 30 30 03UL,. 0x8000
6780: 38 30 38 38 55 4c 2c 0a 20 20 20 20 30 78 38 30 8088UL,. 0x80
6790: 30 30 30 30 38 38 55 4c 2c 0a 20 20 20 20 30 78 000088UL,. 0x
67a0: 30 30 30 30 38 30 30 30 55 4c 2c 0a 20 20 20 20 00008000UL,.
67b0: 30 78 38 30 30 30 38 30 38 32 55 4c 20 7d 3b 0a 0x80008082UL };.
67c0: 0a 23 64 65 66 69 6e 65 20 63 6f 70 79 46 72 6f .#define copyFro
67d0: 6d 53 74 61 74 65 41 6e 64 58 6f 72 31 30 32 34 mStateAndXor1024
67e0: 62 69 74 73 28 58 2c 20 73 74 61 74 65 2c 20 69 bits(X, state, i
67f0: 6e 70 75 74 29 20 5c 0a 20 20 20 20 58 23 23 62 nput) \. X##b
6800: 61 30 20 3d 20 73 74 61 74 65 5b 20 30 5d 5e 69 a0 = state[ 0]^i
6810: 6e 70 75 74 5b 20 30 5d 3b 20 5c 0a 20 20 20 20 nput[ 0]; \.
6820: 58 23 23 62 61 31 20 3d 20 73 74 61 74 65 5b 20 X##ba1 = state[
6830: 31 5d 5e 69 6e 70 75 74 5b 20 31 5d 3b 20 5c 0a 1]^input[ 1]; \.
6840: 20 20 20 20 58 23 23 62 65 30 20 3d 20 73 74 61 X##be0 = sta
6850: 74 65 5b 20 32 5d 5e 69 6e 70 75 74 5b 20 32 5d te[ 2]^input[ 2]
6860: 3b 20 5c 0a 20 20 20 20 58 23 23 62 65 31 20 3d ; \. X##be1 =
6870: 20 73 74 61 74 65 5b 20 33 5d 5e 69 6e 70 75 74 state[ 3]^input
6880: 5b 20 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 [ 3]; \. X##b
6890: 69 30 20 3d 20 73 74 61 74 65 5b 20 34 5d 5e 69 i0 = state[ 4]^i
68a0: 6e 70 75 74 5b 20 34 5d 3b 20 5c 0a 20 20 20 20 nput[ 4]; \.
68b0: 58 23 23 62 69 31 20 3d 20 73 74 61 74 65 5b 20 X##bi1 = state[
68c0: 35 5d 5e 69 6e 70 75 74 5b 20 35 5d 3b 20 5c 0a 5]^input[ 5]; \.
68d0: 20 20 20 20 58 23 23 62 6f 30 20 3d 20 73 74 61 X##bo0 = sta
68e0: 74 65 5b 20 36 5d 5e 69 6e 70 75 74 5b 20 36 5d te[ 6]^input[ 6]
68f0: 3b 20 5c 0a 20 20 20 20 58 23 23 62 6f 31 20 3d ; \. X##bo1 =
6900: 20 73 74 61 74 65 5b 20 37 5d 5e 69 6e 70 75 74 state[ 7]^input
6910: 5b 20 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 [ 7]; \. X##b
6920: 75 30 20 3d 20 73 74 61 74 65 5b 20 38 5d 5e 69 u0 = state[ 8]^i
6930: 6e 70 75 74 5b 20 38 5d 3b 20 5c 0a 20 20 20 20 nput[ 8]; \.
6940: 58 23 23 62 75 31 20 3d 20 73 74 61 74 65 5b 20 X##bu1 = state[
6950: 39 5d 5e 69 6e 70 75 74 5b 20 39 5d 3b 20 5c 0a 9]^input[ 9]; \.
6960: 20 20 20 20 58 23 23 67 61 30 20 3d 20 73 74 61 X##ga0 = sta
6970: 74 65 5b 31 30 5d 5e 69 6e 70 75 74 5b 31 30 5d te[10]^input[10]
6980: 3b 20 5c 0a 20 20 20 20 58 23 23 67 61 31 20 3d ; \. X##ga1 =
6990: 20 73 74 61 74 65 5b 31 31 5d 5e 69 6e 70 75 74 state[11]^input
69a0: 5b 31 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 [11]; \. X##g
69b0: 65 30 20 3d 20 73 74 61 74 65 5b 31 32 5d 5e 69 e0 = state[12]^i
69c0: 6e 70 75 74 5b 31 32 5d 3b 20 5c 0a 20 20 20 20 nput[12]; \.
69d0: 58 23 23 67 65 31 20 3d 20 73 74 61 74 65 5b 31 X##ge1 = state[1
69e0: 33 5d 5e 69 6e 70 75 74 5b 31 33 5d 3b 20 5c 0a 3]^input[13]; \.
69f0: 20 20 20 20 58 23 23 67 69 30 20 3d 20 73 74 61 X##gi0 = sta
6a00: 74 65 5b 31 34 5d 5e 69 6e 70 75 74 5b 31 34 5d te[14]^input[14]
6a10: 3b 20 5c 0a 20 20 20 20 58 23 23 67 69 31 20 3d ; \. X##gi1 =
6a20: 20 73 74 61 74 65 5b 31 35 5d 5e 69 6e 70 75 74 state[15]^input
6a30: 5b 31 35 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 [15]; \. X##g
6a40: 6f 30 20 3d 20 73 74 61 74 65 5b 31 36 5d 5e 69 o0 = state[16]^i
6a50: 6e 70 75 74 5b 31 36 5d 3b 20 5c 0a 20 20 20 20 nput[16]; \.
6a60: 58 23 23 67 6f 31 20 3d 20 73 74 61 74 65 5b 31 X##go1 = state[1
6a70: 37 5d 5e 69 6e 70 75 74 5b 31 37 5d 3b 20 5c 0a 7]^input[17]; \.
6a80: 20 20 20 20 58 23 23 67 75 30 20 3d 20 73 74 61 X##gu0 = sta
6a90: 74 65 5b 31 38 5d 5e 69 6e 70 75 74 5b 31 38 5d te[18]^input[18]
6aa0: 3b 20 5c 0a 20 20 20 20 58 23 23 67 75 31 20 3d ; \. X##gu1 =
6ab0: 20 73 74 61 74 65 5b 31 39 5d 5e 69 6e 70 75 74 state[19]^input
6ac0: 5b 31 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b [19]; \. X##k
6ad0: 61 30 20 3d 20 73 74 61 74 65 5b 32 30 5d 5e 69 a0 = state[20]^i
6ae0: 6e 70 75 74 5b 32 30 5d 3b 20 5c 0a 20 20 20 20 nput[20]; \.
6af0: 58 23 23 6b 61 31 20 3d 20 73 74 61 74 65 5b 32 X##ka1 = state[2
6b00: 31 5d 5e 69 6e 70 75 74 5b 32 31 5d 3b 20 5c 0a 1]^input[21]; \.
6b10: 20 20 20 20 58 23 23 6b 65 30 20 3d 20 73 74 61 X##ke0 = sta
6b20: 74 65 5b 32 32 5d 5e 69 6e 70 75 74 5b 32 32 5d te[22]^input[22]
6b30: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 65 31 20 3d ; \. X##ke1 =
6b40: 20 73 74 61 74 65 5b 32 33 5d 5e 69 6e 70 75 74 state[23]^input
6b50: 5b 32 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b [23]; \. X##k
6b60: 69 30 20 3d 20 73 74 61 74 65 5b 32 34 5d 5e 69 i0 = state[24]^i
6b70: 6e 70 75 74 5b 32 34 5d 3b 20 5c 0a 20 20 20 20 nput[24]; \.
6b80: 58 23 23 6b 69 31 20 3d 20 73 74 61 74 65 5b 32 X##ki1 = state[2
6b90: 35 5d 5e 69 6e 70 75 74 5b 32 35 5d 3b 20 5c 0a 5]^input[25]; \.
6ba0: 20 20 20 20 58 23 23 6b 6f 30 20 3d 20 73 74 61 X##ko0 = sta
6bb0: 74 65 5b 32 36 5d 5e 69 6e 70 75 74 5b 32 36 5d te[26]^input[26]
6bc0: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 6f 31 20 3d ; \. X##ko1 =
6bd0: 20 73 74 61 74 65 5b 32 37 5d 5e 69 6e 70 75 74 state[27]^input
6be0: 5b 32 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b [27]; \. X##k
6bf0: 75 30 20 3d 20 73 74 61 74 65 5b 32 38 5d 5e 69 u0 = state[28]^i
6c00: 6e 70 75 74 5b 32 38 5d 3b 20 5c 0a 20 20 20 20 nput[28]; \.
6c10: 58 23 23 6b 75 31 20 3d 20 73 74 61 74 65 5b 32 X##ku1 = state[2
6c20: 39 5d 5e 69 6e 70 75 74 5b 32 39 5d 3b 20 5c 0a 9]^input[29]; \.
6c30: 20 20 20 20 58 23 23 6d 61 30 20 3d 20 73 74 61 X##ma0 = sta
6c40: 74 65 5b 33 30 5d 5e 69 6e 70 75 74 5b 33 30 5d te[30]^input[30]
6c50: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 61 31 20 3d ; \. X##ma1 =
6c60: 20 73 74 61 74 65 5b 33 31 5d 5e 69 6e 70 75 74 state[31]^input
6c70: 5b 33 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d [31]; \. X##m
6c80: 65 30 20 3d 20 73 74 61 74 65 5b 33 32 5d 3b 20 e0 = state[32];
6c90: 5c 0a 20 20 20 20 58 23 23 6d 65 31 20 3d 20 73 \. X##me1 = s
6ca0: 74 61 74 65 5b 33 33 5d 3b 20 5c 0a 20 20 20 20 tate[33]; \.
6cb0: 58 23 23 6d 69 30 20 3d 20 73 74 61 74 65 5b 33 X##mi0 = state[3
6cc0: 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 69 31 4]; \. X##mi1
6cd0: 20 3d 20 73 74 61 74 65 5b 33 35 5d 3b 20 5c 0a = state[35]; \.
6ce0: 20 20 20 20 58 23 23 6d 6f 30 20 3d 20 73 74 61 X##mo0 = sta
6cf0: 74 65 5b 33 36 5d 3b 20 5c 0a 20 20 20 20 58 23 te[36]; \. X#
6d00: 23 6d 6f 31 20 3d 20 73 74 61 74 65 5b 33 37 5d #mo1 = state[37]
6d10: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 30 20 3d ; \. X##mu0 =
6d20: 20 73 74 61 74 65 5b 33 38 5d 3b 20 5c 0a 20 20 state[38]; \.
6d30: 20 20 58 23 23 6d 75 31 20 3d 20 73 74 61 74 65 X##mu1 = state
6d40: 5b 33 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 [39]; \. X##s
6d50: 61 30 20 3d 20 73 74 61 74 65 5b 34 30 5d 3b 20 a0 = state[40];
6d60: 5c 0a 20 20 20 20 58 23 23 73 61 31 20 3d 20 73 \. X##sa1 = s
6d70: 74 61 74 65 5b 34 31 5d 3b 20 5c 0a 20 20 20 20 tate[41]; \.
6d80: 58 23 23 73 65 30 20 3d 20 73 74 61 74 65 5b 34 X##se0 = state[4
6d90: 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 65 31 2]; \. X##se1
6da0: 20 3d 20 73 74 61 74 65 5b 34 33 5d 3b 20 5c 0a = state[43]; \.
6db0: 20 20 20 20 58 23 23 73 69 30 20 3d 20 73 74 61 X##si0 = sta
6dc0: 74 65 5b 34 34 5d 3b 20 5c 0a 20 20 20 20 58 23 te[44]; \. X#
6dd0: 23 73 69 31 20 3d 20 73 74 61 74 65 5b 34 35 5d #si1 = state[45]
6de0: 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 30 20 3d ; \. X##so0 =
6df0: 20 73 74 61 74 65 5b 34 36 5d 3b 20 5c 0a 20 20 state[46]; \.
6e00: 20 20 58 23 23 73 6f 31 20 3d 20 73 74 61 74 65 X##so1 = state
6e10: 5b 34 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 [47]; \. X##s
6e20: 75 30 20 3d 20 73 74 61 74 65 5b 34 38 5d 3b 20 u0 = state[48];
6e30: 5c 0a 20 20 20 20 58 23 23 73 75 31 20 3d 20 73 \. X##su1 = s
6e40: 74 61 74 65 5b 34 39 5d 3b 20 5c 0a 0a 23 64 65 tate[49]; \..#de
6e50: 66 69 6e 65 20 63 6f 70 79 46 72 6f 6d 53 74 61 fine copyFromSta
6e60: 74 65 41 6e 64 58 6f 72 31 30 38 38 62 69 74 73 teAndXor1088bits
6e70: 28 58 2c 20 73 74 61 74 65 2c 20 69 6e 70 75 74 (X, state, input
6e80: 29 20 5c 0a 20 20 20 20 58 23 23 62 61 30 20 3d ) \. X##ba0 =
6e90: 20 73 74 61 74 65 5b 20 30 5d 5e 69 6e 70 75 74 state[ 0]^input
6ea0: 5b 20 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 [ 0]; \. X##b
6eb0: 61 31 20 3d 20 73 74 61 74 65 5b 20 31 5d 5e 69 a1 = state[ 1]^i
6ec0: 6e 70 75 74 5b 20 31 5d 3b 20 5c 0a 20 20 20 20 nput[ 1]; \.
6ed0: 58 23 23 62 65 30 20 3d 20 73 74 61 74 65 5b 20 X##be0 = state[
6ee0: 32 5d 5e 69 6e 70 75 74 5b 20 32 5d 3b 20 5c 0a 2]^input[ 2]; \.
6ef0: 20 20 20 20 58 23 23 62 65 31 20 3d 20 73 74 61 X##be1 = sta
6f00: 74 65 5b 20 33 5d 5e 69 6e 70 75 74 5b 20 33 5d te[ 3]^input[ 3]
6f10: 3b 20 5c 0a 20 20 20 20 58 23 23 62 69 30 20 3d ; \. X##bi0 =
6f20: 20 73 74 61 74 65 5b 20 34 5d 5e 69 6e 70 75 74 state[ 4]^input
6f30: 5b 20 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 [ 4]; \. X##b
6f40: 69 31 20 3d 20 73 74 61 74 65 5b 20 35 5d 5e 69 i1 = state[ 5]^i
6f50: 6e 70 75 74 5b 20 35 5d 3b 20 5c 0a 20 20 20 20 nput[ 5]; \.
6f60: 58 23 23 62 6f 30 20 3d 20 73 74 61 74 65 5b 20 X##bo0 = state[
6f70: 36 5d 5e 69 6e 70 75 74 5b 20 36 5d 3b 20 5c 0a 6]^input[ 6]; \.
6f80: 20 20 20 20 58 23 23 62 6f 31 20 3d 20 73 74 61 X##bo1 = sta
6f90: 74 65 5b 20 37 5d 5e 69 6e 70 75 74 5b 20 37 5d te[ 7]^input[ 7]
6fa0: 3b 20 5c 0a 20 20 20 20 58 23 23 62 75 30 20 3d ; \. X##bu0 =
6fb0: 20 73 74 61 74 65 5b 20 38 5d 5e 69 6e 70 75 74 state[ 8]^input
6fc0: 5b 20 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 [ 8]; \. X##b
6fd0: 75 31 20 3d 20 73 74 61 74 65 5b 20 39 5d 5e 69 u1 = state[ 9]^i
6fe0: 6e 70 75 74 5b 20 39 5d 3b 20 5c 0a 20 20 20 20 nput[ 9]; \.
6ff0: 58 23 23 67 61 30 20 3d 20 73 74 61 74 65 5b 31 X##ga0 = state[1
7000: 30 5d 5e 69 6e 70 75 74 5b 31 30 5d 3b 20 5c 0a 0]^input[10]; \.
7010: 20 20 20 20 58 23 23 67 61 31 20 3d 20 73 74 61 X##ga1 = sta
7020: 74 65 5b 31 31 5d 5e 69 6e 70 75 74 5b 31 31 5d te[11]^input[11]
7030: 3b 20 5c 0a 20 20 20 20 58 23 23 67 65 30 20 3d ; \. X##ge0 =
7040: 20 73 74 61 74 65 5b 31 32 5d 5e 69 6e 70 75 74 state[12]^input
7050: 5b 31 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 [12]; \. X##g
7060: 65 31 20 3d 20 73 74 61 74 65 5b 31 33 5d 5e 69 e1 = state[13]^i
7070: 6e 70 75 74 5b 31 33 5d 3b 20 5c 0a 20 20 20 20 nput[13]; \.
7080: 58 23 23 67 69 30 20 3d 20 73 74 61 74 65 5b 31 X##gi0 = state[1
7090: 34 5d 5e 69 6e 70 75 74 5b 31 34 5d 3b 20 5c 0a 4]^input[14]; \.
70a0: 20 20 20 20 58 23 23 67 69 31 20 3d 20 73 74 61 X##gi1 = sta
70b0: 74 65 5b 31 35 5d 5e 69 6e 70 75 74 5b 31 35 5d te[15]^input[15]
70c0: 3b 20 5c 0a 20 20 20 20 58 23 23 67 6f 30 20 3d ; \. X##go0 =
70d0: 20 73 74 61 74 65 5b 31 36 5d 5e 69 6e 70 75 74 state[16]^input
70e0: 5b 31 36 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 [16]; \. X##g
70f0: 6f 31 20 3d 20 73 74 61 74 65 5b 31 37 5d 5e 69 o1 = state[17]^i
7100: 6e 70 75 74 5b 31 37 5d 3b 20 5c 0a 20 20 20 20 nput[17]; \.
7110: 58 23 23 67 75 30 20 3d 20 73 74 61 74 65 5b 31 X##gu0 = state[1
7120: 38 5d 5e 69 6e 70 75 74 5b 31 38 5d 3b 20 5c 0a 8]^input[18]; \.
7130: 20 20 20 20 58 23 23 67 75 31 20 3d 20 73 74 61 X##gu1 = sta
7140: 74 65 5b 31 39 5d 5e 69 6e 70 75 74 5b 31 39 5d te[19]^input[19]
7150: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 61 30 20 3d ; \. X##ka0 =
7160: 20 73 74 61 74 65 5b 32 30 5d 5e 69 6e 70 75 74 state[20]^input
7170: 5b 32 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b [20]; \. X##k
7180: 61 31 20 3d 20 73 74 61 74 65 5b 32 31 5d 5e 69 a1 = state[21]^i
7190: 6e 70 75 74 5b 32 31 5d 3b 20 5c 0a 20 20 20 20 nput[21]; \.
71a0: 58 23 23 6b 65 30 20 3d 20 73 74 61 74 65 5b 32 X##ke0 = state[2
71b0: 32 5d 5e 69 6e 70 75 74 5b 32 32 5d 3b 20 5c 0a 2]^input[22]; \.
71c0: 20 20 20 20 58 23 23 6b 65 31 20 3d 20 73 74 61 X##ke1 = sta
71d0: 74 65 5b 32 33 5d 5e 69 6e 70 75 74 5b 32 33 5d te[23]^input[23]
71e0: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 69 30 20 3d ; \. X##ki0 =
71f0: 20 73 74 61 74 65 5b 32 34 5d 5e 69 6e 70 75 74 state[24]^input
7200: 5b 32 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b [24]; \. X##k
7210: 69 31 20 3d 20 73 74 61 74 65 5b 32 35 5d 5e 69 i1 = state[25]^i
7220: 6e 70 75 74 5b 32 35 5d 3b 20 5c 0a 20 20 20 20 nput[25]; \.
7230: 58 23 23 6b 6f 30 20 3d 20 73 74 61 74 65 5b 32 X##ko0 = state[2
7240: 36 5d 5e 69 6e 70 75 74 5b 32 36 5d 3b 20 5c 0a 6]^input[26]; \.
7250: 20 20 20 20 58 23 23 6b 6f 31 20 3d 20 73 74 61 X##ko1 = sta
7260: 74 65 5b 32 37 5d 5e 69 6e 70 75 74 5b 32 37 5d te[27]^input[27]
7270: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75 30 20 3d ; \. X##ku0 =
7280: 20 73 74 61 74 65 5b 32 38 5d 5e 69 6e 70 75 74 state[28]^input
7290: 5b 32 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b [28]; \. X##k
72a0: 75 31 20 3d 20 73 74 61 74 65 5b 32 39 5d 5e 69 u1 = state[29]^i
72b0: 6e 70 75 74 5b 32 39 5d 3b 20 5c 0a 20 20 20 20 nput[29]; \.
72c0: 58 23 23 6d 61 30 20 3d 20 73 74 61 74 65 5b 33 X##ma0 = state[3
72d0: 30 5d 5e 69 6e 70 75 74 5b 33 30 5d 3b 20 5c 0a 0]^input[30]; \.
72e0: 20 20 20 20 58 23 23 6d 61 31 20 3d 20 73 74 61 X##ma1 = sta
72f0: 74 65 5b 33 31 5d 5e 69 6e 70 75 74 5b 33 31 5d te[31]^input[31]
7300: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 65 30 20 3d ; \. X##me0 =
7310: 20 73 74 61 74 65 5b 33 32 5d 5e 69 6e 70 75 74 state[32]^input
7320: 5b 33 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d [32]; \. X##m
7330: 65 31 20 3d 20 73 74 61 74 65 5b 33 33 5d 5e 69 e1 = state[33]^i
7340: 6e 70 75 74 5b 33 33 5d 3b 20 5c 0a 20 20 20 20 nput[33]; \.
7350: 58 23 23 6d 69 30 20 3d 20 73 74 61 74 65 5b 33 X##mi0 = state[3
7360: 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 69 31 4]; \. X##mi1
7370: 20 3d 20 73 74 61 74 65 5b 33 35 5d 3b 20 5c 0a = state[35]; \.
7380: 20 20 20 20 58 23 23 6d 6f 30 20 3d 20 73 74 61 X##mo0 = sta
7390: 74 65 5b 33 36 5d 3b 20 5c 0a 20 20 20 20 58 23 te[36]; \. X#
73a0: 23 6d 6f 31 20 3d 20 73 74 61 74 65 5b 33 37 5d #mo1 = state[37]
73b0: 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 30 20 3d ; \. X##mu0 =
73c0: 20 73 74 61 74 65 5b 33 38 5d 3b 20 5c 0a 20 20 state[38]; \.
73d0: 20 20 58 23 23 6d 75 31 20 3d 20 73 74 61 74 65 X##mu1 = state
73e0: 5b 33 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 [39]; \. X##s
73f0: 61 30 20 3d 20 73 74 61 74 65 5b 34 30 5d 3b 20 a0 = state[40];
7400: 5c 0a 20 20 20 20 58 23 23 73 61 31 20 3d 20 73 \. X##sa1 = s
7410: 74 61 74 65 5b 34 31 5d 3b 20 5c 0a 20 20 20 20 tate[41]; \.
7420: 58 23 23 73 65 30 20 3d 20 73 74 61 74 65 5b 34 X##se0 = state[4
7430: 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 65 31 2]; \. X##se1
7440: 20 3d 20 73 74 61 74 65 5b 34 33 5d 3b 20 5c 0a = state[43]; \.
7450: 20 20 20 20 58 23 23 73 69 30 20 3d 20 73 74 61 X##si0 = sta
7460: 74 65 5b 34 34 5d 3b 20 5c 0a 20 20 20 20 58 23 te[44]; \. X#
7470: 23 73 69 31 20 3d 20 73 74 61 74 65 5b 34 35 5d #si1 = state[45]
7480: 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 30 20 3d ; \. X##so0 =
7490: 20 73 74 61 74 65 5b 34 36 5d 3b 20 5c 0a 20 20 state[46]; \.
74a0: 20 20 58 23 23 73 6f 31 20 3d 20 73 74 61 74 65 X##so1 = state
74b0: 5b 34 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 [47]; \. X##s
74c0: 75 30 20 3d 20 73 74 61 74 65 5b 34 38 5d 3b 20 u0 = state[48];
74d0: 5c 0a 20 20 20 20 58 23 23 73 75 31 20 3d 20 73 \. X##su1 = s
74e0: 74 61 74 65 5b 34 39 5d 3b 20 5c 0a 0a 23 64 65 tate[49]; \..#de
74f0: 66 69 6e 65 20 63 6f 70 79 46 72 6f 6d 53 74 61 fine copyFromSta
7500: 74 65 28 58 2c 20 73 74 61 74 65 29 20 5c 0a 20 te(X, state) \.
7510: 20 20 20 58 23 23 62 61 30 20 3d 20 73 74 61 74 X##ba0 = stat
7520: 65 5b 20 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[ 0]; \. X##
7530: 62 61 31 20 3d 20 73 74 61 74 65 5b 20 31 5d 3b ba1 = state[ 1];
7540: 20 5c 0a 20 20 20 20 58 23 23 62 65 30 20 3d 20 \. X##be0 =
7550: 73 74 61 74 65 5b 20 32 5d 3b 20 5c 0a 20 20 20 state[ 2]; \.
7560: 20 58 23 23 62 65 31 20 3d 20 73 74 61 74 65 5b X##be1 = state[
7570: 20 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 69 3]; \. X##bi
7580: 30 20 3d 20 73 74 61 74 65 5b 20 34 5d 3b 20 5c 0 = state[ 4]; \
7590: 0a 20 20 20 20 58 23 23 62 69 31 20 3d 20 73 74 . X##bi1 = st
75a0: 61 74 65 5b 20 35 5d 3b 20 5c 0a 20 20 20 20 58 ate[ 5]; \. X
75b0: 23 23 62 6f 30 20 3d 20 73 74 61 74 65 5b 20 36 ##bo0 = state[ 6
75c0: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 6f 31 20 ]; \. X##bo1
75d0: 3d 20 73 74 61 74 65 5b 20 37 5d 3b 20 5c 0a 20 = state[ 7]; \.
75e0: 20 20 20 58 23 23 62 75 30 20 3d 20 73 74 61 74 X##bu0 = stat
75f0: 65 5b 20 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[ 8]; \. X##
7600: 62 75 31 20 3d 20 73 74 61 74 65 5b 20 39 5d 3b bu1 = state[ 9];
7610: 20 5c 0a 20 20 20 20 58 23 23 67 61 30 20 3d 20 \. X##ga0 =
7620: 73 74 61 74 65 5b 31 30 5d 3b 20 5c 0a 20 20 20 state[10]; \.
7630: 20 58 23 23 67 61 31 20 3d 20 73 74 61 74 65 5b X##ga1 = state[
7640: 31 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 65 11]; \. X##ge
7650: 30 20 3d 20 73 74 61 74 65 5b 31 32 5d 3b 20 5c 0 = state[12]; \
7660: 0a 20 20 20 20 58 23 23 67 65 31 20 3d 20 73 74 . X##ge1 = st
7670: 61 74 65 5b 31 33 5d 3b 20 5c 0a 20 20 20 20 58 ate[13]; \. X
7680: 23 23 67 69 30 20 3d 20 73 74 61 74 65 5b 31 34 ##gi0 = state[14
7690: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 69 31 20 ]; \. X##gi1
76a0: 3d 20 73 74 61 74 65 5b 31 35 5d 3b 20 5c 0a 20 = state[15]; \.
76b0: 20 20 20 58 23 23 67 6f 30 20 3d 20 73 74 61 74 X##go0 = stat
76c0: 65 5b 31 36 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[16]; \. X##
76d0: 67 6f 31 20 3d 20 73 74 61 74 65 5b 31 37 5d 3b go1 = state[17];
76e0: 20 5c 0a 20 20 20 20 58 23 23 67 75 30 20 3d 20 \. X##gu0 =
76f0: 73 74 61 74 65 5b 31 38 5d 3b 20 5c 0a 20 20 20 state[18]; \.
7700: 20 58 23 23 67 75 31 20 3d 20 73 74 61 74 65 5b X##gu1 = state[
7710: 31 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 61 19]; \. X##ka
7720: 30 20 3d 20 73 74 61 74 65 5b 32 30 5d 3b 20 5c 0 = state[20]; \
7730: 0a 20 20 20 20 58 23 23 6b 61 31 20 3d 20 73 74 . X##ka1 = st
7740: 61 74 65 5b 32 31 5d 3b 20 5c 0a 20 20 20 20 58 ate[21]; \. X
7750: 23 23 6b 65 30 20 3d 20 73 74 61 74 65 5b 32 32 ##ke0 = state[22
7760: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 65 31 20 ]; \. X##ke1
7770: 3d 20 73 74 61 74 65 5b 32 33 5d 3b 20 5c 0a 20 = state[23]; \.
7780: 20 20 20 58 23 23 6b 69 30 20 3d 20 73 74 61 74 X##ki0 = stat
7790: 65 5b 32 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[24]; \. X##
77a0: 6b 69 31 20 3d 20 73 74 61 74 65 5b 32 35 5d 3b ki1 = state[25];
77b0: 20 5c 0a 20 20 20 20 58 23 23 6b 6f 30 20 3d 20 \. X##ko0 =
77c0: 73 74 61 74 65 5b 32 36 5d 3b 20 5c 0a 20 20 20 state[26]; \.
77d0: 20 58 23 23 6b 6f 31 20 3d 20 73 74 61 74 65 5b X##ko1 = state[
77e0: 32 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75 27]; \. X##ku
77f0: 30 20 3d 20 73 74 61 74 65 5b 32 38 5d 3b 20 5c 0 = state[28]; \
7800: 0a 20 20 20 20 58 23 23 6b 75 31 20 3d 20 73 74 . X##ku1 = st
7810: 61 74 65 5b 32 39 5d 3b 20 5c 0a 20 20 20 20 58 ate[29]; \. X
7820: 23 23 6d 61 30 20 3d 20 73 74 61 74 65 5b 33 30 ##ma0 = state[30
7830: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 61 31 20 ]; \. X##ma1
7840: 3d 20 73 74 61 74 65 5b 33 31 5d 3b 20 5c 0a 20 = state[31]; \.
7850: 20 20 20 58 23 23 6d 65 30 20 3d 20 73 74 61 74 X##me0 = stat
7860: 65 5b 33 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[32]; \. X##
7870: 6d 65 31 20 3d 20 73 74 61 74 65 5b 33 33 5d 3b me1 = state[33];
7880: 20 5c 0a 20 20 20 20 58 23 23 6d 69 30 20 3d 20 \. X##mi0 =
7890: 73 74 61 74 65 5b 33 34 5d 3b 20 5c 0a 20 20 20 state[34]; \.
78a0: 20 58 23 23 6d 69 31 20 3d 20 73 74 61 74 65 5b X##mi1 = state[
78b0: 33 35 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 6f 35]; \. X##mo
78c0: 30 20 3d 20 73 74 61 74 65 5b 33 36 5d 3b 20 5c 0 = state[36]; \
78d0: 0a 20 20 20 20 58 23 23 6d 6f 31 20 3d 20 73 74 . X##mo1 = st
78e0: 61 74 65 5b 33 37 5d 3b 20 5c 0a 20 20 20 20 58 ate[37]; \. X
78f0: 23 23 6d 75 30 20 3d 20 73 74 61 74 65 5b 33 38 ##mu0 = state[38
7900: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 31 20 ]; \. X##mu1
7910: 3d 20 73 74 61 74 65 5b 33 39 5d 3b 20 5c 0a 20 = state[39]; \.
7920: 20 20 20 58 23 23 73 61 30 20 3d 20 73 74 61 74 X##sa0 = stat
7930: 65 5b 34 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[40]; \. X##
7940: 73 61 31 20 3d 20 73 74 61 74 65 5b 34 31 5d 3b sa1 = state[41];
7950: 20 5c 0a 20 20 20 20 58 23 23 73 65 30 20 3d 20 \. X##se0 =
7960: 73 74 61 74 65 5b 34 32 5d 3b 20 5c 0a 20 20 20 state[42]; \.
7970: 20 58 23 23 73 65 31 20 3d 20 73 74 61 74 65 5b X##se1 = state[
7980: 34 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 69 43]; \. X##si
7990: 30 20 3d 20 73 74 61 74 65 5b 34 34 5d 3b 20 5c 0 = state[44]; \
79a0: 0a 20 20 20 20 58 23 23 73 69 31 20 3d 20 73 74 . X##si1 = st
79b0: 61 74 65 5b 34 35 5d 3b 20 5c 0a 20 20 20 20 58 ate[45]; \. X
79c0: 23 23 73 6f 30 20 3d 20 73 74 61 74 65 5b 34 36 ##so0 = state[46
79d0: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 31 20 ]; \. X##so1
79e0: 3d 20 73 74 61 74 65 5b 34 37 5d 3b 20 5c 0a 20 = state[47]; \.
79f0: 20 20 20 58 23 23 73 75 30 20 3d 20 73 74 61 74 X##su0 = stat
7a00: 65 5b 34 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[48]; \. X##
7a10: 73 75 31 20 3d 20 73 74 61 74 65 5b 34 39 5d 3b su1 = state[49];
7a20: 20 5c 0a 0a 23 64 65 66 69 6e 65 20 63 6f 70 79 \..#define copy
7a30: 54 6f 53 74 61 74 65 28 73 74 61 74 65 2c 20 58 ToState(state, X
7a40: 29 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 30 ) \. state[ 0
7a50: 5d 20 3d 20 58 23 23 62 61 30 3b 20 5c 0a 20 20 ] = X##ba0; \.
7a60: 20 20 73 74 61 74 65 5b 20 31 5d 20 3d 20 58 23 state[ 1] = X#
7a70: 23 62 61 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 #ba1; \. stat
7a80: 65 5b 20 32 5d 20 3d 20 58 23 23 62 65 30 3b 20 e[ 2] = X##be0;
7a90: 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 33 5d 20 \. state[ 3]
7aa0: 3d 20 58 23 23 62 65 31 3b 20 5c 0a 20 20 20 20 = X##be1; \.
7ab0: 73 74 61 74 65 5b 20 34 5d 20 3d 20 58 23 23 62 state[ 4] = X##b
7ac0: 69 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b i0; \. state[
7ad0: 20 35 5d 20 3d 20 58 23 23 62 69 31 3b 20 5c 0a 5] = X##bi1; \.
7ae0: 20 20 20 20 73 74 61 74 65 5b 20 36 5d 20 3d 20 state[ 6] =
7af0: 58 23 23 62 6f 30 3b 20 5c 0a 20 20 20 20 73 74 X##bo0; \. st
7b00: 61 74 65 5b 20 37 5d 20 3d 20 58 23 23 62 6f 31 ate[ 7] = X##bo1
7b10: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 38 ; \. state[ 8
7b20: 5d 20 3d 20 58 23 23 62 75 30 3b 20 5c 0a 20 20 ] = X##bu0; \.
7b30: 20 20 73 74 61 74 65 5b 20 39 5d 20 3d 20 58 23 state[ 9] = X#
7b40: 23 62 75 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 #bu1; \. stat
7b50: 65 5b 31 30 5d 20 3d 20 58 23 23 67 61 30 3b 20 e[10] = X##ga0;
7b60: 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 31 5d 20 \. state[11]
7b70: 3d 20 58 23 23 67 61 31 3b 20 5c 0a 20 20 20 20 = X##ga1; \.
7b80: 73 74 61 74 65 5b 31 32 5d 20 3d 20 58 23 23 67 state[12] = X##g
7b90: 65 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b e0; \. state[
7ba0: 31 33 5d 20 3d 20 58 23 23 67 65 31 3b 20 5c 0a 13] = X##ge1; \.
7bb0: 20 20 20 20 73 74 61 74 65 5b 31 34 5d 20 3d 20 state[14] =
7bc0: 58 23 23 67 69 30 3b 20 5c 0a 20 20 20 20 73 74 X##gi0; \. st
7bd0: 61 74 65 5b 31 35 5d 20 3d 20 58 23 23 67 69 31 ate[15] = X##gi1
7be0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 36 ; \. state[16
7bf0: 5d 20 3d 20 58 23 23 67 6f 30 3b 20 5c 0a 20 20 ] = X##go0; \.
7c00: 20 20 73 74 61 74 65 5b 31 37 5d 20 3d 20 58 23 state[17] = X#
7c10: 23 67 6f 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 #go1; \. stat
7c20: 65 5b 31 38 5d 20 3d 20 58 23 23 67 75 30 3b 20 e[18] = X##gu0;
7c30: 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 39 5d 20 \. state[19]
7c40: 3d 20 58 23 23 67 75 31 3b 20 5c 0a 20 20 20 20 = X##gu1; \.
7c50: 73 74 61 74 65 5b 32 30 5d 20 3d 20 58 23 23 6b state[20] = X##k
7c60: 61 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b a0; \. state[
7c70: 32 31 5d 20 3d 20 58 23 23 6b 61 31 3b 20 5c 0a 21] = X##ka1; \.
7c80: 20 20 20 20 73 74 61 74 65 5b 32 32 5d 20 3d 20 state[22] =
7c90: 58 23 23 6b 65 30 3b 20 5c 0a 20 20 20 20 73 74 X##ke0; \. st
7ca0: 61 74 65 5b 32 33 5d 20 3d 20 58 23 23 6b 65 31 ate[23] = X##ke1
7cb0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 34 ; \. state[24
7cc0: 5d 20 3d 20 58 23 23 6b 69 30 3b 20 5c 0a 20 20 ] = X##ki0; \.
7cd0: 20 20 73 74 61 74 65 5b 32 35 5d 20 3d 20 58 23 state[25] = X#
7ce0: 23 6b 69 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 #ki1; \. stat
7cf0: 65 5b 32 36 5d 20 3d 20 58 23 23 6b 6f 30 3b 20 e[26] = X##ko0;
7d00: 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 37 5d 20 \. state[27]
7d10: 3d 20 58 23 23 6b 6f 31 3b 20 5c 0a 20 20 20 20 = X##ko1; \.
7d20: 73 74 61 74 65 5b 32 38 5d 20 3d 20 58 23 23 6b state[28] = X##k
7d30: 75 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b u0; \. state[
7d40: 32 39 5d 20 3d 20 58 23 23 6b 75 31 3b 20 5c 0a 29] = X##ku1; \.
7d50: 20 20 20 20 73 74 61 74 65 5b 33 30 5d 20 3d 20 state[30] =
7d60: 58 23 23 6d 61 30 3b 20 5c 0a 20 20 20 20 73 74 X##ma0; \. st
7d70: 61 74 65 5b 33 31 5d 20 3d 20 58 23 23 6d 61 31 ate[31] = X##ma1
7d80: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 33 32 ; \. state[32
7d90: 5d 20 3d 20 58 23 23 6d 65 30 3b 20 5c 0a 20 20 ] = X##me0; \.
7da0: 20 20 73 74 61 74 65 5b 33 33 5d 20 3d 20 58 23 state[33] = X#
7db0: 23 6d 65 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 #me1; \. stat
7dc0: 65 5b 33 34 5d 20 3d 20 58 23 23 6d 69 30 3b 20 e[34] = X##mi0;
7dd0: 5c 0a 20 20 20 20 73 74 61 74 65 5b 33 35 5d 20 \. state[35]
7de0: 3d 20 58 23 23 6d 69 31 3b 20 5c 0a 20 20 20 20 = X##mi1; \.
7df0: 73 74 61 74 65 5b 33 36 5d 20 3d 20 58 23 23 6d state[36] = X##m
7e00: 6f 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b o0; \. state[
7e10: 33 37 5d 20 3d 20 58 23 23 6d 6f 31 3b 20 5c 0a 37] = X##mo1; \.
7e20: 20 20 20 20 73 74 61 74 65 5b 33 38 5d 20 3d 20 state[38] =
7e30: 58 23 23 6d 75 30 3b 20 5c 0a 20 20 20 20 73 74 X##mu0; \. st
7e40: 61 74 65 5b 33 39 5d 20 3d 20 58 23 23 6d 75 31 ate[39] = X##mu1
7e50: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 30 ; \. state[40
7e60: 5d 20 3d 20 58 23 23 73 61 30 3b 20 5c 0a 20 20 ] = X##sa0; \.
7e70: 20 20 73 74 61 74 65 5b 34 31 5d 20 3d 20 58 23 state[41] = X#
7e80: 23 73 61 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 #sa1; \. stat
7e90: 65 5b 34 32 5d 20 3d 20 58 23 23 73 65 30 3b 20 e[42] = X##se0;
7ea0: 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 33 5d 20 \. state[43]
7eb0: 3d 20 58 23 23 73 65 31 3b 20 5c 0a 20 20 20 20 = X##se1; \.
7ec0: 73 74 61 74 65 5b 34 34 5d 20 3d 20 58 23 23 73 state[44] = X##s
7ed0: 69 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b i0; \. state[
7ee0: 34 35 5d 20 3d 20 58 23 23 73 69 31 3b 20 5c 0a 45] = X##si1; \.
7ef0: 20 20 20 20 73 74 61 74 65 5b 34 36 5d 20 3d 20 state[46] =
7f00: 58 23 23 73 6f 30 3b 20 5c 0a 20 20 20 20 73 74 X##so0; \. st
7f10: 61 74 65 5b 34 37 5d 20 3d 20 58 23 23 73 6f 31 ate[47] = X##so1
7f20: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 38 ; \. state[48
7f30: 5d 20 3d 20 58 23 23 73 75 30 3b 20 5c 0a 20 20 ] = X##su0; \.
7f40: 20 20 73 74 61 74 65 5b 34 39 5d 20 3d 20 58 23 state[49] = X#
7f50: 23 73 75 31 3b 20 5c 0a 0a 23 64 65 66 69 6e 65 #su1; \..#define
7f60: 20 63 6f 70 79 53 74 61 74 65 56 61 72 69 61 62 copyStateVariab
7f70: 6c 65 73 28 58 2c 20 59 29 20 5c 0a 20 20 20 20 les(X, Y) \.
7f80: 58 23 23 62 61 30 20 3d 20 59 23 23 62 61 30 3b X##ba0 = Y##ba0;
7f90: 20 5c 0a 20 20 20 20 58 23 23 62 61 31 20 3d 20 \. X##ba1 =
7fa0: 59 23 23 62 61 31 3b 20 5c 0a 20 20 20 20 58 23 Y##ba1; \. X#
7fb0: 23 62 65 30 20 3d 20 59 23 23 62 65 30 3b 20 5c #be0 = Y##be0; \
7fc0: 0a 20 20 20 20 58 23 23 62 65 31 20 3d 20 59 23 . X##be1 = Y#
7fd0: 23 62 65 31 3b 20 5c 0a 20 20 20 20 58 23 23 62 #be1; \. X##b
7fe0: 69 30 20 3d 20 59 23 23 62 69 30 3b 20 5c 0a 20 i0 = Y##bi0; \.
7ff0: 20 20 20 58 23 23 62 69 31 20 3d 20 59 23 23 62 X##bi1 = Y##b
8000: 69 31 3b 20 5c 0a 20 20 20 20 58 23 23 62 6f 30 i1; \. X##bo0
8010: 20 3d 20 59 23 23 62 6f 30 3b 20 5c 0a 20 20 20 = Y##bo0; \.
8020: 20 58 23 23 62 6f 31 20 3d 20 59 23 23 62 6f 31 X##bo1 = Y##bo1
8030: 3b 20 5c 0a 20 20 20 20 58 23 23 62 75 30 20 3d ; \. X##bu0 =
8040: 20 59 23 23 62 75 30 3b 20 5c 0a 20 20 20 20 58 Y##bu0; \. X
8050: 23 23 62 75 31 20 3d 20 59 23 23 62 75 31 3b 20 ##bu1 = Y##bu1;
8060: 5c 0a 20 20 20 20 58 23 23 67 61 30 20 3d 20 59 \. X##ga0 = Y
8070: 23 23 67 61 30 3b 20 5c 0a 20 20 20 20 58 23 23 ##ga0; \. X##
8080: 67 61 31 20 3d 20 59 23 23 67 61 31 3b 20 5c 0a ga1 = Y##ga1; \.
8090: 20 20 20 20 58 23 23 67 65 30 20 3d 20 59 23 23 X##ge0 = Y##
80a0: 67 65 30 3b 20 5c 0a 20 20 20 20 58 23 23 67 65 ge0; \. X##ge
80b0: 31 20 3d 20 59 23 23 67 65 31 3b 20 5c 0a 20 20 1 = Y##ge1; \.
80c0: 20 20 58 23 23 67 69 30 20 3d 20 59 23 23 67 69 X##gi0 = Y##gi
80d0: 30 3b 20 5c 0a 20 20 20 20 58 23 23 67 69 31 20 0; \. X##gi1
80e0: 3d 20 59 23 23 67 69 31 3b 20 5c 0a 20 20 20 20 = Y##gi1; \.
80f0: 58 23 23 67 6f 30 20 3d 20 59 23 23 67 6f 30 3b X##go0 = Y##go0;
8100: 20 5c 0a 20 20 20 20 58 23 23 67 6f 31 20 3d 20 \. X##go1 =
8110: 59 23 23 67 6f 31 3b 20 5c 0a 20 20 20 20 58 23 Y##go1; \. X#
8120: 23 67 75 30 20 3d 20 59 23 23 67 75 30 3b 20 5c #gu0 = Y##gu0; \
8130: 0a 20 20 20 20 58 23 23 67 75 31 20 3d 20 59 23 . X##gu1 = Y#
8140: 23 67 75 31 3b 20 5c 0a 20 20 20 20 58 23 23 6b #gu1; \. X##k
8150: 61 30 20 3d 20 59 23 23 6b 61 30 3b 20 5c 0a 20 a0 = Y##ka0; \.
8160: 20 20 20 58 23 23 6b 61 31 20 3d 20 59 23 23 6b X##ka1 = Y##k
8170: 61 31 3b 20 5c 0a 20 20 20 20 58 23 23 6b 65 30 a1; \. X##ke0
8180: 20 3d 20 59 23 23 6b 65 30 3b 20 5c 0a 20 20 20 = Y##ke0; \.
8190: 20 58 23 23 6b 65 31 20 3d 20 59 23 23 6b 65 31 X##ke1 = Y##ke1
81a0: 3b 20 5c 0a 20 20 20 20 58 23 23 6b 69 30 20 3d ; \. X##ki0 =
81b0: 20 59 23 23 6b 69 30 3b 20 5c 0a 20 20 20 20 58 Y##ki0; \. X
81c0: 23 23 6b 69 31 20 3d 20 59 23 23 6b 69 31 3b 20 ##ki1 = Y##ki1;
81d0: 5c 0a 20 20 20 20 58 23 23 6b 6f 30 20 3d 20 59 \. X##ko0 = Y
81e0: 23 23 6b 6f 30 3b 20 5c 0a 20 20 20 20 58 23 23 ##ko0; \. X##
81f0: 6b 6f 31 20 3d 20 59 23 23 6b 6f 31 3b 20 5c 0a ko1 = Y##ko1; \.
8200: 20 20 20 20 58 23 23 6b 75 30 20 3d 20 59 23 23 X##ku0 = Y##
8210: 6b 75 30 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75 ku0; \. X##ku
8220: 31 20 3d 20 59 23 23 6b 75 31 3b 20 5c 0a 20 20 1 = Y##ku1; \.
8230: 20 20 58 23 23 6d 61 30 20 3d 20 59 23 23 6d 61 X##ma0 = Y##ma
8240: 30 3b 20 5c 0a 20 20 20 20 58 23 23 6d 61 31 20 0; \. X##ma1
8250: 3d 20 59 23 23 6d 61 31 3b 20 5c 0a 20 20 20 20 = Y##ma1; \.
8260: 58 23 23 6d 65 30 20 3d 20 59 23 23 6d 65 30 3b X##me0 = Y##me0;
8270: 20 5c 0a 20 20 20 20 58 23 23 6d 65 31 20 3d 20 \. X##me1 =
8280: 59 23 23 6d 65 31 3b 20 5c 0a 20 20 20 20 58 23 Y##me1; \. X#
8290: 23 6d 69 30 20 3d 20 59 23 23 6d 69 30 3b 20 5c #mi0 = Y##mi0; \
82a0: 0a 20 20 20 20 58 23 23 6d 69 31 20 3d 20 59 23 . X##mi1 = Y#
82b0: 23 6d 69 31 3b 20 5c 0a 20 20 20 20 58 23 23 6d #mi1; \. X##m
82c0: 6f 30 20 3d 20 59 23 23 6d 6f 30 3b 20 5c 0a 20 o0 = Y##mo0; \.
82d0: 20 20 20 58 23 23 6d 6f 31 20 3d 20 59 23 23 6d X##mo1 = Y##m
82e0: 6f 31 3b 20 5c 0a 20 20 20 20 58 23 23 6d 75 30 o1; \. X##mu0
82f0: 20 3d 20 59 23 23 6d 75 30 3b 20 5c 0a 20 20 20 = Y##mu0; \.
8300: 20 58 23 23 6d 75 31 20 3d 20 59 23 23 6d 75 31 X##mu1 = Y##mu1
8310: 3b 20 5c 0a 20 20 20 20 58 23 23 73 61 30 20 3d ; \. X##sa0 =
8320: 20 59 23 23 73 61 30 3b 20 5c 0a 20 20 20 20 58 Y##sa0; \. X
8330: 23 23 73 61 31 20 3d 20 59 23 23 73 61 31 3b 20 ##sa1 = Y##sa1;
8340: 5c 0a 20 20 20 20 58 23 23 73 65 30 20 3d 20 59 \. X##se0 = Y
8350: 23 23 73 65 30 3b 20 5c 0a 20 20 20 20 58 23 23 ##se0; \. X##
8360: 73 65 31 20 3d 20 59 23 23 73 65 31 3b 20 5c 0a se1 = Y##se1; \.
8370: 20 20 20 20 58 23 23 73 69 30 20 3d 20 59 23 23 X##si0 = Y##
8380: 73 69 30 3b 20 5c 0a 20 20 20 20 58 23 23 73 69 si0; \. X##si
8390: 31 20 3d 20 59 23 23 73 69 31 3b 20 5c 0a 20 20 1 = Y##si1; \.
83a0: 20 20 58 23 23 73 6f 30 20 3d 20 59 23 23 73 6f X##so0 = Y##so
83b0: 30 3b 20 5c 0a 20 20 20 20 58 23 23 73 6f 31 20 0; \. X##so1
83c0: 3d 20 59 23 23 73 6f 31 3b 20 5c 0a 20 20 20 20 = Y##so1; \.
83d0: 58 23 23 73 75 30 20 3d 20 59 23 23 73 75 30 3b X##su0 = Y##su0;
83e0: 20 5c 0a 20 20 20 20 58 23 23 73 75 31 20 3d 20 \. X##su1 =
83f0: 59 23 23 73 75 31 3b 20 5c 0a 0a Y##su1; \..