0000: 2f 2a 0a 54 68 65 20 4b 65 63 63 61 6b 20 73 70 /*.The Keccak sp
0010: 6f 6e 67 65 20 66 75 6e 63 74 69 6f 6e 2c 20 64 onge function, d
0020: 65 73 69 67 6e 65 64 20 62 79 20 47 75 69 64 6f esigned by Guido
0030: 20 42 65 72 74 6f 6e 69 2c 20 4a 6f 61 6e 20 44 Bertoni, Joan D
0040: 61 65 6d 65 6e 2c 0a 4d 69 63 68 61 c3 ab 6c 20 aemen,.Michaël
0050: 50 65 65 74 65 72 73 20 61 6e 64 20 47 69 6c 6c Peeters and Gill
0060: 65 73 20 56 61 6e 20 41 73 73 63 68 65 2e 20 46 es Van Assche. F
0070: 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 or more informat
0080: 69 6f 6e 2c 20 66 65 65 64 62 61 63 6b 20 6f 72 ion, feedback or
0090: 0a 71 75 65 73 74 69 6f 6e 73 2c 20 70 6c 65 61 .questions, plea
00a0: 73 65 20 72 65 66 65 72 20 74 6f 20 6f 75 72 20 se refer to our
00b0: 77 65 62 73 69 74 65 3a 20 68 74 74 70 3a 2f 2f website: http://
00c0: 6b 65 63 63 61 6b 2e 6e 6f 65 6b 65 6f 6e 2e 6f keccak.noekeon.o
00d0: 72 67 2f 0a 0a 49 6d 70 6c 65 6d 65 6e 74 61 74 rg/..Implementat
00e0: 69 6f 6e 20 62 79 20 52 6f 6e 6e 79 20 56 61 6e ion by Ronny Van
00f0: 20 4b 65 65 72 2c 0a 68 65 72 65 62 79 20 64 65 Keer,.hereby de
0100: 6e 6f 74 65 64 20 61 73 20 22 74 68 65 20 69 6d noted as "the im
0110: 70 6c 65 6d 65 6e 74 65 72 22 2e 0a 0a 54 6f 20 plementer"...To
0120: 74 68 65 20 65 78 74 65 6e 74 20 70 6f 73 73 69 the extent possi
0130: 62 6c 65 20 75 6e 64 65 72 20 6c 61 77 2c 20 74 ble under law, t
0140: 68 65 20 69 6d 70 6c 65 6d 65 6e 74 65 72 20 68 he implementer h
0150: 61 73 20 77 61 69 76 65 64 20 61 6c 6c 20 63 6f as waived all co
0160: 70 79 72 69 67 68 74 0a 61 6e 64 20 72 65 6c 61 pyright.and rela
0170: 74 65 64 20 6f 72 20 6e 65 69 67 68 62 6f 72 69 ted or neighbori
0180: 6e 67 20 72 69 67 68 74 73 20 74 6f 20 74 68 65 ng rights to the
0190: 20 73 6f 75 72 63 65 20 63 6f 64 65 20 69 6e 20 source code in
01a0: 74 68 69 73 20 66 69 6c 65 2e 0a 68 74 74 70 3a this file..http:
01b0: 2f 2f 63 72 65 61 74 69 76 65 63 6f 6d 6d 6f 6e //creativecommon
01c0: 73 2e 6f 72 67 2f 70 75 62 6c 69 63 64 6f 6d 61 s.org/publicdoma
01d0: 69 6e 2f 7a 65 72 6f 2f 31 2e 30 2f 0a 2a 2f 0a in/zero/1.0/.*/.
01e0: 0a 73 74 61 74 69 63 20 63 6f 6e 73 74 20 55 49 .static const UI
01f0: 4e 54 33 32 20 4b 65 63 63 61 6b 46 31 36 30 30 NT32 KeccakF1600
0200: 52 6f 75 6e 64 43 6f 6e 73 74 61 6e 74 73 5f 69 RoundConstants_i
0210: 6e 74 32 5b 32 2a 32 34 5d 20 3d 0a 7b 0a 20 20 nt2[2*24] =.{.
0220: 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 20 0x00000001UL,
0230: 20 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 0x00000000UL,
0240: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 30 55 . 0x00000000U
0250: 4c 2c 20 20 20 20 30 78 30 30 30 30 30 30 38 39 L, 0x00000089
0260: 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 UL,. 0x000000
0270: 30 30 55 4c 2c 20 20 20 20 30 78 38 30 30 30 30 00UL, 0x80000
0280: 30 38 62 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 08bUL,. 0x000
0290: 30 30 30 30 30 55 4c 2c 20 20 20 20 30 78 38 30 00000UL, 0x80
02a0: 30 30 38 30 38 30 55 4c 2c 0a 20 20 20 20 30 78 008080UL,. 0x
02b0: 30 30 30 30 30 30 30 31 55 4c 2c 20 20 20 20 30 00000001UL, 0
02c0: 78 30 30 30 30 30 30 38 62 55 4c 2c 0a 20 20 20 x0000008bUL,.
02d0: 20 30 78 30 30 30 30 30 30 30 31 55 4c 2c 20 20 0x00000001UL,
02e0: 20 20 30 78 30 30 30 30 38 30 30 30 55 4c 2c 0a 0x00008000UL,.
02f0: 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 0x00000001UL
0300: 2c 20 20 20 20 30 78 38 30 30 30 38 30 38 38 55 , 0x80008088U
0310: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 L,. 0x0000000
0320: 31 55 4c 2c 20 20 20 20 30 78 38 30 30 30 30 30 1UL, 0x800000
0330: 38 32 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 82UL,. 0x0000
0340: 30 30 30 30 55 4c 2c 20 20 20 20 30 78 30 30 30 0000UL, 0x000
0350: 30 30 30 30 62 55 4c 2c 0a 20 20 20 20 30 78 30 0000bUL,. 0x0
0360: 30 30 30 30 30 30 30 55 4c 2c 20 20 20 20 30 78 0000000UL, 0x
0370: 30 30 30 30 30 30 30 61 55 4c 2c 0a 20 20 20 20 0000000aUL,.
0380: 30 78 30 30 30 30 30 30 30 31 55 4c 2c 20 20 20 0x00000001UL,
0390: 20 30 78 30 30 30 30 38 30 38 32 55 4c 2c 0a 20 0x00008082UL,.
03a0: 20 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 0x00000000UL,
03b0: 20 20 20 20 30 78 30 30 30 30 38 30 30 33 55 4c 0x00008003UL
03c0: 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 31 ,. 0x00000001
03d0: 55 4c 2c 20 20 20 20 30 78 30 30 30 30 38 30 38 UL, 0x0000808
03e0: 62 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 bUL,. 0x00000
03f0: 30 30 31 55 4c 2c 20 20 20 20 30 78 38 30 30 30 001UL, 0x8000
0400: 30 30 30 62 55 4c 2c 0a 20 20 20 20 30 78 30 30 000bUL,. 0x00
0410: 30 30 30 30 30 31 55 4c 2c 20 20 20 20 30 78 38 000001UL, 0x8
0420: 30 30 30 30 30 38 61 55 4c 2c 0a 20 20 20 20 30 000008aUL,. 0
0430: 78 30 30 30 30 30 30 30 31 55 4c 2c 20 20 20 20 x00000001UL,
0440: 30 78 38 30 30 30 30 30 38 31 55 4c 2c 0a 20 20 0x80000081UL,.
0450: 20 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 20 0x00000000UL,
0460: 20 20 20 30 78 38 30 30 30 30 30 38 31 55 4c 2c 0x80000081UL,
0470: 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 30 55 . 0x00000000U
0480: 4c 2c 20 20 20 20 30 78 38 30 30 30 30 30 30 38 L, 0x80000008
0490: 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 UL,. 0x000000
04a0: 30 30 55 4c 2c 20 20 20 20 30 78 30 30 30 30 30 00UL, 0x00000
04b0: 30 38 33 55 4c 2c 0a 20 20 20 20 30 78 30 30 30 083UL,. 0x000
04c0: 30 30 30 30 30 55 4c 2c 20 20 20 20 30 78 38 30 00000UL, 0x80
04d0: 30 30 38 30 30 33 55 4c 2c 0a 20 20 20 20 30 78 008003UL,. 0x
04e0: 30 30 30 30 30 30 30 31 55 4c 2c 20 20 20 20 30 00000001UL, 0
04f0: 78 38 30 30 30 38 30 38 38 55 4c 2c 0a 20 20 20 x80008088UL,.
0500: 20 30 78 30 30 30 30 30 30 30 30 55 4c 2c 20 20 0x00000000UL,
0510: 20 20 30 78 38 30 30 30 30 30 38 38 55 4c 2c 0a 0x80000088UL,.
0520: 20 20 20 20 30 78 30 30 30 30 30 30 30 31 55 4c 0x00000001UL
0530: 2c 20 20 20 20 30 78 30 30 30 30 38 30 30 30 55 , 0x00008000U
0540: 4c 2c 0a 20 20 20 20 30 78 30 30 30 30 30 30 30 L,. 0x0000000
0550: 30 55 4c 2c 20 20 20 20 30 78 38 30 30 30 38 30 0UL, 0x800080
0560: 38 32 55 4c 0a 7d 3b 0a 0a 23 75 6e 64 65 66 20 82UL.};..#undef
0570: 72 6f 75 6e 64 73 0a 0a 23 64 65 66 69 6e 65 20 rounds..#define
0580: 72 6f 75 6e 64 73 28 72 6f 75 6e 64 29 20 5c 0a rounds(round) \.
0590: 7b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 44 { \. UINT32 D
05a0: 61 30 2c 20 44 65 30 2c 20 44 69 30 2c 20 44 6f a0, De0, Di0, Do
05b0: 30 2c 20 44 75 30 3b 20 5c 0a 20 20 20 20 55 49 0, Du0; \. UI
05c0: 4e 54 33 32 20 44 61 31 2c 20 44 65 31 2c 20 44 NT32 Da1, De1, D
05d0: 69 31 2c 20 44 6f 31 2c 20 44 75 31 3b 20 5c 0a i1, Do1, Du1; \.
05e0: 20 20 20 20 55 49 4e 54 33 32 20 42 61 2c 20 42 UINT32 Ba, B
05f0: 65 2c 20 42 69 2c 20 42 6f 2c 20 42 75 3b 20 5c e, Bi, Bo, Bu; \
0600: 0a 20 20 20 20 55 49 4e 54 33 32 20 41 62 61 30 . UINT32 Aba0
0610: 2c 20 41 62 65 30 2c 20 41 62 69 30 2c 20 41 62 , Abe0, Abi0, Ab
0620: 6f 30 2c 20 41 62 75 30 3b 20 5c 0a 20 20 20 20 o0, Abu0; \.
0630: 55 49 4e 54 33 32 20 41 62 61 31 2c 20 41 62 65 UINT32 Aba1, Abe
0640: 31 2c 20 41 62 69 31 2c 20 41 62 6f 31 2c 20 41 1, Abi1, Abo1, A
0650: 62 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 bu1; \. UINT3
0660: 32 20 41 67 61 30 2c 20 41 67 65 30 2c 20 41 67 2 Aga0, Age0, Ag
0670: 69 30 2c 20 41 67 6f 30 2c 20 41 67 75 30 3b 20 i0, Ago0, Agu0;
0680: 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 41 67 61 \. UINT32 Aga
0690: 31 2c 20 41 67 65 31 2c 20 41 67 69 31 2c 20 41 1, Age1, Agi1, A
06a0: 67 6f 31 2c 20 41 67 75 31 3b 20 5c 0a 20 20 20 go1, Agu1; \.
06b0: 20 55 49 4e 54 33 32 20 41 6b 61 30 2c 20 41 6b UINT32 Aka0, Ak
06c0: 65 30 2c 20 41 6b 69 30 2c 20 41 6b 6f 30 2c 20 e0, Aki0, Ako0,
06d0: 41 6b 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 Aku0; \. UINT
06e0: 33 32 20 41 6b 61 31 2c 20 41 6b 65 31 2c 20 41 32 Aka1, Ake1, A
06f0: 6b 69 31 2c 20 41 6b 6f 31 2c 20 41 6b 75 31 3b ki1, Ako1, Aku1;
0700: 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 41 6d \. UINT32 Am
0710: 61 30 2c 20 41 6d 65 30 2c 20 41 6d 69 30 2c 20 a0, Ame0, Ami0,
0720: 41 6d 6f 30 2c 20 41 6d 75 30 3b 20 5c 0a 20 20 Amo0, Amu0; \.
0730: 20 20 55 49 4e 54 33 32 20 41 6d 61 31 2c 20 41 UINT32 Ama1, A
0740: 6d 65 31 2c 20 41 6d 69 31 2c 20 41 6d 6f 31 2c me1, Ami1, Amo1,
0750: 20 41 6d 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e Amu1; \. UIN
0760: 54 33 32 20 41 73 61 30 2c 20 41 73 65 30 2c 20 T32 Asa0, Ase0,
0770: 41 73 69 30 2c 20 41 73 6f 30 2c 20 41 73 75 30 Asi0, Aso0, Asu0
0780: 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 41 ; \. UINT32 A
0790: 73 61 31 2c 20 41 73 65 31 2c 20 41 73 69 31 2c sa1, Ase1, Asi1,
07a0: 20 41 73 6f 31 2c 20 41 73 75 31 3b 20 5c 0a 20 Aso1, Asu1; \.
07b0: 20 20 20 55 49 4e 54 33 32 20 43 77 2c 20 43 78 UINT32 Cw, Cx
07c0: 2c 20 43 79 2c 20 43 7a 3b 20 5c 0a 20 20 20 20 , Cy, Cz; \.
07d0: 55 49 4e 54 33 32 20 45 62 61 30 2c 20 45 62 65 UINT32 Eba0, Ebe
07e0: 30 2c 20 45 62 69 30 2c 20 45 62 6f 30 2c 20 45 0, Ebi0, Ebo0, E
07f0: 62 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 bu0; \. UINT3
0800: 32 20 45 62 61 31 2c 20 45 62 65 31 2c 20 45 62 2 Eba1, Ebe1, Eb
0810: 69 31 2c 20 45 62 6f 31 2c 20 45 62 75 31 3b 20 i1, Ebo1, Ebu1;
0820: 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 45 67 61 \. UINT32 Ega
0830: 30 2c 20 45 67 65 30 2c 20 45 67 69 30 2c 20 45 0, Ege0, Egi0, E
0840: 67 6f 30 2c 20 45 67 75 30 3b 20 5c 0a 20 20 20 go0, Egu0; \.
0850: 20 55 49 4e 54 33 32 20 45 67 61 31 2c 20 45 67 UINT32 Ega1, Eg
0860: 65 31 2c 20 45 67 69 31 2c 20 45 67 6f 31 2c 20 e1, Egi1, Ego1,
0870: 45 67 75 31 3b 20 5c 0a 20 20 20 20 55 49 4e 54 Egu1; \. UINT
0880: 33 32 20 45 6b 61 30 2c 20 45 6b 65 30 2c 20 45 32 Eka0, Eke0, E
0890: 6b 69 30 2c 20 45 6b 6f 30 2c 20 45 6b 75 30 3b ki0, Eko0, Eku0;
08a0: 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 45 6b \. UINT32 Ek
08b0: 61 31 2c 20 45 6b 65 31 2c 20 45 6b 69 31 2c 20 a1, Eke1, Eki1,
08c0: 45 6b 6f 31 2c 20 45 6b 75 31 3b 20 5c 0a 20 20 Eko1, Eku1; \.
08d0: 20 20 55 49 4e 54 33 32 20 45 6d 61 30 2c 20 45 UINT32 Ema0, E
08e0: 6d 65 30 2c 20 45 6d 69 30 2c 20 45 6d 6f 30 2c me0, Emi0, Emo0,
08f0: 20 45 6d 75 30 3b 20 5c 0a 20 20 20 20 55 49 4e Emu0; \. UIN
0900: 54 33 32 20 45 6d 61 31 2c 20 45 6d 65 31 2c 20 T32 Ema1, Eme1,
0910: 45 6d 69 31 2c 20 45 6d 6f 31 2c 20 45 6d 75 31 Emi1, Emo1, Emu1
0920: 3b 20 5c 0a 20 20 20 20 55 49 4e 54 33 32 20 45 ; \. UINT32 E
0930: 73 61 30 2c 20 45 73 65 30 2c 20 45 73 69 30 2c sa0, Ese0, Esi0,
0940: 20 45 73 6f 30 2c 20 45 73 75 30 3b 20 5c 0a 20 Eso0, Esu0; \.
0950: 20 20 20 55 49 4e 54 33 32 20 45 73 61 31 2c 20 UINT32 Esa1,
0960: 45 73 65 31 2c 20 45 73 69 31 2c 20 45 73 6f 31 Ese1, Esi1, Eso1
0970: 2c 20 45 73 75 31 3b 20 5c 0a 09 63 6f 6e 73 74 , Esu1; \..const
0980: 20 55 49 4e 54 33 32 20 2a 20 70 52 6f 75 6e 64 UINT32 * pRound
0990: 43 6f 6e 73 74 61 6e 74 73 20 3d 20 4b 65 63 63 Constants = Kecc
09a0: 61 6b 46 31 36 30 30 52 6f 75 6e 64 43 6f 6e 73 akF1600RoundCons
09b0: 74 61 6e 74 73 5f 69 6e 74 32 3b 20 5c 0a 20 20 tants_int2; \.
09c0: 20 20 55 49 4e 54 33 32 20 69 3b 20 5c 0a 5c 0a UINT32 i; \.\.
09d0: 20 20 20 20 63 6f 70 79 46 72 6f 6d 53 74 61 74 copyFromStat
09e0: 65 28 41 2c 20 73 74 61 74 65 29 20 5c 0a 5c 0a e(A, state) \.\.
09f0: 20 20 20 20 66 6f 72 28 20 69 20 3d 20 72 6f 75 for( i = rou
0a00: 6e 64 2f 32 3b 20 69 20 21 3d 20 30 3b 20 2d 2d nd/2; i != 0; --
0a10: 69 20 29 20 7b 20 5c 0a 09 20 20 20 20 43 78 20 i ) { \.. Cx
0a20: 3d 20 41 62 75 30 5e 41 67 75 30 5e 41 6b 75 30 = Abu0^Agu0^Aku0
0a30: 5e 41 6d 75 30 5e 41 73 75 30 3b 20 5c 0a 09 20 ^Amu0^Asu0; \..
0a40: 20 20 20 44 75 31 20 3d 20 41 62 65 31 5e 41 67 Du1 = Abe1^Ag
0a50: 65 31 5e 41 6b 65 31 5e 41 6d 65 31 5e 41 73 65 e1^Ake1^Ame1^Ase
0a60: 31 3b 20 5c 0a 09 20 20 20 20 44 61 30 20 3d 20 1; \.. Da0 =
0a70: 43 78 5e 52 4f 4c 33 32 28 44 75 31 2c 20 31 29 Cx^ROL32(Du1, 1)
0a80: 3b 20 5c 0a 09 20 20 20 20 43 7a 20 3d 20 41 62 ; \.. Cz = Ab
0a90: 75 31 5e 41 67 75 31 5e 41 6b 75 31 5e 41 6d 75 u1^Agu1^Aku1^Amu
0aa0: 31 5e 41 73 75 31 3b 20 5c 0a 09 20 20 20 20 44 1^Asu1; \.. D
0ab0: 75 30 20 3d 20 41 62 65 30 5e 41 67 65 30 5e 41 u0 = Abe0^Age0^A
0ac0: 6b 65 30 5e 41 6d 65 30 5e 41 73 65 30 3b 20 5c ke0^Ame0^Ase0; \
0ad0: 0a 09 20 20 20 20 44 61 31 20 3d 20 43 7a 5e 44 .. Da1 = Cz^D
0ae0: 75 30 3b 20 5c 0a 5c 0a 09 20 20 20 20 43 77 20 u0; \.\.. Cw
0af0: 3d 20 41 62 69 30 5e 41 67 69 30 5e 41 6b 69 30 = Abi0^Agi0^Aki0
0b00: 5e 41 6d 69 30 5e 41 73 69 30 3b 20 5c 0a 09 20 ^Ami0^Asi0; \..
0b10: 20 20 20 44 6f 30 20 3d 20 43 77 5e 52 4f 4c 33 Do0 = Cw^ROL3
0b20: 32 28 43 7a 2c 20 31 29 3b 20 5c 0a 09 20 20 20 2(Cz, 1); \..
0b30: 20 43 79 20 3d 20 41 62 69 31 5e 41 67 69 31 5e Cy = Abi1^Agi1^
0b40: 41 6b 69 31 5e 41 6d 69 31 5e 41 73 69 31 3b 20 Aki1^Ami1^Asi1;
0b50: 5c 0a 09 20 20 20 20 44 6f 31 20 3d 20 43 79 5e \.. Do1 = Cy^
0b60: 43 78 3b 20 5c 0a 5c 0a 09 20 20 20 20 43 78 20 Cx; \.\.. Cx
0b70: 3d 20 41 62 61 30 5e 41 67 61 30 5e 41 6b 61 30 = Aba0^Aga0^Aka0
0b80: 5e 41 6d 61 30 5e 41 73 61 30 3b 20 5c 0a 09 20 ^Ama0^Asa0; \..
0b90: 20 20 20 44 65 30 20 3d 20 43 78 5e 52 4f 4c 33 De0 = Cx^ROL3
0ba0: 32 28 43 79 2c 20 31 29 3b 20 5c 0a 09 20 20 20 2(Cy, 1); \..
0bb0: 20 43 7a 20 3d 20 41 62 61 31 5e 41 67 61 31 5e Cz = Aba1^Aga1^
0bc0: 41 6b 61 31 5e 41 6d 61 31 5e 41 73 61 31 3b 20 Aka1^Ama1^Asa1;
0bd0: 5c 0a 09 20 20 20 20 44 65 31 20 3d 20 43 7a 5e \.. De1 = Cz^
0be0: 43 77 3b 20 5c 0a 5c 0a 09 20 20 20 20 43 79 20 Cw; \.\.. Cy
0bf0: 3d 20 41 62 6f 31 5e 41 67 6f 31 5e 41 6b 6f 31 = Abo1^Ago1^Ako1
0c00: 5e 41 6d 6f 31 5e 41 73 6f 31 3b 20 5c 0a 09 20 ^Amo1^Aso1; \..
0c10: 20 20 20 44 69 30 20 3d 20 44 75 30 5e 52 4f 4c Di0 = Du0^ROL
0c20: 33 32 28 43 79 2c 20 31 29 3b 20 5c 0a 09 20 20 32(Cy, 1); \..
0c30: 20 20 43 77 20 3d 20 41 62 6f 30 5e 41 67 6f 30 Cw = Abo0^Ago0
0c40: 5e 41 6b 6f 30 5e 41 6d 6f 30 5e 41 73 6f 30 3b ^Ako0^Amo0^Aso0;
0c50: 20 5c 0a 09 20 20 20 20 44 69 31 20 3d 20 44 75 \.. Di1 = Du
0c60: 31 5e 43 77 3b 20 5c 0a 5c 0a 09 20 20 20 20 44 1^Cw; \.\.. D
0c70: 75 30 20 3d 20 43 77 5e 52 4f 4c 33 32 28 43 7a u0 = Cw^ROL32(Cz
0c80: 2c 20 31 29 3b 20 5c 0a 09 20 20 20 20 44 75 31 , 1); \.. Du1
0c90: 20 3d 20 43 79 5e 43 78 3b 20 5c 0a 5c 0a 09 20 = Cy^Cx; \.\..
0ca0: 20 20 20 41 62 61 30 20 5e 3d 20 44 61 30 3b 20 Aba0 ^= Da0;
0cb0: 5c 0a 09 20 20 20 20 42 61 20 3d 20 41 62 61 30 \.. Ba = Aba0
0cc0: 3b 20 5c 0a 09 20 20 20 20 41 67 65 30 20 5e 3d ; \.. Age0 ^=
0cd0: 20 44 65 30 3b 20 5c 0a 09 20 20 20 20 42 65 20 De0; \.. Be
0ce0: 3d 20 52 4f 4c 33 32 28 41 67 65 30 2c 20 32 32 = ROL32(Age0, 22
0cf0: 29 3b 20 5c 0a 09 20 20 20 20 41 6b 69 31 20 5e ); \.. Aki1 ^
0d00: 3d 20 44 69 31 3b 20 5c 0a 09 20 20 20 20 42 69 = Di1; \.. Bi
0d10: 20 3d 20 52 4f 4c 33 32 28 41 6b 69 31 2c 20 32 = ROL32(Aki1, 2
0d20: 32 29 3b 20 5c 0a 09 20 20 20 20 41 6d 6f 31 20 2); \.. Amo1
0d30: 5e 3d 20 44 6f 31 3b 20 5c 0a 09 20 20 20 20 42 ^= Do1; \.. B
0d40: 6f 20 3d 20 52 4f 4c 33 32 28 41 6d 6f 31 2c 20 o = ROL32(Amo1,
0d50: 31 31 29 3b 20 5c 0a 09 20 20 20 20 41 73 75 30 11); \.. Asu0
0d60: 20 5e 3d 20 44 75 30 3b 20 5c 0a 09 20 20 20 20 ^= Du0; \..
0d70: 42 75 20 3d 20 52 4f 4c 33 32 28 41 73 75 30 2c Bu = ROL32(Asu0,
0d80: 20 37 29 3b 20 5c 0a 09 20 20 20 20 45 62 61 30 7); \.. Eba0
0d90: 20 3d 20 20 20 42 61 20 5e 28 28 7e 42 65 29 26 = Ba ^((~Be)&
0da0: 20 20 42 69 20 29 20 5e 20 2a 28 70 52 6f 75 6e Bi ) ^ *(pRoun
0db0: 64 43 6f 6e 73 74 61 6e 74 73 2b 2b 29 3b 20 5c dConstants++); \
0dc0: 0a 09 20 20 20 20 45 62 65 30 20 3d 20 20 20 42 .. Ebe0 = B
0dd0: 65 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 e ^((~Bi)& Bo )
0de0: 3b 20 5c 0a 09 20 20 20 20 45 62 69 30 20 3d 20 ; \.. Ebi0 =
0df0: 20 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 Bi ^((~Bo)& B
0e00: 75 20 29 3b 20 5c 0a 09 20 20 20 20 45 62 6f 30 u ); \.. Ebo0
0e10: 20 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 = Bo ^((~Bu)&
0e20: 20 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 45 Ba ); \.. E
0e30: 62 75 30 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 bu0 = Bu ^((~B
0e40: 61 29 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 a)& Be ); \.\..
0e50: 20 20 20 20 41 62 6f 30 20 5e 3d 20 44 6f 30 3b Abo0 ^= Do0;
0e60: 20 5c 0a 09 20 20 20 20 42 61 20 3d 20 52 4f 4c \.. Ba = ROL
0e70: 33 32 28 41 62 6f 30 2c 20 31 34 29 3b 20 5c 0a 32(Abo0, 14); \.
0e80: 09 20 20 20 20 41 67 75 30 20 5e 3d 20 44 75 30 . Agu0 ^= Du0
0e90: 3b 20 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 4f ; \.. Be = RO
0ea0: 4c 33 32 28 41 67 75 30 2c 20 31 30 29 3b 20 5c L32(Agu0, 10); \
0eb0: 0a 09 20 20 20 20 41 6b 61 31 20 5e 3d 20 44 61 .. Aka1 ^= Da
0ec0: 31 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d 20 52 1; \.. Bi = R
0ed0: 4f 4c 33 32 28 41 6b 61 31 2c 20 32 29 3b 20 5c OL32(Aka1, 2); \
0ee0: 0a 09 20 20 20 20 41 6d 65 31 20 5e 3d 20 44 65 .. Ame1 ^= De
0ef0: 31 3b 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 52 1; \.. Bo = R
0f00: 4f 4c 33 32 28 41 6d 65 31 2c 20 32 33 29 3b 20 OL32(Ame1, 23);
0f10: 5c 0a 09 20 20 20 20 41 73 69 31 20 5e 3d 20 44 \.. Asi1 ^= D
0f20: 69 31 3b 20 5c 0a 09 20 20 20 20 42 75 20 3d 20 i1; \.. Bu =
0f30: 52 4f 4c 33 32 28 41 73 69 31 2c 20 33 31 29 3b ROL32(Asi1, 31);
0f40: 20 5c 0a 09 20 20 20 20 45 67 61 30 20 3d 20 20 \.. Ega0 =
0f50: 20 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 69 Ba ^((~Be)& Bi
0f60: 20 29 3b 20 5c 0a 09 20 20 20 20 45 67 65 30 20 ); \.. Ege0
0f70: 3d 20 20 20 42 65 20 5e 28 28 7e 42 69 29 26 20 = Be ^((~Bi)&
0f80: 20 42 6f 20 29 3b 20 5c 0a 09 20 20 20 20 45 67 Bo ); \.. Eg
0f90: 69 30 20 3d 20 20 20 42 69 20 5e 28 28 7e 42 6f i0 = Bi ^((~Bo
0fa0: 29 26 20 20 42 75 20 29 3b 20 5c 0a 09 20 20 20 )& Bu ); \..
0fb0: 20 45 67 6f 30 20 3d 20 20 20 42 6f 20 5e 28 28 Ego0 = Bo ^((
0fc0: 7e 42 75 29 26 20 20 42 61 20 29 3b 20 5c 0a 09 ~Bu)& Ba ); \..
0fd0: 20 20 20 20 45 67 75 30 20 3d 20 20 20 42 75 20 Egu0 = Bu
0fe0: 5e 28 28 7e 42 61 29 26 20 20 42 65 20 29 3b 20 ^((~Ba)& Be );
0ff0: 5c 0a 5c 0a 09 20 20 20 20 41 62 65 31 20 5e 3d \.\.. Abe1 ^=
1000: 20 44 65 31 3b 20 5c 0a 09 20 20 20 20 42 61 20 De1; \.. Ba
1010: 3d 20 52 4f 4c 33 32 28 41 62 65 31 2c 20 31 29 = ROL32(Abe1, 1)
1020: 3b 20 5c 0a 09 20 20 20 20 41 67 69 30 20 5e 3d ; \.. Agi0 ^=
1030: 20 44 69 30 3b 20 5c 0a 09 20 20 20 20 42 65 20 Di0; \.. Be
1040: 3d 20 52 4f 4c 33 32 28 41 67 69 30 2c 20 33 29 = ROL32(Agi0, 3)
1050: 3b 20 5c 0a 09 20 20 20 20 41 6b 6f 31 20 5e 3d ; \.. Ako1 ^=
1060: 20 44 6f 31 3b 20 5c 0a 09 20 20 20 20 42 69 20 Do1; \.. Bi
1070: 3d 20 52 4f 4c 33 32 28 41 6b 6f 31 2c 20 31 33 = ROL32(Ako1, 13
1080: 29 3b 20 5c 0a 09 20 20 20 20 41 6d 75 30 20 5e ); \.. Amu0 ^
1090: 3d 20 44 75 30 3b 20 5c 0a 09 20 20 20 20 42 6f = Du0; \.. Bo
10a0: 20 3d 20 52 4f 4c 33 32 28 41 6d 75 30 2c 20 34 = ROL32(Amu0, 4
10b0: 29 3b 20 5c 0a 09 20 20 20 20 41 73 61 30 20 5e ); \.. Asa0 ^
10c0: 3d 20 44 61 30 3b 20 5c 0a 09 20 20 20 20 42 75 = Da0; \.. Bu
10d0: 20 3d 20 52 4f 4c 33 32 28 41 73 61 30 2c 20 39 = ROL32(Asa0, 9
10e0: 29 3b 20 5c 0a 09 20 20 20 20 45 6b 61 30 20 3d ); \.. Eka0 =
10f0: 20 20 20 42 61 20 5e 28 28 7e 42 65 29 26 20 20 Ba ^((~Be)&
1100: 42 69 20 29 3b 20 5c 0a 09 20 20 20 20 45 6b 65 Bi ); \.. Eke
1110: 30 20 3d 20 20 20 42 65 20 5e 28 28 7e 42 69 29 0 = Be ^((~Bi)
1120: 26 20 20 42 6f 20 29 3b 20 5c 0a 09 20 20 20 20 & Bo ); \..
1130: 45 6b 69 30 20 3d 20 20 20 42 69 20 5e 28 28 7e Eki0 = Bi ^((~
1140: 42 6f 29 26 20 20 42 75 20 29 3b 20 5c 0a 09 20 Bo)& Bu ); \..
1150: 20 20 20 45 6b 6f 30 20 3d 20 20 20 42 6f 20 5e Eko0 = Bo ^
1160: 28 28 7e 42 75 29 26 20 20 42 61 20 29 3b 20 5c ((~Bu)& Ba ); \
1170: 0a 09 20 20 20 20 45 6b 75 30 20 3d 20 20 20 42 .. Eku0 = B
1180: 75 20 5e 28 28 7e 42 61 29 26 20 20 42 65 20 29 u ^((~Ba)& Be )
1190: 3b 20 5c 0a 5c 0a 09 20 20 20 20 41 62 75 31 20 ; \.\.. Abu1
11a0: 5e 3d 20 44 75 31 3b 20 5c 0a 09 20 20 20 20 42 ^= Du1; \.. B
11b0: 61 20 3d 20 52 4f 4c 33 32 28 41 62 75 31 2c 20 a = ROL32(Abu1,
11c0: 31 34 29 3b 20 5c 0a 09 20 20 20 20 41 67 61 30 14); \.. Aga0
11d0: 20 5e 3d 20 44 61 30 3b 20 5c 0a 09 20 20 20 20 ^= Da0; \..
11e0: 42 65 20 3d 20 52 4f 4c 33 32 28 41 67 61 30 2c Be = ROL32(Aga0,
11f0: 20 31 38 29 3b 20 5c 0a 09 20 20 20 20 41 6b 65 18); \.. Ake
1200: 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 09 20 20 20 0 ^= De0; \..
1210: 20 42 69 20 3d 20 52 4f 4c 33 32 28 41 6b 65 30 Bi = ROL32(Ake0
1220: 2c 20 35 29 3b 20 5c 0a 09 20 20 20 20 41 6d 69 , 5); \.. Ami
1230: 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 09 20 20 20 1 ^= Di1; \..
1240: 20 42 6f 20 3d 20 52 4f 4c 33 32 28 41 6d 69 31 Bo = ROL32(Ami1
1250: 2c 20 38 29 3b 20 5c 0a 09 20 20 20 20 41 73 6f , 8); \.. Aso
1260: 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 09 20 20 20 0 ^= Do0; \..
1270: 20 42 75 20 3d 20 52 4f 4c 33 32 28 41 73 6f 30 Bu = ROL32(Aso0
1280: 2c 20 32 38 29 3b 20 5c 0a 09 20 20 20 20 45 6d , 28); \.. Em
1290: 61 30 20 3d 20 20 20 42 61 20 5e 28 28 7e 42 65 a0 = Ba ^((~Be
12a0: 29 26 20 20 42 69 20 29 3b 20 5c 0a 09 20 20 20 )& Bi ); \..
12b0: 20 45 6d 65 30 20 3d 20 20 20 42 65 20 5e 28 28 Eme0 = Be ^((
12c0: 7e 42 69 29 26 20 20 42 6f 20 29 3b 20 5c 0a 09 ~Bi)& Bo ); \..
12d0: 20 20 20 20 45 6d 69 30 20 3d 20 20 20 42 69 20 Emi0 = Bi
12e0: 5e 28 28 7e 42 6f 29 26 20 20 42 75 20 29 3b 20 ^((~Bo)& Bu );
12f0: 5c 0a 09 20 20 20 20 45 6d 6f 30 20 3d 20 20 20 \.. Emo0 =
1300: 42 6f 20 5e 28 28 7e 42 75 29 26 20 20 42 61 20 Bo ^((~Bu)& Ba
1310: 29 3b 20 5c 0a 09 20 20 20 20 45 6d 75 30 20 3d ); \.. Emu0 =
1320: 20 20 20 42 75 20 5e 28 28 7e 42 61 29 26 20 20 Bu ^((~Ba)&
1330: 42 65 20 29 3b 20 5c 0a 5c 0a 09 20 20 20 20 41 Be ); \.\.. A
1340: 62 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 09 20 bi0 ^= Di0; \..
1350: 20 20 20 42 61 20 3d 20 52 4f 4c 33 32 28 41 62 Ba = ROL32(Ab
1360: 69 30 2c 20 33 31 29 3b 20 5c 0a 09 20 20 20 20 i0, 31); \..
1370: 41 67 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a 09 Ago1 ^= Do1; \..
1380: 20 20 20 20 42 65 20 3d 20 52 4f 4c 33 32 28 41 Be = ROL32(A
1390: 67 6f 31 2c 20 32 38 29 3b 20 5c 0a 09 20 20 20 go1, 28); \..
13a0: 20 41 6b 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a Aku1 ^= Du1; \.
13b0: 09 20 20 20 20 42 69 20 3d 20 52 4f 4c 33 32 28 . Bi = ROL32(
13c0: 41 6b 75 31 2c 20 32 30 29 3b 20 5c 0a 09 20 20 Aku1, 20); \..
13d0: 20 20 41 6d 61 31 20 5e 3d 20 44 61 31 3b 20 5c Ama1 ^= Da1; \
13e0: 0a 09 20 20 20 20 42 6f 20 3d 20 52 4f 4c 33 32 .. Bo = ROL32
13f0: 28 41 6d 61 31 2c 20 32 31 29 3b 20 5c 0a 09 20 (Ama1, 21); \..
1400: 20 20 20 41 73 65 30 20 5e 3d 20 44 65 30 3b 20 Ase0 ^= De0;
1410: 5c 0a 09 20 20 20 20 42 75 20 3d 20 52 4f 4c 33 \.. Bu = ROL3
1420: 32 28 41 73 65 30 2c 20 31 29 3b 20 5c 0a 09 20 2(Ase0, 1); \..
1430: 20 20 20 45 73 61 30 20 3d 20 20 20 42 61 20 5e Esa0 = Ba ^
1440: 28 28 7e 42 65 29 26 20 20 42 69 20 29 3b 20 5c ((~Be)& Bi ); \
1450: 0a 09 20 20 20 20 45 73 65 30 20 3d 20 20 20 42 .. Ese0 = B
1460: 65 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 e ^((~Bi)& Bo )
1470: 3b 20 5c 0a 09 20 20 20 20 45 73 69 30 20 3d 20 ; \.. Esi0 =
1480: 20 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 Bi ^((~Bo)& B
1490: 75 20 29 3b 20 5c 0a 09 20 20 20 20 45 73 6f 30 u ); \.. Eso0
14a0: 20 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 = Bo ^((~Bu)&
14b0: 20 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 45 Ba ); \.. E
14c0: 73 75 30 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 su0 = Bu ^((~B
14d0: 61 29 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 a)& Be ); \.\..
14e0: 20 20 20 20 41 62 61 31 20 5e 3d 20 44 61 31 3b Aba1 ^= Da1;
14f0: 20 5c 0a 09 20 20 20 20 42 61 20 3d 20 41 62 61 \.. Ba = Aba
1500: 31 3b 20 5c 0a 09 20 20 20 20 41 67 65 31 20 5e 1; \.. Age1 ^
1510: 3d 20 44 65 31 3b 20 5c 0a 09 20 20 20 20 42 65 = De1; \.. Be
1520: 20 3d 20 52 4f 4c 33 32 28 41 67 65 31 2c 20 32 = ROL32(Age1, 2
1530: 32 29 3b 20 5c 0a 09 20 20 20 20 41 6b 69 30 20 2); \.. Aki0
1540: 5e 3d 20 44 69 30 3b 20 5c 0a 09 20 20 20 20 42 ^= Di0; \.. B
1550: 69 20 3d 20 52 4f 4c 33 32 28 41 6b 69 30 2c 20 i = ROL32(Aki0,
1560: 32 31 29 3b 20 5c 0a 09 20 20 20 20 41 6d 6f 30 21); \.. Amo0
1570: 20 5e 3d 20 44 6f 30 3b 20 5c 0a 09 20 20 20 20 ^= Do0; \..
1580: 42 6f 20 3d 20 52 4f 4c 33 32 28 41 6d 6f 30 2c Bo = ROL32(Amo0,
1590: 20 31 30 29 3b 20 5c 0a 09 20 20 20 20 41 73 75 10); \.. Asu
15a0: 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 09 20 20 20 1 ^= Du1; \..
15b0: 20 42 75 20 3d 20 52 4f 4c 33 32 28 41 73 75 31 Bu = ROL32(Asu1
15c0: 2c 20 37 29 3b 20 5c 0a 09 20 20 20 20 45 62 61 , 7); \.. Eba
15d0: 31 20 3d 20 20 20 42 61 20 5e 28 28 7e 42 65 29 1 = Ba ^((~Be)
15e0: 26 20 20 42 69 20 29 3b 20 5c 0a 09 20 20 20 20 & Bi ); \..
15f0: 45 62 61 31 20 5e 3d 20 2a 28 70 52 6f 75 6e 64 Eba1 ^= *(pRound
1600: 43 6f 6e 73 74 61 6e 74 73 2b 2b 29 3b 20 5c 0a Constants++); \.
1610: 09 20 20 20 20 45 62 65 31 20 3d 20 20 20 42 65 . Ebe1 = Be
1620: 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 3b ^((~Bi)& Bo );
1630: 20 5c 0a 09 20 20 20 20 45 62 69 31 20 3d 20 20 \.. Ebi1 =
1640: 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 75 Bi ^((~Bo)& Bu
1650: 20 29 3b 20 5c 0a 09 20 20 20 20 45 62 6f 31 20 ); \.. Ebo1
1660: 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 20 = Bo ^((~Bu)&
1670: 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 45 62 Ba ); \.. Eb
1680: 75 31 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 61 u1 = Bu ^((~Ba
1690: 29 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 20 )& Be ); \.\..
16a0: 20 20 20 41 62 6f 31 20 5e 3d 20 44 6f 31 3b 20 Abo1 ^= Do1;
16b0: 5c 0a 09 20 20 20 20 42 61 20 3d 20 52 4f 4c 33 \.. Ba = ROL3
16c0: 32 28 41 62 6f 31 2c 20 31 34 29 3b 20 5c 0a 09 2(Abo1, 14); \..
16d0: 20 20 20 20 41 67 75 31 20 5e 3d 20 44 75 31 3b Agu1 ^= Du1;
16e0: 20 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 4f 4c \.. Be = ROL
16f0: 33 32 28 41 67 75 31 2c 20 31 30 29 3b 20 5c 0a 32(Agu1, 10); \.
1700: 09 20 20 20 20 41 6b 61 30 20 5e 3d 20 44 61 30 . Aka0 ^= Da0
1710: 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d 20 52 4f ; \.. Bi = RO
1720: 4c 33 32 28 41 6b 61 30 2c 20 31 29 3b 20 5c 0a L32(Aka0, 1); \.
1730: 09 20 20 20 20 41 6d 65 30 20 5e 3d 20 44 65 30 . Ame0 ^= De0
1740: 3b 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 52 4f ; \.. Bo = RO
1750: 4c 33 32 28 41 6d 65 30 2c 20 32 32 29 3b 20 5c L32(Ame0, 22); \
1760: 0a 09 20 20 20 20 41 73 69 30 20 5e 3d 20 44 69 .. Asi0 ^= Di
1770: 30 3b 20 5c 0a 09 20 20 20 20 42 75 20 3d 20 52 0; \.. Bu = R
1780: 4f 4c 33 32 28 41 73 69 30 2c 20 33 30 29 3b 20 OL32(Asi0, 30);
1790: 5c 0a 09 20 20 20 20 45 67 61 31 20 3d 20 20 20 \.. Ega1 =
17a0: 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 69 20 Ba ^((~Be)& Bi
17b0: 29 3b 20 5c 0a 09 20 20 20 20 45 67 65 31 20 3d ); \.. Ege1 =
17c0: 20 20 20 42 65 20 5e 28 28 7e 42 69 29 26 20 20 Be ^((~Bi)&
17d0: 42 6f 20 29 3b 20 5c 0a 09 20 20 20 20 45 67 69 Bo ); \.. Egi
17e0: 31 20 3d 20 20 20 42 69 20 5e 28 28 7e 42 6f 29 1 = Bi ^((~Bo)
17f0: 26 20 20 42 75 20 29 3b 20 5c 0a 09 20 20 20 20 & Bu ); \..
1800: 45 67 6f 31 20 3d 20 20 20 42 6f 20 5e 28 28 7e Ego1 = Bo ^((~
1810: 42 75 29 26 20 20 42 61 20 29 3b 20 5c 0a 09 20 Bu)& Ba ); \..
1820: 20 20 20 45 67 75 31 20 3d 20 20 20 42 75 20 5e Egu1 = Bu ^
1830: 28 28 7e 42 61 29 26 20 20 42 65 20 29 3b 20 5c ((~Ba)& Be ); \
1840: 0a 5c 0a 09 20 20 20 20 41 62 65 30 20 5e 3d 20 .\.. Abe0 ^=
1850: 44 65 30 3b 20 5c 0a 09 20 20 20 20 42 61 20 3d De0; \.. Ba =
1860: 20 41 62 65 30 3b 20 5c 0a 09 20 20 20 20 41 67 Abe0; \.. Ag
1870: 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 09 20 20 i1 ^= Di1; \..
1880: 20 20 42 65 20 3d 20 52 4f 4c 33 32 28 41 67 69 Be = ROL32(Agi
1890: 31 2c 20 33 29 3b 20 5c 0a 09 20 20 20 20 41 6b 1, 3); \.. Ak
18a0: 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 09 20 20 o0 ^= Do0; \..
18b0: 20 20 42 69 20 3d 20 52 4f 4c 33 32 28 41 6b 6f Bi = ROL32(Ako
18c0: 30 2c 20 31 32 29 3b 20 5c 0a 09 20 20 20 20 41 0, 12); \.. A
18d0: 6d 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 09 20 mu1 ^= Du1; \..
18e0: 20 20 20 42 6f 20 3d 20 52 4f 4c 33 32 28 41 6d Bo = ROL32(Am
18f0: 75 31 2c 20 34 29 3b 20 5c 0a 09 20 20 20 20 41 u1, 4); \.. A
1900: 73 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 09 20 sa1 ^= Da1; \..
1910: 20 20 20 42 75 20 3d 20 52 4f 4c 33 32 28 41 73 Bu = ROL32(As
1920: 61 31 2c 20 39 29 3b 20 5c 0a 09 20 20 20 20 45 a1, 9); \.. E
1930: 6b 61 31 20 3d 20 20 20 42 61 20 5e 28 28 7e 42 ka1 = Ba ^((~B
1940: 65 29 26 20 20 42 69 20 29 3b 20 5c 0a 09 20 20 e)& Bi ); \..
1950: 20 20 45 6b 65 31 20 3d 20 20 20 42 65 20 5e 28 Eke1 = Be ^(
1960: 28 7e 42 69 29 26 20 20 42 6f 20 29 3b 20 5c 0a (~Bi)& Bo ); \.
1970: 09 20 20 20 20 45 6b 69 31 20 3d 20 20 20 42 69 . Eki1 = Bi
1980: 20 5e 28 28 7e 42 6f 29 26 20 20 42 75 20 29 3b ^((~Bo)& Bu );
1990: 20 5c 0a 09 20 20 20 20 45 6b 6f 31 20 3d 20 20 \.. Eko1 =
19a0: 20 42 6f 20 5e 28 28 7e 42 75 29 26 20 20 42 61 Bo ^((~Bu)& Ba
19b0: 20 29 3b 20 5c 0a 09 20 20 20 20 45 6b 75 31 20 ); \.. Eku1
19c0: 3d 20 20 20 42 75 20 5e 28 28 7e 42 61 29 26 20 = Bu ^((~Ba)&
19d0: 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 20 20 20 20 Be ); \.\..
19e0: 41 62 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 09 Abu0 ^= Du0; \..
19f0: 20 20 20 20 42 61 20 3d 20 52 4f 4c 33 32 28 41 Ba = ROL32(A
1a00: 62 75 30 2c 20 31 33 29 3b 20 5c 0a 09 20 20 20 bu0, 13); \..
1a10: 20 41 67 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a Aga1 ^= Da1; \.
1a20: 09 20 20 20 20 42 65 20 3d 20 52 4f 4c 33 32 28 . Be = ROL32(
1a30: 41 67 61 31 2c 20 31 38 29 3b 20 5c 0a 09 20 20 Aga1, 18); \..
1a40: 20 20 41 6b 65 31 20 5e 3d 20 44 65 31 3b 20 5c Ake1 ^= De1; \
1a50: 0a 09 20 20 20 20 42 69 20 3d 20 52 4f 4c 33 32 .. Bi = ROL32
1a60: 28 41 6b 65 31 2c 20 35 29 3b 20 5c 0a 09 20 20 (Ake1, 5); \..
1a70: 20 20 41 6d 69 30 20 5e 3d 20 44 69 30 3b 20 5c Ami0 ^= Di0; \
1a80: 0a 09 20 20 20 20 42 6f 20 3d 20 52 4f 4c 33 32 .. Bo = ROL32
1a90: 28 41 6d 69 30 2c 20 37 29 3b 20 5c 0a 09 20 20 (Ami0, 7); \..
1aa0: 20 20 41 73 6f 31 20 5e 3d 20 44 6f 31 3b 20 5c Aso1 ^= Do1; \
1ab0: 0a 09 20 20 20 20 42 75 20 3d 20 52 4f 4c 33 32 .. Bu = ROL32
1ac0: 28 41 73 6f 31 2c 20 32 38 29 3b 20 5c 0a 09 20 (Aso1, 28); \..
1ad0: 20 20 20 45 6d 61 31 20 3d 20 20 20 42 61 20 5e Ema1 = Ba ^
1ae0: 28 28 7e 42 65 29 26 20 20 42 69 20 29 3b 20 5c ((~Be)& Bi ); \
1af0: 0a 09 20 20 20 20 45 6d 65 31 20 3d 20 20 20 42 .. Eme1 = B
1b00: 65 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 e ^((~Bi)& Bo )
1b10: 3b 20 5c 0a 09 20 20 20 20 45 6d 69 31 20 3d 20 ; \.. Emi1 =
1b20: 20 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 Bi ^((~Bo)& B
1b30: 75 20 29 3b 20 5c 0a 09 20 20 20 20 45 6d 6f 31 u ); \.. Emo1
1b40: 20 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 = Bo ^((~Bu)&
1b50: 20 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 45 Ba ); \.. E
1b60: 6d 75 31 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 mu1 = Bu ^((~B
1b70: 61 29 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 a)& Be ); \.\..
1b80: 20 20 20 20 41 62 69 31 20 5e 3d 20 44 69 31 3b Abi1 ^= Di1;
1b90: 20 5c 0a 09 20 20 20 20 42 61 20 3d 20 52 4f 4c \.. Ba = ROL
1ba0: 33 32 28 41 62 69 31 2c 20 33 31 29 3b 20 5c 0a 32(Abi1, 31); \.
1bb0: 09 20 20 20 20 41 67 6f 30 20 5e 3d 20 44 6f 30 . Ago0 ^= Do0
1bc0: 3b 20 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 4f ; \.. Be = RO
1bd0: 4c 33 32 28 41 67 6f 30 2c 20 32 37 29 3b 20 5c L32(Ago0, 27); \
1be0: 0a 09 20 20 20 20 41 6b 75 30 20 5e 3d 20 44 75 .. Aku0 ^= Du
1bf0: 30 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d 20 52 0; \.. Bi = R
1c00: 4f 4c 33 32 28 41 6b 75 30 2c 20 31 39 29 3b 20 OL32(Aku0, 19);
1c10: 5c 0a 09 20 20 20 20 41 6d 61 30 20 5e 3d 20 44 \.. Ama0 ^= D
1c20: 61 30 3b 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 a0; \.. Bo =
1c30: 52 4f 4c 33 32 28 41 6d 61 30 2c 20 32 30 29 3b ROL32(Ama0, 20);
1c40: 20 5c 0a 09 20 20 20 20 41 73 65 31 20 5e 3d 20 \.. Ase1 ^=
1c50: 44 65 31 3b 20 5c 0a 09 20 20 20 20 42 75 20 3d De1; \.. Bu =
1c60: 20 52 4f 4c 33 32 28 41 73 65 31 2c 20 31 29 3b ROL32(Ase1, 1);
1c70: 20 5c 0a 09 20 20 20 20 45 73 61 31 20 3d 20 20 \.. Esa1 =
1c80: 20 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 69 Ba ^((~Be)& Bi
1c90: 20 29 3b 20 5c 0a 09 20 20 20 20 45 73 65 31 20 ); \.. Ese1
1ca0: 3d 20 20 20 42 65 20 5e 28 28 7e 42 69 29 26 20 = Be ^((~Bi)&
1cb0: 20 42 6f 20 29 3b 20 5c 0a 09 20 20 20 20 45 73 Bo ); \.. Es
1cc0: 69 31 20 3d 20 20 20 42 69 20 5e 28 28 7e 42 6f i1 = Bi ^((~Bo
1cd0: 29 26 20 20 42 75 20 29 3b 20 5c 0a 09 20 20 20 )& Bu ); \..
1ce0: 20 45 73 6f 31 20 3d 20 20 20 42 6f 20 5e 28 28 Eso1 = Bo ^((
1cf0: 7e 42 75 29 26 20 20 42 61 20 29 3b 20 5c 0a 09 ~Bu)& Ba ); \..
1d00: 20 20 20 20 45 73 75 31 20 3d 20 20 20 42 75 20 Esu1 = Bu
1d10: 5e 28 28 7e 42 61 29 26 20 20 42 65 20 29 3b 20 ^((~Ba)& Be );
1d20: 5c 0a 5c 0a 09 20 20 20 20 43 78 20 3d 20 45 62 \.\.. Cx = Eb
1d30: 75 30 5e 45 67 75 30 5e 45 6b 75 30 5e 45 6d 75 u0^Egu0^Eku0^Emu
1d40: 30 5e 45 73 75 30 3b 20 5c 0a 09 20 20 20 20 44 0^Esu0; \.. D
1d50: 75 31 20 3d 20 45 62 65 31 5e 45 67 65 31 5e 45 u1 = Ebe1^Ege1^E
1d60: 6b 65 31 5e 45 6d 65 31 5e 45 73 65 31 3b 20 5c ke1^Eme1^Ese1; \
1d70: 0a 09 20 20 20 20 44 61 30 20 3d 20 43 78 5e 52 .. Da0 = Cx^R
1d80: 4f 4c 33 32 28 44 75 31 2c 20 31 29 3b 20 5c 0a OL32(Du1, 1); \.
1d90: 09 20 20 20 20 43 7a 20 3d 20 45 62 75 31 5e 45 . Cz = Ebu1^E
1da0: 67 75 31 5e 45 6b 75 31 5e 45 6d 75 31 5e 45 73 gu1^Eku1^Emu1^Es
1db0: 75 31 3b 20 5c 0a 09 20 20 20 20 44 75 30 20 3d u1; \.. Du0 =
1dc0: 20 45 62 65 30 5e 45 67 65 30 5e 45 6b 65 30 5e Ebe0^Ege0^Eke0^
1dd0: 45 6d 65 30 5e 45 73 65 30 3b 20 5c 0a 09 20 20 Eme0^Ese0; \..
1de0: 20 20 44 61 31 20 3d 20 43 7a 5e 44 75 30 3b 20 Da1 = Cz^Du0;
1df0: 5c 0a 5c 0a 09 20 20 20 20 43 77 20 3d 20 45 62 \.\.. Cw = Eb
1e00: 69 30 5e 45 67 69 30 5e 45 6b 69 30 5e 45 6d 69 i0^Egi0^Eki0^Emi
1e10: 30 5e 45 73 69 30 3b 20 5c 0a 09 20 20 20 20 44 0^Esi0; \.. D
1e20: 6f 30 20 3d 20 43 77 5e 52 4f 4c 33 32 28 43 7a o0 = Cw^ROL32(Cz
1e30: 2c 20 31 29 3b 20 5c 0a 09 20 20 20 20 43 79 20 , 1); \.. Cy
1e40: 3d 20 45 62 69 31 5e 45 67 69 31 5e 45 6b 69 31 = Ebi1^Egi1^Eki1
1e50: 5e 45 6d 69 31 5e 45 73 69 31 3b 20 5c 0a 09 20 ^Emi1^Esi1; \..
1e60: 20 20 20 44 6f 31 20 3d 20 43 79 5e 43 78 3b 20 Do1 = Cy^Cx;
1e70: 5c 0a 5c 0a 09 20 20 20 20 43 78 20 3d 20 45 62 \.\.. Cx = Eb
1e80: 61 30 5e 45 67 61 30 5e 45 6b 61 30 5e 45 6d 61 a0^Ega0^Eka0^Ema
1e90: 30 5e 45 73 61 30 3b 20 5c 0a 09 20 20 20 20 44 0^Esa0; \.. D
1ea0: 65 30 20 3d 20 43 78 5e 52 4f 4c 33 32 28 43 79 e0 = Cx^ROL32(Cy
1eb0: 2c 20 31 29 3b 20 5c 0a 09 20 20 20 20 43 7a 20 , 1); \.. Cz
1ec0: 3d 20 45 62 61 31 5e 45 67 61 31 5e 45 6b 61 31 = Eba1^Ega1^Eka1
1ed0: 5e 45 6d 61 31 5e 45 73 61 31 3b 20 5c 0a 09 20 ^Ema1^Esa1; \..
1ee0: 20 20 20 44 65 31 20 3d 20 43 7a 5e 43 77 3b 20 De1 = Cz^Cw;
1ef0: 5c 0a 5c 0a 09 20 20 20 20 43 79 20 3d 20 45 62 \.\.. Cy = Eb
1f00: 6f 31 5e 45 67 6f 31 5e 45 6b 6f 31 5e 45 6d 6f o1^Ego1^Eko1^Emo
1f10: 31 5e 45 73 6f 31 3b 20 5c 0a 09 20 20 20 20 44 1^Eso1; \.. D
1f20: 69 30 20 3d 20 44 75 30 5e 52 4f 4c 33 32 28 43 i0 = Du0^ROL32(C
1f30: 79 2c 20 31 29 3b 20 5c 0a 09 20 20 20 20 43 77 y, 1); \.. Cw
1f40: 20 3d 20 45 62 6f 30 5e 45 67 6f 30 5e 45 6b 6f = Ebo0^Ego0^Eko
1f50: 30 5e 45 6d 6f 30 5e 45 73 6f 30 3b 20 5c 0a 09 0^Emo0^Eso0; \..
1f60: 20 20 20 20 44 69 31 20 3d 20 44 75 31 5e 43 77 Di1 = Du1^Cw
1f70: 3b 20 5c 0a 5c 0a 09 20 20 20 20 44 75 30 20 3d ; \.\.. Du0 =
1f80: 20 43 77 5e 52 4f 4c 33 32 28 43 7a 2c 20 31 29 Cw^ROL32(Cz, 1)
1f90: 3b 20 5c 0a 09 20 20 20 20 44 75 31 20 3d 20 43 ; \.. Du1 = C
1fa0: 79 5e 43 78 3b 20 5c 0a 5c 0a 09 20 20 20 20 45 y^Cx; \.\.. E
1fb0: 62 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 09 20 ba0 ^= Da0; \..
1fc0: 20 20 20 42 61 20 3d 20 45 62 61 30 3b 20 5c 0a Ba = Eba0; \.
1fd0: 09 20 20 20 20 45 67 65 30 20 5e 3d 20 44 65 30 . Ege0 ^= De0
1fe0: 3b 20 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 4f ; \.. Be = RO
1ff0: 4c 33 32 28 45 67 65 30 2c 20 32 32 29 3b 20 5c L32(Ege0, 22); \
2000: 0a 09 20 20 20 20 45 6b 69 31 20 5e 3d 20 44 69 .. Eki1 ^= Di
2010: 31 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d 20 52 1; \.. Bi = R
2020: 4f 4c 33 32 28 45 6b 69 31 2c 20 32 32 29 3b 20 OL32(Eki1, 22);
2030: 5c 0a 09 20 20 20 20 45 6d 6f 31 20 5e 3d 20 44 \.. Emo1 ^= D
2040: 6f 31 3b 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 o1; \.. Bo =
2050: 52 4f 4c 33 32 28 45 6d 6f 31 2c 20 31 31 29 3b ROL32(Emo1, 11);
2060: 20 5c 0a 09 20 20 20 20 45 73 75 30 20 5e 3d 20 \.. Esu0 ^=
2070: 44 75 30 3b 20 5c 0a 09 20 20 20 20 42 75 20 3d Du0; \.. Bu =
2080: 20 52 4f 4c 33 32 28 45 73 75 30 2c 20 37 29 3b ROL32(Esu0, 7);
2090: 20 5c 0a 09 20 20 20 20 41 62 61 30 20 3d 20 20 \.. Aba0 =
20a0: 20 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 69 Ba ^((~Be)& Bi
20b0: 20 29 3b 20 5c 0a 09 20 20 20 20 41 62 61 30 20 ); \.. Aba0
20c0: 5e 3d 20 2a 28 70 52 6f 75 6e 64 43 6f 6e 73 74 ^= *(pRoundConst
20d0: 61 6e 74 73 2b 2b 29 3b 20 5c 0a 09 20 20 20 20 ants++); \..
20e0: 41 62 65 30 20 3d 20 20 20 42 65 20 5e 28 28 7e Abe0 = Be ^((~
20f0: 42 69 29 26 20 20 42 6f 20 29 3b 20 5c 0a 09 20 Bi)& Bo ); \..
2100: 20 20 20 41 62 69 30 20 3d 20 20 20 42 69 20 5e Abi0 = Bi ^
2110: 28 28 7e 42 6f 29 26 20 20 42 75 20 29 3b 20 5c ((~Bo)& Bu ); \
2120: 0a 09 20 20 20 20 41 62 6f 30 20 3d 20 20 20 42 .. Abo0 = B
2130: 6f 20 5e 28 28 7e 42 75 29 26 20 20 42 61 20 29 o ^((~Bu)& Ba )
2140: 3b 20 5c 0a 09 20 20 20 20 41 62 75 30 20 3d 20 ; \.. Abu0 =
2150: 20 20 42 75 20 5e 28 28 7e 42 61 29 26 20 20 42 Bu ^((~Ba)& B
2160: 65 20 29 3b 20 5c 0a 5c 0a 09 20 20 20 20 45 62 e ); \.\.. Eb
2170: 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 09 20 20 o0 ^= Do0; \..
2180: 20 20 42 61 20 3d 20 52 4f 4c 33 32 28 45 62 6f Ba = ROL32(Ebo
2190: 30 2c 20 31 34 29 3b 20 5c 0a 09 20 20 20 20 45 0, 14); \.. E
21a0: 67 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 09 20 gu0 ^= Du0; \..
21b0: 20 20 20 42 65 20 3d 20 52 4f 4c 33 32 28 45 67 Be = ROL32(Eg
21c0: 75 30 2c 20 31 30 29 3b 20 5c 0a 09 20 20 20 20 u0, 10); \..
21d0: 45 6b 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 09 Eka1 ^= Da1; \..
21e0: 20 20 20 20 42 69 20 3d 20 52 4f 4c 33 32 28 45 Bi = ROL32(E
21f0: 6b 61 31 2c 20 32 29 3b 20 5c 0a 09 20 20 20 20 ka1, 2); \..
2200: 45 6d 65 31 20 5e 3d 20 44 65 31 3b 20 5c 0a 09 Eme1 ^= De1; \..
2210: 20 20 20 20 42 6f 20 3d 20 52 4f 4c 33 32 28 45 Bo = ROL32(E
2220: 6d 65 31 2c 20 32 33 29 3b 20 5c 0a 09 20 20 20 me1, 23); \..
2230: 20 45 73 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a Esi1 ^= Di1; \.
2240: 09 20 20 20 20 42 75 20 3d 20 52 4f 4c 33 32 28 . Bu = ROL32(
2250: 45 73 69 31 2c 20 33 31 29 3b 20 5c 0a 09 20 20 Esi1, 31); \..
2260: 20 20 41 67 61 30 20 3d 20 20 20 42 61 20 5e 28 Aga0 = Ba ^(
2270: 28 7e 42 65 29 26 20 20 42 69 20 29 3b 20 5c 0a (~Be)& Bi ); \.
2280: 09 20 20 20 20 41 67 65 30 20 3d 20 20 20 42 65 . Age0 = Be
2290: 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 3b ^((~Bi)& Bo );
22a0: 20 5c 0a 09 20 20 20 20 41 67 69 30 20 3d 20 20 \.. Agi0 =
22b0: 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 75 Bi ^((~Bo)& Bu
22c0: 20 29 3b 20 5c 0a 09 20 20 20 20 41 67 6f 30 20 ); \.. Ago0
22d0: 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 20 = Bo ^((~Bu)&
22e0: 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 41 67 Ba ); \.. Ag
22f0: 75 30 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 61 u0 = Bu ^((~Ba
2300: 29 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 20 )& Be ); \.\..
2310: 20 20 20 45 62 65 31 20 5e 3d 20 44 65 31 3b 20 Ebe1 ^= De1;
2320: 5c 0a 09 20 20 20 20 42 61 20 3d 20 52 4f 4c 33 \.. Ba = ROL3
2330: 32 28 45 62 65 31 2c 20 31 29 3b 20 5c 0a 09 20 2(Ebe1, 1); \..
2340: 20 20 20 45 67 69 30 20 5e 3d 20 44 69 30 3b 20 Egi0 ^= Di0;
2350: 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 4f 4c 33 \.. Be = ROL3
2360: 32 28 45 67 69 30 2c 20 33 29 3b 20 5c 0a 09 20 2(Egi0, 3); \..
2370: 20 20 20 45 6b 6f 31 20 5e 3d 20 44 6f 31 3b 20 Eko1 ^= Do1;
2380: 5c 0a 09 20 20 20 20 42 69 20 3d 20 52 4f 4c 33 \.. Bi = ROL3
2390: 32 28 45 6b 6f 31 2c 20 31 33 29 3b 20 5c 0a 09 2(Eko1, 13); \..
23a0: 20 20 20 20 45 6d 75 30 20 5e 3d 20 44 75 30 3b Emu0 ^= Du0;
23b0: 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 52 4f 4c \.. Bo = ROL
23c0: 33 32 28 45 6d 75 30 2c 20 34 29 3b 20 5c 0a 09 32(Emu0, 4); \..
23d0: 20 20 20 20 45 73 61 30 20 5e 3d 20 44 61 30 3b Esa0 ^= Da0;
23e0: 20 5c 0a 09 20 20 20 20 42 75 20 3d 20 52 4f 4c \.. Bu = ROL
23f0: 33 32 28 45 73 61 30 2c 20 39 29 3b 20 5c 0a 09 32(Esa0, 9); \..
2400: 20 20 20 20 41 6b 61 30 20 3d 20 20 20 42 61 20 Aka0 = Ba
2410: 5e 28 28 7e 42 65 29 26 20 20 42 69 20 29 3b 20 ^((~Be)& Bi );
2420: 5c 0a 09 20 20 20 20 41 6b 65 30 20 3d 20 20 20 \.. Ake0 =
2430: 42 65 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 Be ^((~Bi)& Bo
2440: 29 3b 20 5c 0a 09 20 20 20 20 41 6b 69 30 20 3d ); \.. Aki0 =
2450: 20 20 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 Bi ^((~Bo)&
2460: 42 75 20 29 3b 20 5c 0a 09 20 20 20 20 41 6b 6f Bu ); \.. Ako
2470: 30 20 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 0 = Bo ^((~Bu)
2480: 26 20 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 & Ba ); \..
2490: 41 6b 75 30 20 3d 20 20 20 42 75 20 5e 28 28 7e Aku0 = Bu ^((~
24a0: 42 61 29 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a Ba)& Be ); \.\.
24b0: 09 20 20 20 20 45 62 75 31 20 5e 3d 20 44 75 31 . Ebu1 ^= Du1
24c0: 3b 20 5c 0a 09 20 20 20 20 42 61 20 3d 20 52 4f ; \.. Ba = RO
24d0: 4c 33 32 28 45 62 75 31 2c 20 31 34 29 3b 20 5c L32(Ebu1, 14); \
24e0: 0a 09 20 20 20 20 45 67 61 30 20 5e 3d 20 44 61 .. Ega0 ^= Da
24f0: 30 3b 20 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 0; \.. Be = R
2500: 4f 4c 33 32 28 45 67 61 30 2c 20 31 38 29 3b 20 OL32(Ega0, 18);
2510: 5c 0a 09 20 20 20 20 45 6b 65 30 20 5e 3d 20 44 \.. Eke0 ^= D
2520: 65 30 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d 20 e0; \.. Bi =
2530: 52 4f 4c 33 32 28 45 6b 65 30 2c 20 35 29 3b 20 ROL32(Eke0, 5);
2540: 5c 0a 09 20 20 20 20 45 6d 69 31 20 5e 3d 20 44 \.. Emi1 ^= D
2550: 69 31 3b 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 i1; \.. Bo =
2560: 52 4f 4c 33 32 28 45 6d 69 31 2c 20 38 29 3b 20 ROL32(Emi1, 8);
2570: 5c 0a 09 20 20 20 20 45 73 6f 30 20 5e 3d 20 44 \.. Eso0 ^= D
2580: 6f 30 3b 20 5c 0a 09 20 20 20 20 42 75 20 3d 20 o0; \.. Bu =
2590: 52 4f 4c 33 32 28 45 73 6f 30 2c 20 32 38 29 3b ROL32(Eso0, 28);
25a0: 20 5c 0a 09 20 20 20 20 41 6d 61 30 20 3d 20 20 \.. Ama0 =
25b0: 20 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 69 Ba ^((~Be)& Bi
25c0: 20 29 3b 20 5c 0a 09 20 20 20 20 41 6d 65 30 20 ); \.. Ame0
25d0: 3d 20 20 20 42 65 20 5e 28 28 7e 42 69 29 26 20 = Be ^((~Bi)&
25e0: 20 42 6f 20 29 3b 20 5c 0a 09 20 20 20 20 41 6d Bo ); \.. Am
25f0: 69 30 20 3d 20 20 20 42 69 20 5e 28 28 7e 42 6f i0 = Bi ^((~Bo
2600: 29 26 20 20 42 75 20 29 3b 20 5c 0a 09 20 20 20 )& Bu ); \..
2610: 20 41 6d 6f 30 20 3d 20 20 20 42 6f 20 5e 28 28 Amo0 = Bo ^((
2620: 7e 42 75 29 26 20 20 42 61 20 29 3b 20 5c 0a 09 ~Bu)& Ba ); \..
2630: 20 20 20 20 41 6d 75 30 20 3d 20 20 20 42 75 20 Amu0 = Bu
2640: 5e 28 28 7e 42 61 29 26 20 20 42 65 20 29 3b 20 ^((~Ba)& Be );
2650: 5c 0a 5c 0a 09 20 20 20 20 45 62 69 30 20 5e 3d \.\.. Ebi0 ^=
2660: 20 44 69 30 3b 20 5c 0a 09 20 20 20 20 42 61 20 Di0; \.. Ba
2670: 3d 20 52 4f 4c 33 32 28 45 62 69 30 2c 20 33 31 = ROL32(Ebi0, 31
2680: 29 3b 20 5c 0a 09 20 20 20 20 45 67 6f 31 20 5e ); \.. Ego1 ^
2690: 3d 20 44 6f 31 3b 20 5c 0a 09 20 20 20 20 42 65 = Do1; \.. Be
26a0: 20 3d 20 52 4f 4c 33 32 28 45 67 6f 31 2c 20 32 = ROL32(Ego1, 2
26b0: 38 29 3b 20 5c 0a 09 20 20 20 20 45 6b 75 31 20 8); \.. Eku1
26c0: 5e 3d 20 44 75 31 3b 20 5c 0a 09 20 20 20 20 42 ^= Du1; \.. B
26d0: 69 20 3d 20 52 4f 4c 33 32 28 45 6b 75 31 2c 20 i = ROL32(Eku1,
26e0: 32 30 29 3b 20 5c 0a 09 20 20 20 20 45 6d 61 31 20); \.. Ema1
26f0: 20 5e 3d 20 44 61 31 3b 20 5c 0a 09 20 20 20 20 ^= Da1; \..
2700: 42 6f 20 3d 20 52 4f 4c 33 32 28 45 6d 61 31 2c Bo = ROL32(Ema1,
2710: 20 32 31 29 3b 20 5c 0a 09 20 20 20 20 45 73 65 21); \.. Ese
2720: 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 09 20 20 20 0 ^= De0; \..
2730: 20 42 75 20 3d 20 52 4f 4c 33 32 28 45 73 65 30 Bu = ROL32(Ese0
2740: 2c 20 31 29 3b 20 5c 0a 09 20 20 20 20 41 73 61 , 1); \.. Asa
2750: 30 20 3d 20 20 20 42 61 20 5e 28 28 7e 42 65 29 0 = Ba ^((~Be)
2760: 26 20 20 42 69 20 29 3b 20 5c 0a 09 20 20 20 20 & Bi ); \..
2770: 41 73 65 30 20 3d 20 20 20 42 65 20 5e 28 28 7e Ase0 = Be ^((~
2780: 42 69 29 26 20 20 42 6f 20 29 3b 20 5c 0a 09 20 Bi)& Bo ); \..
2790: 20 20 20 41 73 69 30 20 3d 20 20 20 42 69 20 5e Asi0 = Bi ^
27a0: 28 28 7e 42 6f 29 26 20 20 42 75 20 29 3b 20 5c ((~Bo)& Bu ); \
27b0: 0a 09 20 20 20 20 41 73 6f 30 20 3d 20 20 20 42 .. Aso0 = B
27c0: 6f 20 5e 28 28 7e 42 75 29 26 20 20 42 61 20 29 o ^((~Bu)& Ba )
27d0: 3b 20 5c 0a 09 20 20 20 20 41 73 75 30 20 3d 20 ; \.. Asu0 =
27e0: 20 20 42 75 20 5e 28 28 7e 42 61 29 26 20 20 42 Bu ^((~Ba)& B
27f0: 65 20 29 3b 20 5c 0a 5c 0a 09 20 20 20 20 45 62 e ); \.\.. Eb
2800: 61 31 20 5e 3d 20 44 61 31 3b 20 5c 0a 09 20 20 a1 ^= Da1; \..
2810: 20 20 42 61 20 3d 20 45 62 61 31 3b 20 5c 0a 09 Ba = Eba1; \..
2820: 20 20 20 20 45 67 65 31 20 5e 3d 20 44 65 31 3b Ege1 ^= De1;
2830: 20 5c 0a 09 20 20 20 20 42 65 20 3d 20 52 4f 4c \.. Be = ROL
2840: 33 32 28 45 67 65 31 2c 20 32 32 29 3b 20 5c 0a 32(Ege1, 22); \.
2850: 09 20 20 20 20 45 6b 69 30 20 5e 3d 20 44 69 30 . Eki0 ^= Di0
2860: 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d 20 52 4f ; \.. Bi = RO
2870: 4c 33 32 28 45 6b 69 30 2c 20 32 31 29 3b 20 5c L32(Eki0, 21); \
2880: 0a 09 20 20 20 20 45 6d 6f 30 20 5e 3d 20 44 6f .. Emo0 ^= Do
2890: 30 3b 20 5c 0a 09 20 20 20 20 42 6f 20 3d 20 52 0; \.. Bo = R
28a0: 4f 4c 33 32 28 45 6d 6f 30 2c 20 31 30 29 3b 20 OL32(Emo0, 10);
28b0: 5c 0a 09 20 20 20 20 45 73 75 31 20 5e 3d 20 44 \.. Esu1 ^= D
28c0: 75 31 3b 20 5c 0a 09 20 20 20 20 42 75 20 3d 20 u1; \.. Bu =
28d0: 52 4f 4c 33 32 28 45 73 75 31 2c 20 37 29 3b 20 ROL32(Esu1, 7);
28e0: 5c 0a 09 20 20 20 20 41 62 61 31 20 3d 20 20 20 \.. Aba1 =
28f0: 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 69 20 Ba ^((~Be)& Bi
2900: 29 3b 20 5c 0a 09 20 20 20 20 41 62 61 31 20 5e ); \.. Aba1 ^
2910: 3d 20 2a 28 70 52 6f 75 6e 64 43 6f 6e 73 74 61 = *(pRoundConsta
2920: 6e 74 73 2b 2b 29 3b 20 5c 0a 09 20 20 20 20 41 nts++); \.. A
2930: 62 65 31 20 3d 20 20 20 42 65 20 5e 28 28 7e 42 be1 = Be ^((~B
2940: 69 29 26 20 20 42 6f 20 29 3b 20 5c 0a 09 20 20 i)& Bo ); \..
2950: 20 20 41 62 69 31 20 3d 20 20 20 42 69 20 5e 28 Abi1 = Bi ^(
2960: 28 7e 42 6f 29 26 20 20 42 75 20 29 3b 20 5c 0a (~Bo)& Bu ); \.
2970: 09 20 20 20 20 41 62 6f 31 20 3d 20 20 20 42 6f . Abo1 = Bo
2980: 20 5e 28 28 7e 42 75 29 26 20 20 42 61 20 29 3b ^((~Bu)& Ba );
2990: 20 5c 0a 09 20 20 20 20 41 62 75 31 20 3d 20 20 \.. Abu1 =
29a0: 20 42 75 20 5e 28 28 7e 42 61 29 26 20 20 42 65 Bu ^((~Ba)& Be
29b0: 20 29 3b 20 5c 0a 5c 0a 09 20 20 20 20 45 62 6f ); \.\.. Ebo
29c0: 31 20 5e 3d 20 44 6f 31 3b 20 5c 0a 09 20 20 20 1 ^= Do1; \..
29d0: 20 42 61 20 3d 20 52 4f 4c 33 32 28 45 62 6f 31 Ba = ROL32(Ebo1
29e0: 2c 20 31 34 29 3b 20 5c 0a 09 20 20 20 20 45 67 , 14); \.. Eg
29f0: 75 31 20 5e 3d 20 44 75 31 3b 20 5c 0a 09 20 20 u1 ^= Du1; \..
2a00: 20 20 42 65 20 3d 20 52 4f 4c 33 32 28 45 67 75 Be = ROL32(Egu
2a10: 31 2c 20 31 30 29 3b 20 5c 0a 09 20 20 20 20 45 1, 10); \.. E
2a20: 6b 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a 09 20 ka0 ^= Da0; \..
2a30: 20 20 20 42 69 20 3d 20 52 4f 4c 33 32 28 45 6b Bi = ROL32(Ek
2a40: 61 30 2c 20 31 29 3b 20 5c 0a 09 20 20 20 20 45 a0, 1); \.. E
2a50: 6d 65 30 20 5e 3d 20 44 65 30 3b 20 5c 0a 09 20 me0 ^= De0; \..
2a60: 20 20 20 42 6f 20 3d 20 52 4f 4c 33 32 28 45 6d Bo = ROL32(Em
2a70: 65 30 2c 20 32 32 29 3b 20 5c 0a 09 20 20 20 20 e0, 22); \..
2a80: 45 73 69 30 20 5e 3d 20 44 69 30 3b 20 5c 0a 09 Esi0 ^= Di0; \..
2a90: 20 20 20 20 42 75 20 3d 20 52 4f 4c 33 32 28 45 Bu = ROL32(E
2aa0: 73 69 30 2c 20 33 30 29 3b 20 5c 0a 09 20 20 20 si0, 30); \..
2ab0: 20 41 67 61 31 20 3d 20 20 20 42 61 20 5e 28 28 Aga1 = Ba ^((
2ac0: 7e 42 65 29 26 20 20 42 69 20 29 3b 20 5c 0a 09 ~Be)& Bi ); \..
2ad0: 20 20 20 20 41 67 65 31 20 3d 20 20 20 42 65 20 Age1 = Be
2ae0: 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 3b 20 ^((~Bi)& Bo );
2af0: 5c 0a 09 20 20 20 20 41 67 69 31 20 3d 20 20 20 \.. Agi1 =
2b00: 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 75 20 Bi ^((~Bo)& Bu
2b10: 29 3b 20 5c 0a 09 20 20 20 20 41 67 6f 31 20 3d ); \.. Ago1 =
2b20: 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 20 20 Bo ^((~Bu)&
2b30: 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 41 67 75 Ba ); \.. Agu
2b40: 31 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 61 29 1 = Bu ^((~Ba)
2b50: 26 20 20 42 65 20 29 3b 20 5c 0a 5c 0a 09 20 20 & Be ); \.\..
2b60: 20 20 45 62 65 30 20 5e 3d 20 44 65 30 3b 20 5c Ebe0 ^= De0; \
2b70: 0a 09 20 20 20 20 42 61 20 3d 20 45 62 65 30 3b .. Ba = Ebe0;
2b80: 20 5c 0a 09 20 20 20 20 45 67 69 31 20 5e 3d 20 \.. Egi1 ^=
2b90: 44 69 31 3b 20 5c 0a 09 20 20 20 20 42 65 20 3d Di1; \.. Be =
2ba0: 20 52 4f 4c 33 32 28 45 67 69 31 2c 20 33 29 3b ROL32(Egi1, 3);
2bb0: 20 5c 0a 09 20 20 20 20 45 6b 6f 30 20 5e 3d 20 \.. Eko0 ^=
2bc0: 44 6f 30 3b 20 5c 0a 09 20 20 20 20 42 69 20 3d Do0; \.. Bi =
2bd0: 20 52 4f 4c 33 32 28 45 6b 6f 30 2c 20 31 32 29 ROL32(Eko0, 12)
2be0: 3b 20 5c 0a 09 20 20 20 20 45 6d 75 31 20 5e 3d ; \.. Emu1 ^=
2bf0: 20 44 75 31 3b 20 5c 0a 09 20 20 20 20 42 6f 20 Du1; \.. Bo
2c00: 3d 20 52 4f 4c 33 32 28 45 6d 75 31 2c 20 34 29 = ROL32(Emu1, 4)
2c10: 3b 20 5c 0a 09 20 20 20 20 45 73 61 31 20 5e 3d ; \.. Esa1 ^=
2c20: 20 44 61 31 3b 20 5c 0a 09 20 20 20 20 42 75 20 Da1; \.. Bu
2c30: 3d 20 52 4f 4c 33 32 28 45 73 61 31 2c 20 39 29 = ROL32(Esa1, 9)
2c40: 3b 20 5c 0a 09 20 20 20 20 41 6b 61 31 20 3d 20 ; \.. Aka1 =
2c50: 20 20 42 61 20 5e 28 28 7e 42 65 29 26 20 20 42 Ba ^((~Be)& B
2c60: 69 20 29 3b 20 5c 0a 09 20 20 20 20 41 6b 65 31 i ); \.. Ake1
2c70: 20 3d 20 20 20 42 65 20 5e 28 28 7e 42 69 29 26 = Be ^((~Bi)&
2c80: 20 20 42 6f 20 29 3b 20 5c 0a 09 20 20 20 20 41 Bo ); \.. A
2c90: 6b 69 31 20 3d 20 20 20 42 69 20 5e 28 28 7e 42 ki1 = Bi ^((~B
2ca0: 6f 29 26 20 20 42 75 20 29 3b 20 5c 0a 09 20 20 o)& Bu ); \..
2cb0: 20 20 41 6b 6f 31 20 3d 20 20 20 42 6f 20 5e 28 Ako1 = Bo ^(
2cc0: 28 7e 42 75 29 26 20 20 42 61 20 29 3b 20 5c 0a (~Bu)& Ba ); \.
2cd0: 09 20 20 20 20 41 6b 75 31 20 3d 20 20 20 42 75 . Aku1 = Bu
2ce0: 20 5e 28 28 7e 42 61 29 26 20 20 42 65 20 29 3b ^((~Ba)& Be );
2cf0: 20 5c 0a 5c 0a 09 20 20 20 20 45 62 75 30 20 5e \.\.. Ebu0 ^
2d00: 3d 20 44 75 30 3b 20 5c 0a 09 20 20 20 20 42 61 = Du0; \.. Ba
2d10: 20 3d 20 52 4f 4c 33 32 28 45 62 75 30 2c 20 31 = ROL32(Ebu0, 1
2d20: 33 29 3b 20 5c 0a 09 20 20 20 20 45 67 61 31 20 3); \.. Ega1
2d30: 5e 3d 20 44 61 31 3b 20 5c 0a 09 20 20 20 20 42 ^= Da1; \.. B
2d40: 65 20 3d 20 52 4f 4c 33 32 28 45 67 61 31 2c 20 e = ROL32(Ega1,
2d50: 31 38 29 3b 20 5c 0a 09 20 20 20 20 45 6b 65 31 18); \.. Eke1
2d60: 20 5e 3d 20 44 65 31 3b 20 5c 0a 09 20 20 20 20 ^= De1; \..
2d70: 42 69 20 3d 20 52 4f 4c 33 32 28 45 6b 65 31 2c Bi = ROL32(Eke1,
2d80: 20 35 29 3b 20 5c 0a 09 20 20 20 20 45 6d 69 30 5); \.. Emi0
2d90: 20 5e 3d 20 44 69 30 3b 20 5c 0a 09 20 20 20 20 ^= Di0; \..
2da0: 42 6f 20 3d 20 52 4f 4c 33 32 28 45 6d 69 30 2c Bo = ROL32(Emi0,
2db0: 20 37 29 3b 20 5c 0a 09 20 20 20 20 45 73 6f 31 7); \.. Eso1
2dc0: 20 5e 3d 20 44 6f 31 3b 20 5c 0a 09 20 20 20 20 ^= Do1; \..
2dd0: 42 75 20 3d 20 52 4f 4c 33 32 28 45 73 6f 31 2c Bu = ROL32(Eso1,
2de0: 20 32 38 29 3b 20 5c 0a 09 20 20 20 20 41 6d 61 28); \.. Ama
2df0: 31 20 3d 20 20 20 42 61 20 5e 28 28 7e 42 65 29 1 = Ba ^((~Be)
2e00: 26 20 20 42 69 20 29 3b 20 5c 0a 09 20 20 20 20 & Bi ); \..
2e10: 41 6d 65 31 20 3d 20 20 20 42 65 20 5e 28 28 7e Ame1 = Be ^((~
2e20: 42 69 29 26 20 20 42 6f 20 29 3b 20 5c 0a 09 20 Bi)& Bo ); \..
2e30: 20 20 20 41 6d 69 31 20 3d 20 20 20 42 69 20 5e Ami1 = Bi ^
2e40: 28 28 7e 42 6f 29 26 20 20 42 75 20 29 3b 20 5c ((~Bo)& Bu ); \
2e50: 0a 09 20 20 20 20 41 6d 6f 31 20 3d 20 20 20 42 .. Amo1 = B
2e60: 6f 20 5e 28 28 7e 42 75 29 26 20 20 42 61 20 29 o ^((~Bu)& Ba )
2e70: 3b 20 5c 0a 09 20 20 20 20 41 6d 75 31 20 3d 20 ; \.. Amu1 =
2e80: 20 20 42 75 20 5e 28 28 7e 42 61 29 26 20 20 42 Bu ^((~Ba)& B
2e90: 65 20 29 3b 20 5c 0a 5c 0a 09 20 20 20 20 45 62 e ); \.\.. Eb
2ea0: 69 31 20 5e 3d 20 44 69 31 3b 20 5c 0a 09 20 20 i1 ^= Di1; \..
2eb0: 20 20 42 61 20 3d 20 52 4f 4c 33 32 28 45 62 69 Ba = ROL32(Ebi
2ec0: 31 2c 20 33 31 29 3b 20 5c 0a 09 20 20 20 20 45 1, 31); \.. E
2ed0: 67 6f 30 20 5e 3d 20 44 6f 30 3b 20 5c 0a 09 20 go0 ^= Do0; \..
2ee0: 20 20 20 42 65 20 3d 20 52 4f 4c 33 32 28 45 67 Be = ROL32(Eg
2ef0: 6f 30 2c 20 32 37 29 3b 20 5c 0a 09 20 20 20 20 o0, 27); \..
2f00: 45 6b 75 30 20 5e 3d 20 44 75 30 3b 20 5c 0a 09 Eku0 ^= Du0; \..
2f10: 20 20 20 20 42 69 20 3d 20 52 4f 4c 33 32 28 45 Bi = ROL32(E
2f20: 6b 75 30 2c 20 31 39 29 3b 20 5c 0a 09 20 20 20 ku0, 19); \..
2f30: 20 45 6d 61 30 20 5e 3d 20 44 61 30 3b 20 5c 0a Ema0 ^= Da0; \.
2f40: 09 20 20 20 20 42 6f 20 3d 20 52 4f 4c 33 32 28 . Bo = ROL32(
2f50: 45 6d 61 30 2c 20 32 30 29 3b 20 5c 0a 09 20 20 Ema0, 20); \..
2f60: 20 20 45 73 65 31 20 5e 3d 20 44 65 31 3b 20 5c Ese1 ^= De1; \
2f70: 0a 09 20 20 20 20 42 75 20 3d 20 52 4f 4c 33 32 .. Bu = ROL32
2f80: 28 45 73 65 31 2c 20 31 29 3b 20 5c 0a 09 20 20 (Ese1, 1); \..
2f90: 20 20 41 73 61 31 20 3d 20 20 20 42 61 20 5e 28 Asa1 = Ba ^(
2fa0: 28 7e 42 65 29 26 20 20 42 69 20 29 3b 20 5c 0a (~Be)& Bi ); \.
2fb0: 09 20 20 20 20 41 73 65 31 20 3d 20 20 20 42 65 . Ase1 = Be
2fc0: 20 5e 28 28 7e 42 69 29 26 20 20 42 6f 20 29 3b ^((~Bi)& Bo );
2fd0: 20 5c 0a 09 20 20 20 20 41 73 69 31 20 3d 20 20 \.. Asi1 =
2fe0: 20 42 69 20 5e 28 28 7e 42 6f 29 26 20 20 42 75 Bi ^((~Bo)& Bu
2ff0: 20 29 3b 20 5c 0a 09 20 20 20 20 41 73 6f 31 20 ); \.. Aso1
3000: 3d 20 20 20 42 6f 20 5e 28 28 7e 42 75 29 26 20 = Bo ^((~Bu)&
3010: 20 42 61 20 29 3b 20 5c 0a 09 20 20 20 20 41 73 Ba ); \.. As
3020: 75 31 20 3d 20 20 20 42 75 20 5e 28 28 7e 42 61 u1 = Bu ^((~Ba
3030: 29 26 20 20 42 65 20 29 3b 20 5c 0a 20 20 20 20 )& Be ); \.
3040: 7d 20 5c 0a 20 20 20 20 63 6f 70 79 54 6f 53 74 } \. copyToSt
3050: 61 74 65 28 73 74 61 74 65 2c 20 41 29 20 5c 0a ate(state, A) \.
3060: 7d 0a 0a 23 64 65 66 69 6e 65 20 63 6f 70 79 46 }..#define copyF
3070: 72 6f 6d 53 74 61 74 65 28 58 2c 20 73 74 61 74 romState(X, stat
3080: 65 29 20 5c 0a 20 20 20 20 58 23 23 62 61 30 20 e) \. X##ba0
3090: 3d 20 73 74 61 74 65 5b 20 30 5d 3b 20 5c 0a 20 = state[ 0]; \.
30a0: 20 20 20 58 23 23 62 61 31 20 3d 20 73 74 61 74 X##ba1 = stat
30b0: 65 5b 20 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[ 1]; \. X##
30c0: 62 65 30 20 3d 20 73 74 61 74 65 5b 20 32 5d 3b be0 = state[ 2];
30d0: 20 5c 0a 20 20 20 20 58 23 23 62 65 31 20 3d 20 \. X##be1 =
30e0: 73 74 61 74 65 5b 20 33 5d 3b 20 5c 0a 20 20 20 state[ 3]; \.
30f0: 20 58 23 23 62 69 30 20 3d 20 73 74 61 74 65 5b X##bi0 = state[
3100: 20 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 69 4]; \. X##bi
3110: 31 20 3d 20 73 74 61 74 65 5b 20 35 5d 3b 20 5c 1 = state[ 5]; \
3120: 0a 20 20 20 20 58 23 23 62 6f 30 20 3d 20 73 74 . X##bo0 = st
3130: 61 74 65 5b 20 36 5d 3b 20 5c 0a 20 20 20 20 58 ate[ 6]; \. X
3140: 23 23 62 6f 31 20 3d 20 73 74 61 74 65 5b 20 37 ##bo1 = state[ 7
3150: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 62 75 30 20 ]; \. X##bu0
3160: 3d 20 73 74 61 74 65 5b 20 38 5d 3b 20 5c 0a 20 = state[ 8]; \.
3170: 20 20 20 58 23 23 62 75 31 20 3d 20 73 74 61 74 X##bu1 = stat
3180: 65 5b 20 39 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[ 9]; \. X##
3190: 67 61 30 20 3d 20 73 74 61 74 65 5b 31 30 5d 3b ga0 = state[10];
31a0: 20 5c 0a 20 20 20 20 58 23 23 67 61 31 20 3d 20 \. X##ga1 =
31b0: 73 74 61 74 65 5b 31 31 5d 3b 20 5c 0a 20 20 20 state[11]; \.
31c0: 20 58 23 23 67 65 30 20 3d 20 73 74 61 74 65 5b X##ge0 = state[
31d0: 31 32 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 65 12]; \. X##ge
31e0: 31 20 3d 20 73 74 61 74 65 5b 31 33 5d 3b 20 5c 1 = state[13]; \
31f0: 0a 20 20 20 20 58 23 23 67 69 30 20 3d 20 73 74 . X##gi0 = st
3200: 61 74 65 5b 31 34 5d 3b 20 5c 0a 20 20 20 20 58 ate[14]; \. X
3210: 23 23 67 69 31 20 3d 20 73 74 61 74 65 5b 31 35 ##gi1 = state[15
3220: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 67 6f 30 20 ]; \. X##go0
3230: 3d 20 73 74 61 74 65 5b 31 36 5d 3b 20 5c 0a 20 = state[16]; \.
3240: 20 20 20 58 23 23 67 6f 31 20 3d 20 73 74 61 74 X##go1 = stat
3250: 65 5b 31 37 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[17]; \. X##
3260: 67 75 30 20 3d 20 73 74 61 74 65 5b 31 38 5d 3b gu0 = state[18];
3270: 20 5c 0a 20 20 20 20 58 23 23 67 75 31 20 3d 20 \. X##gu1 =
3280: 73 74 61 74 65 5b 31 39 5d 3b 20 5c 0a 20 20 20 state[19]; \.
3290: 20 58 23 23 6b 61 30 20 3d 20 73 74 61 74 65 5b X##ka0 = state[
32a0: 32 30 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 61 20]; \. X##ka
32b0: 31 20 3d 20 73 74 61 74 65 5b 32 31 5d 3b 20 5c 1 = state[21]; \
32c0: 0a 20 20 20 20 58 23 23 6b 65 30 20 3d 20 73 74 . X##ke0 = st
32d0: 61 74 65 5b 32 32 5d 3b 20 5c 0a 20 20 20 20 58 ate[22]; \. X
32e0: 23 23 6b 65 31 20 3d 20 73 74 61 74 65 5b 32 33 ##ke1 = state[23
32f0: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 69 30 20 ]; \. X##ki0
3300: 3d 20 73 74 61 74 65 5b 32 34 5d 3b 20 5c 0a 20 = state[24]; \.
3310: 20 20 20 58 23 23 6b 69 31 20 3d 20 73 74 61 74 X##ki1 = stat
3320: 65 5b 32 35 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[25]; \. X##
3330: 6b 6f 30 20 3d 20 73 74 61 74 65 5b 32 36 5d 3b ko0 = state[26];
3340: 20 5c 0a 20 20 20 20 58 23 23 6b 6f 31 20 3d 20 \. X##ko1 =
3350: 73 74 61 74 65 5b 32 37 5d 3b 20 5c 0a 20 20 20 state[27]; \.
3360: 20 58 23 23 6b 75 30 20 3d 20 73 74 61 74 65 5b X##ku0 = state[
3370: 32 38 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6b 75 28]; \. X##ku
3380: 31 20 3d 20 73 74 61 74 65 5b 32 39 5d 3b 20 5c 1 = state[29]; \
3390: 0a 20 20 20 20 58 23 23 6d 61 30 20 3d 20 73 74 . X##ma0 = st
33a0: 61 74 65 5b 33 30 5d 3b 20 5c 0a 20 20 20 20 58 ate[30]; \. X
33b0: 23 23 6d 61 31 20 3d 20 73 74 61 74 65 5b 33 31 ##ma1 = state[31
33c0: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 65 30 20 ]; \. X##me0
33d0: 3d 20 73 74 61 74 65 5b 33 32 5d 3b 20 5c 0a 20 = state[32]; \.
33e0: 20 20 20 58 23 23 6d 65 31 20 3d 20 73 74 61 74 X##me1 = stat
33f0: 65 5b 33 33 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[33]; \. X##
3400: 6d 69 30 20 3d 20 73 74 61 74 65 5b 33 34 5d 3b mi0 = state[34];
3410: 20 5c 0a 20 20 20 20 58 23 23 6d 69 31 20 3d 20 \. X##mi1 =
3420: 73 74 61 74 65 5b 33 35 5d 3b 20 5c 0a 20 20 20 state[35]; \.
3430: 20 58 23 23 6d 6f 30 20 3d 20 73 74 61 74 65 5b X##mo0 = state[
3440: 33 36 5d 3b 20 5c 0a 20 20 20 20 58 23 23 6d 6f 36]; \. X##mo
3450: 31 20 3d 20 73 74 61 74 65 5b 33 37 5d 3b 20 5c 1 = state[37]; \
3460: 0a 20 20 20 20 58 23 23 6d 75 30 20 3d 20 73 74 . X##mu0 = st
3470: 61 74 65 5b 33 38 5d 3b 20 5c 0a 20 20 20 20 58 ate[38]; \. X
3480: 23 23 6d 75 31 20 3d 20 73 74 61 74 65 5b 33 39 ##mu1 = state[39
3490: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 61 30 20 ]; \. X##sa0
34a0: 3d 20 73 74 61 74 65 5b 34 30 5d 3b 20 5c 0a 20 = state[40]; \.
34b0: 20 20 20 58 23 23 73 61 31 20 3d 20 73 74 61 74 X##sa1 = stat
34c0: 65 5b 34 31 5d 3b 20 5c 0a 20 20 20 20 58 23 23 e[41]; \. X##
34d0: 73 65 30 20 3d 20 73 74 61 74 65 5b 34 32 5d 3b se0 = state[42];
34e0: 20 5c 0a 20 20 20 20 58 23 23 73 65 31 20 3d 20 \. X##se1 =
34f0: 73 74 61 74 65 5b 34 33 5d 3b 20 5c 0a 20 20 20 state[43]; \.
3500: 20 58 23 23 73 69 30 20 3d 20 73 74 61 74 65 5b X##si0 = state[
3510: 34 34 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 69 44]; \. X##si
3520: 31 20 3d 20 73 74 61 74 65 5b 34 35 5d 3b 20 5c 1 = state[45]; \
3530: 0a 20 20 20 20 58 23 23 73 6f 30 20 3d 20 73 74 . X##so0 = st
3540: 61 74 65 5b 34 36 5d 3b 20 5c 0a 20 20 20 20 58 ate[46]; \. X
3550: 23 23 73 6f 31 20 3d 20 73 74 61 74 65 5b 34 37 ##so1 = state[47
3560: 5d 3b 20 5c 0a 20 20 20 20 58 23 23 73 75 30 20 ]; \. X##su0
3570: 3d 20 73 74 61 74 65 5b 34 38 5d 3b 20 5c 0a 20 = state[48]; \.
3580: 20 20 20 58 23 23 73 75 31 20 3d 20 73 74 61 74 X##su1 = stat
3590: 65 5b 34 39 5d 3b 20 5c 0a 0a 23 64 65 66 69 6e e[49]; \..#defin
35a0: 65 20 63 6f 70 79 54 6f 53 74 61 74 65 28 73 74 e copyToState(st
35b0: 61 74 65 2c 20 58 29 20 5c 0a 20 20 20 20 73 74 ate, X) \. st
35c0: 61 74 65 5b 20 30 5d 20 3d 20 58 23 23 62 61 30 ate[ 0] = X##ba0
35d0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 31 ; \. state[ 1
35e0: 5d 20 3d 20 58 23 23 62 61 31 3b 20 5c 0a 20 20 ] = X##ba1; \.
35f0: 20 20 73 74 61 74 65 5b 20 32 5d 20 3d 20 58 23 state[ 2] = X#
3600: 23 62 65 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 #be0; \. stat
3610: 65 5b 20 33 5d 20 3d 20 58 23 23 62 65 31 3b 20 e[ 3] = X##be1;
3620: 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 34 5d 20 \. state[ 4]
3630: 3d 20 58 23 23 62 69 30 3b 20 5c 0a 20 20 20 20 = X##bi0; \.
3640: 73 74 61 74 65 5b 20 35 5d 20 3d 20 58 23 23 62 state[ 5] = X##b
3650: 69 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b i1; \. state[
3660: 20 36 5d 20 3d 20 58 23 23 62 6f 30 3b 20 5c 0a 6] = X##bo0; \.
3670: 20 20 20 20 73 74 61 74 65 5b 20 37 5d 20 3d 20 state[ 7] =
3680: 58 23 23 62 6f 31 3b 20 5c 0a 20 20 20 20 73 74 X##bo1; \. st
3690: 61 74 65 5b 20 38 5d 20 3d 20 58 23 23 62 75 30 ate[ 8] = X##bu0
36a0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 20 39 ; \. state[ 9
36b0: 5d 20 3d 20 58 23 23 62 75 31 3b 20 5c 0a 20 20 ] = X##bu1; \.
36c0: 20 20 73 74 61 74 65 5b 31 30 5d 20 3d 20 58 23 state[10] = X#
36d0: 23 67 61 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 #ga0; \. stat
36e0: 65 5b 31 31 5d 20 3d 20 58 23 23 67 61 31 3b 20 e[11] = X##ga1;
36f0: 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 32 5d 20 \. state[12]
3700: 3d 20 58 23 23 67 65 30 3b 20 5c 0a 20 20 20 20 = X##ge0; \.
3710: 73 74 61 74 65 5b 31 33 5d 20 3d 20 58 23 23 67 state[13] = X##g
3720: 65 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b e1; \. state[
3730: 31 34 5d 20 3d 20 58 23 23 67 69 30 3b 20 5c 0a 14] = X##gi0; \.
3740: 20 20 20 20 73 74 61 74 65 5b 31 35 5d 20 3d 20 state[15] =
3750: 58 23 23 67 69 31 3b 20 5c 0a 20 20 20 20 73 74 X##gi1; \. st
3760: 61 74 65 5b 31 36 5d 20 3d 20 58 23 23 67 6f 30 ate[16] = X##go0
3770: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 31 37 ; \. state[17
3780: 5d 20 3d 20 58 23 23 67 6f 31 3b 20 5c 0a 20 20 ] = X##go1; \.
3790: 20 20 73 74 61 74 65 5b 31 38 5d 20 3d 20 58 23 state[18] = X#
37a0: 23 67 75 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 #gu0; \. stat
37b0: 65 5b 31 39 5d 20 3d 20 58 23 23 67 75 31 3b 20 e[19] = X##gu1;
37c0: 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 30 5d 20 \. state[20]
37d0: 3d 20 58 23 23 6b 61 30 3b 20 5c 0a 20 20 20 20 = X##ka0; \.
37e0: 73 74 61 74 65 5b 32 31 5d 20 3d 20 58 23 23 6b state[21] = X##k
37f0: 61 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b a1; \. state[
3800: 32 32 5d 20 3d 20 58 23 23 6b 65 30 3b 20 5c 0a 22] = X##ke0; \.
3810: 20 20 20 20 73 74 61 74 65 5b 32 33 5d 20 3d 20 state[23] =
3820: 58 23 23 6b 65 31 3b 20 5c 0a 20 20 20 20 73 74 X##ke1; \. st
3830: 61 74 65 5b 32 34 5d 20 3d 20 58 23 23 6b 69 30 ate[24] = X##ki0
3840: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 35 ; \. state[25
3850: 5d 20 3d 20 58 23 23 6b 69 31 3b 20 5c 0a 20 20 ] = X##ki1; \.
3860: 20 20 73 74 61 74 65 5b 32 36 5d 20 3d 20 58 23 state[26] = X#
3870: 23 6b 6f 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 #ko0; \. stat
3880: 65 5b 32 37 5d 20 3d 20 58 23 23 6b 6f 31 3b 20 e[27] = X##ko1;
3890: 5c 0a 20 20 20 20 73 74 61 74 65 5b 32 38 5d 20 \. state[28]
38a0: 3d 20 58 23 23 6b 75 30 3b 20 5c 0a 20 20 20 20 = X##ku0; \.
38b0: 73 74 61 74 65 5b 32 39 5d 20 3d 20 58 23 23 6b state[29] = X##k
38c0: 75 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b u1; \. state[
38d0: 33 30 5d 20 3d 20 58 23 23 6d 61 30 3b 20 5c 0a 30] = X##ma0; \.
38e0: 20 20 20 20 73 74 61 74 65 5b 33 31 5d 20 3d 20 state[31] =
38f0: 58 23 23 6d 61 31 3b 20 5c 0a 20 20 20 20 73 74 X##ma1; \. st
3900: 61 74 65 5b 33 32 5d 20 3d 20 58 23 23 6d 65 30 ate[32] = X##me0
3910: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 33 33 ; \. state[33
3920: 5d 20 3d 20 58 23 23 6d 65 31 3b 20 5c 0a 20 20 ] = X##me1; \.
3930: 20 20 73 74 61 74 65 5b 33 34 5d 20 3d 20 58 23 state[34] = X#
3940: 23 6d 69 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 #mi0; \. stat
3950: 65 5b 33 35 5d 20 3d 20 58 23 23 6d 69 31 3b 20 e[35] = X##mi1;
3960: 5c 0a 20 20 20 20 73 74 61 74 65 5b 33 36 5d 20 \. state[36]
3970: 3d 20 58 23 23 6d 6f 30 3b 20 5c 0a 20 20 20 20 = X##mo0; \.
3980: 73 74 61 74 65 5b 33 37 5d 20 3d 20 58 23 23 6d state[37] = X##m
3990: 6f 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b o1; \. state[
39a0: 33 38 5d 20 3d 20 58 23 23 6d 75 30 3b 20 5c 0a 38] = X##mu0; \.
39b0: 20 20 20 20 73 74 61 74 65 5b 33 39 5d 20 3d 20 state[39] =
39c0: 58 23 23 6d 75 31 3b 20 5c 0a 20 20 20 20 73 74 X##mu1; \. st
39d0: 61 74 65 5b 34 30 5d 20 3d 20 58 23 23 73 61 30 ate[40] = X##sa0
39e0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 31 ; \. state[41
39f0: 5d 20 3d 20 58 23 23 73 61 31 3b 20 5c 0a 20 20 ] = X##sa1; \.
3a00: 20 20 73 74 61 74 65 5b 34 32 5d 20 3d 20 58 23 state[42] = X#
3a10: 23 73 65 30 3b 20 5c 0a 20 20 20 20 73 74 61 74 #se0; \. stat
3a20: 65 5b 34 33 5d 20 3d 20 58 23 23 73 65 31 3b 20 e[43] = X##se1;
3a30: 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 34 5d 20 \. state[44]
3a40: 3d 20 58 23 23 73 69 30 3b 20 5c 0a 20 20 20 20 = X##si0; \.
3a50: 73 74 61 74 65 5b 34 35 5d 20 3d 20 58 23 23 73 state[45] = X##s
3a60: 69 31 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b i1; \. state[
3a70: 34 36 5d 20 3d 20 58 23 23 73 6f 30 3b 20 5c 0a 46] = X##so0; \.
3a80: 20 20 20 20 73 74 61 74 65 5b 34 37 5d 20 3d 20 state[47] =
3a90: 58 23 23 73 6f 31 3b 20 5c 0a 20 20 20 20 73 74 X##so1; \. st
3aa0: 61 74 65 5b 34 38 5d 20 3d 20 58 23 23 73 75 30 ate[48] = X##su0
3ab0: 3b 20 5c 0a 20 20 20 20 73 74 61 74 65 5b 34 39 ; \. state[49
3ac0: 5d 20 3d 20 58 23 23 73 75 31 3b 20 5c 0a 0a ] = X##su1; \..