Hex Artifact Content
Not logged in

Artifact 979ad63ac815f80c8439f8019a92f667693dcc59:


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; \..