brintos

brintos / llvm-project-archived public Read only

0
0
Text · 69.6 KiB · 3a71636 Raw
2335 lines · plain
1#include "llvm_blake3_prefix.h"2 3.intel_syntax noprefix4.global blake3_hash_many_sse25.global _blake3_hash_many_sse26.global blake3_compress_in_place_sse27.global _blake3_compress_in_place_sse28.global blake3_compress_xof_sse29.global _blake3_compress_xof_sse210.section .text11        .p2align  612_blake3_hash_many_sse2:13blake3_hash_many_sse2:14        push    r1515        push    r1416        push    r1317        push    r1218        push    rsi19        push    rdi20        push    rbx21        push    rbp22        mov     rbp, rsp23        sub     rsp, 52824        and     rsp, 0xFFFFFFFFFFFFFFC025        movdqa  xmmword ptr [rsp+0x170], xmm626        movdqa  xmmword ptr [rsp+0x180], xmm727        movdqa  xmmword ptr [rsp+0x190], xmm828        movdqa  xmmword ptr [rsp+0x1A0], xmm929        movdqa  xmmword ptr [rsp+0x1B0], xmm1030        movdqa  xmmword ptr [rsp+0x1C0], xmm1131        movdqa  xmmword ptr [rsp+0x1D0], xmm1232        movdqa  xmmword ptr [rsp+0x1E0], xmm1333        movdqa  xmmword ptr [rsp+0x1F0], xmm1434        movdqa  xmmword ptr [rsp+0x200], xmm1535        mov     rdi, rcx36        mov     rsi, rdx37        mov     rdx, r838        mov     rcx, r939        mov     r8, qword ptr [rbp+0x68]40        movzx   r9, byte ptr [rbp+0x70]41        neg     r9d42        movd    xmm0, r9d43        pshufd  xmm0, xmm0, 0x0044        movdqa  xmmword ptr [rsp+0x130], xmm045        movdqa  xmm1, xmm046        pand    xmm1, xmmword ptr [ADD0+rip]47        pand    xmm0, xmmword ptr [ADD1+rip]48        movdqa  xmmword ptr [rsp+0x150], xmm049        movd    xmm0, r8d50        pshufd  xmm0, xmm0, 0x0051        paddd   xmm0, xmm152        movdqa  xmmword ptr [rsp+0x110], xmm053        pxor    xmm0, xmmword ptr [CMP_MSB_MASK+rip]54        pxor    xmm1, xmmword ptr [CMP_MSB_MASK+rip]55        pcmpgtd xmm1, xmm056        shr     r8, 3257        movd    xmm2, r8d58        pshufd  xmm2, xmm2, 0x0059        psubd   xmm2, xmm160        movdqa  xmmword ptr [rsp+0x120], xmm261        mov     rbx, qword ptr [rbp+0x90]62        mov     r15, rdx63        shl     r15, 664        movzx   r13d, byte ptr [rbp+0x78]65        movzx   r12d, byte ptr [rbp+0x88]66        cmp     rsi, 467        jc      3f682:69        movdqu  xmm3, xmmword ptr [rcx]70        pshufd  xmm0, xmm3, 0x0071        pshufd  xmm1, xmm3, 0x5572        pshufd  xmm2, xmm3, 0xAA73        pshufd  xmm3, xmm3, 0xFF74        movdqu  xmm7, xmmword ptr [rcx+0x10]75        pshufd  xmm4, xmm7, 0x0076        pshufd  xmm5, xmm7, 0x5577        pshufd  xmm6, xmm7, 0xAA78        pshufd  xmm7, xmm7, 0xFF79        mov     r8, qword ptr [rdi]80        mov     r9, qword ptr [rdi+0x8]81        mov     r10, qword ptr [rdi+0x10]82        mov     r11, qword ptr [rdi+0x18]83        movzx   eax, byte ptr [rbp+0x80]84        or      eax, r13d85        xor     edx, edx869:87        mov     r14d, eax88        or      eax, r12d89        add     rdx, 6490        cmp     rdx, r1591        cmovne  eax, r14d92        movdqu  xmm8, xmmword ptr [r8+rdx-0x40]93        movdqu  xmm9, xmmword ptr [r9+rdx-0x40]94        movdqu  xmm10, xmmword ptr [r10+rdx-0x40]95        movdqu  xmm11, xmmword ptr [r11+rdx-0x40]96        movdqa  xmm12, xmm897        punpckldq xmm8, xmm998        punpckhdq xmm12, xmm999        movdqa  xmm14, xmm10100        punpckldq xmm10, xmm11101        punpckhdq xmm14, xmm11102        movdqa  xmm9, xmm8103        punpcklqdq xmm8, xmm10104        punpckhqdq xmm9, xmm10105        movdqa  xmm13, xmm12106        punpcklqdq xmm12, xmm14107        punpckhqdq xmm13, xmm14108        movdqa  xmmword ptr [rsp], xmm8109        movdqa  xmmword ptr [rsp+0x10], xmm9110        movdqa  xmmword ptr [rsp+0x20], xmm12111        movdqa  xmmword ptr [rsp+0x30], xmm13112        movdqu  xmm8, xmmword ptr [r8+rdx-0x30]113        movdqu  xmm9, xmmword ptr [r9+rdx-0x30]114        movdqu  xmm10, xmmword ptr [r10+rdx-0x30]115        movdqu  xmm11, xmmword ptr [r11+rdx-0x30]116        movdqa  xmm12, xmm8117        punpckldq xmm8, xmm9118        punpckhdq xmm12, xmm9119        movdqa  xmm14, xmm10120        punpckldq xmm10, xmm11121        punpckhdq xmm14, xmm11122        movdqa  xmm9, xmm8123        punpcklqdq xmm8, xmm10124        punpckhqdq xmm9, xmm10125        movdqa  xmm13, xmm12126        punpcklqdq xmm12, xmm14127        punpckhqdq xmm13, xmm14128        movdqa  xmmword ptr [rsp+0x40], xmm8129        movdqa  xmmword ptr [rsp+0x50], xmm9130        movdqa  xmmword ptr [rsp+0x60], xmm12131        movdqa  xmmword ptr [rsp+0x70], xmm13132        movdqu  xmm8, xmmword ptr [r8+rdx-0x20]133        movdqu  xmm9, xmmword ptr [r9+rdx-0x20]134        movdqu  xmm10, xmmword ptr [r10+rdx-0x20]135        movdqu  xmm11, xmmword ptr [r11+rdx-0x20]136        movdqa  xmm12, xmm8137        punpckldq xmm8, xmm9138        punpckhdq xmm12, xmm9139        movdqa  xmm14, xmm10140        punpckldq xmm10, xmm11141        punpckhdq xmm14, xmm11142        movdqa  xmm9, xmm8143        punpcklqdq xmm8, xmm10144        punpckhqdq xmm9, xmm10145        movdqa  xmm13, xmm12146        punpcklqdq xmm12, xmm14147        punpckhqdq xmm13, xmm14148        movdqa  xmmword ptr [rsp+0x80], xmm8149        movdqa  xmmword ptr [rsp+0x90], xmm9150        movdqa  xmmword ptr [rsp+0xA0], xmm12151        movdqa  xmmword ptr [rsp+0xB0], xmm13152        movdqu  xmm8, xmmword ptr [r8+rdx-0x10]153        movdqu  xmm9, xmmword ptr [r9+rdx-0x10]154        movdqu  xmm10, xmmword ptr [r10+rdx-0x10]155        movdqu  xmm11, xmmword ptr [r11+rdx-0x10]156        movdqa  xmm12, xmm8157        punpckldq xmm8, xmm9158        punpckhdq xmm12, xmm9159        movdqa  xmm14, xmm10160        punpckldq xmm10, xmm11161        punpckhdq xmm14, xmm11162        movdqa  xmm9, xmm8163        punpcklqdq xmm8, xmm10164        punpckhqdq xmm9, xmm10165        movdqa  xmm13, xmm12166        punpcklqdq xmm12, xmm14167        punpckhqdq xmm13, xmm14168        movdqa  xmmword ptr [rsp+0xC0], xmm8169        movdqa  xmmword ptr [rsp+0xD0], xmm9170        movdqa  xmmword ptr [rsp+0xE0], xmm12171        movdqa  xmmword ptr [rsp+0xF0], xmm13172        movdqa  xmm9, xmmword ptr [BLAKE3_IV_1+rip]173        movdqa  xmm10, xmmword ptr [BLAKE3_IV_2+rip]174        movdqa  xmm11, xmmword ptr [BLAKE3_IV_3+rip]175        movdqa  xmm12, xmmword ptr [rsp+0x110]176        movdqa  xmm13, xmmword ptr [rsp+0x120]177        movdqa  xmm14, xmmword ptr [BLAKE3_BLOCK_LEN+rip]178        movd    xmm15, eax179        pshufd  xmm15, xmm15, 0x00180        prefetcht0 [r8+rdx+0x80]181        prefetcht0 [r9+rdx+0x80]182        prefetcht0 [r10+rdx+0x80]183        prefetcht0 [r11+rdx+0x80]184        paddd   xmm0, xmmword ptr [rsp]185        paddd   xmm1, xmmword ptr [rsp+0x20]186        paddd   xmm2, xmmword ptr [rsp+0x40]187        paddd   xmm3, xmmword ptr [rsp+0x60]188        paddd   xmm0, xmm4189        paddd   xmm1, xmm5190        paddd   xmm2, xmm6191        paddd   xmm3, xmm7192        pxor    xmm12, xmm0193        pxor    xmm13, xmm1194        pxor    xmm14, xmm2195        pxor    xmm15, xmm3196        pshuflw xmm12, xmm12, 0xB1197        pshufhw xmm12, xmm12, 0xB1198        pshuflw xmm13, xmm13, 0xB1199        pshufhw xmm13, xmm13, 0xB1200        pshuflw xmm14, xmm14, 0xB1201        pshufhw xmm14, xmm14, 0xB1202        pshuflw xmm15, xmm15, 0xB1203        pshufhw xmm15, xmm15, 0xB1204        movdqa  xmm8, xmmword ptr [BLAKE3_IV_0+rip]205        paddd   xmm8, xmm12206        paddd   xmm9, xmm13207        paddd   xmm10, xmm14208        paddd   xmm11, xmm15209        pxor    xmm4, xmm8210        pxor    xmm5, xmm9211        pxor    xmm6, xmm10212        pxor    xmm7, xmm11213        movdqa  xmmword ptr [rsp+0x100], xmm8214        movdqa  xmm8, xmm4215        psrld   xmm8, 12216        pslld   xmm4, 20217        por     xmm4, xmm8218        movdqa  xmm8, xmm5219        psrld   xmm8, 12220        pslld   xmm5, 20221        por     xmm5, xmm8222        movdqa  xmm8, xmm6223        psrld   xmm8, 12224        pslld   xmm6, 20225        por     xmm6, xmm8226        movdqa  xmm8, xmm7227        psrld   xmm8, 12228        pslld   xmm7, 20229        por     xmm7, xmm8230        paddd   xmm0, xmmword ptr [rsp+0x10]231        paddd   xmm1, xmmword ptr [rsp+0x30]232        paddd   xmm2, xmmword ptr [rsp+0x50]233        paddd   xmm3, xmmword ptr [rsp+0x70]234        paddd   xmm0, xmm4235        paddd   xmm1, xmm5236        paddd   xmm2, xmm6237        paddd   xmm3, xmm7238        pxor    xmm12, xmm0239        pxor    xmm13, xmm1240        pxor    xmm14, xmm2241        pxor    xmm15, xmm3242        movdqa  xmm8, xmm12243        psrld   xmm12, 8244        pslld   xmm8, 24245        pxor    xmm12, xmm8246        movdqa  xmm8, xmm13247        psrld   xmm13, 8248        pslld   xmm8, 24249        pxor    xmm13, xmm8250        movdqa  xmm8, xmm14251        psrld   xmm14, 8252        pslld   xmm8, 24253        pxor    xmm14, xmm8254        movdqa  xmm8, xmm15255        psrld   xmm15, 8256        pslld   xmm8, 24257        pxor    xmm15, xmm8258        movdqa  xmm8, xmmword ptr [rsp+0x100]259        paddd   xmm8, xmm12260        paddd   xmm9, xmm13261        paddd   xmm10, xmm14262        paddd   xmm11, xmm15263        pxor    xmm4, xmm8264        pxor    xmm5, xmm9265        pxor    xmm6, xmm10266        pxor    xmm7, xmm11267        movdqa  xmmword ptr [rsp+0x100], xmm8268        movdqa  xmm8, xmm4269        psrld   xmm8, 7270        pslld   xmm4, 25271        por     xmm4, xmm8272        movdqa  xmm8, xmm5273        psrld   xmm8, 7274        pslld   xmm5, 25275        por     xmm5, xmm8276        movdqa  xmm8, xmm6277        psrld   xmm8, 7278        pslld   xmm6, 25279        por     xmm6, xmm8280        movdqa  xmm8, xmm7281        psrld   xmm8, 7282        pslld   xmm7, 25283        por     xmm7, xmm8284        paddd   xmm0, xmmword ptr [rsp+0x80]285        paddd   xmm1, xmmword ptr [rsp+0xA0]286        paddd   xmm2, xmmword ptr [rsp+0xC0]287        paddd   xmm3, xmmword ptr [rsp+0xE0]288        paddd   xmm0, xmm5289        paddd   xmm1, xmm6290        paddd   xmm2, xmm7291        paddd   xmm3, xmm4292        pxor    xmm15, xmm0293        pxor    xmm12, xmm1294        pxor    xmm13, xmm2295        pxor    xmm14, xmm3296        pshuflw xmm15, xmm15, 0xB1297        pshufhw xmm15, xmm15, 0xB1298        pshuflw xmm12, xmm12, 0xB1299        pshufhw xmm12, xmm12, 0xB1300        pshuflw xmm13, xmm13, 0xB1301        pshufhw xmm13, xmm13, 0xB1302        pshuflw xmm14, xmm14, 0xB1303        pshufhw xmm14, xmm14, 0xB1304        paddd   xmm10, xmm15305        paddd   xmm11, xmm12306        movdqa  xmm8, xmmword ptr [rsp+0x100]307        paddd   xmm8, xmm13308        paddd   xmm9, xmm14309        pxor    xmm5, xmm10310        pxor    xmm6, xmm11311        pxor    xmm7, xmm8312        pxor    xmm4, xmm9313        movdqa  xmmword ptr [rsp+0x100], xmm8314        movdqa  xmm8, xmm5315        psrld   xmm8, 12316        pslld   xmm5, 20317        por     xmm5, xmm8318        movdqa  xmm8, xmm6319        psrld   xmm8, 12320        pslld   xmm6, 20321        por     xmm6, xmm8322        movdqa  xmm8, xmm7323        psrld   xmm8, 12324        pslld   xmm7, 20325        por     xmm7, xmm8326        movdqa  xmm8, xmm4327        psrld   xmm8, 12328        pslld   xmm4, 20329        por     xmm4, xmm8330        paddd   xmm0, xmmword ptr [rsp+0x90]331        paddd   xmm1, xmmword ptr [rsp+0xB0]332        paddd   xmm2, xmmword ptr [rsp+0xD0]333        paddd   xmm3, xmmword ptr [rsp+0xF0]334        paddd   xmm0, xmm5335        paddd   xmm1, xmm6336        paddd   xmm2, xmm7337        paddd   xmm3, xmm4338        pxor    xmm15, xmm0339        pxor    xmm12, xmm1340        pxor    xmm13, xmm2341        pxor    xmm14, xmm3342        movdqa  xmm8, xmm15343        psrld   xmm15, 8344        pslld   xmm8, 24345        pxor    xmm15, xmm8346        movdqa  xmm8, xmm12347        psrld   xmm12, 8348        pslld   xmm8, 24349        pxor    xmm12, xmm8350        movdqa  xmm8, xmm13351        psrld   xmm13, 8352        pslld   xmm8, 24353        pxor    xmm13, xmm8354        movdqa  xmm8, xmm14355        psrld   xmm14, 8356        pslld   xmm8, 24357        pxor    xmm14, xmm8358        paddd   xmm10, xmm15359        paddd   xmm11, xmm12360        movdqa  xmm8, xmmword ptr [rsp+0x100]361        paddd   xmm8, xmm13362        paddd   xmm9, xmm14363        pxor    xmm5, xmm10364        pxor    xmm6, xmm11365        pxor    xmm7, xmm8366        pxor    xmm4, xmm9367        movdqa  xmmword ptr [rsp+0x100], xmm8368        movdqa  xmm8, xmm5369        psrld   xmm8, 7370        pslld   xmm5, 25371        por     xmm5, xmm8372        movdqa  xmm8, xmm6373        psrld   xmm8, 7374        pslld   xmm6, 25375        por     xmm6, xmm8376        movdqa  xmm8, xmm7377        psrld   xmm8, 7378        pslld   xmm7, 25379        por     xmm7, xmm8380        movdqa  xmm8, xmm4381        psrld   xmm8, 7382        pslld   xmm4, 25383        por     xmm4, xmm8384        paddd   xmm0, xmmword ptr [rsp+0x20]385        paddd   xmm1, xmmword ptr [rsp+0x30]386        paddd   xmm2, xmmword ptr [rsp+0x70]387        paddd   xmm3, xmmword ptr [rsp+0x40]388        paddd   xmm0, xmm4389        paddd   xmm1, xmm5390        paddd   xmm2, xmm6391        paddd   xmm3, xmm7392        pxor    xmm12, xmm0393        pxor    xmm13, xmm1394        pxor    xmm14, xmm2395        pxor    xmm15, xmm3396        pshuflw xmm12, xmm12, 0xB1397        pshufhw xmm12, xmm12, 0xB1398        pshuflw xmm13, xmm13, 0xB1399        pshufhw xmm13, xmm13, 0xB1400        pshuflw xmm14, xmm14, 0xB1401        pshufhw xmm14, xmm14, 0xB1402        pshuflw xmm15, xmm15, 0xB1403        pshufhw xmm15, xmm15, 0xB1404        movdqa  xmm8, xmmword ptr [rsp+0x100]405        paddd   xmm8, xmm12406        paddd   xmm9, xmm13407        paddd   xmm10, xmm14408        paddd   xmm11, xmm15409        pxor    xmm4, xmm8410        pxor    xmm5, xmm9411        pxor    xmm6, xmm10412        pxor    xmm7, xmm11413        movdqa  xmmword ptr [rsp+0x100], xmm8414        movdqa  xmm8, xmm4415        psrld   xmm8, 12416        pslld   xmm4, 20417        por     xmm4, xmm8418        movdqa  xmm8, xmm5419        psrld   xmm8, 12420        pslld   xmm5, 20421        por     xmm5, xmm8422        movdqa  xmm8, xmm6423        psrld   xmm8, 12424        pslld   xmm6, 20425        por     xmm6, xmm8426        movdqa  xmm8, xmm7427        psrld   xmm8, 12428        pslld   xmm7, 20429        por     xmm7, xmm8430        paddd   xmm0, xmmword ptr [rsp+0x60]431        paddd   xmm1, xmmword ptr [rsp+0xA0]432        paddd   xmm2, xmmword ptr [rsp]433        paddd   xmm3, xmmword ptr [rsp+0xD0]434        paddd   xmm0, xmm4435        paddd   xmm1, xmm5436        paddd   xmm2, xmm6437        paddd   xmm3, xmm7438        pxor    xmm12, xmm0439        pxor    xmm13, xmm1440        pxor    xmm14, xmm2441        pxor    xmm15, xmm3442        movdqa  xmm8, xmm12443        psrld   xmm12, 8444        pslld   xmm8, 24445        pxor    xmm12, xmm8446        movdqa  xmm8, xmm13447        psrld   xmm13, 8448        pslld   xmm8, 24449        pxor    xmm13, xmm8450        movdqa  xmm8, xmm14451        psrld   xmm14, 8452        pslld   xmm8, 24453        pxor    xmm14, xmm8454        movdqa  xmm8, xmm15455        psrld   xmm15, 8456        pslld   xmm8, 24457        pxor    xmm15, xmm8458        movdqa  xmm8, xmmword ptr [rsp+0x100]459        paddd   xmm8, xmm12460        paddd   xmm9, xmm13461        paddd   xmm10, xmm14462        paddd   xmm11, xmm15463        pxor    xmm4, xmm8464        pxor    xmm5, xmm9465        pxor    xmm6, xmm10466        pxor    xmm7, xmm11467        movdqa  xmmword ptr [rsp+0x100], xmm8468        movdqa  xmm8, xmm4469        psrld   xmm8, 7470        pslld   xmm4, 25471        por     xmm4, xmm8472        movdqa  xmm8, xmm5473        psrld   xmm8, 7474        pslld   xmm5, 25475        por     xmm5, xmm8476        movdqa  xmm8, xmm6477        psrld   xmm8, 7478        pslld   xmm6, 25479        por     xmm6, xmm8480        movdqa  xmm8, xmm7481        psrld   xmm8, 7482        pslld   xmm7, 25483        por     xmm7, xmm8484        paddd   xmm0, xmmword ptr [rsp+0x10]485        paddd   xmm1, xmmword ptr [rsp+0xC0]486        paddd   xmm2, xmmword ptr [rsp+0x90]487        paddd   xmm3, xmmword ptr [rsp+0xF0]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        pshuflw xmm15, xmm15, 0xB1497        pshufhw xmm15, xmm15, 0xB1498        pshuflw xmm12, xmm12, 0xB1499        pshufhw xmm12, xmm12, 0xB1500        pshuflw xmm13, xmm13, 0xB1501        pshufhw xmm13, xmm13, 0xB1502        pshuflw xmm14, xmm14, 0xB1503        pshufhw xmm14, xmm14, 0xB1504        paddd   xmm10, xmm15505        paddd   xmm11, xmm12506        movdqa  xmm8, xmmword ptr [rsp+0x100]507        paddd   xmm8, xmm13508        paddd   xmm9, xmm14509        pxor    xmm5, xmm10510        pxor    xmm6, xmm11511        pxor    xmm7, xmm8512        pxor    xmm4, xmm9513        movdqa  xmmword ptr [rsp+0x100], xmm8514        movdqa  xmm8, xmm5515        psrld   xmm8, 12516        pslld   xmm5, 20517        por     xmm5, xmm8518        movdqa  xmm8, xmm6519        psrld   xmm8, 12520        pslld   xmm6, 20521        por     xmm6, xmm8522        movdqa  xmm8, xmm7523        psrld   xmm8, 12524        pslld   xmm7, 20525        por     xmm7, xmm8526        movdqa  xmm8, xmm4527        psrld   xmm8, 12528        pslld   xmm4, 20529        por     xmm4, xmm8530        paddd   xmm0, xmmword ptr [rsp+0xB0]531        paddd   xmm1, xmmword ptr [rsp+0x50]532        paddd   xmm2, xmmword ptr [rsp+0xE0]533        paddd   xmm3, xmmword ptr [rsp+0x80]534        paddd   xmm0, xmm5535        paddd   xmm1, xmm6536        paddd   xmm2, xmm7537        paddd   xmm3, xmm4538        pxor    xmm15, xmm0539        pxor    xmm12, xmm1540        pxor    xmm13, xmm2541        pxor    xmm14, xmm3542        movdqa  xmm8, xmm15543        psrld   xmm15, 8544        pslld   xmm8, 24545        pxor    xmm15, xmm8546        movdqa  xmm8, xmm12547        psrld   xmm12, 8548        pslld   xmm8, 24549        pxor    xmm12, xmm8550        movdqa  xmm8, xmm13551        psrld   xmm13, 8552        pslld   xmm8, 24553        pxor    xmm13, xmm8554        movdqa  xmm8, xmm14555        psrld   xmm14, 8556        pslld   xmm8, 24557        pxor    xmm14, xmm8558        paddd   xmm10, xmm15559        paddd   xmm11, xmm12560        movdqa  xmm8, xmmword ptr [rsp+0x100]561        paddd   xmm8, xmm13562        paddd   xmm9, xmm14563        pxor    xmm5, xmm10564        pxor    xmm6, xmm11565        pxor    xmm7, xmm8566        pxor    xmm4, xmm9567        movdqa  xmmword ptr [rsp+0x100], xmm8568        movdqa  xmm8, xmm5569        psrld   xmm8, 7570        pslld   xmm5, 25571        por     xmm5, xmm8572        movdqa  xmm8, xmm6573        psrld   xmm8, 7574        pslld   xmm6, 25575        por     xmm6, xmm8576        movdqa  xmm8, xmm7577        psrld   xmm8, 7578        pslld   xmm7, 25579        por     xmm7, xmm8580        movdqa  xmm8, xmm4581        psrld   xmm8, 7582        pslld   xmm4, 25583        por     xmm4, xmm8584        paddd   xmm0, xmmword ptr [rsp+0x30]585        paddd   xmm1, xmmword ptr [rsp+0xA0]586        paddd   xmm2, xmmword ptr [rsp+0xD0]587        paddd   xmm3, xmmword ptr [rsp+0x70]588        paddd   xmm0, xmm4589        paddd   xmm1, xmm5590        paddd   xmm2, xmm6591        paddd   xmm3, xmm7592        pxor    xmm12, xmm0593        pxor    xmm13, xmm1594        pxor    xmm14, xmm2595        pxor    xmm15, xmm3596        pshuflw xmm12, xmm12, 0xB1597        pshufhw xmm12, xmm12, 0xB1598        pshuflw xmm13, xmm13, 0xB1599        pshufhw xmm13, xmm13, 0xB1600        pshuflw xmm14, xmm14, 0xB1601        pshufhw xmm14, xmm14, 0xB1602        pshuflw xmm15, xmm15, 0xB1603        pshufhw xmm15, xmm15, 0xB1604        movdqa  xmm8, xmmword ptr [rsp+0x100]605        paddd   xmm8, xmm12606        paddd   xmm9, xmm13607        paddd   xmm10, xmm14608        paddd   xmm11, xmm15609        pxor    xmm4, xmm8610        pxor    xmm5, xmm9611        pxor    xmm6, xmm10612        pxor    xmm7, xmm11613        movdqa  xmmword ptr [rsp+0x100], xmm8614        movdqa  xmm8, xmm4615        psrld   xmm8, 12616        pslld   xmm4, 20617        por     xmm4, xmm8618        movdqa  xmm8, xmm5619        psrld   xmm8, 12620        pslld   xmm5, 20621        por     xmm5, xmm8622        movdqa  xmm8, xmm6623        psrld   xmm8, 12624        pslld   xmm6, 20625        por     xmm6, xmm8626        movdqa  xmm8, xmm7627        psrld   xmm8, 12628        pslld   xmm7, 20629        por     xmm7, xmm8630        paddd   xmm0, xmmword ptr [rsp+0x40]631        paddd   xmm1, xmmword ptr [rsp+0xC0]632        paddd   xmm2, xmmword ptr [rsp+0x20]633        paddd   xmm3, xmmword ptr [rsp+0xE0]634        paddd   xmm0, xmm4635        paddd   xmm1, xmm5636        paddd   xmm2, xmm6637        paddd   xmm3, xmm7638        pxor    xmm12, xmm0639        pxor    xmm13, xmm1640        pxor    xmm14, xmm2641        pxor    xmm15, xmm3642        movdqa  xmm8, xmm12643        psrld   xmm12, 8644        pslld   xmm8, 24645        pxor    xmm12, xmm8646        movdqa  xmm8, xmm13647        psrld   xmm13, 8648        pslld   xmm8, 24649        pxor    xmm13, xmm8650        movdqa  xmm8, xmm14651        psrld   xmm14, 8652        pslld   xmm8, 24653        pxor    xmm14, xmm8654        movdqa  xmm8, xmm15655        psrld   xmm15, 8656        pslld   xmm8, 24657        pxor    xmm15, xmm8658        movdqa  xmm8, xmmword ptr [rsp+0x100]659        paddd   xmm8, xmm12660        paddd   xmm9, xmm13661        paddd   xmm10, xmm14662        paddd   xmm11, xmm15663        pxor    xmm4, xmm8664        pxor    xmm5, xmm9665        pxor    xmm6, xmm10666        pxor    xmm7, xmm11667        movdqa  xmmword ptr [rsp+0x100], xmm8668        movdqa  xmm8, xmm4669        psrld   xmm8, 7670        pslld   xmm4, 25671        por     xmm4, xmm8672        movdqa  xmm8, xmm5673        psrld   xmm8, 7674        pslld   xmm5, 25675        por     xmm5, xmm8676        movdqa  xmm8, xmm6677        psrld   xmm8, 7678        pslld   xmm6, 25679        por     xmm6, xmm8680        movdqa  xmm8, xmm7681        psrld   xmm8, 7682        pslld   xmm7, 25683        por     xmm7, xmm8684        paddd   xmm0, xmmword ptr [rsp+0x60]685        paddd   xmm1, xmmword ptr [rsp+0x90]686        paddd   xmm2, xmmword ptr [rsp+0xB0]687        paddd   xmm3, xmmword ptr [rsp+0x80]688        paddd   xmm0, xmm5689        paddd   xmm1, xmm6690        paddd   xmm2, xmm7691        paddd   xmm3, xmm4692        pxor    xmm15, xmm0693        pxor    xmm12, xmm1694        pxor    xmm13, xmm2695        pxor    xmm14, xmm3696        pshuflw xmm15, xmm15, 0xB1697        pshufhw xmm15, xmm15, 0xB1698        pshuflw xmm12, xmm12, 0xB1699        pshufhw xmm12, xmm12, 0xB1700        pshuflw xmm13, xmm13, 0xB1701        pshufhw xmm13, xmm13, 0xB1702        pshuflw xmm14, xmm14, 0xB1703        pshufhw xmm14, xmm14, 0xB1704        paddd   xmm10, xmm15705        paddd   xmm11, xmm12706        movdqa  xmm8, xmmword ptr [rsp+0x100]707        paddd   xmm8, xmm13708        paddd   xmm9, xmm14709        pxor    xmm5, xmm10710        pxor    xmm6, xmm11711        pxor    xmm7, xmm8712        pxor    xmm4, xmm9713        movdqa  xmmword ptr [rsp+0x100], xmm8714        movdqa  xmm8, xmm5715        psrld   xmm8, 12716        pslld   xmm5, 20717        por     xmm5, xmm8718        movdqa  xmm8, xmm6719        psrld   xmm8, 12720        pslld   xmm6, 20721        por     xmm6, xmm8722        movdqa  xmm8, xmm7723        psrld   xmm8, 12724        pslld   xmm7, 20725        por     xmm7, xmm8726        movdqa  xmm8, xmm4727        psrld   xmm8, 12728        pslld   xmm4, 20729        por     xmm4, xmm8730        paddd   xmm0, xmmword ptr [rsp+0x50]731        paddd   xmm1, xmmword ptr [rsp]732        paddd   xmm2, xmmword ptr [rsp+0xF0]733        paddd   xmm3, xmmword ptr [rsp+0x10]734        paddd   xmm0, xmm5735        paddd   xmm1, xmm6736        paddd   xmm2, xmm7737        paddd   xmm3, xmm4738        pxor    xmm15, xmm0739        pxor    xmm12, xmm1740        pxor    xmm13, xmm2741        pxor    xmm14, xmm3742        movdqa  xmm8, xmm15743        psrld   xmm15, 8744        pslld   xmm8, 24745        pxor    xmm15, xmm8746        movdqa  xmm8, xmm12747        psrld   xmm12, 8748        pslld   xmm8, 24749        pxor    xmm12, xmm8750        movdqa  xmm8, xmm13751        psrld   xmm13, 8752        pslld   xmm8, 24753        pxor    xmm13, xmm8754        movdqa  xmm8, xmm14755        psrld   xmm14, 8756        pslld   xmm8, 24757        pxor    xmm14, xmm8758        paddd   xmm10, xmm15759        paddd   xmm11, xmm12760        movdqa  xmm8, xmmword ptr [rsp+0x100]761        paddd   xmm8, xmm13762        paddd   xmm9, xmm14763        pxor    xmm5, xmm10764        pxor    xmm6, xmm11765        pxor    xmm7, xmm8766        pxor    xmm4, xmm9767        movdqa  xmmword ptr [rsp+0x100], xmm8768        movdqa  xmm8, xmm5769        psrld   xmm8, 7770        pslld   xmm5, 25771        por     xmm5, xmm8772        movdqa  xmm8, xmm6773        psrld   xmm8, 7774        pslld   xmm6, 25775        por     xmm6, xmm8776        movdqa  xmm8, xmm7777        psrld   xmm8, 7778        pslld   xmm7, 25779        por     xmm7, xmm8780        movdqa  xmm8, xmm4781        psrld   xmm8, 7782        pslld   xmm4, 25783        por     xmm4, xmm8784        paddd   xmm0, xmmword ptr [rsp+0xA0]785        paddd   xmm1, xmmword ptr [rsp+0xC0]786        paddd   xmm2, xmmword ptr [rsp+0xE0]787        paddd   xmm3, xmmword ptr [rsp+0xD0]788        paddd   xmm0, xmm4789        paddd   xmm1, xmm5790        paddd   xmm2, xmm6791        paddd   xmm3, xmm7792        pxor    xmm12, xmm0793        pxor    xmm13, xmm1794        pxor    xmm14, xmm2795        pxor    xmm15, xmm3796        pshuflw xmm12, xmm12, 0xB1797        pshufhw xmm12, xmm12, 0xB1798        pshuflw xmm13, xmm13, 0xB1799        pshufhw xmm13, xmm13, 0xB1800        pshuflw xmm14, xmm14, 0xB1801        pshufhw xmm14, xmm14, 0xB1802        pshuflw xmm15, xmm15, 0xB1803        pshufhw xmm15, xmm15, 0xB1804        movdqa  xmm8, xmmword ptr [rsp+0x100]805        paddd   xmm8, xmm12806        paddd   xmm9, xmm13807        paddd   xmm10, xmm14808        paddd   xmm11, xmm15809        pxor    xmm4, xmm8810        pxor    xmm5, xmm9811        pxor    xmm6, xmm10812        pxor    xmm7, xmm11813        movdqa  xmmword ptr [rsp+0x100], xmm8814        movdqa  xmm8, xmm4815        psrld   xmm8, 12816        pslld   xmm4, 20817        por     xmm4, xmm8818        movdqa  xmm8, xmm5819        psrld   xmm8, 12820        pslld   xmm5, 20821        por     xmm5, xmm8822        movdqa  xmm8, xmm6823        psrld   xmm8, 12824        pslld   xmm6, 20825        por     xmm6, xmm8826        movdqa  xmm8, xmm7827        psrld   xmm8, 12828        pslld   xmm7, 20829        por     xmm7, xmm8830        paddd   xmm0, xmmword ptr [rsp+0x70]831        paddd   xmm1, xmmword ptr [rsp+0x90]832        paddd   xmm2, xmmword ptr [rsp+0x30]833        paddd   xmm3, xmmword ptr [rsp+0xF0]834        paddd   xmm0, xmm4835        paddd   xmm1, xmm5836        paddd   xmm2, xmm6837        paddd   xmm3, xmm7838        pxor    xmm12, xmm0839        pxor    xmm13, xmm1840        pxor    xmm14, xmm2841        pxor    xmm15, xmm3842        movdqa  xmm8, xmm12843        psrld   xmm12, 8844        pslld   xmm8, 24845        pxor    xmm12, xmm8846        movdqa  xmm8, xmm13847        psrld   xmm13, 8848        pslld   xmm8, 24849        pxor    xmm13, xmm8850        movdqa  xmm8, xmm14851        psrld   xmm14, 8852        pslld   xmm8, 24853        pxor    xmm14, xmm8854        movdqa  xmm8, xmm15855        psrld   xmm15, 8856        pslld   xmm8, 24857        pxor    xmm15, xmm8858        movdqa  xmm8, xmmword ptr [rsp+0x100]859        paddd   xmm8, xmm12860        paddd   xmm9, xmm13861        paddd   xmm10, xmm14862        paddd   xmm11, xmm15863        pxor    xmm4, xmm8864        pxor    xmm5, xmm9865        pxor    xmm6, xmm10866        pxor    xmm7, xmm11867        movdqa  xmmword ptr [rsp+0x100], xmm8868        movdqa  xmm8, xmm4869        psrld   xmm8, 7870        pslld   xmm4, 25871        por     xmm4, xmm8872        movdqa  xmm8, xmm5873        psrld   xmm8, 7874        pslld   xmm5, 25875        por     xmm5, xmm8876        movdqa  xmm8, xmm6877        psrld   xmm8, 7878        pslld   xmm6, 25879        por     xmm6, xmm8880        movdqa  xmm8, xmm7881        psrld   xmm8, 7882        pslld   xmm7, 25883        por     xmm7, xmm8884        paddd   xmm0, xmmword ptr [rsp+0x40]885        paddd   xmm1, xmmword ptr [rsp+0xB0]886        paddd   xmm2, xmmword ptr [rsp+0x50]887        paddd   xmm3, xmmword ptr [rsp+0x10]888        paddd   xmm0, xmm5889        paddd   xmm1, xmm6890        paddd   xmm2, xmm7891        paddd   xmm3, xmm4892        pxor    xmm15, xmm0893        pxor    xmm12, xmm1894        pxor    xmm13, xmm2895        pxor    xmm14, xmm3896        pshuflw xmm15, xmm15, 0xB1897        pshufhw xmm15, xmm15, 0xB1898        pshuflw xmm12, xmm12, 0xB1899        pshufhw xmm12, xmm12, 0xB1900        pshuflw xmm13, xmm13, 0xB1901        pshufhw xmm13, xmm13, 0xB1902        pshuflw xmm14, xmm14, 0xB1903        pshufhw xmm14, xmm14, 0xB1904        paddd   xmm10, xmm15905        paddd   xmm11, xmm12906        movdqa  xmm8, xmmword ptr [rsp+0x100]907        paddd   xmm8, xmm13908        paddd   xmm9, xmm14909        pxor    xmm5, xmm10910        pxor    xmm6, xmm11911        pxor    xmm7, xmm8912        pxor    xmm4, xmm9913        movdqa  xmmword ptr [rsp+0x100], xmm8914        movdqa  xmm8, xmm5915        psrld   xmm8, 12916        pslld   xmm5, 20917        por     xmm5, xmm8918        movdqa  xmm8, xmm6919        psrld   xmm8, 12920        pslld   xmm6, 20921        por     xmm6, xmm8922        movdqa  xmm8, xmm7923        psrld   xmm8, 12924        pslld   xmm7, 20925        por     xmm7, xmm8926        movdqa  xmm8, xmm4927        psrld   xmm8, 12928        pslld   xmm4, 20929        por     xmm4, xmm8930        paddd   xmm0, xmmword ptr [rsp]931        paddd   xmm1, xmmword ptr [rsp+0x20]932        paddd   xmm2, xmmword ptr [rsp+0x80]933        paddd   xmm3, xmmword ptr [rsp+0x60]934        paddd   xmm0, xmm5935        paddd   xmm1, xmm6936        paddd   xmm2, xmm7937        paddd   xmm3, xmm4938        pxor    xmm15, xmm0939        pxor    xmm12, xmm1940        pxor    xmm13, xmm2941        pxor    xmm14, xmm3942        movdqa  xmm8, xmm15943        psrld   xmm15, 8944        pslld   xmm8, 24945        pxor    xmm15, xmm8946        movdqa  xmm8, xmm12947        psrld   xmm12, 8948        pslld   xmm8, 24949        pxor    xmm12, xmm8950        movdqa  xmm8, xmm13951        psrld   xmm13, 8952        pslld   xmm8, 24953        pxor    xmm13, xmm8954        movdqa  xmm8, xmm14955        psrld   xmm14, 8956        pslld   xmm8, 24957        pxor    xmm14, xmm8958        paddd   xmm10, xmm15959        paddd   xmm11, xmm12960        movdqa  xmm8, xmmword ptr [rsp+0x100]961        paddd   xmm8, xmm13962        paddd   xmm9, xmm14963        pxor    xmm5, xmm10964        pxor    xmm6, xmm11965        pxor    xmm7, xmm8966        pxor    xmm4, xmm9967        movdqa  xmmword ptr [rsp+0x100], xmm8968        movdqa  xmm8, xmm5969        psrld   xmm8, 7970        pslld   xmm5, 25971        por     xmm5, xmm8972        movdqa  xmm8, xmm6973        psrld   xmm8, 7974        pslld   xmm6, 25975        por     xmm6, xmm8976        movdqa  xmm8, xmm7977        psrld   xmm8, 7978        pslld   xmm7, 25979        por     xmm7, xmm8980        movdqa  xmm8, xmm4981        psrld   xmm8, 7982        pslld   xmm4, 25983        por     xmm4, xmm8984        paddd   xmm0, xmmword ptr [rsp+0xC0]985        paddd   xmm1, xmmword ptr [rsp+0x90]986        paddd   xmm2, xmmword ptr [rsp+0xF0]987        paddd   xmm3, xmmword ptr [rsp+0xE0]988        paddd   xmm0, xmm4989        paddd   xmm1, xmm5990        paddd   xmm2, xmm6991        paddd   xmm3, xmm7992        pxor    xmm12, xmm0993        pxor    xmm13, xmm1994        pxor    xmm14, xmm2995        pxor    xmm15, xmm3996        pshuflw xmm12, xmm12, 0xB1997        pshufhw xmm12, xmm12, 0xB1998        pshuflw xmm13, xmm13, 0xB1999        pshufhw xmm13, xmm13, 0xB11000        pshuflw xmm14, xmm14, 0xB11001        pshufhw xmm14, xmm14, 0xB11002        pshuflw xmm15, xmm15, 0xB11003        pshufhw xmm15, xmm15, 0xB11004        movdqa  xmm8, xmmword ptr [rsp+0x100]1005        paddd   xmm8, xmm121006        paddd   xmm9, xmm131007        paddd   xmm10, xmm141008        paddd   xmm11, xmm151009        pxor    xmm4, xmm81010        pxor    xmm5, xmm91011        pxor    xmm6, xmm101012        pxor    xmm7, xmm111013        movdqa  xmmword ptr [rsp+0x100], xmm81014        movdqa  xmm8, xmm41015        psrld   xmm8, 121016        pslld   xmm4, 201017        por     xmm4, xmm81018        movdqa  xmm8, xmm51019        psrld   xmm8, 121020        pslld   xmm5, 201021        por     xmm5, xmm81022        movdqa  xmm8, xmm61023        psrld   xmm8, 121024        pslld   xmm6, 201025        por     xmm6, xmm81026        movdqa  xmm8, xmm71027        psrld   xmm8, 121028        pslld   xmm7, 201029        por     xmm7, xmm81030        paddd   xmm0, xmmword ptr [rsp+0xD0]1031        paddd   xmm1, xmmword ptr [rsp+0xB0]1032        paddd   xmm2, xmmword ptr [rsp+0xA0]1033        paddd   xmm3, xmmword ptr [rsp+0x80]1034        paddd   xmm0, xmm41035        paddd   xmm1, xmm51036        paddd   xmm2, xmm61037        paddd   xmm3, xmm71038        pxor    xmm12, xmm01039        pxor    xmm13, xmm11040        pxor    xmm14, xmm21041        pxor    xmm15, xmm31042        movdqa  xmm8, xmm121043        psrld   xmm12, 81044        pslld   xmm8, 241045        pxor    xmm12, xmm81046        movdqa  xmm8, xmm131047        psrld   xmm13, 81048        pslld   xmm8, 241049        pxor    xmm13, xmm81050        movdqa  xmm8, xmm141051        psrld   xmm14, 81052        pslld   xmm8, 241053        pxor    xmm14, xmm81054        movdqa  xmm8, xmm151055        psrld   xmm15, 81056        pslld   xmm8, 241057        pxor    xmm15, xmm81058        movdqa  xmm8, xmmword ptr [rsp+0x100]1059        paddd   xmm8, xmm121060        paddd   xmm9, xmm131061        paddd   xmm10, xmm141062        paddd   xmm11, xmm151063        pxor    xmm4, xmm81064        pxor    xmm5, xmm91065        pxor    xmm6, xmm101066        pxor    xmm7, xmm111067        movdqa  xmmword ptr [rsp+0x100], xmm81068        movdqa  xmm8, xmm41069        psrld   xmm8, 71070        pslld   xmm4, 251071        por     xmm4, xmm81072        movdqa  xmm8, xmm51073        psrld   xmm8, 71074        pslld   xmm5, 251075        por     xmm5, xmm81076        movdqa  xmm8, xmm61077        psrld   xmm8, 71078        pslld   xmm6, 251079        por     xmm6, xmm81080        movdqa  xmm8, xmm71081        psrld   xmm8, 71082        pslld   xmm7, 251083        por     xmm7, xmm81084        paddd   xmm0, xmmword ptr [rsp+0x70]1085        paddd   xmm1, xmmword ptr [rsp+0x50]1086        paddd   xmm2, xmmword ptr [rsp]1087        paddd   xmm3, xmmword ptr [rsp+0x60]1088        paddd   xmm0, xmm51089        paddd   xmm1, xmm61090        paddd   xmm2, xmm71091        paddd   xmm3, xmm41092        pxor    xmm15, xmm01093        pxor    xmm12, xmm11094        pxor    xmm13, xmm21095        pxor    xmm14, xmm31096        pshuflw xmm15, xmm15, 0xB11097        pshufhw xmm15, xmm15, 0xB11098        pshuflw xmm12, xmm12, 0xB11099        pshufhw xmm12, xmm12, 0xB11100        pshuflw xmm13, xmm13, 0xB11101        pshufhw xmm13, xmm13, 0xB11102        pshuflw xmm14, xmm14, 0xB11103        pshufhw xmm14, xmm14, 0xB11104        paddd   xmm10, xmm151105        paddd   xmm11, xmm121106        movdqa  xmm8, xmmword ptr [rsp+0x100]1107        paddd   xmm8, xmm131108        paddd   xmm9, xmm141109        pxor    xmm5, xmm101110        pxor    xmm6, xmm111111        pxor    xmm7, xmm81112        pxor    xmm4, xmm91113        movdqa  xmmword ptr [rsp+0x100], xmm81114        movdqa  xmm8, xmm51115        psrld   xmm8, 121116        pslld   xmm5, 201117        por     xmm5, xmm81118        movdqa  xmm8, xmm61119        psrld   xmm8, 121120        pslld   xmm6, 201121        por     xmm6, xmm81122        movdqa  xmm8, xmm71123        psrld   xmm8, 121124        pslld   xmm7, 201125        por     xmm7, xmm81126        movdqa  xmm8, xmm41127        psrld   xmm8, 121128        pslld   xmm4, 201129        por     xmm4, xmm81130        paddd   xmm0, xmmword ptr [rsp+0x20]1131        paddd   xmm1, xmmword ptr [rsp+0x30]1132        paddd   xmm2, xmmword ptr [rsp+0x10]1133        paddd   xmm3, xmmword ptr [rsp+0x40]1134        paddd   xmm0, xmm51135        paddd   xmm1, xmm61136        paddd   xmm2, xmm71137        paddd   xmm3, xmm41138        pxor    xmm15, xmm01139        pxor    xmm12, xmm11140        pxor    xmm13, xmm21141        pxor    xmm14, xmm31142        movdqa  xmm8, xmm151143        psrld   xmm15, 81144        pslld   xmm8, 241145        pxor    xmm15, xmm81146        movdqa  xmm8, xmm121147        psrld   xmm12, 81148        pslld   xmm8, 241149        pxor    xmm12, xmm81150        movdqa  xmm8, xmm131151        psrld   xmm13, 81152        pslld   xmm8, 241153        pxor    xmm13, xmm81154        movdqa  xmm8, xmm141155        psrld   xmm14, 81156        pslld   xmm8, 241157        pxor    xmm14, xmm81158        paddd   xmm10, xmm151159        paddd   xmm11, xmm121160        movdqa  xmm8, xmmword ptr [rsp+0x100]1161        paddd   xmm8, xmm131162        paddd   xmm9, xmm141163        pxor    xmm5, xmm101164        pxor    xmm6, xmm111165        pxor    xmm7, xmm81166        pxor    xmm4, xmm91167        movdqa  xmmword ptr [rsp+0x100], xmm81168        movdqa  xmm8, xmm51169        psrld   xmm8, 71170        pslld   xmm5, 251171        por     xmm5, xmm81172        movdqa  xmm8, xmm61173        psrld   xmm8, 71174        pslld   xmm6, 251175        por     xmm6, xmm81176        movdqa  xmm8, xmm71177        psrld   xmm8, 71178        pslld   xmm7, 251179        por     xmm7, xmm81180        movdqa  xmm8, xmm41181        psrld   xmm8, 71182        pslld   xmm4, 251183        por     xmm4, xmm81184        paddd   xmm0, xmmword ptr [rsp+0x90]1185        paddd   xmm1, xmmword ptr [rsp+0xB0]1186        paddd   xmm2, xmmword ptr [rsp+0x80]1187        paddd   xmm3, xmmword ptr [rsp+0xF0]1188        paddd   xmm0, xmm41189        paddd   xmm1, xmm51190        paddd   xmm2, xmm61191        paddd   xmm3, xmm71192        pxor    xmm12, xmm01193        pxor    xmm13, xmm11194        pxor    xmm14, xmm21195        pxor    xmm15, xmm31196        pshuflw xmm12, xmm12, 0xB11197        pshufhw xmm12, xmm12, 0xB11198        pshuflw xmm13, xmm13, 0xB11199        pshufhw xmm13, xmm13, 0xB11200        pshuflw xmm14, xmm14, 0xB11201        pshufhw xmm14, xmm14, 0xB11202        pshuflw xmm15, xmm15, 0xB11203        pshufhw xmm15, xmm15, 0xB11204        movdqa  xmm8, xmmword ptr [rsp+0x100]1205        paddd   xmm8, xmm121206        paddd   xmm9, xmm131207        paddd   xmm10, xmm141208        paddd   xmm11, xmm151209        pxor    xmm4, xmm81210        pxor    xmm5, xmm91211        pxor    xmm6, xmm101212        pxor    xmm7, xmm111213        movdqa  xmmword ptr [rsp+0x100], xmm81214        movdqa  xmm8, xmm41215        psrld   xmm8, 121216        pslld   xmm4, 201217        por     xmm4, xmm81218        movdqa  xmm8, xmm51219        psrld   xmm8, 121220        pslld   xmm5, 201221        por     xmm5, xmm81222        movdqa  xmm8, xmm61223        psrld   xmm8, 121224        pslld   xmm6, 201225        por     xmm6, xmm81226        movdqa  xmm8, xmm71227        psrld   xmm8, 121228        pslld   xmm7, 201229        por     xmm7, xmm81230        paddd   xmm0, xmmword ptr [rsp+0xE0]1231        paddd   xmm1, xmmword ptr [rsp+0x50]1232        paddd   xmm2, xmmword ptr [rsp+0xC0]1233        paddd   xmm3, xmmword ptr [rsp+0x10]1234        paddd   xmm0, xmm41235        paddd   xmm1, xmm51236        paddd   xmm2, xmm61237        paddd   xmm3, xmm71238        pxor    xmm12, xmm01239        pxor    xmm13, xmm11240        pxor    xmm14, xmm21241        pxor    xmm15, xmm31242        movdqa  xmm8, xmm121243        psrld   xmm12, 81244        pslld   xmm8, 241245        pxor    xmm12, xmm81246        movdqa  xmm8, xmm131247        psrld   xmm13, 81248        pslld   xmm8, 241249        pxor    xmm13, xmm81250        movdqa  xmm8, xmm141251        psrld   xmm14, 81252        pslld   xmm8, 241253        pxor    xmm14, xmm81254        movdqa  xmm8, xmm151255        psrld   xmm15, 81256        pslld   xmm8, 241257        pxor    xmm15, xmm81258        movdqa  xmm8, xmmword ptr [rsp+0x100]1259        paddd   xmm8, xmm121260        paddd   xmm9, xmm131261        paddd   xmm10, xmm141262        paddd   xmm11, xmm151263        pxor    xmm4, xmm81264        pxor    xmm5, xmm91265        pxor    xmm6, xmm101266        pxor    xmm7, xmm111267        movdqa  xmmword ptr [rsp+0x100], xmm81268        movdqa  xmm8, xmm41269        psrld   xmm8, 71270        pslld   xmm4, 251271        por     xmm4, xmm81272        movdqa  xmm8, xmm51273        psrld   xmm8, 71274        pslld   xmm5, 251275        por     xmm5, xmm81276        movdqa  xmm8, xmm61277        psrld   xmm8, 71278        pslld   xmm6, 251279        por     xmm6, xmm81280        movdqa  xmm8, xmm71281        psrld   xmm8, 71282        pslld   xmm7, 251283        por     xmm7, xmm81284        paddd   xmm0, xmmword ptr [rsp+0xD0]1285        paddd   xmm1, xmmword ptr [rsp]1286        paddd   xmm2, xmmword ptr [rsp+0x20]1287        paddd   xmm3, xmmword ptr [rsp+0x40]1288        paddd   xmm0, xmm51289        paddd   xmm1, xmm61290        paddd   xmm2, xmm71291        paddd   xmm3, xmm41292        pxor    xmm15, xmm01293        pxor    xmm12, xmm11294        pxor    xmm13, xmm21295        pxor    xmm14, xmm31296        pshuflw xmm15, xmm15, 0xB11297        pshufhw xmm15, xmm15, 0xB11298        pshuflw xmm12, xmm12, 0xB11299        pshufhw xmm12, xmm12, 0xB11300        pshuflw xmm13, xmm13, 0xB11301        pshufhw xmm13, xmm13, 0xB11302        pshuflw xmm14, xmm14, 0xB11303        pshufhw xmm14, xmm14, 0xB11304        paddd   xmm10, xmm151305        paddd   xmm11, xmm121306        movdqa  xmm8, xmmword ptr [rsp+0x100]1307        paddd   xmm8, xmm131308        paddd   xmm9, xmm141309        pxor    xmm5, xmm101310        pxor    xmm6, xmm111311        pxor    xmm7, xmm81312        pxor    xmm4, xmm91313        movdqa  xmmword ptr [rsp+0x100], xmm81314        movdqa  xmm8, xmm51315        psrld   xmm8, 121316        pslld   xmm5, 201317        por     xmm5, xmm81318        movdqa  xmm8, xmm61319        psrld   xmm8, 121320        pslld   xmm6, 201321        por     xmm6, xmm81322        movdqa  xmm8, xmm71323        psrld   xmm8, 121324        pslld   xmm7, 201325        por     xmm7, xmm81326        movdqa  xmm8, xmm41327        psrld   xmm8, 121328        pslld   xmm4, 201329        por     xmm4, xmm81330        paddd   xmm0, xmmword ptr [rsp+0x30]1331        paddd   xmm1, xmmword ptr [rsp+0xA0]1332        paddd   xmm2, xmmword ptr [rsp+0x60]1333        paddd   xmm3, xmmword ptr [rsp+0x70]1334        paddd   xmm0, xmm51335        paddd   xmm1, xmm61336        paddd   xmm2, xmm71337        paddd   xmm3, xmm41338        pxor    xmm15, xmm01339        pxor    xmm12, xmm11340        pxor    xmm13, xmm21341        pxor    xmm14, xmm31342        movdqa  xmm8, xmm151343        psrld   xmm15, 81344        pslld   xmm8, 241345        pxor    xmm15, xmm81346        movdqa  xmm8, xmm121347        psrld   xmm12, 81348        pslld   xmm8, 241349        pxor    xmm12, xmm81350        movdqa  xmm8, xmm131351        psrld   xmm13, 81352        pslld   xmm8, 241353        pxor    xmm13, xmm81354        movdqa  xmm8, xmm141355        psrld   xmm14, 81356        pslld   xmm8, 241357        pxor    xmm14, xmm81358        paddd   xmm10, xmm151359        paddd   xmm11, xmm121360        movdqa  xmm8, xmmword ptr [rsp+0x100]1361        paddd   xmm8, xmm131362        paddd   xmm9, xmm141363        pxor    xmm5, xmm101364        pxor    xmm6, xmm111365        pxor    xmm7, xmm81366        pxor    xmm4, xmm91367        movdqa  xmmword ptr [rsp+0x100], xmm81368        movdqa  xmm8, xmm51369        psrld   xmm8, 71370        pslld   xmm5, 251371        por     xmm5, xmm81372        movdqa  xmm8, xmm61373        psrld   xmm8, 71374        pslld   xmm6, 251375        por     xmm6, xmm81376        movdqa  xmm8, xmm71377        psrld   xmm8, 71378        pslld   xmm7, 251379        por     xmm7, xmm81380        movdqa  xmm8, xmm41381        psrld   xmm8, 71382        pslld   xmm4, 251383        por     xmm4, xmm81384        paddd   xmm0, xmmword ptr [rsp+0xB0]1385        paddd   xmm1, xmmword ptr [rsp+0x50]1386        paddd   xmm2, xmmword ptr [rsp+0x10]1387        paddd   xmm3, xmmword ptr [rsp+0x80]1388        paddd   xmm0, xmm41389        paddd   xmm1, xmm51390        paddd   xmm2, xmm61391        paddd   xmm3, xmm71392        pxor    xmm12, xmm01393        pxor    xmm13, xmm11394        pxor    xmm14, xmm21395        pxor    xmm15, xmm31396        pshuflw xmm12, xmm12, 0xB11397        pshufhw xmm12, xmm12, 0xB11398        pshuflw xmm13, xmm13, 0xB11399        pshufhw xmm13, xmm13, 0xB11400        pshuflw xmm14, xmm14, 0xB11401        pshufhw xmm14, xmm14, 0xB11402        pshuflw xmm15, xmm15, 0xB11403        pshufhw xmm15, xmm15, 0xB11404        movdqa  xmm8, xmmword ptr [rsp+0x100]1405        paddd   xmm8, xmm121406        paddd   xmm9, xmm131407        paddd   xmm10, xmm141408        paddd   xmm11, xmm151409        pxor    xmm4, xmm81410        pxor    xmm5, xmm91411        pxor    xmm6, xmm101412        pxor    xmm7, xmm111413        movdqa  xmmword ptr [rsp+0x100], xmm81414        movdqa  xmm8, xmm41415        psrld   xmm8, 121416        pslld   xmm4, 201417        por     xmm4, xmm81418        movdqa  xmm8, xmm51419        psrld   xmm8, 121420        pslld   xmm5, 201421        por     xmm5, xmm81422        movdqa  xmm8, xmm61423        psrld   xmm8, 121424        pslld   xmm6, 201425        por     xmm6, xmm81426        movdqa  xmm8, xmm71427        psrld   xmm8, 121428        pslld   xmm7, 201429        por     xmm7, xmm81430        paddd   xmm0, xmmword ptr [rsp+0xF0]1431        paddd   xmm1, xmmword ptr [rsp]1432        paddd   xmm2, xmmword ptr [rsp+0x90]1433        paddd   xmm3, xmmword ptr [rsp+0x60]1434        paddd   xmm0, xmm41435        paddd   xmm1, xmm51436        paddd   xmm2, xmm61437        paddd   xmm3, xmm71438        pxor    xmm12, xmm01439        pxor    xmm13, xmm11440        pxor    xmm14, xmm21441        pxor    xmm15, xmm31442        movdqa  xmm8, xmm121443        psrld   xmm12, 81444        pslld   xmm8, 241445        pxor    xmm12, xmm81446        movdqa  xmm8, xmm131447        psrld   xmm13, 81448        pslld   xmm8, 241449        pxor    xmm13, xmm81450        movdqa  xmm8, xmm141451        psrld   xmm14, 81452        pslld   xmm8, 241453        pxor    xmm14, xmm81454        movdqa  xmm8, xmm151455        psrld   xmm15, 81456        pslld   xmm8, 241457        pxor    xmm15, xmm81458        movdqa  xmm8, xmmword ptr [rsp+0x100]1459        paddd   xmm8, xmm121460        paddd   xmm9, xmm131461        paddd   xmm10, xmm141462        paddd   xmm11, xmm151463        pxor    xmm4, xmm81464        pxor    xmm5, xmm91465        pxor    xmm6, xmm101466        pxor    xmm7, xmm111467        movdqa  xmmword ptr [rsp+0x100], xmm81468        movdqa  xmm8, xmm41469        psrld   xmm8, 71470        pslld   xmm4, 251471        por     xmm4, xmm81472        movdqa  xmm8, xmm51473        psrld   xmm8, 71474        pslld   xmm5, 251475        por     xmm5, xmm81476        movdqa  xmm8, xmm61477        psrld   xmm8, 71478        pslld   xmm6, 251479        por     xmm6, xmm81480        movdqa  xmm8, xmm71481        psrld   xmm8, 71482        pslld   xmm7, 251483        por     xmm7, xmm81484        paddd   xmm0, xmmword ptr [rsp+0xE0]1485        paddd   xmm1, xmmword ptr [rsp+0x20]1486        paddd   xmm2, xmmword ptr [rsp+0x30]1487        paddd   xmm3, xmmword ptr [rsp+0x70]1488        paddd   xmm0, xmm51489        paddd   xmm1, xmm61490        paddd   xmm2, xmm71491        paddd   xmm3, xmm41492        pxor    xmm15, xmm01493        pxor    xmm12, xmm11494        pxor    xmm13, xmm21495        pxor    xmm14, xmm31496        pshuflw xmm15, xmm15, 0xB11497        pshufhw xmm15, xmm15, 0xB11498        pshuflw xmm12, xmm12, 0xB11499        pshufhw xmm12, xmm12, 0xB11500        pshuflw xmm13, xmm13, 0xB11501        pshufhw xmm13, xmm13, 0xB11502        pshuflw xmm14, xmm14, 0xB11503        pshufhw xmm14, xmm14, 0xB11504        paddd   xmm10, xmm151505        paddd   xmm11, xmm121506        movdqa  xmm8, xmmword ptr [rsp+0x100]1507        paddd   xmm8, xmm131508        paddd   xmm9, xmm141509        pxor    xmm5, xmm101510        pxor    xmm6, xmm111511        pxor    xmm7, xmm81512        pxor    xmm4, xmm91513        movdqa  xmmword ptr [rsp+0x100], xmm81514        movdqa  xmm8, xmm51515        psrld   xmm8, 121516        pslld   xmm5, 201517        por     xmm5, xmm81518        movdqa  xmm8, xmm61519        psrld   xmm8, 121520        pslld   xmm6, 201521        por     xmm6, xmm81522        movdqa  xmm8, xmm71523        psrld   xmm8, 121524        pslld   xmm7, 201525        por     xmm7, xmm81526        movdqa  xmm8, xmm41527        psrld   xmm8, 121528        pslld   xmm4, 201529        por     xmm4, xmm81530        paddd   xmm0, xmmword ptr [rsp+0xA0]1531        paddd   xmm1, xmmword ptr [rsp+0xC0]1532        paddd   xmm2, xmmword ptr [rsp+0x40]1533        paddd   xmm3, xmmword ptr [rsp+0xD0]1534        paddd   xmm0, xmm51535        paddd   xmm1, xmm61536        paddd   xmm2, xmm71537        paddd   xmm3, xmm41538        pxor    xmm15, xmm01539        pxor    xmm12, xmm11540        pxor    xmm13, xmm21541        pxor    xmm14, xmm31542        movdqa  xmm8, xmm151543        psrld   xmm15, 81544        pslld   xmm8, 241545        pxor    xmm15, xmm81546        movdqa  xmm8, xmm121547        psrld   xmm12, 81548        pslld   xmm8, 241549        pxor    xmm12, xmm81550        movdqa  xmm8, xmm131551        psrld   xmm13, 81552        pslld   xmm8, 241553        pxor    xmm13, xmm81554        movdqa  xmm8, xmm141555        psrld   xmm14, 81556        pslld   xmm8, 241557        pxor    xmm14, xmm81558        paddd   xmm10, xmm151559        paddd   xmm11, xmm121560        movdqa  xmm8, xmmword ptr [rsp+0x100]1561        paddd   xmm8, xmm131562        paddd   xmm9, xmm141563        pxor    xmm5, xmm101564        pxor    xmm6, xmm111565        pxor    xmm7, xmm81566        pxor    xmm4, xmm91567        pxor    xmm0, xmm81568        pxor    xmm1, xmm91569        pxor    xmm2, xmm101570        pxor    xmm3, xmm111571        movdqa  xmm8, xmm51572        psrld   xmm8, 71573        pslld   xmm5, 251574        por     xmm5, xmm81575        movdqa  xmm8, xmm61576        psrld   xmm8, 71577        pslld   xmm6, 251578        por     xmm6, xmm81579        movdqa  xmm8, xmm71580        psrld   xmm8, 71581        pslld   xmm7, 251582        por     xmm7, xmm81583        movdqa  xmm8, xmm41584        psrld   xmm8, 71585        pslld   xmm4, 251586        por     xmm4, xmm81587        pxor    xmm4, xmm121588        pxor    xmm5, xmm131589        pxor    xmm6, xmm141590        pxor    xmm7, xmm151591        mov     eax, r13d1592        jne     9b1593        movdqa  xmm9, xmm01594        punpckldq xmm0, xmm11595        punpckhdq xmm9, xmm11596        movdqa  xmm11, xmm21597        punpckldq xmm2, xmm31598        punpckhdq xmm11, xmm31599        movdqa  xmm1, xmm01600        punpcklqdq xmm0, xmm21601        punpckhqdq xmm1, xmm21602        movdqa  xmm3, xmm91603        punpcklqdq xmm9, xmm111604        punpckhqdq xmm3, xmm111605        movdqu  xmmword ptr [rbx], xmm01606        movdqu  xmmword ptr [rbx+0x20], xmm11607        movdqu  xmmword ptr [rbx+0x40], xmm91608        movdqu  xmmword ptr [rbx+0x60], xmm31609        movdqa  xmm9, xmm41610        punpckldq xmm4, xmm51611        punpckhdq xmm9, xmm51612        movdqa  xmm11, xmm61613        punpckldq xmm6, xmm71614        punpckhdq xmm11, xmm71615        movdqa  xmm5, xmm41616        punpcklqdq xmm4, xmm61617        punpckhqdq xmm5, xmm61618        movdqa  xmm7, xmm91619        punpcklqdq xmm9, xmm111620        punpckhqdq xmm7, xmm111621        movdqu  xmmword ptr [rbx+0x10], xmm41622        movdqu  xmmword ptr [rbx+0x30], xmm51623        movdqu  xmmword ptr [rbx+0x50], xmm91624        movdqu  xmmword ptr [rbx+0x70], xmm71625        movdqa  xmm1, xmmword ptr [rsp+0x110]1626        movdqa  xmm0, xmm11627        paddd   xmm1, xmmword ptr [rsp+0x150]1628        movdqa  xmmword ptr [rsp+0x110], xmm11629        pxor    xmm0, xmmword ptr [CMP_MSB_MASK+rip]1630        pxor    xmm1, xmmword ptr [CMP_MSB_MASK+rip]1631        pcmpgtd xmm0, xmm11632        movdqa  xmm1, xmmword ptr [rsp+0x120]1633        psubd   xmm1, xmm01634        movdqa  xmmword ptr [rsp+0x120], xmm11635        add     rbx, 1281636        add     rdi, 321637        sub     rsi, 41638        cmp     rsi, 41639        jnc     2b1640        test    rsi, rsi1641        jne     3f16424:1643        movdqa  xmm6, xmmword ptr [rsp+0x170]1644        movdqa  xmm7, xmmword ptr [rsp+0x180]1645        movdqa  xmm8, xmmword ptr [rsp+0x190]1646        movdqa  xmm9, xmmword ptr [rsp+0x1A0]1647        movdqa  xmm10, xmmword ptr [rsp+0x1B0]1648        movdqa  xmm11, xmmword ptr [rsp+0x1C0]1649        movdqa  xmm12, xmmword ptr [rsp+0x1D0]1650        movdqa  xmm13, xmmword ptr [rsp+0x1E0]1651        movdqa  xmm14, xmmword ptr [rsp+0x1F0]1652        movdqa  xmm15, xmmword ptr [rsp+0x200]1653        mov     rsp, rbp1654        pop     rbp1655        pop     rbx1656        pop     rdi1657        pop     rsi1658        pop     r121659        pop     r131660        pop     r141661        pop     r151662        ret1663.p2align 516643:1665        test    esi, 0x21666        je      3f1667        movups  xmm0, xmmword ptr [rcx]1668        movups  xmm1, xmmword ptr [rcx+0x10]1669        movaps  xmm8, xmm01670        movaps  xmm9, xmm11671        movd    xmm13, dword ptr [rsp+0x110]1672        movd    xmm14, dword ptr [rsp+0x120]1673        punpckldq xmm13, xmm141674        movaps  xmmword ptr [rsp], xmm131675        movd    xmm14, dword ptr [rsp+0x114]1676        movd    xmm13, dword ptr [rsp+0x124]1677        punpckldq xmm14, xmm131678        movaps  xmmword ptr [rsp+0x10], xmm141679        mov     r8, qword ptr [rdi]1680        mov     r9, qword ptr [rdi+0x8]1681        movzx   eax, byte ptr [rbp+0x80]1682        or      eax, r13d1683        xor     edx, edx16842:1685        mov     r14d, eax1686        or      eax, r12d1687        add     rdx, 641688        cmp     rdx, r151689        cmovne  eax, r14d1690        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]1691        movaps  xmm10, xmm21692        movups  xmm4, xmmword ptr [r8+rdx-0x40]1693        movups  xmm5, xmmword ptr [r8+rdx-0x30]1694        movaps  xmm3, xmm41695        shufps  xmm4, xmm5, 1361696        shufps  xmm3, xmm5, 2211697        movaps  xmm5, xmm31698        movups  xmm6, xmmword ptr [r8+rdx-0x20]1699        movups  xmm7, xmmword ptr [r8+rdx-0x10]1700        movaps  xmm3, xmm61701        shufps  xmm6, xmm7, 1361702        pshufd  xmm6, xmm6, 0x931703        shufps  xmm3, xmm7, 2211704        pshufd  xmm7, xmm3, 0x931705        movups  xmm12, xmmword ptr [r9+rdx-0x40]1706        movups  xmm13, xmmword ptr [r9+rdx-0x30]1707        movaps  xmm11, xmm121708        shufps  xmm12, xmm13, 1361709        shufps  xmm11, xmm13, 2211710        movaps  xmm13, xmm111711        movups  xmm14, xmmword ptr [r9+rdx-0x20]1712        movups  xmm15, xmmword ptr [r9+rdx-0x10]1713        movaps  xmm11, xmm141714        shufps  xmm14, xmm15, 1361715        pshufd  xmm14, xmm14, 0x931716        shufps  xmm11, xmm15, 2211717        pshufd  xmm15, xmm11, 0x931718        shl     rax, 0x201719        or      rax, 0x401720        movq    xmm3, rax1721        movdqa  xmmword ptr [rsp+0x20], xmm31722        movaps  xmm3, xmmword ptr [rsp]1723        movaps  xmm11, xmmword ptr [rsp+0x10]1724        punpcklqdq xmm3, xmmword ptr [rsp+0x20]1725        punpcklqdq xmm11, xmmword ptr [rsp+0x20]1726        mov     al, 717279:1728        paddd   xmm0, xmm41729        paddd   xmm8, xmm121730        movaps  xmmword ptr [rsp+0x20], xmm41731        movaps  xmmword ptr [rsp+0x30], xmm121732        paddd   xmm0, xmm11733        paddd   xmm8, xmm91734        pxor    xmm3, xmm01735        pxor    xmm11, xmm81736        pshuflw xmm3, xmm3, 0xB11737        pshufhw xmm3, xmm3, 0xB11738        pshuflw xmm11, xmm11, 0xB11739        pshufhw xmm11, xmm11, 0xB11740        paddd   xmm2, xmm31741        paddd   xmm10, xmm111742        pxor    xmm1, xmm21743        pxor    xmm9, xmm101744        movdqa  xmm4, xmm11745        pslld   xmm1, 201746        psrld   xmm4, 121747        por     xmm1, xmm41748        movdqa  xmm4, xmm91749        pslld   xmm9, 201750        psrld   xmm4, 121751        por     xmm9, xmm41752        paddd   xmm0, xmm51753        paddd   xmm8, xmm131754        movaps  xmmword ptr [rsp+0x40], xmm51755        movaps  xmmword ptr [rsp+0x50], xmm131756        paddd   xmm0, xmm11757        paddd   xmm8, xmm91758        pxor    xmm3, xmm01759        pxor    xmm11, xmm81760        movdqa  xmm13, xmm31761        psrld   xmm3, 81762        pslld   xmm13, 241763        pxor    xmm3, xmm131764        movdqa  xmm13, xmm111765        psrld   xmm11, 81766        pslld   xmm13, 241767        pxor    xmm11, xmm131768        paddd   xmm2, xmm31769        paddd   xmm10, xmm111770        pxor    xmm1, xmm21771        pxor    xmm9, xmm101772        movdqa  xmm4, xmm11773        pslld   xmm1, 251774        psrld   xmm4, 71775        por     xmm1, xmm41776        movdqa  xmm4, xmm91777        pslld   xmm9, 251778        psrld   xmm4, 71779        por     xmm9, xmm41780        pshufd  xmm0, xmm0, 0x931781        pshufd  xmm8, xmm8, 0x931782        pshufd  xmm3, xmm3, 0x4E1783        pshufd  xmm11, xmm11, 0x4E1784        pshufd  xmm2, xmm2, 0x391785        pshufd  xmm10, xmm10, 0x391786        paddd   xmm0, xmm61787        paddd   xmm8, xmm141788        paddd   xmm0, xmm11789        paddd   xmm8, xmm91790        pxor    xmm3, xmm01791        pxor    xmm11, xmm81792        pshuflw xmm3, xmm3, 0xB11793        pshufhw xmm3, xmm3, 0xB11794        pshuflw xmm11, xmm11, 0xB11795        pshufhw xmm11, xmm11, 0xB11796        paddd   xmm2, xmm31797        paddd   xmm10, xmm111798        pxor    xmm1, xmm21799        pxor    xmm9, xmm101800        movdqa  xmm4, xmm11801        pslld   xmm1, 201802        psrld   xmm4, 121803        por     xmm1, xmm41804        movdqa  xmm4, xmm91805        pslld   xmm9, 201806        psrld   xmm4, 121807        por     xmm9, xmm41808        paddd   xmm0, xmm71809        paddd   xmm8, xmm151810        paddd   xmm0, xmm11811        paddd   xmm8, xmm91812        pxor    xmm3, xmm01813        pxor    xmm11, xmm81814        movdqa  xmm13, xmm31815        psrld   xmm3, 81816        pslld   xmm13, 241817        pxor    xmm3, xmm131818        movdqa  xmm13, xmm111819        psrld   xmm11, 81820        pslld   xmm13, 241821        pxor    xmm11, xmm131822        paddd   xmm2, xmm31823        paddd   xmm10, xmm111824        pxor    xmm1, xmm21825        pxor    xmm9, xmm101826        movdqa  xmm4, xmm11827        pslld   xmm1, 251828        psrld   xmm4, 71829        por     xmm1, xmm41830        movdqa  xmm4, xmm91831        pslld   xmm9, 251832        psrld   xmm4, 71833        por     xmm9, xmm41834        pshufd  xmm0, xmm0, 0x391835        pshufd  xmm8, xmm8, 0x391836        pshufd  xmm3, xmm3, 0x4E1837        pshufd  xmm11, xmm11, 0x4E1838        pshufd  xmm2, xmm2, 0x931839        pshufd  xmm10, xmm10, 0x931840        dec     al1841        je      9f1842        movdqa  xmm12, xmmword ptr [rsp+0x20]1843        movdqa  xmm5, xmmword ptr [rsp+0x40]1844        pshufd  xmm13, xmm12, 0x0F1845        shufps  xmm12, xmm5, 2141846        pshufd  xmm4, xmm12, 0x391847        movdqa  xmm12, xmm61848        shufps  xmm12, xmm7, 2501849        pand    xmm13, xmmword ptr [PBLENDW_0x33_MASK+rip]1850        pand    xmm12, xmmword ptr [PBLENDW_0xCC_MASK+rip]1851        por     xmm13, xmm121852        movdqa  xmmword ptr [rsp+0x20], xmm131853        movdqa  xmm12, xmm71854        punpcklqdq xmm12, xmm51855        movdqa  xmm13, xmm61856        pand    xmm12, xmmword ptr [PBLENDW_0x3F_MASK+rip]1857        pand    xmm13, xmmword ptr [PBLENDW_0xC0_MASK+rip]1858        por     xmm12, xmm131859        pshufd  xmm12, xmm12, 0x781860        punpckhdq xmm5, xmm71861        punpckldq xmm6, xmm51862        pshufd  xmm7, xmm6, 0x1E1863        movdqa  xmmword ptr [rsp+0x40], xmm121864        movdqa  xmm5, xmmword ptr [rsp+0x30]1865        movdqa  xmm13, xmmword ptr [rsp+0x50]1866        pshufd  xmm6, xmm5, 0x0F1867        shufps  xmm5, xmm13, 2141868        pshufd  xmm12, xmm5, 0x391869        movdqa  xmm5, xmm141870        shufps  xmm5, xmm15, 2501871        pand    xmm6, xmmword ptr [PBLENDW_0x33_MASK+rip]1872        pand    xmm5, xmmword ptr [PBLENDW_0xCC_MASK+rip]1873        por     xmm6, xmm51874        movdqa  xmm5, xmm151875        punpcklqdq xmm5, xmm131876        movdqa  xmmword ptr [rsp+0x30], xmm21877        movdqa  xmm2, xmm141878        pand    xmm5, xmmword ptr [PBLENDW_0x3F_MASK+rip]1879        pand    xmm2, xmmword ptr [PBLENDW_0xC0_MASK+rip]1880        por     xmm5, xmm21881        movdqa  xmm2, xmmword ptr [rsp+0x30]1882        pshufd  xmm5, xmm5, 0x781883        punpckhdq xmm13, xmm151884        punpckldq xmm14, xmm131885        pshufd  xmm15, xmm14, 0x1E1886        movdqa  xmm13, xmm61887        movdqa  xmm14, xmm51888        movdqa  xmm5, xmmword ptr [rsp+0x20]1889        movdqa  xmm6, xmmword ptr [rsp+0x40]1890        jmp     9b18919:1892        pxor    xmm0, xmm21893        pxor    xmm1, xmm31894        pxor    xmm8, xmm101895        pxor    xmm9, xmm111896        mov     eax, r13d1897        cmp     rdx, r151898        jne     2b1899        movups  xmmword ptr [rbx], xmm01900        movups  xmmword ptr [rbx+0x10], xmm11901        movups  xmmword ptr [rbx+0x20], xmm81902        movups  xmmword ptr [rbx+0x30], xmm91903        mov     eax, dword ptr [rsp+0x130]1904        neg     eax1905        mov    r10d, dword ptr [rsp+0x110+8*rax]1906        mov    r11d, dword ptr [rsp+0x120+8*rax]1907        mov dword ptr [rsp+0x110], r10d1908        mov dword ptr [rsp+0x120], r11d1909        add     rdi, 161910        add     rbx, 641911        sub     rsi, 219123:1913        test    esi, 0x11914        je      4b1915        movups  xmm0, xmmword ptr [rcx]1916        movups  xmm1, xmmword ptr [rcx+0x10]1917        movd    xmm13, dword ptr [rsp+0x110]1918        movd    xmm14, dword ptr [rsp+0x120]1919        punpckldq xmm13, xmm141920        mov     r8, qword ptr [rdi]1921        movzx   eax, byte ptr [rbp+0x80]1922        or      eax, r13d1923        xor     edx, edx19242:1925        mov     r14d, eax1926        or      eax, r12d1927        add     rdx, 641928        cmp     rdx, r151929        cmovne  eax, r14d1930        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]1931        shl     rax, 321932        or      rax, 641933        movq    xmm12, rax1934        movdqa  xmm3, xmm131935        punpcklqdq xmm3, xmm121936        movups  xmm4, xmmword ptr [r8+rdx-0x40]1937        movups  xmm5, xmmword ptr [r8+rdx-0x30]1938        movaps  xmm8, xmm41939        shufps  xmm4, xmm5, 1361940        shufps  xmm8, xmm5, 2211941        movaps  xmm5, xmm81942        movups  xmm6, xmmword ptr [r8+rdx-0x20]1943        movups  xmm7, xmmword ptr [r8+rdx-0x10]1944        movaps  xmm8, xmm61945        shufps  xmm6, xmm7, 1361946        pshufd  xmm6, xmm6, 0x931947        shufps  xmm8, xmm7, 2211948        pshufd  xmm7, xmm8, 0x931949        mov     al, 719509:1951        paddd   xmm0, xmm41952        paddd   xmm0, xmm11953        pxor    xmm3, xmm01954        pshuflw xmm3, xmm3, 0xB11955        pshufhw xmm3, xmm3, 0xB11956        paddd   xmm2, xmm31957        pxor    xmm1, xmm21958        movdqa  xmm11, xmm11959        pslld   xmm1, 201960        psrld   xmm11, 121961        por     xmm1, xmm111962        paddd   xmm0, xmm51963        paddd   xmm0, xmm11964        pxor    xmm3, xmm01965        movdqa  xmm14, xmm31966        psrld   xmm3, 81967        pslld   xmm14, 241968        pxor    xmm3, xmm141969        paddd   xmm2, xmm31970        pxor    xmm1, xmm21971        movdqa  xmm11, xmm11972        pslld   xmm1, 251973        psrld   xmm11, 71974        por     xmm1, xmm111975        pshufd  xmm0, xmm0, 0x931976        pshufd  xmm3, xmm3, 0x4E1977        pshufd  xmm2, xmm2, 0x391978        paddd   xmm0, xmm61979        paddd   xmm0, xmm11980        pxor    xmm3, xmm01981        pshuflw xmm3, xmm3, 0xB11982        pshufhw xmm3, xmm3, 0xB11983        paddd   xmm2, xmm31984        pxor    xmm1, xmm21985        movdqa  xmm11, xmm11986        pslld   xmm1, 201987        psrld   xmm11, 121988        por     xmm1, xmm111989        paddd   xmm0, xmm71990        paddd   xmm0, xmm11991        pxor    xmm3, xmm01992        movdqa  xmm14, xmm31993        psrld   xmm3, 81994        pslld   xmm14, 241995        pxor    xmm3, xmm141996        paddd   xmm2, xmm31997        pxor    xmm1, xmm21998        movdqa  xmm11, xmm11999        pslld   xmm1, 252000        psrld   xmm11, 72001        por     xmm1, xmm112002        pshufd  xmm0, xmm0, 0x392003        pshufd  xmm3, xmm3, 0x4E2004        pshufd  xmm2, xmm2, 0x932005        dec     al2006        jz      9f2007        movdqa  xmm8, xmm42008        shufps  xmm8, xmm5, 2142009        pshufd  xmm9, xmm4, 0x0F2010        pshufd  xmm4, xmm8, 0x392011        movdqa  xmm8, xmm62012        shufps  xmm8, xmm7, 2502013        pand    xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2014        pand    xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2015        por     xmm9, xmm82016        movdqa  xmm8, xmm72017        punpcklqdq xmm8, xmm52018        movdqa  xmm10, xmm62019        pand    xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2020        pand    xmm10, xmmword ptr [PBLENDW_0xC0_MASK+rip]2021        por     xmm8, xmm102022        pshufd  xmm8, xmm8, 0x782023        punpckhdq xmm5, xmm72024        punpckldq xmm6, xmm52025        pshufd  xmm7, xmm6, 0x1E2026        movdqa  xmm5, xmm92027        movdqa  xmm6, xmm82028        jmp     9b20299:2030        pxor    xmm0, xmm22031        pxor    xmm1, xmm32032        mov     eax, r13d2033        cmp     rdx, r152034        jne     2b2035        movups  xmmword ptr [rbx], xmm02036        movups  xmmword ptr [rbx+0x10], xmm12037        jmp     4b2038 2039.p2align 62040blake3_compress_in_place_sse2:2041_blake3_compress_in_place_sse2:2042        sub     rsp, 1202043        movdqa  xmmword ptr [rsp], xmm62044        movdqa  xmmword ptr [rsp+0x10], xmm72045        movdqa  xmmword ptr [rsp+0x20], xmm82046        movdqa  xmmword ptr [rsp+0x30], xmm92047        movdqa  xmmword ptr [rsp+0x40], xmm112048        movdqa  xmmword ptr [rsp+0x50], xmm142049        movdqa  xmmword ptr [rsp+0x60], xmm152050        movups  xmm0, xmmword ptr [rcx]2051        movups  xmm1, xmmword ptr [rcx+0x10]2052        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]2053        movzx   eax, byte ptr [rsp+0xA0]2054        movzx   r8d, r8b2055        shl     rax, 322056        add     r8, rax2057        movq    xmm3, r92058        movq    xmm4, r82059        punpcklqdq xmm3, xmm42060        movups  xmm4, xmmword ptr [rdx]2061        movups  xmm5, xmmword ptr [rdx+0x10]2062        movaps  xmm8, xmm42063        shufps  xmm4, xmm5, 1362064        shufps  xmm8, xmm5, 2212065        movaps  xmm5, xmm82066        movups  xmm6, xmmword ptr [rdx+0x20]2067        movups  xmm7, xmmword ptr [rdx+0x30]2068        movaps  xmm8, xmm62069        shufps  xmm6, xmm7, 1362070        pshufd  xmm6, xmm6, 0x932071        shufps  xmm8, xmm7, 2212072        pshufd  xmm7, xmm8, 0x932073        mov     al, 720749:2075        paddd   xmm0, xmm42076        paddd   xmm0, xmm12077        pxor    xmm3, xmm02078        pshuflw xmm3, xmm3, 0xB12079        pshufhw xmm3, xmm3, 0xB12080        paddd   xmm2, xmm32081        pxor    xmm1, xmm22082        movdqa  xmm11, xmm12083        pslld   xmm1, 202084        psrld   xmm11, 122085        por     xmm1, xmm112086        paddd   xmm0, xmm52087        paddd   xmm0, xmm12088        pxor    xmm3, xmm02089        movdqa  xmm14, xmm32090        psrld   xmm3, 82091        pslld   xmm14, 242092        pxor    xmm3, xmm142093        paddd   xmm2, xmm32094        pxor    xmm1, xmm22095        movdqa  xmm11, xmm12096        pslld   xmm1, 252097        psrld   xmm11, 72098        por     xmm1, xmm112099        pshufd  xmm0, xmm0, 0x932100        pshufd  xmm3, xmm3, 0x4E2101        pshufd  xmm2, xmm2, 0x392102        paddd   xmm0, xmm62103        paddd   xmm0, xmm12104        pxor    xmm3, xmm02105        pshuflw xmm3, xmm3, 0xB12106        pshufhw xmm3, xmm3, 0xB12107        paddd   xmm2, xmm32108        pxor    xmm1, xmm22109        movdqa  xmm11, xmm12110        pslld   xmm1, 202111        psrld   xmm11, 122112        por     xmm1, xmm112113        paddd   xmm0, xmm72114        paddd   xmm0, xmm12115        pxor    xmm3, xmm02116        movdqa  xmm14, xmm32117        psrld   xmm3, 82118        pslld   xmm14, 242119        pxor    xmm3, xmm142120        paddd   xmm2, xmm32121        pxor    xmm1, xmm22122        movdqa  xmm11, xmm12123        pslld   xmm1, 252124        psrld   xmm11, 72125        por     xmm1, xmm112126        pshufd  xmm0, xmm0, 0x392127        pshufd  xmm3, xmm3, 0x4E2128        pshufd  xmm2, xmm2, 0x932129        dec     al2130        jz      9f2131        movdqa  xmm8, xmm42132        shufps  xmm8, xmm5, 2142133        pshufd  xmm9, xmm4, 0x0F2134        pshufd  xmm4, xmm8, 0x392135        movdqa  xmm8, xmm62136        shufps  xmm8, xmm7, 2502137        pand    xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2138        pand    xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2139        por     xmm9, xmm82140        movdqa  xmm8, xmm72141        punpcklqdq xmm8, xmm52142        movdqa  xmm14, xmm62143        pand    xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2144        pand    xmm14, xmmword ptr [PBLENDW_0xC0_MASK+rip]2145        por     xmm8, xmm142146        pshufd  xmm8, xmm8, 0x782147        punpckhdq xmm5, xmm72148        punpckldq xmm6, xmm52149        pshufd  xmm7, xmm6, 0x1E2150        movdqa  xmm5, xmm92151        movdqa  xmm6, xmm82152        jmp     9b21539:2154        pxor    xmm0, xmm22155        pxor    xmm1, xmm32156        movups  xmmword ptr [rcx], xmm02157        movups  xmmword ptr [rcx+0x10], xmm12158        movdqa  xmm6, xmmword ptr [rsp]2159        movdqa  xmm7, xmmword ptr [rsp+0x10]2160        movdqa  xmm8, xmmword ptr [rsp+0x20]2161        movdqa  xmm9, xmmword ptr [rsp+0x30]2162        movdqa  xmm11, xmmword ptr [rsp+0x40]2163        movdqa  xmm14, xmmword ptr [rsp+0x50]2164        movdqa  xmm15, xmmword ptr [rsp+0x60]2165        add     rsp, 1202166        ret2167 2168 2169.p2align 62170_blake3_compress_xof_sse2:2171blake3_compress_xof_sse2:2172        sub     rsp, 1202173        movdqa  xmmword ptr [rsp], xmm62174        movdqa  xmmword ptr [rsp+0x10], xmm72175        movdqa  xmmword ptr [rsp+0x20], xmm82176        movdqa  xmmword ptr [rsp+0x30], xmm92177        movdqa  xmmword ptr [rsp+0x40], xmm112178        movdqa  xmmword ptr [rsp+0x50], xmm142179        movdqa  xmmword ptr [rsp+0x60], xmm152180        movups  xmm0, xmmword ptr [rcx]2181        movups  xmm1, xmmword ptr [rcx+0x10]2182        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]2183        movzx   eax, byte ptr [rsp+0xA0]2184        movzx   r8d, r8b2185        mov     r10, qword ptr [rsp+0xA8]2186        shl     rax, 322187        add     r8, rax2188        movq    xmm3, r92189        movq    xmm4, r82190        punpcklqdq xmm3, xmm42191        movups  xmm4, xmmword ptr [rdx]2192        movups  xmm5, xmmword ptr [rdx+0x10]2193        movaps  xmm8, xmm42194        shufps  xmm4, xmm5, 1362195        shufps  xmm8, xmm5, 2212196        movaps  xmm5, xmm82197        movups  xmm6, xmmword ptr [rdx+0x20]2198        movups  xmm7, xmmword ptr [rdx+0x30]2199        movaps  xmm8, xmm62200        shufps  xmm6, xmm7, 1362201        pshufd  xmm6, xmm6, 0x932202        shufps  xmm8, xmm7, 2212203        pshufd  xmm7, xmm8, 0x932204        mov     al, 722059:2206        paddd   xmm0, xmm42207        paddd   xmm0, xmm12208        pxor    xmm3, xmm02209        pshuflw xmm3, xmm3, 0xB12210        pshufhw xmm3, xmm3, 0xB12211        paddd   xmm2, xmm32212        pxor    xmm1, xmm22213        movdqa  xmm11, xmm12214        pslld   xmm1, 202215        psrld   xmm11, 122216        por     xmm1, xmm112217        paddd   xmm0, xmm52218        paddd   xmm0, xmm12219        pxor    xmm3, xmm02220        movdqa  xmm14, xmm32221        psrld   xmm3, 82222        pslld   xmm14, 242223        pxor    xmm3, xmm142224        paddd   xmm2, xmm32225        pxor    xmm1, xmm22226        movdqa  xmm11, xmm12227        pslld   xmm1, 252228        psrld   xmm11, 72229        por     xmm1, xmm112230        pshufd  xmm0, xmm0, 0x932231        pshufd  xmm3, xmm3, 0x4E2232        pshufd  xmm2, xmm2, 0x392233        paddd   xmm0, xmm62234        paddd   xmm0, xmm12235        pxor    xmm3, xmm02236        pshuflw xmm3, xmm3, 0xB12237        pshufhw xmm3, xmm3, 0xB12238        paddd   xmm2, xmm32239        pxor    xmm1, xmm22240        movdqa  xmm11, xmm12241        pslld   xmm1, 202242        psrld   xmm11, 122243        por     xmm1, xmm112244        paddd   xmm0, xmm72245        paddd   xmm0, xmm12246        pxor    xmm3, xmm02247        movdqa  xmm14, xmm32248        psrld   xmm3, 82249        pslld   xmm14, 242250        pxor    xmm3, xmm142251        paddd   xmm2, xmm32252        pxor    xmm1, xmm22253        movdqa  xmm11, xmm12254        pslld   xmm1, 252255        psrld   xmm11, 72256        por     xmm1, xmm112257        pshufd  xmm0, xmm0, 0x392258        pshufd  xmm3, xmm3, 0x4E2259        pshufd  xmm2, xmm2, 0x932260        dec     al2261        jz      9f2262        movdqa  xmm8, xmm42263        shufps  xmm8, xmm5, 2142264        pshufd  xmm9, xmm4, 0x0F2265        pshufd  xmm4, xmm8, 0x392266        movdqa  xmm8, xmm62267        shufps  xmm8, xmm7, 2502268        pand    xmm9, xmmword ptr [PBLENDW_0x33_MASK+rip]2269        pand    xmm8, xmmword ptr [PBLENDW_0xCC_MASK+rip]2270        por     xmm9, xmm82271        movdqa  xmm8, xmm72272        punpcklqdq xmm8, xmm52273        movdqa  xmm14, xmm62274        pand    xmm8, xmmword ptr [PBLENDW_0x3F_MASK+rip]2275        pand    xmm14, xmmword ptr [PBLENDW_0xC0_MASK+rip]2276        por     xmm8, xmm142277        pshufd  xmm8, xmm8, 0x782278        punpckhdq xmm5, xmm72279        punpckldq xmm6, xmm52280        pshufd  xmm7, xmm6, 0x1E2281        movdqa  xmm5, xmm92282        movdqa  xmm6, xmm82283        jmp     9b22849:2285        movdqu  xmm4, xmmword ptr [rcx]2286        movdqu  xmm5, xmmword ptr [rcx+0x10]2287        pxor    xmm0, xmm22288        pxor    xmm1, xmm32289        pxor    xmm2, xmm42290        pxor    xmm3, xmm52291        movups  xmmword ptr [r10], xmm02292        movups  xmmword ptr [r10+0x10], xmm12293        movups  xmmword ptr [r10+0x20], xmm22294        movups  xmmword ptr [r10+0x30], xmm32295        movdqa  xmm6, xmmword ptr [rsp]2296        movdqa  xmm7, xmmword ptr [rsp+0x10]2297        movdqa  xmm8, xmmword ptr [rsp+0x20]2298        movdqa  xmm9, xmmword ptr [rsp+0x30]2299        movdqa  xmm11, xmmword ptr [rsp+0x40]2300        movdqa  xmm14, xmmword ptr [rsp+0x50]2301        movdqa  xmm15, xmmword ptr [rsp+0x60]2302        add     rsp, 1202303        ret2304 2305 2306.section .rdata2307.p2align  62308BLAKE3_IV:2309        .long  0x6A09E667, 0xBB67AE852310        .long  0x3C6EF372, 0xA54FF53A2311ADD0:   2312        .long  0, 1, 2, 32313ADD1:2314        .long  4, 4, 4, 42315BLAKE3_IV_0:2316        .long  0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6672317BLAKE3_IV_1:2318        .long  0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE852319BLAKE3_IV_2:2320        .long  0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3722321BLAKE3_IV_3:2322        .long  0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A2323BLAKE3_BLOCK_LEN:2324        .long  64, 64, 64, 642325CMP_MSB_MASK:2326        .long  0x80000000, 0x80000000, 0x80000000, 0x800000002327PBLENDW_0x33_MASK:2328        .long  0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x000000002329PBLENDW_0xCC_MASK:2330        .long  0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF2331PBLENDW_0x3F_MASK:2332        .long  0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0x000000002333PBLENDW_0xC0_MASK:2334        .long  0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF2335