brintos

brintos / llvm-project-archived public Read only

0
0
Text · 61.8 KiB · 7709353 Raw
2090 lines · plain
1public _llvm_blake3_hash_many_sse412public llvm_blake3_hash_many_sse413public llvm_blake3_compress_in_place_sse414public _llvm_blake3_compress_in_place_sse415public llvm_blake3_compress_xof_sse416public _llvm_blake3_compress_xof_sse417 8_TEXT   SEGMENT ALIGN(16) 'CODE'9 10ALIGN   1611llvm_blake3_hash_many_sse41 PROC12_llvm_blake3_hash_many_sse41 PROC13        push    r1514        push    r1415        push    r1316        push    r1217        push    rsi18        push    rdi19        push    rbx20        push    rbp21        mov     rbp, rsp22        sub     rsp, 52823        and     rsp, 0FFFFFFFFFFFFFFC0H24        movdqa  xmmword ptr [rsp+170H], xmm625        movdqa  xmmword ptr [rsp+180H], xmm726        movdqa  xmmword ptr [rsp+190H], xmm827        movdqa  xmmword ptr [rsp+1A0H], xmm928        movdqa  xmmword ptr [rsp+1B0H], xmm1029        movdqa  xmmword ptr [rsp+1C0H], xmm1130        movdqa  xmmword ptr [rsp+1D0H], xmm1231        movdqa  xmmword ptr [rsp+1E0H], xmm1332        movdqa  xmmword ptr [rsp+1F0H], xmm1433        movdqa  xmmword ptr [rsp+200H], xmm1534        mov     rdi, rcx35        mov     rsi, rdx36        mov     rdx, r837        mov     rcx, r938        mov     r8, qword ptr [rbp+68H]39        movzx   r9, byte ptr [rbp+70H]40        neg     r9d41        movd    xmm0, r9d42        pshufd  xmm0, xmm0, 00H43        movdqa  xmmword ptr [rsp+130H], xmm044        movdqa  xmm1, xmm045        pand    xmm1, xmmword ptr [ADD0]46        pand    xmm0, xmmword ptr [ADD1]47        movdqa  xmmword ptr [rsp+150H], xmm048        movd    xmm0, r8d49        pshufd  xmm0, xmm0, 00H50        paddd   xmm0, xmm151        movdqa  xmmword ptr [rsp+110H], xmm052        pxor    xmm0, xmmword ptr [CMP_MSB_MASK]53        pxor    xmm1, xmmword ptr [CMP_MSB_MASK]54        pcmpgtd xmm1, xmm055        shr     r8, 3256        movd    xmm2, r8d57        pshufd  xmm2, xmm2, 00H58        psubd   xmm2, xmm159        movdqa  xmmword ptr [rsp+120H], xmm260        mov     rbx, qword ptr [rbp+90H]61        mov     r15, rdx62        shl     r15, 663        movzx   r13d, byte ptr [rbp+78H]64        movzx   r12d, byte ptr [rbp+88H]65        cmp     rsi, 466        jc      final3blocks67outerloop4:68        movdqu  xmm3, xmmword ptr [rcx]69        pshufd  xmm0, xmm3, 00H70        pshufd  xmm1, xmm3, 55H71        pshufd  xmm2, xmm3, 0AAH72        pshufd  xmm3, xmm3, 0FFH73        movdqu  xmm7, xmmword ptr [rcx+10H]74        pshufd  xmm4, xmm7, 00H75        pshufd  xmm5, xmm7, 55H76        pshufd  xmm6, xmm7, 0AAH77        pshufd  xmm7, xmm7, 0FFH78        mov     r8, qword ptr [rdi]79        mov     r9, qword ptr [rdi+8H]80        mov     r10, qword ptr [rdi+10H]81        mov     r11, qword ptr [rdi+18H]82        movzx   eax, byte ptr [rbp+80H]83        or      eax, r13d84        xor     edx, edx85innerloop4:86        mov     r14d, eax87        or      eax, r12d88        add     rdx, 6489        cmp     rdx, r1590        cmovne  eax, r14d91        movdqu  xmm8, xmmword ptr [r8+rdx-40H]92        movdqu  xmm9, xmmword ptr [r9+rdx-40H]93        movdqu  xmm10, xmmword ptr [r10+rdx-40H]94        movdqu  xmm11, xmmword ptr [r11+rdx-40H]95        movdqa  xmm12, xmm896        punpckldq xmm8, xmm997        punpckhdq xmm12, xmm998        movdqa  xmm14, xmm1099        punpckldq xmm10, xmm11100        punpckhdq xmm14, xmm11101        movdqa  xmm9, xmm8102        punpcklqdq xmm8, xmm10103        punpckhqdq xmm9, xmm10104        movdqa  xmm13, xmm12105        punpcklqdq xmm12, xmm14106        punpckhqdq xmm13, xmm14107        movdqa  xmmword ptr [rsp], xmm8108        movdqa  xmmword ptr [rsp+10H], xmm9109        movdqa  xmmword ptr [rsp+20H], xmm12110        movdqa  xmmword ptr [rsp+30H], xmm13111        movdqu  xmm8, xmmword ptr [r8+rdx-30H]112        movdqu  xmm9, xmmword ptr [r9+rdx-30H]113        movdqu  xmm10, xmmword ptr [r10+rdx-30H]114        movdqu  xmm11, xmmword ptr [r11+rdx-30H]115        movdqa  xmm12, xmm8116        punpckldq xmm8, xmm9117        punpckhdq xmm12, xmm9118        movdqa  xmm14, xmm10119        punpckldq xmm10, xmm11120        punpckhdq xmm14, xmm11121        movdqa  xmm9, xmm8122        punpcklqdq xmm8, xmm10123        punpckhqdq xmm9, xmm10124        movdqa  xmm13, xmm12125        punpcklqdq xmm12, xmm14126        punpckhqdq xmm13, xmm14127        movdqa  xmmword ptr [rsp+40H], xmm8128        movdqa  xmmword ptr [rsp+50H], xmm9129        movdqa  xmmword ptr [rsp+60H], xmm12130        movdqa  xmmword ptr [rsp+70H], xmm13131        movdqu  xmm8, xmmword ptr [r8+rdx-20H]132        movdqu  xmm9, xmmword ptr [r9+rdx-20H]133        movdqu  xmm10, xmmword ptr [r10+rdx-20H]134        movdqu  xmm11, xmmword ptr [r11+rdx-20H]135        movdqa  xmm12, xmm8136        punpckldq xmm8, xmm9137        punpckhdq xmm12, xmm9138        movdqa  xmm14, xmm10139        punpckldq xmm10, xmm11140        punpckhdq xmm14, xmm11141        movdqa  xmm9, xmm8142        punpcklqdq xmm8, xmm10143        punpckhqdq xmm9, xmm10144        movdqa  xmm13, xmm12145        punpcklqdq xmm12, xmm14146        punpckhqdq xmm13, xmm14147        movdqa  xmmword ptr [rsp+80H], xmm8148        movdqa  xmmword ptr [rsp+90H], xmm9149        movdqa  xmmword ptr [rsp+0A0H], xmm12150        movdqa  xmmword ptr [rsp+0B0H], xmm13151        movdqu  xmm8, xmmword ptr [r8+rdx-10H]152        movdqu  xmm9, xmmword ptr [r9+rdx-10H]153        movdqu  xmm10, xmmword ptr [r10+rdx-10H]154        movdqu  xmm11, xmmword ptr [r11+rdx-10H]155        movdqa  xmm12, xmm8156        punpckldq xmm8, xmm9157        punpckhdq xmm12, xmm9158        movdqa  xmm14, xmm10159        punpckldq xmm10, xmm11160        punpckhdq xmm14, xmm11161        movdqa  xmm9, xmm8162        punpcklqdq xmm8, xmm10163        punpckhqdq xmm9, xmm10164        movdqa  xmm13, xmm12165        punpcklqdq xmm12, xmm14166        punpckhqdq xmm13, xmm14167        movdqa  xmmword ptr [rsp+0C0H], xmm8168        movdqa  xmmword ptr [rsp+0D0H], xmm9169        movdqa  xmmword ptr [rsp+0E0H], xmm12170        movdqa  xmmword ptr [rsp+0F0H], xmm13171        movdqa  xmm9, xmmword ptr [BLAKE3_IV_1]172        movdqa  xmm10, xmmword ptr [BLAKE3_IV_2]173        movdqa  xmm11, xmmword ptr [BLAKE3_IV_3]174        movdqa  xmm12, xmmword ptr [rsp+110H]175        movdqa  xmm13, xmmword ptr [rsp+120H]176        movdqa  xmm14, xmmword ptr [BLAKE3_BLOCK_LEN]177        movd    xmm15, eax178        pshufd  xmm15, xmm15, 00H179        prefetcht0 byte ptr [r8+rdx+80H]180        prefetcht0 byte ptr [r9+rdx+80H]181        prefetcht0 byte ptr [r10+rdx+80H]182        prefetcht0 byte ptr [r11+rdx+80H]183        paddd   xmm0, xmmword ptr [rsp]184        paddd   xmm1, xmmword ptr [rsp+20H]185        paddd   xmm2, xmmword ptr [rsp+40H]186        paddd   xmm3, xmmword ptr [rsp+60H]187        paddd   xmm0, xmm4188        paddd   xmm1, xmm5189        paddd   xmm2, xmm6190        paddd   xmm3, xmm7191        pxor    xmm12, xmm0192        pxor    xmm13, xmm1193        pxor    xmm14, xmm2194        pxor    xmm15, xmm3195        movdqa  xmm8, xmmword ptr [ROT16]196        pshufb  xmm12, xmm8197        pshufb  xmm13, xmm8198        pshufb  xmm14, xmm8199        pshufb  xmm15, xmm8200        movdqa  xmm8, xmmword ptr [BLAKE3_IV_0]201        paddd   xmm8, xmm12202        paddd   xmm9, xmm13203        paddd   xmm10, xmm14204        paddd   xmm11, xmm15205        pxor    xmm4, xmm8206        pxor    xmm5, xmm9207        pxor    xmm6, xmm10208        pxor    xmm7, xmm11209        movdqa  xmmword ptr [rsp+100H], xmm8210        movdqa  xmm8, xmm4211        psrld   xmm8, 12212        pslld   xmm4, 20213        por     xmm4, xmm8214        movdqa  xmm8, xmm5215        psrld   xmm8, 12216        pslld   xmm5, 20217        por     xmm5, xmm8218        movdqa  xmm8, xmm6219        psrld   xmm8, 12220        pslld   xmm6, 20221        por     xmm6, xmm8222        movdqa  xmm8, xmm7223        psrld   xmm8, 12224        pslld   xmm7, 20225        por     xmm7, xmm8226        paddd   xmm0, xmmword ptr [rsp+10H]227        paddd   xmm1, xmmword ptr [rsp+30H]228        paddd   xmm2, xmmword ptr [rsp+50H]229        paddd   xmm3, xmmword ptr [rsp+70H]230        paddd   xmm0, xmm4231        paddd   xmm1, xmm5232        paddd   xmm2, xmm6233        paddd   xmm3, xmm7234        pxor    xmm12, xmm0235        pxor    xmm13, xmm1236        pxor    xmm14, xmm2237        pxor    xmm15, xmm3238        movdqa  xmm8, xmmword ptr [ROT8]239        pshufb  xmm12, xmm8240        pshufb  xmm13, xmm8241        pshufb  xmm14, xmm8242        pshufb  xmm15, xmm8243        movdqa  xmm8, xmmword ptr [rsp+100H]244        paddd   xmm8, xmm12245        paddd   xmm9, xmm13246        paddd   xmm10, xmm14247        paddd   xmm11, xmm15248        pxor    xmm4, xmm8249        pxor    xmm5, xmm9250        pxor    xmm6, xmm10251        pxor    xmm7, xmm11252        movdqa  xmmword ptr [rsp+100H], xmm8253        movdqa  xmm8, xmm4254        psrld   xmm8, 7255        pslld   xmm4, 25256        por     xmm4, xmm8257        movdqa  xmm8, xmm5258        psrld   xmm8, 7259        pslld   xmm5, 25260        por     xmm5, xmm8261        movdqa  xmm8, xmm6262        psrld   xmm8, 7263        pslld   xmm6, 25264        por     xmm6, xmm8265        movdqa  xmm8, xmm7266        psrld   xmm8, 7267        pslld   xmm7, 25268        por     xmm7, xmm8269        paddd   xmm0, xmmword ptr [rsp+80H]270        paddd   xmm1, xmmword ptr [rsp+0A0H]271        paddd   xmm2, xmmword ptr [rsp+0C0H]272        paddd   xmm3, xmmword ptr [rsp+0E0H]273        paddd   xmm0, xmm5274        paddd   xmm1, xmm6275        paddd   xmm2, xmm7276        paddd   xmm3, xmm4277        pxor    xmm15, xmm0278        pxor    xmm12, xmm1279        pxor    xmm13, xmm2280        pxor    xmm14, xmm3281        movdqa  xmm8, xmmword ptr [ROT16]282        pshufb  xmm15, xmm8283        pshufb  xmm12, xmm8284        pshufb  xmm13, xmm8285        pshufb  xmm14, xmm8286        paddd   xmm10, xmm15287        paddd   xmm11, xmm12288        movdqa  xmm8, xmmword ptr [rsp+100H]289        paddd   xmm8, xmm13290        paddd   xmm9, xmm14291        pxor    xmm5, xmm10292        pxor    xmm6, xmm11293        pxor    xmm7, xmm8294        pxor    xmm4, xmm9295        movdqa  xmmword ptr [rsp+100H], xmm8296        movdqa  xmm8, xmm5297        psrld   xmm8, 12298        pslld   xmm5, 20299        por     xmm5, xmm8300        movdqa  xmm8, xmm6301        psrld   xmm8, 12302        pslld   xmm6, 20303        por     xmm6, xmm8304        movdqa  xmm8, xmm7305        psrld   xmm8, 12306        pslld   xmm7, 20307        por     xmm7, xmm8308        movdqa  xmm8, xmm4309        psrld   xmm8, 12310        pslld   xmm4, 20311        por     xmm4, xmm8312        paddd   xmm0, xmmword ptr [rsp+90H]313        paddd   xmm1, xmmword ptr [rsp+0B0H]314        paddd   xmm2, xmmword ptr [rsp+0D0H]315        paddd   xmm3, xmmword ptr [rsp+0F0H]316        paddd   xmm0, xmm5317        paddd   xmm1, xmm6318        paddd   xmm2, xmm7319        paddd   xmm3, xmm4320        pxor    xmm15, xmm0321        pxor    xmm12, xmm1322        pxor    xmm13, xmm2323        pxor    xmm14, xmm3324        movdqa  xmm8, xmmword ptr [ROT8]325        pshufb  xmm15, xmm8326        pshufb  xmm12, xmm8327        pshufb  xmm13, xmm8328        pshufb  xmm14, xmm8329        paddd   xmm10, xmm15330        paddd   xmm11, xmm12331        movdqa  xmm8, xmmword ptr [rsp+100H]332        paddd   xmm8, xmm13333        paddd   xmm9, xmm14334        pxor    xmm5, xmm10335        pxor    xmm6, xmm11336        pxor    xmm7, xmm8337        pxor    xmm4, xmm9338        movdqa  xmmword ptr [rsp+100H], xmm8339        movdqa  xmm8, xmm5340        psrld   xmm8, 7341        pslld   xmm5, 25342        por     xmm5, xmm8343        movdqa  xmm8, xmm6344        psrld   xmm8, 7345        pslld   xmm6, 25346        por     xmm6, xmm8347        movdqa  xmm8, xmm7348        psrld   xmm8, 7349        pslld   xmm7, 25350        por     xmm7, xmm8351        movdqa  xmm8, xmm4352        psrld   xmm8, 7353        pslld   xmm4, 25354        por     xmm4, xmm8355        paddd   xmm0, xmmword ptr [rsp+20H]356        paddd   xmm1, xmmword ptr [rsp+30H]357        paddd   xmm2, xmmword ptr [rsp+70H]358        paddd   xmm3, xmmword ptr [rsp+40H]359        paddd   xmm0, xmm4360        paddd   xmm1, xmm5361        paddd   xmm2, xmm6362        paddd   xmm3, xmm7363        pxor    xmm12, xmm0364        pxor    xmm13, xmm1365        pxor    xmm14, xmm2366        pxor    xmm15, xmm3367        movdqa  xmm8, xmmword ptr [ROT16]368        pshufb  xmm12, xmm8369        pshufb  xmm13, xmm8370        pshufb  xmm14, xmm8371        pshufb  xmm15, xmm8372        movdqa  xmm8, xmmword ptr [rsp+100H]373        paddd   xmm8, xmm12374        paddd   xmm9, xmm13375        paddd   xmm10, xmm14376        paddd   xmm11, xmm15377        pxor    xmm4, xmm8378        pxor    xmm5, xmm9379        pxor    xmm6, xmm10380        pxor    xmm7, xmm11381        movdqa  xmmword ptr [rsp+100H], xmm8382        movdqa  xmm8, xmm4383        psrld   xmm8, 12384        pslld   xmm4, 20385        por     xmm4, xmm8386        movdqa  xmm8, xmm5387        psrld   xmm8, 12388        pslld   xmm5, 20389        por     xmm5, xmm8390        movdqa  xmm8, xmm6391        psrld   xmm8, 12392        pslld   xmm6, 20393        por     xmm6, xmm8394        movdqa  xmm8, xmm7395        psrld   xmm8, 12396        pslld   xmm7, 20397        por     xmm7, xmm8398        paddd   xmm0, xmmword ptr [rsp+60H]399        paddd   xmm1, xmmword ptr [rsp+0A0H]400        paddd   xmm2, xmmword ptr [rsp]401        paddd   xmm3, xmmword ptr [rsp+0D0H]402        paddd   xmm0, xmm4403        paddd   xmm1, xmm5404        paddd   xmm2, xmm6405        paddd   xmm3, xmm7406        pxor    xmm12, xmm0407        pxor    xmm13, xmm1408        pxor    xmm14, xmm2409        pxor    xmm15, xmm3410        movdqa  xmm8, xmmword ptr [ROT8]411        pshufb  xmm12, xmm8412        pshufb  xmm13, xmm8413        pshufb  xmm14, xmm8414        pshufb  xmm15, xmm8415        movdqa  xmm8, xmmword ptr [rsp+100H]416        paddd   xmm8, xmm12417        paddd   xmm9, xmm13418        paddd   xmm10, xmm14419        paddd   xmm11, xmm15420        pxor    xmm4, xmm8421        pxor    xmm5, xmm9422        pxor    xmm6, xmm10423        pxor    xmm7, xmm11424        movdqa  xmmword ptr [rsp+100H], xmm8425        movdqa  xmm8, xmm4426        psrld   xmm8, 7427        pslld   xmm4, 25428        por     xmm4, xmm8429        movdqa  xmm8, xmm5430        psrld   xmm8, 7431        pslld   xmm5, 25432        por     xmm5, xmm8433        movdqa  xmm8, xmm6434        psrld   xmm8, 7435        pslld   xmm6, 25436        por     xmm6, xmm8437        movdqa  xmm8, xmm7438        psrld   xmm8, 7439        pslld   xmm7, 25440        por     xmm7, xmm8441        paddd   xmm0, xmmword ptr [rsp+10H]442        paddd   xmm1, xmmword ptr [rsp+0C0H]443        paddd   xmm2, xmmword ptr [rsp+90H]444        paddd   xmm3, xmmword ptr [rsp+0F0H]445        paddd   xmm0, xmm5446        paddd   xmm1, xmm6447        paddd   xmm2, xmm7448        paddd   xmm3, xmm4449        pxor    xmm15, xmm0450        pxor    xmm12, xmm1451        pxor    xmm13, xmm2452        pxor    xmm14, xmm3453        movdqa  xmm8, xmmword ptr [ROT16]454        pshufb  xmm15, xmm8455        pshufb  xmm12, xmm8456        pshufb  xmm13, xmm8457        pshufb  xmm14, xmm8458        paddd   xmm10, xmm15459        paddd   xmm11, xmm12460        movdqa  xmm8, xmmword ptr [rsp+100H]461        paddd   xmm8, xmm13462        paddd   xmm9, xmm14463        pxor    xmm5, xmm10464        pxor    xmm6, xmm11465        pxor    xmm7, xmm8466        pxor    xmm4, xmm9467        movdqa  xmmword ptr [rsp+100H], xmm8468        movdqa  xmm8, xmm5469        psrld   xmm8, 12470        pslld   xmm5, 20471        por     xmm5, xmm8472        movdqa  xmm8, xmm6473        psrld   xmm8, 12474        pslld   xmm6, 20475        por     xmm6, xmm8476        movdqa  xmm8, xmm7477        psrld   xmm8, 12478        pslld   xmm7, 20479        por     xmm7, xmm8480        movdqa  xmm8, xmm4481        psrld   xmm8, 12482        pslld   xmm4, 20483        por     xmm4, xmm8484        paddd   xmm0, xmmword ptr [rsp+0B0H]485        paddd   xmm1, xmmword ptr [rsp+50H]486        paddd   xmm2, xmmword ptr [rsp+0E0H]487        paddd   xmm3, xmmword ptr [rsp+80H]488        paddd   xmm0, xmm5489        paddd   xmm1, xmm6490        paddd   xmm2, xmm7491        paddd   xmm3, xmm4492        pxor    xmm15, xmm0493        pxor    xmm12, xmm1494        pxor    xmm13, xmm2495        pxor    xmm14, xmm3496        movdqa  xmm8, xmmword ptr [ROT8]497        pshufb  xmm15, xmm8498        pshufb  xmm12, xmm8499        pshufb  xmm13, xmm8500        pshufb  xmm14, xmm8501        paddd   xmm10, xmm15502        paddd   xmm11, xmm12503        movdqa  xmm8, xmmword ptr [rsp+100H]504        paddd   xmm8, xmm13505        paddd   xmm9, xmm14506        pxor    xmm5, xmm10507        pxor    xmm6, xmm11508        pxor    xmm7, xmm8509        pxor    xmm4, xmm9510        movdqa  xmmword ptr [rsp+100H], xmm8511        movdqa  xmm8, xmm5512        psrld   xmm8, 7513        pslld   xmm5, 25514        por     xmm5, xmm8515        movdqa  xmm8, xmm6516        psrld   xmm8, 7517        pslld   xmm6, 25518        por     xmm6, xmm8519        movdqa  xmm8, xmm7520        psrld   xmm8, 7521        pslld   xmm7, 25522        por     xmm7, xmm8523        movdqa  xmm8, xmm4524        psrld   xmm8, 7525        pslld   xmm4, 25526        por     xmm4, xmm8527        paddd   xmm0, xmmword ptr [rsp+30H]528        paddd   xmm1, xmmword ptr [rsp+0A0H]529        paddd   xmm2, xmmword ptr [rsp+0D0H]530        paddd   xmm3, xmmword ptr [rsp+70H]531        paddd   xmm0, xmm4532        paddd   xmm1, xmm5533        paddd   xmm2, xmm6534        paddd   xmm3, xmm7535        pxor    xmm12, xmm0536        pxor    xmm13, xmm1537        pxor    xmm14, xmm2538        pxor    xmm15, xmm3539        movdqa  xmm8, xmmword ptr [ROT16]540        pshufb  xmm12, xmm8541        pshufb  xmm13, xmm8542        pshufb  xmm14, xmm8543        pshufb  xmm15, xmm8544        movdqa  xmm8, xmmword ptr [rsp+100H]545        paddd   xmm8, xmm12546        paddd   xmm9, xmm13547        paddd   xmm10, xmm14548        paddd   xmm11, xmm15549        pxor    xmm4, xmm8550        pxor    xmm5, xmm9551        pxor    xmm6, xmm10552        pxor    xmm7, xmm11553        movdqa  xmmword ptr [rsp+100H], xmm8554        movdqa  xmm8, xmm4555        psrld   xmm8, 12556        pslld   xmm4, 20557        por     xmm4, xmm8558        movdqa  xmm8, xmm5559        psrld   xmm8, 12560        pslld   xmm5, 20561        por     xmm5, xmm8562        movdqa  xmm8, xmm6563        psrld   xmm8, 12564        pslld   xmm6, 20565        por     xmm6, xmm8566        movdqa  xmm8, xmm7567        psrld   xmm8, 12568        pslld   xmm7, 20569        por     xmm7, xmm8570        paddd   xmm0, xmmword ptr [rsp+40H]571        paddd   xmm1, xmmword ptr [rsp+0C0H]572        paddd   xmm2, xmmword ptr [rsp+20H]573        paddd   xmm3, xmmword ptr [rsp+0E0H]574        paddd   xmm0, xmm4575        paddd   xmm1, xmm5576        paddd   xmm2, xmm6577        paddd   xmm3, xmm7578        pxor    xmm12, xmm0579        pxor    xmm13, xmm1580        pxor    xmm14, xmm2581        pxor    xmm15, xmm3582        movdqa  xmm8, xmmword ptr [ROT8]583        pshufb  xmm12, xmm8584        pshufb  xmm13, xmm8585        pshufb  xmm14, xmm8586        pshufb  xmm15, xmm8587        movdqa  xmm8, xmmword ptr [rsp+100H]588        paddd   xmm8, xmm12589        paddd   xmm9, xmm13590        paddd   xmm10, xmm14591        paddd   xmm11, xmm15592        pxor    xmm4, xmm8593        pxor    xmm5, xmm9594        pxor    xmm6, xmm10595        pxor    xmm7, xmm11596        movdqa  xmmword ptr [rsp+100H], xmm8597        movdqa  xmm8, xmm4598        psrld   xmm8, 7599        pslld   xmm4, 25600        por     xmm4, xmm8601        movdqa  xmm8, xmm5602        psrld   xmm8, 7603        pslld   xmm5, 25604        por     xmm5, xmm8605        movdqa  xmm8, xmm6606        psrld   xmm8, 7607        pslld   xmm6, 25608        por     xmm6, xmm8609        movdqa  xmm8, xmm7610        psrld   xmm8, 7611        pslld   xmm7, 25612        por     xmm7, xmm8613        paddd   xmm0, xmmword ptr [rsp+60H]614        paddd   xmm1, xmmword ptr [rsp+90H]615        paddd   xmm2, xmmword ptr [rsp+0B0H]616        paddd   xmm3, xmmword ptr [rsp+80H]617        paddd   xmm0, xmm5618        paddd   xmm1, xmm6619        paddd   xmm2, xmm7620        paddd   xmm3, xmm4621        pxor    xmm15, xmm0622        pxor    xmm12, xmm1623        pxor    xmm13, xmm2624        pxor    xmm14, xmm3625        movdqa  xmm8, xmmword ptr [ROT16]626        pshufb  xmm15, xmm8627        pshufb  xmm12, xmm8628        pshufb  xmm13, xmm8629        pshufb  xmm14, xmm8630        paddd   xmm10, xmm15631        paddd   xmm11, xmm12632        movdqa  xmm8, xmmword ptr [rsp+100H]633        paddd   xmm8, xmm13634        paddd   xmm9, xmm14635        pxor    xmm5, xmm10636        pxor    xmm6, xmm11637        pxor    xmm7, xmm8638        pxor    xmm4, xmm9639        movdqa  xmmword ptr [rsp+100H], xmm8640        movdqa  xmm8, xmm5641        psrld   xmm8, 12642        pslld   xmm5, 20643        por     xmm5, xmm8644        movdqa  xmm8, xmm6645        psrld   xmm8, 12646        pslld   xmm6, 20647        por     xmm6, xmm8648        movdqa  xmm8, xmm7649        psrld   xmm8, 12650        pslld   xmm7, 20651        por     xmm7, xmm8652        movdqa  xmm8, xmm4653        psrld   xmm8, 12654        pslld   xmm4, 20655        por     xmm4, xmm8656        paddd   xmm0, xmmword ptr [rsp+50H]657        paddd   xmm1, xmmword ptr [rsp]658        paddd   xmm2, xmmword ptr [rsp+0F0H]659        paddd   xmm3, xmmword ptr [rsp+10H]660        paddd   xmm0, xmm5661        paddd   xmm1, xmm6662        paddd   xmm2, xmm7663        paddd   xmm3, xmm4664        pxor    xmm15, xmm0665        pxor    xmm12, xmm1666        pxor    xmm13, xmm2667        pxor    xmm14, xmm3668        movdqa  xmm8, xmmword ptr [ROT8]669        pshufb  xmm15, xmm8670        pshufb  xmm12, xmm8671        pshufb  xmm13, xmm8672        pshufb  xmm14, xmm8673        paddd   xmm10, xmm15674        paddd   xmm11, xmm12675        movdqa  xmm8, xmmword ptr [rsp+100H]676        paddd   xmm8, xmm13677        paddd   xmm9, xmm14678        pxor    xmm5, xmm10679        pxor    xmm6, xmm11680        pxor    xmm7, xmm8681        pxor    xmm4, xmm9682        movdqa  xmmword ptr [rsp+100H], xmm8683        movdqa  xmm8, xmm5684        psrld   xmm8, 7685        pslld   xmm5, 25686        por     xmm5, xmm8687        movdqa  xmm8, xmm6688        psrld   xmm8, 7689        pslld   xmm6, 25690        por     xmm6, xmm8691        movdqa  xmm8, xmm7692        psrld   xmm8, 7693        pslld   xmm7, 25694        por     xmm7, xmm8695        movdqa  xmm8, xmm4696        psrld   xmm8, 7697        pslld   xmm4, 25698        por     xmm4, xmm8699        paddd   xmm0, xmmword ptr [rsp+0A0H]700        paddd   xmm1, xmmword ptr [rsp+0C0H]701        paddd   xmm2, xmmword ptr [rsp+0E0H]702        paddd   xmm3, xmmword ptr [rsp+0D0H]703        paddd   xmm0, xmm4704        paddd   xmm1, xmm5705        paddd   xmm2, xmm6706        paddd   xmm3, xmm7707        pxor    xmm12, xmm0708        pxor    xmm13, xmm1709        pxor    xmm14, xmm2710        pxor    xmm15, xmm3711        movdqa  xmm8, xmmword ptr [ROT16]712        pshufb  xmm12, xmm8713        pshufb  xmm13, xmm8714        pshufb  xmm14, xmm8715        pshufb  xmm15, xmm8716        movdqa  xmm8, xmmword ptr [rsp+100H]717        paddd   xmm8, xmm12718        paddd   xmm9, xmm13719        paddd   xmm10, xmm14720        paddd   xmm11, xmm15721        pxor    xmm4, xmm8722        pxor    xmm5, xmm9723        pxor    xmm6, xmm10724        pxor    xmm7, xmm11725        movdqa  xmmword ptr [rsp+100H], xmm8726        movdqa  xmm8, xmm4727        psrld   xmm8, 12728        pslld   xmm4, 20729        por     xmm4, xmm8730        movdqa  xmm8, xmm5731        psrld   xmm8, 12732        pslld   xmm5, 20733        por     xmm5, xmm8734        movdqa  xmm8, xmm6735        psrld   xmm8, 12736        pslld   xmm6, 20737        por     xmm6, xmm8738        movdqa  xmm8, xmm7739        psrld   xmm8, 12740        pslld   xmm7, 20741        por     xmm7, xmm8742        paddd   xmm0, xmmword ptr [rsp+70H]743        paddd   xmm1, xmmword ptr [rsp+90H]744        paddd   xmm2, xmmword ptr [rsp+30H]745        paddd   xmm3, xmmword ptr [rsp+0F0H]746        paddd   xmm0, xmm4747        paddd   xmm1, xmm5748        paddd   xmm2, xmm6749        paddd   xmm3, xmm7750        pxor    xmm12, xmm0751        pxor    xmm13, xmm1752        pxor    xmm14, xmm2753        pxor    xmm15, xmm3754        movdqa  xmm8, xmmword ptr [ROT8]755        pshufb  xmm12, xmm8756        pshufb  xmm13, xmm8757        pshufb  xmm14, xmm8758        pshufb  xmm15, xmm8759        movdqa  xmm8, xmmword ptr [rsp+100H]760        paddd   xmm8, xmm12761        paddd   xmm9, xmm13762        paddd   xmm10, xmm14763        paddd   xmm11, xmm15764        pxor    xmm4, xmm8765        pxor    xmm5, xmm9766        pxor    xmm6, xmm10767        pxor    xmm7, xmm11768        movdqa  xmmword ptr [rsp+100H], xmm8769        movdqa  xmm8, xmm4770        psrld   xmm8, 7771        pslld   xmm4, 25772        por     xmm4, xmm8773        movdqa  xmm8, xmm5774        psrld   xmm8, 7775        pslld   xmm5, 25776        por     xmm5, xmm8777        movdqa  xmm8, xmm6778        psrld   xmm8, 7779        pslld   xmm6, 25780        por     xmm6, xmm8781        movdqa  xmm8, xmm7782        psrld   xmm8, 7783        pslld   xmm7, 25784        por     xmm7, xmm8785        paddd   xmm0, xmmword ptr [rsp+40H]786        paddd   xmm1, xmmword ptr [rsp+0B0H]787        paddd   xmm2, xmmword ptr [rsp+50H]788        paddd   xmm3, xmmword ptr [rsp+10H]789        paddd   xmm0, xmm5790        paddd   xmm1, xmm6791        paddd   xmm2, xmm7792        paddd   xmm3, xmm4793        pxor    xmm15, xmm0794        pxor    xmm12, xmm1795        pxor    xmm13, xmm2796        pxor    xmm14, xmm3797        movdqa  xmm8, xmmword ptr [ROT16]798        pshufb  xmm15, xmm8799        pshufb  xmm12, xmm8800        pshufb  xmm13, xmm8801        pshufb  xmm14, xmm8802        paddd   xmm10, xmm15803        paddd   xmm11, xmm12804        movdqa  xmm8, xmmword ptr [rsp+100H]805        paddd   xmm8, xmm13806        paddd   xmm9, xmm14807        pxor    xmm5, xmm10808        pxor    xmm6, xmm11809        pxor    xmm7, xmm8810        pxor    xmm4, xmm9811        movdqa  xmmword ptr [rsp+100H], xmm8812        movdqa  xmm8, xmm5813        psrld   xmm8, 12814        pslld   xmm5, 20815        por     xmm5, xmm8816        movdqa  xmm8, xmm6817        psrld   xmm8, 12818        pslld   xmm6, 20819        por     xmm6, xmm8820        movdqa  xmm8, xmm7821        psrld   xmm8, 12822        pslld   xmm7, 20823        por     xmm7, xmm8824        movdqa  xmm8, xmm4825        psrld   xmm8, 12826        pslld   xmm4, 20827        por     xmm4, xmm8828        paddd   xmm0, xmmword ptr [rsp]829        paddd   xmm1, xmmword ptr [rsp+20H]830        paddd   xmm2, xmmword ptr [rsp+80H]831        paddd   xmm3, xmmword ptr [rsp+60H]832        paddd   xmm0, xmm5833        paddd   xmm1, xmm6834        paddd   xmm2, xmm7835        paddd   xmm3, xmm4836        pxor    xmm15, xmm0837        pxor    xmm12, xmm1838        pxor    xmm13, xmm2839        pxor    xmm14, xmm3840        movdqa  xmm8, xmmword ptr [ROT8]841        pshufb  xmm15, xmm8842        pshufb  xmm12, xmm8843        pshufb  xmm13, xmm8844        pshufb  xmm14, xmm8845        paddd   xmm10, xmm15846        paddd   xmm11, xmm12847        movdqa  xmm8, xmmword ptr [rsp+100H]848        paddd   xmm8, xmm13849        paddd   xmm9, xmm14850        pxor    xmm5, xmm10851        pxor    xmm6, xmm11852        pxor    xmm7, xmm8853        pxor    xmm4, xmm9854        movdqa  xmmword ptr [rsp+100H], xmm8855        movdqa  xmm8, xmm5856        psrld   xmm8, 7857        pslld   xmm5, 25858        por     xmm5, xmm8859        movdqa  xmm8, xmm6860        psrld   xmm8, 7861        pslld   xmm6, 25862        por     xmm6, xmm8863        movdqa  xmm8, xmm7864        psrld   xmm8, 7865        pslld   xmm7, 25866        por     xmm7, xmm8867        movdqa  xmm8, xmm4868        psrld   xmm8, 7869        pslld   xmm4, 25870        por     xmm4, xmm8871        paddd   xmm0, xmmword ptr [rsp+0C0H]872        paddd   xmm1, xmmword ptr [rsp+90H]873        paddd   xmm2, xmmword ptr [rsp+0F0H]874        paddd   xmm3, xmmword ptr [rsp+0E0H]875        paddd   xmm0, xmm4876        paddd   xmm1, xmm5877        paddd   xmm2, xmm6878        paddd   xmm3, xmm7879        pxor    xmm12, xmm0880        pxor    xmm13, xmm1881        pxor    xmm14, xmm2882        pxor    xmm15, xmm3883        movdqa  xmm8, xmmword ptr [ROT16]884        pshufb  xmm12, xmm8885        pshufb  xmm13, xmm8886        pshufb  xmm14, xmm8887        pshufb  xmm15, xmm8888        movdqa  xmm8, xmmword ptr [rsp+100H]889        paddd   xmm8, xmm12890        paddd   xmm9, xmm13891        paddd   xmm10, xmm14892        paddd   xmm11, xmm15893        pxor    xmm4, xmm8894        pxor    xmm5, xmm9895        pxor    xmm6, xmm10896        pxor    xmm7, xmm11897        movdqa  xmmword ptr [rsp+100H], xmm8898        movdqa  xmm8, xmm4899        psrld   xmm8, 12900        pslld   xmm4, 20901        por     xmm4, xmm8902        movdqa  xmm8, xmm5903        psrld   xmm8, 12904        pslld   xmm5, 20905        por     xmm5, xmm8906        movdqa  xmm8, xmm6907        psrld   xmm8, 12908        pslld   xmm6, 20909        por     xmm6, xmm8910        movdqa  xmm8, xmm7911        psrld   xmm8, 12912        pslld   xmm7, 20913        por     xmm7, xmm8914        paddd   xmm0, xmmword ptr [rsp+0D0H]915        paddd   xmm1, xmmword ptr [rsp+0B0H]916        paddd   xmm2, xmmword ptr [rsp+0A0H]917        paddd   xmm3, xmmword ptr [rsp+80H]918        paddd   xmm0, xmm4919        paddd   xmm1, xmm5920        paddd   xmm2, xmm6921        paddd   xmm3, xmm7922        pxor    xmm12, xmm0923        pxor    xmm13, xmm1924        pxor    xmm14, xmm2925        pxor    xmm15, xmm3926        movdqa  xmm8, xmmword ptr [ROT8]927        pshufb  xmm12, xmm8928        pshufb  xmm13, xmm8929        pshufb  xmm14, xmm8930        pshufb  xmm15, xmm8931        movdqa  xmm8, xmmword ptr [rsp+100H]932        paddd   xmm8, xmm12933        paddd   xmm9, xmm13934        paddd   xmm10, xmm14935        paddd   xmm11, xmm15936        pxor    xmm4, xmm8937        pxor    xmm5, xmm9938        pxor    xmm6, xmm10939        pxor    xmm7, xmm11940        movdqa  xmmword ptr [rsp+100H], xmm8941        movdqa  xmm8, xmm4942        psrld   xmm8, 7943        pslld   xmm4, 25944        por     xmm4, xmm8945        movdqa  xmm8, xmm5946        psrld   xmm8, 7947        pslld   xmm5, 25948        por     xmm5, xmm8949        movdqa  xmm8, xmm6950        psrld   xmm8, 7951        pslld   xmm6, 25952        por     xmm6, xmm8953        movdqa  xmm8, xmm7954        psrld   xmm8, 7955        pslld   xmm7, 25956        por     xmm7, xmm8957        paddd   xmm0, xmmword ptr [rsp+70H]958        paddd   xmm1, xmmword ptr [rsp+50H]959        paddd   xmm2, xmmword ptr [rsp]960        paddd   xmm3, xmmword ptr [rsp+60H]961        paddd   xmm0, xmm5962        paddd   xmm1, xmm6963        paddd   xmm2, xmm7964        paddd   xmm3, xmm4965        pxor    xmm15, xmm0966        pxor    xmm12, xmm1967        pxor    xmm13, xmm2968        pxor    xmm14, xmm3969        movdqa  xmm8, xmmword ptr [ROT16]970        pshufb  xmm15, xmm8971        pshufb  xmm12, xmm8972        pshufb  xmm13, xmm8973        pshufb  xmm14, xmm8974        paddd   xmm10, xmm15975        paddd   xmm11, xmm12976        movdqa  xmm8, xmmword ptr [rsp+100H]977        paddd   xmm8, xmm13978        paddd   xmm9, xmm14979        pxor    xmm5, xmm10980        pxor    xmm6, xmm11981        pxor    xmm7, xmm8982        pxor    xmm4, xmm9983        movdqa  xmmword ptr [rsp+100H], xmm8984        movdqa  xmm8, xmm5985        psrld   xmm8, 12986        pslld   xmm5, 20987        por     xmm5, xmm8988        movdqa  xmm8, xmm6989        psrld   xmm8, 12990        pslld   xmm6, 20991        por     xmm6, xmm8992        movdqa  xmm8, xmm7993        psrld   xmm8, 12994        pslld   xmm7, 20995        por     xmm7, xmm8996        movdqa  xmm8, xmm4997        psrld   xmm8, 12998        pslld   xmm4, 20999        por     xmm4, xmm81000        paddd   xmm0, xmmword ptr [rsp+20H]1001        paddd   xmm1, xmmword ptr [rsp+30H]1002        paddd   xmm2, xmmword ptr [rsp+10H]1003        paddd   xmm3, xmmword ptr [rsp+40H]1004        paddd   xmm0, xmm51005        paddd   xmm1, xmm61006        paddd   xmm2, xmm71007        paddd   xmm3, xmm41008        pxor    xmm15, xmm01009        pxor    xmm12, xmm11010        pxor    xmm13, xmm21011        pxor    xmm14, xmm31012        movdqa  xmm8, xmmword ptr [ROT8]1013        pshufb  xmm15, xmm81014        pshufb  xmm12, xmm81015        pshufb  xmm13, xmm81016        pshufb  xmm14, xmm81017        paddd   xmm10, xmm151018        paddd   xmm11, xmm121019        movdqa  xmm8, xmmword ptr [rsp+100H]1020        paddd   xmm8, xmm131021        paddd   xmm9, xmm141022        pxor    xmm5, xmm101023        pxor    xmm6, xmm111024        pxor    xmm7, xmm81025        pxor    xmm4, xmm91026        movdqa  xmmword ptr [rsp+100H], xmm81027        movdqa  xmm8, xmm51028        psrld   xmm8, 71029        pslld   xmm5, 251030        por     xmm5, xmm81031        movdqa  xmm8, xmm61032        psrld   xmm8, 71033        pslld   xmm6, 251034        por     xmm6, xmm81035        movdqa  xmm8, xmm71036        psrld   xmm8, 71037        pslld   xmm7, 251038        por     xmm7, xmm81039        movdqa  xmm8, xmm41040        psrld   xmm8, 71041        pslld   xmm4, 251042        por     xmm4, xmm81043        paddd   xmm0, xmmword ptr [rsp+90H]1044        paddd   xmm1, xmmword ptr [rsp+0B0H]1045        paddd   xmm2, xmmword ptr [rsp+80H]1046        paddd   xmm3, xmmword ptr [rsp+0F0H]1047        paddd   xmm0, xmm41048        paddd   xmm1, xmm51049        paddd   xmm2, xmm61050        paddd   xmm3, xmm71051        pxor    xmm12, xmm01052        pxor    xmm13, xmm11053        pxor    xmm14, xmm21054        pxor    xmm15, xmm31055        movdqa  xmm8, xmmword ptr [ROT16]1056        pshufb  xmm12, xmm81057        pshufb  xmm13, xmm81058        pshufb  xmm14, xmm81059        pshufb  xmm15, xmm81060        movdqa  xmm8, xmmword ptr [rsp+100H]1061        paddd   xmm8, xmm121062        paddd   xmm9, xmm131063        paddd   xmm10, xmm141064        paddd   xmm11, xmm151065        pxor    xmm4, xmm81066        pxor    xmm5, xmm91067        pxor    xmm6, xmm101068        pxor    xmm7, xmm111069        movdqa  xmmword ptr [rsp+100H], xmm81070        movdqa  xmm8, xmm41071        psrld   xmm8, 121072        pslld   xmm4, 201073        por     xmm4, xmm81074        movdqa  xmm8, xmm51075        psrld   xmm8, 121076        pslld   xmm5, 201077        por     xmm5, xmm81078        movdqa  xmm8, xmm61079        psrld   xmm8, 121080        pslld   xmm6, 201081        por     xmm6, xmm81082        movdqa  xmm8, xmm71083        psrld   xmm8, 121084        pslld   xmm7, 201085        por     xmm7, xmm81086        paddd   xmm0, xmmword ptr [rsp+0E0H]1087        paddd   xmm1, xmmword ptr [rsp+50H]1088        paddd   xmm2, xmmword ptr [rsp+0C0H]1089        paddd   xmm3, xmmword ptr [rsp+10H]1090        paddd   xmm0, xmm41091        paddd   xmm1, xmm51092        paddd   xmm2, xmm61093        paddd   xmm3, xmm71094        pxor    xmm12, xmm01095        pxor    xmm13, xmm11096        pxor    xmm14, xmm21097        pxor    xmm15, xmm31098        movdqa  xmm8, xmmword ptr [ROT8]1099        pshufb  xmm12, xmm81100        pshufb  xmm13, xmm81101        pshufb  xmm14, xmm81102        pshufb  xmm15, xmm81103        movdqa  xmm8, xmmword ptr [rsp+100H]1104        paddd   xmm8, xmm121105        paddd   xmm9, xmm131106        paddd   xmm10, xmm141107        paddd   xmm11, xmm151108        pxor    xmm4, xmm81109        pxor    xmm5, xmm91110        pxor    xmm6, xmm101111        pxor    xmm7, xmm111112        movdqa  xmmword ptr [rsp+100H], xmm81113        movdqa  xmm8, xmm41114        psrld   xmm8, 71115        pslld   xmm4, 251116        por     xmm4, xmm81117        movdqa  xmm8, xmm51118        psrld   xmm8, 71119        pslld   xmm5, 251120        por     xmm5, xmm81121        movdqa  xmm8, xmm61122        psrld   xmm8, 71123        pslld   xmm6, 251124        por     xmm6, xmm81125        movdqa  xmm8, xmm71126        psrld   xmm8, 71127        pslld   xmm7, 251128        por     xmm7, xmm81129        paddd   xmm0, xmmword ptr [rsp+0D0H]1130        paddd   xmm1, xmmword ptr [rsp]1131        paddd   xmm2, xmmword ptr [rsp+20H]1132        paddd   xmm3, xmmword ptr [rsp+40H]1133        paddd   xmm0, xmm51134        paddd   xmm1, xmm61135        paddd   xmm2, xmm71136        paddd   xmm3, xmm41137        pxor    xmm15, xmm01138        pxor    xmm12, xmm11139        pxor    xmm13, xmm21140        pxor    xmm14, xmm31141        movdqa  xmm8, xmmword ptr [ROT16]1142        pshufb  xmm15, xmm81143        pshufb  xmm12, xmm81144        pshufb  xmm13, xmm81145        pshufb  xmm14, xmm81146        paddd   xmm10, xmm151147        paddd   xmm11, xmm121148        movdqa  xmm8, xmmword ptr [rsp+100H]1149        paddd   xmm8, xmm131150        paddd   xmm9, xmm141151        pxor    xmm5, xmm101152        pxor    xmm6, xmm111153        pxor    xmm7, xmm81154        pxor    xmm4, xmm91155        movdqa  xmmword ptr [rsp+100H], xmm81156        movdqa  xmm8, xmm51157        psrld   xmm8, 121158        pslld   xmm5, 201159        por     xmm5, xmm81160        movdqa  xmm8, xmm61161        psrld   xmm8, 121162        pslld   xmm6, 201163        por     xmm6, xmm81164        movdqa  xmm8, xmm71165        psrld   xmm8, 121166        pslld   xmm7, 201167        por     xmm7, xmm81168        movdqa  xmm8, xmm41169        psrld   xmm8, 121170        pslld   xmm4, 201171        por     xmm4, xmm81172        paddd   xmm0, xmmword ptr [rsp+30H]1173        paddd   xmm1, xmmword ptr [rsp+0A0H]1174        paddd   xmm2, xmmword ptr [rsp+60H]1175        paddd   xmm3, xmmword ptr [rsp+70H]1176        paddd   xmm0, xmm51177        paddd   xmm1, xmm61178        paddd   xmm2, xmm71179        paddd   xmm3, xmm41180        pxor    xmm15, xmm01181        pxor    xmm12, xmm11182        pxor    xmm13, xmm21183        pxor    xmm14, xmm31184        movdqa  xmm8, xmmword ptr [ROT8]1185        pshufb  xmm15, xmm81186        pshufb  xmm12, xmm81187        pshufb  xmm13, xmm81188        pshufb  xmm14, xmm81189        paddd   xmm10, xmm151190        paddd   xmm11, xmm121191        movdqa  xmm8, xmmword ptr [rsp+100H]1192        paddd   xmm8, xmm131193        paddd   xmm9, xmm141194        pxor    xmm5, xmm101195        pxor    xmm6, xmm111196        pxor    xmm7, xmm81197        pxor    xmm4, xmm91198        movdqa  xmmword ptr [rsp+100H], xmm81199        movdqa  xmm8, xmm51200        psrld   xmm8, 71201        pslld   xmm5, 251202        por     xmm5, xmm81203        movdqa  xmm8, xmm61204        psrld   xmm8, 71205        pslld   xmm6, 251206        por     xmm6, xmm81207        movdqa  xmm8, xmm71208        psrld   xmm8, 71209        pslld   xmm7, 251210        por     xmm7, xmm81211        movdqa  xmm8, xmm41212        psrld   xmm8, 71213        pslld   xmm4, 251214        por     xmm4, xmm81215        paddd   xmm0, xmmword ptr [rsp+0B0H]1216        paddd   xmm1, xmmword ptr [rsp+50H]1217        paddd   xmm2, xmmword ptr [rsp+10H]1218        paddd   xmm3, xmmword ptr [rsp+80H]1219        paddd   xmm0, xmm41220        paddd   xmm1, xmm51221        paddd   xmm2, xmm61222        paddd   xmm3, xmm71223        pxor    xmm12, xmm01224        pxor    xmm13, xmm11225        pxor    xmm14, xmm21226        pxor    xmm15, xmm31227        movdqa  xmm8, xmmword ptr [ROT16]1228        pshufb  xmm12, xmm81229        pshufb  xmm13, xmm81230        pshufb  xmm14, xmm81231        pshufb  xmm15, xmm81232        movdqa  xmm8, xmmword ptr [rsp+100H]1233        paddd   xmm8, xmm121234        paddd   xmm9, xmm131235        paddd   xmm10, xmm141236        paddd   xmm11, xmm151237        pxor    xmm4, xmm81238        pxor    xmm5, xmm91239        pxor    xmm6, xmm101240        pxor    xmm7, xmm111241        movdqa  xmmword ptr [rsp+100H], xmm81242        movdqa  xmm8, xmm41243        psrld   xmm8, 121244        pslld   xmm4, 201245        por     xmm4, xmm81246        movdqa  xmm8, xmm51247        psrld   xmm8, 121248        pslld   xmm5, 201249        por     xmm5, xmm81250        movdqa  xmm8, xmm61251        psrld   xmm8, 121252        pslld   xmm6, 201253        por     xmm6, xmm81254        movdqa  xmm8, xmm71255        psrld   xmm8, 121256        pslld   xmm7, 201257        por     xmm7, xmm81258        paddd   xmm0, xmmword ptr [rsp+0F0H]1259        paddd   xmm1, xmmword ptr [rsp]1260        paddd   xmm2, xmmword ptr [rsp+90H]1261        paddd   xmm3, xmmword ptr [rsp+60H]1262        paddd   xmm0, xmm41263        paddd   xmm1, xmm51264        paddd   xmm2, xmm61265        paddd   xmm3, xmm71266        pxor    xmm12, xmm01267        pxor    xmm13, xmm11268        pxor    xmm14, xmm21269        pxor    xmm15, xmm31270        movdqa  xmm8, xmmword ptr [ROT8]1271        pshufb  xmm12, xmm81272        pshufb  xmm13, xmm81273        pshufb  xmm14, xmm81274        pshufb  xmm15, xmm81275        movdqa  xmm8, xmmword ptr [rsp+100H]1276        paddd   xmm8, xmm121277        paddd   xmm9, xmm131278        paddd   xmm10, xmm141279        paddd   xmm11, xmm151280        pxor    xmm4, xmm81281        pxor    xmm5, xmm91282        pxor    xmm6, xmm101283        pxor    xmm7, xmm111284        movdqa  xmmword ptr [rsp+100H], xmm81285        movdqa  xmm8, xmm41286        psrld   xmm8, 71287        pslld   xmm4, 251288        por     xmm4, xmm81289        movdqa  xmm8, xmm51290        psrld   xmm8, 71291        pslld   xmm5, 251292        por     xmm5, xmm81293        movdqa  xmm8, xmm61294        psrld   xmm8, 71295        pslld   xmm6, 251296        por     xmm6, xmm81297        movdqa  xmm8, xmm71298        psrld   xmm8, 71299        pslld   xmm7, 251300        por     xmm7, xmm81301        paddd   xmm0, xmmword ptr [rsp+0E0H]1302        paddd   xmm1, xmmword ptr [rsp+20H]1303        paddd   xmm2, xmmword ptr [rsp+30H]1304        paddd   xmm3, xmmword ptr [rsp+70H]1305        paddd   xmm0, xmm51306        paddd   xmm1, xmm61307        paddd   xmm2, xmm71308        paddd   xmm3, xmm41309        pxor    xmm15, xmm01310        pxor    xmm12, xmm11311        pxor    xmm13, xmm21312        pxor    xmm14, xmm31313        movdqa  xmm8, xmmword ptr [ROT16]1314        pshufb  xmm15, xmm81315        pshufb  xmm12, xmm81316        pshufb  xmm13, xmm81317        pshufb  xmm14, xmm81318        paddd   xmm10, xmm151319        paddd   xmm11, xmm121320        movdqa  xmm8, xmmword ptr [rsp+100H]1321        paddd   xmm8, xmm131322        paddd   xmm9, xmm141323        pxor    xmm5, xmm101324        pxor    xmm6, xmm111325        pxor    xmm7, xmm81326        pxor    xmm4, xmm91327        movdqa  xmmword ptr [rsp+100H], xmm81328        movdqa  xmm8, xmm51329        psrld   xmm8, 121330        pslld   xmm5, 201331        por     xmm5, xmm81332        movdqa  xmm8, xmm61333        psrld   xmm8, 121334        pslld   xmm6, 201335        por     xmm6, xmm81336        movdqa  xmm8, xmm71337        psrld   xmm8, 121338        pslld   xmm7, 201339        por     xmm7, xmm81340        movdqa  xmm8, xmm41341        psrld   xmm8, 121342        pslld   xmm4, 201343        por     xmm4, xmm81344        paddd   xmm0, xmmword ptr [rsp+0A0H]1345        paddd   xmm1, xmmword ptr [rsp+0C0H]1346        paddd   xmm2, xmmword ptr [rsp+40H]1347        paddd   xmm3, xmmword ptr [rsp+0D0H]1348        paddd   xmm0, xmm51349        paddd   xmm1, xmm61350        paddd   xmm2, xmm71351        paddd   xmm3, xmm41352        pxor    xmm15, xmm01353        pxor    xmm12, xmm11354        pxor    xmm13, xmm21355        pxor    xmm14, xmm31356        movdqa  xmm8, xmmword ptr [ROT8]1357        pshufb  xmm15, xmm81358        pshufb  xmm12, xmm81359        pshufb  xmm13, xmm81360        pshufb  xmm14, xmm81361        paddd   xmm10, xmm151362        paddd   xmm11, xmm121363        movdqa  xmm8, xmmword ptr [rsp+100H]1364        paddd   xmm8, xmm131365        paddd   xmm9, xmm141366        pxor    xmm5, xmm101367        pxor    xmm6, xmm111368        pxor    xmm7, xmm81369        pxor    xmm4, xmm91370        pxor    xmm0, xmm81371        pxor    xmm1, xmm91372        pxor    xmm2, xmm101373        pxor    xmm3, xmm111374        movdqa  xmm8, xmm51375        psrld   xmm8, 71376        pslld   xmm5, 251377        por     xmm5, xmm81378        movdqa  xmm8, xmm61379        psrld   xmm8, 71380        pslld   xmm6, 251381        por     xmm6, xmm81382        movdqa  xmm8, xmm71383        psrld   xmm8, 71384        pslld   xmm7, 251385        por     xmm7, xmm81386        movdqa  xmm8, xmm41387        psrld   xmm8, 71388        pslld   xmm4, 251389        por     xmm4, xmm81390        pxor    xmm4, xmm121391        pxor    xmm5, xmm131392        pxor    xmm6, xmm141393        pxor    xmm7, xmm151394        mov     eax, r13d1395        jne     innerloop41396        movdqa  xmm9, xmm01397        punpckldq xmm0, xmm11398        punpckhdq xmm9, xmm11399        movdqa  xmm11, xmm21400        punpckldq xmm2, xmm31401        punpckhdq xmm11, xmm31402        movdqa  xmm1, xmm01403        punpcklqdq xmm0, xmm21404        punpckhqdq xmm1, xmm21405        movdqa  xmm3, xmm91406        punpcklqdq xmm9, xmm111407        punpckhqdq xmm3, xmm111408        movdqu  xmmword ptr [rbx], xmm01409        movdqu  xmmword ptr [rbx+20H], xmm11410        movdqu  xmmword ptr [rbx+40H], xmm91411        movdqu  xmmword ptr [rbx+60H], xmm31412        movdqa  xmm9, xmm41413        punpckldq xmm4, xmm51414        punpckhdq xmm9, xmm51415        movdqa  xmm11, xmm61416        punpckldq xmm6, xmm71417        punpckhdq xmm11, xmm71418        movdqa  xmm5, xmm41419        punpcklqdq xmm4, xmm61420        punpckhqdq xmm5, xmm61421        movdqa  xmm7, xmm91422        punpcklqdq xmm9, xmm111423        punpckhqdq xmm7, xmm111424        movdqu  xmmword ptr [rbx+10H], xmm41425        movdqu  xmmword ptr [rbx+30H], xmm51426        movdqu  xmmword ptr [rbx+50H], xmm91427        movdqu  xmmword ptr [rbx+70H], xmm71428        movdqa  xmm1, xmmword ptr [rsp+110H]1429        movdqa  xmm0, xmm11430        paddd   xmm1, xmmword ptr [rsp+150H]1431        movdqa  xmmword ptr [rsp+110H], xmm11432        pxor    xmm0, xmmword ptr [CMP_MSB_MASK]1433        pxor    xmm1, xmmword ptr [CMP_MSB_MASK]1434        pcmpgtd xmm0, xmm11435        movdqa  xmm1, xmmword ptr [rsp+120H]1436        psubd   xmm1, xmm01437        movdqa  xmmword ptr [rsp+120H], xmm11438        add     rbx, 1281439        add     rdi, 321440        sub     rsi, 41441        cmp     rsi, 41442        jnc     outerloop41443        test    rsi, rsi1444        jne     final3blocks1445unwind:1446        movdqa  xmm6, xmmword ptr [rsp+170H]1447        movdqa  xmm7, xmmword ptr [rsp+180H]1448        movdqa  xmm8, xmmword ptr [rsp+190H]1449        movdqa  xmm9, xmmword ptr [rsp+1A0H]1450        movdqa  xmm10, xmmword ptr [rsp+1B0H]1451        movdqa  xmm11, xmmword ptr [rsp+1C0H]1452        movdqa  xmm12, xmmword ptr [rsp+1D0H]1453        movdqa  xmm13, xmmword ptr [rsp+1E0H]1454        movdqa  xmm14, xmmword ptr [rsp+1F0H]1455        movdqa  xmm15, xmmword ptr [rsp+200H]1456        mov     rsp, rbp1457        pop     rbp1458        pop     rbx1459        pop     rdi1460        pop     rsi1461        pop     r121462        pop     r131463        pop     r141464        pop     r151465        ret1466ALIGN   161467final3blocks:1468        test    esi, 2H1469        je      final1block1470        movups  xmm0, xmmword ptr [rcx]1471        movups  xmm1, xmmword ptr [rcx+10H]1472        movaps  xmm8, xmm01473        movaps  xmm9, xmm11474        movd    xmm13, dword ptr [rsp+110H]1475        pinsrd  xmm13, dword ptr [rsp+120H], 11476        pinsrd  xmm13, dword ptr [BLAKE3_BLOCK_LEN], 21477        movaps  xmmword ptr [rsp], xmm131478        movd    xmm14, dword ptr [rsp+114H]1479        pinsrd  xmm14, dword ptr [rsp+124H], 11480        pinsrd  xmm14, dword ptr [BLAKE3_BLOCK_LEN], 21481        movaps  xmmword ptr [rsp+10H], xmm141482        mov     r8, qword ptr [rdi]1483        mov     r9, qword ptr [rdi+8H]1484        movzx   eax, byte ptr [rbp+80H]1485        or      eax, r13d1486        xor     edx, edx1487innerloop2:1488        mov     r14d, eax1489        or      eax, r12d1490        add     rdx, 641491        cmp     rdx, r151492        cmovne  eax, r14d1493        movaps  xmm2, xmmword ptr [BLAKE3_IV]1494        movaps  xmm10, xmm21495        movups  xmm4, xmmword ptr [r8+rdx-40H]1496        movups  xmm5, xmmword ptr [r8+rdx-30H]1497        movaps  xmm3, xmm41498        shufps  xmm4, xmm5, 1361499        shufps  xmm3, xmm5, 2211500        movaps  xmm5, xmm31501        movups  xmm6, xmmword ptr [r8+rdx-20H]1502        movups  xmm7, xmmword ptr [r8+rdx-10H]1503        movaps  xmm3, xmm61504        shufps  xmm6, xmm7, 1361505        pshufd  xmm6, xmm6, 93H1506        shufps  xmm3, xmm7, 2211507        pshufd  xmm7, xmm3, 93H1508        movups  xmm12, xmmword ptr [r9+rdx-40H]1509        movups  xmm13, xmmword ptr [r9+rdx-30H]1510        movaps  xmm11, xmm121511        shufps  xmm12, xmm13, 1361512        shufps  xmm11, xmm13, 2211513        movaps  xmm13, xmm111514        movups  xmm14, xmmword ptr [r9+rdx-20H]1515        movups  xmm15, xmmword ptr [r9+rdx-10H]1516        movaps  xmm11, xmm141517        shufps  xmm14, xmm15, 1361518        pshufd  xmm14, xmm14, 93H1519        shufps  xmm11, xmm15, 2211520        pshufd  xmm15, xmm11, 93H1521        movaps  xmm3, xmmword ptr [rsp]1522        movaps  xmm11, xmmword ptr [rsp+10H]1523        pinsrd  xmm3, eax, 31524        pinsrd  xmm11, eax, 31525        mov     al, 71526roundloop2:1527        paddd   xmm0, xmm41528        paddd   xmm8, xmm121529        movaps  xmmword ptr [rsp+20H], xmm41530        movaps  xmmword ptr [rsp+30H], xmm121531        paddd   xmm0, xmm11532        paddd   xmm8, xmm91533        pxor    xmm3, xmm01534        pxor    xmm11, xmm81535        movaps  xmm12, xmmword ptr [ROT16]1536        pshufb  xmm3, xmm121537        pshufb  xmm11, xmm121538        paddd   xmm2, xmm31539        paddd   xmm10, xmm111540        pxor    xmm1, xmm21541        pxor    xmm9, xmm101542        movdqa  xmm4, xmm11543        pslld   xmm1, 201544        psrld   xmm4, 121545        por     xmm1, xmm41546        movdqa  xmm4, xmm91547        pslld   xmm9, 201548        psrld   xmm4, 121549        por     xmm9, xmm41550        paddd   xmm0, xmm51551        paddd   xmm8, xmm131552        movaps  xmmword ptr [rsp+40H], xmm51553        movaps  xmmword ptr [rsp+50H], xmm131554        paddd   xmm0, xmm11555        paddd   xmm8, xmm91556        pxor    xmm3, xmm01557        pxor    xmm11, xmm81558        movaps  xmm13, xmmword ptr [ROT8]1559        pshufb  xmm3, xmm131560        pshufb  xmm11, xmm131561        paddd   xmm2, xmm31562        paddd   xmm10, xmm111563        pxor    xmm1, xmm21564        pxor    xmm9, xmm101565        movdqa  xmm4, xmm11566        pslld   xmm1, 251567        psrld   xmm4, 71568        por     xmm1, xmm41569        movdqa  xmm4, xmm91570        pslld   xmm9, 251571        psrld   xmm4, 71572        por     xmm9, xmm41573        pshufd  xmm0, xmm0, 93H1574        pshufd  xmm8, xmm8, 93H1575        pshufd  xmm3, xmm3, 4EH1576        pshufd  xmm11, xmm11, 4EH1577        pshufd  xmm2, xmm2, 39H1578        pshufd  xmm10, xmm10, 39H1579        paddd   xmm0, xmm61580        paddd   xmm8, xmm141581        paddd   xmm0, xmm11582        paddd   xmm8, xmm91583        pxor    xmm3, xmm01584        pxor    xmm11, xmm81585        pshufb  xmm3, xmm121586        pshufb  xmm11, xmm121587        paddd   xmm2, xmm31588        paddd   xmm10, xmm111589        pxor    xmm1, xmm21590        pxor    xmm9, xmm101591        movdqa  xmm4, xmm11592        pslld   xmm1, 201593        psrld   xmm4, 121594        por     xmm1, xmm41595        movdqa  xmm4, xmm91596        pslld   xmm9, 201597        psrld   xmm4, 121598        por     xmm9, xmm41599        paddd   xmm0, xmm71600        paddd   xmm8, xmm151601        paddd   xmm0, xmm11602        paddd   xmm8, xmm91603        pxor    xmm3, xmm01604        pxor    xmm11, xmm81605        pshufb  xmm3, xmm131606        pshufb  xmm11, xmm131607        paddd   xmm2, xmm31608        paddd   xmm10, xmm111609        pxor    xmm1, xmm21610        pxor    xmm9, xmm101611        movdqa  xmm4, xmm11612        pslld   xmm1, 251613        psrld   xmm4, 71614        por     xmm1, xmm41615        movdqa  xmm4, xmm91616        pslld   xmm9, 251617        psrld   xmm4, 71618        por     xmm9, xmm41619        pshufd  xmm0, xmm0, 39H1620        pshufd  xmm8, xmm8, 39H1621        pshufd  xmm3, xmm3, 4EH1622        pshufd  xmm11, xmm11, 4EH1623        pshufd  xmm2, xmm2, 93H1624        pshufd  xmm10, xmm10, 93H1625        dec     al1626        je      endroundloop21627        movdqa  xmm12, xmmword ptr [rsp+20H]1628        movdqa  xmm5, xmmword ptr [rsp+40H]1629        pshufd  xmm13, xmm12, 0FH1630        shufps  xmm12, xmm5, 2141631        pshufd  xmm4, xmm12, 39H1632        movdqa  xmm12, xmm61633        shufps  xmm12, xmm7, 2501634        pblendw xmm13, xmm12, 0CCH1635        movdqa  xmm12, xmm71636        punpcklqdq xmm12, xmm51637        pblendw xmm12, xmm6, 0C0H1638        pshufd  xmm12, xmm12, 78H1639        punpckhdq xmm5, xmm71640        punpckldq xmm6, xmm51641        pshufd  xmm7, xmm6, 1EH1642        movdqa  xmmword ptr [rsp+20H], xmm131643        movdqa  xmmword ptr [rsp+40H], xmm121644        movdqa  xmm5, xmmword ptr [rsp+30H]1645        movdqa  xmm13, xmmword ptr [rsp+50H]1646        pshufd  xmm6, xmm5, 0FH1647        shufps  xmm5, xmm13, 2141648        pshufd  xmm12, xmm5, 39H1649        movdqa  xmm5, xmm141650        shufps  xmm5, xmm15, 2501651        pblendw xmm6, xmm5, 0CCH1652        movdqa  xmm5, xmm151653        punpcklqdq xmm5, xmm131654        pblendw xmm5, xmm14, 0C0H1655        pshufd  xmm5, xmm5, 78H1656        punpckhdq xmm13, xmm151657        punpckldq xmm14, xmm131658        pshufd  xmm15, xmm14, 1EH1659        movdqa  xmm13, xmm61660        movdqa  xmm14, xmm51661        movdqa  xmm5, xmmword ptr [rsp+20H]1662        movdqa  xmm6, xmmword ptr [rsp+40H]1663        jmp     roundloop21664endroundloop2:1665        pxor    xmm0, xmm21666        pxor    xmm1, xmm31667        pxor    xmm8, xmm101668        pxor    xmm9, xmm111669        mov     eax, r13d1670        cmp     rdx, r151671        jne     innerloop21672        movups  xmmword ptr [rbx], xmm01673        movups  xmmword ptr [rbx+10H], xmm11674        movups  xmmword ptr [rbx+20H], xmm81675        movups  xmmword ptr [rbx+30H], xmm91676        movdqa  xmm0, xmmword ptr [rsp+130H]1677        movdqa  xmm1, xmmword ptr [rsp+110H]1678        movdqa  xmm2, xmmword ptr [rsp+120H]1679        movdqu  xmm3, xmmword ptr [rsp+118H]1680        movdqu  xmm4, xmmword ptr [rsp+128H]1681        blendvps xmm1, xmm3, xmm01682        blendvps xmm2, xmm4, xmm01683        movdqa  xmmword ptr [rsp+110H], xmm11684        movdqa  xmmword ptr [rsp+120H], xmm21685        add     rdi, 161686        add     rbx, 641687        sub     rsi, 21688final1block:1689        test    esi, 1H1690        je      unwind1691        movups  xmm0, xmmword ptr [rcx]1692        movups  xmm1, xmmword ptr [rcx+10H]1693        movd    xmm13, dword ptr [rsp+110H]1694        pinsrd  xmm13, dword ptr [rsp+120H], 11695        pinsrd  xmm13, dword ptr [BLAKE3_BLOCK_LEN], 21696        movaps  xmm14, xmmword ptr [ROT8]1697        movaps  xmm15, xmmword ptr [ROT16]1698        mov     r8, qword ptr [rdi]1699        movzx   eax, byte ptr [rbp+80H]1700        or      eax, r13d1701        xor     edx, edx1702innerloop1:1703        mov     r14d, eax1704        or      eax, r12d1705        add     rdx, 641706        cmp     rdx, r151707        cmovne  eax, r14d1708        movaps  xmm2, xmmword ptr [BLAKE3_IV]1709        movaps  xmm3, xmm131710        pinsrd  xmm3, eax, 31711        movups  xmm4, xmmword ptr [r8+rdx-40H]1712        movups  xmm5, xmmword ptr [r8+rdx-30H]1713        movaps  xmm8, xmm41714        shufps  xmm4, xmm5, 1361715        shufps  xmm8, xmm5, 2211716        movaps  xmm5, xmm81717        movups  xmm6, xmmword ptr [r8+rdx-20H]1718        movups  xmm7, xmmword ptr [r8+rdx-10H]1719        movaps  xmm8, xmm61720        shufps  xmm6, xmm7, 1361721        pshufd  xmm6, xmm6, 93H1722        shufps  xmm8, xmm7, 2211723        pshufd  xmm7, xmm8, 93H1724        mov     al, 71725roundloop1:1726        paddd   xmm0, xmm41727        paddd   xmm0, xmm11728        pxor    xmm3, xmm01729        pshufb  xmm3, xmm151730        paddd   xmm2, xmm31731        pxor    xmm1, xmm21732        movdqa  xmm11, xmm11733        pslld   xmm1, 201734        psrld   xmm11, 121735        por     xmm1, xmm111736        paddd   xmm0, xmm51737        paddd   xmm0, xmm11738        pxor    xmm3, xmm01739        pshufb  xmm3, xmm141740        paddd   xmm2, xmm31741        pxor    xmm1, xmm21742        movdqa  xmm11, xmm11743        pslld   xmm1, 251744        psrld   xmm11, 71745        por     xmm1, xmm111746        pshufd  xmm0, xmm0, 93H1747        pshufd  xmm3, xmm3, 4EH1748        pshufd  xmm2, xmm2, 39H1749        paddd   xmm0, xmm61750        paddd   xmm0, xmm11751        pxor    xmm3, xmm01752        pshufb  xmm3, xmm151753        paddd   xmm2, xmm31754        pxor    xmm1, xmm21755        movdqa  xmm11, xmm11756        pslld   xmm1, 201757        psrld   xmm11, 121758        por     xmm1, xmm111759        paddd   xmm0, xmm71760        paddd   xmm0, xmm11761        pxor    xmm3, xmm01762        pshufb  xmm3, xmm141763        paddd   xmm2, xmm31764        pxor    xmm1, xmm21765        movdqa  xmm11, xmm11766        pslld   xmm1, 251767        psrld   xmm11, 71768        por     xmm1, xmm111769        pshufd  xmm0, xmm0, 39H1770        pshufd  xmm3, xmm3, 4EH1771        pshufd  xmm2, xmm2, 93H1772        dec     al1773        jz      endroundloop11774        movdqa  xmm8, xmm41775        shufps  xmm8, xmm5, 2141776        pshufd  xmm9, xmm4, 0FH1777        pshufd  xmm4, xmm8, 39H1778        movdqa  xmm8, xmm61779        shufps  xmm8, xmm7, 2501780        pblendw xmm9, xmm8, 0CCH1781        movdqa  xmm8, xmm71782        punpcklqdq xmm8, xmm51783        pblendw xmm8, xmm6, 0C0H1784        pshufd  xmm8, xmm8, 78H1785        punpckhdq xmm5, xmm71786        punpckldq xmm6, xmm51787        pshufd  xmm7, xmm6, 1EH1788        movdqa  xmm5, xmm91789        movdqa  xmm6, xmm81790        jmp     roundloop11791endroundloop1:1792        pxor    xmm0, xmm21793        pxor    xmm1, xmm31794        mov     eax, r13d1795        cmp     rdx, r151796        jne     innerloop11797        movups  xmmword ptr [rbx], xmm01798        movups  xmmword ptr [rbx+10H], xmm11799        jmp     unwind1800_llvm_blake3_hash_many_sse41 ENDP1801llvm_blake3_hash_many_sse41 ENDP1802 1803llvm_blake3_compress_in_place_sse41 PROC1804_llvm_blake3_compress_in_place_sse41 PROC1805        sub     rsp, 1201806        movdqa  xmmword ptr [rsp], xmm61807        movdqa  xmmword ptr [rsp+10H], xmm71808        movdqa  xmmword ptr [rsp+20H], xmm81809        movdqa  xmmword ptr [rsp+30H], xmm91810        movdqa  xmmword ptr [rsp+40H], xmm111811        movdqa  xmmword ptr [rsp+50H], xmm141812        movdqa  xmmword ptr [rsp+60H], xmm151813        movups  xmm0, xmmword ptr [rcx]1814        movups  xmm1, xmmword ptr [rcx+10H]1815        movaps  xmm2, xmmword ptr [BLAKE3_IV]1816        movzx   eax, byte ptr [rsp+0A0H]1817        movzx   r8d, r8b1818        shl     rax, 321819        add     r8, rax1820        movd    xmm3, r91821        movd    xmm4, r81822        punpcklqdq xmm3, xmm41823        movups  xmm4, xmmword ptr [rdx]1824        movups  xmm5, xmmword ptr [rdx+10H]1825        movaps  xmm8, xmm41826        shufps  xmm4, xmm5, 1361827        shufps  xmm8, xmm5, 2211828        movaps  xmm5, xmm81829        movups  xmm6, xmmword ptr [rdx+20H]1830        movups  xmm7, xmmword ptr [rdx+30H]1831        movaps  xmm8, xmm61832        shufps  xmm6, xmm7, 1361833        pshufd  xmm6, xmm6, 93H1834        shufps  xmm8, xmm7, 2211835        pshufd  xmm7, xmm8, 93H1836        movaps  xmm14, xmmword ptr [ROT8]1837        movaps  xmm15, xmmword ptr [ROT16]1838        mov     al, 71839@@:1840        paddd   xmm0, xmm41841        paddd   xmm0, xmm11842        pxor    xmm3, xmm01843        pshufb  xmm3, xmm151844        paddd   xmm2, xmm31845        pxor    xmm1, xmm21846        movdqa  xmm11, xmm11847        pslld   xmm1, 201848        psrld   xmm11, 121849        por     xmm1, xmm111850        paddd   xmm0, xmm51851        paddd   xmm0, xmm11852        pxor    xmm3, xmm01853        pshufb  xmm3, xmm141854        paddd   xmm2, xmm31855        pxor    xmm1, xmm21856        movdqa  xmm11, xmm11857        pslld   xmm1, 251858        psrld   xmm11, 71859        por     xmm1, xmm111860        pshufd  xmm0, xmm0, 93H1861        pshufd  xmm3, xmm3, 4EH1862        pshufd  xmm2, xmm2, 39H1863        paddd   xmm0, xmm61864        paddd   xmm0, xmm11865        pxor    xmm3, xmm01866        pshufb  xmm3, xmm151867        paddd   xmm2, xmm31868        pxor    xmm1, xmm21869        movdqa  xmm11, xmm11870        pslld   xmm1, 201871        psrld   xmm11, 121872        por     xmm1, xmm111873        paddd   xmm0, xmm71874        paddd   xmm0, xmm11875        pxor    xmm3, xmm01876        pshufb  xmm3, xmm141877        paddd   xmm2, xmm31878        pxor    xmm1, xmm21879        movdqa  xmm11, xmm11880        pslld   xmm1, 251881        psrld   xmm11, 71882        por     xmm1, xmm111883        pshufd  xmm0, xmm0, 39H1884        pshufd  xmm3, xmm3, 4EH1885        pshufd  xmm2, xmm2, 93H1886        dec     al1887        jz      @F1888        movdqa  xmm8, xmm41889        shufps  xmm8, xmm5, 2141890        pshufd  xmm9, xmm4, 0FH1891        pshufd  xmm4, xmm8, 39H1892        movdqa  xmm8, xmm61893        shufps  xmm8, xmm7, 2501894        pblendw xmm9, xmm8, 0CCH1895        movdqa  xmm8, xmm71896        punpcklqdq xmm8, xmm51897        pblendw xmm8, xmm6, 0C0H1898        pshufd  xmm8, xmm8, 78H1899        punpckhdq xmm5, xmm71900        punpckldq xmm6, xmm51901        pshufd  xmm7, xmm6, 1EH1902        movdqa  xmm5, xmm91903        movdqa  xmm6, xmm81904        jmp     @B1905@@:1906        pxor    xmm0, xmm21907        pxor    xmm1, xmm31908        movups  xmmword ptr [rcx], xmm01909        movups  xmmword ptr [rcx+10H], xmm11910        movdqa  xmm6, xmmword ptr [rsp]1911        movdqa  xmm7, xmmword ptr [rsp+10H]1912        movdqa  xmm8, xmmword ptr [rsp+20H]1913        movdqa  xmm9, xmmword ptr [rsp+30H]1914        movdqa  xmm11, xmmword ptr [rsp+40H]1915        movdqa  xmm14, xmmword ptr [rsp+50H]1916        movdqa  xmm15, xmmword ptr [rsp+60H]1917        add     rsp, 1201918        ret1919_llvm_blake3_compress_in_place_sse41 ENDP1920llvm_blake3_compress_in_place_sse41 ENDP1921 1922ALIGN 161923llvm_blake3_compress_xof_sse41 PROC1924_llvm_blake3_compress_xof_sse41 PROC1925        sub     rsp, 1201926        movdqa  xmmword ptr [rsp], xmm61927        movdqa  xmmword ptr [rsp+10H], xmm71928        movdqa  xmmword ptr [rsp+20H], xmm81929        movdqa  xmmword ptr [rsp+30H], xmm91930        movdqa  xmmword ptr [rsp+40H], xmm111931        movdqa  xmmword ptr [rsp+50H], xmm141932        movdqa  xmmword ptr [rsp+60H], xmm151933        movups  xmm0, xmmword ptr [rcx]1934        movups  xmm1, xmmword ptr [rcx+10H]1935        movaps  xmm2, xmmword ptr [BLAKE3_IV]1936        movzx   eax, byte ptr [rsp+0A0H]1937        movzx   r8d, r8b1938        mov     r10, qword ptr [rsp+0A8H]1939        shl     rax, 321940        add     r8, rax1941        movd    xmm3, r91942        movd    xmm4, r81943        punpcklqdq xmm3, xmm41944        movups  xmm4, xmmword ptr [rdx]1945        movups  xmm5, xmmword ptr [rdx+10H]1946        movaps  xmm8, xmm41947        shufps  xmm4, xmm5, 1361948        shufps  xmm8, xmm5, 2211949        movaps  xmm5, xmm81950        movups  xmm6, xmmword ptr [rdx+20H]1951        movups  xmm7, xmmword ptr [rdx+30H]1952        movaps  xmm8, xmm61953        shufps  xmm6, xmm7, 1361954        pshufd  xmm6, xmm6, 93H1955        shufps  xmm8, xmm7, 2211956        pshufd  xmm7, xmm8, 93H1957        movaps  xmm14, xmmword ptr [ROT8]1958        movaps  xmm15, xmmword ptr [ROT16]1959        mov     al, 71960@@:1961        paddd   xmm0, xmm41962        paddd   xmm0, xmm11963        pxor    xmm3, xmm01964        pshufb  xmm3, xmm151965        paddd   xmm2, xmm31966        pxor    xmm1, xmm21967        movdqa  xmm11, xmm11968        pslld   xmm1, 201969        psrld   xmm11, 121970        por     xmm1, xmm111971        paddd   xmm0, xmm51972        paddd   xmm0, xmm11973        pxor    xmm3, xmm01974        pshufb  xmm3, xmm141975        paddd   xmm2, xmm31976        pxor    xmm1, xmm21977        movdqa  xmm11, xmm11978        pslld   xmm1, 251979        psrld   xmm11, 71980        por     xmm1, xmm111981        pshufd  xmm0, xmm0, 93H1982        pshufd  xmm3, xmm3, 4EH1983        pshufd  xmm2, xmm2, 39H1984        paddd   xmm0, xmm61985        paddd   xmm0, xmm11986        pxor    xmm3, xmm01987        pshufb  xmm3, xmm151988        paddd   xmm2, xmm31989        pxor    xmm1, xmm21990        movdqa  xmm11, xmm11991        pslld   xmm1, 201992        psrld   xmm11, 121993        por     xmm1, xmm111994        paddd   xmm0, xmm71995        paddd   xmm0, xmm11996        pxor    xmm3, xmm01997        pshufb  xmm3, xmm141998        paddd   xmm2, xmm31999        pxor    xmm1, xmm22000        movdqa  xmm11, xmm12001        pslld   xmm1, 252002        psrld   xmm11, 72003        por     xmm1, xmm112004        pshufd  xmm0, xmm0, 39H2005        pshufd  xmm3, xmm3, 4EH2006        pshufd  xmm2, xmm2, 93H2007        dec     al2008        jz      @F2009        movdqa  xmm8, xmm42010        shufps  xmm8, xmm5, 2142011        pshufd  xmm9, xmm4, 0FH2012        pshufd  xmm4, xmm8, 39H2013        movdqa  xmm8, xmm62014        shufps  xmm8, xmm7, 2502015        pblendw xmm9, xmm8, 0CCH2016        movdqa  xmm8, xmm72017        punpcklqdq xmm8, xmm52018        pblendw xmm8, xmm6, 0C0H2019        pshufd  xmm8, xmm8, 78H2020        punpckhdq xmm5, xmm72021        punpckldq xmm6, xmm52022        pshufd  xmm7, xmm6, 1EH2023        movdqa  xmm5, xmm92024        movdqa  xmm6, xmm82025        jmp     @B2026@@:2027        movdqu  xmm4, xmmword ptr [rcx]2028        movdqu  xmm5, xmmword ptr [rcx+10H]2029        pxor    xmm0, xmm22030        pxor    xmm1, xmm32031        pxor    xmm2, xmm42032        pxor    xmm3, xmm52033        movups  xmmword ptr [r10], xmm02034        movups  xmmword ptr [r10+10H], xmm12035        movups  xmmword ptr [r10+20H], xmm22036        movups  xmmword ptr [r10+30H], xmm32037        movdqa  xmm6, xmmword ptr [rsp]2038        movdqa  xmm7, xmmword ptr [rsp+10H]2039        movdqa  xmm8, xmmword ptr [rsp+20H]2040        movdqa  xmm9, xmmword ptr [rsp+30H]2041        movdqa  xmm11, xmmword ptr [rsp+40H]2042        movdqa  xmm14, xmmword ptr [rsp+50H]2043        movdqa  xmm15, xmmword ptr [rsp+60H]2044        add     rsp, 1202045        ret2046_llvm_blake3_compress_xof_sse41 ENDP2047llvm_blake3_compress_xof_sse41 ENDP2048 2049_TEXT ENDS2050 2051 2052_RDATA SEGMENT READONLY PAGE ALIAS(".rdata") 'CONST'2053ALIGN   642054BLAKE3_IV:2055        dd 6A09E667H, 0BB67AE85H, 3C6EF372H, 0A54FF53AH2056 2057ADD0:2058        dd 0, 1, 2, 32059 2060ADD1:2061        dd 4 dup (4)2062 2063BLAKE3_IV_0:2064        dd 4 dup (6A09E667H)2065 2066BLAKE3_IV_1:2067        dd 4 dup (0BB67AE85H)2068 2069BLAKE3_IV_2:2070        dd 4 dup (3C6EF372H)2071 2072BLAKE3_IV_3:2073        dd 4 dup (0A54FF53AH)2074 2075BLAKE3_BLOCK_LEN:2076        dd 4 dup (64)2077 2078ROT16:2079        db 2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 132080 2081ROT8:2082        db 1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 122083 2084CMP_MSB_MASK:2085        dd 8 dup(80000000H)2086 2087_RDATA ENDS2088END2089 2090