brintos

brintos / llvm-project-archived public Read only

0
0
Text · 69.4 KiB · 1069c8d Raw
2351 lines · plain
1public _llvm_blake3_hash_many_sse22public llvm_blake3_hash_many_sse23public llvm_blake3_compress_in_place_sse24public _llvm_blake3_compress_in_place_sse25public llvm_blake3_compress_xof_sse26public _llvm_blake3_compress_xof_sse27 8_TEXT   SEGMENT ALIGN(16) 'CODE'9 10ALIGN   1611llvm_blake3_hash_many_sse2 PROC12_llvm_blake3_hash_many_sse2 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        pshuflw xmm12, xmm12, 0B1H196        pshufhw xmm12, xmm12, 0B1H197        pshuflw xmm13, xmm13, 0B1H198        pshufhw xmm13, xmm13, 0B1H199        pshuflw xmm14, xmm14, 0B1H200        pshufhw xmm14, xmm14, 0B1H201        pshuflw xmm15, xmm15, 0B1H202        pshufhw xmm15, xmm15, 0B1H203        movdqa  xmm8, xmmword ptr [BLAKE3_IV_0]204        paddd   xmm8, xmm12205        paddd   xmm9, xmm13206        paddd   xmm10, xmm14207        paddd   xmm11, xmm15208        pxor    xmm4, xmm8209        pxor    xmm5, xmm9210        pxor    xmm6, xmm10211        pxor    xmm7, xmm11212        movdqa  xmmword ptr [rsp+100H], xmm8213        movdqa  xmm8, xmm4214        psrld   xmm8, 12215        pslld   xmm4, 20216        por     xmm4, xmm8217        movdqa  xmm8, xmm5218        psrld   xmm8, 12219        pslld   xmm5, 20220        por     xmm5, xmm8221        movdqa  xmm8, xmm6222        psrld   xmm8, 12223        pslld   xmm6, 20224        por     xmm6, xmm8225        movdqa  xmm8, xmm7226        psrld   xmm8, 12227        pslld   xmm7, 20228        por     xmm7, xmm8229        paddd   xmm0, xmmword ptr [rsp+10H]230        paddd   xmm1, xmmword ptr [rsp+30H]231        paddd   xmm2, xmmword ptr [rsp+50H]232        paddd   xmm3, xmmword ptr [rsp+70H]233        paddd   xmm0, xmm4234        paddd   xmm1, xmm5235        paddd   xmm2, xmm6236        paddd   xmm3, xmm7237        pxor    xmm12, xmm0238        pxor    xmm13, xmm1239        pxor    xmm14, xmm2240        pxor    xmm15, xmm3241        movdqa  xmm8, xmm12242        psrld   xmm12, 8243        pslld   xmm8, 24244        pxor    xmm12, xmm8245        movdqa  xmm8, xmm13246        psrld   xmm13, 8247        pslld   xmm8, 24248        pxor    xmm13, xmm8249        movdqa  xmm8, xmm14250        psrld   xmm14, 8251        pslld   xmm8, 24252        pxor    xmm14, xmm8253        movdqa  xmm8, xmm15254        psrld   xmm15, 8255        pslld   xmm8, 24256        pxor    xmm15, xmm8257        movdqa  xmm8, xmmword ptr [rsp+100H]258        paddd   xmm8, xmm12259        paddd   xmm9, xmm13260        paddd   xmm10, xmm14261        paddd   xmm11, xmm15262        pxor    xmm4, xmm8263        pxor    xmm5, xmm9264        pxor    xmm6, xmm10265        pxor    xmm7, xmm11266        movdqa  xmmword ptr [rsp+100H], xmm8267        movdqa  xmm8, xmm4268        psrld   xmm8, 7269        pslld   xmm4, 25270        por     xmm4, xmm8271        movdqa  xmm8, xmm5272        psrld   xmm8, 7273        pslld   xmm5, 25274        por     xmm5, xmm8275        movdqa  xmm8, xmm6276        psrld   xmm8, 7277        pslld   xmm6, 25278        por     xmm6, xmm8279        movdqa  xmm8, xmm7280        psrld   xmm8, 7281        pslld   xmm7, 25282        por     xmm7, xmm8283        paddd   xmm0, xmmword ptr [rsp+80H]284        paddd   xmm1, xmmword ptr [rsp+0A0H]285        paddd   xmm2, xmmword ptr [rsp+0C0H]286        paddd   xmm3, xmmword ptr [rsp+0E0H]287        paddd   xmm0, xmm5288        paddd   xmm1, xmm6289        paddd   xmm2, xmm7290        paddd   xmm3, xmm4291        pxor    xmm15, xmm0292        pxor    xmm12, xmm1293        pxor    xmm13, xmm2294        pxor    xmm14, xmm3295        pshuflw xmm15, xmm15, 0B1H296        pshufhw xmm15, xmm15, 0B1H297        pshuflw xmm12, xmm12, 0B1H298        pshufhw xmm12, xmm12, 0B1H299        pshuflw xmm13, xmm13, 0B1H300        pshufhw xmm13, xmm13, 0B1H301        pshuflw xmm14, xmm14, 0B1H302        pshufhw xmm14, xmm14, 0B1H303        paddd   xmm10, xmm15304        paddd   xmm11, xmm12305        movdqa  xmm8, xmmword ptr [rsp+100H]306        paddd   xmm8, xmm13307        paddd   xmm9, xmm14308        pxor    xmm5, xmm10309        pxor    xmm6, xmm11310        pxor    xmm7, xmm8311        pxor    xmm4, xmm9312        movdqa  xmmword ptr [rsp+100H], xmm8313        movdqa  xmm8, xmm5314        psrld   xmm8, 12315        pslld   xmm5, 20316        por     xmm5, xmm8317        movdqa  xmm8, xmm6318        psrld   xmm8, 12319        pslld   xmm6, 20320        por     xmm6, xmm8321        movdqa  xmm8, xmm7322        psrld   xmm8, 12323        pslld   xmm7, 20324        por     xmm7, xmm8325        movdqa  xmm8, xmm4326        psrld   xmm8, 12327        pslld   xmm4, 20328        por     xmm4, xmm8329        paddd   xmm0, xmmword ptr [rsp+90H]330        paddd   xmm1, xmmword ptr [rsp+0B0H]331        paddd   xmm2, xmmword ptr [rsp+0D0H]332        paddd   xmm3, xmmword ptr [rsp+0F0H]333        paddd   xmm0, xmm5334        paddd   xmm1, xmm6335        paddd   xmm2, xmm7336        paddd   xmm3, xmm4337        pxor    xmm15, xmm0338        pxor    xmm12, xmm1339        pxor    xmm13, xmm2340        pxor    xmm14, xmm3341        movdqa  xmm8, xmm15342        psrld   xmm15, 8343        pslld   xmm8, 24344        pxor    xmm15, xmm8345        movdqa  xmm8, xmm12346        psrld   xmm12, 8347        pslld   xmm8, 24348        pxor    xmm12, xmm8349        movdqa  xmm8, xmm13350        psrld   xmm13, 8351        pslld   xmm8, 24352        pxor    xmm13, xmm8353        movdqa  xmm8, xmm14354        psrld   xmm14, 8355        pslld   xmm8, 24356        pxor    xmm14, xmm8357        paddd   xmm10, xmm15358        paddd   xmm11, xmm12359        movdqa  xmm8, xmmword ptr [rsp+100H]360        paddd   xmm8, xmm13361        paddd   xmm9, xmm14362        pxor    xmm5, xmm10363        pxor    xmm6, xmm11364        pxor    xmm7, xmm8365        pxor    xmm4, xmm9366        movdqa  xmmword ptr [rsp+100H], xmm8367        movdqa  xmm8, xmm5368        psrld   xmm8, 7369        pslld   xmm5, 25370        por     xmm5, xmm8371        movdqa  xmm8, xmm6372        psrld   xmm8, 7373        pslld   xmm6, 25374        por     xmm6, xmm8375        movdqa  xmm8, xmm7376        psrld   xmm8, 7377        pslld   xmm7, 25378        por     xmm7, xmm8379        movdqa  xmm8, xmm4380        psrld   xmm8, 7381        pslld   xmm4, 25382        por     xmm4, xmm8383        paddd   xmm0, xmmword ptr [rsp+20H]384        paddd   xmm1, xmmword ptr [rsp+30H]385        paddd   xmm2, xmmword ptr [rsp+70H]386        paddd   xmm3, xmmword ptr [rsp+40H]387        paddd   xmm0, xmm4388        paddd   xmm1, xmm5389        paddd   xmm2, xmm6390        paddd   xmm3, xmm7391        pxor    xmm12, xmm0392        pxor    xmm13, xmm1393        pxor    xmm14, xmm2394        pxor    xmm15, xmm3395        pshuflw xmm12, xmm12, 0B1H396        pshufhw xmm12, xmm12, 0B1H397        pshuflw xmm13, xmm13, 0B1H398        pshufhw xmm13, xmm13, 0B1H399        pshuflw xmm14, xmm14, 0B1H400        pshufhw xmm14, xmm14, 0B1H401        pshuflw xmm15, xmm15, 0B1H402        pshufhw xmm15, xmm15, 0B1H403        movdqa  xmm8, xmmword ptr [rsp+100H]404        paddd   xmm8, xmm12405        paddd   xmm9, xmm13406        paddd   xmm10, xmm14407        paddd   xmm11, xmm15408        pxor    xmm4, xmm8409        pxor    xmm5, xmm9410        pxor    xmm6, xmm10411        pxor    xmm7, xmm11412        movdqa  xmmword ptr [rsp+100H], xmm8413        movdqa  xmm8, xmm4414        psrld   xmm8, 12415        pslld   xmm4, 20416        por     xmm4, xmm8417        movdqa  xmm8, xmm5418        psrld   xmm8, 12419        pslld   xmm5, 20420        por     xmm5, xmm8421        movdqa  xmm8, xmm6422        psrld   xmm8, 12423        pslld   xmm6, 20424        por     xmm6, xmm8425        movdqa  xmm8, xmm7426        psrld   xmm8, 12427        pslld   xmm7, 20428        por     xmm7, xmm8429        paddd   xmm0, xmmword ptr [rsp+60H]430        paddd   xmm1, xmmword ptr [rsp+0A0H]431        paddd   xmm2, xmmword ptr [rsp]432        paddd   xmm3, xmmword ptr [rsp+0D0H]433        paddd   xmm0, xmm4434        paddd   xmm1, xmm5435        paddd   xmm2, xmm6436        paddd   xmm3, xmm7437        pxor    xmm12, xmm0438        pxor    xmm13, xmm1439        pxor    xmm14, xmm2440        pxor    xmm15, xmm3441        movdqa  xmm8, xmm12442        psrld   xmm12, 8443        pslld   xmm8, 24444        pxor    xmm12, xmm8445        movdqa  xmm8, xmm13446        psrld   xmm13, 8447        pslld   xmm8, 24448        pxor    xmm13, xmm8449        movdqa  xmm8, xmm14450        psrld   xmm14, 8451        pslld   xmm8, 24452        pxor    xmm14, xmm8453        movdqa  xmm8, xmm15454        psrld   xmm15, 8455        pslld   xmm8, 24456        pxor    xmm15, xmm8457        movdqa  xmm8, xmmword ptr [rsp+100H]458        paddd   xmm8, xmm12459        paddd   xmm9, xmm13460        paddd   xmm10, xmm14461        paddd   xmm11, xmm15462        pxor    xmm4, xmm8463        pxor    xmm5, xmm9464        pxor    xmm6, xmm10465        pxor    xmm7, xmm11466        movdqa  xmmword ptr [rsp+100H], xmm8467        movdqa  xmm8, xmm4468        psrld   xmm8, 7469        pslld   xmm4, 25470        por     xmm4, xmm8471        movdqa  xmm8, xmm5472        psrld   xmm8, 7473        pslld   xmm5, 25474        por     xmm5, xmm8475        movdqa  xmm8, xmm6476        psrld   xmm8, 7477        pslld   xmm6, 25478        por     xmm6, xmm8479        movdqa  xmm8, xmm7480        psrld   xmm8, 7481        pslld   xmm7, 25482        por     xmm7, xmm8483        paddd   xmm0, xmmword ptr [rsp+10H]484        paddd   xmm1, xmmword ptr [rsp+0C0H]485        paddd   xmm2, xmmword ptr [rsp+90H]486        paddd   xmm3, xmmword ptr [rsp+0F0H]487        paddd   xmm0, xmm5488        paddd   xmm1, xmm6489        paddd   xmm2, xmm7490        paddd   xmm3, xmm4491        pxor    xmm15, xmm0492        pxor    xmm12, xmm1493        pxor    xmm13, xmm2494        pxor    xmm14, xmm3495        pshuflw xmm15, xmm15, 0B1H496        pshufhw xmm15, xmm15, 0B1H497        pshuflw xmm12, xmm12, 0B1H498        pshufhw xmm12, xmm12, 0B1H499        pshuflw xmm13, xmm13, 0B1H500        pshufhw xmm13, xmm13, 0B1H501        pshuflw xmm14, xmm14, 0B1H502        pshufhw xmm14, xmm14, 0B1H503        paddd   xmm10, xmm15504        paddd   xmm11, xmm12505        movdqa  xmm8, xmmword ptr [rsp+100H]506        paddd   xmm8, xmm13507        paddd   xmm9, xmm14508        pxor    xmm5, xmm10509        pxor    xmm6, xmm11510        pxor    xmm7, xmm8511        pxor    xmm4, xmm9512        movdqa  xmmword ptr [rsp+100H], xmm8513        movdqa  xmm8, xmm5514        psrld   xmm8, 12515        pslld   xmm5, 20516        por     xmm5, xmm8517        movdqa  xmm8, xmm6518        psrld   xmm8, 12519        pslld   xmm6, 20520        por     xmm6, xmm8521        movdqa  xmm8, xmm7522        psrld   xmm8, 12523        pslld   xmm7, 20524        por     xmm7, xmm8525        movdqa  xmm8, xmm4526        psrld   xmm8, 12527        pslld   xmm4, 20528        por     xmm4, xmm8529        paddd   xmm0, xmmword ptr [rsp+0B0H]530        paddd   xmm1, xmmword ptr [rsp+50H]531        paddd   xmm2, xmmword ptr [rsp+0E0H]532        paddd   xmm3, xmmword ptr [rsp+80H]533        paddd   xmm0, xmm5534        paddd   xmm1, xmm6535        paddd   xmm2, xmm7536        paddd   xmm3, xmm4537        pxor    xmm15, xmm0538        pxor    xmm12, xmm1539        pxor    xmm13, xmm2540        pxor    xmm14, xmm3541        movdqa  xmm8, xmm15542        psrld   xmm15, 8543        pslld   xmm8, 24544        pxor    xmm15, xmm8545        movdqa  xmm8, xmm12546        psrld   xmm12, 8547        pslld   xmm8, 24548        pxor    xmm12, xmm8549        movdqa  xmm8, xmm13550        psrld   xmm13, 8551        pslld   xmm8, 24552        pxor    xmm13, xmm8553        movdqa  xmm8, xmm14554        psrld   xmm14, 8555        pslld   xmm8, 24556        pxor    xmm14, xmm8557        paddd   xmm10, xmm15558        paddd   xmm11, xmm12559        movdqa  xmm8, xmmword ptr [rsp+100H]560        paddd   xmm8, xmm13561        paddd   xmm9, xmm14562        pxor    xmm5, xmm10563        pxor    xmm6, xmm11564        pxor    xmm7, xmm8565        pxor    xmm4, xmm9566        movdqa  xmmword ptr [rsp+100H], xmm8567        movdqa  xmm8, xmm5568        psrld   xmm8, 7569        pslld   xmm5, 25570        por     xmm5, xmm8571        movdqa  xmm8, xmm6572        psrld   xmm8, 7573        pslld   xmm6, 25574        por     xmm6, xmm8575        movdqa  xmm8, xmm7576        psrld   xmm8, 7577        pslld   xmm7, 25578        por     xmm7, xmm8579        movdqa  xmm8, xmm4580        psrld   xmm8, 7581        pslld   xmm4, 25582        por     xmm4, xmm8583        paddd   xmm0, xmmword ptr [rsp+30H]584        paddd   xmm1, xmmword ptr [rsp+0A0H]585        paddd   xmm2, xmmword ptr [rsp+0D0H]586        paddd   xmm3, xmmword ptr [rsp+70H]587        paddd   xmm0, xmm4588        paddd   xmm1, xmm5589        paddd   xmm2, xmm6590        paddd   xmm3, xmm7591        pxor    xmm12, xmm0592        pxor    xmm13, xmm1593        pxor    xmm14, xmm2594        pxor    xmm15, xmm3595        pshuflw xmm12, xmm12, 0B1H596        pshufhw xmm12, xmm12, 0B1H597        pshuflw xmm13, xmm13, 0B1H598        pshufhw xmm13, xmm13, 0B1H599        pshuflw xmm14, xmm14, 0B1H600        pshufhw xmm14, xmm14, 0B1H601        pshuflw xmm15, xmm15, 0B1H602        pshufhw xmm15, xmm15, 0B1H603        movdqa  xmm8, xmmword ptr [rsp+100H]604        paddd   xmm8, xmm12605        paddd   xmm9, xmm13606        paddd   xmm10, xmm14607        paddd   xmm11, xmm15608        pxor    xmm4, xmm8609        pxor    xmm5, xmm9610        pxor    xmm6, xmm10611        pxor    xmm7, xmm11612        movdqa  xmmword ptr [rsp+100H], xmm8613        movdqa  xmm8, xmm4614        psrld   xmm8, 12615        pslld   xmm4, 20616        por     xmm4, xmm8617        movdqa  xmm8, xmm5618        psrld   xmm8, 12619        pslld   xmm5, 20620        por     xmm5, xmm8621        movdqa  xmm8, xmm6622        psrld   xmm8, 12623        pslld   xmm6, 20624        por     xmm6, xmm8625        movdqa  xmm8, xmm7626        psrld   xmm8, 12627        pslld   xmm7, 20628        por     xmm7, xmm8629        paddd   xmm0, xmmword ptr [rsp+40H]630        paddd   xmm1, xmmword ptr [rsp+0C0H]631        paddd   xmm2, xmmword ptr [rsp+20H]632        paddd   xmm3, xmmword ptr [rsp+0E0H]633        paddd   xmm0, xmm4634        paddd   xmm1, xmm5635        paddd   xmm2, xmm6636        paddd   xmm3, xmm7637        pxor    xmm12, xmm0638        pxor    xmm13, xmm1639        pxor    xmm14, xmm2640        pxor    xmm15, xmm3641        movdqa  xmm8, xmm12642        psrld   xmm12, 8643        pslld   xmm8, 24644        pxor    xmm12, xmm8645        movdqa  xmm8, xmm13646        psrld   xmm13, 8647        pslld   xmm8, 24648        pxor    xmm13, xmm8649        movdqa  xmm8, xmm14650        psrld   xmm14, 8651        pslld   xmm8, 24652        pxor    xmm14, xmm8653        movdqa  xmm8, xmm15654        psrld   xmm15, 8655        pslld   xmm8, 24656        pxor    xmm15, xmm8657        movdqa  xmm8, xmmword ptr [rsp+100H]658        paddd   xmm8, xmm12659        paddd   xmm9, xmm13660        paddd   xmm10, xmm14661        paddd   xmm11, xmm15662        pxor    xmm4, xmm8663        pxor    xmm5, xmm9664        pxor    xmm6, xmm10665        pxor    xmm7, xmm11666        movdqa  xmmword ptr [rsp+100H], xmm8667        movdqa  xmm8, xmm4668        psrld   xmm8, 7669        pslld   xmm4, 25670        por     xmm4, xmm8671        movdqa  xmm8, xmm5672        psrld   xmm8, 7673        pslld   xmm5, 25674        por     xmm5, xmm8675        movdqa  xmm8, xmm6676        psrld   xmm8, 7677        pslld   xmm6, 25678        por     xmm6, xmm8679        movdqa  xmm8, xmm7680        psrld   xmm8, 7681        pslld   xmm7, 25682        por     xmm7, xmm8683        paddd   xmm0, xmmword ptr [rsp+60H]684        paddd   xmm1, xmmword ptr [rsp+90H]685        paddd   xmm2, xmmword ptr [rsp+0B0H]686        paddd   xmm3, xmmword ptr [rsp+80H]687        paddd   xmm0, xmm5688        paddd   xmm1, xmm6689        paddd   xmm2, xmm7690        paddd   xmm3, xmm4691        pxor    xmm15, xmm0692        pxor    xmm12, xmm1693        pxor    xmm13, xmm2694        pxor    xmm14, xmm3695        pshuflw xmm15, xmm15, 0B1H696        pshufhw xmm15, xmm15, 0B1H697        pshuflw xmm12, xmm12, 0B1H698        pshufhw xmm12, xmm12, 0B1H699        pshuflw xmm13, xmm13, 0B1H700        pshufhw xmm13, xmm13, 0B1H701        pshuflw xmm14, xmm14, 0B1H702        pshufhw xmm14, xmm14, 0B1H703        paddd   xmm10, xmm15704        paddd   xmm11, xmm12705        movdqa  xmm8, xmmword ptr [rsp+100H]706        paddd   xmm8, xmm13707        paddd   xmm9, xmm14708        pxor    xmm5, xmm10709        pxor    xmm6, xmm11710        pxor    xmm7, xmm8711        pxor    xmm4, xmm9712        movdqa  xmmword ptr [rsp+100H], xmm8713        movdqa  xmm8, xmm5714        psrld   xmm8, 12715        pslld   xmm5, 20716        por     xmm5, xmm8717        movdqa  xmm8, xmm6718        psrld   xmm8, 12719        pslld   xmm6, 20720        por     xmm6, xmm8721        movdqa  xmm8, xmm7722        psrld   xmm8, 12723        pslld   xmm7, 20724        por     xmm7, xmm8725        movdqa  xmm8, xmm4726        psrld   xmm8, 12727        pslld   xmm4, 20728        por     xmm4, xmm8729        paddd   xmm0, xmmword ptr [rsp+50H]730        paddd   xmm1, xmmword ptr [rsp]731        paddd   xmm2, xmmword ptr [rsp+0F0H]732        paddd   xmm3, xmmword ptr [rsp+10H]733        paddd   xmm0, xmm5734        paddd   xmm1, xmm6735        paddd   xmm2, xmm7736        paddd   xmm3, xmm4737        pxor    xmm15, xmm0738        pxor    xmm12, xmm1739        pxor    xmm13, xmm2740        pxor    xmm14, xmm3741        movdqa  xmm8, xmm15742        psrld   xmm15, 8743        pslld   xmm8, 24744        pxor    xmm15, xmm8745        movdqa  xmm8, xmm12746        psrld   xmm12, 8747        pslld   xmm8, 24748        pxor    xmm12, xmm8749        movdqa  xmm8, xmm13750        psrld   xmm13, 8751        pslld   xmm8, 24752        pxor    xmm13, xmm8753        movdqa  xmm8, xmm14754        psrld   xmm14, 8755        pslld   xmm8, 24756        pxor    xmm14, xmm8757        paddd   xmm10, xmm15758        paddd   xmm11, xmm12759        movdqa  xmm8, xmmword ptr [rsp+100H]760        paddd   xmm8, xmm13761        paddd   xmm9, xmm14762        pxor    xmm5, xmm10763        pxor    xmm6, xmm11764        pxor    xmm7, xmm8765        pxor    xmm4, xmm9766        movdqa  xmmword ptr [rsp+100H], xmm8767        movdqa  xmm8, xmm5768        psrld   xmm8, 7769        pslld   xmm5, 25770        por     xmm5, xmm8771        movdqa  xmm8, xmm6772        psrld   xmm8, 7773        pslld   xmm6, 25774        por     xmm6, xmm8775        movdqa  xmm8, xmm7776        psrld   xmm8, 7777        pslld   xmm7, 25778        por     xmm7, xmm8779        movdqa  xmm8, xmm4780        psrld   xmm8, 7781        pslld   xmm4, 25782        por     xmm4, xmm8783        paddd   xmm0, xmmword ptr [rsp+0A0H]784        paddd   xmm1, xmmword ptr [rsp+0C0H]785        paddd   xmm2, xmmword ptr [rsp+0E0H]786        paddd   xmm3, xmmword ptr [rsp+0D0H]787        paddd   xmm0, xmm4788        paddd   xmm1, xmm5789        paddd   xmm2, xmm6790        paddd   xmm3, xmm7791        pxor    xmm12, xmm0792        pxor    xmm13, xmm1793        pxor    xmm14, xmm2794        pxor    xmm15, xmm3795        pshuflw xmm12, xmm12, 0B1H796        pshufhw xmm12, xmm12, 0B1H797        pshuflw xmm13, xmm13, 0B1H798        pshufhw xmm13, xmm13, 0B1H799        pshuflw xmm14, xmm14, 0B1H800        pshufhw xmm14, xmm14, 0B1H801        pshuflw xmm15, xmm15, 0B1H802        pshufhw xmm15, xmm15, 0B1H803        movdqa  xmm8, xmmword ptr [rsp+100H]804        paddd   xmm8, xmm12805        paddd   xmm9, xmm13806        paddd   xmm10, xmm14807        paddd   xmm11, xmm15808        pxor    xmm4, xmm8809        pxor    xmm5, xmm9810        pxor    xmm6, xmm10811        pxor    xmm7, xmm11812        movdqa  xmmword ptr [rsp+100H], xmm8813        movdqa  xmm8, xmm4814        psrld   xmm8, 12815        pslld   xmm4, 20816        por     xmm4, xmm8817        movdqa  xmm8, xmm5818        psrld   xmm8, 12819        pslld   xmm5, 20820        por     xmm5, xmm8821        movdqa  xmm8, xmm6822        psrld   xmm8, 12823        pslld   xmm6, 20824        por     xmm6, xmm8825        movdqa  xmm8, xmm7826        psrld   xmm8, 12827        pslld   xmm7, 20828        por     xmm7, xmm8829        paddd   xmm0, xmmword ptr [rsp+70H]830        paddd   xmm1, xmmword ptr [rsp+90H]831        paddd   xmm2, xmmword ptr [rsp+30H]832        paddd   xmm3, xmmword ptr [rsp+0F0H]833        paddd   xmm0, xmm4834        paddd   xmm1, xmm5835        paddd   xmm2, xmm6836        paddd   xmm3, xmm7837        pxor    xmm12, xmm0838        pxor    xmm13, xmm1839        pxor    xmm14, xmm2840        pxor    xmm15, xmm3841        movdqa  xmm8, xmm12842        psrld   xmm12, 8843        pslld   xmm8, 24844        pxor    xmm12, xmm8845        movdqa  xmm8, xmm13846        psrld   xmm13, 8847        pslld   xmm8, 24848        pxor    xmm13, xmm8849        movdqa  xmm8, xmm14850        psrld   xmm14, 8851        pslld   xmm8, 24852        pxor    xmm14, xmm8853        movdqa  xmm8, xmm15854        psrld   xmm15, 8855        pslld   xmm8, 24856        pxor    xmm15, xmm8857        movdqa  xmm8, xmmword ptr [rsp+100H]858        paddd   xmm8, xmm12859        paddd   xmm9, xmm13860        paddd   xmm10, xmm14861        paddd   xmm11, xmm15862        pxor    xmm4, xmm8863        pxor    xmm5, xmm9864        pxor    xmm6, xmm10865        pxor    xmm7, xmm11866        movdqa  xmmword ptr [rsp+100H], xmm8867        movdqa  xmm8, xmm4868        psrld   xmm8, 7869        pslld   xmm4, 25870        por     xmm4, xmm8871        movdqa  xmm8, xmm5872        psrld   xmm8, 7873        pslld   xmm5, 25874        por     xmm5, xmm8875        movdqa  xmm8, xmm6876        psrld   xmm8, 7877        pslld   xmm6, 25878        por     xmm6, xmm8879        movdqa  xmm8, xmm7880        psrld   xmm8, 7881        pslld   xmm7, 25882        por     xmm7, xmm8883        paddd   xmm0, xmmword ptr [rsp+40H]884        paddd   xmm1, xmmword ptr [rsp+0B0H]885        paddd   xmm2, xmmword ptr [rsp+50H]886        paddd   xmm3, xmmword ptr [rsp+10H]887        paddd   xmm0, xmm5888        paddd   xmm1, xmm6889        paddd   xmm2, xmm7890        paddd   xmm3, xmm4891        pxor    xmm15, xmm0892        pxor    xmm12, xmm1893        pxor    xmm13, xmm2894        pxor    xmm14, xmm3895        pshuflw xmm15, xmm15, 0B1H896        pshufhw xmm15, xmm15, 0B1H897        pshuflw xmm12, xmm12, 0B1H898        pshufhw xmm12, xmm12, 0B1H899        pshuflw xmm13, xmm13, 0B1H900        pshufhw xmm13, xmm13, 0B1H901        pshuflw xmm14, xmm14, 0B1H902        pshufhw xmm14, xmm14, 0B1H903        paddd   xmm10, xmm15904        paddd   xmm11, xmm12905        movdqa  xmm8, xmmword ptr [rsp+100H]906        paddd   xmm8, xmm13907        paddd   xmm9, xmm14908        pxor    xmm5, xmm10909        pxor    xmm6, xmm11910        pxor    xmm7, xmm8911        pxor    xmm4, xmm9912        movdqa  xmmword ptr [rsp+100H], xmm8913        movdqa  xmm8, xmm5914        psrld   xmm8, 12915        pslld   xmm5, 20916        por     xmm5, xmm8917        movdqa  xmm8, xmm6918        psrld   xmm8, 12919        pslld   xmm6, 20920        por     xmm6, xmm8921        movdqa  xmm8, xmm7922        psrld   xmm8, 12923        pslld   xmm7, 20924        por     xmm7, xmm8925        movdqa  xmm8, xmm4926        psrld   xmm8, 12927        pslld   xmm4, 20928        por     xmm4, xmm8929        paddd   xmm0, xmmword ptr [rsp]930        paddd   xmm1, xmmword ptr [rsp+20H]931        paddd   xmm2, xmmword ptr [rsp+80H]932        paddd   xmm3, xmmword ptr [rsp+60H]933        paddd   xmm0, xmm5934        paddd   xmm1, xmm6935        paddd   xmm2, xmm7936        paddd   xmm3, xmm4937        pxor    xmm15, xmm0938        pxor    xmm12, xmm1939        pxor    xmm13, xmm2940        pxor    xmm14, xmm3941        movdqa  xmm8, xmm15942        psrld   xmm15, 8943        pslld   xmm8, 24944        pxor    xmm15, xmm8945        movdqa  xmm8, xmm12946        psrld   xmm12, 8947        pslld   xmm8, 24948        pxor    xmm12, xmm8949        movdqa  xmm8, xmm13950        psrld   xmm13, 8951        pslld   xmm8, 24952        pxor    xmm13, xmm8953        movdqa  xmm8, xmm14954        psrld   xmm14, 8955        pslld   xmm8, 24956        pxor    xmm14, xmm8957        paddd   xmm10, xmm15958        paddd   xmm11, xmm12959        movdqa  xmm8, xmmword ptr [rsp+100H]960        paddd   xmm8, xmm13961        paddd   xmm9, xmm14962        pxor    xmm5, xmm10963        pxor    xmm6, xmm11964        pxor    xmm7, xmm8965        pxor    xmm4, xmm9966        movdqa  xmmword ptr [rsp+100H], xmm8967        movdqa  xmm8, xmm5968        psrld   xmm8, 7969        pslld   xmm5, 25970        por     xmm5, xmm8971        movdqa  xmm8, xmm6972        psrld   xmm8, 7973        pslld   xmm6, 25974        por     xmm6, xmm8975        movdqa  xmm8, xmm7976        psrld   xmm8, 7977        pslld   xmm7, 25978        por     xmm7, xmm8979        movdqa  xmm8, xmm4980        psrld   xmm8, 7981        pslld   xmm4, 25982        por     xmm4, xmm8983        paddd   xmm0, xmmword ptr [rsp+0C0H]984        paddd   xmm1, xmmword ptr [rsp+90H]985        paddd   xmm2, xmmword ptr [rsp+0F0H]986        paddd   xmm3, xmmword ptr [rsp+0E0H]987        paddd   xmm0, xmm4988        paddd   xmm1, xmm5989        paddd   xmm2, xmm6990        paddd   xmm3, xmm7991        pxor    xmm12, xmm0992        pxor    xmm13, xmm1993        pxor    xmm14, xmm2994        pxor    xmm15, xmm3995        pshuflw xmm12, xmm12, 0B1H996        pshufhw xmm12, xmm12, 0B1H997        pshuflw xmm13, xmm13, 0B1H998        pshufhw xmm13, xmm13, 0B1H999        pshuflw xmm14, xmm14, 0B1H1000        pshufhw xmm14, xmm14, 0B1H1001        pshuflw xmm15, xmm15, 0B1H1002        pshufhw xmm15, xmm15, 0B1H1003        movdqa  xmm8, xmmword ptr [rsp+100H]1004        paddd   xmm8, xmm121005        paddd   xmm9, xmm131006        paddd   xmm10, xmm141007        paddd   xmm11, xmm151008        pxor    xmm4, xmm81009        pxor    xmm5, xmm91010        pxor    xmm6, xmm101011        pxor    xmm7, xmm111012        movdqa  xmmword ptr [rsp+100H], xmm81013        movdqa  xmm8, xmm41014        psrld   xmm8, 121015        pslld   xmm4, 201016        por     xmm4, xmm81017        movdqa  xmm8, xmm51018        psrld   xmm8, 121019        pslld   xmm5, 201020        por     xmm5, xmm81021        movdqa  xmm8, xmm61022        psrld   xmm8, 121023        pslld   xmm6, 201024        por     xmm6, xmm81025        movdqa  xmm8, xmm71026        psrld   xmm8, 121027        pslld   xmm7, 201028        por     xmm7, xmm81029        paddd   xmm0, xmmword ptr [rsp+0D0H]1030        paddd   xmm1, xmmword ptr [rsp+0B0H]1031        paddd   xmm2, xmmword ptr [rsp+0A0H]1032        paddd   xmm3, xmmword ptr [rsp+80H]1033        paddd   xmm0, xmm41034        paddd   xmm1, xmm51035        paddd   xmm2, xmm61036        paddd   xmm3, xmm71037        pxor    xmm12, xmm01038        pxor    xmm13, xmm11039        pxor    xmm14, xmm21040        pxor    xmm15, xmm31041        movdqa  xmm8, xmm121042        psrld   xmm12, 81043        pslld   xmm8, 241044        pxor    xmm12, xmm81045        movdqa  xmm8, xmm131046        psrld   xmm13, 81047        pslld   xmm8, 241048        pxor    xmm13, xmm81049        movdqa  xmm8, xmm141050        psrld   xmm14, 81051        pslld   xmm8, 241052        pxor    xmm14, xmm81053        movdqa  xmm8, xmm151054        psrld   xmm15, 81055        pslld   xmm8, 241056        pxor    xmm15, xmm81057        movdqa  xmm8, xmmword ptr [rsp+100H]1058        paddd   xmm8, xmm121059        paddd   xmm9, xmm131060        paddd   xmm10, xmm141061        paddd   xmm11, xmm151062        pxor    xmm4, xmm81063        pxor    xmm5, xmm91064        pxor    xmm6, xmm101065        pxor    xmm7, xmm111066        movdqa  xmmword ptr [rsp+100H], xmm81067        movdqa  xmm8, xmm41068        psrld   xmm8, 71069        pslld   xmm4, 251070        por     xmm4, xmm81071        movdqa  xmm8, xmm51072        psrld   xmm8, 71073        pslld   xmm5, 251074        por     xmm5, xmm81075        movdqa  xmm8, xmm61076        psrld   xmm8, 71077        pslld   xmm6, 251078        por     xmm6, xmm81079        movdqa  xmm8, xmm71080        psrld   xmm8, 71081        pslld   xmm7, 251082        por     xmm7, xmm81083        paddd   xmm0, xmmword ptr [rsp+70H]1084        paddd   xmm1, xmmword ptr [rsp+50H]1085        paddd   xmm2, xmmword ptr [rsp]1086        paddd   xmm3, xmmword ptr [rsp+60H]1087        paddd   xmm0, xmm51088        paddd   xmm1, xmm61089        paddd   xmm2, xmm71090        paddd   xmm3, xmm41091        pxor    xmm15, xmm01092        pxor    xmm12, xmm11093        pxor    xmm13, xmm21094        pxor    xmm14, xmm31095        pshuflw xmm15, xmm15, 0B1H1096        pshufhw xmm15, xmm15, 0B1H1097        pshuflw xmm12, xmm12, 0B1H1098        pshufhw xmm12, xmm12, 0B1H1099        pshuflw xmm13, xmm13, 0B1H1100        pshufhw xmm13, xmm13, 0B1H1101        pshuflw xmm14, xmm14, 0B1H1102        pshufhw xmm14, xmm14, 0B1H1103        paddd   xmm10, xmm151104        paddd   xmm11, xmm121105        movdqa  xmm8, xmmword ptr [rsp+100H]1106        paddd   xmm8, xmm131107        paddd   xmm9, xmm141108        pxor    xmm5, xmm101109        pxor    xmm6, xmm111110        pxor    xmm7, xmm81111        pxor    xmm4, xmm91112        movdqa  xmmword ptr [rsp+100H], xmm81113        movdqa  xmm8, xmm51114        psrld   xmm8, 121115        pslld   xmm5, 201116        por     xmm5, xmm81117        movdqa  xmm8, xmm61118        psrld   xmm8, 121119        pslld   xmm6, 201120        por     xmm6, xmm81121        movdqa  xmm8, xmm71122        psrld   xmm8, 121123        pslld   xmm7, 201124        por     xmm7, xmm81125        movdqa  xmm8, xmm41126        psrld   xmm8, 121127        pslld   xmm4, 201128        por     xmm4, xmm81129        paddd   xmm0, xmmword ptr [rsp+20H]1130        paddd   xmm1, xmmword ptr [rsp+30H]1131        paddd   xmm2, xmmword ptr [rsp+10H]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, xmm151142        psrld   xmm15, 81143        pslld   xmm8, 241144        pxor    xmm15, xmm81145        movdqa  xmm8, xmm121146        psrld   xmm12, 81147        pslld   xmm8, 241148        pxor    xmm12, xmm81149        movdqa  xmm8, xmm131150        psrld   xmm13, 81151        pslld   xmm8, 241152        pxor    xmm13, xmm81153        movdqa  xmm8, xmm141154        psrld   xmm14, 81155        pslld   xmm8, 241156        pxor    xmm14, xmm81157        paddd   xmm10, xmm151158        paddd   xmm11, xmm121159        movdqa  xmm8, xmmword ptr [rsp+100H]1160        paddd   xmm8, xmm131161        paddd   xmm9, xmm141162        pxor    xmm5, xmm101163        pxor    xmm6, xmm111164        pxor    xmm7, xmm81165        pxor    xmm4, xmm91166        movdqa  xmmword ptr [rsp+100H], xmm81167        movdqa  xmm8, xmm51168        psrld   xmm8, 71169        pslld   xmm5, 251170        por     xmm5, xmm81171        movdqa  xmm8, xmm61172        psrld   xmm8, 71173        pslld   xmm6, 251174        por     xmm6, xmm81175        movdqa  xmm8, xmm71176        psrld   xmm8, 71177        pslld   xmm7, 251178        por     xmm7, xmm81179        movdqa  xmm8, xmm41180        psrld   xmm8, 71181        pslld   xmm4, 251182        por     xmm4, xmm81183        paddd   xmm0, xmmword ptr [rsp+90H]1184        paddd   xmm1, xmmword ptr [rsp+0B0H]1185        paddd   xmm2, xmmword ptr [rsp+80H]1186        paddd   xmm3, xmmword ptr [rsp+0F0H]1187        paddd   xmm0, xmm41188        paddd   xmm1, xmm51189        paddd   xmm2, xmm61190        paddd   xmm3, xmm71191        pxor    xmm12, xmm01192        pxor    xmm13, xmm11193        pxor    xmm14, xmm21194        pxor    xmm15, xmm31195        pshuflw xmm12, xmm12, 0B1H1196        pshufhw xmm12, xmm12, 0B1H1197        pshuflw xmm13, xmm13, 0B1H1198        pshufhw xmm13, xmm13, 0B1H1199        pshuflw xmm14, xmm14, 0B1H1200        pshufhw xmm14, xmm14, 0B1H1201        pshuflw xmm15, xmm15, 0B1H1202        pshufhw xmm15, xmm15, 0B1H1203        movdqa  xmm8, xmmword ptr [rsp+100H]1204        paddd   xmm8, xmm121205        paddd   xmm9, xmm131206        paddd   xmm10, xmm141207        paddd   xmm11, xmm151208        pxor    xmm4, xmm81209        pxor    xmm5, xmm91210        pxor    xmm6, xmm101211        pxor    xmm7, xmm111212        movdqa  xmmword ptr [rsp+100H], xmm81213        movdqa  xmm8, xmm41214        psrld   xmm8, 121215        pslld   xmm4, 201216        por     xmm4, xmm81217        movdqa  xmm8, xmm51218        psrld   xmm8, 121219        pslld   xmm5, 201220        por     xmm5, xmm81221        movdqa  xmm8, xmm61222        psrld   xmm8, 121223        pslld   xmm6, 201224        por     xmm6, xmm81225        movdqa  xmm8, xmm71226        psrld   xmm8, 121227        pslld   xmm7, 201228        por     xmm7, xmm81229        paddd   xmm0, xmmword ptr [rsp+0E0H]1230        paddd   xmm1, xmmword ptr [rsp+50H]1231        paddd   xmm2, xmmword ptr [rsp+0C0H]1232        paddd   xmm3, xmmword ptr [rsp+10H]1233        paddd   xmm0, xmm41234        paddd   xmm1, xmm51235        paddd   xmm2, xmm61236        paddd   xmm3, xmm71237        pxor    xmm12, xmm01238        pxor    xmm13, xmm11239        pxor    xmm14, xmm21240        pxor    xmm15, xmm31241        movdqa  xmm8, xmm121242        psrld   xmm12, 81243        pslld   xmm8, 241244        pxor    xmm12, xmm81245        movdqa  xmm8, xmm131246        psrld   xmm13, 81247        pslld   xmm8, 241248        pxor    xmm13, xmm81249        movdqa  xmm8, xmm141250        psrld   xmm14, 81251        pslld   xmm8, 241252        pxor    xmm14, xmm81253        movdqa  xmm8, xmm151254        psrld   xmm15, 81255        pslld   xmm8, 241256        pxor    xmm15, xmm81257        movdqa  xmm8, xmmword ptr [rsp+100H]1258        paddd   xmm8, xmm121259        paddd   xmm9, xmm131260        paddd   xmm10, xmm141261        paddd   xmm11, xmm151262        pxor    xmm4, xmm81263        pxor    xmm5, xmm91264        pxor    xmm6, xmm101265        pxor    xmm7, xmm111266        movdqa  xmmword ptr [rsp+100H], xmm81267        movdqa  xmm8, xmm41268        psrld   xmm8, 71269        pslld   xmm4, 251270        por     xmm4, xmm81271        movdqa  xmm8, xmm51272        psrld   xmm8, 71273        pslld   xmm5, 251274        por     xmm5, xmm81275        movdqa  xmm8, xmm61276        psrld   xmm8, 71277        pslld   xmm6, 251278        por     xmm6, xmm81279        movdqa  xmm8, xmm71280        psrld   xmm8, 71281        pslld   xmm7, 251282        por     xmm7, xmm81283        paddd   xmm0, xmmword ptr [rsp+0D0H]1284        paddd   xmm1, xmmword ptr [rsp]1285        paddd   xmm2, xmmword ptr [rsp+20H]1286        paddd   xmm3, xmmword ptr [rsp+40H]1287        paddd   xmm0, xmm51288        paddd   xmm1, xmm61289        paddd   xmm2, xmm71290        paddd   xmm3, xmm41291        pxor    xmm15, xmm01292        pxor    xmm12, xmm11293        pxor    xmm13, xmm21294        pxor    xmm14, xmm31295        pshuflw xmm15, xmm15, 0B1H1296        pshufhw xmm15, xmm15, 0B1H1297        pshuflw xmm12, xmm12, 0B1H1298        pshufhw xmm12, xmm12, 0B1H1299        pshuflw xmm13, xmm13, 0B1H1300        pshufhw xmm13, xmm13, 0B1H1301        pshuflw xmm14, xmm14, 0B1H1302        pshufhw xmm14, xmm14, 0B1H1303        paddd   xmm10, xmm151304        paddd   xmm11, xmm121305        movdqa  xmm8, xmmword ptr [rsp+100H]1306        paddd   xmm8, xmm131307        paddd   xmm9, xmm141308        pxor    xmm5, xmm101309        pxor    xmm6, xmm111310        pxor    xmm7, xmm81311        pxor    xmm4, xmm91312        movdqa  xmmword ptr [rsp+100H], xmm81313        movdqa  xmm8, xmm51314        psrld   xmm8, 121315        pslld   xmm5, 201316        por     xmm5, xmm81317        movdqa  xmm8, xmm61318        psrld   xmm8, 121319        pslld   xmm6, 201320        por     xmm6, xmm81321        movdqa  xmm8, xmm71322        psrld   xmm8, 121323        pslld   xmm7, 201324        por     xmm7, xmm81325        movdqa  xmm8, xmm41326        psrld   xmm8, 121327        pslld   xmm4, 201328        por     xmm4, xmm81329        paddd   xmm0, xmmword ptr [rsp+30H]1330        paddd   xmm1, xmmword ptr [rsp+0A0H]1331        paddd   xmm2, xmmword ptr [rsp+60H]1332        paddd   xmm3, xmmword ptr [rsp+70H]1333        paddd   xmm0, xmm51334        paddd   xmm1, xmm61335        paddd   xmm2, xmm71336        paddd   xmm3, xmm41337        pxor    xmm15, xmm01338        pxor    xmm12, xmm11339        pxor    xmm13, xmm21340        pxor    xmm14, xmm31341        movdqa  xmm8, xmm151342        psrld   xmm15, 81343        pslld   xmm8, 241344        pxor    xmm15, xmm81345        movdqa  xmm8, xmm121346        psrld   xmm12, 81347        pslld   xmm8, 241348        pxor    xmm12, xmm81349        movdqa  xmm8, xmm131350        psrld   xmm13, 81351        pslld   xmm8, 241352        pxor    xmm13, xmm81353        movdqa  xmm8, xmm141354        psrld   xmm14, 81355        pslld   xmm8, 241356        pxor    xmm14, xmm81357        paddd   xmm10, xmm151358        paddd   xmm11, xmm121359        movdqa  xmm8, xmmword ptr [rsp+100H]1360        paddd   xmm8, xmm131361        paddd   xmm9, xmm141362        pxor    xmm5, xmm101363        pxor    xmm6, xmm111364        pxor    xmm7, xmm81365        pxor    xmm4, xmm91366        movdqa  xmmword ptr [rsp+100H], xmm81367        movdqa  xmm8, xmm51368        psrld   xmm8, 71369        pslld   xmm5, 251370        por     xmm5, xmm81371        movdqa  xmm8, xmm61372        psrld   xmm8, 71373        pslld   xmm6, 251374        por     xmm6, xmm81375        movdqa  xmm8, xmm71376        psrld   xmm8, 71377        pslld   xmm7, 251378        por     xmm7, xmm81379        movdqa  xmm8, xmm41380        psrld   xmm8, 71381        pslld   xmm4, 251382        por     xmm4, xmm81383        paddd   xmm0, xmmword ptr [rsp+0B0H]1384        paddd   xmm1, xmmword ptr [rsp+50H]1385        paddd   xmm2, xmmword ptr [rsp+10H]1386        paddd   xmm3, xmmword ptr [rsp+80H]1387        paddd   xmm0, xmm41388        paddd   xmm1, xmm51389        paddd   xmm2, xmm61390        paddd   xmm3, xmm71391        pxor    xmm12, xmm01392        pxor    xmm13, xmm11393        pxor    xmm14, xmm21394        pxor    xmm15, xmm31395        pshuflw xmm12, xmm12, 0B1H1396        pshufhw xmm12, xmm12, 0B1H1397        pshuflw xmm13, xmm13, 0B1H1398        pshufhw xmm13, xmm13, 0B1H1399        pshuflw xmm14, xmm14, 0B1H1400        pshufhw xmm14, xmm14, 0B1H1401        pshuflw xmm15, xmm15, 0B1H1402        pshufhw xmm15, xmm15, 0B1H1403        movdqa  xmm8, xmmword ptr [rsp+100H]1404        paddd   xmm8, xmm121405        paddd   xmm9, xmm131406        paddd   xmm10, xmm141407        paddd   xmm11, xmm151408        pxor    xmm4, xmm81409        pxor    xmm5, xmm91410        pxor    xmm6, xmm101411        pxor    xmm7, xmm111412        movdqa  xmmword ptr [rsp+100H], xmm81413        movdqa  xmm8, xmm41414        psrld   xmm8, 121415        pslld   xmm4, 201416        por     xmm4, xmm81417        movdqa  xmm8, xmm51418        psrld   xmm8, 121419        pslld   xmm5, 201420        por     xmm5, xmm81421        movdqa  xmm8, xmm61422        psrld   xmm8, 121423        pslld   xmm6, 201424        por     xmm6, xmm81425        movdqa  xmm8, xmm71426        psrld   xmm8, 121427        pslld   xmm7, 201428        por     xmm7, xmm81429        paddd   xmm0, xmmword ptr [rsp+0F0H]1430        paddd   xmm1, xmmword ptr [rsp]1431        paddd   xmm2, xmmword ptr [rsp+90H]1432        paddd   xmm3, xmmword ptr [rsp+60H]1433        paddd   xmm0, xmm41434        paddd   xmm1, xmm51435        paddd   xmm2, xmm61436        paddd   xmm3, xmm71437        pxor    xmm12, xmm01438        pxor    xmm13, xmm11439        pxor    xmm14, xmm21440        pxor    xmm15, xmm31441        movdqa  xmm8, xmm121442        psrld   xmm12, 81443        pslld   xmm8, 241444        pxor    xmm12, xmm81445        movdqa  xmm8, xmm131446        psrld   xmm13, 81447        pslld   xmm8, 241448        pxor    xmm13, xmm81449        movdqa  xmm8, xmm141450        psrld   xmm14, 81451        pslld   xmm8, 241452        pxor    xmm14, xmm81453        movdqa  xmm8, xmm151454        psrld   xmm15, 81455        pslld   xmm8, 241456        pxor    xmm15, xmm81457        movdqa  xmm8, xmmword ptr [rsp+100H]1458        paddd   xmm8, xmm121459        paddd   xmm9, xmm131460        paddd   xmm10, xmm141461        paddd   xmm11, xmm151462        pxor    xmm4, xmm81463        pxor    xmm5, xmm91464        pxor    xmm6, xmm101465        pxor    xmm7, xmm111466        movdqa  xmmword ptr [rsp+100H], xmm81467        movdqa  xmm8, xmm41468        psrld   xmm8, 71469        pslld   xmm4, 251470        por     xmm4, xmm81471        movdqa  xmm8, xmm51472        psrld   xmm8, 71473        pslld   xmm5, 251474        por     xmm5, xmm81475        movdqa  xmm8, xmm61476        psrld   xmm8, 71477        pslld   xmm6, 251478        por     xmm6, xmm81479        movdqa  xmm8, xmm71480        psrld   xmm8, 71481        pslld   xmm7, 251482        por     xmm7, xmm81483        paddd   xmm0, xmmword ptr [rsp+0E0H]1484        paddd   xmm1, xmmword ptr [rsp+20H]1485        paddd   xmm2, xmmword ptr [rsp+30H]1486        paddd   xmm3, xmmword ptr [rsp+70H]1487        paddd   xmm0, xmm51488        paddd   xmm1, xmm61489        paddd   xmm2, xmm71490        paddd   xmm3, xmm41491        pxor    xmm15, xmm01492        pxor    xmm12, xmm11493        pxor    xmm13, xmm21494        pxor    xmm14, xmm31495        pshuflw xmm15, xmm15, 0B1H1496        pshufhw xmm15, xmm15, 0B1H1497        pshuflw xmm12, xmm12, 0B1H1498        pshufhw xmm12, xmm12, 0B1H1499        pshuflw xmm13, xmm13, 0B1H1500        pshufhw xmm13, xmm13, 0B1H1501        pshuflw xmm14, xmm14, 0B1H1502        pshufhw xmm14, xmm14, 0B1H1503        paddd   xmm10, xmm151504        paddd   xmm11, xmm121505        movdqa  xmm8, xmmword ptr [rsp+100H]1506        paddd   xmm8, xmm131507        paddd   xmm9, xmm141508        pxor    xmm5, xmm101509        pxor    xmm6, xmm111510        pxor    xmm7, xmm81511        pxor    xmm4, xmm91512        movdqa  xmmword ptr [rsp+100H], xmm81513        movdqa  xmm8, xmm51514        psrld   xmm8, 121515        pslld   xmm5, 201516        por     xmm5, xmm81517        movdqa  xmm8, xmm61518        psrld   xmm8, 121519        pslld   xmm6, 201520        por     xmm6, xmm81521        movdqa  xmm8, xmm71522        psrld   xmm8, 121523        pslld   xmm7, 201524        por     xmm7, xmm81525        movdqa  xmm8, xmm41526        psrld   xmm8, 121527        pslld   xmm4, 201528        por     xmm4, xmm81529        paddd   xmm0, xmmword ptr [rsp+0A0H]1530        paddd   xmm1, xmmword ptr [rsp+0C0H]1531        paddd   xmm2, xmmword ptr [rsp+40H]1532        paddd   xmm3, xmmword ptr [rsp+0D0H]1533        paddd   xmm0, xmm51534        paddd   xmm1, xmm61535        paddd   xmm2, xmm71536        paddd   xmm3, xmm41537        pxor    xmm15, xmm01538        pxor    xmm12, xmm11539        pxor    xmm13, xmm21540        pxor    xmm14, xmm31541        movdqa  xmm8, xmm151542        psrld   xmm15, 81543        pslld   xmm8, 241544        pxor    xmm15, xmm81545        movdqa  xmm8, xmm121546        psrld   xmm12, 81547        pslld   xmm8, 241548        pxor    xmm12, xmm81549        movdqa  xmm8, xmm131550        psrld   xmm13, 81551        pslld   xmm8, 241552        pxor    xmm13, xmm81553        movdqa  xmm8, xmm141554        psrld   xmm14, 81555        pslld   xmm8, 241556        pxor    xmm14, xmm81557        paddd   xmm10, xmm151558        paddd   xmm11, xmm121559        movdqa  xmm8, xmmword ptr [rsp+100H]1560        paddd   xmm8, xmm131561        paddd   xmm9, xmm141562        pxor    xmm5, xmm101563        pxor    xmm6, xmm111564        pxor    xmm7, xmm81565        pxor    xmm4, xmm91566        pxor    xmm0, xmm81567        pxor    xmm1, xmm91568        pxor    xmm2, xmm101569        pxor    xmm3, xmm111570        movdqa  xmm8, xmm51571        psrld   xmm8, 71572        pslld   xmm5, 251573        por     xmm5, xmm81574        movdqa  xmm8, xmm61575        psrld   xmm8, 71576        pslld   xmm6, 251577        por     xmm6, xmm81578        movdqa  xmm8, xmm71579        psrld   xmm8, 71580        pslld   xmm7, 251581        por     xmm7, xmm81582        movdqa  xmm8, xmm41583        psrld   xmm8, 71584        pslld   xmm4, 251585        por     xmm4, xmm81586        pxor    xmm4, xmm121587        pxor    xmm5, xmm131588        pxor    xmm6, xmm141589        pxor    xmm7, xmm151590        mov     eax, r13d1591        jne     innerloop41592        movdqa  xmm9, xmm01593        punpckldq xmm0, xmm11594        punpckhdq xmm9, xmm11595        movdqa  xmm11, xmm21596        punpckldq xmm2, xmm31597        punpckhdq xmm11, xmm31598        movdqa  xmm1, xmm01599        punpcklqdq xmm0, xmm21600        punpckhqdq xmm1, xmm21601        movdqa  xmm3, xmm91602        punpcklqdq xmm9, xmm111603        punpckhqdq xmm3, xmm111604        movdqu  xmmword ptr [rbx], xmm01605        movdqu  xmmword ptr [rbx+20H], xmm11606        movdqu  xmmword ptr [rbx+40H], xmm91607        movdqu  xmmword ptr [rbx+60H], xmm31608        movdqa  xmm9, xmm41609        punpckldq xmm4, xmm51610        punpckhdq xmm9, xmm51611        movdqa  xmm11, xmm61612        punpckldq xmm6, xmm71613        punpckhdq xmm11, xmm71614        movdqa  xmm5, xmm41615        punpcklqdq xmm4, xmm61616        punpckhqdq xmm5, xmm61617        movdqa  xmm7, xmm91618        punpcklqdq xmm9, xmm111619        punpckhqdq xmm7, xmm111620        movdqu  xmmword ptr [rbx+10H], xmm41621        movdqu  xmmword ptr [rbx+30H], xmm51622        movdqu  xmmword ptr [rbx+50H], xmm91623        movdqu  xmmword ptr [rbx+70H], xmm71624        movdqa  xmm1, xmmword ptr [rsp+110H]1625        movdqa  xmm0, xmm11626        paddd   xmm1, xmmword ptr [rsp+150H]1627        movdqa  xmmword ptr [rsp+110H], xmm11628        pxor    xmm0, xmmword ptr [CMP_MSB_MASK]1629        pxor    xmm1, xmmword ptr [CMP_MSB_MASK]1630        pcmpgtd xmm0, xmm11631        movdqa  xmm1, xmmword ptr [rsp+120H]1632        psubd   xmm1, xmm01633        movdqa  xmmword ptr [rsp+120H], xmm11634        add     rbx, 1281635        add     rdi, 321636        sub     rsi, 41637        cmp     rsi, 41638        jnc     outerloop41639        test    rsi, rsi1640        jne     final3blocks1641unwind:1642        movdqa  xmm6, xmmword ptr [rsp+170H]1643        movdqa  xmm7, xmmword ptr [rsp+180H]1644        movdqa  xmm8, xmmword ptr [rsp+190H]1645        movdqa  xmm9, xmmword ptr [rsp+1A0H]1646        movdqa  xmm10, xmmword ptr [rsp+1B0H]1647        movdqa  xmm11, xmmword ptr [rsp+1C0H]1648        movdqa  xmm12, xmmword ptr [rsp+1D0H]1649        movdqa  xmm13, xmmword ptr [rsp+1E0H]1650        movdqa  xmm14, xmmword ptr [rsp+1F0H]1651        movdqa  xmm15, xmmword ptr [rsp+200H]1652        mov     rsp, rbp1653        pop     rbp1654        pop     rbx1655        pop     rdi1656        pop     rsi1657        pop     r121658        pop     r131659        pop     r141660        pop     r151661        ret1662ALIGN   161663final3blocks:1664        test    esi, 2H1665        je      final1block1666        movups  xmm0, xmmword ptr [rcx]1667        movups  xmm1, xmmword ptr [rcx+10H]1668        movaps  xmm8, xmm01669        movaps  xmm9, xmm11670        movd    xmm13, dword ptr [rsp+110H]1671        movd    xmm14, dword ptr [rsp+120H]1672        punpckldq xmm13, xmm141673        movaps  xmmword ptr [rsp], xmm131674        movd    xmm14, dword ptr [rsp+114H]1675        movd    xmm13, dword ptr [rsp+124H]1676        punpckldq xmm14, xmm131677        movaps  xmmword ptr [rsp+10H], xmm141678        mov     r8, qword ptr [rdi]1679        mov     r9, qword ptr [rdi+8H]1680        movzx   eax, byte ptr [rbp+80H]1681        or      eax, r13d1682        xor     edx, edx1683innerloop2:1684        mov     r14d, eax1685        or      eax, r12d1686        add     rdx, 641687        cmp     rdx, r151688        cmovne  eax, r14d1689        movaps  xmm2, xmmword ptr [BLAKE3_IV]1690        movaps  xmm10, xmm21691        movups  xmm4, xmmword ptr [r8+rdx-40H]1692        movups  xmm5, xmmword ptr [r8+rdx-30H]1693        movaps  xmm3, xmm41694        shufps  xmm4, xmm5, 1361695        shufps  xmm3, xmm5, 2211696        movaps  xmm5, xmm31697        movups  xmm6, xmmword ptr [r8+rdx-20H]1698        movups  xmm7, xmmword ptr [r8+rdx-10H]1699        movaps  xmm3, xmm61700        shufps  xmm6, xmm7, 1361701        pshufd  xmm6, xmm6, 93H1702        shufps  xmm3, xmm7, 2211703        pshufd  xmm7, xmm3, 93H1704        movups  xmm12, xmmword ptr [r9+rdx-40H]1705        movups  xmm13, xmmword ptr [r9+rdx-30H]1706        movaps  xmm11, xmm121707        shufps  xmm12, xmm13, 1361708        shufps  xmm11, xmm13, 2211709        movaps  xmm13, xmm111710        movups  xmm14, xmmword ptr [r9+rdx-20H]1711        movups  xmm15, xmmword ptr [r9+rdx-10H]1712        movaps  xmm11, xmm141713        shufps  xmm14, xmm15, 1361714        pshufd  xmm14, xmm14, 93H1715        shufps  xmm11, xmm15, 2211716        pshufd  xmm15, xmm11, 93H1717        shl     rax, 20H1718        or      rax, 40H1719        movd    xmm3, rax1720        movdqa  xmmword ptr [rsp+20H], xmm31721        movaps  xmm3, xmmword ptr [rsp]1722        movaps  xmm11, xmmword ptr [rsp+10H]1723        punpcklqdq xmm3, xmmword ptr [rsp+20H]1724        punpcklqdq xmm11, xmmword ptr [rsp+20H]1725        mov     al, 71726roundloop2:1727        paddd   xmm0, xmm41728        paddd   xmm8, xmm121729        movaps  xmmword ptr [rsp+20H], xmm41730        movaps  xmmword ptr [rsp+30H], xmm121731        paddd   xmm0, xmm11732        paddd   xmm8, xmm91733        pxor    xmm3, xmm01734        pxor    xmm11, xmm81735        pshuflw xmm3, xmm3, 0B1H1736        pshufhw xmm3, xmm3, 0B1H1737        pshuflw xmm11, xmm11, 0B1H1738        pshufhw xmm11, xmm11, 0B1H1739        paddd   xmm2, xmm31740        paddd   xmm10, xmm111741        pxor    xmm1, xmm21742        pxor    xmm9, xmm101743        movdqa  xmm4, xmm11744        pslld   xmm1, 201745        psrld   xmm4, 121746        por     xmm1, xmm41747        movdqa  xmm4, xmm91748        pslld   xmm9, 201749        psrld   xmm4, 121750        por     xmm9, xmm41751        paddd   xmm0, xmm51752        paddd   xmm8, xmm131753        movaps  xmmword ptr [rsp+40H], xmm51754        movaps  xmmword ptr [rsp+50H], xmm131755        paddd   xmm0, xmm11756        paddd   xmm8, xmm91757        pxor    xmm3, xmm01758        pxor    xmm11, xmm81759        movdqa  xmm13, xmm31760        psrld   xmm3, 81761        pslld   xmm13, 241762        pxor    xmm3, xmm131763        movdqa  xmm13, xmm111764        psrld   xmm11, 81765        pslld   xmm13, 241766        pxor    xmm11, xmm131767        paddd   xmm2, xmm31768        paddd   xmm10, xmm111769        pxor    xmm1, xmm21770        pxor    xmm9, xmm101771        movdqa  xmm4, xmm11772        pslld   xmm1, 251773        psrld   xmm4, 71774        por     xmm1, xmm41775        movdqa  xmm4, xmm91776        pslld   xmm9, 251777        psrld   xmm4, 71778        por     xmm9, xmm41779        pshufd  xmm0, xmm0, 93H1780        pshufd  xmm8, xmm8, 93H1781        pshufd  xmm3, xmm3, 4EH1782        pshufd  xmm11, xmm11, 4EH1783        pshufd  xmm2, xmm2, 39H1784        pshufd  xmm10, xmm10, 39H1785        paddd   xmm0, xmm61786        paddd   xmm8, xmm141787        paddd   xmm0, xmm11788        paddd   xmm8, xmm91789        pxor    xmm3, xmm01790        pxor    xmm11, xmm81791        pshuflw xmm3, xmm3, 0B1H1792        pshufhw xmm3, xmm3, 0B1H1793        pshuflw xmm11, xmm11, 0B1H1794        pshufhw xmm11, xmm11, 0B1H1795        paddd   xmm2, xmm31796        paddd   xmm10, xmm111797        pxor    xmm1, xmm21798        pxor    xmm9, xmm101799        movdqa  xmm4, xmm11800        pslld   xmm1, 201801        psrld   xmm4, 121802        por     xmm1, xmm41803        movdqa  xmm4, xmm91804        pslld   xmm9, 201805        psrld   xmm4, 121806        por     xmm9, xmm41807        paddd   xmm0, xmm71808        paddd   xmm8, xmm151809        paddd   xmm0, xmm11810        paddd   xmm8, xmm91811        pxor    xmm3, xmm01812        pxor    xmm11, xmm81813        movdqa  xmm13, xmm31814        psrld   xmm3, 81815        pslld   xmm13, 241816        pxor    xmm3, xmm131817        movdqa  xmm13, xmm111818        psrld   xmm11, 81819        pslld   xmm13, 241820        pxor    xmm11, xmm131821        paddd   xmm2, xmm31822        paddd   xmm10, xmm111823        pxor    xmm1, xmm21824        pxor    xmm9, xmm101825        movdqa  xmm4, xmm11826        pslld   xmm1, 251827        psrld   xmm4, 71828        por     xmm1, xmm41829        movdqa  xmm4, xmm91830        pslld   xmm9, 251831        psrld   xmm4, 71832        por     xmm9, xmm41833        pshufd  xmm0, xmm0, 39H1834        pshufd  xmm8, xmm8, 39H1835        pshufd  xmm3, xmm3, 4EH1836        pshufd  xmm11, xmm11, 4EH1837        pshufd  xmm2, xmm2, 93H1838        pshufd  xmm10, xmm10, 93H1839        dec     al1840        je      endroundloop21841        movdqa  xmm12, xmmword ptr [rsp+20H]1842        movdqa  xmm5, xmmword ptr [rsp+40H]1843        pshufd  xmm13, xmm12, 0FH1844        shufps  xmm12, xmm5, 2141845        pshufd  xmm4, xmm12, 39H1846        movdqa  xmm12, xmm61847        shufps  xmm12, xmm7, 2501848        pand    xmm13, xmmword ptr [PBLENDW_0x33_MASK]1849        pand    xmm12, xmmword ptr [PBLENDW_0xCC_MASK]1850        por     xmm13, xmm121851        movdqa  xmmword ptr [rsp+20H], xmm131852        movdqa  xmm12, xmm71853        punpcklqdq xmm12, xmm51854        movdqa  xmm13, xmm61855        pand    xmm12, xmmword ptr [PBLENDW_0x3F_MASK]1856        pand    xmm13, xmmword ptr [PBLENDW_0xC0_MASK]1857        por     xmm12, xmm131858        pshufd  xmm12, xmm12, 78H1859        punpckhdq xmm5, xmm71860        punpckldq xmm6, xmm51861        pshufd  xmm7, xmm6, 1EH1862        movdqa  xmmword ptr [rsp+40H], xmm121863        movdqa  xmm5, xmmword ptr [rsp+30H]1864        movdqa  xmm13, xmmword ptr [rsp+50H]1865        pshufd  xmm6, xmm5, 0FH1866        shufps  xmm5, xmm13, 2141867        pshufd  xmm12, xmm5, 39H1868        movdqa  xmm5, xmm141869        shufps  xmm5, xmm15, 2501870        pand    xmm6, xmmword ptr [PBLENDW_0x33_MASK]1871        pand    xmm5, xmmword ptr [PBLENDW_0xCC_MASK]1872        por     xmm6, xmm51873        movdqa  xmm5, xmm151874        punpcklqdq xmm5, xmm131875        movdqa  xmmword ptr [rsp+30H], xmm21876        movdqa  xmm2, xmm141877        pand    xmm5, xmmword ptr [PBLENDW_0x3F_MASK]1878        pand    xmm2, xmmword ptr [PBLENDW_0xC0_MASK]1879        por     xmm5, xmm21880        movdqa  xmm2, xmmword ptr [rsp+30H]1881        pshufd  xmm5, xmm5, 78H1882        punpckhdq xmm13, xmm151883        punpckldq xmm14, xmm131884        pshufd  xmm15, xmm14, 1EH1885        movdqa  xmm13, xmm61886        movdqa  xmm14, xmm51887        movdqa  xmm5, xmmword ptr [rsp+20H]1888        movdqa  xmm6, xmmword ptr [rsp+40H]1889        jmp     roundloop21890endroundloop2:1891        pxor    xmm0, xmm21892        pxor    xmm1, xmm31893        pxor    xmm8, xmm101894        pxor    xmm9, xmm111895        mov     eax, r13d1896        cmp     rdx, r151897        jne     innerloop21898        movups  xmmword ptr [rbx], xmm01899        movups  xmmword ptr [rbx+10H], xmm11900        movups  xmmword ptr [rbx+20H], xmm81901        movups  xmmword ptr [rbx+30H], xmm91902        mov     eax, dword ptr [rsp+130H]1903        neg     eax1904        mov    r10d, dword ptr [rsp+110H+8*rax]1905        mov    r11d, dword ptr [rsp+120H+8*rax]1906        mov dword ptr [rsp+110H], r10d1907        mov dword ptr [rsp+120H], r11d1908        add     rdi, 161909        add     rbx, 641910        sub     rsi, 21911final1block:1912        test    esi, 1H1913        je      unwind1914        movups  xmm0, xmmword ptr [rcx]1915        movups  xmm1, xmmword ptr [rcx+10H]1916        movd    xmm13, dword ptr [rsp+110H]1917        movd    xmm14, dword ptr [rsp+120H]1918        punpckldq xmm13, xmm141919        mov     r8, qword ptr [rdi]1920        movzx   eax, byte ptr [rbp+80H]1921        or      eax, r13d1922        xor     edx, edx1923innerloop1:1924        mov     r14d, eax1925        or      eax, r12d1926        add     rdx, 641927        cmp     rdx, r151928        cmovne  eax, r14d1929        movaps  xmm2, xmmword ptr [BLAKE3_IV]1930        shl     rax, 321931        or      rax, 641932        movd    xmm12, rax1933        movdqa  xmm3, xmm131934        punpcklqdq xmm3, xmm121935        movups  xmm4, xmmword ptr [r8+rdx-40H]1936        movups  xmm5, xmmword ptr [r8+rdx-30H]1937        movaps  xmm8, xmm41938        shufps  xmm4, xmm5, 1361939        shufps  xmm8, xmm5, 2211940        movaps  xmm5, xmm81941        movups  xmm6, xmmword ptr [r8+rdx-20H]1942        movups  xmm7, xmmword ptr [r8+rdx-10H]1943        movaps  xmm8, xmm61944        shufps  xmm6, xmm7, 1361945        pshufd  xmm6, xmm6, 93H1946        shufps  xmm8, xmm7, 2211947        pshufd  xmm7, xmm8, 93H1948        mov     al, 71949roundloop1:1950        paddd   xmm0, xmm41951        paddd   xmm0, xmm11952        pxor    xmm3, xmm01953        pshuflw xmm3, xmm3, 0B1H1954        pshufhw xmm3, xmm3, 0B1H1955        paddd   xmm2, xmm31956        pxor    xmm1, xmm21957        movdqa  xmm11, xmm11958        pslld   xmm1, 201959        psrld   xmm11, 121960        por     xmm1, xmm111961        paddd   xmm0, xmm51962        paddd   xmm0, xmm11963        pxor    xmm3, xmm01964        movdqa  xmm14, xmm31965        psrld   xmm3, 81966        pslld   xmm14, 241967        pxor    xmm3, xmm141968        paddd   xmm2, xmm31969        pxor    xmm1, xmm21970        movdqa  xmm11, xmm11971        pslld   xmm1, 251972        psrld   xmm11, 71973        por     xmm1, xmm111974        pshufd  xmm0, xmm0, 93H1975        pshufd  xmm3, xmm3, 4EH1976        pshufd  xmm2, xmm2, 39H1977        paddd   xmm0, xmm61978        paddd   xmm0, xmm11979        pxor    xmm3, xmm01980        pshuflw xmm3, xmm3, 0B1H1981        pshufhw xmm3, xmm3, 0B1H1982        paddd   xmm2, xmm31983        pxor    xmm1, xmm21984        movdqa  xmm11, xmm11985        pslld   xmm1, 201986        psrld   xmm11, 121987        por     xmm1, xmm111988        paddd   xmm0, xmm71989        paddd   xmm0, xmm11990        pxor    xmm3, xmm01991        movdqa  xmm14, xmm31992        psrld   xmm3, 81993        pslld   xmm14, 241994        pxor    xmm3, xmm141995        paddd   xmm2, xmm31996        pxor    xmm1, xmm21997        movdqa  xmm11, xmm11998        pslld   xmm1, 251999        psrld   xmm11, 72000        por     xmm1, xmm112001        pshufd  xmm0, xmm0, 39H2002        pshufd  xmm3, xmm3, 4EH2003        pshufd  xmm2, xmm2, 93H2004        dec     al2005        jz      endroundloop12006        movdqa  xmm8, xmm42007        shufps  xmm8, xmm5, 2142008        pshufd  xmm9, xmm4, 0FH2009        pshufd  xmm4, xmm8, 39H2010        movdqa  xmm8, xmm62011        shufps  xmm8, xmm7, 2502012        pand    xmm9, xmmword ptr [PBLENDW_0x33_MASK]2013        pand    xmm8, xmmword ptr [PBLENDW_0xCC_MASK]2014        por     xmm9, xmm82015        movdqa  xmm8, xmm72016        punpcklqdq xmm8, xmm52017        movdqa  xmm10, xmm62018        pand    xmm8, xmmword ptr [PBLENDW_0x3F_MASK]2019        pand    xmm10, xmmword ptr [PBLENDW_0xC0_MASK]2020        por     xmm8, xmm102021        pshufd  xmm8, xmm8, 78H2022        punpckhdq xmm5, xmm72023        punpckldq xmm6, xmm52024        pshufd  xmm7, xmm6, 1EH2025        movdqa  xmm5, xmm92026        movdqa  xmm6, xmm82027        jmp     roundloop12028endroundloop1:2029        pxor    xmm0, xmm22030        pxor    xmm1, xmm32031        mov     eax, r13d2032        cmp     rdx, r152033        jne     innerloop12034        movups  xmmword ptr [rbx], xmm02035        movups  xmmword ptr [rbx+10H], xmm12036        jmp     unwind2037_llvm_blake3_hash_many_sse2 ENDP2038llvm_blake3_hash_many_sse2 ENDP2039 2040llvm_blake3_compress_in_place_sse2 PROC2041_llvm_blake3_compress_in_place_sse2 PROC2042        sub     rsp, 1202043        movdqa  xmmword ptr [rsp], xmm62044        movdqa  xmmword ptr [rsp+10H], xmm72045        movdqa  xmmword ptr [rsp+20H], xmm82046        movdqa  xmmword ptr [rsp+30H], xmm92047        movdqa  xmmword ptr [rsp+40H], xmm112048        movdqa  xmmword ptr [rsp+50H], xmm142049        movdqa  xmmword ptr [rsp+60H], xmm152050        movups  xmm0, xmmword ptr [rcx]2051        movups  xmm1, xmmword ptr [rcx+10H]2052        movaps  xmm2, xmmword ptr [BLAKE3_IV]2053        movzx   eax, byte ptr [rsp+0A0H]2054        movzx   r8d, r8b2055        shl     rax, 322056        add     r8, rax2057        movd    xmm3, r92058        movd    xmm4, r82059        punpcklqdq xmm3, xmm42060        movups  xmm4, xmmword ptr [rdx]2061        movups  xmm5, xmmword ptr [rdx+10H]2062        movaps  xmm8, xmm42063        shufps  xmm4, xmm5, 1362064        shufps  xmm8, xmm5, 2212065        movaps  xmm5, xmm82066        movups  xmm6, xmmword ptr [rdx+20H]2067        movups  xmm7, xmmword ptr [rdx+30H]2068        movaps  xmm8, xmm62069        shufps  xmm6, xmm7, 1362070        pshufd  xmm6, xmm6, 93H2071        shufps  xmm8, xmm7, 2212072        pshufd  xmm7, xmm8, 93H2073        mov     al, 72074@@:2075        paddd   xmm0, xmm42076        paddd   xmm0, xmm12077        pxor    xmm3, xmm02078        pshuflw xmm3, xmm3, 0B1H2079        pshufhw xmm3, xmm3, 0B1H2080        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, 93H2100        pshufd  xmm3, xmm3, 4EH2101        pshufd  xmm2, xmm2, 39H2102        paddd   xmm0, xmm62103        paddd   xmm0, xmm12104        pxor    xmm3, xmm02105        pshuflw xmm3, xmm3, 0B1H2106        pshufhw xmm3, xmm3, 0B1H2107        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, 39H2127        pshufd  xmm3, xmm3, 4EH2128        pshufd  xmm2, xmm2, 93H2129        dec     al2130        jz      @F2131        movdqa  xmm8, xmm42132        shufps  xmm8, xmm5, 2142133        pshufd  xmm9, xmm4, 0FH2134        pshufd  xmm4, xmm8, 39H2135        movdqa  xmm8, xmm62136        shufps  xmm8, xmm7, 2502137        pand    xmm9, xmmword ptr [PBLENDW_0x33_MASK]2138        pand    xmm8, xmmword ptr [PBLENDW_0xCC_MASK]2139        por     xmm9, xmm82140        movdqa  xmm8, xmm72141        punpcklqdq xmm8, xmm52142        movdqa  xmm14, xmm62143        pand    xmm8, xmmword ptr [PBLENDW_0x3F_MASK]2144        pand    xmm14, xmmword ptr [PBLENDW_0xC0_MASK]2145        por     xmm8, xmm142146        pshufd  xmm8, xmm8, 78H2147        punpckhdq xmm5, xmm72148        punpckldq xmm6, xmm52149        pshufd  xmm7, xmm6, 1EH2150        movdqa  xmm5, xmm92151        movdqa  xmm6, xmm82152        jmp     @B2153@@:2154        pxor    xmm0, xmm22155        pxor    xmm1, xmm32156        movups  xmmword ptr [rcx], xmm02157        movups  xmmword ptr [rcx+10H], xmm12158        movdqa  xmm6, xmmword ptr [rsp]2159        movdqa  xmm7, xmmword ptr [rsp+10H]2160        movdqa  xmm8, xmmword ptr [rsp+20H]2161        movdqa  xmm9, xmmword ptr [rsp+30H]2162        movdqa  xmm11, xmmword ptr [rsp+40H]2163        movdqa  xmm14, xmmword ptr [rsp+50H]2164        movdqa  xmm15, xmmword ptr [rsp+60H]2165        add     rsp, 1202166        ret2167_llvm_blake3_compress_in_place_sse2 ENDP2168llvm_blake3_compress_in_place_sse2 ENDP2169 2170ALIGN 162171llvm_blake3_compress_xof_sse2 PROC2172_llvm_blake3_compress_xof_sse2 PROC2173        sub     rsp, 1202174        movdqa  xmmword ptr [rsp], xmm62175        movdqa  xmmword ptr [rsp+10H], xmm72176        movdqa  xmmword ptr [rsp+20H], xmm82177        movdqa  xmmword ptr [rsp+30H], xmm92178        movdqa  xmmword ptr [rsp+40H], xmm112179        movdqa  xmmword ptr [rsp+50H], xmm142180        movdqa  xmmword ptr [rsp+60H], xmm152181        movups  xmm0, xmmword ptr [rcx]2182        movups  xmm1, xmmword ptr [rcx+10H]2183        movaps  xmm2, xmmword ptr [BLAKE3_IV]2184        movzx   eax, byte ptr [rsp+0A0H]2185        movzx   r8d, r8b2186        mov     r10, qword ptr [rsp+0A8H]2187        shl     rax, 322188        add     r8, rax2189        movd    xmm3, r92190        movd    xmm4, r82191        punpcklqdq xmm3, xmm42192        movups  xmm4, xmmword ptr [rdx]2193        movups  xmm5, xmmword ptr [rdx+10H]2194        movaps  xmm8, xmm42195        shufps  xmm4, xmm5, 1362196        shufps  xmm8, xmm5, 2212197        movaps  xmm5, xmm82198        movups  xmm6, xmmword ptr [rdx+20H]2199        movups  xmm7, xmmword ptr [rdx+30H]2200        movaps  xmm8, xmm62201        shufps  xmm6, xmm7, 1362202        pshufd  xmm6, xmm6, 93H2203        shufps  xmm8, xmm7, 2212204        pshufd  xmm7, xmm8, 93H2205        mov     al, 72206@@:2207        paddd   xmm0, xmm42208        paddd   xmm0, xmm12209        pxor    xmm3, xmm02210        pshuflw xmm3, xmm3, 0B1H2211        pshufhw xmm3, xmm3, 0B1H2212        paddd   xmm2, xmm32213        pxor    xmm1, xmm22214        movdqa  xmm11, xmm12215        pslld   xmm1, 202216        psrld   xmm11, 122217        por     xmm1, xmm112218        paddd   xmm0, xmm52219        paddd   xmm0, xmm12220        pxor    xmm3, xmm02221        movdqa  xmm14, xmm32222        psrld   xmm3, 82223        pslld   xmm14, 242224        pxor    xmm3, xmm142225        paddd   xmm2, xmm32226        pxor    xmm1, xmm22227        movdqa  xmm11, xmm12228        pslld   xmm1, 252229        psrld   xmm11, 72230        por     xmm1, xmm112231        pshufd  xmm0, xmm0, 93H2232        pshufd  xmm3, xmm3, 4EH2233        pshufd  xmm2, xmm2, 39H2234        paddd   xmm0, xmm62235        paddd   xmm0, xmm12236        pxor    xmm3, xmm02237        pshuflw xmm3, xmm3, 0B1H2238        pshufhw xmm3, xmm3, 0B1H2239        paddd   xmm2, xmm32240        pxor    xmm1, xmm22241        movdqa  xmm11, xmm12242        pslld   xmm1, 202243        psrld   xmm11, 122244        por     xmm1, xmm112245        paddd   xmm0, xmm72246        paddd   xmm0, xmm12247        pxor    xmm3, xmm02248        movdqa  xmm14, xmm32249        psrld   xmm3, 82250        pslld   xmm14, 242251        pxor    xmm3, xmm142252        paddd   xmm2, xmm32253        pxor    xmm1, xmm22254        movdqa  xmm11, xmm12255        pslld   xmm1, 252256        psrld   xmm11, 72257        por     xmm1, xmm112258        pshufd  xmm0, xmm0, 39H2259        pshufd  xmm3, xmm3, 4EH2260        pshufd  xmm2, xmm2, 93H2261        dec     al2262        jz      @F2263        movdqa  xmm8, xmm42264        shufps  xmm8, xmm5, 2142265        pshufd  xmm9, xmm4, 0FH2266        pshufd  xmm4, xmm8, 39H2267        movdqa  xmm8, xmm62268        shufps  xmm8, xmm7, 2502269        pand    xmm9, xmmword ptr [PBLENDW_0x33_MASK]2270        pand    xmm8, xmmword ptr [PBLENDW_0xCC_MASK]2271        por     xmm9, xmm82272        movdqa  xmm8, xmm72273        punpcklqdq xmm8, xmm52274        movdqa  xmm14, xmm62275        pand    xmm8, xmmword ptr [PBLENDW_0x3F_MASK]2276        pand    xmm14, xmmword ptr [PBLENDW_0xC0_MASK]2277        por     xmm8, xmm142278        pshufd  xmm8, xmm8, 78H2279        punpckhdq xmm5, xmm72280        punpckldq xmm6, xmm52281        pshufd  xmm7, xmm6, 1EH2282        movdqa  xmm5, xmm92283        movdqa  xmm6, xmm82284        jmp     @B2285@@:2286        movdqu  xmm4, xmmword ptr [rcx]2287        movdqu  xmm5, xmmword ptr [rcx+10H]2288        pxor    xmm0, xmm22289        pxor    xmm1, xmm32290        pxor    xmm2, xmm42291        pxor    xmm3, xmm52292        movups  xmmword ptr [r10], xmm02293        movups  xmmword ptr [r10+10H], xmm12294        movups  xmmword ptr [r10+20H], xmm22295        movups  xmmword ptr [r10+30H], xmm32296        movdqa  xmm6, xmmword ptr [rsp]2297        movdqa  xmm7, xmmword ptr [rsp+10H]2298        movdqa  xmm8, xmmword ptr [rsp+20H]2299        movdqa  xmm9, xmmword ptr [rsp+30H]2300        movdqa  xmm11, xmmword ptr [rsp+40H]2301        movdqa  xmm14, xmmword ptr [rsp+50H]2302        movdqa  xmm15, xmmword ptr [rsp+60H]2303        add     rsp, 1202304        ret2305_llvm_blake3_compress_xof_sse2 ENDP2306llvm_blake3_compress_xof_sse2 ENDP2307 2308_TEXT ENDS2309 2310 2311_RDATA SEGMENT READONLY PAGE ALIAS(".rdata") 'CONST'2312ALIGN   642313BLAKE3_IV:2314        dd 6A09E667H, 0BB67AE85H, 3C6EF372H, 0A54FF53AH2315 2316ADD0:2317        dd 0, 1, 2, 32318 2319ADD1:2320        dd 4 dup (4)2321 2322BLAKE3_IV_0:2323        dd 4 dup (6A09E667H)2324 2325BLAKE3_IV_1:2326        dd 4 dup (0BB67AE85H)2327 2328BLAKE3_IV_2:2329        dd 4 dup (3C6EF372H)2330 2331BLAKE3_IV_3:2332        dd 4 dup (0A54FF53AH)2333 2334BLAKE3_BLOCK_LEN:2335        dd 4 dup (64)2336 2337CMP_MSB_MASK:2338        dd 8 dup(80000000H)2339 2340PBLENDW_0x33_MASK:2341       dd 0FFFFFFFFH, 000000000H, 0FFFFFFFFH, 000000000H2342PBLENDW_0xCC_MASK:2343       dd 000000000H, 0FFFFFFFFH, 000000000H, 0FFFFFFFFH2344PBLENDW_0x3F_MASK:2345	dd 0FFFFFFFFH, 0FFFFFFFFH, 0FFFFFFFFH, 000000000H2346PBLENDW_0xC0_MASK:2347       dd 000000000H, 000000000H, 000000000H, 0FFFFFFFFH2348 2349_RDATA ENDS2350END2351