...

Text file src/crypto/internal/fips140/sha256/sha256block_amd64.s

Documentation: crypto/internal/fips140/sha256

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

View as plain text