brintos

brintos / llvm-project-archived public Read only

0
0
Text · 62.0 KiB · b39180f Raw
2072 lines · plain
1#include "llvm_blake3_prefix.h"2 3.intel_syntax noprefix4.global blake3_hash_many_sse415.global _blake3_hash_many_sse416.global blake3_compress_in_place_sse417.global _blake3_compress_in_place_sse418.global blake3_compress_xof_sse419.global _blake3_compress_xof_sse4110.section .text11        .p2align  612_blake3_hash_many_sse41:13blake3_hash_many_sse41: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        movdqa  xmm8, xmmword ptr [ROT16+rip]197        pshufb  xmm12, xmm8198        pshufb  xmm13, xmm8199        pshufb  xmm14, xmm8200        pshufb  xmm15, xmm8201        movdqa  xmm8, xmmword ptr [BLAKE3_IV_0+rip]202        paddd   xmm8, xmm12203        paddd   xmm9, xmm13204        paddd   xmm10, xmm14205        paddd   xmm11, xmm15206        pxor    xmm4, xmm8207        pxor    xmm5, xmm9208        pxor    xmm6, xmm10209        pxor    xmm7, xmm11210        movdqa  xmmword ptr [rsp+0x100], xmm8211        movdqa  xmm8, xmm4212        psrld   xmm8, 12213        pslld   xmm4, 20214        por     xmm4, xmm8215        movdqa  xmm8, xmm5216        psrld   xmm8, 12217        pslld   xmm5, 20218        por     xmm5, xmm8219        movdqa  xmm8, xmm6220        psrld   xmm8, 12221        pslld   xmm6, 20222        por     xmm6, xmm8223        movdqa  xmm8, xmm7224        psrld   xmm8, 12225        pslld   xmm7, 20226        por     xmm7, xmm8227        paddd   xmm0, xmmword ptr [rsp+0x10]228        paddd   xmm1, xmmword ptr [rsp+0x30]229        paddd   xmm2, xmmword ptr [rsp+0x50]230        paddd   xmm3, xmmword ptr [rsp+0x70]231        paddd   xmm0, xmm4232        paddd   xmm1, xmm5233        paddd   xmm2, xmm6234        paddd   xmm3, xmm7235        pxor    xmm12, xmm0236        pxor    xmm13, xmm1237        pxor    xmm14, xmm2238        pxor    xmm15, xmm3239        movdqa  xmm8, xmmword ptr [ROT8+rip]240        pshufb  xmm12, xmm8241        pshufb  xmm13, xmm8242        pshufb  xmm14, xmm8243        pshufb  xmm15, xmm8244        movdqa  xmm8, xmmword ptr [rsp+0x100]245        paddd   xmm8, xmm12246        paddd   xmm9, xmm13247        paddd   xmm10, xmm14248        paddd   xmm11, xmm15249        pxor    xmm4, xmm8250        pxor    xmm5, xmm9251        pxor    xmm6, xmm10252        pxor    xmm7, xmm11253        movdqa  xmmword ptr [rsp+0x100], xmm8254        movdqa  xmm8, xmm4255        psrld   xmm8, 7256        pslld   xmm4, 25257        por     xmm4, xmm8258        movdqa  xmm8, xmm5259        psrld   xmm8, 7260        pslld   xmm5, 25261        por     xmm5, xmm8262        movdqa  xmm8, xmm6263        psrld   xmm8, 7264        pslld   xmm6, 25265        por     xmm6, xmm8266        movdqa  xmm8, xmm7267        psrld   xmm8, 7268        pslld   xmm7, 25269        por     xmm7, xmm8270        paddd   xmm0, xmmword ptr [rsp+0x80]271        paddd   xmm1, xmmword ptr [rsp+0xA0]272        paddd   xmm2, xmmword ptr [rsp+0xC0]273        paddd   xmm3, xmmword ptr [rsp+0xE0]274        paddd   xmm0, xmm5275        paddd   xmm1, xmm6276        paddd   xmm2, xmm7277        paddd   xmm3, xmm4278        pxor    xmm15, xmm0279        pxor    xmm12, xmm1280        pxor    xmm13, xmm2281        pxor    xmm14, xmm3282        movdqa  xmm8, xmmword ptr [ROT16+rip]283        pshufb  xmm15, xmm8284        pshufb  xmm12, xmm8285        pshufb  xmm13, xmm8286        pshufb  xmm14, xmm8287        paddd   xmm10, xmm15288        paddd   xmm11, xmm12289        movdqa  xmm8, xmmword ptr [rsp+0x100]290        paddd   xmm8, xmm13291        paddd   xmm9, xmm14292        pxor    xmm5, xmm10293        pxor    xmm6, xmm11294        pxor    xmm7, xmm8295        pxor    xmm4, xmm9296        movdqa  xmmword ptr [rsp+0x100], xmm8297        movdqa  xmm8, xmm5298        psrld   xmm8, 12299        pslld   xmm5, 20300        por     xmm5, xmm8301        movdqa  xmm8, xmm6302        psrld   xmm8, 12303        pslld   xmm6, 20304        por     xmm6, xmm8305        movdqa  xmm8, xmm7306        psrld   xmm8, 12307        pslld   xmm7, 20308        por     xmm7, xmm8309        movdqa  xmm8, xmm4310        psrld   xmm8, 12311        pslld   xmm4, 20312        por     xmm4, xmm8313        paddd   xmm0, xmmword ptr [rsp+0x90]314        paddd   xmm1, xmmword ptr [rsp+0xB0]315        paddd   xmm2, xmmword ptr [rsp+0xD0]316        paddd   xmm3, xmmword ptr [rsp+0xF0]317        paddd   xmm0, xmm5318        paddd   xmm1, xmm6319        paddd   xmm2, xmm7320        paddd   xmm3, xmm4321        pxor    xmm15, xmm0322        pxor    xmm12, xmm1323        pxor    xmm13, xmm2324        pxor    xmm14, xmm3325        movdqa  xmm8, xmmword ptr [ROT8+rip]326        pshufb  xmm15, xmm8327        pshufb  xmm12, xmm8328        pshufb  xmm13, xmm8329        pshufb  xmm14, xmm8330        paddd   xmm10, xmm15331        paddd   xmm11, xmm12332        movdqa  xmm8, xmmword ptr [rsp+0x100]333        paddd   xmm8, xmm13334        paddd   xmm9, xmm14335        pxor    xmm5, xmm10336        pxor    xmm6, xmm11337        pxor    xmm7, xmm8338        pxor    xmm4, xmm9339        movdqa  xmmword ptr [rsp+0x100], xmm8340        movdqa  xmm8, xmm5341        psrld   xmm8, 7342        pslld   xmm5, 25343        por     xmm5, xmm8344        movdqa  xmm8, xmm6345        psrld   xmm8, 7346        pslld   xmm6, 25347        por     xmm6, xmm8348        movdqa  xmm8, xmm7349        psrld   xmm8, 7350        pslld   xmm7, 25351        por     xmm7, xmm8352        movdqa  xmm8, xmm4353        psrld   xmm8, 7354        pslld   xmm4, 25355        por     xmm4, xmm8356        paddd   xmm0, xmmword ptr [rsp+0x20]357        paddd   xmm1, xmmword ptr [rsp+0x30]358        paddd   xmm2, xmmword ptr [rsp+0x70]359        paddd   xmm3, xmmword ptr [rsp+0x40]360        paddd   xmm0, xmm4361        paddd   xmm1, xmm5362        paddd   xmm2, xmm6363        paddd   xmm3, xmm7364        pxor    xmm12, xmm0365        pxor    xmm13, xmm1366        pxor    xmm14, xmm2367        pxor    xmm15, xmm3368        movdqa  xmm8, xmmword ptr [ROT16+rip]369        pshufb  xmm12, xmm8370        pshufb  xmm13, xmm8371        pshufb  xmm14, xmm8372        pshufb  xmm15, xmm8373        movdqa  xmm8, xmmword ptr [rsp+0x100]374        paddd   xmm8, xmm12375        paddd   xmm9, xmm13376        paddd   xmm10, xmm14377        paddd   xmm11, xmm15378        pxor    xmm4, xmm8379        pxor    xmm5, xmm9380        pxor    xmm6, xmm10381        pxor    xmm7, xmm11382        movdqa  xmmword ptr [rsp+0x100], xmm8383        movdqa  xmm8, xmm4384        psrld   xmm8, 12385        pslld   xmm4, 20386        por     xmm4, xmm8387        movdqa  xmm8, xmm5388        psrld   xmm8, 12389        pslld   xmm5, 20390        por     xmm5, xmm8391        movdqa  xmm8, xmm6392        psrld   xmm8, 12393        pslld   xmm6, 20394        por     xmm6, xmm8395        movdqa  xmm8, xmm7396        psrld   xmm8, 12397        pslld   xmm7, 20398        por     xmm7, xmm8399        paddd   xmm0, xmmword ptr [rsp+0x60]400        paddd   xmm1, xmmword ptr [rsp+0xA0]401        paddd   xmm2, xmmword ptr [rsp]402        paddd   xmm3, xmmword ptr [rsp+0xD0]403        paddd   xmm0, xmm4404        paddd   xmm1, xmm5405        paddd   xmm2, xmm6406        paddd   xmm3, xmm7407        pxor    xmm12, xmm0408        pxor    xmm13, xmm1409        pxor    xmm14, xmm2410        pxor    xmm15, xmm3411        movdqa  xmm8, xmmword ptr [ROT8+rip]412        pshufb  xmm12, xmm8413        pshufb  xmm13, xmm8414        pshufb  xmm14, xmm8415        pshufb  xmm15, xmm8416        movdqa  xmm8, xmmword ptr [rsp+0x100]417        paddd   xmm8, xmm12418        paddd   xmm9, xmm13419        paddd   xmm10, xmm14420        paddd   xmm11, xmm15421        pxor    xmm4, xmm8422        pxor    xmm5, xmm9423        pxor    xmm6, xmm10424        pxor    xmm7, xmm11425        movdqa  xmmword ptr [rsp+0x100], xmm8426        movdqa  xmm8, xmm4427        psrld   xmm8, 7428        pslld   xmm4, 25429        por     xmm4, xmm8430        movdqa  xmm8, xmm5431        psrld   xmm8, 7432        pslld   xmm5, 25433        por     xmm5, xmm8434        movdqa  xmm8, xmm6435        psrld   xmm8, 7436        pslld   xmm6, 25437        por     xmm6, xmm8438        movdqa  xmm8, xmm7439        psrld   xmm8, 7440        pslld   xmm7, 25441        por     xmm7, xmm8442        paddd   xmm0, xmmword ptr [rsp+0x10]443        paddd   xmm1, xmmword ptr [rsp+0xC0]444        paddd   xmm2, xmmword ptr [rsp+0x90]445        paddd   xmm3, xmmword ptr [rsp+0xF0]446        paddd   xmm0, xmm5447        paddd   xmm1, xmm6448        paddd   xmm2, xmm7449        paddd   xmm3, xmm4450        pxor    xmm15, xmm0451        pxor    xmm12, xmm1452        pxor    xmm13, xmm2453        pxor    xmm14, xmm3454        movdqa  xmm8, xmmword ptr [ROT16+rip]455        pshufb  xmm15, xmm8456        pshufb  xmm12, xmm8457        pshufb  xmm13, xmm8458        pshufb  xmm14, xmm8459        paddd   xmm10, xmm15460        paddd   xmm11, xmm12461        movdqa  xmm8, xmmword ptr [rsp+0x100]462        paddd   xmm8, xmm13463        paddd   xmm9, xmm14464        pxor    xmm5, xmm10465        pxor    xmm6, xmm11466        pxor    xmm7, xmm8467        pxor    xmm4, xmm9468        movdqa  xmmword ptr [rsp+0x100], xmm8469        movdqa  xmm8, xmm5470        psrld   xmm8, 12471        pslld   xmm5, 20472        por     xmm5, xmm8473        movdqa  xmm8, xmm6474        psrld   xmm8, 12475        pslld   xmm6, 20476        por     xmm6, xmm8477        movdqa  xmm8, xmm7478        psrld   xmm8, 12479        pslld   xmm7, 20480        por     xmm7, xmm8481        movdqa  xmm8, xmm4482        psrld   xmm8, 12483        pslld   xmm4, 20484        por     xmm4, xmm8485        paddd   xmm0, xmmword ptr [rsp+0xB0]486        paddd   xmm1, xmmword ptr [rsp+0x50]487        paddd   xmm2, xmmword ptr [rsp+0xE0]488        paddd   xmm3, xmmword ptr [rsp+0x80]489        paddd   xmm0, xmm5490        paddd   xmm1, xmm6491        paddd   xmm2, xmm7492        paddd   xmm3, xmm4493        pxor    xmm15, xmm0494        pxor    xmm12, xmm1495        pxor    xmm13, xmm2496        pxor    xmm14, xmm3497        movdqa  xmm8, xmmword ptr [ROT8+rip]498        pshufb  xmm15, xmm8499        pshufb  xmm12, xmm8500        pshufb  xmm13, xmm8501        pshufb  xmm14, xmm8502        paddd   xmm10, xmm15503        paddd   xmm11, xmm12504        movdqa  xmm8, xmmword ptr [rsp+0x100]505        paddd   xmm8, xmm13506        paddd   xmm9, xmm14507        pxor    xmm5, xmm10508        pxor    xmm6, xmm11509        pxor    xmm7, xmm8510        pxor    xmm4, xmm9511        movdqa  xmmword ptr [rsp+0x100], xmm8512        movdqa  xmm8, xmm5513        psrld   xmm8, 7514        pslld   xmm5, 25515        por     xmm5, xmm8516        movdqa  xmm8, xmm6517        psrld   xmm8, 7518        pslld   xmm6, 25519        por     xmm6, xmm8520        movdqa  xmm8, xmm7521        psrld   xmm8, 7522        pslld   xmm7, 25523        por     xmm7, xmm8524        movdqa  xmm8, xmm4525        psrld   xmm8, 7526        pslld   xmm4, 25527        por     xmm4, xmm8528        paddd   xmm0, xmmword ptr [rsp+0x30]529        paddd   xmm1, xmmword ptr [rsp+0xA0]530        paddd   xmm2, xmmword ptr [rsp+0xD0]531        paddd   xmm3, xmmword ptr [rsp+0x70]532        paddd   xmm0, xmm4533        paddd   xmm1, xmm5534        paddd   xmm2, xmm6535        paddd   xmm3, xmm7536        pxor    xmm12, xmm0537        pxor    xmm13, xmm1538        pxor    xmm14, xmm2539        pxor    xmm15, xmm3540        movdqa  xmm8, xmmword ptr [ROT16+rip]541        pshufb  xmm12, xmm8542        pshufb  xmm13, xmm8543        pshufb  xmm14, xmm8544        pshufb  xmm15, xmm8545        movdqa  xmm8, xmmword ptr [rsp+0x100]546        paddd   xmm8, xmm12547        paddd   xmm9, xmm13548        paddd   xmm10, xmm14549        paddd   xmm11, xmm15550        pxor    xmm4, xmm8551        pxor    xmm5, xmm9552        pxor    xmm6, xmm10553        pxor    xmm7, xmm11554        movdqa  xmmword ptr [rsp+0x100], xmm8555        movdqa  xmm8, xmm4556        psrld   xmm8, 12557        pslld   xmm4, 20558        por     xmm4, xmm8559        movdqa  xmm8, xmm5560        psrld   xmm8, 12561        pslld   xmm5, 20562        por     xmm5, xmm8563        movdqa  xmm8, xmm6564        psrld   xmm8, 12565        pslld   xmm6, 20566        por     xmm6, xmm8567        movdqa  xmm8, xmm7568        psrld   xmm8, 12569        pslld   xmm7, 20570        por     xmm7, xmm8571        paddd   xmm0, xmmword ptr [rsp+0x40]572        paddd   xmm1, xmmword ptr [rsp+0xC0]573        paddd   xmm2, xmmword ptr [rsp+0x20]574        paddd   xmm3, xmmword ptr [rsp+0xE0]575        paddd   xmm0, xmm4576        paddd   xmm1, xmm5577        paddd   xmm2, xmm6578        paddd   xmm3, xmm7579        pxor    xmm12, xmm0580        pxor    xmm13, xmm1581        pxor    xmm14, xmm2582        pxor    xmm15, xmm3583        movdqa  xmm8, xmmword ptr [ROT8+rip]584        pshufb  xmm12, xmm8585        pshufb  xmm13, xmm8586        pshufb  xmm14, xmm8587        pshufb  xmm15, xmm8588        movdqa  xmm8, xmmword ptr [rsp+0x100]589        paddd   xmm8, xmm12590        paddd   xmm9, xmm13591        paddd   xmm10, xmm14592        paddd   xmm11, xmm15593        pxor    xmm4, xmm8594        pxor    xmm5, xmm9595        pxor    xmm6, xmm10596        pxor    xmm7, xmm11597        movdqa  xmmword ptr [rsp+0x100], xmm8598        movdqa  xmm8, xmm4599        psrld   xmm8, 7600        pslld   xmm4, 25601        por     xmm4, xmm8602        movdqa  xmm8, xmm5603        psrld   xmm8, 7604        pslld   xmm5, 25605        por     xmm5, xmm8606        movdqa  xmm8, xmm6607        psrld   xmm8, 7608        pslld   xmm6, 25609        por     xmm6, xmm8610        movdqa  xmm8, xmm7611        psrld   xmm8, 7612        pslld   xmm7, 25613        por     xmm7, xmm8614        paddd   xmm0, xmmword ptr [rsp+0x60]615        paddd   xmm1, xmmword ptr [rsp+0x90]616        paddd   xmm2, xmmword ptr [rsp+0xB0]617        paddd   xmm3, xmmword ptr [rsp+0x80]618        paddd   xmm0, xmm5619        paddd   xmm1, xmm6620        paddd   xmm2, xmm7621        paddd   xmm3, xmm4622        pxor    xmm15, xmm0623        pxor    xmm12, xmm1624        pxor    xmm13, xmm2625        pxor    xmm14, xmm3626        movdqa  xmm8, xmmword ptr [ROT16+rip]627        pshufb  xmm15, xmm8628        pshufb  xmm12, xmm8629        pshufb  xmm13, xmm8630        pshufb  xmm14, xmm8631        paddd   xmm10, xmm15632        paddd   xmm11, xmm12633        movdqa  xmm8, xmmword ptr [rsp+0x100]634        paddd   xmm8, xmm13635        paddd   xmm9, xmm14636        pxor    xmm5, xmm10637        pxor    xmm6, xmm11638        pxor    xmm7, xmm8639        pxor    xmm4, xmm9640        movdqa  xmmword ptr [rsp+0x100], xmm8641        movdqa  xmm8, xmm5642        psrld   xmm8, 12643        pslld   xmm5, 20644        por     xmm5, xmm8645        movdqa  xmm8, xmm6646        psrld   xmm8, 12647        pslld   xmm6, 20648        por     xmm6, xmm8649        movdqa  xmm8, xmm7650        psrld   xmm8, 12651        pslld   xmm7, 20652        por     xmm7, xmm8653        movdqa  xmm8, xmm4654        psrld   xmm8, 12655        pslld   xmm4, 20656        por     xmm4, xmm8657        paddd   xmm0, xmmword ptr [rsp+0x50]658        paddd   xmm1, xmmword ptr [rsp]659        paddd   xmm2, xmmword ptr [rsp+0xF0]660        paddd   xmm3, xmmword ptr [rsp+0x10]661        paddd   xmm0, xmm5662        paddd   xmm1, xmm6663        paddd   xmm2, xmm7664        paddd   xmm3, xmm4665        pxor    xmm15, xmm0666        pxor    xmm12, xmm1667        pxor    xmm13, xmm2668        pxor    xmm14, xmm3669        movdqa  xmm8, xmmword ptr [ROT8+rip]670        pshufb  xmm15, xmm8671        pshufb  xmm12, xmm8672        pshufb  xmm13, xmm8673        pshufb  xmm14, xmm8674        paddd   xmm10, xmm15675        paddd   xmm11, xmm12676        movdqa  xmm8, xmmword ptr [rsp+0x100]677        paddd   xmm8, xmm13678        paddd   xmm9, xmm14679        pxor    xmm5, xmm10680        pxor    xmm6, xmm11681        pxor    xmm7, xmm8682        pxor    xmm4, xmm9683        movdqa  xmmword ptr [rsp+0x100], xmm8684        movdqa  xmm8, xmm5685        psrld   xmm8, 7686        pslld   xmm5, 25687        por     xmm5, xmm8688        movdqa  xmm8, xmm6689        psrld   xmm8, 7690        pslld   xmm6, 25691        por     xmm6, xmm8692        movdqa  xmm8, xmm7693        psrld   xmm8, 7694        pslld   xmm7, 25695        por     xmm7, xmm8696        movdqa  xmm8, xmm4697        psrld   xmm8, 7698        pslld   xmm4, 25699        por     xmm4, xmm8700        paddd   xmm0, xmmword ptr [rsp+0xA0]701        paddd   xmm1, xmmword ptr [rsp+0xC0]702        paddd   xmm2, xmmword ptr [rsp+0xE0]703        paddd   xmm3, xmmword ptr [rsp+0xD0]704        paddd   xmm0, xmm4705        paddd   xmm1, xmm5706        paddd   xmm2, xmm6707        paddd   xmm3, xmm7708        pxor    xmm12, xmm0709        pxor    xmm13, xmm1710        pxor    xmm14, xmm2711        pxor    xmm15, xmm3712        movdqa  xmm8, xmmword ptr [ROT16+rip]713        pshufb  xmm12, xmm8714        pshufb  xmm13, xmm8715        pshufb  xmm14, xmm8716        pshufb  xmm15, xmm8717        movdqa  xmm8, xmmword ptr [rsp+0x100]718        paddd   xmm8, xmm12719        paddd   xmm9, xmm13720        paddd   xmm10, xmm14721        paddd   xmm11, xmm15722        pxor    xmm4, xmm8723        pxor    xmm5, xmm9724        pxor    xmm6, xmm10725        pxor    xmm7, xmm11726        movdqa  xmmword ptr [rsp+0x100], xmm8727        movdqa  xmm8, xmm4728        psrld   xmm8, 12729        pslld   xmm4, 20730        por     xmm4, xmm8731        movdqa  xmm8, xmm5732        psrld   xmm8, 12733        pslld   xmm5, 20734        por     xmm5, xmm8735        movdqa  xmm8, xmm6736        psrld   xmm8, 12737        pslld   xmm6, 20738        por     xmm6, xmm8739        movdqa  xmm8, xmm7740        psrld   xmm8, 12741        pslld   xmm7, 20742        por     xmm7, xmm8743        paddd   xmm0, xmmword ptr [rsp+0x70]744        paddd   xmm1, xmmword ptr [rsp+0x90]745        paddd   xmm2, xmmword ptr [rsp+0x30]746        paddd   xmm3, xmmword ptr [rsp+0xF0]747        paddd   xmm0, xmm4748        paddd   xmm1, xmm5749        paddd   xmm2, xmm6750        paddd   xmm3, xmm7751        pxor    xmm12, xmm0752        pxor    xmm13, xmm1753        pxor    xmm14, xmm2754        pxor    xmm15, xmm3755        movdqa  xmm8, xmmword ptr [ROT8+rip]756        pshufb  xmm12, xmm8757        pshufb  xmm13, xmm8758        pshufb  xmm14, xmm8759        pshufb  xmm15, xmm8760        movdqa  xmm8, xmmword ptr [rsp+0x100]761        paddd   xmm8, xmm12762        paddd   xmm9, xmm13763        paddd   xmm10, xmm14764        paddd   xmm11, xmm15765        pxor    xmm4, xmm8766        pxor    xmm5, xmm9767        pxor    xmm6, xmm10768        pxor    xmm7, xmm11769        movdqa  xmmword ptr [rsp+0x100], xmm8770        movdqa  xmm8, xmm4771        psrld   xmm8, 7772        pslld   xmm4, 25773        por     xmm4, xmm8774        movdqa  xmm8, xmm5775        psrld   xmm8, 7776        pslld   xmm5, 25777        por     xmm5, xmm8778        movdqa  xmm8, xmm6779        psrld   xmm8, 7780        pslld   xmm6, 25781        por     xmm6, xmm8782        movdqa  xmm8, xmm7783        psrld   xmm8, 7784        pslld   xmm7, 25785        por     xmm7, xmm8786        paddd   xmm0, xmmword ptr [rsp+0x40]787        paddd   xmm1, xmmword ptr [rsp+0xB0]788        paddd   xmm2, xmmword ptr [rsp+0x50]789        paddd   xmm3, xmmword ptr [rsp+0x10]790        paddd   xmm0, xmm5791        paddd   xmm1, xmm6792        paddd   xmm2, xmm7793        paddd   xmm3, xmm4794        pxor    xmm15, xmm0795        pxor    xmm12, xmm1796        pxor    xmm13, xmm2797        pxor    xmm14, xmm3798        movdqa  xmm8, xmmword ptr [ROT16+rip]799        pshufb  xmm15, xmm8800        pshufb  xmm12, xmm8801        pshufb  xmm13, xmm8802        pshufb  xmm14, xmm8803        paddd   xmm10, xmm15804        paddd   xmm11, xmm12805        movdqa  xmm8, xmmword ptr [rsp+0x100]806        paddd   xmm8, xmm13807        paddd   xmm9, xmm14808        pxor    xmm5, xmm10809        pxor    xmm6, xmm11810        pxor    xmm7, xmm8811        pxor    xmm4, xmm9812        movdqa  xmmword ptr [rsp+0x100], xmm8813        movdqa  xmm8, xmm5814        psrld   xmm8, 12815        pslld   xmm5, 20816        por     xmm5, xmm8817        movdqa  xmm8, xmm6818        psrld   xmm8, 12819        pslld   xmm6, 20820        por     xmm6, xmm8821        movdqa  xmm8, xmm7822        psrld   xmm8, 12823        pslld   xmm7, 20824        por     xmm7, xmm8825        movdqa  xmm8, xmm4826        psrld   xmm8, 12827        pslld   xmm4, 20828        por     xmm4, xmm8829        paddd   xmm0, xmmword ptr [rsp]830        paddd   xmm1, xmmword ptr [rsp+0x20]831        paddd   xmm2, xmmword ptr [rsp+0x80]832        paddd   xmm3, xmmword ptr [rsp+0x60]833        paddd   xmm0, xmm5834        paddd   xmm1, xmm6835        paddd   xmm2, xmm7836        paddd   xmm3, xmm4837        pxor    xmm15, xmm0838        pxor    xmm12, xmm1839        pxor    xmm13, xmm2840        pxor    xmm14, xmm3841        movdqa  xmm8, xmmword ptr [ROT8+rip]842        pshufb  xmm15, xmm8843        pshufb  xmm12, xmm8844        pshufb  xmm13, xmm8845        pshufb  xmm14, xmm8846        paddd   xmm10, xmm15847        paddd   xmm11, xmm12848        movdqa  xmm8, xmmword ptr [rsp+0x100]849        paddd   xmm8, xmm13850        paddd   xmm9, xmm14851        pxor    xmm5, xmm10852        pxor    xmm6, xmm11853        pxor    xmm7, xmm8854        pxor    xmm4, xmm9855        movdqa  xmmword ptr [rsp+0x100], xmm8856        movdqa  xmm8, xmm5857        psrld   xmm8, 7858        pslld   xmm5, 25859        por     xmm5, xmm8860        movdqa  xmm8, xmm6861        psrld   xmm8, 7862        pslld   xmm6, 25863        por     xmm6, xmm8864        movdqa  xmm8, xmm7865        psrld   xmm8, 7866        pslld   xmm7, 25867        por     xmm7, xmm8868        movdqa  xmm8, xmm4869        psrld   xmm8, 7870        pslld   xmm4, 25871        por     xmm4, xmm8872        paddd   xmm0, xmmword ptr [rsp+0xC0]873        paddd   xmm1, xmmword ptr [rsp+0x90]874        paddd   xmm2, xmmword ptr [rsp+0xF0]875        paddd   xmm3, xmmword ptr [rsp+0xE0]876        paddd   xmm0, xmm4877        paddd   xmm1, xmm5878        paddd   xmm2, xmm6879        paddd   xmm3, xmm7880        pxor    xmm12, xmm0881        pxor    xmm13, xmm1882        pxor    xmm14, xmm2883        pxor    xmm15, xmm3884        movdqa  xmm8, xmmword ptr [ROT16+rip]885        pshufb  xmm12, xmm8886        pshufb  xmm13, xmm8887        pshufb  xmm14, xmm8888        pshufb  xmm15, xmm8889        movdqa  xmm8, xmmword ptr [rsp+0x100]890        paddd   xmm8, xmm12891        paddd   xmm9, xmm13892        paddd   xmm10, xmm14893        paddd   xmm11, xmm15894        pxor    xmm4, xmm8895        pxor    xmm5, xmm9896        pxor    xmm6, xmm10897        pxor    xmm7, xmm11898        movdqa  xmmword ptr [rsp+0x100], xmm8899        movdqa  xmm8, xmm4900        psrld   xmm8, 12901        pslld   xmm4, 20902        por     xmm4, xmm8903        movdqa  xmm8, xmm5904        psrld   xmm8, 12905        pslld   xmm5, 20906        por     xmm5, xmm8907        movdqa  xmm8, xmm6908        psrld   xmm8, 12909        pslld   xmm6, 20910        por     xmm6, xmm8911        movdqa  xmm8, xmm7912        psrld   xmm8, 12913        pslld   xmm7, 20914        por     xmm7, xmm8915        paddd   xmm0, xmmword ptr [rsp+0xD0]916        paddd   xmm1, xmmword ptr [rsp+0xB0]917        paddd   xmm2, xmmword ptr [rsp+0xA0]918        paddd   xmm3, xmmword ptr [rsp+0x80]919        paddd   xmm0, xmm4920        paddd   xmm1, xmm5921        paddd   xmm2, xmm6922        paddd   xmm3, xmm7923        pxor    xmm12, xmm0924        pxor    xmm13, xmm1925        pxor    xmm14, xmm2926        pxor    xmm15, xmm3927        movdqa  xmm8, xmmword ptr [ROT8+rip]928        pshufb  xmm12, xmm8929        pshufb  xmm13, xmm8930        pshufb  xmm14, xmm8931        pshufb  xmm15, xmm8932        movdqa  xmm8, xmmword ptr [rsp+0x100]933        paddd   xmm8, xmm12934        paddd   xmm9, xmm13935        paddd   xmm10, xmm14936        paddd   xmm11, xmm15937        pxor    xmm4, xmm8938        pxor    xmm5, xmm9939        pxor    xmm6, xmm10940        pxor    xmm7, xmm11941        movdqa  xmmword ptr [rsp+0x100], xmm8942        movdqa  xmm8, xmm4943        psrld   xmm8, 7944        pslld   xmm4, 25945        por     xmm4, xmm8946        movdqa  xmm8, xmm5947        psrld   xmm8, 7948        pslld   xmm5, 25949        por     xmm5, xmm8950        movdqa  xmm8, xmm6951        psrld   xmm8, 7952        pslld   xmm6, 25953        por     xmm6, xmm8954        movdqa  xmm8, xmm7955        psrld   xmm8, 7956        pslld   xmm7, 25957        por     xmm7, xmm8958        paddd   xmm0, xmmword ptr [rsp+0x70]959        paddd   xmm1, xmmword ptr [rsp+0x50]960        paddd   xmm2, xmmword ptr [rsp]961        paddd   xmm3, xmmword ptr [rsp+0x60]962        paddd   xmm0, xmm5963        paddd   xmm1, xmm6964        paddd   xmm2, xmm7965        paddd   xmm3, xmm4966        pxor    xmm15, xmm0967        pxor    xmm12, xmm1968        pxor    xmm13, xmm2969        pxor    xmm14, xmm3970        movdqa  xmm8, xmmword ptr [ROT16+rip]971        pshufb  xmm15, xmm8972        pshufb  xmm12, xmm8973        pshufb  xmm13, xmm8974        pshufb  xmm14, xmm8975        paddd   xmm10, xmm15976        paddd   xmm11, xmm12977        movdqa  xmm8, xmmword ptr [rsp+0x100]978        paddd   xmm8, xmm13979        paddd   xmm9, xmm14980        pxor    xmm5, xmm10981        pxor    xmm6, xmm11982        pxor    xmm7, xmm8983        pxor    xmm4, xmm9984        movdqa  xmmword ptr [rsp+0x100], xmm8985        movdqa  xmm8, xmm5986        psrld   xmm8, 12987        pslld   xmm5, 20988        por     xmm5, xmm8989        movdqa  xmm8, xmm6990        psrld   xmm8, 12991        pslld   xmm6, 20992        por     xmm6, xmm8993        movdqa  xmm8, xmm7994        psrld   xmm8, 12995        pslld   xmm7, 20996        por     xmm7, xmm8997        movdqa  xmm8, xmm4998        psrld   xmm8, 12999        pslld   xmm4, 201000        por     xmm4, xmm81001        paddd   xmm0, xmmword ptr [rsp+0x20]1002        paddd   xmm1, xmmword ptr [rsp+0x30]1003        paddd   xmm2, xmmword ptr [rsp+0x10]1004        paddd   xmm3, xmmword ptr [rsp+0x40]1005        paddd   xmm0, xmm51006        paddd   xmm1, xmm61007        paddd   xmm2, xmm71008        paddd   xmm3, xmm41009        pxor    xmm15, xmm01010        pxor    xmm12, xmm11011        pxor    xmm13, xmm21012        pxor    xmm14, xmm31013        movdqa  xmm8, xmmword ptr [ROT8+rip]1014        pshufb  xmm15, xmm81015        pshufb  xmm12, xmm81016        pshufb  xmm13, xmm81017        pshufb  xmm14, xmm81018        paddd   xmm10, xmm151019        paddd   xmm11, xmm121020        movdqa  xmm8, xmmword ptr [rsp+0x100]1021        paddd   xmm8, xmm131022        paddd   xmm9, xmm141023        pxor    xmm5, xmm101024        pxor    xmm6, xmm111025        pxor    xmm7, xmm81026        pxor    xmm4, xmm91027        movdqa  xmmword ptr [rsp+0x100], xmm81028        movdqa  xmm8, xmm51029        psrld   xmm8, 71030        pslld   xmm5, 251031        por     xmm5, xmm81032        movdqa  xmm8, xmm61033        psrld   xmm8, 71034        pslld   xmm6, 251035        por     xmm6, xmm81036        movdqa  xmm8, xmm71037        psrld   xmm8, 71038        pslld   xmm7, 251039        por     xmm7, xmm81040        movdqa  xmm8, xmm41041        psrld   xmm8, 71042        pslld   xmm4, 251043        por     xmm4, xmm81044        paddd   xmm0, xmmword ptr [rsp+0x90]1045        paddd   xmm1, xmmword ptr [rsp+0xB0]1046        paddd   xmm2, xmmword ptr [rsp+0x80]1047        paddd   xmm3, xmmword ptr [rsp+0xF0]1048        paddd   xmm0, xmm41049        paddd   xmm1, xmm51050        paddd   xmm2, xmm61051        paddd   xmm3, xmm71052        pxor    xmm12, xmm01053        pxor    xmm13, xmm11054        pxor    xmm14, xmm21055        pxor    xmm15, xmm31056        movdqa  xmm8, xmmword ptr [ROT16+rip]1057        pshufb  xmm12, xmm81058        pshufb  xmm13, xmm81059        pshufb  xmm14, xmm81060        pshufb  xmm15, xmm81061        movdqa  xmm8, xmmword ptr [rsp+0x100]1062        paddd   xmm8, xmm121063        paddd   xmm9, xmm131064        paddd   xmm10, xmm141065        paddd   xmm11, xmm151066        pxor    xmm4, xmm81067        pxor    xmm5, xmm91068        pxor    xmm6, xmm101069        pxor    xmm7, xmm111070        movdqa  xmmword ptr [rsp+0x100], xmm81071        movdqa  xmm8, xmm41072        psrld   xmm8, 121073        pslld   xmm4, 201074        por     xmm4, xmm81075        movdqa  xmm8, xmm51076        psrld   xmm8, 121077        pslld   xmm5, 201078        por     xmm5, xmm81079        movdqa  xmm8, xmm61080        psrld   xmm8, 121081        pslld   xmm6, 201082        por     xmm6, xmm81083        movdqa  xmm8, xmm71084        psrld   xmm8, 121085        pslld   xmm7, 201086        por     xmm7, xmm81087        paddd   xmm0, xmmword ptr [rsp+0xE0]1088        paddd   xmm1, xmmword ptr [rsp+0x50]1089        paddd   xmm2, xmmword ptr [rsp+0xC0]1090        paddd   xmm3, xmmword ptr [rsp+0x10]1091        paddd   xmm0, xmm41092        paddd   xmm1, xmm51093        paddd   xmm2, xmm61094        paddd   xmm3, xmm71095        pxor    xmm12, xmm01096        pxor    xmm13, xmm11097        pxor    xmm14, xmm21098        pxor    xmm15, xmm31099        movdqa  xmm8, xmmword ptr [ROT8+rip]1100        pshufb  xmm12, xmm81101        pshufb  xmm13, xmm81102        pshufb  xmm14, xmm81103        pshufb  xmm15, xmm81104        movdqa  xmm8, xmmword ptr [rsp+0x100]1105        paddd   xmm8, xmm121106        paddd   xmm9, xmm131107        paddd   xmm10, xmm141108        paddd   xmm11, xmm151109        pxor    xmm4, xmm81110        pxor    xmm5, xmm91111        pxor    xmm6, xmm101112        pxor    xmm7, xmm111113        movdqa  xmmword ptr [rsp+0x100], xmm81114        movdqa  xmm8, xmm41115        psrld   xmm8, 71116        pslld   xmm4, 251117        por     xmm4, xmm81118        movdqa  xmm8, xmm51119        psrld   xmm8, 71120        pslld   xmm5, 251121        por     xmm5, xmm81122        movdqa  xmm8, xmm61123        psrld   xmm8, 71124        pslld   xmm6, 251125        por     xmm6, xmm81126        movdqa  xmm8, xmm71127        psrld   xmm8, 71128        pslld   xmm7, 251129        por     xmm7, xmm81130        paddd   xmm0, xmmword ptr [rsp+0xD0]1131        paddd   xmm1, xmmword ptr [rsp]1132        paddd   xmm2, xmmword ptr [rsp+0x20]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, xmmword ptr [ROT16+rip]1143        pshufb  xmm15, xmm81144        pshufb  xmm12, xmm81145        pshufb  xmm13, xmm81146        pshufb  xmm14, xmm81147        paddd   xmm10, xmm151148        paddd   xmm11, xmm121149        movdqa  xmm8, xmmword ptr [rsp+0x100]1150        paddd   xmm8, xmm131151        paddd   xmm9, xmm141152        pxor    xmm5, xmm101153        pxor    xmm6, xmm111154        pxor    xmm7, xmm81155        pxor    xmm4, xmm91156        movdqa  xmmword ptr [rsp+0x100], xmm81157        movdqa  xmm8, xmm51158        psrld   xmm8, 121159        pslld   xmm5, 201160        por     xmm5, xmm81161        movdqa  xmm8, xmm61162        psrld   xmm8, 121163        pslld   xmm6, 201164        por     xmm6, xmm81165        movdqa  xmm8, xmm71166        psrld   xmm8, 121167        pslld   xmm7, 201168        por     xmm7, xmm81169        movdqa  xmm8, xmm41170        psrld   xmm8, 121171        pslld   xmm4, 201172        por     xmm4, xmm81173        paddd   xmm0, xmmword ptr [rsp+0x30]1174        paddd   xmm1, xmmword ptr [rsp+0xA0]1175        paddd   xmm2, xmmword ptr [rsp+0x60]1176        paddd   xmm3, xmmword ptr [rsp+0x70]1177        paddd   xmm0, xmm51178        paddd   xmm1, xmm61179        paddd   xmm2, xmm71180        paddd   xmm3, xmm41181        pxor    xmm15, xmm01182        pxor    xmm12, xmm11183        pxor    xmm13, xmm21184        pxor    xmm14, xmm31185        movdqa  xmm8, xmmword ptr [ROT8+rip]1186        pshufb  xmm15, xmm81187        pshufb  xmm12, xmm81188        pshufb  xmm13, xmm81189        pshufb  xmm14, xmm81190        paddd   xmm10, xmm151191        paddd   xmm11, xmm121192        movdqa  xmm8, xmmword ptr [rsp+0x100]1193        paddd   xmm8, xmm131194        paddd   xmm9, xmm141195        pxor    xmm5, xmm101196        pxor    xmm6, xmm111197        pxor    xmm7, xmm81198        pxor    xmm4, xmm91199        movdqa  xmmword ptr [rsp+0x100], xmm81200        movdqa  xmm8, xmm51201        psrld   xmm8, 71202        pslld   xmm5, 251203        por     xmm5, xmm81204        movdqa  xmm8, xmm61205        psrld   xmm8, 71206        pslld   xmm6, 251207        por     xmm6, xmm81208        movdqa  xmm8, xmm71209        psrld   xmm8, 71210        pslld   xmm7, 251211        por     xmm7, xmm81212        movdqa  xmm8, xmm41213        psrld   xmm8, 71214        pslld   xmm4, 251215        por     xmm4, xmm81216        paddd   xmm0, xmmword ptr [rsp+0xB0]1217        paddd   xmm1, xmmword ptr [rsp+0x50]1218        paddd   xmm2, xmmword ptr [rsp+0x10]1219        paddd   xmm3, xmmword ptr [rsp+0x80]1220        paddd   xmm0, xmm41221        paddd   xmm1, xmm51222        paddd   xmm2, xmm61223        paddd   xmm3, xmm71224        pxor    xmm12, xmm01225        pxor    xmm13, xmm11226        pxor    xmm14, xmm21227        pxor    xmm15, xmm31228        movdqa  xmm8, xmmword ptr [ROT16+rip]1229        pshufb  xmm12, xmm81230        pshufb  xmm13, xmm81231        pshufb  xmm14, xmm81232        pshufb  xmm15, xmm81233        movdqa  xmm8, xmmword ptr [rsp+0x100]1234        paddd   xmm8, xmm121235        paddd   xmm9, xmm131236        paddd   xmm10, xmm141237        paddd   xmm11, xmm151238        pxor    xmm4, xmm81239        pxor    xmm5, xmm91240        pxor    xmm6, xmm101241        pxor    xmm7, xmm111242        movdqa  xmmword ptr [rsp+0x100], xmm81243        movdqa  xmm8, xmm41244        psrld   xmm8, 121245        pslld   xmm4, 201246        por     xmm4, xmm81247        movdqa  xmm8, xmm51248        psrld   xmm8, 121249        pslld   xmm5, 201250        por     xmm5, xmm81251        movdqa  xmm8, xmm61252        psrld   xmm8, 121253        pslld   xmm6, 201254        por     xmm6, xmm81255        movdqa  xmm8, xmm71256        psrld   xmm8, 121257        pslld   xmm7, 201258        por     xmm7, xmm81259        paddd   xmm0, xmmword ptr [rsp+0xF0]1260        paddd   xmm1, xmmword ptr [rsp]1261        paddd   xmm2, xmmword ptr [rsp+0x90]1262        paddd   xmm3, xmmword ptr [rsp+0x60]1263        paddd   xmm0, xmm41264        paddd   xmm1, xmm51265        paddd   xmm2, xmm61266        paddd   xmm3, xmm71267        pxor    xmm12, xmm01268        pxor    xmm13, xmm11269        pxor    xmm14, xmm21270        pxor    xmm15, xmm31271        movdqa  xmm8, xmmword ptr [ROT8+rip]1272        pshufb  xmm12, xmm81273        pshufb  xmm13, xmm81274        pshufb  xmm14, xmm81275        pshufb  xmm15, xmm81276        movdqa  xmm8, xmmword ptr [rsp+0x100]1277        paddd   xmm8, xmm121278        paddd   xmm9, xmm131279        paddd   xmm10, xmm141280        paddd   xmm11, xmm151281        pxor    xmm4, xmm81282        pxor    xmm5, xmm91283        pxor    xmm6, xmm101284        pxor    xmm7, xmm111285        movdqa  xmmword ptr [rsp+0x100], xmm81286        movdqa  xmm8, xmm41287        psrld   xmm8, 71288        pslld   xmm4, 251289        por     xmm4, xmm81290        movdqa  xmm8, xmm51291        psrld   xmm8, 71292        pslld   xmm5, 251293        por     xmm5, xmm81294        movdqa  xmm8, xmm61295        psrld   xmm8, 71296        pslld   xmm6, 251297        por     xmm6, xmm81298        movdqa  xmm8, xmm71299        psrld   xmm8, 71300        pslld   xmm7, 251301        por     xmm7, xmm81302        paddd   xmm0, xmmword ptr [rsp+0xE0]1303        paddd   xmm1, xmmword ptr [rsp+0x20]1304        paddd   xmm2, xmmword ptr [rsp+0x30]1305        paddd   xmm3, xmmword ptr [rsp+0x70]1306        paddd   xmm0, xmm51307        paddd   xmm1, xmm61308        paddd   xmm2, xmm71309        paddd   xmm3, xmm41310        pxor    xmm15, xmm01311        pxor    xmm12, xmm11312        pxor    xmm13, xmm21313        pxor    xmm14, xmm31314        movdqa  xmm8, xmmword ptr [ROT16+rip]1315        pshufb  xmm15, xmm81316        pshufb  xmm12, xmm81317        pshufb  xmm13, xmm81318        pshufb  xmm14, xmm81319        paddd   xmm10, xmm151320        paddd   xmm11, xmm121321        movdqa  xmm8, xmmword ptr [rsp+0x100]1322        paddd   xmm8, xmm131323        paddd   xmm9, xmm141324        pxor    xmm5, xmm101325        pxor    xmm6, xmm111326        pxor    xmm7, xmm81327        pxor    xmm4, xmm91328        movdqa  xmmword ptr [rsp+0x100], xmm81329        movdqa  xmm8, xmm51330        psrld   xmm8, 121331        pslld   xmm5, 201332        por     xmm5, xmm81333        movdqa  xmm8, xmm61334        psrld   xmm8, 121335        pslld   xmm6, 201336        por     xmm6, xmm81337        movdqa  xmm8, xmm71338        psrld   xmm8, 121339        pslld   xmm7, 201340        por     xmm7, xmm81341        movdqa  xmm8, xmm41342        psrld   xmm8, 121343        pslld   xmm4, 201344        por     xmm4, xmm81345        paddd   xmm0, xmmword ptr [rsp+0xA0]1346        paddd   xmm1, xmmword ptr [rsp+0xC0]1347        paddd   xmm2, xmmword ptr [rsp+0x40]1348        paddd   xmm3, xmmword ptr [rsp+0xD0]1349        paddd   xmm0, xmm51350        paddd   xmm1, xmm61351        paddd   xmm2, xmm71352        paddd   xmm3, xmm41353        pxor    xmm15, xmm01354        pxor    xmm12, xmm11355        pxor    xmm13, xmm21356        pxor    xmm14, xmm31357        movdqa  xmm8, xmmword ptr [ROT8+rip]1358        pshufb  xmm15, xmm81359        pshufb  xmm12, xmm81360        pshufb  xmm13, xmm81361        pshufb  xmm14, xmm81362        paddd   xmm10, xmm151363        paddd   xmm11, xmm121364        movdqa  xmm8, xmmword ptr [rsp+0x100]1365        paddd   xmm8, xmm131366        paddd   xmm9, xmm141367        pxor    xmm5, xmm101368        pxor    xmm6, xmm111369        pxor    xmm7, xmm81370        pxor    xmm4, xmm91371        pxor    xmm0, xmm81372        pxor    xmm1, xmm91373        pxor    xmm2, xmm101374        pxor    xmm3, xmm111375        movdqa  xmm8, xmm51376        psrld   xmm8, 71377        pslld   xmm5, 251378        por     xmm5, xmm81379        movdqa  xmm8, xmm61380        psrld   xmm8, 71381        pslld   xmm6, 251382        por     xmm6, xmm81383        movdqa  xmm8, xmm71384        psrld   xmm8, 71385        pslld   xmm7, 251386        por     xmm7, xmm81387        movdqa  xmm8, xmm41388        psrld   xmm8, 71389        pslld   xmm4, 251390        por     xmm4, xmm81391        pxor    xmm4, xmm121392        pxor    xmm5, xmm131393        pxor    xmm6, xmm141394        pxor    xmm7, xmm151395        mov     eax, r13d1396        jne     9b1397        movdqa  xmm9, xmm01398        punpckldq xmm0, xmm11399        punpckhdq xmm9, xmm11400        movdqa  xmm11, xmm21401        punpckldq xmm2, xmm31402        punpckhdq xmm11, xmm31403        movdqa  xmm1, xmm01404        punpcklqdq xmm0, xmm21405        punpckhqdq xmm1, xmm21406        movdqa  xmm3, xmm91407        punpcklqdq xmm9, xmm111408        punpckhqdq xmm3, xmm111409        movdqu  xmmword ptr [rbx], xmm01410        movdqu  xmmword ptr [rbx+0x20], xmm11411        movdqu  xmmword ptr [rbx+0x40], xmm91412        movdqu  xmmword ptr [rbx+0x60], xmm31413        movdqa  xmm9, xmm41414        punpckldq xmm4, xmm51415        punpckhdq xmm9, xmm51416        movdqa  xmm11, xmm61417        punpckldq xmm6, xmm71418        punpckhdq xmm11, xmm71419        movdqa  xmm5, xmm41420        punpcklqdq xmm4, xmm61421        punpckhqdq xmm5, xmm61422        movdqa  xmm7, xmm91423        punpcklqdq xmm9, xmm111424        punpckhqdq xmm7, xmm111425        movdqu  xmmword ptr [rbx+0x10], xmm41426        movdqu  xmmword ptr [rbx+0x30], xmm51427        movdqu  xmmword ptr [rbx+0x50], xmm91428        movdqu  xmmword ptr [rbx+0x70], xmm71429        movdqa  xmm1, xmmword ptr [rsp+0x110]1430        movdqa  xmm0, xmm11431        paddd   xmm1, xmmword ptr [rsp+0x150]1432        movdqa  xmmword ptr [rsp+0x110], xmm11433        pxor    xmm0, xmmword ptr [CMP_MSB_MASK+rip]1434        pxor    xmm1, xmmword ptr [CMP_MSB_MASK+rip]1435        pcmpgtd xmm0, xmm11436        movdqa  xmm1, xmmword ptr [rsp+0x120]1437        psubd   xmm1, xmm01438        movdqa  xmmword ptr [rsp+0x120], xmm11439        add     rbx, 1281440        add     rdi, 321441        sub     rsi, 41442        cmp     rsi, 41443        jnc     2b1444        test    rsi, rsi1445        jne     3f14464:1447        movdqa  xmm6, xmmword ptr [rsp+0x170]1448        movdqa  xmm7, xmmword ptr [rsp+0x180]1449        movdqa  xmm8, xmmword ptr [rsp+0x190]1450        movdqa  xmm9, xmmword ptr [rsp+0x1A0]1451        movdqa  xmm10, xmmword ptr [rsp+0x1B0]1452        movdqa  xmm11, xmmword ptr [rsp+0x1C0]1453        movdqa  xmm12, xmmword ptr [rsp+0x1D0]1454        movdqa  xmm13, xmmword ptr [rsp+0x1E0]1455        movdqa  xmm14, xmmword ptr [rsp+0x1F0]1456        movdqa  xmm15, xmmword ptr [rsp+0x200]1457        mov     rsp, rbp1458        pop     rbp1459        pop     rbx1460        pop     rdi1461        pop     rsi1462        pop     r121463        pop     r131464        pop     r141465        pop     r151466        ret1467.p2align 514683:1469        test    esi, 0x21470        je      3f1471        movups  xmm0, xmmword ptr [rcx]1472        movups  xmm1, xmmword ptr [rcx+0x10]1473        movaps  xmm8, xmm01474        movaps  xmm9, xmm11475        movd    xmm13, dword ptr [rsp+0x110]1476        pinsrd  xmm13, dword ptr [rsp+0x120], 11477        pinsrd  xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 21478        movaps  xmmword ptr [rsp], xmm131479        movd    xmm14, dword ptr [rsp+0x114]1480        pinsrd  xmm14, dword ptr [rsp+0x124], 11481        pinsrd  xmm14, dword ptr [BLAKE3_BLOCK_LEN+rip], 21482        movaps  xmmword ptr [rsp+0x10], xmm141483        mov     r8, qword ptr [rdi]1484        mov     r9, qword ptr [rdi+0x8]1485        movzx   eax, byte ptr [rbp+0x80]1486        or      eax, r13d1487        xor     edx, edx14882:1489        mov     r14d, eax1490        or      eax, r12d1491        add     rdx, 641492        cmp     rdx, r151493        cmovne  eax, r14d1494        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]1495        movaps  xmm10, xmm21496        movups  xmm4, xmmword ptr [r8+rdx-0x40]1497        movups  xmm5, xmmword ptr [r8+rdx-0x30]1498        movaps  xmm3, xmm41499        shufps  xmm4, xmm5, 1361500        shufps  xmm3, xmm5, 2211501        movaps  xmm5, xmm31502        movups  xmm6, xmmword ptr [r8+rdx-0x20]1503        movups  xmm7, xmmword ptr [r8+rdx-0x10]1504        movaps  xmm3, xmm61505        shufps  xmm6, xmm7, 1361506        pshufd  xmm6, xmm6, 0x931507        shufps  xmm3, xmm7, 2211508        pshufd  xmm7, xmm3, 0x931509        movups  xmm12, xmmword ptr [r9+rdx-0x40]1510        movups  xmm13, xmmword ptr [r9+rdx-0x30]1511        movaps  xmm11, xmm121512        shufps  xmm12, xmm13, 1361513        shufps  xmm11, xmm13, 2211514        movaps  xmm13, xmm111515        movups  xmm14, xmmword ptr [r9+rdx-0x20]1516        movups  xmm15, xmmword ptr [r9+rdx-0x10]1517        movaps  xmm11, xmm141518        shufps  xmm14, xmm15, 1361519        pshufd  xmm14, xmm14, 0x931520        shufps  xmm11, xmm15, 2211521        pshufd  xmm15, xmm11, 0x931522        movaps  xmm3, xmmword ptr [rsp]1523        movaps  xmm11, xmmword ptr [rsp+0x10]1524        pinsrd  xmm3, eax, 31525        pinsrd  xmm11, eax, 31526        mov     al, 715279:1528        paddd   xmm0, xmm41529        paddd   xmm8, xmm121530        movaps  xmmword ptr [rsp+0x20], xmm41531        movaps  xmmword ptr [rsp+0x30], xmm121532        paddd   xmm0, xmm11533        paddd   xmm8, xmm91534        pxor    xmm3, xmm01535        pxor    xmm11, xmm81536        movaps  xmm12, xmmword ptr [ROT16+rip]1537        pshufb  xmm3, xmm121538        pshufb  xmm11, xmm121539        paddd   xmm2, xmm31540        paddd   xmm10, xmm111541        pxor    xmm1, xmm21542        pxor    xmm9, xmm101543        movdqa  xmm4, xmm11544        pslld   xmm1, 201545        psrld   xmm4, 121546        por     xmm1, xmm41547        movdqa  xmm4, xmm91548        pslld   xmm9, 201549        psrld   xmm4, 121550        por     xmm9, xmm41551        paddd   xmm0, xmm51552        paddd   xmm8, xmm131553        movaps  xmmword ptr [rsp+0x40], xmm51554        movaps  xmmword ptr [rsp+0x50], xmm131555        paddd   xmm0, xmm11556        paddd   xmm8, xmm91557        pxor    xmm3, xmm01558        pxor    xmm11, xmm81559        movaps  xmm13, xmmword ptr [ROT8+rip]1560        pshufb  xmm3, xmm131561        pshufb  xmm11, xmm131562        paddd   xmm2, xmm31563        paddd   xmm10, xmm111564        pxor    xmm1, xmm21565        pxor    xmm9, xmm101566        movdqa  xmm4, xmm11567        pslld   xmm1, 251568        psrld   xmm4, 71569        por     xmm1, xmm41570        movdqa  xmm4, xmm91571        pslld   xmm9, 251572        psrld   xmm4, 71573        por     xmm9, xmm41574        pshufd  xmm0, xmm0, 0x931575        pshufd  xmm8, xmm8, 0x931576        pshufd  xmm3, xmm3, 0x4E1577        pshufd  xmm11, xmm11, 0x4E1578        pshufd  xmm2, xmm2, 0x391579        pshufd  xmm10, xmm10, 0x391580        paddd   xmm0, xmm61581        paddd   xmm8, xmm141582        paddd   xmm0, xmm11583        paddd   xmm8, xmm91584        pxor    xmm3, xmm01585        pxor    xmm11, xmm81586        pshufb  xmm3, xmm121587        pshufb  xmm11, xmm121588        paddd   xmm2, xmm31589        paddd   xmm10, xmm111590        pxor    xmm1, xmm21591        pxor    xmm9, xmm101592        movdqa  xmm4, xmm11593        pslld   xmm1, 201594        psrld   xmm4, 121595        por     xmm1, xmm41596        movdqa  xmm4, xmm91597        pslld   xmm9, 201598        psrld   xmm4, 121599        por     xmm9, xmm41600        paddd   xmm0, xmm71601        paddd   xmm8, xmm151602        paddd   xmm0, xmm11603        paddd   xmm8, xmm91604        pxor    xmm3, xmm01605        pxor    xmm11, xmm81606        pshufb  xmm3, xmm131607        pshufb  xmm11, xmm131608        paddd   xmm2, xmm31609        paddd   xmm10, xmm111610        pxor    xmm1, xmm21611        pxor    xmm9, xmm101612        movdqa  xmm4, xmm11613        pslld   xmm1, 251614        psrld   xmm4, 71615        por     xmm1, xmm41616        movdqa  xmm4, xmm91617        pslld   xmm9, 251618        psrld   xmm4, 71619        por     xmm9, xmm41620        pshufd  xmm0, xmm0, 0x391621        pshufd  xmm8, xmm8, 0x391622        pshufd  xmm3, xmm3, 0x4E1623        pshufd  xmm11, xmm11, 0x4E1624        pshufd  xmm2, xmm2, 0x931625        pshufd  xmm10, xmm10, 0x931626        dec     al1627        je      9f1628        movdqa  xmm12, xmmword ptr [rsp+0x20]1629        movdqa  xmm5, xmmword ptr [rsp+0x40]1630        pshufd  xmm13, xmm12, 0x0F1631        shufps  xmm12, xmm5, 2141632        pshufd  xmm4, xmm12, 0x391633        movdqa  xmm12, xmm61634        shufps  xmm12, xmm7, 2501635        pblendw xmm13, xmm12, 0xCC1636        movdqa  xmm12, xmm71637        punpcklqdq xmm12, xmm51638        pblendw xmm12, xmm6, 0xC01639        pshufd  xmm12, xmm12, 0x781640        punpckhdq xmm5, xmm71641        punpckldq xmm6, xmm51642        pshufd  xmm7, xmm6, 0x1E1643        movdqa  xmmword ptr [rsp+0x20], xmm131644        movdqa  xmmword ptr [rsp+0x40], xmm121645        movdqa  xmm5, xmmword ptr [rsp+0x30]1646        movdqa  xmm13, xmmword ptr [rsp+0x50]1647        pshufd  xmm6, xmm5, 0x0F1648        shufps  xmm5, xmm13, 2141649        pshufd  xmm12, xmm5, 0x391650        movdqa  xmm5, xmm141651        shufps  xmm5, xmm15, 2501652        pblendw xmm6, xmm5, 0xCC1653        movdqa  xmm5, xmm151654        punpcklqdq xmm5, xmm131655        pblendw xmm5, xmm14, 0xC01656        pshufd  xmm5, xmm5, 0x781657        punpckhdq xmm13, xmm151658        punpckldq xmm14, xmm131659        pshufd  xmm15, xmm14, 0x1E1660        movdqa  xmm13, xmm61661        movdqa  xmm14, xmm51662        movdqa  xmm5, xmmword ptr [rsp+0x20]1663        movdqa  xmm6, xmmword ptr [rsp+0x40]1664        jmp     9b16659:1666        pxor    xmm0, xmm21667        pxor    xmm1, xmm31668        pxor    xmm8, xmm101669        pxor    xmm9, xmm111670        mov     eax, r13d1671        cmp     rdx, r151672        jne     2b1673        movups  xmmword ptr [rbx], xmm01674        movups  xmmword ptr [rbx+0x10], xmm11675        movups  xmmword ptr [rbx+0x20], xmm81676        movups  xmmword ptr [rbx+0x30], xmm91677        movdqa  xmm0, xmmword ptr [rsp+0x130]1678        movdqa  xmm1, xmmword ptr [rsp+0x110]1679        movdqa  xmm2, xmmword ptr [rsp+0x120]1680        movdqu  xmm3, xmmword ptr [rsp+0x118]1681        movdqu  xmm4, xmmword ptr [rsp+0x128]1682        blendvps xmm1, xmm3, xmm01683        blendvps xmm2, xmm4, xmm01684        movdqa  xmmword ptr [rsp+0x110], xmm11685        movdqa  xmmword ptr [rsp+0x120], xmm21686        add     rdi, 161687        add     rbx, 641688        sub     rsi, 216893:1690        test    esi, 0x11691        je      4b1692        movups  xmm0, xmmword ptr [rcx]1693        movups  xmm1, xmmword ptr [rcx+0x10]1694        movd    xmm13, dword ptr [rsp+0x110]1695        pinsrd  xmm13, dword ptr [rsp+0x120], 11696        pinsrd  xmm13, dword ptr [BLAKE3_BLOCK_LEN+rip], 21697        movaps  xmm14, xmmword ptr [ROT8+rip]1698        movaps  xmm15, xmmword ptr [ROT16+rip]1699        mov     r8, qword ptr [rdi]1700        movzx   eax, byte ptr [rbp+0x80]1701        or      eax, r13d1702        xor     edx, edx17032:1704        mov     r14d, eax1705        or      eax, r12d1706        add     rdx, 641707        cmp     rdx, r151708        cmovne  eax, r14d1709        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]1710        movaps  xmm3, xmm131711        pinsrd  xmm3, eax, 31712        movups  xmm4, xmmword ptr [r8+rdx-0x40]1713        movups  xmm5, xmmword ptr [r8+rdx-0x30]1714        movaps  xmm8, xmm41715        shufps  xmm4, xmm5, 1361716        shufps  xmm8, xmm5, 2211717        movaps  xmm5, xmm81718        movups  xmm6, xmmword ptr [r8+rdx-0x20]1719        movups  xmm7, xmmword ptr [r8+rdx-0x10]1720        movaps  xmm8, xmm61721        shufps  xmm6, xmm7, 1361722        pshufd  xmm6, xmm6, 0x931723        shufps  xmm8, xmm7, 2211724        pshufd  xmm7, xmm8, 0x931725        mov     al, 717269:1727        paddd   xmm0, xmm41728        paddd   xmm0, xmm11729        pxor    xmm3, xmm01730        pshufb  xmm3, xmm151731        paddd   xmm2, xmm31732        pxor    xmm1, xmm21733        movdqa  xmm11, xmm11734        pslld   xmm1, 201735        psrld   xmm11, 121736        por     xmm1, xmm111737        paddd   xmm0, xmm51738        paddd   xmm0, xmm11739        pxor    xmm3, xmm01740        pshufb  xmm3, xmm141741        paddd   xmm2, xmm31742        pxor    xmm1, xmm21743        movdqa  xmm11, xmm11744        pslld   xmm1, 251745        psrld   xmm11, 71746        por     xmm1, xmm111747        pshufd  xmm0, xmm0, 0x931748        pshufd  xmm3, xmm3, 0x4E1749        pshufd  xmm2, xmm2, 0x391750        paddd   xmm0, xmm61751        paddd   xmm0, xmm11752        pxor    xmm3, xmm01753        pshufb  xmm3, xmm151754        paddd   xmm2, xmm31755        pxor    xmm1, xmm21756        movdqa  xmm11, xmm11757        pslld   xmm1, 201758        psrld   xmm11, 121759        por     xmm1, xmm111760        paddd   xmm0, xmm71761        paddd   xmm0, xmm11762        pxor    xmm3, xmm01763        pshufb  xmm3, xmm141764        paddd   xmm2, xmm31765        pxor    xmm1, xmm21766        movdqa  xmm11, xmm11767        pslld   xmm1, 251768        psrld   xmm11, 71769        por     xmm1, xmm111770        pshufd  xmm0, xmm0, 0x391771        pshufd  xmm3, xmm3, 0x4E1772        pshufd  xmm2, xmm2, 0x931773        dec     al1774        jz      9f1775        movdqa  xmm8, xmm41776        shufps  xmm8, xmm5, 2141777        pshufd  xmm9, xmm4, 0x0F1778        pshufd  xmm4, xmm8, 0x391779        movdqa  xmm8, xmm61780        shufps  xmm8, xmm7, 2501781        pblendw xmm9, xmm8, 0xCC1782        movdqa  xmm8, xmm71783        punpcklqdq xmm8, xmm51784        pblendw xmm8, xmm6, 0xC01785        pshufd  xmm8, xmm8, 0x781786        punpckhdq xmm5, xmm71787        punpckldq xmm6, xmm51788        pshufd  xmm7, xmm6, 0x1E1789        movdqa  xmm5, xmm91790        movdqa  xmm6, xmm81791        jmp     9b17929:1793        pxor    xmm0, xmm21794        pxor    xmm1, xmm31795        mov     eax, r13d1796        cmp     rdx, r151797        jne     2b1798        movups  xmmword ptr [rbx], xmm01799        movups  xmmword ptr [rbx+0x10], xmm11800        jmp     4b1801 1802.p2align 61803blake3_compress_in_place_sse41:1804_blake3_compress_in_place_sse41:1805        sub     rsp, 1201806        movdqa  xmmword ptr [rsp], xmm61807        movdqa  xmmword ptr [rsp+0x10], xmm71808        movdqa  xmmword ptr [rsp+0x20], xmm81809        movdqa  xmmword ptr [rsp+0x30], xmm91810        movdqa  xmmword ptr [rsp+0x40], xmm111811        movdqa  xmmword ptr [rsp+0x50], xmm141812        movdqa  xmmword ptr [rsp+0x60], xmm151813        movups  xmm0, xmmword ptr [rcx]1814        movups  xmm1, xmmword ptr [rcx+0x10]1815        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]1816        movzx   eax, byte ptr [rsp+0xA0]1817        movzx   r8d, r8b1818        shl     rax, 321819        add     r8, rax1820        movq    xmm3, r91821        movq    xmm4, r81822        punpcklqdq xmm3, xmm41823        movups  xmm4, xmmword ptr [rdx]1824        movups  xmm5, xmmword ptr [rdx+0x10]1825        movaps  xmm8, xmm41826        shufps  xmm4, xmm5, 1361827        shufps  xmm8, xmm5, 2211828        movaps  xmm5, xmm81829        movups  xmm6, xmmword ptr [rdx+0x20]1830        movups  xmm7, xmmword ptr [rdx+0x30]1831        movaps  xmm8, xmm61832        shufps  xmm6, xmm7, 1361833        pshufd  xmm6, xmm6, 0x931834        shufps  xmm8, xmm7, 2211835        pshufd  xmm7, xmm8, 0x931836        movaps  xmm14, xmmword ptr [ROT8+rip]1837        movaps  xmm15, xmmword ptr [ROT16+rip]1838        mov     al, 718399:1840        paddd   xmm0, xmm41841        paddd   xmm0, xmm11842        pxor    xmm3, xmm01843        pshufb  xmm3, xmm151844        paddd   xmm2, xmm31845        pxor    xmm1, xmm21846        movdqa  xmm11, xmm11847        pslld   xmm1, 201848        psrld   xmm11, 121849        por     xmm1, xmm111850        paddd   xmm0, xmm51851        paddd   xmm0, xmm11852        pxor    xmm3, xmm01853        pshufb  xmm3, xmm141854        paddd   xmm2, xmm31855        pxor    xmm1, xmm21856        movdqa  xmm11, xmm11857        pslld   xmm1, 251858        psrld   xmm11, 71859        por     xmm1, xmm111860        pshufd  xmm0, xmm0, 0x931861        pshufd  xmm3, xmm3, 0x4E1862        pshufd  xmm2, xmm2, 0x391863        paddd   xmm0, xmm61864        paddd   xmm0, xmm11865        pxor    xmm3, xmm01866        pshufb  xmm3, xmm151867        paddd   xmm2, xmm31868        pxor    xmm1, xmm21869        movdqa  xmm11, xmm11870        pslld   xmm1, 201871        psrld   xmm11, 121872        por     xmm1, xmm111873        paddd   xmm0, xmm71874        paddd   xmm0, xmm11875        pxor    xmm3, xmm01876        pshufb  xmm3, xmm141877        paddd   xmm2, xmm31878        pxor    xmm1, xmm21879        movdqa  xmm11, xmm11880        pslld   xmm1, 251881        psrld   xmm11, 71882        por     xmm1, xmm111883        pshufd  xmm0, xmm0, 0x391884        pshufd  xmm3, xmm3, 0x4E1885        pshufd  xmm2, xmm2, 0x931886        dec     al1887        jz      9f1888        movdqa  xmm8, xmm41889        shufps  xmm8, xmm5, 2141890        pshufd  xmm9, xmm4, 0x0F1891        pshufd  xmm4, xmm8, 0x391892        movdqa  xmm8, xmm61893        shufps  xmm8, xmm7, 2501894        pblendw xmm9, xmm8, 0xCC1895        movdqa  xmm8, xmm71896        punpcklqdq xmm8, xmm51897        pblendw xmm8, xmm6, 0xC01898        pshufd  xmm8, xmm8, 0x781899        punpckhdq xmm5, xmm71900        punpckldq xmm6, xmm51901        pshufd  xmm7, xmm6, 0x1E1902        movdqa  xmm5, xmm91903        movdqa  xmm6, xmm81904        jmp     9b19059:1906        pxor    xmm0, xmm21907        pxor    xmm1, xmm31908        movups  xmmword ptr [rcx], xmm01909        movups  xmmword ptr [rcx+0x10], xmm11910        movdqa  xmm6, xmmword ptr [rsp]1911        movdqa  xmm7, xmmword ptr [rsp+0x10]1912        movdqa  xmm8, xmmword ptr [rsp+0x20]1913        movdqa  xmm9, xmmword ptr [rsp+0x30]1914        movdqa  xmm11, xmmword ptr [rsp+0x40]1915        movdqa  xmm14, xmmword ptr [rsp+0x50]1916        movdqa  xmm15, xmmword ptr [rsp+0x60]1917        add     rsp, 1201918        ret1919 1920 1921.p2align 61922_blake3_compress_xof_sse41:1923blake3_compress_xof_sse41:1924        sub     rsp, 1201925        movdqa  xmmword ptr [rsp], xmm61926        movdqa  xmmword ptr [rsp+0x10], xmm71927        movdqa  xmmword ptr [rsp+0x20], xmm81928        movdqa  xmmword ptr [rsp+0x30], xmm91929        movdqa  xmmword ptr [rsp+0x40], xmm111930        movdqa  xmmword ptr [rsp+0x50], xmm141931        movdqa  xmmword ptr [rsp+0x60], xmm151932        movups  xmm0, xmmword ptr [rcx]1933        movups  xmm1, xmmword ptr [rcx+0x10]1934        movaps  xmm2, xmmword ptr [BLAKE3_IV+rip]1935        movzx   eax, byte ptr [rsp+0xA0]1936        movzx   r8d, r8b1937        mov     r10, qword ptr [rsp+0xA8]1938        shl     rax, 321939        add     r8, rax1940        movq    xmm3, r91941        movq    xmm4, r81942        punpcklqdq xmm3, xmm41943        movups  xmm4, xmmword ptr [rdx]1944        movups  xmm5, xmmword ptr [rdx+0x10]1945        movaps  xmm8, xmm41946        shufps  xmm4, xmm5, 1361947        shufps  xmm8, xmm5, 2211948        movaps  xmm5, xmm81949        movups  xmm6, xmmword ptr [rdx+0x20]1950        movups  xmm7, xmmword ptr [rdx+0x30]1951        movaps  xmm8, xmm61952        shufps  xmm6, xmm7, 1361953        pshufd  xmm6, xmm6, 0x931954        shufps  xmm8, xmm7, 2211955        pshufd  xmm7, xmm8, 0x931956        movaps  xmm14, xmmword ptr [ROT8+rip]1957        movaps  xmm15, xmmword ptr [ROT16+rip]1958        mov     al, 719599:1960        paddd   xmm0, xmm41961        paddd   xmm0, xmm11962        pxor    xmm3, xmm01963        pshufb  xmm3, xmm151964        paddd   xmm2, xmm31965        pxor    xmm1, xmm21966        movdqa  xmm11, xmm11967        pslld   xmm1, 201968        psrld   xmm11, 121969        por     xmm1, xmm111970        paddd   xmm0, xmm51971        paddd   xmm0, xmm11972        pxor    xmm3, xmm01973        pshufb  xmm3, xmm141974        paddd   xmm2, xmm31975        pxor    xmm1, xmm21976        movdqa  xmm11, xmm11977        pslld   xmm1, 251978        psrld   xmm11, 71979        por     xmm1, xmm111980        pshufd  xmm0, xmm0, 0x931981        pshufd  xmm3, xmm3, 0x4E1982        pshufd  xmm2, xmm2, 0x391983        paddd   xmm0, xmm61984        paddd   xmm0, xmm11985        pxor    xmm3, xmm01986        pshufb  xmm3, xmm151987        paddd   xmm2, xmm31988        pxor    xmm1, xmm21989        movdqa  xmm11, xmm11990        pslld   xmm1, 201991        psrld   xmm11, 121992        por     xmm1, xmm111993        paddd   xmm0, xmm71994        paddd   xmm0, xmm11995        pxor    xmm3, xmm01996        pshufb  xmm3, xmm141997        paddd   xmm2, xmm31998        pxor    xmm1, xmm21999        movdqa  xmm11, xmm12000        pslld   xmm1, 252001        psrld   xmm11, 72002        por     xmm1, xmm112003        pshufd  xmm0, xmm0, 0x392004        pshufd  xmm3, xmm3, 0x4E2005        pshufd  xmm2, xmm2, 0x932006        dec     al2007        jz      9f2008        movdqa  xmm8, xmm42009        shufps  xmm8, xmm5, 2142010        pshufd  xmm9, xmm4, 0x0F2011        pshufd  xmm4, xmm8, 0x392012        movdqa  xmm8, xmm62013        shufps  xmm8, xmm7, 2502014        pblendw xmm9, xmm8, 0xCC2015        movdqa  xmm8, xmm72016        punpcklqdq xmm8, xmm52017        pblendw xmm8, xmm6, 0xC02018        pshufd  xmm8, xmm8, 0x782019        punpckhdq xmm5, xmm72020        punpckldq xmm6, xmm52021        pshufd  xmm7, xmm6, 0x1E2022        movdqa  xmm5, xmm92023        movdqa  xmm6, xmm82024        jmp     9b20259:2026        movdqu  xmm4, xmmword ptr [rcx]2027        movdqu  xmm5, xmmword ptr [rcx+0x10]2028        pxor    xmm0, xmm22029        pxor    xmm1, xmm32030        pxor    xmm2, xmm42031        pxor    xmm3, xmm52032        movups  xmmword ptr [r10], xmm02033        movups  xmmword ptr [r10+0x10], xmm12034        movups  xmmword ptr [r10+0x20], xmm22035        movups  xmmword ptr [r10+0x30], xmm32036        movdqa  xmm6, xmmword ptr [rsp]2037        movdqa  xmm7, xmmword ptr [rsp+0x10]2038        movdqa  xmm8, xmmword ptr [rsp+0x20]2039        movdqa  xmm9, xmmword ptr [rsp+0x30]2040        movdqa  xmm11, xmmword ptr [rsp+0x40]2041        movdqa  xmm14, xmmword ptr [rsp+0x50]2042        movdqa  xmm15, xmmword ptr [rsp+0x60]2043        add     rsp, 1202044        ret2045 2046 2047.section .rdata2048.p2align  62049BLAKE3_IV:2050        .long  0x6A09E667, 0xBB67AE852051        .long  0x3C6EF372, 0xA54FF53A2052ROT16:2053        .byte  2, 3, 0, 1, 6, 7, 4, 5, 10, 11, 8, 9, 14, 15, 12, 132054ROT8:2055        .byte  1, 2, 3, 0, 5, 6, 7, 4, 9, 10, 11, 8, 13, 14, 15, 122056ADD0:   2057        .long  0, 1, 2, 32058ADD1:2059        .long  4, 4, 4, 42060BLAKE3_IV_0:2061        .long  0x6A09E667, 0x6A09E667, 0x6A09E667, 0x6A09E6672062BLAKE3_IV_1:2063        .long  0xBB67AE85, 0xBB67AE85, 0xBB67AE85, 0xBB67AE852064BLAKE3_IV_2:2065        .long  0x3C6EF372, 0x3C6EF372, 0x3C6EF372, 0x3C6EF3722066BLAKE3_IV_3:2067        .long  0xA54FF53A, 0xA54FF53A, 0xA54FF53A, 0xA54FF53A2068BLAKE3_BLOCK_LEN:2069        .long  64, 64, 64, 642070CMP_MSB_MASK:2071        .long  0x80000000, 0x80000000, 0x80000000, 0x800000002072