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

     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)
     8  TEXT ·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  
    27  loop:
    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  
  3490  end:
  3491  	RET
  3492  
  3493  // func blockAVX2(dig *Digest, p []byte)
  3494  // Requires: AVX, AVX2, BMI2
  3495  TEXT ·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  
  3514  avx2_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  
  3535  avx2_last_block_enter:
  3536  	ADDQ $0x40, DI
  3537  	MOVQ DI, 520(SP)
  3538  	XORQ SI, SI
  3539  
  3540  avx2_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  
  4108  avx2_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  
  4356  avx2_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  
  4599  avx2_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  
  4612  avx2_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  
  4623  done_hash:
  4624  	VZEROUPPER
  4625  	RET
  4626  
  4627  DATA flip_mask<>+0(SB)/8, $0x0405060700010203
  4628  DATA flip_mask<>+8(SB)/8, $0x0c0d0e0f08090a0b
  4629  DATA flip_mask<>+16(SB)/8, $0x0405060700010203
  4630  DATA flip_mask<>+24(SB)/8, $0x0c0d0e0f08090a0b
  4631  GLOBL flip_mask<>(SB), RODATA, $32
  4632  
  4633  DATA K256<>+0(SB)/4, $0x428a2f98
  4634  DATA K256<>+4(SB)/4, $0x71374491
  4635  DATA K256<>+8(SB)/4, $0xb5c0fbcf
  4636  DATA K256<>+12(SB)/4, $0xe9b5dba5
  4637  DATA K256<>+16(SB)/4, $0x428a2f98
  4638  DATA K256<>+20(SB)/4, $0x71374491
  4639  DATA K256<>+24(SB)/4, $0xb5c0fbcf
  4640  DATA K256<>+28(SB)/4, $0xe9b5dba5
  4641  DATA K256<>+32(SB)/4, $0x3956c25b
  4642  DATA K256<>+36(SB)/4, $0x59f111f1
  4643  DATA K256<>+40(SB)/4, $0x923f82a4
  4644  DATA K256<>+44(SB)/4, $0xab1c5ed5
  4645  DATA K256<>+48(SB)/4, $0x3956c25b
  4646  DATA K256<>+52(SB)/4, $0x59f111f1
  4647  DATA K256<>+56(SB)/4, $0x923f82a4
  4648  DATA K256<>+60(SB)/4, $0xab1c5ed5
  4649  DATA K256<>+64(SB)/4, $0xd807aa98
  4650  DATA K256<>+68(SB)/4, $0x12835b01
  4651  DATA K256<>+72(SB)/4, $0x243185be
  4652  DATA K256<>+76(SB)/4, $0x550c7dc3
  4653  DATA K256<>+80(SB)/4, $0xd807aa98
  4654  DATA K256<>+84(SB)/4, $0x12835b01
  4655  DATA K256<>+88(SB)/4, $0x243185be
  4656  DATA K256<>+92(SB)/4, $0x550c7dc3
  4657  DATA K256<>+96(SB)/4, $0x72be5d74
  4658  DATA K256<>+100(SB)/4, $0x80deb1fe
  4659  DATA K256<>+104(SB)/4, $0x9bdc06a7
  4660  DATA K256<>+108(SB)/4, $0xc19bf174
  4661  DATA K256<>+112(SB)/4, $0x72be5d74
  4662  DATA K256<>+116(SB)/4, $0x80deb1fe
  4663  DATA K256<>+120(SB)/4, $0x9bdc06a7
  4664  DATA K256<>+124(SB)/4, $0xc19bf174
  4665  DATA K256<>+128(SB)/4, $0xe49b69c1
  4666  DATA K256<>+132(SB)/4, $0xefbe4786
  4667  DATA K256<>+136(SB)/4, $0x0fc19dc6
  4668  DATA K256<>+140(SB)/4, $0x240ca1cc
  4669  DATA K256<>+144(SB)/4, $0xe49b69c1
  4670  DATA K256<>+148(SB)/4, $0xefbe4786
  4671  DATA K256<>+152(SB)/4, $0x0fc19dc6
  4672  DATA K256<>+156(SB)/4, $0x240ca1cc
  4673  DATA K256<>+160(SB)/4, $0x2de92c6f
  4674  DATA K256<>+164(SB)/4, $0x4a7484aa
  4675  DATA K256<>+168(SB)/4, $0x5cb0a9dc
  4676  DATA K256<>+172(SB)/4, $0x76f988da
  4677  DATA K256<>+176(SB)/4, $0x2de92c6f
  4678  DATA K256<>+180(SB)/4, $0x4a7484aa
  4679  DATA K256<>+184(SB)/4, $0x5cb0a9dc
  4680  DATA K256<>+188(SB)/4, $0x76f988da
  4681  DATA K256<>+192(SB)/4, $0x983e5152
  4682  DATA K256<>+196(SB)/4, $0xa831c66d
  4683  DATA K256<>+200(SB)/4, $0xb00327c8
  4684  DATA K256<>+204(SB)/4, $0xbf597fc7
  4685  DATA K256<>+208(SB)/4, $0x983e5152
  4686  DATA K256<>+212(SB)/4, $0xa831c66d
  4687  DATA K256<>+216(SB)/4, $0xb00327c8
  4688  DATA K256<>+220(SB)/4, $0xbf597fc7
  4689  DATA K256<>+224(SB)/4, $0xc6e00bf3
  4690  DATA K256<>+228(SB)/4, $0xd5a79147
  4691  DATA K256<>+232(SB)/4, $0x06ca6351
  4692  DATA K256<>+236(SB)/4, $0x14292967
  4693  DATA K256<>+240(SB)/4, $0xc6e00bf3
  4694  DATA K256<>+244(SB)/4, $0xd5a79147
  4695  DATA K256<>+248(SB)/4, $0x06ca6351
  4696  DATA K256<>+252(SB)/4, $0x14292967
  4697  DATA K256<>+256(SB)/4, $0x27b70a85
  4698  DATA K256<>+260(SB)/4, $0x2e1b2138
  4699  DATA K256<>+264(SB)/4, $0x4d2c6dfc
  4700  DATA K256<>+268(SB)/4, $0x53380d13
  4701  DATA K256<>+272(SB)/4, $0x27b70a85
  4702  DATA K256<>+276(SB)/4, $0x2e1b2138
  4703  DATA K256<>+280(SB)/4, $0x4d2c6dfc
  4704  DATA K256<>+284(SB)/4, $0x53380d13
  4705  DATA K256<>+288(SB)/4, $0x650a7354
  4706  DATA K256<>+292(SB)/4, $0x766a0abb
  4707  DATA K256<>+296(SB)/4, $0x81c2c92e
  4708  DATA K256<>+300(SB)/4, $0x92722c85
  4709  DATA K256<>+304(SB)/4, $0x650a7354
  4710  DATA K256<>+308(SB)/4, $0x766a0abb
  4711  DATA K256<>+312(SB)/4, $0x81c2c92e
  4712  DATA K256<>+316(SB)/4, $0x92722c85
  4713  DATA K256<>+320(SB)/4, $0xa2bfe8a1
  4714  DATA K256<>+324(SB)/4, $0xa81a664b
  4715  DATA K256<>+328(SB)/4, $0xc24b8b70
  4716  DATA K256<>+332(SB)/4, $0xc76c51a3
  4717  DATA K256<>+336(SB)/4, $0xa2bfe8a1
  4718  DATA K256<>+340(SB)/4, $0xa81a664b
  4719  DATA K256<>+344(SB)/4, $0xc24b8b70
  4720  DATA K256<>+348(SB)/4, $0xc76c51a3
  4721  DATA K256<>+352(SB)/4, $0xd192e819
  4722  DATA K256<>+356(SB)/4, $0xd6990624
  4723  DATA K256<>+360(SB)/4, $0xf40e3585
  4724  DATA K256<>+364(SB)/4, $0x106aa070
  4725  DATA K256<>+368(SB)/4, $0xd192e819
  4726  DATA K256<>+372(SB)/4, $0xd6990624
  4727  DATA K256<>+376(SB)/4, $0xf40e3585
  4728  DATA K256<>+380(SB)/4, $0x106aa070
  4729  DATA K256<>+384(SB)/4, $0x19a4c116
  4730  DATA K256<>+388(SB)/4, $0x1e376c08
  4731  DATA K256<>+392(SB)/4, $0x2748774c
  4732  DATA K256<>+396(SB)/4, $0x34b0bcb5
  4733  DATA K256<>+400(SB)/4, $0x19a4c116
  4734  DATA K256<>+404(SB)/4, $0x1e376c08
  4735  DATA K256<>+408(SB)/4, $0x2748774c
  4736  DATA K256<>+412(SB)/4, $0x34b0bcb5
  4737  DATA K256<>+416(SB)/4, $0x391c0cb3
  4738  DATA K256<>+420(SB)/4, $0x4ed8aa4a
  4739  DATA K256<>+424(SB)/4, $0x5b9cca4f
  4740  DATA K256<>+428(SB)/4, $0x682e6ff3
  4741  DATA K256<>+432(SB)/4, $0x391c0cb3
  4742  DATA K256<>+436(SB)/4, $0x4ed8aa4a
  4743  DATA K256<>+440(SB)/4, $0x5b9cca4f
  4744  DATA K256<>+444(SB)/4, $0x682e6ff3
  4745  DATA K256<>+448(SB)/4, $0x748f82ee
  4746  DATA K256<>+452(SB)/4, $0x78a5636f
  4747  DATA K256<>+456(SB)/4, $0x84c87814
  4748  DATA K256<>+460(SB)/4, $0x8cc70208
  4749  DATA K256<>+464(SB)/4, $0x748f82ee
  4750  DATA K256<>+468(SB)/4, $0x78a5636f
  4751  DATA K256<>+472(SB)/4, $0x84c87814
  4752  DATA K256<>+476(SB)/4, $0x8cc70208
  4753  DATA K256<>+480(SB)/4, $0x90befffa
  4754  DATA K256<>+484(SB)/4, $0xa4506ceb
  4755  DATA K256<>+488(SB)/4, $0xbef9a3f7
  4756  DATA K256<>+492(SB)/4, $0xc67178f2
  4757  DATA K256<>+496(SB)/4, $0x90befffa
  4758  DATA K256<>+500(SB)/4, $0xa4506ceb
  4759  DATA K256<>+504(SB)/4, $0xbef9a3f7
  4760  DATA K256<>+508(SB)/4, $0xc67178f2
  4761  GLOBL K256<>(SB), RODATA|NOPTR, $512
  4762  
  4763  DATA shuff_00BA<>+0(SB)/8, $0x0b0a090803020100
  4764  DATA shuff_00BA<>+8(SB)/8, $0xffffffffffffffff
  4765  DATA shuff_00BA<>+16(SB)/8, $0x0b0a090803020100
  4766  DATA shuff_00BA<>+24(SB)/8, $0xffffffffffffffff
  4767  GLOBL shuff_00BA<>(SB), RODATA, $32
  4768  
  4769  DATA shuff_DC00<>+0(SB)/8, $0xffffffffffffffff
  4770  DATA shuff_DC00<>+8(SB)/8, $0x0b0a090803020100
  4771  DATA shuff_DC00<>+16(SB)/8, $0xffffffffffffffff
  4772  DATA shuff_DC00<>+24(SB)/8, $0x0b0a090803020100
  4773  GLOBL shuff_DC00<>(SB), RODATA, $32
  4774  
  4775  // func blockSHANI(dig *Digest, p []byte)
  4776  // Requires: AVX, SHA, SSE2, SSE4.1, SSSE3
  4777  TEXT ·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  
  4796  roundLoop:
  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  
  4971  done:
  4972  	RET
  4973  

View as plain text