...

Text file src/golang.org/x/crypto/sha3/keccakf_amd64.s

Documentation: golang.org/x/crypto/sha3

     1// Code generated by command: go run keccakf_amd64_asm.go -out ../keccakf_amd64.s -pkg sha3. DO NOT EDIT.
     2
     3//go:build amd64 && !purego && gc
     4
     5// func keccakF1600(a *[25]uint64)
     6TEXT ·keccakF1600(SB), $200-8
     7	MOVQ a+0(FP), DI
     8
     9	// Convert the user state into an internal state
    10	NOTQ 8(DI)
    11	NOTQ 16(DI)
    12	NOTQ 64(DI)
    13	NOTQ 96(DI)
    14	NOTQ 136(DI)
    15	NOTQ 160(DI)
    16
    17	// Execute the KeccakF permutation
    18	MOVQ (DI), SI
    19	MOVQ 8(DI), BP
    20	MOVQ 32(DI), R15
    21	XORQ 40(DI), SI
    22	XORQ 48(DI), BP
    23	XORQ 72(DI), R15
    24	XORQ 80(DI), SI
    25	XORQ 88(DI), BP
    26	XORQ 112(DI), R15
    27	XORQ 120(DI), SI
    28	XORQ 128(DI), BP
    29	XORQ 152(DI), R15
    30	XORQ 160(DI), SI
    31	XORQ 168(DI), BP
    32	MOVQ 176(DI), DX
    33	MOVQ 184(DI), R8
    34	XORQ 192(DI), R15
    35
    36	// Prepare round
    37	MOVQ BP, BX
    38	ROLQ $0x01, BX
    39	MOVQ 16(DI), R12
    40	XORQ 56(DI), DX
    41	XORQ R15, BX
    42	XORQ 96(DI), R12
    43	XORQ 136(DI), DX
    44	XORQ DX, R12
    45	MOVQ R12, CX
    46	ROLQ $0x01, CX
    47	MOVQ 24(DI), R13
    48	XORQ 64(DI), R8
    49	XORQ SI, CX
    50	XORQ 104(DI), R13
    51	XORQ 144(DI), R8
    52	XORQ R8, R13
    53	MOVQ R13, DX
    54	ROLQ $0x01, DX
    55	MOVQ R15, R8
    56	XORQ BP, DX
    57	ROLQ $0x01, R8
    58	MOVQ SI, R9
    59	XORQ R12, R8
    60	ROLQ $0x01, R9
    61
    62	// Result b
    63	MOVQ (DI), R10
    64	MOVQ 48(DI), R11
    65	XORQ R13, R9
    66	MOVQ 96(DI), R12
    67	MOVQ 144(DI), R13
    68	MOVQ 192(DI), R14
    69	XORQ CX, R11
    70	ROLQ $0x2c, R11
    71	XORQ DX, R12
    72	XORQ BX, R10
    73	ROLQ $0x2b, R12
    74	MOVQ R11, SI
    75	MOVQ $0x0000000000000001, AX
    76	ORQ  R12, SI
    77	XORQ R10, AX
    78	XORQ AX, SI
    79	MOVQ SI, (SP)
    80	XORQ R9, R14
    81	ROLQ $0x0e, R14
    82	MOVQ R10, R15
    83	ANDQ R11, R15
    84	XORQ R14, R15
    85	MOVQ R15, 32(SP)
    86	XORQ R8, R13
    87	ROLQ $0x15, R13
    88	MOVQ R13, AX
    89	ANDQ R14, AX
    90	XORQ R12, AX
    91	MOVQ AX, 16(SP)
    92	NOTQ R12
    93	ORQ  R10, R14
    94	ORQ  R13, R12
    95	XORQ R13, R14
    96	XORQ R11, R12
    97	MOVQ R14, 24(SP)
    98	MOVQ R12, 8(SP)
    99	MOVQ R12, BP
   100
   101	// Result g
   102	MOVQ 72(DI), R11
   103	XORQ R9, R11
   104	MOVQ 80(DI), R12
   105	ROLQ $0x14, R11
   106	XORQ BX, R12
   107	ROLQ $0x03, R12
   108	MOVQ 24(DI), R10
   109	MOVQ R11, AX
   110	ORQ  R12, AX
   111	XORQ R8, R10
   112	MOVQ 128(DI), R13
   113	MOVQ 176(DI), R14
   114	ROLQ $0x1c, R10
   115	XORQ R10, AX
   116	MOVQ AX, 40(SP)
   117	XORQ AX, SI
   118	XORQ CX, R13
   119	ROLQ $0x2d, R13
   120	MOVQ R12, AX
   121	ANDQ R13, AX
   122	XORQ R11, AX
   123	MOVQ AX, 48(SP)
   124	XORQ AX, BP
   125	XORQ DX, R14
   126	ROLQ $0x3d, R14
   127	MOVQ R14, AX
   128	ORQ  R10, AX
   129	XORQ R13, AX
   130	MOVQ AX, 64(SP)
   131	ANDQ R11, R10
   132	XORQ R14, R10
   133	MOVQ R10, 72(SP)
   134	NOTQ R14
   135	XORQ R10, R15
   136	ORQ  R14, R13
   137	XORQ R12, R13
   138	MOVQ R13, 56(SP)
   139
   140	// Result k
   141	MOVQ 8(DI), R10
   142	MOVQ 56(DI), R11
   143	MOVQ 104(DI), R12
   144	MOVQ 152(DI), R13
   145	MOVQ 160(DI), R14
   146	XORQ DX, R11
   147	ROLQ $0x06, R11
   148	XORQ R8, R12
   149	ROLQ $0x19, R12
   150	MOVQ R11, AX
   151	ORQ  R12, AX
   152	XORQ CX, R10
   153	ROLQ $0x01, R10
   154	XORQ R10, AX
   155	MOVQ AX, 80(SP)
   156	XORQ AX, SI
   157	XORQ R9, R13
   158	ROLQ $0x08, R13
   159	MOVQ R12, AX
   160	ANDQ R13, AX
   161	XORQ R11, AX
   162	MOVQ AX, 88(SP)
   163	XORQ AX, BP
   164	XORQ BX, R14
   165	ROLQ $0x12, R14
   166	NOTQ R13
   167	MOVQ R13, AX
   168	ANDQ R14, AX
   169	XORQ R12, AX
   170	MOVQ AX, 96(SP)
   171	MOVQ R14, AX
   172	ORQ  R10, AX
   173	XORQ R13, AX
   174	MOVQ AX, 104(SP)
   175	ANDQ R11, R10
   176	XORQ R14, R10
   177	MOVQ R10, 112(SP)
   178	XORQ R10, R15
   179
   180	// Result m
   181	MOVQ 40(DI), R11
   182	XORQ BX, R11
   183	MOVQ 88(DI), R12
   184	ROLQ $0x24, R11
   185	XORQ CX, R12
   186	MOVQ 32(DI), R10
   187	ROLQ $0x0a, R12
   188	MOVQ R11, AX
   189	MOVQ 136(DI), R13
   190	ANDQ R12, AX
   191	XORQ R9, R10
   192	MOVQ 184(DI), R14
   193	ROLQ $0x1b, R10
   194	XORQ R10, AX
   195	MOVQ AX, 120(SP)
   196	XORQ AX, SI
   197	XORQ DX, R13
   198	ROLQ $0x0f, R13
   199	MOVQ R12, AX
   200	ORQ  R13, AX
   201	XORQ R11, AX
   202	MOVQ AX, 128(SP)
   203	XORQ AX, BP
   204	XORQ R8, R14
   205	ROLQ $0x38, R14
   206	NOTQ R13
   207	MOVQ R13, AX
   208	ORQ  R14, AX
   209	XORQ R12, AX
   210	MOVQ AX, 136(SP)
   211	ORQ  R10, R11
   212	XORQ R14, R11
   213	MOVQ R11, 152(SP)
   214	ANDQ R10, R14
   215	XORQ R13, R14
   216	MOVQ R14, 144(SP)
   217	XORQ R11, R15
   218
   219	// Result s
   220	MOVQ 16(DI), R10
   221	MOVQ 64(DI), R11
   222	MOVQ 112(DI), R12
   223	XORQ DX, R10
   224	MOVQ 120(DI), R13
   225	ROLQ $0x3e, R10
   226	XORQ R8, R11
   227	MOVQ 168(DI), R14
   228	ROLQ $0x37, R11
   229	XORQ R9, R12
   230	MOVQ R10, R9
   231	XORQ CX, R14
   232	ROLQ $0x02, R14
   233	ANDQ R11, R9
   234	XORQ R14, R9
   235	MOVQ R9, 192(SP)
   236	ROLQ $0x27, R12
   237	XORQ R9, R15
   238	NOTQ R11
   239	XORQ BX, R13
   240	MOVQ R11, BX
   241	ANDQ R12, BX
   242	XORQ R10, BX
   243	MOVQ BX, 160(SP)
   244	XORQ BX, SI
   245	ROLQ $0x29, R13
   246	MOVQ R12, CX
   247	ORQ  R13, CX
   248	XORQ R11, CX
   249	MOVQ CX, 168(SP)
   250	XORQ CX, BP
   251	MOVQ R13, DX
   252	MOVQ R14, R8
   253	ANDQ R14, DX
   254	ORQ  R10, R8
   255	XORQ R12, DX
   256	XORQ R13, R8
   257	MOVQ DX, 176(SP)
   258	MOVQ R8, 184(SP)
   259
   260	// Prepare round
   261	MOVQ BP, BX
   262	ROLQ $0x01, BX
   263	MOVQ 16(SP), R12
   264	XORQ 56(SP), DX
   265	XORQ R15, BX
   266	XORQ 96(SP), R12
   267	XORQ 136(SP), DX
   268	XORQ DX, R12
   269	MOVQ R12, CX
   270	ROLQ $0x01, CX
   271	MOVQ 24(SP), R13
   272	XORQ 64(SP), R8
   273	XORQ SI, CX
   274	XORQ 104(SP), R13
   275	XORQ 144(SP), R8
   276	XORQ R8, R13
   277	MOVQ R13, DX
   278	ROLQ $0x01, DX
   279	MOVQ R15, R8
   280	XORQ BP, DX
   281	ROLQ $0x01, R8
   282	MOVQ SI, R9
   283	XORQ R12, R8
   284	ROLQ $0x01, R9
   285
   286	// Result b
   287	MOVQ (SP), R10
   288	MOVQ 48(SP), R11
   289	XORQ R13, R9
   290	MOVQ 96(SP), R12
   291	MOVQ 144(SP), R13
   292	MOVQ 192(SP), R14
   293	XORQ CX, R11
   294	ROLQ $0x2c, R11
   295	XORQ DX, R12
   296	XORQ BX, R10
   297	ROLQ $0x2b, R12
   298	MOVQ R11, SI
   299	MOVQ $0x0000000000008082, AX
   300	ORQ  R12, SI
   301	XORQ R10, AX
   302	XORQ AX, SI
   303	MOVQ SI, (DI)
   304	XORQ R9, R14
   305	ROLQ $0x0e, R14
   306	MOVQ R10, R15
   307	ANDQ R11, R15
   308	XORQ R14, R15
   309	MOVQ R15, 32(DI)
   310	XORQ R8, R13
   311	ROLQ $0x15, R13
   312	MOVQ R13, AX
   313	ANDQ R14, AX
   314	XORQ R12, AX
   315	MOVQ AX, 16(DI)
   316	NOTQ R12
   317	ORQ  R10, R14
   318	ORQ  R13, R12
   319	XORQ R13, R14
   320	XORQ R11, R12
   321	MOVQ R14, 24(DI)
   322	MOVQ R12, 8(DI)
   323	MOVQ R12, BP
   324
   325	// Result g
   326	MOVQ 72(SP), R11
   327	XORQ R9, R11
   328	MOVQ 80(SP), R12
   329	ROLQ $0x14, R11
   330	XORQ BX, R12
   331	ROLQ $0x03, R12
   332	MOVQ 24(SP), R10
   333	MOVQ R11, AX
   334	ORQ  R12, AX
   335	XORQ R8, R10
   336	MOVQ 128(SP), R13
   337	MOVQ 176(SP), R14
   338	ROLQ $0x1c, R10
   339	XORQ R10, AX
   340	MOVQ AX, 40(DI)
   341	XORQ AX, SI
   342	XORQ CX, R13
   343	ROLQ $0x2d, R13
   344	MOVQ R12, AX
   345	ANDQ R13, AX
   346	XORQ R11, AX
   347	MOVQ AX, 48(DI)
   348	XORQ AX, BP
   349	XORQ DX, R14
   350	ROLQ $0x3d, R14
   351	MOVQ R14, AX
   352	ORQ  R10, AX
   353	XORQ R13, AX
   354	MOVQ AX, 64(DI)
   355	ANDQ R11, R10
   356	XORQ R14, R10
   357	MOVQ R10, 72(DI)
   358	NOTQ R14
   359	XORQ R10, R15
   360	ORQ  R14, R13
   361	XORQ R12, R13
   362	MOVQ R13, 56(DI)
   363
   364	// Result k
   365	MOVQ 8(SP), R10
   366	MOVQ 56(SP), R11
   367	MOVQ 104(SP), R12
   368	MOVQ 152(SP), R13
   369	MOVQ 160(SP), R14
   370	XORQ DX, R11
   371	ROLQ $0x06, R11
   372	XORQ R8, R12
   373	ROLQ $0x19, R12
   374	MOVQ R11, AX
   375	ORQ  R12, AX
   376	XORQ CX, R10
   377	ROLQ $0x01, R10
   378	XORQ R10, AX
   379	MOVQ AX, 80(DI)
   380	XORQ AX, SI
   381	XORQ R9, R13
   382	ROLQ $0x08, R13
   383	MOVQ R12, AX
   384	ANDQ R13, AX
   385	XORQ R11, AX
   386	MOVQ AX, 88(DI)
   387	XORQ AX, BP
   388	XORQ BX, R14
   389	ROLQ $0x12, R14
   390	NOTQ R13
   391	MOVQ R13, AX
   392	ANDQ R14, AX
   393	XORQ R12, AX
   394	MOVQ AX, 96(DI)
   395	MOVQ R14, AX
   396	ORQ  R10, AX
   397	XORQ R13, AX
   398	MOVQ AX, 104(DI)
   399	ANDQ R11, R10
   400	XORQ R14, R10
   401	MOVQ R10, 112(DI)
   402	XORQ R10, R15
   403
   404	// Result m
   405	MOVQ 40(SP), R11
   406	XORQ BX, R11
   407	MOVQ 88(SP), R12
   408	ROLQ $0x24, R11
   409	XORQ CX, R12
   410	MOVQ 32(SP), R10
   411	ROLQ $0x0a, R12
   412	MOVQ R11, AX
   413	MOVQ 136(SP), R13
   414	ANDQ R12, AX
   415	XORQ R9, R10
   416	MOVQ 184(SP), R14
   417	ROLQ $0x1b, R10
   418	XORQ R10, AX
   419	MOVQ AX, 120(DI)
   420	XORQ AX, SI
   421	XORQ DX, R13
   422	ROLQ $0x0f, R13
   423	MOVQ R12, AX
   424	ORQ  R13, AX
   425	XORQ R11, AX
   426	MOVQ AX, 128(DI)
   427	XORQ AX, BP
   428	XORQ R8, R14
   429	ROLQ $0x38, R14
   430	NOTQ R13
   431	MOVQ R13, AX
   432	ORQ  R14, AX
   433	XORQ R12, AX
   434	MOVQ AX, 136(DI)
   435	ORQ  R10, R11
   436	XORQ R14, R11
   437	MOVQ R11, 152(DI)
   438	ANDQ R10, R14
   439	XORQ R13, R14
   440	MOVQ R14, 144(DI)
   441	XORQ R11, R15
   442
   443	// Result s
   444	MOVQ 16(SP), R10
   445	MOVQ 64(SP), R11
   446	MOVQ 112(SP), R12
   447	XORQ DX, R10
   448	MOVQ 120(SP), R13
   449	ROLQ $0x3e, R10
   450	XORQ R8, R11
   451	MOVQ 168(SP), R14
   452	ROLQ $0x37, R11
   453	XORQ R9, R12
   454	MOVQ R10, R9
   455	XORQ CX, R14
   456	ROLQ $0x02, R14
   457	ANDQ R11, R9
   458	XORQ R14, R9
   459	MOVQ R9, 192(DI)
   460	ROLQ $0x27, R12
   461	XORQ R9, R15
   462	NOTQ R11
   463	XORQ BX, R13
   464	MOVQ R11, BX
   465	ANDQ R12, BX
   466	XORQ R10, BX
   467	MOVQ BX, 160(DI)
   468	XORQ BX, SI
   469	ROLQ $0x29, R13
   470	MOVQ R12, CX
   471	ORQ  R13, CX
   472	XORQ R11, CX
   473	MOVQ CX, 168(DI)
   474	XORQ CX, BP
   475	MOVQ R13, DX
   476	MOVQ R14, R8
   477	ANDQ R14, DX
   478	ORQ  R10, R8
   479	XORQ R12, DX
   480	XORQ R13, R8
   481	MOVQ DX, 176(DI)
   482	MOVQ R8, 184(DI)
   483
   484	// Prepare round
   485	MOVQ BP, BX
   486	ROLQ $0x01, BX
   487	MOVQ 16(DI), R12
   488	XORQ 56(DI), DX
   489	XORQ R15, BX
   490	XORQ 96(DI), R12
   491	XORQ 136(DI), DX
   492	XORQ DX, R12
   493	MOVQ R12, CX
   494	ROLQ $0x01, CX
   495	MOVQ 24(DI), R13
   496	XORQ 64(DI), R8
   497	XORQ SI, CX
   498	XORQ 104(DI), R13
   499	XORQ 144(DI), R8
   500	XORQ R8, R13
   501	MOVQ R13, DX
   502	ROLQ $0x01, DX
   503	MOVQ R15, R8
   504	XORQ BP, DX
   505	ROLQ $0x01, R8
   506	MOVQ SI, R9
   507	XORQ R12, R8
   508	ROLQ $0x01, R9
   509
   510	// Result b
   511	MOVQ (DI), R10
   512	MOVQ 48(DI), R11
   513	XORQ R13, R9
   514	MOVQ 96(DI), R12
   515	MOVQ 144(DI), R13
   516	MOVQ 192(DI), R14
   517	XORQ CX, R11
   518	ROLQ $0x2c, R11
   519	XORQ DX, R12
   520	XORQ BX, R10
   521	ROLQ $0x2b, R12
   522	MOVQ R11, SI
   523	MOVQ $0x800000000000808a, AX
   524	ORQ  R12, SI
   525	XORQ R10, AX
   526	XORQ AX, SI
   527	MOVQ SI, (SP)
   528	XORQ R9, R14
   529	ROLQ $0x0e, R14
   530	MOVQ R10, R15
   531	ANDQ R11, R15
   532	XORQ R14, R15
   533	MOVQ R15, 32(SP)
   534	XORQ R8, R13
   535	ROLQ $0x15, R13
   536	MOVQ R13, AX
   537	ANDQ R14, AX
   538	XORQ R12, AX
   539	MOVQ AX, 16(SP)
   540	NOTQ R12
   541	ORQ  R10, R14
   542	ORQ  R13, R12
   543	XORQ R13, R14
   544	XORQ R11, R12
   545	MOVQ R14, 24(SP)
   546	MOVQ R12, 8(SP)
   547	MOVQ R12, BP
   548
   549	// Result g
   550	MOVQ 72(DI), R11
   551	XORQ R9, R11
   552	MOVQ 80(DI), R12
   553	ROLQ $0x14, R11
   554	XORQ BX, R12
   555	ROLQ $0x03, R12
   556	MOVQ 24(DI), R10
   557	MOVQ R11, AX
   558	ORQ  R12, AX
   559	XORQ R8, R10
   560	MOVQ 128(DI), R13
   561	MOVQ 176(DI), R14
   562	ROLQ $0x1c, R10
   563	XORQ R10, AX
   564	MOVQ AX, 40(SP)
   565	XORQ AX, SI
   566	XORQ CX, R13
   567	ROLQ $0x2d, R13
   568	MOVQ R12, AX
   569	ANDQ R13, AX
   570	XORQ R11, AX
   571	MOVQ AX, 48(SP)
   572	XORQ AX, BP
   573	XORQ DX, R14
   574	ROLQ $0x3d, R14
   575	MOVQ R14, AX
   576	ORQ  R10, AX
   577	XORQ R13, AX
   578	MOVQ AX, 64(SP)
   579	ANDQ R11, R10
   580	XORQ R14, R10
   581	MOVQ R10, 72(SP)
   582	NOTQ R14
   583	XORQ R10, R15
   584	ORQ  R14, R13
   585	XORQ R12, R13
   586	MOVQ R13, 56(SP)
   587
   588	// Result k
   589	MOVQ 8(DI), R10
   590	MOVQ 56(DI), R11
   591	MOVQ 104(DI), R12
   592	MOVQ 152(DI), R13
   593	MOVQ 160(DI), R14
   594	XORQ DX, R11
   595	ROLQ $0x06, R11
   596	XORQ R8, R12
   597	ROLQ $0x19, R12
   598	MOVQ R11, AX
   599	ORQ  R12, AX
   600	XORQ CX, R10
   601	ROLQ $0x01, R10
   602	XORQ R10, AX
   603	MOVQ AX, 80(SP)
   604	XORQ AX, SI
   605	XORQ R9, R13
   606	ROLQ $0x08, R13
   607	MOVQ R12, AX
   608	ANDQ R13, AX
   609	XORQ R11, AX
   610	MOVQ AX, 88(SP)
   611	XORQ AX, BP
   612	XORQ BX, R14
   613	ROLQ $0x12, R14
   614	NOTQ R13
   615	MOVQ R13, AX
   616	ANDQ R14, AX
   617	XORQ R12, AX
   618	MOVQ AX, 96(SP)
   619	MOVQ R14, AX
   620	ORQ  R10, AX
   621	XORQ R13, AX
   622	MOVQ AX, 104(SP)
   623	ANDQ R11, R10
   624	XORQ R14, R10
   625	MOVQ R10, 112(SP)
   626	XORQ R10, R15
   627
   628	// Result m
   629	MOVQ 40(DI), R11
   630	XORQ BX, R11
   631	MOVQ 88(DI), R12
   632	ROLQ $0x24, R11
   633	XORQ CX, R12
   634	MOVQ 32(DI), R10
   635	ROLQ $0x0a, R12
   636	MOVQ R11, AX
   637	MOVQ 136(DI), R13
   638	ANDQ R12, AX
   639	XORQ R9, R10
   640	MOVQ 184(DI), R14
   641	ROLQ $0x1b, R10
   642	XORQ R10, AX
   643	MOVQ AX, 120(SP)
   644	XORQ AX, SI
   645	XORQ DX, R13
   646	ROLQ $0x0f, R13
   647	MOVQ R12, AX
   648	ORQ  R13, AX
   649	XORQ R11, AX
   650	MOVQ AX, 128(SP)
   651	XORQ AX, BP
   652	XORQ R8, R14
   653	ROLQ $0x38, R14
   654	NOTQ R13
   655	MOVQ R13, AX
   656	ORQ  R14, AX
   657	XORQ R12, AX
   658	MOVQ AX, 136(SP)
   659	ORQ  R10, R11
   660	XORQ R14, R11
   661	MOVQ R11, 152(SP)
   662	ANDQ R10, R14
   663	XORQ R13, R14
   664	MOVQ R14, 144(SP)
   665	XORQ R11, R15
   666
   667	// Result s
   668	MOVQ 16(DI), R10
   669	MOVQ 64(DI), R11
   670	MOVQ 112(DI), R12
   671	XORQ DX, R10
   672	MOVQ 120(DI), R13
   673	ROLQ $0x3e, R10
   674	XORQ R8, R11
   675	MOVQ 168(DI), R14
   676	ROLQ $0x37, R11
   677	XORQ R9, R12
   678	MOVQ R10, R9
   679	XORQ CX, R14
   680	ROLQ $0x02, R14
   681	ANDQ R11, R9
   682	XORQ R14, R9
   683	MOVQ R9, 192(SP)
   684	ROLQ $0x27, R12
   685	XORQ R9, R15
   686	NOTQ R11
   687	XORQ BX, R13
   688	MOVQ R11, BX
   689	ANDQ R12, BX
   690	XORQ R10, BX
   691	MOVQ BX, 160(SP)
   692	XORQ BX, SI
   693	ROLQ $0x29, R13
   694	MOVQ R12, CX
   695	ORQ  R13, CX
   696	XORQ R11, CX
   697	MOVQ CX, 168(SP)
   698	XORQ CX, BP
   699	MOVQ R13, DX
   700	MOVQ R14, R8
   701	ANDQ R14, DX
   702	ORQ  R10, R8
   703	XORQ R12, DX
   704	XORQ R13, R8
   705	MOVQ DX, 176(SP)
   706	MOVQ R8, 184(SP)
   707
   708	// Prepare round
   709	MOVQ BP, BX
   710	ROLQ $0x01, BX
   711	MOVQ 16(SP), R12
   712	XORQ 56(SP), DX
   713	XORQ R15, BX
   714	XORQ 96(SP), R12
   715	XORQ 136(SP), DX
   716	XORQ DX, R12
   717	MOVQ R12, CX
   718	ROLQ $0x01, CX
   719	MOVQ 24(SP), R13
   720	XORQ 64(SP), R8
   721	XORQ SI, CX
   722	XORQ 104(SP), R13
   723	XORQ 144(SP), R8
   724	XORQ R8, R13
   725	MOVQ R13, DX
   726	ROLQ $0x01, DX
   727	MOVQ R15, R8
   728	XORQ BP, DX
   729	ROLQ $0x01, R8
   730	MOVQ SI, R9
   731	XORQ R12, R8
   732	ROLQ $0x01, R9
   733
   734	// Result b
   735	MOVQ (SP), R10
   736	MOVQ 48(SP), R11
   737	XORQ R13, R9
   738	MOVQ 96(SP), R12
   739	MOVQ 144(SP), R13
   740	MOVQ 192(SP), R14
   741	XORQ CX, R11
   742	ROLQ $0x2c, R11
   743	XORQ DX, R12
   744	XORQ BX, R10
   745	ROLQ $0x2b, R12
   746	MOVQ R11, SI
   747	MOVQ $0x8000000080008000, AX
   748	ORQ  R12, SI
   749	XORQ R10, AX
   750	XORQ AX, SI
   751	MOVQ SI, (DI)
   752	XORQ R9, R14
   753	ROLQ $0x0e, R14
   754	MOVQ R10, R15
   755	ANDQ R11, R15
   756	XORQ R14, R15
   757	MOVQ R15, 32(DI)
   758	XORQ R8, R13
   759	ROLQ $0x15, R13
   760	MOVQ R13, AX
   761	ANDQ R14, AX
   762	XORQ R12, AX
   763	MOVQ AX, 16(DI)
   764	NOTQ R12
   765	ORQ  R10, R14
   766	ORQ  R13, R12
   767	XORQ R13, R14
   768	XORQ R11, R12
   769	MOVQ R14, 24(DI)
   770	MOVQ R12, 8(DI)
   771	MOVQ R12, BP
   772
   773	// Result g
   774	MOVQ 72(SP), R11
   775	XORQ R9, R11
   776	MOVQ 80(SP), R12
   777	ROLQ $0x14, R11
   778	XORQ BX, R12
   779	ROLQ $0x03, R12
   780	MOVQ 24(SP), R10
   781	MOVQ R11, AX
   782	ORQ  R12, AX
   783	XORQ R8, R10
   784	MOVQ 128(SP), R13
   785	MOVQ 176(SP), R14
   786	ROLQ $0x1c, R10
   787	XORQ R10, AX
   788	MOVQ AX, 40(DI)
   789	XORQ AX, SI
   790	XORQ CX, R13
   791	ROLQ $0x2d, R13
   792	MOVQ R12, AX
   793	ANDQ R13, AX
   794	XORQ R11, AX
   795	MOVQ AX, 48(DI)
   796	XORQ AX, BP
   797	XORQ DX, R14
   798	ROLQ $0x3d, R14
   799	MOVQ R14, AX
   800	ORQ  R10, AX
   801	XORQ R13, AX
   802	MOVQ AX, 64(DI)
   803	ANDQ R11, R10
   804	XORQ R14, R10
   805	MOVQ R10, 72(DI)
   806	NOTQ R14
   807	XORQ R10, R15
   808	ORQ  R14, R13
   809	XORQ R12, R13
   810	MOVQ R13, 56(DI)
   811
   812	// Result k
   813	MOVQ 8(SP), R10
   814	MOVQ 56(SP), R11
   815	MOVQ 104(SP), R12
   816	MOVQ 152(SP), R13
   817	MOVQ 160(SP), R14
   818	XORQ DX, R11
   819	ROLQ $0x06, R11
   820	XORQ R8, R12
   821	ROLQ $0x19, R12
   822	MOVQ R11, AX
   823	ORQ  R12, AX
   824	XORQ CX, R10
   825	ROLQ $0x01, R10
   826	XORQ R10, AX
   827	MOVQ AX, 80(DI)
   828	XORQ AX, SI
   829	XORQ R9, R13
   830	ROLQ $0x08, R13
   831	MOVQ R12, AX
   832	ANDQ R13, AX
   833	XORQ R11, AX
   834	MOVQ AX, 88(DI)
   835	XORQ AX, BP
   836	XORQ BX, R14
   837	ROLQ $0x12, R14
   838	NOTQ R13
   839	MOVQ R13, AX
   840	ANDQ R14, AX
   841	XORQ R12, AX
   842	MOVQ AX, 96(DI)
   843	MOVQ R14, AX
   844	ORQ  R10, AX
   845	XORQ R13, AX
   846	MOVQ AX, 104(DI)
   847	ANDQ R11, R10
   848	XORQ R14, R10
   849	MOVQ R10, 112(DI)
   850	XORQ R10, R15
   851
   852	// Result m
   853	MOVQ 40(SP), R11
   854	XORQ BX, R11
   855	MOVQ 88(SP), R12
   856	ROLQ $0x24, R11
   857	XORQ CX, R12
   858	MOVQ 32(SP), R10
   859	ROLQ $0x0a, R12
   860	MOVQ R11, AX
   861	MOVQ 136(SP), R13
   862	ANDQ R12, AX
   863	XORQ R9, R10
   864	MOVQ 184(SP), R14
   865	ROLQ $0x1b, R10
   866	XORQ R10, AX
   867	MOVQ AX, 120(DI)
   868	XORQ AX, SI
   869	XORQ DX, R13
   870	ROLQ $0x0f, R13
   871	MOVQ R12, AX
   872	ORQ  R13, AX
   873	XORQ R11, AX
   874	MOVQ AX, 128(DI)
   875	XORQ AX, BP
   876	XORQ R8, R14
   877	ROLQ $0x38, R14
   878	NOTQ R13
   879	MOVQ R13, AX
   880	ORQ  R14, AX
   881	XORQ R12, AX
   882	MOVQ AX, 136(DI)
   883	ORQ  R10, R11
   884	XORQ R14, R11
   885	MOVQ R11, 152(DI)
   886	ANDQ R10, R14
   887	XORQ R13, R14
   888	MOVQ R14, 144(DI)
   889	XORQ R11, R15
   890
   891	// Result s
   892	MOVQ 16(SP), R10
   893	MOVQ 64(SP), R11
   894	MOVQ 112(SP), R12
   895	XORQ DX, R10
   896	MOVQ 120(SP), R13
   897	ROLQ $0x3e, R10
   898	XORQ R8, R11
   899	MOVQ 168(SP), R14
   900	ROLQ $0x37, R11
   901	XORQ R9, R12
   902	MOVQ R10, R9
   903	XORQ CX, R14
   904	ROLQ $0x02, R14
   905	ANDQ R11, R9
   906	XORQ R14, R9
   907	MOVQ R9, 192(DI)
   908	ROLQ $0x27, R12
   909	XORQ R9, R15
   910	NOTQ R11
   911	XORQ BX, R13
   912	MOVQ R11, BX
   913	ANDQ R12, BX
   914	XORQ R10, BX
   915	MOVQ BX, 160(DI)
   916	XORQ BX, SI
   917	ROLQ $0x29, R13
   918	MOVQ R12, CX
   919	ORQ  R13, CX
   920	XORQ R11, CX
   921	MOVQ CX, 168(DI)
   922	XORQ CX, BP
   923	MOVQ R13, DX
   924	MOVQ R14, R8
   925	ANDQ R14, DX
   926	ORQ  R10, R8
   927	XORQ R12, DX
   928	XORQ R13, R8
   929	MOVQ DX, 176(DI)
   930	MOVQ R8, 184(DI)
   931
   932	// Prepare round
   933	MOVQ BP, BX
   934	ROLQ $0x01, BX
   935	MOVQ 16(DI), R12
   936	XORQ 56(DI), DX
   937	XORQ R15, BX
   938	XORQ 96(DI), R12
   939	XORQ 136(DI), DX
   940	XORQ DX, R12
   941	MOVQ R12, CX
   942	ROLQ $0x01, CX
   943	MOVQ 24(DI), R13
   944	XORQ 64(DI), R8
   945	XORQ SI, CX
   946	XORQ 104(DI), R13
   947	XORQ 144(DI), R8
   948	XORQ R8, R13
   949	MOVQ R13, DX
   950	ROLQ $0x01, DX
   951	MOVQ R15, R8
   952	XORQ BP, DX
   953	ROLQ $0x01, R8
   954	MOVQ SI, R9
   955	XORQ R12, R8
   956	ROLQ $0x01, R9
   957
   958	// Result b
   959	MOVQ (DI), R10
   960	MOVQ 48(DI), R11
   961	XORQ R13, R9
   962	MOVQ 96(DI), R12
   963	MOVQ 144(DI), R13
   964	MOVQ 192(DI), R14
   965	XORQ CX, R11
   966	ROLQ $0x2c, R11
   967	XORQ DX, R12
   968	XORQ BX, R10
   969	ROLQ $0x2b, R12
   970	MOVQ R11, SI
   971	MOVQ $0x000000000000808b, AX
   972	ORQ  R12, SI
   973	XORQ R10, AX
   974	XORQ AX, SI
   975	MOVQ SI, (SP)
   976	XORQ R9, R14
   977	ROLQ $0x0e, R14
   978	MOVQ R10, R15
   979	ANDQ R11, R15
   980	XORQ R14, R15
   981	MOVQ R15, 32(SP)
   982	XORQ R8, R13
   983	ROLQ $0x15, R13
   984	MOVQ R13, AX
   985	ANDQ R14, AX
   986	XORQ R12, AX
   987	MOVQ AX, 16(SP)
   988	NOTQ R12
   989	ORQ  R10, R14
   990	ORQ  R13, R12
   991	XORQ R13, R14
   992	XORQ R11, R12
   993	MOVQ R14, 24(SP)
   994	MOVQ R12, 8(SP)
   995	MOVQ R12, BP
   996
   997	// Result g
   998	MOVQ 72(DI), R11
   999	XORQ R9, R11
  1000	MOVQ 80(DI), R12
  1001	ROLQ $0x14, R11
  1002	XORQ BX, R12
  1003	ROLQ $0x03, R12
  1004	MOVQ 24(DI), R10
  1005	MOVQ R11, AX
  1006	ORQ  R12, AX
  1007	XORQ R8, R10
  1008	MOVQ 128(DI), R13
  1009	MOVQ 176(DI), R14
  1010	ROLQ $0x1c, R10
  1011	XORQ R10, AX
  1012	MOVQ AX, 40(SP)
  1013	XORQ AX, SI
  1014	XORQ CX, R13
  1015	ROLQ $0x2d, R13
  1016	MOVQ R12, AX
  1017	ANDQ R13, AX
  1018	XORQ R11, AX
  1019	MOVQ AX, 48(SP)
  1020	XORQ AX, BP
  1021	XORQ DX, R14
  1022	ROLQ $0x3d, R14
  1023	MOVQ R14, AX
  1024	ORQ  R10, AX
  1025	XORQ R13, AX
  1026	MOVQ AX, 64(SP)
  1027	ANDQ R11, R10
  1028	XORQ R14, R10
  1029	MOVQ R10, 72(SP)
  1030	NOTQ R14
  1031	XORQ R10, R15
  1032	ORQ  R14, R13
  1033	XORQ R12, R13
  1034	MOVQ R13, 56(SP)
  1035
  1036	// Result k
  1037	MOVQ 8(DI), R10
  1038	MOVQ 56(DI), R11
  1039	MOVQ 104(DI), R12
  1040	MOVQ 152(DI), R13
  1041	MOVQ 160(DI), R14
  1042	XORQ DX, R11
  1043	ROLQ $0x06, R11
  1044	XORQ R8, R12
  1045	ROLQ $0x19, R12
  1046	MOVQ R11, AX
  1047	ORQ  R12, AX
  1048	XORQ CX, R10
  1049	ROLQ $0x01, R10
  1050	XORQ R10, AX
  1051	MOVQ AX, 80(SP)
  1052	XORQ AX, SI
  1053	XORQ R9, R13
  1054	ROLQ $0x08, R13
  1055	MOVQ R12, AX
  1056	ANDQ R13, AX
  1057	XORQ R11, AX
  1058	MOVQ AX, 88(SP)
  1059	XORQ AX, BP
  1060	XORQ BX, R14
  1061	ROLQ $0x12, R14
  1062	NOTQ R13
  1063	MOVQ R13, AX
  1064	ANDQ R14, AX
  1065	XORQ R12, AX
  1066	MOVQ AX, 96(SP)
  1067	MOVQ R14, AX
  1068	ORQ  R10, AX
  1069	XORQ R13, AX
  1070	MOVQ AX, 104(SP)
  1071	ANDQ R11, R10
  1072	XORQ R14, R10
  1073	MOVQ R10, 112(SP)
  1074	XORQ R10, R15
  1075
  1076	// Result m
  1077	MOVQ 40(DI), R11
  1078	XORQ BX, R11
  1079	MOVQ 88(DI), R12
  1080	ROLQ $0x24, R11
  1081	XORQ CX, R12
  1082	MOVQ 32(DI), R10
  1083	ROLQ $0x0a, R12
  1084	MOVQ R11, AX
  1085	MOVQ 136(DI), R13
  1086	ANDQ R12, AX
  1087	XORQ R9, R10
  1088	MOVQ 184(DI), R14
  1089	ROLQ $0x1b, R10
  1090	XORQ R10, AX
  1091	MOVQ AX, 120(SP)
  1092	XORQ AX, SI
  1093	XORQ DX, R13
  1094	ROLQ $0x0f, R13
  1095	MOVQ R12, AX
  1096	ORQ  R13, AX
  1097	XORQ R11, AX
  1098	MOVQ AX, 128(SP)
  1099	XORQ AX, BP
  1100	XORQ R8, R14
  1101	ROLQ $0x38, R14
  1102	NOTQ R13
  1103	MOVQ R13, AX
  1104	ORQ  R14, AX
  1105	XORQ R12, AX
  1106	MOVQ AX, 136(SP)
  1107	ORQ  R10, R11
  1108	XORQ R14, R11
  1109	MOVQ R11, 152(SP)
  1110	ANDQ R10, R14
  1111	XORQ R13, R14
  1112	MOVQ R14, 144(SP)
  1113	XORQ R11, R15
  1114
  1115	// Result s
  1116	MOVQ 16(DI), R10
  1117	MOVQ 64(DI), R11
  1118	MOVQ 112(DI), R12
  1119	XORQ DX, R10
  1120	MOVQ 120(DI), R13
  1121	ROLQ $0x3e, R10
  1122	XORQ R8, R11
  1123	MOVQ 168(DI), R14
  1124	ROLQ $0x37, R11
  1125	XORQ R9, R12
  1126	MOVQ R10, R9
  1127	XORQ CX, R14
  1128	ROLQ $0x02, R14
  1129	ANDQ R11, R9
  1130	XORQ R14, R9
  1131	MOVQ R9, 192(SP)
  1132	ROLQ $0x27, R12
  1133	XORQ R9, R15
  1134	NOTQ R11
  1135	XORQ BX, R13
  1136	MOVQ R11, BX
  1137	ANDQ R12, BX
  1138	XORQ R10, BX
  1139	MOVQ BX, 160(SP)
  1140	XORQ BX, SI
  1141	ROLQ $0x29, R13
  1142	MOVQ R12, CX
  1143	ORQ  R13, CX
  1144	XORQ R11, CX
  1145	MOVQ CX, 168(SP)
  1146	XORQ CX, BP
  1147	MOVQ R13, DX
  1148	MOVQ R14, R8
  1149	ANDQ R14, DX
  1150	ORQ  R10, R8
  1151	XORQ R12, DX
  1152	XORQ R13, R8
  1153	MOVQ DX, 176(SP)
  1154	MOVQ R8, 184(SP)
  1155
  1156	// Prepare round
  1157	MOVQ BP, BX
  1158	ROLQ $0x01, BX
  1159	MOVQ 16(SP), R12
  1160	XORQ 56(SP), DX
  1161	XORQ R15, BX
  1162	XORQ 96(SP), R12
  1163	XORQ 136(SP), DX
  1164	XORQ DX, R12
  1165	MOVQ R12, CX
  1166	ROLQ $0x01, CX
  1167	MOVQ 24(SP), R13
  1168	XORQ 64(SP), R8
  1169	XORQ SI, CX
  1170	XORQ 104(SP), R13
  1171	XORQ 144(SP), R8
  1172	XORQ R8, R13
  1173	MOVQ R13, DX
  1174	ROLQ $0x01, DX
  1175	MOVQ R15, R8
  1176	XORQ BP, DX
  1177	ROLQ $0x01, R8
  1178	MOVQ SI, R9
  1179	XORQ R12, R8
  1180	ROLQ $0x01, R9
  1181
  1182	// Result b
  1183	MOVQ (SP), R10
  1184	MOVQ 48(SP), R11
  1185	XORQ R13, R9
  1186	MOVQ 96(SP), R12
  1187	MOVQ 144(SP), R13
  1188	MOVQ 192(SP), R14
  1189	XORQ CX, R11
  1190	ROLQ $0x2c, R11
  1191	XORQ DX, R12
  1192	XORQ BX, R10
  1193	ROLQ $0x2b, R12
  1194	MOVQ R11, SI
  1195	MOVQ $0x0000000080000001, AX
  1196	ORQ  R12, SI
  1197	XORQ R10, AX
  1198	XORQ AX, SI
  1199	MOVQ SI, (DI)
  1200	XORQ R9, R14
  1201	ROLQ $0x0e, R14
  1202	MOVQ R10, R15
  1203	ANDQ R11, R15
  1204	XORQ R14, R15
  1205	MOVQ R15, 32(DI)
  1206	XORQ R8, R13
  1207	ROLQ $0x15, R13
  1208	MOVQ R13, AX
  1209	ANDQ R14, AX
  1210	XORQ R12, AX
  1211	MOVQ AX, 16(DI)
  1212	NOTQ R12
  1213	ORQ  R10, R14
  1214	ORQ  R13, R12
  1215	XORQ R13, R14
  1216	XORQ R11, R12
  1217	MOVQ R14, 24(DI)
  1218	MOVQ R12, 8(DI)
  1219	MOVQ R12, BP
  1220
  1221	// Result g
  1222	MOVQ 72(SP), R11
  1223	XORQ R9, R11
  1224	MOVQ 80(SP), R12
  1225	ROLQ $0x14, R11
  1226	XORQ BX, R12
  1227	ROLQ $0x03, R12
  1228	MOVQ 24(SP), R10
  1229	MOVQ R11, AX
  1230	ORQ  R12, AX
  1231	XORQ R8, R10
  1232	MOVQ 128(SP), R13
  1233	MOVQ 176(SP), R14
  1234	ROLQ $0x1c, R10
  1235	XORQ R10, AX
  1236	MOVQ AX, 40(DI)
  1237	XORQ AX, SI
  1238	XORQ CX, R13
  1239	ROLQ $0x2d, R13
  1240	MOVQ R12, AX
  1241	ANDQ R13, AX
  1242	XORQ R11, AX
  1243	MOVQ AX, 48(DI)
  1244	XORQ AX, BP
  1245	XORQ DX, R14
  1246	ROLQ $0x3d, R14
  1247	MOVQ R14, AX
  1248	ORQ  R10, AX
  1249	XORQ R13, AX
  1250	MOVQ AX, 64(DI)
  1251	ANDQ R11, R10
  1252	XORQ R14, R10
  1253	MOVQ R10, 72(DI)
  1254	NOTQ R14
  1255	XORQ R10, R15
  1256	ORQ  R14, R13
  1257	XORQ R12, R13
  1258	MOVQ R13, 56(DI)
  1259
  1260	// Result k
  1261	MOVQ 8(SP), R10
  1262	MOVQ 56(SP), R11
  1263	MOVQ 104(SP), R12
  1264	MOVQ 152(SP), R13
  1265	MOVQ 160(SP), R14
  1266	XORQ DX, R11
  1267	ROLQ $0x06, R11
  1268	XORQ R8, R12
  1269	ROLQ $0x19, R12
  1270	MOVQ R11, AX
  1271	ORQ  R12, AX
  1272	XORQ CX, R10
  1273	ROLQ $0x01, R10
  1274	XORQ R10, AX
  1275	MOVQ AX, 80(DI)
  1276	XORQ AX, SI
  1277	XORQ R9, R13
  1278	ROLQ $0x08, R13
  1279	MOVQ R12, AX
  1280	ANDQ R13, AX
  1281	XORQ R11, AX
  1282	MOVQ AX, 88(DI)
  1283	XORQ AX, BP
  1284	XORQ BX, R14
  1285	ROLQ $0x12, R14
  1286	NOTQ R13
  1287	MOVQ R13, AX
  1288	ANDQ R14, AX
  1289	XORQ R12, AX
  1290	MOVQ AX, 96(DI)
  1291	MOVQ R14, AX
  1292	ORQ  R10, AX
  1293	XORQ R13, AX
  1294	MOVQ AX, 104(DI)
  1295	ANDQ R11, R10
  1296	XORQ R14, R10
  1297	MOVQ R10, 112(DI)
  1298	XORQ R10, R15
  1299
  1300	// Result m
  1301	MOVQ 40(SP), R11
  1302	XORQ BX, R11
  1303	MOVQ 88(SP), R12
  1304	ROLQ $0x24, R11
  1305	XORQ CX, R12
  1306	MOVQ 32(SP), R10
  1307	ROLQ $0x0a, R12
  1308	MOVQ R11, AX
  1309	MOVQ 136(SP), R13
  1310	ANDQ R12, AX
  1311	XORQ R9, R10
  1312	MOVQ 184(SP), R14
  1313	ROLQ $0x1b, R10
  1314	XORQ R10, AX
  1315	MOVQ AX, 120(DI)
  1316	XORQ AX, SI
  1317	XORQ DX, R13
  1318	ROLQ $0x0f, R13
  1319	MOVQ R12, AX
  1320	ORQ  R13, AX
  1321	XORQ R11, AX
  1322	MOVQ AX, 128(DI)
  1323	XORQ AX, BP
  1324	XORQ R8, R14
  1325	ROLQ $0x38, R14
  1326	NOTQ R13
  1327	MOVQ R13, AX
  1328	ORQ  R14, AX
  1329	XORQ R12, AX
  1330	MOVQ AX, 136(DI)
  1331	ORQ  R10, R11
  1332	XORQ R14, R11
  1333	MOVQ R11, 152(DI)
  1334	ANDQ R10, R14
  1335	XORQ R13, R14
  1336	MOVQ R14, 144(DI)
  1337	XORQ R11, R15
  1338
  1339	// Result s
  1340	MOVQ 16(SP), R10
  1341	MOVQ 64(SP), R11
  1342	MOVQ 112(SP), R12
  1343	XORQ DX, R10
  1344	MOVQ 120(SP), R13
  1345	ROLQ $0x3e, R10
  1346	XORQ R8, R11
  1347	MOVQ 168(SP), R14
  1348	ROLQ $0x37, R11
  1349	XORQ R9, R12
  1350	MOVQ R10, R9
  1351	XORQ CX, R14
  1352	ROLQ $0x02, R14
  1353	ANDQ R11, R9
  1354	XORQ R14, R9
  1355	MOVQ R9, 192(DI)
  1356	ROLQ $0x27, R12
  1357	XORQ R9, R15
  1358	NOTQ R11
  1359	XORQ BX, R13
  1360	MOVQ R11, BX
  1361	ANDQ R12, BX
  1362	XORQ R10, BX
  1363	MOVQ BX, 160(DI)
  1364	XORQ BX, SI
  1365	ROLQ $0x29, R13
  1366	MOVQ R12, CX
  1367	ORQ  R13, CX
  1368	XORQ R11, CX
  1369	MOVQ CX, 168(DI)
  1370	XORQ CX, BP
  1371	MOVQ R13, DX
  1372	MOVQ R14, R8
  1373	ANDQ R14, DX
  1374	ORQ  R10, R8
  1375	XORQ R12, DX
  1376	XORQ R13, R8
  1377	MOVQ DX, 176(DI)
  1378	MOVQ R8, 184(DI)
  1379
  1380	// Prepare round
  1381	MOVQ BP, BX
  1382	ROLQ $0x01, BX
  1383	MOVQ 16(DI), R12
  1384	XORQ 56(DI), DX
  1385	XORQ R15, BX
  1386	XORQ 96(DI), R12
  1387	XORQ 136(DI), DX
  1388	XORQ DX, R12
  1389	MOVQ R12, CX
  1390	ROLQ $0x01, CX
  1391	MOVQ 24(DI), R13
  1392	XORQ 64(DI), R8
  1393	XORQ SI, CX
  1394	XORQ 104(DI), R13
  1395	XORQ 144(DI), R8
  1396	XORQ R8, R13
  1397	MOVQ R13, DX
  1398	ROLQ $0x01, DX
  1399	MOVQ R15, R8
  1400	XORQ BP, DX
  1401	ROLQ $0x01, R8
  1402	MOVQ SI, R9
  1403	XORQ R12, R8
  1404	ROLQ $0x01, R9
  1405
  1406	// Result b
  1407	MOVQ (DI), R10
  1408	MOVQ 48(DI), R11
  1409	XORQ R13, R9
  1410	MOVQ 96(DI), R12
  1411	MOVQ 144(DI), R13
  1412	MOVQ 192(DI), R14
  1413	XORQ CX, R11
  1414	ROLQ $0x2c, R11
  1415	XORQ DX, R12
  1416	XORQ BX, R10
  1417	ROLQ $0x2b, R12
  1418	MOVQ R11, SI
  1419	MOVQ $0x8000000080008081, AX
  1420	ORQ  R12, SI
  1421	XORQ R10, AX
  1422	XORQ AX, SI
  1423	MOVQ SI, (SP)
  1424	XORQ R9, R14
  1425	ROLQ $0x0e, R14
  1426	MOVQ R10, R15
  1427	ANDQ R11, R15
  1428	XORQ R14, R15
  1429	MOVQ R15, 32(SP)
  1430	XORQ R8, R13
  1431	ROLQ $0x15, R13
  1432	MOVQ R13, AX
  1433	ANDQ R14, AX
  1434	XORQ R12, AX
  1435	MOVQ AX, 16(SP)
  1436	NOTQ R12
  1437	ORQ  R10, R14
  1438	ORQ  R13, R12
  1439	XORQ R13, R14
  1440	XORQ R11, R12
  1441	MOVQ R14, 24(SP)
  1442	MOVQ R12, 8(SP)
  1443	MOVQ R12, BP
  1444
  1445	// Result g
  1446	MOVQ 72(DI), R11
  1447	XORQ R9, R11
  1448	MOVQ 80(DI), R12
  1449	ROLQ $0x14, R11
  1450	XORQ BX, R12
  1451	ROLQ $0x03, R12
  1452	MOVQ 24(DI), R10
  1453	MOVQ R11, AX
  1454	ORQ  R12, AX
  1455	XORQ R8, R10
  1456	MOVQ 128(DI), R13
  1457	MOVQ 176(DI), R14
  1458	ROLQ $0x1c, R10
  1459	XORQ R10, AX
  1460	MOVQ AX, 40(SP)
  1461	XORQ AX, SI
  1462	XORQ CX, R13
  1463	ROLQ $0x2d, R13
  1464	MOVQ R12, AX
  1465	ANDQ R13, AX
  1466	XORQ R11, AX
  1467	MOVQ AX, 48(SP)
  1468	XORQ AX, BP
  1469	XORQ DX, R14
  1470	ROLQ $0x3d, R14
  1471	MOVQ R14, AX
  1472	ORQ  R10, AX
  1473	XORQ R13, AX
  1474	MOVQ AX, 64(SP)
  1475	ANDQ R11, R10
  1476	XORQ R14, R10
  1477	MOVQ R10, 72(SP)
  1478	NOTQ R14
  1479	XORQ R10, R15
  1480	ORQ  R14, R13
  1481	XORQ R12, R13
  1482	MOVQ R13, 56(SP)
  1483
  1484	// Result k
  1485	MOVQ 8(DI), R10
  1486	MOVQ 56(DI), R11
  1487	MOVQ 104(DI), R12
  1488	MOVQ 152(DI), R13
  1489	MOVQ 160(DI), R14
  1490	XORQ DX, R11
  1491	ROLQ $0x06, R11
  1492	XORQ R8, R12
  1493	ROLQ $0x19, R12
  1494	MOVQ R11, AX
  1495	ORQ  R12, AX
  1496	XORQ CX, R10
  1497	ROLQ $0x01, R10
  1498	XORQ R10, AX
  1499	MOVQ AX, 80(SP)
  1500	XORQ AX, SI
  1501	XORQ R9, R13
  1502	ROLQ $0x08, R13
  1503	MOVQ R12, AX
  1504	ANDQ R13, AX
  1505	XORQ R11, AX
  1506	MOVQ AX, 88(SP)
  1507	XORQ AX, BP
  1508	XORQ BX, R14
  1509	ROLQ $0x12, R14
  1510	NOTQ R13
  1511	MOVQ R13, AX
  1512	ANDQ R14, AX
  1513	XORQ R12, AX
  1514	MOVQ AX, 96(SP)
  1515	MOVQ R14, AX
  1516	ORQ  R10, AX
  1517	XORQ R13, AX
  1518	MOVQ AX, 104(SP)
  1519	ANDQ R11, R10
  1520	XORQ R14, R10
  1521	MOVQ R10, 112(SP)
  1522	XORQ R10, R15
  1523
  1524	// Result m
  1525	MOVQ 40(DI), R11
  1526	XORQ BX, R11
  1527	MOVQ 88(DI), R12
  1528	ROLQ $0x24, R11
  1529	XORQ CX, R12
  1530	MOVQ 32(DI), R10
  1531	ROLQ $0x0a, R12
  1532	MOVQ R11, AX
  1533	MOVQ 136(DI), R13
  1534	ANDQ R12, AX
  1535	XORQ R9, R10
  1536	MOVQ 184(DI), R14
  1537	ROLQ $0x1b, R10
  1538	XORQ R10, AX
  1539	MOVQ AX, 120(SP)
  1540	XORQ AX, SI
  1541	XORQ DX, R13
  1542	ROLQ $0x0f, R13
  1543	MOVQ R12, AX
  1544	ORQ  R13, AX
  1545	XORQ R11, AX
  1546	MOVQ AX, 128(SP)
  1547	XORQ AX, BP
  1548	XORQ R8, R14
  1549	ROLQ $0x38, R14
  1550	NOTQ R13
  1551	MOVQ R13, AX
  1552	ORQ  R14, AX
  1553	XORQ R12, AX
  1554	MOVQ AX, 136(SP)
  1555	ORQ  R10, R11
  1556	XORQ R14, R11
  1557	MOVQ R11, 152(SP)
  1558	ANDQ R10, R14
  1559	XORQ R13, R14
  1560	MOVQ R14, 144(SP)
  1561	XORQ R11, R15
  1562
  1563	// Result s
  1564	MOVQ 16(DI), R10
  1565	MOVQ 64(DI), R11
  1566	MOVQ 112(DI), R12
  1567	XORQ DX, R10
  1568	MOVQ 120(DI), R13
  1569	ROLQ $0x3e, R10
  1570	XORQ R8, R11
  1571	MOVQ 168(DI), R14
  1572	ROLQ $0x37, R11
  1573	XORQ R9, R12
  1574	MOVQ R10, R9
  1575	XORQ CX, R14
  1576	ROLQ $0x02, R14
  1577	ANDQ R11, R9
  1578	XORQ R14, R9
  1579	MOVQ R9, 192(SP)
  1580	ROLQ $0x27, R12
  1581	XORQ R9, R15
  1582	NOTQ R11
  1583	XORQ BX, R13
  1584	MOVQ R11, BX
  1585	ANDQ R12, BX
  1586	XORQ R10, BX
  1587	MOVQ BX, 160(SP)
  1588	XORQ BX, SI
  1589	ROLQ $0x29, R13
  1590	MOVQ R12, CX
  1591	ORQ  R13, CX
  1592	XORQ R11, CX
  1593	MOVQ CX, 168(SP)
  1594	XORQ CX, BP
  1595	MOVQ R13, DX
  1596	MOVQ R14, R8
  1597	ANDQ R14, DX
  1598	ORQ  R10, R8
  1599	XORQ R12, DX
  1600	XORQ R13, R8
  1601	MOVQ DX, 176(SP)
  1602	MOVQ R8, 184(SP)
  1603
  1604	// Prepare round
  1605	MOVQ BP, BX
  1606	ROLQ $0x01, BX
  1607	MOVQ 16(SP), R12
  1608	XORQ 56(SP), DX
  1609	XORQ R15, BX
  1610	XORQ 96(SP), R12
  1611	XORQ 136(SP), DX
  1612	XORQ DX, R12
  1613	MOVQ R12, CX
  1614	ROLQ $0x01, CX
  1615	MOVQ 24(SP), R13
  1616	XORQ 64(SP), R8
  1617	XORQ SI, CX
  1618	XORQ 104(SP), R13
  1619	XORQ 144(SP), R8
  1620	XORQ R8, R13
  1621	MOVQ R13, DX
  1622	ROLQ $0x01, DX
  1623	MOVQ R15, R8
  1624	XORQ BP, DX
  1625	ROLQ $0x01, R8
  1626	MOVQ SI, R9
  1627	XORQ R12, R8
  1628	ROLQ $0x01, R9
  1629
  1630	// Result b
  1631	MOVQ (SP), R10
  1632	MOVQ 48(SP), R11
  1633	XORQ R13, R9
  1634	MOVQ 96(SP), R12
  1635	MOVQ 144(SP), R13
  1636	MOVQ 192(SP), R14
  1637	XORQ CX, R11
  1638	ROLQ $0x2c, R11
  1639	XORQ DX, R12
  1640	XORQ BX, R10
  1641	ROLQ $0x2b, R12
  1642	MOVQ R11, SI
  1643	MOVQ $0x8000000000008009, AX
  1644	ORQ  R12, SI
  1645	XORQ R10, AX
  1646	XORQ AX, SI
  1647	MOVQ SI, (DI)
  1648	XORQ R9, R14
  1649	ROLQ $0x0e, R14
  1650	MOVQ R10, R15
  1651	ANDQ R11, R15
  1652	XORQ R14, R15
  1653	MOVQ R15, 32(DI)
  1654	XORQ R8, R13
  1655	ROLQ $0x15, R13
  1656	MOVQ R13, AX
  1657	ANDQ R14, AX
  1658	XORQ R12, AX
  1659	MOVQ AX, 16(DI)
  1660	NOTQ R12
  1661	ORQ  R10, R14
  1662	ORQ  R13, R12
  1663	XORQ R13, R14
  1664	XORQ R11, R12
  1665	MOVQ R14, 24(DI)
  1666	MOVQ R12, 8(DI)
  1667	MOVQ R12, BP
  1668
  1669	// Result g
  1670	MOVQ 72(SP), R11
  1671	XORQ R9, R11
  1672	MOVQ 80(SP), R12
  1673	ROLQ $0x14, R11
  1674	XORQ BX, R12
  1675	ROLQ $0x03, R12
  1676	MOVQ 24(SP), R10
  1677	MOVQ R11, AX
  1678	ORQ  R12, AX
  1679	XORQ R8, R10
  1680	MOVQ 128(SP), R13
  1681	MOVQ 176(SP), R14
  1682	ROLQ $0x1c, R10
  1683	XORQ R10, AX
  1684	MOVQ AX, 40(DI)
  1685	XORQ AX, SI
  1686	XORQ CX, R13
  1687	ROLQ $0x2d, R13
  1688	MOVQ R12, AX
  1689	ANDQ R13, AX
  1690	XORQ R11, AX
  1691	MOVQ AX, 48(DI)
  1692	XORQ AX, BP
  1693	XORQ DX, R14
  1694	ROLQ $0x3d, R14
  1695	MOVQ R14, AX
  1696	ORQ  R10, AX
  1697	XORQ R13, AX
  1698	MOVQ AX, 64(DI)
  1699	ANDQ R11, R10
  1700	XORQ R14, R10
  1701	MOVQ R10, 72(DI)
  1702	NOTQ R14
  1703	XORQ R10, R15
  1704	ORQ  R14, R13
  1705	XORQ R12, R13
  1706	MOVQ R13, 56(DI)
  1707
  1708	// Result k
  1709	MOVQ 8(SP), R10
  1710	MOVQ 56(SP), R11
  1711	MOVQ 104(SP), R12
  1712	MOVQ 152(SP), R13
  1713	MOVQ 160(SP), R14
  1714	XORQ DX, R11
  1715	ROLQ $0x06, R11
  1716	XORQ R8, R12
  1717	ROLQ $0x19, R12
  1718	MOVQ R11, AX
  1719	ORQ  R12, AX
  1720	XORQ CX, R10
  1721	ROLQ $0x01, R10
  1722	XORQ R10, AX
  1723	MOVQ AX, 80(DI)
  1724	XORQ AX, SI
  1725	XORQ R9, R13
  1726	ROLQ $0x08, R13
  1727	MOVQ R12, AX
  1728	ANDQ R13, AX
  1729	XORQ R11, AX
  1730	MOVQ AX, 88(DI)
  1731	XORQ AX, BP
  1732	XORQ BX, R14
  1733	ROLQ $0x12, R14
  1734	NOTQ R13
  1735	MOVQ R13, AX
  1736	ANDQ R14, AX
  1737	XORQ R12, AX
  1738	MOVQ AX, 96(DI)
  1739	MOVQ R14, AX
  1740	ORQ  R10, AX
  1741	XORQ R13, AX
  1742	MOVQ AX, 104(DI)
  1743	ANDQ R11, R10
  1744	XORQ R14, R10
  1745	MOVQ R10, 112(DI)
  1746	XORQ R10, R15
  1747
  1748	// Result m
  1749	MOVQ 40(SP), R11
  1750	XORQ BX, R11
  1751	MOVQ 88(SP), R12
  1752	ROLQ $0x24, R11
  1753	XORQ CX, R12
  1754	MOVQ 32(SP), R10
  1755	ROLQ $0x0a, R12
  1756	MOVQ R11, AX
  1757	MOVQ 136(SP), R13
  1758	ANDQ R12, AX
  1759	XORQ R9, R10
  1760	MOVQ 184(SP), R14
  1761	ROLQ $0x1b, R10
  1762	XORQ R10, AX
  1763	MOVQ AX, 120(DI)
  1764	XORQ AX, SI
  1765	XORQ DX, R13
  1766	ROLQ $0x0f, R13
  1767	MOVQ R12, AX
  1768	ORQ  R13, AX
  1769	XORQ R11, AX
  1770	MOVQ AX, 128(DI)
  1771	XORQ AX, BP
  1772	XORQ R8, R14
  1773	ROLQ $0x38, R14
  1774	NOTQ R13
  1775	MOVQ R13, AX
  1776	ORQ  R14, AX
  1777	XORQ R12, AX
  1778	MOVQ AX, 136(DI)
  1779	ORQ  R10, R11
  1780	XORQ R14, R11
  1781	MOVQ R11, 152(DI)
  1782	ANDQ R10, R14
  1783	XORQ R13, R14
  1784	MOVQ R14, 144(DI)
  1785	XORQ R11, R15
  1786
  1787	// Result s
  1788	MOVQ 16(SP), R10
  1789	MOVQ 64(SP), R11
  1790	MOVQ 112(SP), R12
  1791	XORQ DX, R10
  1792	MOVQ 120(SP), R13
  1793	ROLQ $0x3e, R10
  1794	XORQ R8, R11
  1795	MOVQ 168(SP), R14
  1796	ROLQ $0x37, R11
  1797	XORQ R9, R12
  1798	MOVQ R10, R9
  1799	XORQ CX, R14
  1800	ROLQ $0x02, R14
  1801	ANDQ R11, R9
  1802	XORQ R14, R9
  1803	MOVQ R9, 192(DI)
  1804	ROLQ $0x27, R12
  1805	XORQ R9, R15
  1806	NOTQ R11
  1807	XORQ BX, R13
  1808	MOVQ R11, BX
  1809	ANDQ R12, BX
  1810	XORQ R10, BX
  1811	MOVQ BX, 160(DI)
  1812	XORQ BX, SI
  1813	ROLQ $0x29, R13
  1814	MOVQ R12, CX
  1815	ORQ  R13, CX
  1816	XORQ R11, CX
  1817	MOVQ CX, 168(DI)
  1818	XORQ CX, BP
  1819	MOVQ R13, DX
  1820	MOVQ R14, R8
  1821	ANDQ R14, DX
  1822	ORQ  R10, R8
  1823	XORQ R12, DX
  1824	XORQ R13, R8
  1825	MOVQ DX, 176(DI)
  1826	MOVQ R8, 184(DI)
  1827
  1828	// Prepare round
  1829	MOVQ BP, BX
  1830	ROLQ $0x01, BX
  1831	MOVQ 16(DI), R12
  1832	XORQ 56(DI), DX
  1833	XORQ R15, BX
  1834	XORQ 96(DI), R12
  1835	XORQ 136(DI), DX
  1836	XORQ DX, R12
  1837	MOVQ R12, CX
  1838	ROLQ $0x01, CX
  1839	MOVQ 24(DI), R13
  1840	XORQ 64(DI), R8
  1841	XORQ SI, CX
  1842	XORQ 104(DI), R13
  1843	XORQ 144(DI), R8
  1844	XORQ R8, R13
  1845	MOVQ R13, DX
  1846	ROLQ $0x01, DX
  1847	MOVQ R15, R8
  1848	XORQ BP, DX
  1849	ROLQ $0x01, R8
  1850	MOVQ SI, R9
  1851	XORQ R12, R8
  1852	ROLQ $0x01, R9
  1853
  1854	// Result b
  1855	MOVQ (DI), R10
  1856	MOVQ 48(DI), R11
  1857	XORQ R13, R9
  1858	MOVQ 96(DI), R12
  1859	MOVQ 144(DI), R13
  1860	MOVQ 192(DI), R14
  1861	XORQ CX, R11
  1862	ROLQ $0x2c, R11
  1863	XORQ DX, R12
  1864	XORQ BX, R10
  1865	ROLQ $0x2b, R12
  1866	MOVQ R11, SI
  1867	MOVQ $0x000000000000008a, AX
  1868	ORQ  R12, SI
  1869	XORQ R10, AX
  1870	XORQ AX, SI
  1871	MOVQ SI, (SP)
  1872	XORQ R9, R14
  1873	ROLQ $0x0e, R14
  1874	MOVQ R10, R15
  1875	ANDQ R11, R15
  1876	XORQ R14, R15
  1877	MOVQ R15, 32(SP)
  1878	XORQ R8, R13
  1879	ROLQ $0x15, R13
  1880	MOVQ R13, AX
  1881	ANDQ R14, AX
  1882	XORQ R12, AX
  1883	MOVQ AX, 16(SP)
  1884	NOTQ R12
  1885	ORQ  R10, R14
  1886	ORQ  R13, R12
  1887	XORQ R13, R14
  1888	XORQ R11, R12
  1889	MOVQ R14, 24(SP)
  1890	MOVQ R12, 8(SP)
  1891	MOVQ R12, BP
  1892
  1893	// Result g
  1894	MOVQ 72(DI), R11
  1895	XORQ R9, R11
  1896	MOVQ 80(DI), R12
  1897	ROLQ $0x14, R11
  1898	XORQ BX, R12
  1899	ROLQ $0x03, R12
  1900	MOVQ 24(DI), R10
  1901	MOVQ R11, AX
  1902	ORQ  R12, AX
  1903	XORQ R8, R10
  1904	MOVQ 128(DI), R13
  1905	MOVQ 176(DI), R14
  1906	ROLQ $0x1c, R10
  1907	XORQ R10, AX
  1908	MOVQ AX, 40(SP)
  1909	XORQ AX, SI
  1910	XORQ CX, R13
  1911	ROLQ $0x2d, R13
  1912	MOVQ R12, AX
  1913	ANDQ R13, AX
  1914	XORQ R11, AX
  1915	MOVQ AX, 48(SP)
  1916	XORQ AX, BP
  1917	XORQ DX, R14
  1918	ROLQ $0x3d, R14
  1919	MOVQ R14, AX
  1920	ORQ  R10, AX
  1921	XORQ R13, AX
  1922	MOVQ AX, 64(SP)
  1923	ANDQ R11, R10
  1924	XORQ R14, R10
  1925	MOVQ R10, 72(SP)
  1926	NOTQ R14
  1927	XORQ R10, R15
  1928	ORQ  R14, R13
  1929	XORQ R12, R13
  1930	MOVQ R13, 56(SP)
  1931
  1932	// Result k
  1933	MOVQ 8(DI), R10
  1934	MOVQ 56(DI), R11
  1935	MOVQ 104(DI), R12
  1936	MOVQ 152(DI), R13
  1937	MOVQ 160(DI), R14
  1938	XORQ DX, R11
  1939	ROLQ $0x06, R11
  1940	XORQ R8, R12
  1941	ROLQ $0x19, R12
  1942	MOVQ R11, AX
  1943	ORQ  R12, AX
  1944	XORQ CX, R10
  1945	ROLQ $0x01, R10
  1946	XORQ R10, AX
  1947	MOVQ AX, 80(SP)
  1948	XORQ AX, SI
  1949	XORQ R9, R13
  1950	ROLQ $0x08, R13
  1951	MOVQ R12, AX
  1952	ANDQ R13, AX
  1953	XORQ R11, AX
  1954	MOVQ AX, 88(SP)
  1955	XORQ AX, BP
  1956	XORQ BX, R14
  1957	ROLQ $0x12, R14
  1958	NOTQ R13
  1959	MOVQ R13, AX
  1960	ANDQ R14, AX
  1961	XORQ R12, AX
  1962	MOVQ AX, 96(SP)
  1963	MOVQ R14, AX
  1964	ORQ  R10, AX
  1965	XORQ R13, AX
  1966	MOVQ AX, 104(SP)
  1967	ANDQ R11, R10
  1968	XORQ R14, R10
  1969	MOVQ R10, 112(SP)
  1970	XORQ R10, R15
  1971
  1972	// Result m
  1973	MOVQ 40(DI), R11
  1974	XORQ BX, R11
  1975	MOVQ 88(DI), R12
  1976	ROLQ $0x24, R11
  1977	XORQ CX, R12
  1978	MOVQ 32(DI), R10
  1979	ROLQ $0x0a, R12
  1980	MOVQ R11, AX
  1981	MOVQ 136(DI), R13
  1982	ANDQ R12, AX
  1983	XORQ R9, R10
  1984	MOVQ 184(DI), R14
  1985	ROLQ $0x1b, R10
  1986	XORQ R10, AX
  1987	MOVQ AX, 120(SP)
  1988	XORQ AX, SI
  1989	XORQ DX, R13
  1990	ROLQ $0x0f, R13
  1991	MOVQ R12, AX
  1992	ORQ  R13, AX
  1993	XORQ R11, AX
  1994	MOVQ AX, 128(SP)
  1995	XORQ AX, BP
  1996	XORQ R8, R14
  1997	ROLQ $0x38, R14
  1998	NOTQ R13
  1999	MOVQ R13, AX
  2000	ORQ  R14, AX
  2001	XORQ R12, AX
  2002	MOVQ AX, 136(SP)
  2003	ORQ  R10, R11
  2004	XORQ R14, R11
  2005	MOVQ R11, 152(SP)
  2006	ANDQ R10, R14
  2007	XORQ R13, R14
  2008	MOVQ R14, 144(SP)
  2009	XORQ R11, R15
  2010
  2011	// Result s
  2012	MOVQ 16(DI), R10
  2013	MOVQ 64(DI), R11
  2014	MOVQ 112(DI), R12
  2015	XORQ DX, R10
  2016	MOVQ 120(DI), R13
  2017	ROLQ $0x3e, R10
  2018	XORQ R8, R11
  2019	MOVQ 168(DI), R14
  2020	ROLQ $0x37, R11
  2021	XORQ R9, R12
  2022	MOVQ R10, R9
  2023	XORQ CX, R14
  2024	ROLQ $0x02, R14
  2025	ANDQ R11, R9
  2026	XORQ R14, R9
  2027	MOVQ R9, 192(SP)
  2028	ROLQ $0x27, R12
  2029	XORQ R9, R15
  2030	NOTQ R11
  2031	XORQ BX, R13
  2032	MOVQ R11, BX
  2033	ANDQ R12, BX
  2034	XORQ R10, BX
  2035	MOVQ BX, 160(SP)
  2036	XORQ BX, SI
  2037	ROLQ $0x29, R13
  2038	MOVQ R12, CX
  2039	ORQ  R13, CX
  2040	XORQ R11, CX
  2041	MOVQ CX, 168(SP)
  2042	XORQ CX, BP
  2043	MOVQ R13, DX
  2044	MOVQ R14, R8
  2045	ANDQ R14, DX
  2046	ORQ  R10, R8
  2047	XORQ R12, DX
  2048	XORQ R13, R8
  2049	MOVQ DX, 176(SP)
  2050	MOVQ R8, 184(SP)
  2051
  2052	// Prepare round
  2053	MOVQ BP, BX
  2054	ROLQ $0x01, BX
  2055	MOVQ 16(SP), R12
  2056	XORQ 56(SP), DX
  2057	XORQ R15, BX
  2058	XORQ 96(SP), R12
  2059	XORQ 136(SP), DX
  2060	XORQ DX, R12
  2061	MOVQ R12, CX
  2062	ROLQ $0x01, CX
  2063	MOVQ 24(SP), R13
  2064	XORQ 64(SP), R8
  2065	XORQ SI, CX
  2066	XORQ 104(SP), R13
  2067	XORQ 144(SP), R8
  2068	XORQ R8, R13
  2069	MOVQ R13, DX
  2070	ROLQ $0x01, DX
  2071	MOVQ R15, R8
  2072	XORQ BP, DX
  2073	ROLQ $0x01, R8
  2074	MOVQ SI, R9
  2075	XORQ R12, R8
  2076	ROLQ $0x01, R9
  2077
  2078	// Result b
  2079	MOVQ (SP), R10
  2080	MOVQ 48(SP), R11
  2081	XORQ R13, R9
  2082	MOVQ 96(SP), R12
  2083	MOVQ 144(SP), R13
  2084	MOVQ 192(SP), R14
  2085	XORQ CX, R11
  2086	ROLQ $0x2c, R11
  2087	XORQ DX, R12
  2088	XORQ BX, R10
  2089	ROLQ $0x2b, R12
  2090	MOVQ R11, SI
  2091	MOVQ $0x0000000000000088, AX
  2092	ORQ  R12, SI
  2093	XORQ R10, AX
  2094	XORQ AX, SI
  2095	MOVQ SI, (DI)
  2096	XORQ R9, R14
  2097	ROLQ $0x0e, R14
  2098	MOVQ R10, R15
  2099	ANDQ R11, R15
  2100	XORQ R14, R15
  2101	MOVQ R15, 32(DI)
  2102	XORQ R8, R13
  2103	ROLQ $0x15, R13
  2104	MOVQ R13, AX
  2105	ANDQ R14, AX
  2106	XORQ R12, AX
  2107	MOVQ AX, 16(DI)
  2108	NOTQ R12
  2109	ORQ  R10, R14
  2110	ORQ  R13, R12
  2111	XORQ R13, R14
  2112	XORQ R11, R12
  2113	MOVQ R14, 24(DI)
  2114	MOVQ R12, 8(DI)
  2115	MOVQ R12, BP
  2116
  2117	// Result g
  2118	MOVQ 72(SP), R11
  2119	XORQ R9, R11
  2120	MOVQ 80(SP), R12
  2121	ROLQ $0x14, R11
  2122	XORQ BX, R12
  2123	ROLQ $0x03, R12
  2124	MOVQ 24(SP), R10
  2125	MOVQ R11, AX
  2126	ORQ  R12, AX
  2127	XORQ R8, R10
  2128	MOVQ 128(SP), R13
  2129	MOVQ 176(SP), R14
  2130	ROLQ $0x1c, R10
  2131	XORQ R10, AX
  2132	MOVQ AX, 40(DI)
  2133	XORQ AX, SI
  2134	XORQ CX, R13
  2135	ROLQ $0x2d, R13
  2136	MOVQ R12, AX
  2137	ANDQ R13, AX
  2138	XORQ R11, AX
  2139	MOVQ AX, 48(DI)
  2140	XORQ AX, BP
  2141	XORQ DX, R14
  2142	ROLQ $0x3d, R14
  2143	MOVQ R14, AX
  2144	ORQ  R10, AX
  2145	XORQ R13, AX
  2146	MOVQ AX, 64(DI)
  2147	ANDQ R11, R10
  2148	XORQ R14, R10
  2149	MOVQ R10, 72(DI)
  2150	NOTQ R14
  2151	XORQ R10, R15
  2152	ORQ  R14, R13
  2153	XORQ R12, R13
  2154	MOVQ R13, 56(DI)
  2155
  2156	// Result k
  2157	MOVQ 8(SP), R10
  2158	MOVQ 56(SP), R11
  2159	MOVQ 104(SP), R12
  2160	MOVQ 152(SP), R13
  2161	MOVQ 160(SP), R14
  2162	XORQ DX, R11
  2163	ROLQ $0x06, R11
  2164	XORQ R8, R12
  2165	ROLQ $0x19, R12
  2166	MOVQ R11, AX
  2167	ORQ  R12, AX
  2168	XORQ CX, R10
  2169	ROLQ $0x01, R10
  2170	XORQ R10, AX
  2171	MOVQ AX, 80(DI)
  2172	XORQ AX, SI
  2173	XORQ R9, R13
  2174	ROLQ $0x08, R13
  2175	MOVQ R12, AX
  2176	ANDQ R13, AX
  2177	XORQ R11, AX
  2178	MOVQ AX, 88(DI)
  2179	XORQ AX, BP
  2180	XORQ BX, R14
  2181	ROLQ $0x12, R14
  2182	NOTQ R13
  2183	MOVQ R13, AX
  2184	ANDQ R14, AX
  2185	XORQ R12, AX
  2186	MOVQ AX, 96(DI)
  2187	MOVQ R14, AX
  2188	ORQ  R10, AX
  2189	XORQ R13, AX
  2190	MOVQ AX, 104(DI)
  2191	ANDQ R11, R10
  2192	XORQ R14, R10
  2193	MOVQ R10, 112(DI)
  2194	XORQ R10, R15
  2195
  2196	// Result m
  2197	MOVQ 40(SP), R11
  2198	XORQ BX, R11
  2199	MOVQ 88(SP), R12
  2200	ROLQ $0x24, R11
  2201	XORQ CX, R12
  2202	MOVQ 32(SP), R10
  2203	ROLQ $0x0a, R12
  2204	MOVQ R11, AX
  2205	MOVQ 136(SP), R13
  2206	ANDQ R12, AX
  2207	XORQ R9, R10
  2208	MOVQ 184(SP), R14
  2209	ROLQ $0x1b, R10
  2210	XORQ R10, AX
  2211	MOVQ AX, 120(DI)
  2212	XORQ AX, SI
  2213	XORQ DX, R13
  2214	ROLQ $0x0f, R13
  2215	MOVQ R12, AX
  2216	ORQ  R13, AX
  2217	XORQ R11, AX
  2218	MOVQ AX, 128(DI)
  2219	XORQ AX, BP
  2220	XORQ R8, R14
  2221	ROLQ $0x38, R14
  2222	NOTQ R13
  2223	MOVQ R13, AX
  2224	ORQ  R14, AX
  2225	XORQ R12, AX
  2226	MOVQ AX, 136(DI)
  2227	ORQ  R10, R11
  2228	XORQ R14, R11
  2229	MOVQ R11, 152(DI)
  2230	ANDQ R10, R14
  2231	XORQ R13, R14
  2232	MOVQ R14, 144(DI)
  2233	XORQ R11, R15
  2234
  2235	// Result s
  2236	MOVQ 16(SP), R10
  2237	MOVQ 64(SP), R11
  2238	MOVQ 112(SP), R12
  2239	XORQ DX, R10
  2240	MOVQ 120(SP), R13
  2241	ROLQ $0x3e, R10
  2242	XORQ R8, R11
  2243	MOVQ 168(SP), R14
  2244	ROLQ $0x37, R11
  2245	XORQ R9, R12
  2246	MOVQ R10, R9
  2247	XORQ CX, R14
  2248	ROLQ $0x02, R14
  2249	ANDQ R11, R9
  2250	XORQ R14, R9
  2251	MOVQ R9, 192(DI)
  2252	ROLQ $0x27, R12
  2253	XORQ R9, R15
  2254	NOTQ R11
  2255	XORQ BX, R13
  2256	MOVQ R11, BX
  2257	ANDQ R12, BX
  2258	XORQ R10, BX
  2259	MOVQ BX, 160(DI)
  2260	XORQ BX, SI
  2261	ROLQ $0x29, R13
  2262	MOVQ R12, CX
  2263	ORQ  R13, CX
  2264	XORQ R11, CX
  2265	MOVQ CX, 168(DI)
  2266	XORQ CX, BP
  2267	MOVQ R13, DX
  2268	MOVQ R14, R8
  2269	ANDQ R14, DX
  2270	ORQ  R10, R8
  2271	XORQ R12, DX
  2272	XORQ R13, R8
  2273	MOVQ DX, 176(DI)
  2274	MOVQ R8, 184(DI)
  2275
  2276	// Prepare round
  2277	MOVQ BP, BX
  2278	ROLQ $0x01, BX
  2279	MOVQ 16(DI), R12
  2280	XORQ 56(DI), DX
  2281	XORQ R15, BX
  2282	XORQ 96(DI), R12
  2283	XORQ 136(DI), DX
  2284	XORQ DX, R12
  2285	MOVQ R12, CX
  2286	ROLQ $0x01, CX
  2287	MOVQ 24(DI), R13
  2288	XORQ 64(DI), R8
  2289	XORQ SI, CX
  2290	XORQ 104(DI), R13
  2291	XORQ 144(DI), R8
  2292	XORQ R8, R13
  2293	MOVQ R13, DX
  2294	ROLQ $0x01, DX
  2295	MOVQ R15, R8
  2296	XORQ BP, DX
  2297	ROLQ $0x01, R8
  2298	MOVQ SI, R9
  2299	XORQ R12, R8
  2300	ROLQ $0x01, R9
  2301
  2302	// Result b
  2303	MOVQ (DI), R10
  2304	MOVQ 48(DI), R11
  2305	XORQ R13, R9
  2306	MOVQ 96(DI), R12
  2307	MOVQ 144(DI), R13
  2308	MOVQ 192(DI), R14
  2309	XORQ CX, R11
  2310	ROLQ $0x2c, R11
  2311	XORQ DX, R12
  2312	XORQ BX, R10
  2313	ROLQ $0x2b, R12
  2314	MOVQ R11, SI
  2315	MOVQ $0x0000000080008009, AX
  2316	ORQ  R12, SI
  2317	XORQ R10, AX
  2318	XORQ AX, SI
  2319	MOVQ SI, (SP)
  2320	XORQ R9, R14
  2321	ROLQ $0x0e, R14
  2322	MOVQ R10, R15
  2323	ANDQ R11, R15
  2324	XORQ R14, R15
  2325	MOVQ R15, 32(SP)
  2326	XORQ R8, R13
  2327	ROLQ $0x15, R13
  2328	MOVQ R13, AX
  2329	ANDQ R14, AX
  2330	XORQ R12, AX
  2331	MOVQ AX, 16(SP)
  2332	NOTQ R12
  2333	ORQ  R10, R14
  2334	ORQ  R13, R12
  2335	XORQ R13, R14
  2336	XORQ R11, R12
  2337	MOVQ R14, 24(SP)
  2338	MOVQ R12, 8(SP)
  2339	MOVQ R12, BP
  2340
  2341	// Result g
  2342	MOVQ 72(DI), R11
  2343	XORQ R9, R11
  2344	MOVQ 80(DI), R12
  2345	ROLQ $0x14, R11
  2346	XORQ BX, R12
  2347	ROLQ $0x03, R12
  2348	MOVQ 24(DI), R10
  2349	MOVQ R11, AX
  2350	ORQ  R12, AX
  2351	XORQ R8, R10
  2352	MOVQ 128(DI), R13
  2353	MOVQ 176(DI), R14
  2354	ROLQ $0x1c, R10
  2355	XORQ R10, AX
  2356	MOVQ AX, 40(SP)
  2357	XORQ AX, SI
  2358	XORQ CX, R13
  2359	ROLQ $0x2d, R13
  2360	MOVQ R12, AX
  2361	ANDQ R13, AX
  2362	XORQ R11, AX
  2363	MOVQ AX, 48(SP)
  2364	XORQ AX, BP
  2365	XORQ DX, R14
  2366	ROLQ $0x3d, R14
  2367	MOVQ R14, AX
  2368	ORQ  R10, AX
  2369	XORQ R13, AX
  2370	MOVQ AX, 64(SP)
  2371	ANDQ R11, R10
  2372	XORQ R14, R10
  2373	MOVQ R10, 72(SP)
  2374	NOTQ R14
  2375	XORQ R10, R15
  2376	ORQ  R14, R13
  2377	XORQ R12, R13
  2378	MOVQ R13, 56(SP)
  2379
  2380	// Result k
  2381	MOVQ 8(DI), R10
  2382	MOVQ 56(DI), R11
  2383	MOVQ 104(DI), R12
  2384	MOVQ 152(DI), R13
  2385	MOVQ 160(DI), R14
  2386	XORQ DX, R11
  2387	ROLQ $0x06, R11
  2388	XORQ R8, R12
  2389	ROLQ $0x19, R12
  2390	MOVQ R11, AX
  2391	ORQ  R12, AX
  2392	XORQ CX, R10
  2393	ROLQ $0x01, R10
  2394	XORQ R10, AX
  2395	MOVQ AX, 80(SP)
  2396	XORQ AX, SI
  2397	XORQ R9, R13
  2398	ROLQ $0x08, R13
  2399	MOVQ R12, AX
  2400	ANDQ R13, AX
  2401	XORQ R11, AX
  2402	MOVQ AX, 88(SP)
  2403	XORQ AX, BP
  2404	XORQ BX, R14
  2405	ROLQ $0x12, R14
  2406	NOTQ R13
  2407	MOVQ R13, AX
  2408	ANDQ R14, AX
  2409	XORQ R12, AX
  2410	MOVQ AX, 96(SP)
  2411	MOVQ R14, AX
  2412	ORQ  R10, AX
  2413	XORQ R13, AX
  2414	MOVQ AX, 104(SP)
  2415	ANDQ R11, R10
  2416	XORQ R14, R10
  2417	MOVQ R10, 112(SP)
  2418	XORQ R10, R15
  2419
  2420	// Result m
  2421	MOVQ 40(DI), R11
  2422	XORQ BX, R11
  2423	MOVQ 88(DI), R12
  2424	ROLQ $0x24, R11
  2425	XORQ CX, R12
  2426	MOVQ 32(DI), R10
  2427	ROLQ $0x0a, R12
  2428	MOVQ R11, AX
  2429	MOVQ 136(DI), R13
  2430	ANDQ R12, AX
  2431	XORQ R9, R10
  2432	MOVQ 184(DI), R14
  2433	ROLQ $0x1b, R10
  2434	XORQ R10, AX
  2435	MOVQ AX, 120(SP)
  2436	XORQ AX, SI
  2437	XORQ DX, R13
  2438	ROLQ $0x0f, R13
  2439	MOVQ R12, AX
  2440	ORQ  R13, AX
  2441	XORQ R11, AX
  2442	MOVQ AX, 128(SP)
  2443	XORQ AX, BP
  2444	XORQ R8, R14
  2445	ROLQ $0x38, R14
  2446	NOTQ R13
  2447	MOVQ R13, AX
  2448	ORQ  R14, AX
  2449	XORQ R12, AX
  2450	MOVQ AX, 136(SP)
  2451	ORQ  R10, R11
  2452	XORQ R14, R11
  2453	MOVQ R11, 152(SP)
  2454	ANDQ R10, R14
  2455	XORQ R13, R14
  2456	MOVQ R14, 144(SP)
  2457	XORQ R11, R15
  2458
  2459	// Result s
  2460	MOVQ 16(DI), R10
  2461	MOVQ 64(DI), R11
  2462	MOVQ 112(DI), R12
  2463	XORQ DX, R10
  2464	MOVQ 120(DI), R13
  2465	ROLQ $0x3e, R10
  2466	XORQ R8, R11
  2467	MOVQ 168(DI), R14
  2468	ROLQ $0x37, R11
  2469	XORQ R9, R12
  2470	MOVQ R10, R9
  2471	XORQ CX, R14
  2472	ROLQ $0x02, R14
  2473	ANDQ R11, R9
  2474	XORQ R14, R9
  2475	MOVQ R9, 192(SP)
  2476	ROLQ $0x27, R12
  2477	XORQ R9, R15
  2478	NOTQ R11
  2479	XORQ BX, R13
  2480	MOVQ R11, BX
  2481	ANDQ R12, BX
  2482	XORQ R10, BX
  2483	MOVQ BX, 160(SP)
  2484	XORQ BX, SI
  2485	ROLQ $0x29, R13
  2486	MOVQ R12, CX
  2487	ORQ  R13, CX
  2488	XORQ R11, CX
  2489	MOVQ CX, 168(SP)
  2490	XORQ CX, BP
  2491	MOVQ R13, DX
  2492	MOVQ R14, R8
  2493	ANDQ R14, DX
  2494	ORQ  R10, R8
  2495	XORQ R12, DX
  2496	XORQ R13, R8
  2497	MOVQ DX, 176(SP)
  2498	MOVQ R8, 184(SP)
  2499
  2500	// Prepare round
  2501	MOVQ BP, BX
  2502	ROLQ $0x01, BX
  2503	MOVQ 16(SP), R12
  2504	XORQ 56(SP), DX
  2505	XORQ R15, BX
  2506	XORQ 96(SP), R12
  2507	XORQ 136(SP), DX
  2508	XORQ DX, R12
  2509	MOVQ R12, CX
  2510	ROLQ $0x01, CX
  2511	MOVQ 24(SP), R13
  2512	XORQ 64(SP), R8
  2513	XORQ SI, CX
  2514	XORQ 104(SP), R13
  2515	XORQ 144(SP), R8
  2516	XORQ R8, R13
  2517	MOVQ R13, DX
  2518	ROLQ $0x01, DX
  2519	MOVQ R15, R8
  2520	XORQ BP, DX
  2521	ROLQ $0x01, R8
  2522	MOVQ SI, R9
  2523	XORQ R12, R8
  2524	ROLQ $0x01, R9
  2525
  2526	// Result b
  2527	MOVQ (SP), R10
  2528	MOVQ 48(SP), R11
  2529	XORQ R13, R9
  2530	MOVQ 96(SP), R12
  2531	MOVQ 144(SP), R13
  2532	MOVQ 192(SP), R14
  2533	XORQ CX, R11
  2534	ROLQ $0x2c, R11
  2535	XORQ DX, R12
  2536	XORQ BX, R10
  2537	ROLQ $0x2b, R12
  2538	MOVQ R11, SI
  2539	MOVQ $0x000000008000000a, AX
  2540	ORQ  R12, SI
  2541	XORQ R10, AX
  2542	XORQ AX, SI
  2543	MOVQ SI, (DI)
  2544	XORQ R9, R14
  2545	ROLQ $0x0e, R14
  2546	MOVQ R10, R15
  2547	ANDQ R11, R15
  2548	XORQ R14, R15
  2549	MOVQ R15, 32(DI)
  2550	XORQ R8, R13
  2551	ROLQ $0x15, R13
  2552	MOVQ R13, AX
  2553	ANDQ R14, AX
  2554	XORQ R12, AX
  2555	MOVQ AX, 16(DI)
  2556	NOTQ R12
  2557	ORQ  R10, R14
  2558	ORQ  R13, R12
  2559	XORQ R13, R14
  2560	XORQ R11, R12
  2561	MOVQ R14, 24(DI)
  2562	MOVQ R12, 8(DI)
  2563	MOVQ R12, BP
  2564
  2565	// Result g
  2566	MOVQ 72(SP), R11
  2567	XORQ R9, R11
  2568	MOVQ 80(SP), R12
  2569	ROLQ $0x14, R11
  2570	XORQ BX, R12
  2571	ROLQ $0x03, R12
  2572	MOVQ 24(SP), R10
  2573	MOVQ R11, AX
  2574	ORQ  R12, AX
  2575	XORQ R8, R10
  2576	MOVQ 128(SP), R13
  2577	MOVQ 176(SP), R14
  2578	ROLQ $0x1c, R10
  2579	XORQ R10, AX
  2580	MOVQ AX, 40(DI)
  2581	XORQ AX, SI
  2582	XORQ CX, R13
  2583	ROLQ $0x2d, R13
  2584	MOVQ R12, AX
  2585	ANDQ R13, AX
  2586	XORQ R11, AX
  2587	MOVQ AX, 48(DI)
  2588	XORQ AX, BP
  2589	XORQ DX, R14
  2590	ROLQ $0x3d, R14
  2591	MOVQ R14, AX
  2592	ORQ  R10, AX
  2593	XORQ R13, AX
  2594	MOVQ AX, 64(DI)
  2595	ANDQ R11, R10
  2596	XORQ R14, R10
  2597	MOVQ R10, 72(DI)
  2598	NOTQ R14
  2599	XORQ R10, R15
  2600	ORQ  R14, R13
  2601	XORQ R12, R13
  2602	MOVQ R13, 56(DI)
  2603
  2604	// Result k
  2605	MOVQ 8(SP), R10
  2606	MOVQ 56(SP), R11
  2607	MOVQ 104(SP), R12
  2608	MOVQ 152(SP), R13
  2609	MOVQ 160(SP), R14
  2610	XORQ DX, R11
  2611	ROLQ $0x06, R11
  2612	XORQ R8, R12
  2613	ROLQ $0x19, R12
  2614	MOVQ R11, AX
  2615	ORQ  R12, AX
  2616	XORQ CX, R10
  2617	ROLQ $0x01, R10
  2618	XORQ R10, AX
  2619	MOVQ AX, 80(DI)
  2620	XORQ AX, SI
  2621	XORQ R9, R13
  2622	ROLQ $0x08, R13
  2623	MOVQ R12, AX
  2624	ANDQ R13, AX
  2625	XORQ R11, AX
  2626	MOVQ AX, 88(DI)
  2627	XORQ AX, BP
  2628	XORQ BX, R14
  2629	ROLQ $0x12, R14
  2630	NOTQ R13
  2631	MOVQ R13, AX
  2632	ANDQ R14, AX
  2633	XORQ R12, AX
  2634	MOVQ AX, 96(DI)
  2635	MOVQ R14, AX
  2636	ORQ  R10, AX
  2637	XORQ R13, AX
  2638	MOVQ AX, 104(DI)
  2639	ANDQ R11, R10
  2640	XORQ R14, R10
  2641	MOVQ R10, 112(DI)
  2642	XORQ R10, R15
  2643
  2644	// Result m
  2645	MOVQ 40(SP), R11
  2646	XORQ BX, R11
  2647	MOVQ 88(SP), R12
  2648	ROLQ $0x24, R11
  2649	XORQ CX, R12
  2650	MOVQ 32(SP), R10
  2651	ROLQ $0x0a, R12
  2652	MOVQ R11, AX
  2653	MOVQ 136(SP), R13
  2654	ANDQ R12, AX
  2655	XORQ R9, R10
  2656	MOVQ 184(SP), R14
  2657	ROLQ $0x1b, R10
  2658	XORQ R10, AX
  2659	MOVQ AX, 120(DI)
  2660	XORQ AX, SI
  2661	XORQ DX, R13
  2662	ROLQ $0x0f, R13
  2663	MOVQ R12, AX
  2664	ORQ  R13, AX
  2665	XORQ R11, AX
  2666	MOVQ AX, 128(DI)
  2667	XORQ AX, BP
  2668	XORQ R8, R14
  2669	ROLQ $0x38, R14
  2670	NOTQ R13
  2671	MOVQ R13, AX
  2672	ORQ  R14, AX
  2673	XORQ R12, AX
  2674	MOVQ AX, 136(DI)
  2675	ORQ  R10, R11
  2676	XORQ R14, R11
  2677	MOVQ R11, 152(DI)
  2678	ANDQ R10, R14
  2679	XORQ R13, R14
  2680	MOVQ R14, 144(DI)
  2681	XORQ R11, R15
  2682
  2683	// Result s
  2684	MOVQ 16(SP), R10
  2685	MOVQ 64(SP), R11
  2686	MOVQ 112(SP), R12
  2687	XORQ DX, R10
  2688	MOVQ 120(SP), R13
  2689	ROLQ $0x3e, R10
  2690	XORQ R8, R11
  2691	MOVQ 168(SP), R14
  2692	ROLQ $0x37, R11
  2693	XORQ R9, R12
  2694	MOVQ R10, R9
  2695	XORQ CX, R14
  2696	ROLQ $0x02, R14
  2697	ANDQ R11, R9
  2698	XORQ R14, R9
  2699	MOVQ R9, 192(DI)
  2700	ROLQ $0x27, R12
  2701	XORQ R9, R15
  2702	NOTQ R11
  2703	XORQ BX, R13
  2704	MOVQ R11, BX
  2705	ANDQ R12, BX
  2706	XORQ R10, BX
  2707	MOVQ BX, 160(DI)
  2708	XORQ BX, SI
  2709	ROLQ $0x29, R13
  2710	MOVQ R12, CX
  2711	ORQ  R13, CX
  2712	XORQ R11, CX
  2713	MOVQ CX, 168(DI)
  2714	XORQ CX, BP
  2715	MOVQ R13, DX
  2716	MOVQ R14, R8
  2717	ANDQ R14, DX
  2718	ORQ  R10, R8
  2719	XORQ R12, DX
  2720	XORQ R13, R8
  2721	MOVQ DX, 176(DI)
  2722	MOVQ R8, 184(DI)
  2723
  2724	// Prepare round
  2725	MOVQ BP, BX
  2726	ROLQ $0x01, BX
  2727	MOVQ 16(DI), R12
  2728	XORQ 56(DI), DX
  2729	XORQ R15, BX
  2730	XORQ 96(DI), R12
  2731	XORQ 136(DI), DX
  2732	XORQ DX, R12
  2733	MOVQ R12, CX
  2734	ROLQ $0x01, CX
  2735	MOVQ 24(DI), R13
  2736	XORQ 64(DI), R8
  2737	XORQ SI, CX
  2738	XORQ 104(DI), R13
  2739	XORQ 144(DI), R8
  2740	XORQ R8, R13
  2741	MOVQ R13, DX
  2742	ROLQ $0x01, DX
  2743	MOVQ R15, R8
  2744	XORQ BP, DX
  2745	ROLQ $0x01, R8
  2746	MOVQ SI, R9
  2747	XORQ R12, R8
  2748	ROLQ $0x01, R9
  2749
  2750	// Result b
  2751	MOVQ (DI), R10
  2752	MOVQ 48(DI), R11
  2753	XORQ R13, R9
  2754	MOVQ 96(DI), R12
  2755	MOVQ 144(DI), R13
  2756	MOVQ 192(DI), R14
  2757	XORQ CX, R11
  2758	ROLQ $0x2c, R11
  2759	XORQ DX, R12
  2760	XORQ BX, R10
  2761	ROLQ $0x2b, R12
  2762	MOVQ R11, SI
  2763	MOVQ $0x000000008000808b, AX
  2764	ORQ  R12, SI
  2765	XORQ R10, AX
  2766	XORQ AX, SI
  2767	MOVQ SI, (SP)
  2768	XORQ R9, R14
  2769	ROLQ $0x0e, R14
  2770	MOVQ R10, R15
  2771	ANDQ R11, R15
  2772	XORQ R14, R15
  2773	MOVQ R15, 32(SP)
  2774	XORQ R8, R13
  2775	ROLQ $0x15, R13
  2776	MOVQ R13, AX
  2777	ANDQ R14, AX
  2778	XORQ R12, AX
  2779	MOVQ AX, 16(SP)
  2780	NOTQ R12
  2781	ORQ  R10, R14
  2782	ORQ  R13, R12
  2783	XORQ R13, R14
  2784	XORQ R11, R12
  2785	MOVQ R14, 24(SP)
  2786	MOVQ R12, 8(SP)
  2787	MOVQ R12, BP
  2788
  2789	// Result g
  2790	MOVQ 72(DI), R11
  2791	XORQ R9, R11
  2792	MOVQ 80(DI), R12
  2793	ROLQ $0x14, R11
  2794	XORQ BX, R12
  2795	ROLQ $0x03, R12
  2796	MOVQ 24(DI), R10
  2797	MOVQ R11, AX
  2798	ORQ  R12, AX
  2799	XORQ R8, R10
  2800	MOVQ 128(DI), R13
  2801	MOVQ 176(DI), R14
  2802	ROLQ $0x1c, R10
  2803	XORQ R10, AX
  2804	MOVQ AX, 40(SP)
  2805	XORQ AX, SI
  2806	XORQ CX, R13
  2807	ROLQ $0x2d, R13
  2808	MOVQ R12, AX
  2809	ANDQ R13, AX
  2810	XORQ R11, AX
  2811	MOVQ AX, 48(SP)
  2812	XORQ AX, BP
  2813	XORQ DX, R14
  2814	ROLQ $0x3d, R14
  2815	MOVQ R14, AX
  2816	ORQ  R10, AX
  2817	XORQ R13, AX
  2818	MOVQ AX, 64(SP)
  2819	ANDQ R11, R10
  2820	XORQ R14, R10
  2821	MOVQ R10, 72(SP)
  2822	NOTQ R14
  2823	XORQ R10, R15
  2824	ORQ  R14, R13
  2825	XORQ R12, R13
  2826	MOVQ R13, 56(SP)
  2827
  2828	// Result k
  2829	MOVQ 8(DI), R10
  2830	MOVQ 56(DI), R11
  2831	MOVQ 104(DI), R12
  2832	MOVQ 152(DI), R13
  2833	MOVQ 160(DI), R14
  2834	XORQ DX, R11
  2835	ROLQ $0x06, R11
  2836	XORQ R8, R12
  2837	ROLQ $0x19, R12
  2838	MOVQ R11, AX
  2839	ORQ  R12, AX
  2840	XORQ CX, R10
  2841	ROLQ $0x01, R10
  2842	XORQ R10, AX
  2843	MOVQ AX, 80(SP)
  2844	XORQ AX, SI
  2845	XORQ R9, R13
  2846	ROLQ $0x08, R13
  2847	MOVQ R12, AX
  2848	ANDQ R13, AX
  2849	XORQ R11, AX
  2850	MOVQ AX, 88(SP)
  2851	XORQ AX, BP
  2852	XORQ BX, R14
  2853	ROLQ $0x12, R14
  2854	NOTQ R13
  2855	MOVQ R13, AX
  2856	ANDQ R14, AX
  2857	XORQ R12, AX
  2858	MOVQ AX, 96(SP)
  2859	MOVQ R14, AX
  2860	ORQ  R10, AX
  2861	XORQ R13, AX
  2862	MOVQ AX, 104(SP)
  2863	ANDQ R11, R10
  2864	XORQ R14, R10
  2865	MOVQ R10, 112(SP)
  2866	XORQ R10, R15
  2867
  2868	// Result m
  2869	MOVQ 40(DI), R11
  2870	XORQ BX, R11
  2871	MOVQ 88(DI), R12
  2872	ROLQ $0x24, R11
  2873	XORQ CX, R12
  2874	MOVQ 32(DI), R10
  2875	ROLQ $0x0a, R12
  2876	MOVQ R11, AX
  2877	MOVQ 136(DI), R13
  2878	ANDQ R12, AX
  2879	XORQ R9, R10
  2880	MOVQ 184(DI), R14
  2881	ROLQ $0x1b, R10
  2882	XORQ R10, AX
  2883	MOVQ AX, 120(SP)
  2884	XORQ AX, SI
  2885	XORQ DX, R13
  2886	ROLQ $0x0f, R13
  2887	MOVQ R12, AX
  2888	ORQ  R13, AX
  2889	XORQ R11, AX
  2890	MOVQ AX, 128(SP)
  2891	XORQ AX, BP
  2892	XORQ R8, R14
  2893	ROLQ $0x38, R14
  2894	NOTQ R13
  2895	MOVQ R13, AX
  2896	ORQ  R14, AX
  2897	XORQ R12, AX
  2898	MOVQ AX, 136(SP)
  2899	ORQ  R10, R11
  2900	XORQ R14, R11
  2901	MOVQ R11, 152(SP)
  2902	ANDQ R10, R14
  2903	XORQ R13, R14
  2904	MOVQ R14, 144(SP)
  2905	XORQ R11, R15
  2906
  2907	// Result s
  2908	MOVQ 16(DI), R10
  2909	MOVQ 64(DI), R11
  2910	MOVQ 112(DI), R12
  2911	XORQ DX, R10
  2912	MOVQ 120(DI), R13
  2913	ROLQ $0x3e, R10
  2914	XORQ R8, R11
  2915	MOVQ 168(DI), R14
  2916	ROLQ $0x37, R11
  2917	XORQ R9, R12
  2918	MOVQ R10, R9
  2919	XORQ CX, R14
  2920	ROLQ $0x02, R14
  2921	ANDQ R11, R9
  2922	XORQ R14, R9
  2923	MOVQ R9, 192(SP)
  2924	ROLQ $0x27, R12
  2925	XORQ R9, R15
  2926	NOTQ R11
  2927	XORQ BX, R13
  2928	MOVQ R11, BX
  2929	ANDQ R12, BX
  2930	XORQ R10, BX
  2931	MOVQ BX, 160(SP)
  2932	XORQ BX, SI
  2933	ROLQ $0x29, R13
  2934	MOVQ R12, CX
  2935	ORQ  R13, CX
  2936	XORQ R11, CX
  2937	MOVQ CX, 168(SP)
  2938	XORQ CX, BP
  2939	MOVQ R13, DX
  2940	MOVQ R14, R8
  2941	ANDQ R14, DX
  2942	ORQ  R10, R8
  2943	XORQ R12, DX
  2944	XORQ R13, R8
  2945	MOVQ DX, 176(SP)
  2946	MOVQ R8, 184(SP)
  2947
  2948	// Prepare round
  2949	MOVQ BP, BX
  2950	ROLQ $0x01, BX
  2951	MOVQ 16(SP), R12
  2952	XORQ 56(SP), DX
  2953	XORQ R15, BX
  2954	XORQ 96(SP), R12
  2955	XORQ 136(SP), DX
  2956	XORQ DX, R12
  2957	MOVQ R12, CX
  2958	ROLQ $0x01, CX
  2959	MOVQ 24(SP), R13
  2960	XORQ 64(SP), R8
  2961	XORQ SI, CX
  2962	XORQ 104(SP), R13
  2963	XORQ 144(SP), R8
  2964	XORQ R8, R13
  2965	MOVQ R13, DX
  2966	ROLQ $0x01, DX
  2967	MOVQ R15, R8
  2968	XORQ BP, DX
  2969	ROLQ $0x01, R8
  2970	MOVQ SI, R9
  2971	XORQ R12, R8
  2972	ROLQ $0x01, R9
  2973
  2974	// Result b
  2975	MOVQ (SP), R10
  2976	MOVQ 48(SP), R11
  2977	XORQ R13, R9
  2978	MOVQ 96(SP), R12
  2979	MOVQ 144(SP), R13
  2980	MOVQ 192(SP), R14
  2981	XORQ CX, R11
  2982	ROLQ $0x2c, R11
  2983	XORQ DX, R12
  2984	XORQ BX, R10
  2985	ROLQ $0x2b, R12
  2986	MOVQ R11, SI
  2987	MOVQ $0x800000000000008b, AX
  2988	ORQ  R12, SI
  2989	XORQ R10, AX
  2990	XORQ AX, SI
  2991	MOVQ SI, (DI)
  2992	XORQ R9, R14
  2993	ROLQ $0x0e, R14
  2994	MOVQ R10, R15
  2995	ANDQ R11, R15
  2996	XORQ R14, R15
  2997	MOVQ R15, 32(DI)
  2998	XORQ R8, R13
  2999	ROLQ $0x15, R13
  3000	MOVQ R13, AX
  3001	ANDQ R14, AX
  3002	XORQ R12, AX
  3003	MOVQ AX, 16(DI)
  3004	NOTQ R12
  3005	ORQ  R10, R14
  3006	ORQ  R13, R12
  3007	XORQ R13, R14
  3008	XORQ R11, R12
  3009	MOVQ R14, 24(DI)
  3010	MOVQ R12, 8(DI)
  3011	MOVQ R12, BP
  3012
  3013	// Result g
  3014	MOVQ 72(SP), R11
  3015	XORQ R9, R11
  3016	MOVQ 80(SP), R12
  3017	ROLQ $0x14, R11
  3018	XORQ BX, R12
  3019	ROLQ $0x03, R12
  3020	MOVQ 24(SP), R10
  3021	MOVQ R11, AX
  3022	ORQ  R12, AX
  3023	XORQ R8, R10
  3024	MOVQ 128(SP), R13
  3025	MOVQ 176(SP), R14
  3026	ROLQ $0x1c, R10
  3027	XORQ R10, AX
  3028	MOVQ AX, 40(DI)
  3029	XORQ AX, SI
  3030	XORQ CX, R13
  3031	ROLQ $0x2d, R13
  3032	MOVQ R12, AX
  3033	ANDQ R13, AX
  3034	XORQ R11, AX
  3035	MOVQ AX, 48(DI)
  3036	XORQ AX, BP
  3037	XORQ DX, R14
  3038	ROLQ $0x3d, R14
  3039	MOVQ R14, AX
  3040	ORQ  R10, AX
  3041	XORQ R13, AX
  3042	MOVQ AX, 64(DI)
  3043	ANDQ R11, R10
  3044	XORQ R14, R10
  3045	MOVQ R10, 72(DI)
  3046	NOTQ R14
  3047	XORQ R10, R15
  3048	ORQ  R14, R13
  3049	XORQ R12, R13
  3050	MOVQ R13, 56(DI)
  3051
  3052	// Result k
  3053	MOVQ 8(SP), R10
  3054	MOVQ 56(SP), R11
  3055	MOVQ 104(SP), R12
  3056	MOVQ 152(SP), R13
  3057	MOVQ 160(SP), R14
  3058	XORQ DX, R11
  3059	ROLQ $0x06, R11
  3060	XORQ R8, R12
  3061	ROLQ $0x19, R12
  3062	MOVQ R11, AX
  3063	ORQ  R12, AX
  3064	XORQ CX, R10
  3065	ROLQ $0x01, R10
  3066	XORQ R10, AX
  3067	MOVQ AX, 80(DI)
  3068	XORQ AX, SI
  3069	XORQ R9, R13
  3070	ROLQ $0x08, R13
  3071	MOVQ R12, AX
  3072	ANDQ R13, AX
  3073	XORQ R11, AX
  3074	MOVQ AX, 88(DI)
  3075	XORQ AX, BP
  3076	XORQ BX, R14
  3077	ROLQ $0x12, R14
  3078	NOTQ R13
  3079	MOVQ R13, AX
  3080	ANDQ R14, AX
  3081	XORQ R12, AX
  3082	MOVQ AX, 96(DI)
  3083	MOVQ R14, AX
  3084	ORQ  R10, AX
  3085	XORQ R13, AX
  3086	MOVQ AX, 104(DI)
  3087	ANDQ R11, R10
  3088	XORQ R14, R10
  3089	MOVQ R10, 112(DI)
  3090	XORQ R10, R15
  3091
  3092	// Result m
  3093	MOVQ 40(SP), R11
  3094	XORQ BX, R11
  3095	MOVQ 88(SP), R12
  3096	ROLQ $0x24, R11
  3097	XORQ CX, R12
  3098	MOVQ 32(SP), R10
  3099	ROLQ $0x0a, R12
  3100	MOVQ R11, AX
  3101	MOVQ 136(SP), R13
  3102	ANDQ R12, AX
  3103	XORQ R9, R10
  3104	MOVQ 184(SP), R14
  3105	ROLQ $0x1b, R10
  3106	XORQ R10, AX
  3107	MOVQ AX, 120(DI)
  3108	XORQ AX, SI
  3109	XORQ DX, R13
  3110	ROLQ $0x0f, R13
  3111	MOVQ R12, AX
  3112	ORQ  R13, AX
  3113	XORQ R11, AX
  3114	MOVQ AX, 128(DI)
  3115	XORQ AX, BP
  3116	XORQ R8, R14
  3117	ROLQ $0x38, R14
  3118	NOTQ R13
  3119	MOVQ R13, AX
  3120	ORQ  R14, AX
  3121	XORQ R12, AX
  3122	MOVQ AX, 136(DI)
  3123	ORQ  R10, R11
  3124	XORQ R14, R11
  3125	MOVQ R11, 152(DI)
  3126	ANDQ R10, R14
  3127	XORQ R13, R14
  3128	MOVQ R14, 144(DI)
  3129	XORQ R11, R15
  3130
  3131	// Result s
  3132	MOVQ 16(SP), R10
  3133	MOVQ 64(SP), R11
  3134	MOVQ 112(SP), R12
  3135	XORQ DX, R10
  3136	MOVQ 120(SP), R13
  3137	ROLQ $0x3e, R10
  3138	XORQ R8, R11
  3139	MOVQ 168(SP), R14
  3140	ROLQ $0x37, R11
  3141	XORQ R9, R12
  3142	MOVQ R10, R9
  3143	XORQ CX, R14
  3144	ROLQ $0x02, R14
  3145	ANDQ R11, R9
  3146	XORQ R14, R9
  3147	MOVQ R9, 192(DI)
  3148	ROLQ $0x27, R12
  3149	XORQ R9, R15
  3150	NOTQ R11
  3151	XORQ BX, R13
  3152	MOVQ R11, BX
  3153	ANDQ R12, BX
  3154	XORQ R10, BX
  3155	MOVQ BX, 160(DI)
  3156	XORQ BX, SI
  3157	ROLQ $0x29, R13
  3158	MOVQ R12, CX
  3159	ORQ  R13, CX
  3160	XORQ R11, CX
  3161	MOVQ CX, 168(DI)
  3162	XORQ CX, BP
  3163	MOVQ R13, DX
  3164	MOVQ R14, R8
  3165	ANDQ R14, DX
  3166	ORQ  R10, R8
  3167	XORQ R12, DX
  3168	XORQ R13, R8
  3169	MOVQ DX, 176(DI)
  3170	MOVQ R8, 184(DI)
  3171
  3172	// Prepare round
  3173	MOVQ BP, BX
  3174	ROLQ $0x01, BX
  3175	MOVQ 16(DI), R12
  3176	XORQ 56(DI), DX
  3177	XORQ R15, BX
  3178	XORQ 96(DI), R12
  3179	XORQ 136(DI), DX
  3180	XORQ DX, R12
  3181	MOVQ R12, CX
  3182	ROLQ $0x01, CX
  3183	MOVQ 24(DI), R13
  3184	XORQ 64(DI), R8
  3185	XORQ SI, CX
  3186	XORQ 104(DI), R13
  3187	XORQ 144(DI), R8
  3188	XORQ R8, R13
  3189	MOVQ R13, DX
  3190	ROLQ $0x01, DX
  3191	MOVQ R15, R8
  3192	XORQ BP, DX
  3193	ROLQ $0x01, R8
  3194	MOVQ SI, R9
  3195	XORQ R12, R8
  3196	ROLQ $0x01, R9
  3197
  3198	// Result b
  3199	MOVQ (DI), R10
  3200	MOVQ 48(DI), R11
  3201	XORQ R13, R9
  3202	MOVQ 96(DI), R12
  3203	MOVQ 144(DI), R13
  3204	MOVQ 192(DI), R14
  3205	XORQ CX, R11
  3206	ROLQ $0x2c, R11
  3207	XORQ DX, R12
  3208	XORQ BX, R10
  3209	ROLQ $0x2b, R12
  3210	MOVQ R11, SI
  3211	MOVQ $0x8000000000008089, AX
  3212	ORQ  R12, SI
  3213	XORQ R10, AX
  3214	XORQ AX, SI
  3215	MOVQ SI, (SP)
  3216	XORQ R9, R14
  3217	ROLQ $0x0e, R14
  3218	MOVQ R10, R15
  3219	ANDQ R11, R15
  3220	XORQ R14, R15
  3221	MOVQ R15, 32(SP)
  3222	XORQ R8, R13
  3223	ROLQ $0x15, R13
  3224	MOVQ R13, AX
  3225	ANDQ R14, AX
  3226	XORQ R12, AX
  3227	MOVQ AX, 16(SP)
  3228	NOTQ R12
  3229	ORQ  R10, R14
  3230	ORQ  R13, R12
  3231	XORQ R13, R14
  3232	XORQ R11, R12
  3233	MOVQ R14, 24(SP)
  3234	MOVQ R12, 8(SP)
  3235	MOVQ R12, BP
  3236
  3237	// Result g
  3238	MOVQ 72(DI), R11
  3239	XORQ R9, R11
  3240	MOVQ 80(DI), R12
  3241	ROLQ $0x14, R11
  3242	XORQ BX, R12
  3243	ROLQ $0x03, R12
  3244	MOVQ 24(DI), R10
  3245	MOVQ R11, AX
  3246	ORQ  R12, AX
  3247	XORQ R8, R10
  3248	MOVQ 128(DI), R13
  3249	MOVQ 176(DI), R14
  3250	ROLQ $0x1c, R10
  3251	XORQ R10, AX
  3252	MOVQ AX, 40(SP)
  3253	XORQ AX, SI
  3254	XORQ CX, R13
  3255	ROLQ $0x2d, R13
  3256	MOVQ R12, AX
  3257	ANDQ R13, AX
  3258	XORQ R11, AX
  3259	MOVQ AX, 48(SP)
  3260	XORQ AX, BP
  3261	XORQ DX, R14
  3262	ROLQ $0x3d, R14
  3263	MOVQ R14, AX
  3264	ORQ  R10, AX
  3265	XORQ R13, AX
  3266	MOVQ AX, 64(SP)
  3267	ANDQ R11, R10
  3268	XORQ R14, R10
  3269	MOVQ R10, 72(SP)
  3270	NOTQ R14
  3271	XORQ R10, R15
  3272	ORQ  R14, R13
  3273	XORQ R12, R13
  3274	MOVQ R13, 56(SP)
  3275
  3276	// Result k
  3277	MOVQ 8(DI), R10
  3278	MOVQ 56(DI), R11
  3279	MOVQ 104(DI), R12
  3280	MOVQ 152(DI), R13
  3281	MOVQ 160(DI), R14
  3282	XORQ DX, R11
  3283	ROLQ $0x06, R11
  3284	XORQ R8, R12
  3285	ROLQ $0x19, R12
  3286	MOVQ R11, AX
  3287	ORQ  R12, AX
  3288	XORQ CX, R10
  3289	ROLQ $0x01, R10
  3290	XORQ R10, AX
  3291	MOVQ AX, 80(SP)
  3292	XORQ AX, SI
  3293	XORQ R9, R13
  3294	ROLQ $0x08, R13
  3295	MOVQ R12, AX
  3296	ANDQ R13, AX
  3297	XORQ R11, AX
  3298	MOVQ AX, 88(SP)
  3299	XORQ AX, BP
  3300	XORQ BX, R14
  3301	ROLQ $0x12, R14
  3302	NOTQ R13
  3303	MOVQ R13, AX
  3304	ANDQ R14, AX
  3305	XORQ R12, AX
  3306	MOVQ AX, 96(SP)
  3307	MOVQ R14, AX
  3308	ORQ  R10, AX
  3309	XORQ R13, AX
  3310	MOVQ AX, 104(SP)
  3311	ANDQ R11, R10
  3312	XORQ R14, R10
  3313	MOVQ R10, 112(SP)
  3314	XORQ R10, R15
  3315
  3316	// Result m
  3317	MOVQ 40(DI), R11
  3318	XORQ BX, R11
  3319	MOVQ 88(DI), R12
  3320	ROLQ $0x24, R11
  3321	XORQ CX, R12
  3322	MOVQ 32(DI), R10
  3323	ROLQ $0x0a, R12
  3324	MOVQ R11, AX
  3325	MOVQ 136(DI), R13
  3326	ANDQ R12, AX
  3327	XORQ R9, R10
  3328	MOVQ 184(DI), R14
  3329	ROLQ $0x1b, R10
  3330	XORQ R10, AX
  3331	MOVQ AX, 120(SP)
  3332	XORQ AX, SI
  3333	XORQ DX, R13
  3334	ROLQ $0x0f, R13
  3335	MOVQ R12, AX
  3336	ORQ  R13, AX
  3337	XORQ R11, AX
  3338	MOVQ AX, 128(SP)
  3339	XORQ AX, BP
  3340	XORQ R8, R14
  3341	ROLQ $0x38, R14
  3342	NOTQ R13
  3343	MOVQ R13, AX
  3344	ORQ  R14, AX
  3345	XORQ R12, AX
  3346	MOVQ AX, 136(SP)
  3347	ORQ  R10, R11
  3348	XORQ R14, R11
  3349	MOVQ R11, 152(SP)
  3350	ANDQ R10, R14
  3351	XORQ R13, R14
  3352	MOVQ R14, 144(SP)
  3353	XORQ R11, R15
  3354
  3355	// Result s
  3356	MOVQ 16(DI), R10
  3357	MOVQ 64(DI), R11
  3358	MOVQ 112(DI), R12
  3359	XORQ DX, R10
  3360	MOVQ 120(DI), R13
  3361	ROLQ $0x3e, R10
  3362	XORQ R8, R11
  3363	MOVQ 168(DI), R14
  3364	ROLQ $0x37, R11
  3365	XORQ R9, R12
  3366	MOVQ R10, R9
  3367	XORQ CX, R14
  3368	ROLQ $0x02, R14
  3369	ANDQ R11, R9
  3370	XORQ R14, R9
  3371	MOVQ R9, 192(SP)
  3372	ROLQ $0x27, R12
  3373	XORQ R9, R15
  3374	NOTQ R11
  3375	XORQ BX, R13
  3376	MOVQ R11, BX
  3377	ANDQ R12, BX
  3378	XORQ R10, BX
  3379	MOVQ BX, 160(SP)
  3380	XORQ BX, SI
  3381	ROLQ $0x29, R13
  3382	MOVQ R12, CX
  3383	ORQ  R13, CX
  3384	XORQ R11, CX
  3385	MOVQ CX, 168(SP)
  3386	XORQ CX, BP
  3387	MOVQ R13, DX
  3388	MOVQ R14, R8
  3389	ANDQ R14, DX
  3390	ORQ  R10, R8
  3391	XORQ R12, DX
  3392	XORQ R13, R8
  3393	MOVQ DX, 176(SP)
  3394	MOVQ R8, 184(SP)
  3395
  3396	// Prepare round
  3397	MOVQ BP, BX
  3398	ROLQ $0x01, BX
  3399	MOVQ 16(SP), R12
  3400	XORQ 56(SP), DX
  3401	XORQ R15, BX
  3402	XORQ 96(SP), R12
  3403	XORQ 136(SP), DX
  3404	XORQ DX, R12
  3405	MOVQ R12, CX
  3406	ROLQ $0x01, CX
  3407	MOVQ 24(SP), R13
  3408	XORQ 64(SP), R8
  3409	XORQ SI, CX
  3410	XORQ 104(SP), R13
  3411	XORQ 144(SP), R8
  3412	XORQ R8, R13
  3413	MOVQ R13, DX
  3414	ROLQ $0x01, DX
  3415	MOVQ R15, R8
  3416	XORQ BP, DX
  3417	ROLQ $0x01, R8
  3418	MOVQ SI, R9
  3419	XORQ R12, R8
  3420	ROLQ $0x01, R9
  3421
  3422	// Result b
  3423	MOVQ (SP), R10
  3424	MOVQ 48(SP), R11
  3425	XORQ R13, R9
  3426	MOVQ 96(SP), R12
  3427	MOVQ 144(SP), R13
  3428	MOVQ 192(SP), R14
  3429	XORQ CX, R11
  3430	ROLQ $0x2c, R11
  3431	XORQ DX, R12
  3432	XORQ BX, R10
  3433	ROLQ $0x2b, R12
  3434	MOVQ R11, SI
  3435	MOVQ $0x8000000000008003, AX
  3436	ORQ  R12, SI
  3437	XORQ R10, AX
  3438	XORQ AX, SI
  3439	MOVQ SI, (DI)
  3440	XORQ R9, R14
  3441	ROLQ $0x0e, R14
  3442	MOVQ R10, R15
  3443	ANDQ R11, R15
  3444	XORQ R14, R15
  3445	MOVQ R15, 32(DI)
  3446	XORQ R8, R13
  3447	ROLQ $0x15, R13
  3448	MOVQ R13, AX
  3449	ANDQ R14, AX
  3450	XORQ R12, AX
  3451	MOVQ AX, 16(DI)
  3452	NOTQ R12
  3453	ORQ  R10, R14
  3454	ORQ  R13, R12
  3455	XORQ R13, R14
  3456	XORQ R11, R12
  3457	MOVQ R14, 24(DI)
  3458	MOVQ R12, 8(DI)
  3459	MOVQ R12, BP
  3460
  3461	// Result g
  3462	MOVQ 72(SP), R11
  3463	XORQ R9, R11
  3464	MOVQ 80(SP), R12
  3465	ROLQ $0x14, R11
  3466	XORQ BX, R12
  3467	ROLQ $0x03, R12
  3468	MOVQ 24(SP), R10
  3469	MOVQ R11, AX
  3470	ORQ  R12, AX
  3471	XORQ R8, R10
  3472	MOVQ 128(SP), R13
  3473	MOVQ 176(SP), R14
  3474	ROLQ $0x1c, R10
  3475	XORQ R10, AX
  3476	MOVQ AX, 40(DI)
  3477	XORQ AX, SI
  3478	XORQ CX, R13
  3479	ROLQ $0x2d, R13
  3480	MOVQ R12, AX
  3481	ANDQ R13, AX
  3482	XORQ R11, AX
  3483	MOVQ AX, 48(DI)
  3484	XORQ AX, BP
  3485	XORQ DX, R14
  3486	ROLQ $0x3d, R14
  3487	MOVQ R14, AX
  3488	ORQ  R10, AX
  3489	XORQ R13, AX
  3490	MOVQ AX, 64(DI)
  3491	ANDQ R11, R10
  3492	XORQ R14, R10
  3493	MOVQ R10, 72(DI)
  3494	NOTQ R14
  3495	XORQ R10, R15
  3496	ORQ  R14, R13
  3497	XORQ R12, R13
  3498	MOVQ R13, 56(DI)
  3499
  3500	// Result k
  3501	MOVQ 8(SP), R10
  3502	MOVQ 56(SP), R11
  3503	MOVQ 104(SP), R12
  3504	MOVQ 152(SP), R13
  3505	MOVQ 160(SP), R14
  3506	XORQ DX, R11
  3507	ROLQ $0x06, R11
  3508	XORQ R8, R12
  3509	ROLQ $0x19, R12
  3510	MOVQ R11, AX
  3511	ORQ  R12, AX
  3512	XORQ CX, R10
  3513	ROLQ $0x01, R10
  3514	XORQ R10, AX
  3515	MOVQ AX, 80(DI)
  3516	XORQ AX, SI
  3517	XORQ R9, R13
  3518	ROLQ $0x08, R13
  3519	MOVQ R12, AX
  3520	ANDQ R13, AX
  3521	XORQ R11, AX
  3522	MOVQ AX, 88(DI)
  3523	XORQ AX, BP
  3524	XORQ BX, R14
  3525	ROLQ $0x12, R14
  3526	NOTQ R13
  3527	MOVQ R13, AX
  3528	ANDQ R14, AX
  3529	XORQ R12, AX
  3530	MOVQ AX, 96(DI)
  3531	MOVQ R14, AX
  3532	ORQ  R10, AX
  3533	XORQ R13, AX
  3534	MOVQ AX, 104(DI)
  3535	ANDQ R11, R10
  3536	XORQ R14, R10
  3537	MOVQ R10, 112(DI)
  3538	XORQ R10, R15
  3539
  3540	// Result m
  3541	MOVQ 40(SP), R11
  3542	XORQ BX, R11
  3543	MOVQ 88(SP), R12
  3544	ROLQ $0x24, R11
  3545	XORQ CX, R12
  3546	MOVQ 32(SP), R10
  3547	ROLQ $0x0a, R12
  3548	MOVQ R11, AX
  3549	MOVQ 136(SP), R13
  3550	ANDQ R12, AX
  3551	XORQ R9, R10
  3552	MOVQ 184(SP), R14
  3553	ROLQ $0x1b, R10
  3554	XORQ R10, AX
  3555	MOVQ AX, 120(DI)
  3556	XORQ AX, SI
  3557	XORQ DX, R13
  3558	ROLQ $0x0f, R13
  3559	MOVQ R12, AX
  3560	ORQ  R13, AX
  3561	XORQ R11, AX
  3562	MOVQ AX, 128(DI)
  3563	XORQ AX, BP
  3564	XORQ R8, R14
  3565	ROLQ $0x38, R14
  3566	NOTQ R13
  3567	MOVQ R13, AX
  3568	ORQ  R14, AX
  3569	XORQ R12, AX
  3570	MOVQ AX, 136(DI)
  3571	ORQ  R10, R11
  3572	XORQ R14, R11
  3573	MOVQ R11, 152(DI)
  3574	ANDQ R10, R14
  3575	XORQ R13, R14
  3576	MOVQ R14, 144(DI)
  3577	XORQ R11, R15
  3578
  3579	// Result s
  3580	MOVQ 16(SP), R10
  3581	MOVQ 64(SP), R11
  3582	MOVQ 112(SP), R12
  3583	XORQ DX, R10
  3584	MOVQ 120(SP), R13
  3585	ROLQ $0x3e, R10
  3586	XORQ R8, R11
  3587	MOVQ 168(SP), R14
  3588	ROLQ $0x37, R11
  3589	XORQ R9, R12
  3590	MOVQ R10, R9
  3591	XORQ CX, R14
  3592	ROLQ $0x02, R14
  3593	ANDQ R11, R9
  3594	XORQ R14, R9
  3595	MOVQ R9, 192(DI)
  3596	ROLQ $0x27, R12
  3597	XORQ R9, R15
  3598	NOTQ R11
  3599	XORQ BX, R13
  3600	MOVQ R11, BX
  3601	ANDQ R12, BX
  3602	XORQ R10, BX
  3603	MOVQ BX, 160(DI)
  3604	XORQ BX, SI
  3605	ROLQ $0x29, R13
  3606	MOVQ R12, CX
  3607	ORQ  R13, CX
  3608	XORQ R11, CX
  3609	MOVQ CX, 168(DI)
  3610	XORQ CX, BP
  3611	MOVQ R13, DX
  3612	MOVQ R14, R8
  3613	ANDQ R14, DX
  3614	ORQ  R10, R8
  3615	XORQ R12, DX
  3616	XORQ R13, R8
  3617	MOVQ DX, 176(DI)
  3618	MOVQ R8, 184(DI)
  3619
  3620	// Prepare round
  3621	MOVQ BP, BX
  3622	ROLQ $0x01, BX
  3623	MOVQ 16(DI), R12
  3624	XORQ 56(DI), DX
  3625	XORQ R15, BX
  3626	XORQ 96(DI), R12
  3627	XORQ 136(DI), DX
  3628	XORQ DX, R12
  3629	MOVQ R12, CX
  3630	ROLQ $0x01, CX
  3631	MOVQ 24(DI), R13
  3632	XORQ 64(DI), R8
  3633	XORQ SI, CX
  3634	XORQ 104(DI), R13
  3635	XORQ 144(DI), R8
  3636	XORQ R8, R13
  3637	MOVQ R13, DX
  3638	ROLQ $0x01, DX
  3639	MOVQ R15, R8
  3640	XORQ BP, DX
  3641	ROLQ $0x01, R8
  3642	MOVQ SI, R9
  3643	XORQ R12, R8
  3644	ROLQ $0x01, R9
  3645
  3646	// Result b
  3647	MOVQ (DI), R10
  3648	MOVQ 48(DI), R11
  3649	XORQ R13, R9
  3650	MOVQ 96(DI), R12
  3651	MOVQ 144(DI), R13
  3652	MOVQ 192(DI), R14
  3653	XORQ CX, R11
  3654	ROLQ $0x2c, R11
  3655	XORQ DX, R12
  3656	XORQ BX, R10
  3657	ROLQ $0x2b, R12
  3658	MOVQ R11, SI
  3659	MOVQ $0x8000000000008002, AX
  3660	ORQ  R12, SI
  3661	XORQ R10, AX
  3662	XORQ AX, SI
  3663	MOVQ SI, (SP)
  3664	XORQ R9, R14
  3665	ROLQ $0x0e, R14
  3666	MOVQ R10, R15
  3667	ANDQ R11, R15
  3668	XORQ R14, R15
  3669	MOVQ R15, 32(SP)
  3670	XORQ R8, R13
  3671	ROLQ $0x15, R13
  3672	MOVQ R13, AX
  3673	ANDQ R14, AX
  3674	XORQ R12, AX
  3675	MOVQ AX, 16(SP)
  3676	NOTQ R12
  3677	ORQ  R10, R14
  3678	ORQ  R13, R12
  3679	XORQ R13, R14
  3680	XORQ R11, R12
  3681	MOVQ R14, 24(SP)
  3682	MOVQ R12, 8(SP)
  3683	MOVQ R12, BP
  3684
  3685	// Result g
  3686	MOVQ 72(DI), R11
  3687	XORQ R9, R11
  3688	MOVQ 80(DI), R12
  3689	ROLQ $0x14, R11
  3690	XORQ BX, R12
  3691	ROLQ $0x03, R12
  3692	MOVQ 24(DI), R10
  3693	MOVQ R11, AX
  3694	ORQ  R12, AX
  3695	XORQ R8, R10
  3696	MOVQ 128(DI), R13
  3697	MOVQ 176(DI), R14
  3698	ROLQ $0x1c, R10
  3699	XORQ R10, AX
  3700	MOVQ AX, 40(SP)
  3701	XORQ AX, SI
  3702	XORQ CX, R13
  3703	ROLQ $0x2d, R13
  3704	MOVQ R12, AX
  3705	ANDQ R13, AX
  3706	XORQ R11, AX
  3707	MOVQ AX, 48(SP)
  3708	XORQ AX, BP
  3709	XORQ DX, R14
  3710	ROLQ $0x3d, R14
  3711	MOVQ R14, AX
  3712	ORQ  R10, AX
  3713	XORQ R13, AX
  3714	MOVQ AX, 64(SP)
  3715	ANDQ R11, R10
  3716	XORQ R14, R10
  3717	MOVQ R10, 72(SP)
  3718	NOTQ R14
  3719	XORQ R10, R15
  3720	ORQ  R14, R13
  3721	XORQ R12, R13
  3722	MOVQ R13, 56(SP)
  3723
  3724	// Result k
  3725	MOVQ 8(DI), R10
  3726	MOVQ 56(DI), R11
  3727	MOVQ 104(DI), R12
  3728	MOVQ 152(DI), R13
  3729	MOVQ 160(DI), R14
  3730	XORQ DX, R11
  3731	ROLQ $0x06, R11
  3732	XORQ R8, R12
  3733	ROLQ $0x19, R12
  3734	MOVQ R11, AX
  3735	ORQ  R12, AX
  3736	XORQ CX, R10
  3737	ROLQ $0x01, R10
  3738	XORQ R10, AX
  3739	MOVQ AX, 80(SP)
  3740	XORQ AX, SI
  3741	XORQ R9, R13
  3742	ROLQ $0x08, R13
  3743	MOVQ R12, AX
  3744	ANDQ R13, AX
  3745	XORQ R11, AX
  3746	MOVQ AX, 88(SP)
  3747	XORQ AX, BP
  3748	XORQ BX, R14
  3749	ROLQ $0x12, R14
  3750	NOTQ R13
  3751	MOVQ R13, AX
  3752	ANDQ R14, AX
  3753	XORQ R12, AX
  3754	MOVQ AX, 96(SP)
  3755	MOVQ R14, AX
  3756	ORQ  R10, AX
  3757	XORQ R13, AX
  3758	MOVQ AX, 104(SP)
  3759	ANDQ R11, R10
  3760	XORQ R14, R10
  3761	MOVQ R10, 112(SP)
  3762	XORQ R10, R15
  3763
  3764	// Result m
  3765	MOVQ 40(DI), R11
  3766	XORQ BX, R11
  3767	MOVQ 88(DI), R12
  3768	ROLQ $0x24, R11
  3769	XORQ CX, R12
  3770	MOVQ 32(DI), R10
  3771	ROLQ $0x0a, R12
  3772	MOVQ R11, AX
  3773	MOVQ 136(DI), R13
  3774	ANDQ R12, AX
  3775	XORQ R9, R10
  3776	MOVQ 184(DI), R14
  3777	ROLQ $0x1b, R10
  3778	XORQ R10, AX
  3779	MOVQ AX, 120(SP)
  3780	XORQ AX, SI
  3781	XORQ DX, R13
  3782	ROLQ $0x0f, R13
  3783	MOVQ R12, AX
  3784	ORQ  R13, AX
  3785	XORQ R11, AX
  3786	MOVQ AX, 128(SP)
  3787	XORQ AX, BP
  3788	XORQ R8, R14
  3789	ROLQ $0x38, R14
  3790	NOTQ R13
  3791	MOVQ R13, AX
  3792	ORQ  R14, AX
  3793	XORQ R12, AX
  3794	MOVQ AX, 136(SP)
  3795	ORQ  R10, R11
  3796	XORQ R14, R11
  3797	MOVQ R11, 152(SP)
  3798	ANDQ R10, R14
  3799	XORQ R13, R14
  3800	MOVQ R14, 144(SP)
  3801	XORQ R11, R15
  3802
  3803	// Result s
  3804	MOVQ 16(DI), R10
  3805	MOVQ 64(DI), R11
  3806	MOVQ 112(DI), R12
  3807	XORQ DX, R10
  3808	MOVQ 120(DI), R13
  3809	ROLQ $0x3e, R10
  3810	XORQ R8, R11
  3811	MOVQ 168(DI), R14
  3812	ROLQ $0x37, R11
  3813	XORQ R9, R12
  3814	MOVQ R10, R9
  3815	XORQ CX, R14
  3816	ROLQ $0x02, R14
  3817	ANDQ R11, R9
  3818	XORQ R14, R9
  3819	MOVQ R9, 192(SP)
  3820	ROLQ $0x27, R12
  3821	XORQ R9, R15
  3822	NOTQ R11
  3823	XORQ BX, R13
  3824	MOVQ R11, BX
  3825	ANDQ R12, BX
  3826	XORQ R10, BX
  3827	MOVQ BX, 160(SP)
  3828	XORQ BX, SI
  3829	ROLQ $0x29, R13
  3830	MOVQ R12, CX
  3831	ORQ  R13, CX
  3832	XORQ R11, CX
  3833	MOVQ CX, 168(SP)
  3834	XORQ CX, BP
  3835	MOVQ R13, DX
  3836	MOVQ R14, R8
  3837	ANDQ R14, DX
  3838	ORQ  R10, R8
  3839	XORQ R12, DX
  3840	XORQ R13, R8
  3841	MOVQ DX, 176(SP)
  3842	MOVQ R8, 184(SP)
  3843
  3844	// Prepare round
  3845	MOVQ BP, BX
  3846	ROLQ $0x01, BX
  3847	MOVQ 16(SP), R12
  3848	XORQ 56(SP), DX
  3849	XORQ R15, BX
  3850	XORQ 96(SP), R12
  3851	XORQ 136(SP), DX
  3852	XORQ DX, R12
  3853	MOVQ R12, CX
  3854	ROLQ $0x01, CX
  3855	MOVQ 24(SP), R13
  3856	XORQ 64(SP), R8
  3857	XORQ SI, CX
  3858	XORQ 104(SP), R13
  3859	XORQ 144(SP), R8
  3860	XORQ R8, R13
  3861	MOVQ R13, DX
  3862	ROLQ $0x01, DX
  3863	MOVQ R15, R8
  3864	XORQ BP, DX
  3865	ROLQ $0x01, R8
  3866	MOVQ SI, R9
  3867	XORQ R12, R8
  3868	ROLQ $0x01, R9
  3869
  3870	// Result b
  3871	MOVQ (SP), R10
  3872	MOVQ 48(SP), R11
  3873	XORQ R13, R9
  3874	MOVQ 96(SP), R12
  3875	MOVQ 144(SP), R13
  3876	MOVQ 192(SP), R14
  3877	XORQ CX, R11
  3878	ROLQ $0x2c, R11
  3879	XORQ DX, R12
  3880	XORQ BX, R10
  3881	ROLQ $0x2b, R12
  3882	MOVQ R11, SI
  3883	MOVQ $0x8000000000000080, AX
  3884	ORQ  R12, SI
  3885	XORQ R10, AX
  3886	XORQ AX, SI
  3887	MOVQ SI, (DI)
  3888	XORQ R9, R14
  3889	ROLQ $0x0e, R14
  3890	MOVQ R10, R15
  3891	ANDQ R11, R15
  3892	XORQ R14, R15
  3893	MOVQ R15, 32(DI)
  3894	XORQ R8, R13
  3895	ROLQ $0x15, R13
  3896	MOVQ R13, AX
  3897	ANDQ R14, AX
  3898	XORQ R12, AX
  3899	MOVQ AX, 16(DI)
  3900	NOTQ R12
  3901	ORQ  R10, R14
  3902	ORQ  R13, R12
  3903	XORQ R13, R14
  3904	XORQ R11, R12
  3905	MOVQ R14, 24(DI)
  3906	MOVQ R12, 8(DI)
  3907	MOVQ R12, BP
  3908
  3909	// Result g
  3910	MOVQ 72(SP), R11
  3911	XORQ R9, R11
  3912	MOVQ 80(SP), R12
  3913	ROLQ $0x14, R11
  3914	XORQ BX, R12
  3915	ROLQ $0x03, R12
  3916	MOVQ 24(SP), R10
  3917	MOVQ R11, AX
  3918	ORQ  R12, AX
  3919	XORQ R8, R10
  3920	MOVQ 128(SP), R13
  3921	MOVQ 176(SP), R14
  3922	ROLQ $0x1c, R10
  3923	XORQ R10, AX
  3924	MOVQ AX, 40(DI)
  3925	XORQ AX, SI
  3926	XORQ CX, R13
  3927	ROLQ $0x2d, R13
  3928	MOVQ R12, AX
  3929	ANDQ R13, AX
  3930	XORQ R11, AX
  3931	MOVQ AX, 48(DI)
  3932	XORQ AX, BP
  3933	XORQ DX, R14
  3934	ROLQ $0x3d, R14
  3935	MOVQ R14, AX
  3936	ORQ  R10, AX
  3937	XORQ R13, AX
  3938	MOVQ AX, 64(DI)
  3939	ANDQ R11, R10
  3940	XORQ R14, R10
  3941	MOVQ R10, 72(DI)
  3942	NOTQ R14
  3943	XORQ R10, R15
  3944	ORQ  R14, R13
  3945	XORQ R12, R13
  3946	MOVQ R13, 56(DI)
  3947
  3948	// Result k
  3949	MOVQ 8(SP), R10
  3950	MOVQ 56(SP), R11
  3951	MOVQ 104(SP), R12
  3952	MOVQ 152(SP), R13
  3953	MOVQ 160(SP), R14
  3954	XORQ DX, R11
  3955	ROLQ $0x06, R11
  3956	XORQ R8, R12
  3957	ROLQ $0x19, R12
  3958	MOVQ R11, AX
  3959	ORQ  R12, AX
  3960	XORQ CX, R10
  3961	ROLQ $0x01, R10
  3962	XORQ R10, AX
  3963	MOVQ AX, 80(DI)
  3964	XORQ AX, SI
  3965	XORQ R9, R13
  3966	ROLQ $0x08, R13
  3967	MOVQ R12, AX
  3968	ANDQ R13, AX
  3969	XORQ R11, AX
  3970	MOVQ AX, 88(DI)
  3971	XORQ AX, BP
  3972	XORQ BX, R14
  3973	ROLQ $0x12, R14
  3974	NOTQ R13
  3975	MOVQ R13, AX
  3976	ANDQ R14, AX
  3977	XORQ R12, AX
  3978	MOVQ AX, 96(DI)
  3979	MOVQ R14, AX
  3980	ORQ  R10, AX
  3981	XORQ R13, AX
  3982	MOVQ AX, 104(DI)
  3983	ANDQ R11, R10
  3984	XORQ R14, R10
  3985	MOVQ R10, 112(DI)
  3986	XORQ R10, R15
  3987
  3988	// Result m
  3989	MOVQ 40(SP), R11
  3990	XORQ BX, R11
  3991	MOVQ 88(SP), R12
  3992	ROLQ $0x24, R11
  3993	XORQ CX, R12
  3994	MOVQ 32(SP), R10
  3995	ROLQ $0x0a, R12
  3996	MOVQ R11, AX
  3997	MOVQ 136(SP), R13
  3998	ANDQ R12, AX
  3999	XORQ R9, R10
  4000	MOVQ 184(SP), R14
  4001	ROLQ $0x1b, R10
  4002	XORQ R10, AX
  4003	MOVQ AX, 120(DI)
  4004	XORQ AX, SI
  4005	XORQ DX, R13
  4006	ROLQ $0x0f, R13
  4007	MOVQ R12, AX
  4008	ORQ  R13, AX
  4009	XORQ R11, AX
  4010	MOVQ AX, 128(DI)
  4011	XORQ AX, BP
  4012	XORQ R8, R14
  4013	ROLQ $0x38, R14
  4014	NOTQ R13
  4015	MOVQ R13, AX
  4016	ORQ  R14, AX
  4017	XORQ R12, AX
  4018	MOVQ AX, 136(DI)
  4019	ORQ  R10, R11
  4020	XORQ R14, R11
  4021	MOVQ R11, 152(DI)
  4022	ANDQ R10, R14
  4023	XORQ R13, R14
  4024	MOVQ R14, 144(DI)
  4025	XORQ R11, R15
  4026
  4027	// Result s
  4028	MOVQ 16(SP), R10
  4029	MOVQ 64(SP), R11
  4030	MOVQ 112(SP), R12
  4031	XORQ DX, R10
  4032	MOVQ 120(SP), R13
  4033	ROLQ $0x3e, R10
  4034	XORQ R8, R11
  4035	MOVQ 168(SP), R14
  4036	ROLQ $0x37, R11
  4037	XORQ R9, R12
  4038	MOVQ R10, R9
  4039	XORQ CX, R14
  4040	ROLQ $0x02, R14
  4041	ANDQ R11, R9
  4042	XORQ R14, R9
  4043	MOVQ R9, 192(DI)
  4044	ROLQ $0x27, R12
  4045	XORQ R9, R15
  4046	NOTQ R11
  4047	XORQ BX, R13
  4048	MOVQ R11, BX
  4049	ANDQ R12, BX
  4050	XORQ R10, BX
  4051	MOVQ BX, 160(DI)
  4052	XORQ BX, SI
  4053	ROLQ $0x29, R13
  4054	MOVQ R12, CX
  4055	ORQ  R13, CX
  4056	XORQ R11, CX
  4057	MOVQ CX, 168(DI)
  4058	XORQ CX, BP
  4059	MOVQ R13, DX
  4060	MOVQ R14, R8
  4061	ANDQ R14, DX
  4062	ORQ  R10, R8
  4063	XORQ R12, DX
  4064	XORQ R13, R8
  4065	MOVQ DX, 176(DI)
  4066	MOVQ R8, 184(DI)
  4067
  4068	// Prepare round
  4069	MOVQ BP, BX
  4070	ROLQ $0x01, BX
  4071	MOVQ 16(DI), R12
  4072	XORQ 56(DI), DX
  4073	XORQ R15, BX
  4074	XORQ 96(DI), R12
  4075	XORQ 136(DI), DX
  4076	XORQ DX, R12
  4077	MOVQ R12, CX
  4078	ROLQ $0x01, CX
  4079	MOVQ 24(DI), R13
  4080	XORQ 64(DI), R8
  4081	XORQ SI, CX
  4082	XORQ 104(DI), R13
  4083	XORQ 144(DI), R8
  4084	XORQ R8, R13
  4085	MOVQ R13, DX
  4086	ROLQ $0x01, DX
  4087	MOVQ R15, R8
  4088	XORQ BP, DX
  4089	ROLQ $0x01, R8
  4090	MOVQ SI, R9
  4091	XORQ R12, R8
  4092	ROLQ $0x01, R9
  4093
  4094	// Result b
  4095	MOVQ (DI), R10
  4096	MOVQ 48(DI), R11
  4097	XORQ R13, R9
  4098	MOVQ 96(DI), R12
  4099	MOVQ 144(DI), R13
  4100	MOVQ 192(DI), R14
  4101	XORQ CX, R11
  4102	ROLQ $0x2c, R11
  4103	XORQ DX, R12
  4104	XORQ BX, R10
  4105	ROLQ $0x2b, R12
  4106	MOVQ R11, SI
  4107	MOVQ $0x000000000000800a, AX
  4108	ORQ  R12, SI
  4109	XORQ R10, AX
  4110	XORQ AX, SI
  4111	MOVQ SI, (SP)
  4112	XORQ R9, R14
  4113	ROLQ $0x0e, R14
  4114	MOVQ R10, R15
  4115	ANDQ R11, R15
  4116	XORQ R14, R15
  4117	MOVQ R15, 32(SP)
  4118	XORQ R8, R13
  4119	ROLQ $0x15, R13
  4120	MOVQ R13, AX
  4121	ANDQ R14, AX
  4122	XORQ R12, AX
  4123	MOVQ AX, 16(SP)
  4124	NOTQ R12
  4125	ORQ  R10, R14
  4126	ORQ  R13, R12
  4127	XORQ R13, R14
  4128	XORQ R11, R12
  4129	MOVQ R14, 24(SP)
  4130	MOVQ R12, 8(SP)
  4131	MOVQ R12, BP
  4132
  4133	// Result g
  4134	MOVQ 72(DI), R11
  4135	XORQ R9, R11
  4136	MOVQ 80(DI), R12
  4137	ROLQ $0x14, R11
  4138	XORQ BX, R12
  4139	ROLQ $0x03, R12
  4140	MOVQ 24(DI), R10
  4141	MOVQ R11, AX
  4142	ORQ  R12, AX
  4143	XORQ R8, R10
  4144	MOVQ 128(DI), R13
  4145	MOVQ 176(DI), R14
  4146	ROLQ $0x1c, R10
  4147	XORQ R10, AX
  4148	MOVQ AX, 40(SP)
  4149	XORQ AX, SI
  4150	XORQ CX, R13
  4151	ROLQ $0x2d, R13
  4152	MOVQ R12, AX
  4153	ANDQ R13, AX
  4154	XORQ R11, AX
  4155	MOVQ AX, 48(SP)
  4156	XORQ AX, BP
  4157	XORQ DX, R14
  4158	ROLQ $0x3d, R14
  4159	MOVQ R14, AX
  4160	ORQ  R10, AX
  4161	XORQ R13, AX
  4162	MOVQ AX, 64(SP)
  4163	ANDQ R11, R10
  4164	XORQ R14, R10
  4165	MOVQ R10, 72(SP)
  4166	NOTQ R14
  4167	XORQ R10, R15
  4168	ORQ  R14, R13
  4169	XORQ R12, R13
  4170	MOVQ R13, 56(SP)
  4171
  4172	// Result k
  4173	MOVQ 8(DI), R10
  4174	MOVQ 56(DI), R11
  4175	MOVQ 104(DI), R12
  4176	MOVQ 152(DI), R13
  4177	MOVQ 160(DI), R14
  4178	XORQ DX, R11
  4179	ROLQ $0x06, R11
  4180	XORQ R8, R12
  4181	ROLQ $0x19, R12
  4182	MOVQ R11, AX
  4183	ORQ  R12, AX
  4184	XORQ CX, R10
  4185	ROLQ $0x01, R10
  4186	XORQ R10, AX
  4187	MOVQ AX, 80(SP)
  4188	XORQ AX, SI
  4189	XORQ R9, R13
  4190	ROLQ $0x08, R13
  4191	MOVQ R12, AX
  4192	ANDQ R13, AX
  4193	XORQ R11, AX
  4194	MOVQ AX, 88(SP)
  4195	XORQ AX, BP
  4196	XORQ BX, R14
  4197	ROLQ $0x12, R14
  4198	NOTQ R13
  4199	MOVQ R13, AX
  4200	ANDQ R14, AX
  4201	XORQ R12, AX
  4202	MOVQ AX, 96(SP)
  4203	MOVQ R14, AX
  4204	ORQ  R10, AX
  4205	XORQ R13, AX
  4206	MOVQ AX, 104(SP)
  4207	ANDQ R11, R10
  4208	XORQ R14, R10
  4209	MOVQ R10, 112(SP)
  4210	XORQ R10, R15
  4211
  4212	// Result m
  4213	MOVQ 40(DI), R11
  4214	XORQ BX, R11
  4215	MOVQ 88(DI), R12
  4216	ROLQ $0x24, R11
  4217	XORQ CX, R12
  4218	MOVQ 32(DI), R10
  4219	ROLQ $0x0a, R12
  4220	MOVQ R11, AX
  4221	MOVQ 136(DI), R13
  4222	ANDQ R12, AX
  4223	XORQ R9, R10
  4224	MOVQ 184(DI), R14
  4225	ROLQ $0x1b, R10
  4226	XORQ R10, AX
  4227	MOVQ AX, 120(SP)
  4228	XORQ AX, SI
  4229	XORQ DX, R13
  4230	ROLQ $0x0f, R13
  4231	MOVQ R12, AX
  4232	ORQ  R13, AX
  4233	XORQ R11, AX
  4234	MOVQ AX, 128(SP)
  4235	XORQ AX, BP
  4236	XORQ R8, R14
  4237	ROLQ $0x38, R14
  4238	NOTQ R13
  4239	MOVQ R13, AX
  4240	ORQ  R14, AX
  4241	XORQ R12, AX
  4242	MOVQ AX, 136(SP)
  4243	ORQ  R10, R11
  4244	XORQ R14, R11
  4245	MOVQ R11, 152(SP)
  4246	ANDQ R10, R14
  4247	XORQ R13, R14
  4248	MOVQ R14, 144(SP)
  4249	XORQ R11, R15
  4250
  4251	// Result s
  4252	MOVQ 16(DI), R10
  4253	MOVQ 64(DI), R11
  4254	MOVQ 112(DI), R12
  4255	XORQ DX, R10
  4256	MOVQ 120(DI), R13
  4257	ROLQ $0x3e, R10
  4258	XORQ R8, R11
  4259	MOVQ 168(DI), R14
  4260	ROLQ $0x37, R11
  4261	XORQ R9, R12
  4262	MOVQ R10, R9
  4263	XORQ CX, R14
  4264	ROLQ $0x02, R14
  4265	ANDQ R11, R9
  4266	XORQ R14, R9
  4267	MOVQ R9, 192(SP)
  4268	ROLQ $0x27, R12
  4269	XORQ R9, R15
  4270	NOTQ R11
  4271	XORQ BX, R13
  4272	MOVQ R11, BX
  4273	ANDQ R12, BX
  4274	XORQ R10, BX
  4275	MOVQ BX, 160(SP)
  4276	XORQ BX, SI
  4277	ROLQ $0x29, R13
  4278	MOVQ R12, CX
  4279	ORQ  R13, CX
  4280	XORQ R11, CX
  4281	MOVQ CX, 168(SP)
  4282	XORQ CX, BP
  4283	MOVQ R13, DX
  4284	MOVQ R14, R8
  4285	ANDQ R14, DX
  4286	ORQ  R10, R8
  4287	XORQ R12, DX
  4288	XORQ R13, R8
  4289	MOVQ DX, 176(SP)
  4290	MOVQ R8, 184(SP)
  4291
  4292	// Prepare round
  4293	MOVQ BP, BX
  4294	ROLQ $0x01, BX
  4295	MOVQ 16(SP), R12
  4296	XORQ 56(SP), DX
  4297	XORQ R15, BX
  4298	XORQ 96(SP), R12
  4299	XORQ 136(SP), DX
  4300	XORQ DX, R12
  4301	MOVQ R12, CX
  4302	ROLQ $0x01, CX
  4303	MOVQ 24(SP), R13
  4304	XORQ 64(SP), R8
  4305	XORQ SI, CX
  4306	XORQ 104(SP), R13
  4307	XORQ 144(SP), R8
  4308	XORQ R8, R13
  4309	MOVQ R13, DX
  4310	ROLQ $0x01, DX
  4311	MOVQ R15, R8
  4312	XORQ BP, DX
  4313	ROLQ $0x01, R8
  4314	MOVQ SI, R9
  4315	XORQ R12, R8
  4316	ROLQ $0x01, R9
  4317
  4318	// Result b
  4319	MOVQ (SP), R10
  4320	MOVQ 48(SP), R11
  4321	XORQ R13, R9
  4322	MOVQ 96(SP), R12
  4323	MOVQ 144(SP), R13
  4324	MOVQ 192(SP), R14
  4325	XORQ CX, R11
  4326	ROLQ $0x2c, R11
  4327	XORQ DX, R12
  4328	XORQ BX, R10
  4329	ROLQ $0x2b, R12
  4330	MOVQ R11, SI
  4331	MOVQ $0x800000008000000a, AX
  4332	ORQ  R12, SI
  4333	XORQ R10, AX
  4334	XORQ AX, SI
  4335	MOVQ SI, (DI)
  4336	XORQ R9, R14
  4337	ROLQ $0x0e, R14
  4338	MOVQ R10, R15
  4339	ANDQ R11, R15
  4340	XORQ R14, R15
  4341	MOVQ R15, 32(DI)
  4342	XORQ R8, R13
  4343	ROLQ $0x15, R13
  4344	MOVQ R13, AX
  4345	ANDQ R14, AX
  4346	XORQ R12, AX
  4347	MOVQ AX, 16(DI)
  4348	NOTQ R12
  4349	ORQ  R10, R14
  4350	ORQ  R13, R12
  4351	XORQ R13, R14
  4352	XORQ R11, R12
  4353	MOVQ R14, 24(DI)
  4354	MOVQ R12, 8(DI)
  4355	MOVQ R12, BP
  4356
  4357	// Result g
  4358	MOVQ 72(SP), R11
  4359	XORQ R9, R11
  4360	MOVQ 80(SP), R12
  4361	ROLQ $0x14, R11
  4362	XORQ BX, R12
  4363	ROLQ $0x03, R12
  4364	MOVQ 24(SP), R10
  4365	MOVQ R11, AX
  4366	ORQ  R12, AX
  4367	XORQ R8, R10
  4368	MOVQ 128(SP), R13
  4369	MOVQ 176(SP), R14
  4370	ROLQ $0x1c, R10
  4371	XORQ R10, AX
  4372	MOVQ AX, 40(DI)
  4373	XORQ AX, SI
  4374	XORQ CX, R13
  4375	ROLQ $0x2d, R13
  4376	MOVQ R12, AX
  4377	ANDQ R13, AX
  4378	XORQ R11, AX
  4379	MOVQ AX, 48(DI)
  4380	XORQ AX, BP
  4381	XORQ DX, R14
  4382	ROLQ $0x3d, R14
  4383	MOVQ R14, AX
  4384	ORQ  R10, AX
  4385	XORQ R13, AX
  4386	MOVQ AX, 64(DI)
  4387	ANDQ R11, R10
  4388	XORQ R14, R10
  4389	MOVQ R10, 72(DI)
  4390	NOTQ R14
  4391	XORQ R10, R15
  4392	ORQ  R14, R13
  4393	XORQ R12, R13
  4394	MOVQ R13, 56(DI)
  4395
  4396	// Result k
  4397	MOVQ 8(SP), R10
  4398	MOVQ 56(SP), R11
  4399	MOVQ 104(SP), R12
  4400	MOVQ 152(SP), R13
  4401	MOVQ 160(SP), R14
  4402	XORQ DX, R11
  4403	ROLQ $0x06, R11
  4404	XORQ R8, R12
  4405	ROLQ $0x19, R12
  4406	MOVQ R11, AX
  4407	ORQ  R12, AX
  4408	XORQ CX, R10
  4409	ROLQ $0x01, R10
  4410	XORQ R10, AX
  4411	MOVQ AX, 80(DI)
  4412	XORQ AX, SI
  4413	XORQ R9, R13
  4414	ROLQ $0x08, R13
  4415	MOVQ R12, AX
  4416	ANDQ R13, AX
  4417	XORQ R11, AX
  4418	MOVQ AX, 88(DI)
  4419	XORQ AX, BP
  4420	XORQ BX, R14
  4421	ROLQ $0x12, R14
  4422	NOTQ R13
  4423	MOVQ R13, AX
  4424	ANDQ R14, AX
  4425	XORQ R12, AX
  4426	MOVQ AX, 96(DI)
  4427	MOVQ R14, AX
  4428	ORQ  R10, AX
  4429	XORQ R13, AX
  4430	MOVQ AX, 104(DI)
  4431	ANDQ R11, R10
  4432	XORQ R14, R10
  4433	MOVQ R10, 112(DI)
  4434	XORQ R10, R15
  4435
  4436	// Result m
  4437	MOVQ 40(SP), R11
  4438	XORQ BX, R11
  4439	MOVQ 88(SP), R12
  4440	ROLQ $0x24, R11
  4441	XORQ CX, R12
  4442	MOVQ 32(SP), R10
  4443	ROLQ $0x0a, R12
  4444	MOVQ R11, AX
  4445	MOVQ 136(SP), R13
  4446	ANDQ R12, AX
  4447	XORQ R9, R10
  4448	MOVQ 184(SP), R14
  4449	ROLQ $0x1b, R10
  4450	XORQ R10, AX
  4451	MOVQ AX, 120(DI)
  4452	XORQ AX, SI
  4453	XORQ DX, R13
  4454	ROLQ $0x0f, R13
  4455	MOVQ R12, AX
  4456	ORQ  R13, AX
  4457	XORQ R11, AX
  4458	MOVQ AX, 128(DI)
  4459	XORQ AX, BP
  4460	XORQ R8, R14
  4461	ROLQ $0x38, R14
  4462	NOTQ R13
  4463	MOVQ R13, AX
  4464	ORQ  R14, AX
  4465	XORQ R12, AX
  4466	MOVQ AX, 136(DI)
  4467	ORQ  R10, R11
  4468	XORQ R14, R11
  4469	MOVQ R11, 152(DI)
  4470	ANDQ R10, R14
  4471	XORQ R13, R14
  4472	MOVQ R14, 144(DI)
  4473	XORQ R11, R15
  4474
  4475	// Result s
  4476	MOVQ 16(SP), R10
  4477	MOVQ 64(SP), R11
  4478	MOVQ 112(SP), R12
  4479	XORQ DX, R10
  4480	MOVQ 120(SP), R13
  4481	ROLQ $0x3e, R10
  4482	XORQ R8, R11
  4483	MOVQ 168(SP), R14
  4484	ROLQ $0x37, R11
  4485	XORQ R9, R12
  4486	MOVQ R10, R9
  4487	XORQ CX, R14
  4488	ROLQ $0x02, R14
  4489	ANDQ R11, R9
  4490	XORQ R14, R9
  4491	MOVQ R9, 192(DI)
  4492	ROLQ $0x27, R12
  4493	XORQ R9, R15
  4494	NOTQ R11
  4495	XORQ BX, R13
  4496	MOVQ R11, BX
  4497	ANDQ R12, BX
  4498	XORQ R10, BX
  4499	MOVQ BX, 160(DI)
  4500	XORQ BX, SI
  4501	ROLQ $0x29, R13
  4502	MOVQ R12, CX
  4503	ORQ  R13, CX
  4504	XORQ R11, CX
  4505	MOVQ CX, 168(DI)
  4506	XORQ CX, BP
  4507	MOVQ R13, DX
  4508	MOVQ R14, R8
  4509	ANDQ R14, DX
  4510	ORQ  R10, R8
  4511	XORQ R12, DX
  4512	XORQ R13, R8
  4513	MOVQ DX, 176(DI)
  4514	MOVQ R8, 184(DI)
  4515
  4516	// Prepare round
  4517	MOVQ BP, BX
  4518	ROLQ $0x01, BX
  4519	MOVQ 16(DI), R12
  4520	XORQ 56(DI), DX
  4521	XORQ R15, BX
  4522	XORQ 96(DI), R12
  4523	XORQ 136(DI), DX
  4524	XORQ DX, R12
  4525	MOVQ R12, CX
  4526	ROLQ $0x01, CX
  4527	MOVQ 24(DI), R13
  4528	XORQ 64(DI), R8
  4529	XORQ SI, CX
  4530	XORQ 104(DI), R13
  4531	XORQ 144(DI), R8
  4532	XORQ R8, R13
  4533	MOVQ R13, DX
  4534	ROLQ $0x01, DX
  4535	MOVQ R15, R8
  4536	XORQ BP, DX
  4537	ROLQ $0x01, R8
  4538	MOVQ SI, R9
  4539	XORQ R12, R8
  4540	ROLQ $0x01, R9
  4541
  4542	// Result b
  4543	MOVQ (DI), R10
  4544	MOVQ 48(DI), R11
  4545	XORQ R13, R9
  4546	MOVQ 96(DI), R12
  4547	MOVQ 144(DI), R13
  4548	MOVQ 192(DI), R14
  4549	XORQ CX, R11
  4550	ROLQ $0x2c, R11
  4551	XORQ DX, R12
  4552	XORQ BX, R10
  4553	ROLQ $0x2b, R12
  4554	MOVQ R11, SI
  4555	MOVQ $0x8000000080008081, AX
  4556	ORQ  R12, SI
  4557	XORQ R10, AX
  4558	XORQ AX, SI
  4559	MOVQ SI, (SP)
  4560	XORQ R9, R14
  4561	ROLQ $0x0e, R14
  4562	MOVQ R10, R15
  4563	ANDQ R11, R15
  4564	XORQ R14, R15
  4565	MOVQ R15, 32(SP)
  4566	XORQ R8, R13
  4567	ROLQ $0x15, R13
  4568	MOVQ R13, AX
  4569	ANDQ R14, AX
  4570	XORQ R12, AX
  4571	MOVQ AX, 16(SP)
  4572	NOTQ R12
  4573	ORQ  R10, R14
  4574	ORQ  R13, R12
  4575	XORQ R13, R14
  4576	XORQ R11, R12
  4577	MOVQ R14, 24(SP)
  4578	MOVQ R12, 8(SP)
  4579	MOVQ R12, BP
  4580
  4581	// Result g
  4582	MOVQ 72(DI), R11
  4583	XORQ R9, R11
  4584	MOVQ 80(DI), R12
  4585	ROLQ $0x14, R11
  4586	XORQ BX, R12
  4587	ROLQ $0x03, R12
  4588	MOVQ 24(DI), R10
  4589	MOVQ R11, AX
  4590	ORQ  R12, AX
  4591	XORQ R8, R10
  4592	MOVQ 128(DI), R13
  4593	MOVQ 176(DI), R14
  4594	ROLQ $0x1c, R10
  4595	XORQ R10, AX
  4596	MOVQ AX, 40(SP)
  4597	XORQ AX, SI
  4598	XORQ CX, R13
  4599	ROLQ $0x2d, R13
  4600	MOVQ R12, AX
  4601	ANDQ R13, AX
  4602	XORQ R11, AX
  4603	MOVQ AX, 48(SP)
  4604	XORQ AX, BP
  4605	XORQ DX, R14
  4606	ROLQ $0x3d, R14
  4607	MOVQ R14, AX
  4608	ORQ  R10, AX
  4609	XORQ R13, AX
  4610	MOVQ AX, 64(SP)
  4611	ANDQ R11, R10
  4612	XORQ R14, R10
  4613	MOVQ R10, 72(SP)
  4614	NOTQ R14
  4615	XORQ R10, R15
  4616	ORQ  R14, R13
  4617	XORQ R12, R13
  4618	MOVQ R13, 56(SP)
  4619
  4620	// Result k
  4621	MOVQ 8(DI), R10
  4622	MOVQ 56(DI), R11
  4623	MOVQ 104(DI), R12
  4624	MOVQ 152(DI), R13
  4625	MOVQ 160(DI), R14
  4626	XORQ DX, R11
  4627	ROLQ $0x06, R11
  4628	XORQ R8, R12
  4629	ROLQ $0x19, R12
  4630	MOVQ R11, AX
  4631	ORQ  R12, AX
  4632	XORQ CX, R10
  4633	ROLQ $0x01, R10
  4634	XORQ R10, AX
  4635	MOVQ AX, 80(SP)
  4636	XORQ AX, SI
  4637	XORQ R9, R13
  4638	ROLQ $0x08, R13
  4639	MOVQ R12, AX
  4640	ANDQ R13, AX
  4641	XORQ R11, AX
  4642	MOVQ AX, 88(SP)
  4643	XORQ AX, BP
  4644	XORQ BX, R14
  4645	ROLQ $0x12, R14
  4646	NOTQ R13
  4647	MOVQ R13, AX
  4648	ANDQ R14, AX
  4649	XORQ R12, AX
  4650	MOVQ AX, 96(SP)
  4651	MOVQ R14, AX
  4652	ORQ  R10, AX
  4653	XORQ R13, AX
  4654	MOVQ AX, 104(SP)
  4655	ANDQ R11, R10
  4656	XORQ R14, R10
  4657	MOVQ R10, 112(SP)
  4658	XORQ R10, R15
  4659
  4660	// Result m
  4661	MOVQ 40(DI), R11
  4662	XORQ BX, R11
  4663	MOVQ 88(DI), R12
  4664	ROLQ $0x24, R11
  4665	XORQ CX, R12
  4666	MOVQ 32(DI), R10
  4667	ROLQ $0x0a, R12
  4668	MOVQ R11, AX
  4669	MOVQ 136(DI), R13
  4670	ANDQ R12, AX
  4671	XORQ R9, R10
  4672	MOVQ 184(DI), R14
  4673	ROLQ $0x1b, R10
  4674	XORQ R10, AX
  4675	MOVQ AX, 120(SP)
  4676	XORQ AX, SI
  4677	XORQ DX, R13
  4678	ROLQ $0x0f, R13
  4679	MOVQ R12, AX
  4680	ORQ  R13, AX
  4681	XORQ R11, AX
  4682	MOVQ AX, 128(SP)
  4683	XORQ AX, BP
  4684	XORQ R8, R14
  4685	ROLQ $0x38, R14
  4686	NOTQ R13
  4687	MOVQ R13, AX
  4688	ORQ  R14, AX
  4689	XORQ R12, AX
  4690	MOVQ AX, 136(SP)
  4691	ORQ  R10, R11
  4692	XORQ R14, R11
  4693	MOVQ R11, 152(SP)
  4694	ANDQ R10, R14
  4695	XORQ R13, R14
  4696	MOVQ R14, 144(SP)
  4697	XORQ R11, R15
  4698
  4699	// Result s
  4700	MOVQ 16(DI), R10
  4701	MOVQ 64(DI), R11
  4702	MOVQ 112(DI), R12
  4703	XORQ DX, R10
  4704	MOVQ 120(DI), R13
  4705	ROLQ $0x3e, R10
  4706	XORQ R8, R11
  4707	MOVQ 168(DI), R14
  4708	ROLQ $0x37, R11
  4709	XORQ R9, R12
  4710	MOVQ R10, R9
  4711	XORQ CX, R14
  4712	ROLQ $0x02, R14
  4713	ANDQ R11, R9
  4714	XORQ R14, R9
  4715	MOVQ R9, 192(SP)
  4716	ROLQ $0x27, R12
  4717	XORQ R9, R15
  4718	NOTQ R11
  4719	XORQ BX, R13
  4720	MOVQ R11, BX
  4721	ANDQ R12, BX
  4722	XORQ R10, BX
  4723	MOVQ BX, 160(SP)
  4724	XORQ BX, SI
  4725	ROLQ $0x29, R13
  4726	MOVQ R12, CX
  4727	ORQ  R13, CX
  4728	XORQ R11, CX
  4729	MOVQ CX, 168(SP)
  4730	XORQ CX, BP
  4731	MOVQ R13, DX
  4732	MOVQ R14, R8
  4733	ANDQ R14, DX
  4734	ORQ  R10, R8
  4735	XORQ R12, DX
  4736	XORQ R13, R8
  4737	MOVQ DX, 176(SP)
  4738	MOVQ R8, 184(SP)
  4739
  4740	// Prepare round
  4741	MOVQ BP, BX
  4742	ROLQ $0x01, BX
  4743	MOVQ 16(SP), R12
  4744	XORQ 56(SP), DX
  4745	XORQ R15, BX
  4746	XORQ 96(SP), R12
  4747	XORQ 136(SP), DX
  4748	XORQ DX, R12
  4749	MOVQ R12, CX
  4750	ROLQ $0x01, CX
  4751	MOVQ 24(SP), R13
  4752	XORQ 64(SP), R8
  4753	XORQ SI, CX
  4754	XORQ 104(SP), R13
  4755	XORQ 144(SP), R8
  4756	XORQ R8, R13
  4757	MOVQ R13, DX
  4758	ROLQ $0x01, DX
  4759	MOVQ R15, R8
  4760	XORQ BP, DX
  4761	ROLQ $0x01, R8
  4762	MOVQ SI, R9
  4763	XORQ R12, R8
  4764	ROLQ $0x01, R9
  4765
  4766	// Result b
  4767	MOVQ (SP), R10
  4768	MOVQ 48(SP), R11
  4769	XORQ R13, R9
  4770	MOVQ 96(SP), R12
  4771	MOVQ 144(SP), R13
  4772	MOVQ 192(SP), R14
  4773	XORQ CX, R11
  4774	ROLQ $0x2c, R11
  4775	XORQ DX, R12
  4776	XORQ BX, R10
  4777	ROLQ $0x2b, R12
  4778	MOVQ R11, SI
  4779	MOVQ $0x8000000000008080, AX
  4780	ORQ  R12, SI
  4781	XORQ R10, AX
  4782	XORQ AX, SI
  4783	MOVQ SI, (DI)
  4784	XORQ R9, R14
  4785	ROLQ $0x0e, R14
  4786	MOVQ R10, R15
  4787	ANDQ R11, R15
  4788	XORQ R14, R15
  4789	MOVQ R15, 32(DI)
  4790	XORQ R8, R13
  4791	ROLQ $0x15, R13
  4792	MOVQ R13, AX
  4793	ANDQ R14, AX
  4794	XORQ R12, AX
  4795	MOVQ AX, 16(DI)
  4796	NOTQ R12
  4797	ORQ  R10, R14
  4798	ORQ  R13, R12
  4799	XORQ R13, R14
  4800	XORQ R11, R12
  4801	MOVQ R14, 24(DI)
  4802	MOVQ R12, 8(DI)
  4803	MOVQ R12, BP
  4804
  4805	// Result g
  4806	MOVQ 72(SP), R11
  4807	XORQ R9, R11
  4808	MOVQ 80(SP), R12
  4809	ROLQ $0x14, R11
  4810	XORQ BX, R12
  4811	ROLQ $0x03, R12
  4812	MOVQ 24(SP), R10
  4813	MOVQ R11, AX
  4814	ORQ  R12, AX
  4815	XORQ R8, R10
  4816	MOVQ 128(SP), R13
  4817	MOVQ 176(SP), R14
  4818	ROLQ $0x1c, R10
  4819	XORQ R10, AX
  4820	MOVQ AX, 40(DI)
  4821	XORQ AX, SI
  4822	XORQ CX, R13
  4823	ROLQ $0x2d, R13
  4824	MOVQ R12, AX
  4825	ANDQ R13, AX
  4826	XORQ R11, AX
  4827	MOVQ AX, 48(DI)
  4828	XORQ AX, BP
  4829	XORQ DX, R14
  4830	ROLQ $0x3d, R14
  4831	MOVQ R14, AX
  4832	ORQ  R10, AX
  4833	XORQ R13, AX
  4834	MOVQ AX, 64(DI)
  4835	ANDQ R11, R10
  4836	XORQ R14, R10
  4837	MOVQ R10, 72(DI)
  4838	NOTQ R14
  4839	XORQ R10, R15
  4840	ORQ  R14, R13
  4841	XORQ R12, R13
  4842	MOVQ R13, 56(DI)
  4843
  4844	// Result k
  4845	MOVQ 8(SP), R10
  4846	MOVQ 56(SP), R11
  4847	MOVQ 104(SP), R12
  4848	MOVQ 152(SP), R13
  4849	MOVQ 160(SP), R14
  4850	XORQ DX, R11
  4851	ROLQ $0x06, R11
  4852	XORQ R8, R12
  4853	ROLQ $0x19, R12
  4854	MOVQ R11, AX
  4855	ORQ  R12, AX
  4856	XORQ CX, R10
  4857	ROLQ $0x01, R10
  4858	XORQ R10, AX
  4859	MOVQ AX, 80(DI)
  4860	XORQ AX, SI
  4861	XORQ R9, R13
  4862	ROLQ $0x08, R13
  4863	MOVQ R12, AX
  4864	ANDQ R13, AX
  4865	XORQ R11, AX
  4866	MOVQ AX, 88(DI)
  4867	XORQ AX, BP
  4868	XORQ BX, R14
  4869	ROLQ $0x12, R14
  4870	NOTQ R13
  4871	MOVQ R13, AX
  4872	ANDQ R14, AX
  4873	XORQ R12, AX
  4874	MOVQ AX, 96(DI)
  4875	MOVQ R14, AX
  4876	ORQ  R10, AX
  4877	XORQ R13, AX
  4878	MOVQ AX, 104(DI)
  4879	ANDQ R11, R10
  4880	XORQ R14, R10
  4881	MOVQ R10, 112(DI)
  4882	XORQ R10, R15
  4883
  4884	// Result m
  4885	MOVQ 40(SP), R11
  4886	XORQ BX, R11
  4887	MOVQ 88(SP), R12
  4888	ROLQ $0x24, R11
  4889	XORQ CX, R12
  4890	MOVQ 32(SP), R10
  4891	ROLQ $0x0a, R12
  4892	MOVQ R11, AX
  4893	MOVQ 136(SP), R13
  4894	ANDQ R12, AX
  4895	XORQ R9, R10
  4896	MOVQ 184(SP), R14
  4897	ROLQ $0x1b, R10
  4898	XORQ R10, AX
  4899	MOVQ AX, 120(DI)
  4900	XORQ AX, SI
  4901	XORQ DX, R13
  4902	ROLQ $0x0f, R13
  4903	MOVQ R12, AX
  4904	ORQ  R13, AX
  4905	XORQ R11, AX
  4906	MOVQ AX, 128(DI)
  4907	XORQ AX, BP
  4908	XORQ R8, R14
  4909	ROLQ $0x38, R14
  4910	NOTQ R13
  4911	MOVQ R13, AX
  4912	ORQ  R14, AX
  4913	XORQ R12, AX
  4914	MOVQ AX, 136(DI)
  4915	ORQ  R10, R11
  4916	XORQ R14, R11
  4917	MOVQ R11, 152(DI)
  4918	ANDQ R10, R14
  4919	XORQ R13, R14
  4920	MOVQ R14, 144(DI)
  4921	XORQ R11, R15
  4922
  4923	// Result s
  4924	MOVQ 16(SP), R10
  4925	MOVQ 64(SP), R11
  4926	MOVQ 112(SP), R12
  4927	XORQ DX, R10
  4928	MOVQ 120(SP), R13
  4929	ROLQ $0x3e, R10
  4930	XORQ R8, R11
  4931	MOVQ 168(SP), R14
  4932	ROLQ $0x37, R11
  4933	XORQ R9, R12
  4934	MOVQ R10, R9
  4935	XORQ CX, R14
  4936	ROLQ $0x02, R14
  4937	ANDQ R11, R9
  4938	XORQ R14, R9
  4939	MOVQ R9, 192(DI)
  4940	ROLQ $0x27, R12
  4941	XORQ R9, R15
  4942	NOTQ R11
  4943	XORQ BX, R13
  4944	MOVQ R11, BX
  4945	ANDQ R12, BX
  4946	XORQ R10, BX
  4947	MOVQ BX, 160(DI)
  4948	XORQ BX, SI
  4949	ROLQ $0x29, R13
  4950	MOVQ R12, CX
  4951	ORQ  R13, CX
  4952	XORQ R11, CX
  4953	MOVQ CX, 168(DI)
  4954	XORQ CX, BP
  4955	MOVQ R13, DX
  4956	MOVQ R14, R8
  4957	ANDQ R14, DX
  4958	ORQ  R10, R8
  4959	XORQ R12, DX
  4960	XORQ R13, R8
  4961	MOVQ DX, 176(DI)
  4962	MOVQ R8, 184(DI)
  4963
  4964	// Prepare round
  4965	MOVQ BP, BX
  4966	ROLQ $0x01, BX
  4967	MOVQ 16(DI), R12
  4968	XORQ 56(DI), DX
  4969	XORQ R15, BX
  4970	XORQ 96(DI), R12
  4971	XORQ 136(DI), DX
  4972	XORQ DX, R12
  4973	MOVQ R12, CX
  4974	ROLQ $0x01, CX
  4975	MOVQ 24(DI), R13
  4976	XORQ 64(DI), R8
  4977	XORQ SI, CX
  4978	XORQ 104(DI), R13
  4979	XORQ 144(DI), R8
  4980	XORQ R8, R13
  4981	MOVQ R13, DX
  4982	ROLQ $0x01, DX
  4983	MOVQ R15, R8
  4984	XORQ BP, DX
  4985	ROLQ $0x01, R8
  4986	MOVQ SI, R9
  4987	XORQ R12, R8
  4988	ROLQ $0x01, R9
  4989
  4990	// Result b
  4991	MOVQ (DI), R10
  4992	MOVQ 48(DI), R11
  4993	XORQ R13, R9
  4994	MOVQ 96(DI), R12
  4995	MOVQ 144(DI), R13
  4996	MOVQ 192(DI), R14
  4997	XORQ CX, R11
  4998	ROLQ $0x2c, R11
  4999	XORQ DX, R12
  5000	XORQ BX, R10
  5001	ROLQ $0x2b, R12
  5002	MOVQ R11, SI
  5003	MOVQ $0x0000000080000001, AX
  5004	ORQ  R12, SI
  5005	XORQ R10, AX
  5006	XORQ AX, SI
  5007	MOVQ SI, (SP)
  5008	XORQ R9, R14
  5009	ROLQ $0x0e, R14
  5010	MOVQ R10, R15
  5011	ANDQ R11, R15
  5012	XORQ R14, R15
  5013	MOVQ R15, 32(SP)
  5014	XORQ R8, R13
  5015	ROLQ $0x15, R13
  5016	MOVQ R13, AX
  5017	ANDQ R14, AX
  5018	XORQ R12, AX
  5019	MOVQ AX, 16(SP)
  5020	NOTQ R12
  5021	ORQ  R10, R14
  5022	ORQ  R13, R12
  5023	XORQ R13, R14
  5024	XORQ R11, R12
  5025	MOVQ R14, 24(SP)
  5026	MOVQ R12, 8(SP)
  5027	MOVQ R12, BP
  5028
  5029	// Result g
  5030	MOVQ 72(DI), R11
  5031	XORQ R9, R11
  5032	MOVQ 80(DI), R12
  5033	ROLQ $0x14, R11
  5034	XORQ BX, R12
  5035	ROLQ $0x03, R12
  5036	MOVQ 24(DI), R10
  5037	MOVQ R11, AX
  5038	ORQ  R12, AX
  5039	XORQ R8, R10
  5040	MOVQ 128(DI), R13
  5041	MOVQ 176(DI), R14
  5042	ROLQ $0x1c, R10
  5043	XORQ R10, AX
  5044	MOVQ AX, 40(SP)
  5045	XORQ AX, SI
  5046	XORQ CX, R13
  5047	ROLQ $0x2d, R13
  5048	MOVQ R12, AX
  5049	ANDQ R13, AX
  5050	XORQ R11, AX
  5051	MOVQ AX, 48(SP)
  5052	XORQ AX, BP
  5053	XORQ DX, R14
  5054	ROLQ $0x3d, R14
  5055	MOVQ R14, AX
  5056	ORQ  R10, AX
  5057	XORQ R13, AX
  5058	MOVQ AX, 64(SP)
  5059	ANDQ R11, R10
  5060	XORQ R14, R10
  5061	MOVQ R10, 72(SP)
  5062	NOTQ R14
  5063	XORQ R10, R15
  5064	ORQ  R14, R13
  5065	XORQ R12, R13
  5066	MOVQ R13, 56(SP)
  5067
  5068	// Result k
  5069	MOVQ 8(DI), R10
  5070	MOVQ 56(DI), R11
  5071	MOVQ 104(DI), R12
  5072	MOVQ 152(DI), R13
  5073	MOVQ 160(DI), R14
  5074	XORQ DX, R11
  5075	ROLQ $0x06, R11
  5076	XORQ R8, R12
  5077	ROLQ $0x19, R12
  5078	MOVQ R11, AX
  5079	ORQ  R12, AX
  5080	XORQ CX, R10
  5081	ROLQ $0x01, R10
  5082	XORQ R10, AX
  5083	MOVQ AX, 80(SP)
  5084	XORQ AX, SI
  5085	XORQ R9, R13
  5086	ROLQ $0x08, R13
  5087	MOVQ R12, AX
  5088	ANDQ R13, AX
  5089	XORQ R11, AX
  5090	MOVQ AX, 88(SP)
  5091	XORQ AX, BP
  5092	XORQ BX, R14
  5093	ROLQ $0x12, R14
  5094	NOTQ R13
  5095	MOVQ R13, AX
  5096	ANDQ R14, AX
  5097	XORQ R12, AX
  5098	MOVQ AX, 96(SP)
  5099	MOVQ R14, AX
  5100	ORQ  R10, AX
  5101	XORQ R13, AX
  5102	MOVQ AX, 104(SP)
  5103	ANDQ R11, R10
  5104	XORQ R14, R10
  5105	MOVQ R10, 112(SP)
  5106	XORQ R10, R15
  5107
  5108	// Result m
  5109	MOVQ 40(DI), R11
  5110	XORQ BX, R11
  5111	MOVQ 88(DI), R12
  5112	ROLQ $0x24, R11
  5113	XORQ CX, R12
  5114	MOVQ 32(DI), R10
  5115	ROLQ $0x0a, R12
  5116	MOVQ R11, AX
  5117	MOVQ 136(DI), R13
  5118	ANDQ R12, AX
  5119	XORQ R9, R10
  5120	MOVQ 184(DI), R14
  5121	ROLQ $0x1b, R10
  5122	XORQ R10, AX
  5123	MOVQ AX, 120(SP)
  5124	XORQ AX, SI
  5125	XORQ DX, R13
  5126	ROLQ $0x0f, R13
  5127	MOVQ R12, AX
  5128	ORQ  R13, AX
  5129	XORQ R11, AX
  5130	MOVQ AX, 128(SP)
  5131	XORQ AX, BP
  5132	XORQ R8, R14
  5133	ROLQ $0x38, R14
  5134	NOTQ R13
  5135	MOVQ R13, AX
  5136	ORQ  R14, AX
  5137	XORQ R12, AX
  5138	MOVQ AX, 136(SP)
  5139	ORQ  R10, R11
  5140	XORQ R14, R11
  5141	MOVQ R11, 152(SP)
  5142	ANDQ R10, R14
  5143	XORQ R13, R14
  5144	MOVQ R14, 144(SP)
  5145	XORQ R11, R15
  5146
  5147	// Result s
  5148	MOVQ 16(DI), R10
  5149	MOVQ 64(DI), R11
  5150	MOVQ 112(DI), R12
  5151	XORQ DX, R10
  5152	MOVQ 120(DI), R13
  5153	ROLQ $0x3e, R10
  5154	XORQ R8, R11
  5155	MOVQ 168(DI), R14
  5156	ROLQ $0x37, R11
  5157	XORQ R9, R12
  5158	MOVQ R10, R9
  5159	XORQ CX, R14
  5160	ROLQ $0x02, R14
  5161	ANDQ R11, R9
  5162	XORQ R14, R9
  5163	MOVQ R9, 192(SP)
  5164	ROLQ $0x27, R12
  5165	XORQ R9, R15
  5166	NOTQ R11
  5167	XORQ BX, R13
  5168	MOVQ R11, BX
  5169	ANDQ R12, BX
  5170	XORQ R10, BX
  5171	MOVQ BX, 160(SP)
  5172	XORQ BX, SI
  5173	ROLQ $0x29, R13
  5174	MOVQ R12, CX
  5175	ORQ  R13, CX
  5176	XORQ R11, CX
  5177	MOVQ CX, 168(SP)
  5178	XORQ CX, BP
  5179	MOVQ R13, DX
  5180	MOVQ R14, R8
  5181	ANDQ R14, DX
  5182	ORQ  R10, R8
  5183	XORQ R12, DX
  5184	XORQ R13, R8
  5185	MOVQ DX, 176(SP)
  5186	MOVQ R8, 184(SP)
  5187
  5188	// Prepare round
  5189	MOVQ BP, BX
  5190	ROLQ $0x01, BX
  5191	MOVQ 16(SP), R12
  5192	XORQ 56(SP), DX
  5193	XORQ R15, BX
  5194	XORQ 96(SP), R12
  5195	XORQ 136(SP), DX
  5196	XORQ DX, R12
  5197	MOVQ R12, CX
  5198	ROLQ $0x01, CX
  5199	MOVQ 24(SP), R13
  5200	XORQ 64(SP), R8
  5201	XORQ SI, CX
  5202	XORQ 104(SP), R13
  5203	XORQ 144(SP), R8
  5204	XORQ R8, R13
  5205	MOVQ R13, DX
  5206	ROLQ $0x01, DX
  5207	MOVQ R15, R8
  5208	XORQ BP, DX
  5209	ROLQ $0x01, R8
  5210	MOVQ SI, R9
  5211	XORQ R12, R8
  5212	ROLQ $0x01, R9
  5213
  5214	// Result b
  5215	MOVQ (SP), R10
  5216	MOVQ 48(SP), R11
  5217	XORQ R13, R9
  5218	MOVQ 96(SP), R12
  5219	MOVQ 144(SP), R13
  5220	MOVQ 192(SP), R14
  5221	XORQ CX, R11
  5222	ROLQ $0x2c, R11
  5223	XORQ DX, R12
  5224	XORQ BX, R10
  5225	ROLQ $0x2b, R12
  5226	MOVQ R11, SI
  5227	MOVQ $0x8000000080008008, AX
  5228	ORQ  R12, SI
  5229	XORQ R10, AX
  5230	XORQ AX, SI
  5231	MOVQ SI, (DI)
  5232	XORQ R9, R14
  5233	ROLQ $0x0e, R14
  5234	MOVQ R10, R15
  5235	ANDQ R11, R15
  5236	XORQ R14, R15
  5237	MOVQ R15, 32(DI)
  5238	XORQ R8, R13
  5239	ROLQ $0x15, R13
  5240	MOVQ R13, AX
  5241	ANDQ R14, AX
  5242	XORQ R12, AX
  5243	MOVQ AX, 16(DI)
  5244	NOTQ R12
  5245	ORQ  R10, R14
  5246	ORQ  R13, R12
  5247	XORQ R13, R14
  5248	XORQ R11, R12
  5249	MOVQ R14, 24(DI)
  5250	MOVQ R12, 8(DI)
  5251	NOP
  5252
  5253	// Result g
  5254	MOVQ 72(SP), R11
  5255	XORQ R9, R11
  5256	MOVQ 80(SP), R12
  5257	ROLQ $0x14, R11
  5258	XORQ BX, R12
  5259	ROLQ $0x03, R12
  5260	MOVQ 24(SP), R10
  5261	MOVQ R11, AX
  5262	ORQ  R12, AX
  5263	XORQ R8, R10
  5264	MOVQ 128(SP), R13
  5265	MOVQ 176(SP), R14
  5266	ROLQ $0x1c, R10
  5267	XORQ R10, AX
  5268	MOVQ AX, 40(DI)
  5269	NOP
  5270	XORQ CX, R13
  5271	ROLQ $0x2d, R13
  5272	MOVQ R12, AX
  5273	ANDQ R13, AX
  5274	XORQ R11, AX
  5275	MOVQ AX, 48(DI)
  5276	NOP
  5277	XORQ DX, R14
  5278	ROLQ $0x3d, R14
  5279	MOVQ R14, AX
  5280	ORQ  R10, AX
  5281	XORQ R13, AX
  5282	MOVQ AX, 64(DI)
  5283	ANDQ R11, R10
  5284	XORQ R14, R10
  5285	MOVQ R10, 72(DI)
  5286	NOTQ R14
  5287	NOP
  5288	ORQ  R14, R13
  5289	XORQ R12, R13
  5290	MOVQ R13, 56(DI)
  5291
  5292	// Result k
  5293	MOVQ 8(SP), R10
  5294	MOVQ 56(SP), R11
  5295	MOVQ 104(SP), R12
  5296	MOVQ 152(SP), R13
  5297	MOVQ 160(SP), R14
  5298	XORQ DX, R11
  5299	ROLQ $0x06, R11
  5300	XORQ R8, R12
  5301	ROLQ $0x19, R12
  5302	MOVQ R11, AX
  5303	ORQ  R12, AX
  5304	XORQ CX, R10
  5305	ROLQ $0x01, R10
  5306	XORQ R10, AX
  5307	MOVQ AX, 80(DI)
  5308	NOP
  5309	XORQ R9, R13
  5310	ROLQ $0x08, R13
  5311	MOVQ R12, AX
  5312	ANDQ R13, AX
  5313	XORQ R11, AX
  5314	MOVQ AX, 88(DI)
  5315	NOP
  5316	XORQ BX, R14
  5317	ROLQ $0x12, R14
  5318	NOTQ R13
  5319	MOVQ R13, AX
  5320	ANDQ R14, AX
  5321	XORQ R12, AX
  5322	MOVQ AX, 96(DI)
  5323	MOVQ R14, AX
  5324	ORQ  R10, AX
  5325	XORQ R13, AX
  5326	MOVQ AX, 104(DI)
  5327	ANDQ R11, R10
  5328	XORQ R14, R10
  5329	MOVQ R10, 112(DI)
  5330	NOP
  5331
  5332	// Result m
  5333	MOVQ 40(SP), R11
  5334	XORQ BX, R11
  5335	MOVQ 88(SP), R12
  5336	ROLQ $0x24, R11
  5337	XORQ CX, R12
  5338	MOVQ 32(SP), R10
  5339	ROLQ $0x0a, R12
  5340	MOVQ R11, AX
  5341	MOVQ 136(SP), R13
  5342	ANDQ R12, AX
  5343	XORQ R9, R10
  5344	MOVQ 184(SP), R14
  5345	ROLQ $0x1b, R10
  5346	XORQ R10, AX
  5347	MOVQ AX, 120(DI)
  5348	NOP
  5349	XORQ DX, R13
  5350	ROLQ $0x0f, R13
  5351	MOVQ R12, AX
  5352	ORQ  R13, AX
  5353	XORQ R11, AX
  5354	MOVQ AX, 128(DI)
  5355	NOP
  5356	XORQ R8, R14
  5357	ROLQ $0x38, R14
  5358	NOTQ R13
  5359	MOVQ R13, AX
  5360	ORQ  R14, AX
  5361	XORQ R12, AX
  5362	MOVQ AX, 136(DI)
  5363	ORQ  R10, R11
  5364	XORQ R14, R11
  5365	MOVQ R11, 152(DI)
  5366	ANDQ R10, R14
  5367	XORQ R13, R14
  5368	MOVQ R14, 144(DI)
  5369	NOP
  5370
  5371	// Result s
  5372	MOVQ 16(SP), R10
  5373	MOVQ 64(SP), R11
  5374	MOVQ 112(SP), R12
  5375	XORQ DX, R10
  5376	MOVQ 120(SP), R13
  5377	ROLQ $0x3e, R10
  5378	XORQ R8, R11
  5379	MOVQ 168(SP), R14
  5380	ROLQ $0x37, R11
  5381	XORQ R9, R12
  5382	MOVQ R10, R9
  5383	XORQ CX, R14
  5384	ROLQ $0x02, R14
  5385	ANDQ R11, R9
  5386	XORQ R14, R9
  5387	MOVQ R9, 192(DI)
  5388	ROLQ $0x27, R12
  5389	NOP
  5390	NOTQ R11
  5391	XORQ BX, R13
  5392	MOVQ R11, BX
  5393	ANDQ R12, BX
  5394	XORQ R10, BX
  5395	MOVQ BX, 160(DI)
  5396	NOP
  5397	ROLQ $0x29, R13
  5398	MOVQ R12, CX
  5399	ORQ  R13, CX
  5400	XORQ R11, CX
  5401	MOVQ CX, 168(DI)
  5402	NOP
  5403	MOVQ R13, DX
  5404	MOVQ R14, R8
  5405	ANDQ R14, DX
  5406	ORQ  R10, R8
  5407	XORQ R12, DX
  5408	XORQ R13, R8
  5409	MOVQ DX, 176(DI)
  5410	MOVQ R8, 184(DI)
  5411
  5412	// Revert the internal state to the user state
  5413	NOTQ 8(DI)
  5414	NOTQ 16(DI)
  5415	NOTQ 64(DI)
  5416	NOTQ 96(DI)
  5417	NOTQ 136(DI)
  5418	NOTQ 160(DI)
  5419	RET

View as plain text