TITLE sha512-586.asm IF @Version LT 800 ECHO MASM version 8.00 or later is strongly recommended. ENDIF .686 .XMM IF @Version LT 800 XMMWORD STRUCT 16 DQ 2 dup (?) XMMWORD ENDS ENDIF .MODEL FLAT OPTION DOTNAME IF @Version LT 800 .text$ SEGMENT PAGE 'CODE' ELSE .text$ SEGMENT ALIGN(64) 'CODE' ENDIF ;EXTERN _OPENSSL_ia32cap_P:NEAR ALIGN 16 _sha256_block_data_order PROC PUBLIC $L_sha256_block_data_order_begin:: push ebp push ebx push esi push edi mov esi,DWORD PTR 20[esp] mov edi,DWORD PTR 24[esp] mov eax,DWORD PTR 28[esp] mov ebx,esp call $L000pic_point $L000pic_point: pop ebp lea ebp,DWORD PTR ($L001K256-$L000pic_point)[ebp] sub esp,16 and esp,-64 shl eax,6 add eax,edi mov DWORD PTR [esp],esi mov DWORD PTR 4[esp],edi mov DWORD PTR 8[esp],eax mov DWORD PTR 12[esp],ebx lea edx,DWORD PTR _OPENSSL_ia32cap_P mov ecx,DWORD PTR [edx] mov ebx,DWORD PTR 4[edx] test ecx,1048576 jnz $L002loop mov edx,DWORD PTR 8[edx] test ecx,16777216 jz $L003no_xmm and ecx,1073741824 and ebx,268435968 test edx,536870912 jnz $L004shaext or ecx,ebx and ecx,1342177280 cmp ecx,1342177280 je $L005AVX test ebx,512 jnz $L006SSSE3 $L003no_xmm: sub eax,edi cmp eax,256 jae $L007unrolled jmp $L002loop ALIGN 16 $L002loop: mov eax,DWORD PTR [edi] mov ebx,DWORD PTR 4[edi] mov ecx,DWORD PTR 8[edi] bswap eax mov edx,DWORD PTR 12[edi] bswap ebx push eax bswap ecx push ebx bswap edx push ecx push edx mov eax,DWORD PTR 16[edi] mov ebx,DWORD PTR 20[edi] mov ecx,DWORD PTR 24[edi] bswap eax mov edx,DWORD PTR 28[edi] bswap ebx push eax bswap ecx push ebx bswap edx push ecx push edx mov eax,DWORD PTR 32[edi] mov ebx,DWORD PTR 36[edi] mov ecx,DWORD PTR 40[edi] bswap eax mov edx,DWORD PTR 44[edi] bswap ebx push eax bswap ecx push ebx bswap edx push ecx push edx mov eax,DWORD PTR 48[edi] mov ebx,DWORD PTR 52[edi] mov ecx,DWORD PTR 56[edi] bswap eax mov edx,DWORD PTR 60[edi] bswap ebx push eax bswap ecx push ebx bswap edx push ecx push edx add edi,64 lea esp,DWORD PTR [esp-36] mov DWORD PTR 104[esp],edi mov eax,DWORD PTR [esi] mov ebx,DWORD PTR 4[esi] mov ecx,DWORD PTR 8[esi] mov edi,DWORD PTR 12[esi] mov DWORD PTR 8[esp],ebx xor ebx,ecx mov DWORD PTR 12[esp],ecx mov DWORD PTR 16[esp],edi mov DWORD PTR [esp],ebx mov edx,DWORD PTR 16[esi] mov ebx,DWORD PTR 20[esi] mov ecx,DWORD PTR 24[esi] mov edi,DWORD PTR 28[esi] mov DWORD PTR 24[esp],ebx mov DWORD PTR 28[esp],ecx mov DWORD PTR 32[esp],edi ALIGN 16 $L00800_15: mov ecx,edx mov esi,DWORD PTR 24[esp] ror ecx,14 mov edi,DWORD PTR 28[esp] xor ecx,edx xor esi,edi mov ebx,DWORD PTR 96[esp] ror ecx,5 and esi,edx mov DWORD PTR 20[esp],edx xor edx,ecx add ebx,DWORD PTR 32[esp] xor esi,edi ror edx,6 mov ecx,eax add ebx,esi ror ecx,9 add ebx,edx mov edi,DWORD PTR 8[esp] xor ecx,eax mov DWORD PTR 4[esp],eax lea esp,DWORD PTR [esp-4] ror ecx,11 mov esi,DWORD PTR [ebp] xor ecx,eax mov edx,DWORD PTR 20[esp] xor eax,edi ror ecx,2 add ebx,esi mov DWORD PTR [esp],eax add edx,ebx and eax,DWORD PTR 4[esp] add ebx,ecx xor eax,edi add ebp,4 add eax,ebx cmp esi,3248222580 jne $L00800_15 mov ecx,DWORD PTR 156[esp] jmp $L00916_63 ALIGN 16 $L00916_63: mov ebx,ecx mov esi,DWORD PTR 104[esp] ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 160[esp] shr edi,10 add ebx,DWORD PTR 124[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 24[esp] ror ecx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor ecx,edx xor esi,edi mov DWORD PTR 96[esp],ebx ror ecx,5 and esi,edx mov DWORD PTR 20[esp],edx xor edx,ecx add ebx,DWORD PTR 32[esp] xor esi,edi ror edx,6 mov ecx,eax add ebx,esi ror ecx,9 add ebx,edx mov edi,DWORD PTR 8[esp] xor ecx,eax mov DWORD PTR 4[esp],eax lea esp,DWORD PTR [esp-4] ror ecx,11 mov esi,DWORD PTR [ebp] xor ecx,eax mov edx,DWORD PTR 20[esp] xor eax,edi ror ecx,2 add ebx,esi mov DWORD PTR [esp],eax add edx,ebx and eax,DWORD PTR 4[esp] add ebx,ecx xor eax,edi mov ecx,DWORD PTR 156[esp] add ebp,4 add eax,ebx cmp esi,3329325298 jne $L00916_63 mov esi,DWORD PTR 356[esp] mov ebx,DWORD PTR 8[esp] mov ecx,DWORD PTR 16[esp] add eax,DWORD PTR [esi] add ebx,DWORD PTR 4[esi] add edi,DWORD PTR 8[esi] add ecx,DWORD PTR 12[esi] mov DWORD PTR [esi],eax mov DWORD PTR 4[esi],ebx mov DWORD PTR 8[esi],edi mov DWORD PTR 12[esi],ecx mov eax,DWORD PTR 24[esp] mov ebx,DWORD PTR 28[esp] mov ecx,DWORD PTR 32[esp] mov edi,DWORD PTR 360[esp] add edx,DWORD PTR 16[esi] add eax,DWORD PTR 20[esi] add ebx,DWORD PTR 24[esi] add ecx,DWORD PTR 28[esi] mov DWORD PTR 16[esi],edx mov DWORD PTR 20[esi],eax mov DWORD PTR 24[esi],ebx mov DWORD PTR 28[esi],ecx lea esp,DWORD PTR 356[esp] sub ebp,256 cmp edi,DWORD PTR 8[esp] jb $L002loop mov esp,DWORD PTR 12[esp] pop edi pop esi pop ebx pop ebp ret ALIGN 64 $L001K256: DD 1116352408,1899447441,3049323471,3921009573 DD 961987163,1508970993,2453635748,2870763221 DD 3624381080,310598401,607225278,1426881987 DD 1925078388,2162078206,2614888103,3248222580 DD 3835390401,4022224774,264347078,604807628 DD 770255983,1249150122,1555081692,1996064986 DD 2554220882,2821834349,2952996808,3210313671 DD 3336571891,3584528711,113926993,338241895 DD 666307205,773529912,1294757372,1396182291 DD 1695183700,1986661051,2177026350,2456956037 DD 2730485921,2820302411,3259730800,3345764771 DD 3516065817,3600352804,4094571909,275423344 DD 430227734,506948616,659060556,883997877 DD 958139571,1322822218,1537002063,1747873779 DD 1955562222,2024104815,2227730452,2361852424 DD 2428436474,2756734187,3204031479,3329325298 DD 66051,67438087,134810123,202182159 DB 83,72,65,50,53,54,32,98,108,111,99,107,32,116,114,97 DB 110,115,102,111,114,109,32,102,111,114,32,120,56,54,44,32 DB 67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97 DB 112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103 DB 62,0 ALIGN 16 $L007unrolled: lea esp,DWORD PTR [esp-96] mov eax,DWORD PTR [esi] mov ebp,DWORD PTR 4[esi] mov ecx,DWORD PTR 8[esi] mov ebx,DWORD PTR 12[esi] mov DWORD PTR 4[esp],ebp xor ebp,ecx mov DWORD PTR 8[esp],ecx mov DWORD PTR 12[esp],ebx mov edx,DWORD PTR 16[esi] mov ebx,DWORD PTR 20[esi] mov ecx,DWORD PTR 24[esi] mov esi,DWORD PTR 28[esi] mov DWORD PTR 20[esp],ebx mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esp],esi jmp $L010grand_loop ALIGN 16 $L010grand_loop: mov ebx,DWORD PTR [edi] mov ecx,DWORD PTR 4[edi] bswap ebx mov esi,DWORD PTR 8[edi] bswap ecx mov DWORD PTR 32[esp],ebx bswap esi mov DWORD PTR 36[esp],ecx mov DWORD PTR 40[esp],esi mov ebx,DWORD PTR 12[edi] mov ecx,DWORD PTR 16[edi] bswap ebx mov esi,DWORD PTR 20[edi] bswap ecx mov DWORD PTR 44[esp],ebx bswap esi mov DWORD PTR 48[esp],ecx mov DWORD PTR 52[esp],esi mov ebx,DWORD PTR 24[edi] mov ecx,DWORD PTR 28[edi] bswap ebx mov esi,DWORD PTR 32[edi] bswap ecx mov DWORD PTR 56[esp],ebx bswap esi mov DWORD PTR 60[esp],ecx mov DWORD PTR 64[esp],esi mov ebx,DWORD PTR 36[edi] mov ecx,DWORD PTR 40[edi] bswap ebx mov esi,DWORD PTR 44[edi] bswap ecx mov DWORD PTR 68[esp],ebx bswap esi mov DWORD PTR 72[esp],ecx mov DWORD PTR 76[esp],esi mov ebx,DWORD PTR 48[edi] mov ecx,DWORD PTR 52[edi] bswap ebx mov esi,DWORD PTR 56[edi] bswap ecx mov DWORD PTR 80[esp],ebx bswap esi mov DWORD PTR 84[esp],ecx mov DWORD PTR 88[esp],esi mov ebx,DWORD PTR 60[edi] add edi,64 bswap ebx mov DWORD PTR 100[esp],edi mov DWORD PTR 92[esp],ebx mov ecx,edx mov esi,DWORD PTR 20[esp] ror edx,14 mov edi,DWORD PTR 24[esp] xor edx,ecx mov ebx,DWORD PTR 32[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1116352408[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR 16[esp] ror edx,14 mov edi,DWORD PTR 20[esp] xor edx,esi mov ebx,DWORD PTR 36[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1899447441[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 12[esp] ror edx,14 mov edi,DWORD PTR 16[esp] xor edx,ecx mov ebx,DWORD PTR 40[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3049323471[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR 8[esp] ror edx,14 mov edi,DWORD PTR 12[esp] xor edx,esi mov ebx,DWORD PTR 44[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3921009573[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 4[esp] ror edx,14 mov edi,DWORD PTR 8[esp] xor edx,ecx mov ebx,DWORD PTR 48[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 961987163[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR [esp] ror edx,14 mov edi,DWORD PTR 4[esp] xor edx,esi mov ebx,DWORD PTR 52[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1508970993[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 28[esp] ror edx,14 mov edi,DWORD PTR [esp] xor edx,ecx mov ebx,DWORD PTR 56[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2453635748[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR 24[esp] ror edx,14 mov edi,DWORD PTR 28[esp] xor edx,esi mov ebx,DWORD PTR 60[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2870763221[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 20[esp] ror edx,14 mov edi,DWORD PTR 24[esp] xor edx,ecx mov ebx,DWORD PTR 64[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3624381080[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR 16[esp] ror edx,14 mov edi,DWORD PTR 20[esp] xor edx,esi mov ebx,DWORD PTR 68[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 310598401[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 12[esp] ror edx,14 mov edi,DWORD PTR 16[esp] xor edx,ecx mov ebx,DWORD PTR 72[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 607225278[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR 8[esp] ror edx,14 mov edi,DWORD PTR 12[esp] xor edx,esi mov ebx,DWORD PTR 76[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1426881987[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 4[esp] ror edx,14 mov edi,DWORD PTR 8[esp] xor edx,ecx mov ebx,DWORD PTR 80[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1925078388[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR [esp] ror edx,14 mov edi,DWORD PTR 4[esp] xor edx,esi mov ebx,DWORD PTR 84[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2162078206[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov ecx,edx mov esi,DWORD PTR 28[esp] ror edx,14 mov edi,DWORD PTR [esp] xor edx,ecx mov ebx,DWORD PTR 88[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2614888103[edx*1+ebx] xor ecx,esi xor ebp,edi ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov esi,edx mov ecx,DWORD PTR 24[esp] ror edx,14 mov edi,DWORD PTR 28[esp] xor edx,esi mov ebx,DWORD PTR 92[esp] xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3248222580[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 36[esp] ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 88[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 32[esp] shr edi,10 add ebx,DWORD PTR 68[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 20[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 24[esp] xor edx,ecx mov DWORD PTR 32[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3835390401[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 40[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov ecx,DWORD PTR 92[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 36[esp] shr edi,10 add ebx,DWORD PTR 72[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 16[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 20[esp] xor edx,esi mov DWORD PTR 36[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 4022224774[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 44[esp] ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov esi,DWORD PTR 32[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 40[esp] shr edi,10 add ebx,DWORD PTR 76[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 12[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 16[esp] xor edx,ecx mov DWORD PTR 40[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 264347078[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 48[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov ecx,DWORD PTR 36[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 44[esp] shr edi,10 add ebx,DWORD PTR 80[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 8[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 12[esp] xor edx,esi mov DWORD PTR 44[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 604807628[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 52[esp] ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov esi,DWORD PTR 40[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 48[esp] shr edi,10 add ebx,DWORD PTR 84[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 4[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 8[esp] xor edx,ecx mov DWORD PTR 48[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 770255983[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 56[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov ecx,DWORD PTR 44[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 52[esp] shr edi,10 add ebx,DWORD PTR 88[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR [esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 4[esp] xor edx,esi mov DWORD PTR 52[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1249150122[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 60[esp] ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov esi,DWORD PTR 48[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 56[esp] shr edi,10 add ebx,DWORD PTR 92[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 28[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR [esp] xor edx,ecx mov DWORD PTR 56[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1555081692[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 64[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov ecx,DWORD PTR 52[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 60[esp] shr edi,10 add ebx,DWORD PTR 32[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 24[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor edx,esi mov DWORD PTR 60[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1996064986[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 68[esp] ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 56[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 64[esp] shr edi,10 add ebx,DWORD PTR 36[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 20[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 24[esp] xor edx,ecx mov DWORD PTR 64[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2554220882[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 72[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov ecx,DWORD PTR 60[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 68[esp] shr edi,10 add ebx,DWORD PTR 40[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 16[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 20[esp] xor edx,esi mov DWORD PTR 68[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2821834349[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 76[esp] ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov esi,DWORD PTR 64[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 72[esp] shr edi,10 add ebx,DWORD PTR 44[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 12[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 16[esp] xor edx,ecx mov DWORD PTR 72[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2952996808[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 80[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov ecx,DWORD PTR 68[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 76[esp] shr edi,10 add ebx,DWORD PTR 48[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 8[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 12[esp] xor edx,esi mov DWORD PTR 76[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3210313671[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 84[esp] ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov esi,DWORD PTR 72[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 80[esp] shr edi,10 add ebx,DWORD PTR 52[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 4[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 8[esp] xor edx,ecx mov DWORD PTR 80[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3336571891[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 88[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov ecx,DWORD PTR 76[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 84[esp] shr edi,10 add ebx,DWORD PTR 56[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR [esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 4[esp] xor edx,esi mov DWORD PTR 84[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3584528711[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 92[esp] ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov esi,DWORD PTR 80[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 88[esp] shr edi,10 add ebx,DWORD PTR 60[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 28[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR [esp] xor edx,ecx mov DWORD PTR 88[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 113926993[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 32[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov ecx,DWORD PTR 84[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 92[esp] shr edi,10 add ebx,DWORD PTR 64[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 24[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor edx,esi mov DWORD PTR 92[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 338241895[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 36[esp] ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 88[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 32[esp] shr edi,10 add ebx,DWORD PTR 68[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 20[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 24[esp] xor edx,ecx mov DWORD PTR 32[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 666307205[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 40[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov ecx,DWORD PTR 92[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 36[esp] shr edi,10 add ebx,DWORD PTR 72[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 16[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 20[esp] xor edx,esi mov DWORD PTR 36[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 773529912[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 44[esp] ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov esi,DWORD PTR 32[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 40[esp] shr edi,10 add ebx,DWORD PTR 76[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 12[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 16[esp] xor edx,ecx mov DWORD PTR 40[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1294757372[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 48[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov ecx,DWORD PTR 36[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 44[esp] shr edi,10 add ebx,DWORD PTR 80[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 8[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 12[esp] xor edx,esi mov DWORD PTR 44[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1396182291[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 52[esp] ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov esi,DWORD PTR 40[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 48[esp] shr edi,10 add ebx,DWORD PTR 84[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 4[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 8[esp] xor edx,ecx mov DWORD PTR 48[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1695183700[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 56[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov ecx,DWORD PTR 44[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 52[esp] shr edi,10 add ebx,DWORD PTR 88[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR [esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 4[esp] xor edx,esi mov DWORD PTR 52[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1986661051[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 60[esp] ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov esi,DWORD PTR 48[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 56[esp] shr edi,10 add ebx,DWORD PTR 92[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 28[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR [esp] xor edx,ecx mov DWORD PTR 56[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2177026350[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 64[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov ecx,DWORD PTR 52[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 60[esp] shr edi,10 add ebx,DWORD PTR 32[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 24[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor edx,esi mov DWORD PTR 60[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2456956037[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 68[esp] ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 56[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 64[esp] shr edi,10 add ebx,DWORD PTR 36[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 20[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 24[esp] xor edx,ecx mov DWORD PTR 64[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2730485921[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 72[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov ecx,DWORD PTR 60[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 68[esp] shr edi,10 add ebx,DWORD PTR 40[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 16[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 20[esp] xor edx,esi mov DWORD PTR 68[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2820302411[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 76[esp] ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov esi,DWORD PTR 64[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 72[esp] shr edi,10 add ebx,DWORD PTR 44[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 12[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 16[esp] xor edx,ecx mov DWORD PTR 72[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3259730800[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 80[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov ecx,DWORD PTR 68[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 76[esp] shr edi,10 add ebx,DWORD PTR 48[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 8[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 12[esp] xor edx,esi mov DWORD PTR 76[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3345764771[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 84[esp] ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov esi,DWORD PTR 72[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 80[esp] shr edi,10 add ebx,DWORD PTR 52[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 4[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 8[esp] xor edx,ecx mov DWORD PTR 80[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3516065817[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 88[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov ecx,DWORD PTR 76[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 84[esp] shr edi,10 add ebx,DWORD PTR 56[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR [esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 4[esp] xor edx,esi mov DWORD PTR 84[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3600352804[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 92[esp] ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov esi,DWORD PTR 80[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 88[esp] shr edi,10 add ebx,DWORD PTR 60[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 28[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR [esp] xor edx,ecx mov DWORD PTR 88[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 4094571909[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 32[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov ecx,DWORD PTR 84[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 92[esp] shr edi,10 add ebx,DWORD PTR 64[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 24[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor edx,esi mov DWORD PTR 92[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 275423344[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 36[esp] ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 88[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 32[esp] shr edi,10 add ebx,DWORD PTR 68[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 20[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 24[esp] xor edx,ecx mov DWORD PTR 32[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 430227734[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 40[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov ecx,DWORD PTR 92[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 36[esp] shr edi,10 add ebx,DWORD PTR 72[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 16[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 20[esp] xor edx,esi mov DWORD PTR 36[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 506948616[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 44[esp] ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov esi,DWORD PTR 32[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 40[esp] shr edi,10 add ebx,DWORD PTR 76[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 12[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 16[esp] xor edx,ecx mov DWORD PTR 40[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 659060556[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 48[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov ecx,DWORD PTR 36[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 44[esp] shr edi,10 add ebx,DWORD PTR 80[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 8[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 12[esp] xor edx,esi mov DWORD PTR 44[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 883997877[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 52[esp] ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov esi,DWORD PTR 40[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 48[esp] shr edi,10 add ebx,DWORD PTR 84[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 4[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 8[esp] xor edx,ecx mov DWORD PTR 48[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 958139571[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 56[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov ecx,DWORD PTR 44[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 52[esp] shr edi,10 add ebx,DWORD PTR 88[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR [esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 4[esp] xor edx,esi mov DWORD PTR 52[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1322822218[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 60[esp] ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov esi,DWORD PTR 48[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 56[esp] shr edi,10 add ebx,DWORD PTR 92[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 28[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR [esp] xor edx,ecx mov DWORD PTR 56[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1537002063[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 64[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov ecx,DWORD PTR 52[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 60[esp] shr edi,10 add ebx,DWORD PTR 32[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 24[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor edx,esi mov DWORD PTR 60[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 1747873779[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 68[esp] ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 56[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 64[esp] shr edi,10 add ebx,DWORD PTR 36[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 20[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 24[esp] xor edx,ecx mov DWORD PTR 64[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx add ebx,DWORD PTR 28[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 4[esp] xor ecx,eax mov DWORD PTR [esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 1955562222[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 72[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 12[esp] add ebp,ecx mov ecx,DWORD PTR 60[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 68[esp] shr edi,10 add ebx,DWORD PTR 40[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 16[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 20[esp] xor edx,esi mov DWORD PTR 68[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 12[esp],esi xor edx,esi add ebx,DWORD PTR 24[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR [esp] xor esi,ebp mov DWORD PTR 28[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2024104815[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 76[esp] ror esi,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,esi mov esi,DWORD PTR 64[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 72[esp] shr edi,10 add ebx,DWORD PTR 44[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 12[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 16[esp] xor edx,ecx mov DWORD PTR 72[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx add ebx,DWORD PTR 20[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 28[esp] xor ecx,eax mov DWORD PTR 24[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2227730452[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 80[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 4[esp] add ebp,ecx mov ecx,DWORD PTR 68[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 76[esp] shr edi,10 add ebx,DWORD PTR 48[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 8[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 12[esp] xor edx,esi mov DWORD PTR 76[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 4[esp],esi xor edx,esi add ebx,DWORD PTR 16[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 24[esp] xor esi,ebp mov DWORD PTR 20[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2361852424[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 84[esp] ror esi,2 add eax,edx add edx,DWORD PTR [esp] add eax,esi mov esi,DWORD PTR 72[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 80[esp] shr edi,10 add ebx,DWORD PTR 52[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 4[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 8[esp] xor edx,ecx mov DWORD PTR 80[esp],ebx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx add ebx,DWORD PTR 12[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 20[esp] xor ecx,eax mov DWORD PTR 16[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 2428436474[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 88[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 28[esp] add ebp,ecx mov ecx,DWORD PTR 76[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 84[esp] shr edi,10 add ebx,DWORD PTR 56[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR [esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 4[esp] xor edx,esi mov DWORD PTR 84[esp],ebx xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 28[esp],esi xor edx,esi add ebx,DWORD PTR 8[esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 16[esp] xor esi,ebp mov DWORD PTR 12[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 2756734187[edx*1+ebx] xor esi,ecx xor eax,edi mov ecx,DWORD PTR 92[esp] ror esi,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,esi mov esi,DWORD PTR 80[esp] mov ebx,ecx ror ecx,11 mov edi,esi ror esi,2 xor ecx,ebx shr ebx,3 ror ecx,7 xor esi,edi xor ebx,ecx ror esi,17 add ebx,DWORD PTR 88[esp] shr edi,10 add ebx,DWORD PTR 60[esp] mov ecx,edx xor edi,esi mov esi,DWORD PTR 28[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR [esp] xor edx,ecx xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx add ebx,DWORD PTR 4[esp] xor edi,esi ror edx,6 mov ecx,eax add ebx,edi ror ecx,9 mov esi,eax mov edi,DWORD PTR 12[esp] xor ecx,eax mov DWORD PTR 8[esp],eax xor eax,edi ror ecx,11 and ebp,eax lea edx,DWORD PTR 3204031479[edx*1+ebx] xor ecx,esi xor ebp,edi mov esi,DWORD PTR 32[esp] ror ecx,2 add ebp,edx add edx,DWORD PTR 20[esp] add ebp,ecx mov ecx,DWORD PTR 84[esp] mov ebx,esi ror esi,11 mov edi,ecx ror ecx,2 xor esi,ebx shr ebx,3 ror esi,7 xor ecx,edi xor ebx,esi ror ecx,17 add ebx,DWORD PTR 92[esp] shr edi,10 add ebx,DWORD PTR 64[esp] mov esi,edx xor edi,ecx mov ecx,DWORD PTR 24[esp] ror edx,14 add ebx,edi mov edi,DWORD PTR 28[esp] xor edx,esi xor ecx,edi ror edx,5 and ecx,esi mov DWORD PTR 20[esp],esi xor edx,esi add ebx,DWORD PTR [esp] xor edi,ecx ror edx,6 mov esi,ebp add ebx,edi ror esi,9 mov ecx,ebp mov edi,DWORD PTR 8[esp] xor esi,ebp mov DWORD PTR 4[esp],ebp xor ebp,edi ror esi,11 and eax,ebp lea edx,DWORD PTR 3329325298[edx*1+ebx] xor esi,ecx xor eax,edi ror esi,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,esi mov esi,DWORD PTR 96[esp] xor ebp,edi mov ecx,DWORD PTR 12[esp] add eax,DWORD PTR [esi] add ebp,DWORD PTR 4[esi] add edi,DWORD PTR 8[esi] add ecx,DWORD PTR 12[esi] mov DWORD PTR [esi],eax mov DWORD PTR 4[esi],ebp mov DWORD PTR 8[esi],edi mov DWORD PTR 12[esi],ecx mov DWORD PTR 4[esp],ebp xor ebp,edi mov DWORD PTR 8[esp],edi mov DWORD PTR 12[esp],ecx mov edi,DWORD PTR 20[esp] mov ebx,DWORD PTR 24[esp] mov ecx,DWORD PTR 28[esp] add edx,DWORD PTR 16[esi] add edi,DWORD PTR 20[esi] add ebx,DWORD PTR 24[esi] add ecx,DWORD PTR 28[esi] mov DWORD PTR 16[esi],edx mov DWORD PTR 20[esi],edi mov DWORD PTR 24[esi],ebx mov DWORD PTR 28[esi],ecx mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 100[esp] mov DWORD PTR 24[esp],ebx mov DWORD PTR 28[esp],ecx cmp edi,DWORD PTR 104[esp] jb $L010grand_loop mov esp,DWORD PTR 108[esp] pop edi pop esi pop ebx pop ebp ret ALIGN 32 $L004shaext: sub esp,32 movdqu xmm1,XMMWORD PTR [esi] lea ebp,DWORD PTR 128[ebp] movdqu xmm2,XMMWORD PTR 16[esi] movdqa xmm7,XMMWORD PTR 128[ebp] pshufd xmm0,xmm1,27 pshufd xmm1,xmm1,177 pshufd xmm2,xmm2,27 DB 102,15,58,15,202,8 punpcklqdq xmm2,xmm0 jmp $L011loop_shaext ALIGN 16 $L011loop_shaext: movdqu xmm3,XMMWORD PTR [edi] movdqu xmm4,XMMWORD PTR 16[edi] movdqu xmm5,XMMWORD PTR 32[edi] DB 102,15,56,0,223 movdqu xmm6,XMMWORD PTR 48[edi] movdqa XMMWORD PTR 16[esp],xmm2 movdqa xmm0,XMMWORD PTR [ebp-128] paddd xmm0,xmm3 DB 102,15,56,0,231 DB 15,56,203,209 pshufd xmm0,xmm0,14 nop movdqa XMMWORD PTR [esp],xmm1 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-112] paddd xmm0,xmm4 DB 102,15,56,0,239 DB 15,56,203,209 pshufd xmm0,xmm0,14 lea edi,DWORD PTR 64[edi] DB 15,56,204,220 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-96] paddd xmm0,xmm5 DB 102,15,56,0,247 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm6 DB 102,15,58,15,253,4 nop paddd xmm3,xmm7 DB 15,56,204,229 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-80] paddd xmm0,xmm6 DB 15,56,205,222 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm3 DB 102,15,58,15,254,4 nop paddd xmm4,xmm7 DB 15,56,204,238 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-64] paddd xmm0,xmm3 DB 15,56,205,227 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm4 DB 102,15,58,15,251,4 nop paddd xmm5,xmm7 DB 15,56,204,243 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-48] paddd xmm0,xmm4 DB 15,56,205,236 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm5 DB 102,15,58,15,252,4 nop paddd xmm6,xmm7 DB 15,56,204,220 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-32] paddd xmm0,xmm5 DB 15,56,205,245 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm6 DB 102,15,58,15,253,4 nop paddd xmm3,xmm7 DB 15,56,204,229 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp-16] paddd xmm0,xmm6 DB 15,56,205,222 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm3 DB 102,15,58,15,254,4 nop paddd xmm4,xmm7 DB 15,56,204,238 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR [ebp] paddd xmm0,xmm3 DB 15,56,205,227 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm4 DB 102,15,58,15,251,4 nop paddd xmm5,xmm7 DB 15,56,204,243 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR 16[ebp] paddd xmm0,xmm4 DB 15,56,205,236 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm5 DB 102,15,58,15,252,4 nop paddd xmm6,xmm7 DB 15,56,204,220 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR 32[ebp] paddd xmm0,xmm5 DB 15,56,205,245 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm6 DB 102,15,58,15,253,4 nop paddd xmm3,xmm7 DB 15,56,204,229 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR 48[ebp] paddd xmm0,xmm6 DB 15,56,205,222 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm3 DB 102,15,58,15,254,4 nop paddd xmm4,xmm7 DB 15,56,204,238 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR 64[ebp] paddd xmm0,xmm3 DB 15,56,205,227 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm4 DB 102,15,58,15,251,4 nop paddd xmm5,xmm7 DB 15,56,204,243 DB 15,56,203,202 movdqa xmm0,XMMWORD PTR 80[ebp] paddd xmm0,xmm4 DB 15,56,205,236 DB 15,56,203,209 pshufd xmm0,xmm0,14 movdqa xmm7,xmm5 DB 102,15,58,15,252,4 DB 15,56,203,202 paddd xmm6,xmm7 movdqa xmm0,XMMWORD PTR 96[ebp] paddd xmm0,xmm5 DB 15,56,203,209 pshufd xmm0,xmm0,14 DB 15,56,205,245 movdqa xmm7,XMMWORD PTR 128[ebp] DB 15,56,203,202 movdqa xmm0,XMMWORD PTR 112[ebp] paddd xmm0,xmm6 nop DB 15,56,203,209 pshufd xmm0,xmm0,14 cmp eax,edi nop DB 15,56,203,202 paddd xmm2,XMMWORD PTR 16[esp] paddd xmm1,XMMWORD PTR [esp] jnz $L011loop_shaext pshufd xmm2,xmm2,177 pshufd xmm7,xmm1,27 pshufd xmm1,xmm1,177 punpckhqdq xmm1,xmm2 DB 102,15,58,15,215,8 mov esp,DWORD PTR 44[esp] movdqu XMMWORD PTR [esi],xmm1 movdqu XMMWORD PTR 16[esi],xmm2 pop edi pop esi pop ebx pop ebp ret ALIGN 32 $L006SSSE3: lea esp,DWORD PTR [esp-96] mov eax,DWORD PTR [esi] mov ebx,DWORD PTR 4[esi] mov ecx,DWORD PTR 8[esi] mov edi,DWORD PTR 12[esi] mov DWORD PTR 4[esp],ebx xor ebx,ecx mov DWORD PTR 8[esp],ecx mov DWORD PTR 12[esp],edi mov edx,DWORD PTR 16[esi] mov edi,DWORD PTR 20[esi] mov ecx,DWORD PTR 24[esi] mov esi,DWORD PTR 28[esi] mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 100[esp] mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esp],esi movdqa xmm7,XMMWORD PTR 256[ebp] jmp $L012grand_ssse3 ALIGN 16 $L012grand_ssse3: movdqu xmm0,XMMWORD PTR [edi] movdqu xmm1,XMMWORD PTR 16[edi] movdqu xmm2,XMMWORD PTR 32[edi] movdqu xmm3,XMMWORD PTR 48[edi] add edi,64 DB 102,15,56,0,199 mov DWORD PTR 100[esp],edi DB 102,15,56,0,207 movdqa xmm4,XMMWORD PTR [ebp] DB 102,15,56,0,215 movdqa xmm5,XMMWORD PTR 16[ebp] paddd xmm4,xmm0 DB 102,15,56,0,223 movdqa xmm6,XMMWORD PTR 32[ebp] paddd xmm5,xmm1 movdqa xmm7,XMMWORD PTR 48[ebp] movdqa XMMWORD PTR 32[esp],xmm4 paddd xmm6,xmm2 movdqa XMMWORD PTR 48[esp],xmm5 paddd xmm7,xmm3 movdqa XMMWORD PTR 64[esp],xmm6 movdqa XMMWORD PTR 80[esp],xmm7 jmp $L013ssse3_00_47 ALIGN 16 $L013ssse3_00_47: add ebp,64 mov ecx,edx movdqa xmm4,xmm1 ror edx,14 mov esi,DWORD PTR 20[esp] movdqa xmm7,xmm3 xor edx,ecx mov edi,DWORD PTR 24[esp] DB 102,15,58,15,224,4 xor esi,edi ror edx,5 and esi,ecx DB 102,15,58,15,250,4 mov DWORD PTR 16[esp],ecx xor edx,ecx xor edi,esi movdqa xmm5,xmm4 ror edx,6 mov ecx,eax movdqa xmm6,xmm4 add edx,edi mov edi,DWORD PTR 4[esp] psrld xmm4,3 mov esi,eax ror ecx,9 paddd xmm0,xmm7 mov DWORD PTR [esp],eax xor ecx,eax psrld xmm6,7 xor eax,edi add edx,DWORD PTR 28[esp] ror ecx,11 and ebx,eax pshufd xmm7,xmm3,250 xor ecx,esi add edx,DWORD PTR 32[esp] pslld xmm5,14 xor ebx,edi ror ecx,2 pxor xmm4,xmm6 add ebx,edx add edx,DWORD PTR 12[esp] psrld xmm6,11 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm4,xmm5 mov esi,DWORD PTR 16[esp] xor edx,ecx pslld xmm5,11 mov edi,DWORD PTR 20[esp] xor esi,edi ror edx,5 pxor xmm4,xmm6 and esi,ecx mov DWORD PTR 12[esp],ecx movdqa xmm6,xmm7 xor edx,ecx xor edi,esi ror edx,6 pxor xmm4,xmm5 mov ecx,ebx add edx,edi psrld xmm7,10 mov edi,DWORD PTR [esp] mov esi,ebx ror ecx,9 paddd xmm0,xmm4 mov DWORD PTR 28[esp],ebx xor ecx,ebx psrlq xmm6,17 xor ebx,edi add edx,DWORD PTR 24[esp] ror ecx,11 pxor xmm7,xmm6 and eax,ebx xor ecx,esi psrlq xmm6,2 add edx,DWORD PTR 36[esp] xor eax,edi ror ecx,2 pxor xmm7,xmm6 add eax,edx add edx,DWORD PTR 8[esp] pshufd xmm7,xmm7,128 add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 12[esp] xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi ror edx,5 and esi,ecx psrldq xmm7,8 mov DWORD PTR 8[esp],ecx xor edx,ecx xor edi,esi paddd xmm0,xmm7 ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] mov esi,eax ror ecx,9 mov DWORD PTR 24[esp],eax pshufd xmm7,xmm0,80 xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] movdqa xmm6,xmm7 ror ecx,11 psrld xmm7,10 and ebx,eax psrlq xmm6,17 xor ecx,esi add edx,DWORD PTR 40[esp] xor ebx,edi ror ecx,2 pxor xmm7,xmm6 add ebx,edx add edx,DWORD PTR 4[esp] psrlq xmm6,2 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm7,xmm6 mov esi,DWORD PTR 8[esp] xor edx,ecx mov edi,DWORD PTR 12[esp] pshufd xmm7,xmm7,8 xor esi,edi ror edx,5 movdqa xmm6,XMMWORD PTR [ebp] and esi,ecx mov DWORD PTR 4[esp],ecx pslldq xmm7,8 xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx ror ecx,9 paddd xmm0,xmm7 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] paddd xmm6,xmm0 ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 44[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx movdqa XMMWORD PTR 32[esp],xmm6 mov ecx,edx movdqa xmm4,xmm2 ror edx,14 mov esi,DWORD PTR 4[esp] movdqa xmm7,xmm0 xor edx,ecx mov edi,DWORD PTR 8[esp] DB 102,15,58,15,225,4 xor esi,edi ror edx,5 and esi,ecx DB 102,15,58,15,251,4 mov DWORD PTR [esp],ecx xor edx,ecx xor edi,esi movdqa xmm5,xmm4 ror edx,6 mov ecx,eax movdqa xmm6,xmm4 add edx,edi mov edi,DWORD PTR 20[esp] psrld xmm4,3 mov esi,eax ror ecx,9 paddd xmm1,xmm7 mov DWORD PTR 16[esp],eax xor ecx,eax psrld xmm6,7 xor eax,edi add edx,DWORD PTR 12[esp] ror ecx,11 and ebx,eax pshufd xmm7,xmm0,250 xor ecx,esi add edx,DWORD PTR 48[esp] pslld xmm5,14 xor ebx,edi ror ecx,2 pxor xmm4,xmm6 add ebx,edx add edx,DWORD PTR 28[esp] psrld xmm6,11 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm4,xmm5 mov esi,DWORD PTR [esp] xor edx,ecx pslld xmm5,11 mov edi,DWORD PTR 4[esp] xor esi,edi ror edx,5 pxor xmm4,xmm6 and esi,ecx mov DWORD PTR 28[esp],ecx movdqa xmm6,xmm7 xor edx,ecx xor edi,esi ror edx,6 pxor xmm4,xmm5 mov ecx,ebx add edx,edi psrld xmm7,10 mov edi,DWORD PTR 16[esp] mov esi,ebx ror ecx,9 paddd xmm1,xmm4 mov DWORD PTR 12[esp],ebx xor ecx,ebx psrlq xmm6,17 xor ebx,edi add edx,DWORD PTR 8[esp] ror ecx,11 pxor xmm7,xmm6 and eax,ebx xor ecx,esi psrlq xmm6,2 add edx,DWORD PTR 52[esp] xor eax,edi ror ecx,2 pxor xmm7,xmm6 add eax,edx add edx,DWORD PTR 24[esp] pshufd xmm7,xmm7,128 add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 28[esp] xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi ror edx,5 and esi,ecx psrldq xmm7,8 mov DWORD PTR 24[esp],ecx xor edx,ecx xor edi,esi paddd xmm1,xmm7 ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] mov esi,eax ror ecx,9 mov DWORD PTR 8[esp],eax pshufd xmm7,xmm1,80 xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] movdqa xmm6,xmm7 ror ecx,11 psrld xmm7,10 and ebx,eax psrlq xmm6,17 xor ecx,esi add edx,DWORD PTR 56[esp] xor ebx,edi ror ecx,2 pxor xmm7,xmm6 add ebx,edx add edx,DWORD PTR 20[esp] psrlq xmm6,2 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm7,xmm6 mov esi,DWORD PTR 24[esp] xor edx,ecx mov edi,DWORD PTR 28[esp] pshufd xmm7,xmm7,8 xor esi,edi ror edx,5 movdqa xmm6,XMMWORD PTR 16[ebp] and esi,ecx mov DWORD PTR 20[esp],ecx pslldq xmm7,8 xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx ror ecx,9 paddd xmm1,xmm7 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] paddd xmm6,xmm1 ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 60[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx movdqa XMMWORD PTR 48[esp],xmm6 mov ecx,edx movdqa xmm4,xmm3 ror edx,14 mov esi,DWORD PTR 20[esp] movdqa xmm7,xmm1 xor edx,ecx mov edi,DWORD PTR 24[esp] DB 102,15,58,15,226,4 xor esi,edi ror edx,5 and esi,ecx DB 102,15,58,15,248,4 mov DWORD PTR 16[esp],ecx xor edx,ecx xor edi,esi movdqa xmm5,xmm4 ror edx,6 mov ecx,eax movdqa xmm6,xmm4 add edx,edi mov edi,DWORD PTR 4[esp] psrld xmm4,3 mov esi,eax ror ecx,9 paddd xmm2,xmm7 mov DWORD PTR [esp],eax xor ecx,eax psrld xmm6,7 xor eax,edi add edx,DWORD PTR 28[esp] ror ecx,11 and ebx,eax pshufd xmm7,xmm1,250 xor ecx,esi add edx,DWORD PTR 64[esp] pslld xmm5,14 xor ebx,edi ror ecx,2 pxor xmm4,xmm6 add ebx,edx add edx,DWORD PTR 12[esp] psrld xmm6,11 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm4,xmm5 mov esi,DWORD PTR 16[esp] xor edx,ecx pslld xmm5,11 mov edi,DWORD PTR 20[esp] xor esi,edi ror edx,5 pxor xmm4,xmm6 and esi,ecx mov DWORD PTR 12[esp],ecx movdqa xmm6,xmm7 xor edx,ecx xor edi,esi ror edx,6 pxor xmm4,xmm5 mov ecx,ebx add edx,edi psrld xmm7,10 mov edi,DWORD PTR [esp] mov esi,ebx ror ecx,9 paddd xmm2,xmm4 mov DWORD PTR 28[esp],ebx xor ecx,ebx psrlq xmm6,17 xor ebx,edi add edx,DWORD PTR 24[esp] ror ecx,11 pxor xmm7,xmm6 and eax,ebx xor ecx,esi psrlq xmm6,2 add edx,DWORD PTR 68[esp] xor eax,edi ror ecx,2 pxor xmm7,xmm6 add eax,edx add edx,DWORD PTR 8[esp] pshufd xmm7,xmm7,128 add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 12[esp] xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi ror edx,5 and esi,ecx psrldq xmm7,8 mov DWORD PTR 8[esp],ecx xor edx,ecx xor edi,esi paddd xmm2,xmm7 ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] mov esi,eax ror ecx,9 mov DWORD PTR 24[esp],eax pshufd xmm7,xmm2,80 xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] movdqa xmm6,xmm7 ror ecx,11 psrld xmm7,10 and ebx,eax psrlq xmm6,17 xor ecx,esi add edx,DWORD PTR 72[esp] xor ebx,edi ror ecx,2 pxor xmm7,xmm6 add ebx,edx add edx,DWORD PTR 4[esp] psrlq xmm6,2 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm7,xmm6 mov esi,DWORD PTR 8[esp] xor edx,ecx mov edi,DWORD PTR 12[esp] pshufd xmm7,xmm7,8 xor esi,edi ror edx,5 movdqa xmm6,XMMWORD PTR 32[ebp] and esi,ecx mov DWORD PTR 4[esp],ecx pslldq xmm7,8 xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx ror ecx,9 paddd xmm2,xmm7 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] paddd xmm6,xmm2 ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 76[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx movdqa XMMWORD PTR 64[esp],xmm6 mov ecx,edx movdqa xmm4,xmm0 ror edx,14 mov esi,DWORD PTR 4[esp] movdqa xmm7,xmm2 xor edx,ecx mov edi,DWORD PTR 8[esp] DB 102,15,58,15,227,4 xor esi,edi ror edx,5 and esi,ecx DB 102,15,58,15,249,4 mov DWORD PTR [esp],ecx xor edx,ecx xor edi,esi movdqa xmm5,xmm4 ror edx,6 mov ecx,eax movdqa xmm6,xmm4 add edx,edi mov edi,DWORD PTR 20[esp] psrld xmm4,3 mov esi,eax ror ecx,9 paddd xmm3,xmm7 mov DWORD PTR 16[esp],eax xor ecx,eax psrld xmm6,7 xor eax,edi add edx,DWORD PTR 12[esp] ror ecx,11 and ebx,eax pshufd xmm7,xmm2,250 xor ecx,esi add edx,DWORD PTR 80[esp] pslld xmm5,14 xor ebx,edi ror ecx,2 pxor xmm4,xmm6 add ebx,edx add edx,DWORD PTR 28[esp] psrld xmm6,11 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm4,xmm5 mov esi,DWORD PTR [esp] xor edx,ecx pslld xmm5,11 mov edi,DWORD PTR 4[esp] xor esi,edi ror edx,5 pxor xmm4,xmm6 and esi,ecx mov DWORD PTR 28[esp],ecx movdqa xmm6,xmm7 xor edx,ecx xor edi,esi ror edx,6 pxor xmm4,xmm5 mov ecx,ebx add edx,edi psrld xmm7,10 mov edi,DWORD PTR 16[esp] mov esi,ebx ror ecx,9 paddd xmm3,xmm4 mov DWORD PTR 12[esp],ebx xor ecx,ebx psrlq xmm6,17 xor ebx,edi add edx,DWORD PTR 8[esp] ror ecx,11 pxor xmm7,xmm6 and eax,ebx xor ecx,esi psrlq xmm6,2 add edx,DWORD PTR 84[esp] xor eax,edi ror ecx,2 pxor xmm7,xmm6 add eax,edx add edx,DWORD PTR 24[esp] pshufd xmm7,xmm7,128 add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 28[esp] xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi ror edx,5 and esi,ecx psrldq xmm7,8 mov DWORD PTR 24[esp],ecx xor edx,ecx xor edi,esi paddd xmm3,xmm7 ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] mov esi,eax ror ecx,9 mov DWORD PTR 8[esp],eax pshufd xmm7,xmm3,80 xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] movdqa xmm6,xmm7 ror ecx,11 psrld xmm7,10 and ebx,eax psrlq xmm6,17 xor ecx,esi add edx,DWORD PTR 88[esp] xor ebx,edi ror ecx,2 pxor xmm7,xmm6 add ebx,edx add edx,DWORD PTR 20[esp] psrlq xmm6,2 add ebx,ecx mov ecx,edx ror edx,14 pxor xmm7,xmm6 mov esi,DWORD PTR 24[esp] xor edx,ecx mov edi,DWORD PTR 28[esp] pshufd xmm7,xmm7,8 xor esi,edi ror edx,5 movdqa xmm6,XMMWORD PTR 48[ebp] and esi,ecx mov DWORD PTR 20[esp],ecx pslldq xmm7,8 xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx ror ecx,9 paddd xmm3,xmm7 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] paddd xmm6,xmm3 ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 92[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx movdqa XMMWORD PTR 80[esp],xmm6 cmp DWORD PTR 64[ebp],66051 jne $L013ssse3_00_47 mov ecx,edx ror edx,14 mov esi,DWORD PTR 20[esp] xor edx,ecx mov edi,DWORD PTR 24[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 4[esp] mov esi,eax ror ecx,9 mov DWORD PTR [esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 28[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 32[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 12[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 16[esp] xor edx,ecx mov edi,DWORD PTR 20[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 12[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR [esp] mov esi,ebx ror ecx,9 mov DWORD PTR 28[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 24[esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 36[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 12[esp] xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] mov esi,eax ror ecx,9 mov DWORD PTR 24[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 40[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 4[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 8[esp] xor edx,ecx mov edi,DWORD PTR 12[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 4[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx ror ecx,9 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 44[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 4[esp] xor edx,ecx mov edi,DWORD PTR 8[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 20[esp] mov esi,eax ror ecx,9 mov DWORD PTR 16[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 12[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 48[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 28[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR [esp] xor edx,ecx mov edi,DWORD PTR 4[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 28[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 16[esp] mov esi,ebx ror ecx,9 mov DWORD PTR 12[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 8[esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 52[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 28[esp] xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] mov esi,eax ror ecx,9 mov DWORD PTR 8[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 56[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 20[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 24[esp] xor edx,ecx mov edi,DWORD PTR 28[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 20[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx ror ecx,9 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 60[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 20[esp] xor edx,ecx mov edi,DWORD PTR 24[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 4[esp] mov esi,eax ror ecx,9 mov DWORD PTR [esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 28[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 64[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 12[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 16[esp] xor edx,ecx mov edi,DWORD PTR 20[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 12[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR [esp] mov esi,ebx ror ecx,9 mov DWORD PTR 28[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 24[esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 68[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 12[esp] xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] mov esi,eax ror ecx,9 mov DWORD PTR 24[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 72[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 4[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 8[esp] xor edx,ecx mov edi,DWORD PTR 12[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 4[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx ror ecx,9 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 76[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 4[esp] xor edx,ecx mov edi,DWORD PTR 8[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 20[esp] mov esi,eax ror ecx,9 mov DWORD PTR 16[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 12[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 80[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 28[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR [esp] xor edx,ecx mov edi,DWORD PTR 4[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 28[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 16[esp] mov esi,ebx ror ecx,9 mov DWORD PTR 12[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 8[esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 84[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 28[esp] xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] mov esi,eax ror ecx,9 mov DWORD PTR 8[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] ror ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 88[esp] xor ebx,edi ror ecx,2 add ebx,edx add edx,DWORD PTR 20[esp] add ebx,ecx mov ecx,edx ror edx,14 mov esi,DWORD PTR 24[esp] xor edx,ecx mov edi,DWORD PTR 28[esp] xor esi,edi ror edx,5 and esi,ecx mov DWORD PTR 20[esp],ecx xor edx,ecx xor edi,esi ror edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx ror ecx,9 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] ror ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 92[esp] xor eax,edi ror ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx mov esi,DWORD PTR 96[esp] xor ebx,edi mov ecx,DWORD PTR 12[esp] add eax,DWORD PTR [esi] add ebx,DWORD PTR 4[esi] add edi,DWORD PTR 8[esi] add ecx,DWORD PTR 12[esi] mov DWORD PTR [esi],eax mov DWORD PTR 4[esi],ebx mov DWORD PTR 8[esi],edi mov DWORD PTR 12[esi],ecx mov DWORD PTR 4[esp],ebx xor ebx,edi mov DWORD PTR 8[esp],edi mov DWORD PTR 12[esp],ecx mov edi,DWORD PTR 20[esp] mov ecx,DWORD PTR 24[esp] add edx,DWORD PTR 16[esi] add edi,DWORD PTR 20[esi] add ecx,DWORD PTR 24[esi] mov DWORD PTR 16[esi],edx mov DWORD PTR 20[esi],edi mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 28[esp] mov DWORD PTR 24[esi],ecx add edi,DWORD PTR 28[esi] mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esi],edi mov DWORD PTR 28[esp],edi mov edi,DWORD PTR 100[esp] movdqa xmm7,XMMWORD PTR 64[ebp] sub ebp,192 cmp edi,DWORD PTR 104[esp] jb $L012grand_ssse3 mov esp,DWORD PTR 108[esp] pop edi pop esi pop ebx pop ebp ret ALIGN 32 $L005AVX: and edx,264 cmp edx,264 je $L014AVX_BMI lea esp,DWORD PTR [esp-96] vzeroall mov eax,DWORD PTR [esi] mov ebx,DWORD PTR 4[esi] mov ecx,DWORD PTR 8[esi] mov edi,DWORD PTR 12[esi] mov DWORD PTR 4[esp],ebx xor ebx,ecx mov DWORD PTR 8[esp],ecx mov DWORD PTR 12[esp],edi mov edx,DWORD PTR 16[esi] mov edi,DWORD PTR 20[esi] mov ecx,DWORD PTR 24[esi] mov esi,DWORD PTR 28[esi] mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 100[esp] mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esp],esi vmovdqa xmm7,XMMWORD PTR 256[ebp] jmp $L015grand_avx ALIGN 32 $L015grand_avx: vmovdqu xmm0,XMMWORD PTR [edi] vmovdqu xmm1,XMMWORD PTR 16[edi] vmovdqu xmm2,XMMWORD PTR 32[edi] vmovdqu xmm3,XMMWORD PTR 48[edi] add edi,64 vpshufb xmm0,xmm0,xmm7 mov DWORD PTR 100[esp],edi vpshufb xmm1,xmm1,xmm7 vpshufb xmm2,xmm2,xmm7 vpaddd xmm4,xmm0,XMMWORD PTR [ebp] vpshufb xmm3,xmm3,xmm7 vpaddd xmm5,xmm1,XMMWORD PTR 16[ebp] vpaddd xmm6,xmm2,XMMWORD PTR 32[ebp] vpaddd xmm7,xmm3,XMMWORD PTR 48[ebp] vmovdqa XMMWORD PTR 32[esp],xmm4 vmovdqa XMMWORD PTR 48[esp],xmm5 vmovdqa XMMWORD PTR 64[esp],xmm6 vmovdqa XMMWORD PTR 80[esp],xmm7 jmp $L016avx_00_47 ALIGN 16 $L016avx_00_47: add ebp,64 vpalignr xmm4,xmm1,xmm0,4 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 20[esp] vpalignr xmm7,xmm3,xmm2,4 xor edx,ecx mov edi,DWORD PTR 24[esp] xor esi,edi vpsrld xmm6,xmm4,7 shrd edx,edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx vpaddd xmm0,xmm0,xmm7 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrld xmm7,xmm4,3 mov ecx,eax add edx,edi mov edi,DWORD PTR 4[esp] vpslld xmm5,xmm4,14 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR [esp],eax vpxor xmm4,xmm7,xmm6 xor ecx,eax xor eax,edi add edx,DWORD PTR 28[esp] vpshufd xmm7,xmm3,250 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpsrld xmm6,xmm6,11 add edx,DWORD PTR 32[esp] xor ebx,edi shrd ecx,ecx,2 vpxor xmm4,xmm4,xmm5 add ebx,edx add edx,DWORD PTR 12[esp] add ebx,ecx vpslld xmm5,xmm5,11 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 16[esp] vpxor xmm4,xmm4,xmm6 xor edx,ecx mov edi,DWORD PTR 20[esp] xor esi,edi vpsrld xmm6,xmm7,10 shrd edx,edx,5 and esi,ecx mov DWORD PTR 12[esp],ecx vpxor xmm4,xmm4,xmm5 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,ebx add edx,edi mov edi,DWORD PTR [esp] vpaddd xmm0,xmm0,xmm4 mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 28[esp],ebx vpxor xmm6,xmm6,xmm5 xor ecx,ebx xor ebx,edi add edx,DWORD PTR 24[esp] vpsrlq xmm7,xmm7,19 shrd ecx,ecx,11 and eax,ebx xor ecx,esi vpxor xmm6,xmm6,xmm7 add edx,DWORD PTR 36[esp] xor eax,edi shrd ecx,ecx,2 vpshufd xmm7,xmm6,132 add eax,edx add edx,DWORD PTR 8[esp] add eax,ecx vpsrldq xmm7,xmm7,8 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 12[esp] vpaddd xmm0,xmm0,xmm7 xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi vpshufd xmm7,xmm0,80 shrd edx,edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx vpsrld xmm6,xmm7,10 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] vpxor xmm6,xmm6,xmm5 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 24[esp],eax vpsrlq xmm7,xmm7,19 xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] vpxor xmm6,xmm6,xmm7 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpshufd xmm7,xmm6,232 add edx,DWORD PTR 40[esp] xor ebx,edi shrd ecx,ecx,2 vpslldq xmm7,xmm7,8 add ebx,edx add edx,DWORD PTR 4[esp] add ebx,ecx vpaddd xmm0,xmm0,xmm7 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 8[esp] vpaddd xmm6,xmm0,XMMWORD PTR [ebp] xor edx,ecx mov edi,DWORD PTR 12[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 4[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 44[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx vmovdqa XMMWORD PTR 32[esp],xmm6 vpalignr xmm4,xmm2,xmm1,4 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 4[esp] vpalignr xmm7,xmm0,xmm3,4 xor edx,ecx mov edi,DWORD PTR 8[esp] xor esi,edi vpsrld xmm6,xmm4,7 shrd edx,edx,5 and esi,ecx mov DWORD PTR [esp],ecx vpaddd xmm1,xmm1,xmm7 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrld xmm7,xmm4,3 mov ecx,eax add edx,edi mov edi,DWORD PTR 20[esp] vpslld xmm5,xmm4,14 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 16[esp],eax vpxor xmm4,xmm7,xmm6 xor ecx,eax xor eax,edi add edx,DWORD PTR 12[esp] vpshufd xmm7,xmm0,250 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpsrld xmm6,xmm6,11 add edx,DWORD PTR 48[esp] xor ebx,edi shrd ecx,ecx,2 vpxor xmm4,xmm4,xmm5 add ebx,edx add edx,DWORD PTR 28[esp] add ebx,ecx vpslld xmm5,xmm5,11 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR [esp] vpxor xmm4,xmm4,xmm6 xor edx,ecx mov edi,DWORD PTR 4[esp] xor esi,edi vpsrld xmm6,xmm7,10 shrd edx,edx,5 and esi,ecx mov DWORD PTR 28[esp],ecx vpxor xmm4,xmm4,xmm5 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,ebx add edx,edi mov edi,DWORD PTR 16[esp] vpaddd xmm1,xmm1,xmm4 mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 12[esp],ebx vpxor xmm6,xmm6,xmm5 xor ecx,ebx xor ebx,edi add edx,DWORD PTR 8[esp] vpsrlq xmm7,xmm7,19 shrd ecx,ecx,11 and eax,ebx xor ecx,esi vpxor xmm6,xmm6,xmm7 add edx,DWORD PTR 52[esp] xor eax,edi shrd ecx,ecx,2 vpshufd xmm7,xmm6,132 add eax,edx add edx,DWORD PTR 24[esp] add eax,ecx vpsrldq xmm7,xmm7,8 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 28[esp] vpaddd xmm1,xmm1,xmm7 xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi vpshufd xmm7,xmm1,80 shrd edx,edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx vpsrld xmm6,xmm7,10 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] vpxor xmm6,xmm6,xmm5 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 8[esp],eax vpsrlq xmm7,xmm7,19 xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] vpxor xmm6,xmm6,xmm7 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpshufd xmm7,xmm6,232 add edx,DWORD PTR 56[esp] xor ebx,edi shrd ecx,ecx,2 vpslldq xmm7,xmm7,8 add ebx,edx add edx,DWORD PTR 20[esp] add ebx,ecx vpaddd xmm1,xmm1,xmm7 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 24[esp] vpaddd xmm6,xmm1,XMMWORD PTR 16[ebp] xor edx,ecx mov edi,DWORD PTR 28[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 20[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 60[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx vmovdqa XMMWORD PTR 48[esp],xmm6 vpalignr xmm4,xmm3,xmm2,4 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 20[esp] vpalignr xmm7,xmm1,xmm0,4 xor edx,ecx mov edi,DWORD PTR 24[esp] xor esi,edi vpsrld xmm6,xmm4,7 shrd edx,edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx vpaddd xmm2,xmm2,xmm7 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrld xmm7,xmm4,3 mov ecx,eax add edx,edi mov edi,DWORD PTR 4[esp] vpslld xmm5,xmm4,14 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR [esp],eax vpxor xmm4,xmm7,xmm6 xor ecx,eax xor eax,edi add edx,DWORD PTR 28[esp] vpshufd xmm7,xmm1,250 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpsrld xmm6,xmm6,11 add edx,DWORD PTR 64[esp] xor ebx,edi shrd ecx,ecx,2 vpxor xmm4,xmm4,xmm5 add ebx,edx add edx,DWORD PTR 12[esp] add ebx,ecx vpslld xmm5,xmm5,11 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 16[esp] vpxor xmm4,xmm4,xmm6 xor edx,ecx mov edi,DWORD PTR 20[esp] xor esi,edi vpsrld xmm6,xmm7,10 shrd edx,edx,5 and esi,ecx mov DWORD PTR 12[esp],ecx vpxor xmm4,xmm4,xmm5 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,ebx add edx,edi mov edi,DWORD PTR [esp] vpaddd xmm2,xmm2,xmm4 mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 28[esp],ebx vpxor xmm6,xmm6,xmm5 xor ecx,ebx xor ebx,edi add edx,DWORD PTR 24[esp] vpsrlq xmm7,xmm7,19 shrd ecx,ecx,11 and eax,ebx xor ecx,esi vpxor xmm6,xmm6,xmm7 add edx,DWORD PTR 68[esp] xor eax,edi shrd ecx,ecx,2 vpshufd xmm7,xmm6,132 add eax,edx add edx,DWORD PTR 8[esp] add eax,ecx vpsrldq xmm7,xmm7,8 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 12[esp] vpaddd xmm2,xmm2,xmm7 xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi vpshufd xmm7,xmm2,80 shrd edx,edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx vpsrld xmm6,xmm7,10 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] vpxor xmm6,xmm6,xmm5 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 24[esp],eax vpsrlq xmm7,xmm7,19 xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] vpxor xmm6,xmm6,xmm7 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpshufd xmm7,xmm6,232 add edx,DWORD PTR 72[esp] xor ebx,edi shrd ecx,ecx,2 vpslldq xmm7,xmm7,8 add ebx,edx add edx,DWORD PTR 4[esp] add ebx,ecx vpaddd xmm2,xmm2,xmm7 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 8[esp] vpaddd xmm6,xmm2,XMMWORD PTR 32[ebp] xor edx,ecx mov edi,DWORD PTR 12[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 4[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 76[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx vmovdqa XMMWORD PTR 64[esp],xmm6 vpalignr xmm4,xmm0,xmm3,4 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 4[esp] vpalignr xmm7,xmm2,xmm1,4 xor edx,ecx mov edi,DWORD PTR 8[esp] xor esi,edi vpsrld xmm6,xmm4,7 shrd edx,edx,5 and esi,ecx mov DWORD PTR [esp],ecx vpaddd xmm3,xmm3,xmm7 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrld xmm7,xmm4,3 mov ecx,eax add edx,edi mov edi,DWORD PTR 20[esp] vpslld xmm5,xmm4,14 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 16[esp],eax vpxor xmm4,xmm7,xmm6 xor ecx,eax xor eax,edi add edx,DWORD PTR 12[esp] vpshufd xmm7,xmm2,250 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpsrld xmm6,xmm6,11 add edx,DWORD PTR 80[esp] xor ebx,edi shrd ecx,ecx,2 vpxor xmm4,xmm4,xmm5 add ebx,edx add edx,DWORD PTR 28[esp] add ebx,ecx vpslld xmm5,xmm5,11 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR [esp] vpxor xmm4,xmm4,xmm6 xor edx,ecx mov edi,DWORD PTR 4[esp] xor esi,edi vpsrld xmm6,xmm7,10 shrd edx,edx,5 and esi,ecx mov DWORD PTR 28[esp],ecx vpxor xmm4,xmm4,xmm5 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,ebx add edx,edi mov edi,DWORD PTR 16[esp] vpaddd xmm3,xmm3,xmm4 mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 12[esp],ebx vpxor xmm6,xmm6,xmm5 xor ecx,ebx xor ebx,edi add edx,DWORD PTR 8[esp] vpsrlq xmm7,xmm7,19 shrd ecx,ecx,11 and eax,ebx xor ecx,esi vpxor xmm6,xmm6,xmm7 add edx,DWORD PTR 84[esp] xor eax,edi shrd ecx,ecx,2 vpshufd xmm7,xmm6,132 add eax,edx add edx,DWORD PTR 24[esp] add eax,ecx vpsrldq xmm7,xmm7,8 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 28[esp] vpaddd xmm3,xmm3,xmm7 xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi vpshufd xmm7,xmm3,80 shrd edx,edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx vpsrld xmm6,xmm7,10 xor edx,ecx xor edi,esi shrd edx,edx,6 vpsrlq xmm5,xmm7,17 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] vpxor xmm6,xmm6,xmm5 mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 8[esp],eax vpsrlq xmm7,xmm7,19 xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] vpxor xmm6,xmm6,xmm7 shrd ecx,ecx,11 and ebx,eax xor ecx,esi vpshufd xmm7,xmm6,232 add edx,DWORD PTR 88[esp] xor ebx,edi shrd ecx,ecx,2 vpslldq xmm7,xmm7,8 add ebx,edx add edx,DWORD PTR 20[esp] add ebx,ecx vpaddd xmm3,xmm3,xmm7 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 24[esp] vpaddd xmm6,xmm3,XMMWORD PTR 48[ebp] xor edx,ecx mov edi,DWORD PTR 28[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 20[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 92[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx vmovdqa XMMWORD PTR 80[esp],xmm6 cmp DWORD PTR 64[ebp],66051 jne $L016avx_00_47 mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 20[esp] xor edx,ecx mov edi,DWORD PTR 24[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 4[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR [esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 28[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 32[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 12[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 16[esp] xor edx,ecx mov edi,DWORD PTR 20[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 12[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR [esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 28[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 24[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 36[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 12[esp] xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 24[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 40[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 4[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 8[esp] xor edx,ecx mov edi,DWORD PTR 12[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 4[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 44[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 4[esp] xor edx,ecx mov edi,DWORD PTR 8[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 20[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 16[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 12[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 48[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 28[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR [esp] xor edx,ecx mov edi,DWORD PTR 4[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 28[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 16[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 12[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 8[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 52[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 28[esp] xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 8[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 56[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 20[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 24[esp] xor edx,ecx mov edi,DWORD PTR 28[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 20[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 60[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 20[esp] xor edx,ecx mov edi,DWORD PTR 24[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 16[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 4[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR [esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 28[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 64[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 12[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 16[esp] xor edx,ecx mov edi,DWORD PTR 20[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 12[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR [esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 28[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 24[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 68[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 8[esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 12[esp] xor edx,ecx mov edi,DWORD PTR 16[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 8[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 28[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 24[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 20[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 72[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 4[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 8[esp] xor edx,ecx mov edi,DWORD PTR 12[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 4[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 24[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 20[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 16[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 76[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR [esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 4[esp] xor edx,ecx mov edi,DWORD PTR 8[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR [esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 20[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 16[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 12[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 80[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 28[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR [esp] xor edx,ecx mov edi,DWORD PTR 4[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 28[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 16[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 12[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR 8[esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 84[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 24[esp] add eax,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 28[esp] xor edx,ecx mov edi,DWORD PTR [esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 24[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,eax add edx,edi mov edi,DWORD PTR 12[esp] mov esi,eax shrd ecx,ecx,9 mov DWORD PTR 8[esp],eax xor ecx,eax xor eax,edi add edx,DWORD PTR 4[esp] shrd ecx,ecx,11 and ebx,eax xor ecx,esi add edx,DWORD PTR 88[esp] xor ebx,edi shrd ecx,ecx,2 add ebx,edx add edx,DWORD PTR 20[esp] add ebx,ecx mov ecx,edx shrd edx,edx,14 mov esi,DWORD PTR 24[esp] xor edx,ecx mov edi,DWORD PTR 28[esp] xor esi,edi shrd edx,edx,5 and esi,ecx mov DWORD PTR 20[esp],ecx xor edx,ecx xor edi,esi shrd edx,edx,6 mov ecx,ebx add edx,edi mov edi,DWORD PTR 8[esp] mov esi,ebx shrd ecx,ecx,9 mov DWORD PTR 4[esp],ebx xor ecx,ebx xor ebx,edi add edx,DWORD PTR [esp] shrd ecx,ecx,11 and eax,ebx xor ecx,esi add edx,DWORD PTR 92[esp] xor eax,edi shrd ecx,ecx,2 add eax,edx add edx,DWORD PTR 16[esp] add eax,ecx mov esi,DWORD PTR 96[esp] xor ebx,edi mov ecx,DWORD PTR 12[esp] add eax,DWORD PTR [esi] add ebx,DWORD PTR 4[esi] add edi,DWORD PTR 8[esi] add ecx,DWORD PTR 12[esi] mov DWORD PTR [esi],eax mov DWORD PTR 4[esi],ebx mov DWORD PTR 8[esi],edi mov DWORD PTR 12[esi],ecx mov DWORD PTR 4[esp],ebx xor ebx,edi mov DWORD PTR 8[esp],edi mov DWORD PTR 12[esp],ecx mov edi,DWORD PTR 20[esp] mov ecx,DWORD PTR 24[esp] add edx,DWORD PTR 16[esi] add edi,DWORD PTR 20[esi] add ecx,DWORD PTR 24[esi] mov DWORD PTR 16[esi],edx mov DWORD PTR 20[esi],edi mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 28[esp] mov DWORD PTR 24[esi],ecx add edi,DWORD PTR 28[esi] mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esi],edi mov DWORD PTR 28[esp],edi mov edi,DWORD PTR 100[esp] vmovdqa xmm7,XMMWORD PTR 64[ebp] sub ebp,192 cmp edi,DWORD PTR 104[esp] jb $L015grand_avx mov esp,DWORD PTR 108[esp] vzeroall pop edi pop esi pop ebx pop ebp ret ALIGN 32 $L014AVX_BMI: lea esp,DWORD PTR [esp-96] vzeroall mov eax,DWORD PTR [esi] mov ebx,DWORD PTR 4[esi] mov ecx,DWORD PTR 8[esi] mov edi,DWORD PTR 12[esi] mov DWORD PTR 4[esp],ebx xor ebx,ecx mov DWORD PTR 8[esp],ecx mov DWORD PTR 12[esp],edi mov edx,DWORD PTR 16[esi] mov edi,DWORD PTR 20[esi] mov ecx,DWORD PTR 24[esi] mov esi,DWORD PTR 28[esi] mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 100[esp] mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esp],esi vmovdqa xmm7,XMMWORD PTR 256[ebp] jmp $L017grand_avx_bmi ALIGN 32 $L017grand_avx_bmi: vmovdqu xmm0,XMMWORD PTR [edi] vmovdqu xmm1,XMMWORD PTR 16[edi] vmovdqu xmm2,XMMWORD PTR 32[edi] vmovdqu xmm3,XMMWORD PTR 48[edi] add edi,64 vpshufb xmm0,xmm0,xmm7 mov DWORD PTR 100[esp],edi vpshufb xmm1,xmm1,xmm7 vpshufb xmm2,xmm2,xmm7 vpaddd xmm4,xmm0,XMMWORD PTR [ebp] vpshufb xmm3,xmm3,xmm7 vpaddd xmm5,xmm1,XMMWORD PTR 16[ebp] vpaddd xmm6,xmm2,XMMWORD PTR 32[ebp] vpaddd xmm7,xmm3,XMMWORD PTR 48[ebp] vmovdqa XMMWORD PTR 32[esp],xmm4 vmovdqa XMMWORD PTR 48[esp],xmm5 vmovdqa XMMWORD PTR 64[esp],xmm6 vmovdqa XMMWORD PTR 80[esp],xmm7 jmp $L018avx_bmi_00_47 ALIGN 16 $L018avx_bmi_00_47: add ebp,64 vpalignr xmm4,xmm1,xmm0,4 rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 16[esp],edx vpalignr xmm7,xmm3,xmm2,4 rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 24[esp] vpsrld xmm6,xmm4,7 xor ecx,edi and edx,DWORD PTR 20[esp] mov DWORD PTR [esp],eax vpaddd xmm0,xmm0,xmm7 or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrld xmm7,xmm4,3 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpslld xmm5,xmm4,14 mov edi,DWORD PTR 4[esp] xor ecx,esi xor eax,edi vpxor xmm4,xmm7,xmm6 add edx,DWORD PTR 28[esp] and ebx,eax add edx,DWORD PTR 32[esp] vpshufd xmm7,xmm3,250 xor ebx,edi add ecx,edx add edx,DWORD PTR 12[esp] vpsrld xmm6,xmm6,11 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm4,xmm4,xmm5 mov DWORD PTR 12[esp],edx rorx edi,edx,25 xor ecx,esi vpslld xmm5,xmm5,11 andn esi,edx,DWORD PTR 20[esp] xor ecx,edi and edx,DWORD PTR 16[esp] vpxor xmm4,xmm4,xmm6 mov DWORD PTR 28[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpsrld xmm6,xmm7,10 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpxor xmm4,xmm4,xmm5 mov edi,DWORD PTR [esp] xor ecx,esi xor ebx,edi vpsrlq xmm5,xmm7,17 add edx,DWORD PTR 24[esp] and eax,ebx add edx,DWORD PTR 36[esp] vpaddd xmm0,xmm0,xmm4 xor eax,edi add ecx,edx add edx,DWORD PTR 8[esp] vpxor xmm6,xmm6,xmm5 lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 vpsrlq xmm7,xmm7,19 mov DWORD PTR 8[esp],edx rorx edi,edx,25 xor ecx,esi vpxor xmm6,xmm6,xmm7 andn esi,edx,DWORD PTR 16[esp] xor ecx,edi and edx,DWORD PTR 12[esp] vpshufd xmm7,xmm6,132 mov DWORD PTR 24[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrldq xmm7,xmm7,8 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpaddd xmm0,xmm0,xmm7 mov edi,DWORD PTR 28[esp] xor ecx,esi xor eax,edi vpshufd xmm7,xmm0,80 add edx,DWORD PTR 20[esp] and ebx,eax add edx,DWORD PTR 40[esp] vpsrld xmm6,xmm7,10 xor ebx,edi add ecx,edx add edx,DWORD PTR 4[esp] vpsrlq xmm5,xmm7,17 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm6,xmm6,xmm5 mov DWORD PTR 4[esp],edx rorx edi,edx,25 xor ecx,esi vpsrlq xmm7,xmm7,19 andn esi,edx,DWORD PTR 12[esp] xor ecx,edi and edx,DWORD PTR 8[esp] vpxor xmm6,xmm6,xmm7 mov DWORD PTR 20[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpshufd xmm7,xmm6,232 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpslldq xmm7,xmm7,8 mov edi,DWORD PTR 24[esp] xor ecx,esi xor ebx,edi vpaddd xmm0,xmm0,xmm7 add edx,DWORD PTR 16[esp] and eax,ebx add edx,DWORD PTR 44[esp] vpaddd xmm6,xmm0,XMMWORD PTR [ebp] xor eax,edi add ecx,edx add edx,DWORD PTR [esp] lea eax,DWORD PTR [ecx*1+eax] vmovdqa XMMWORD PTR 32[esp],xmm6 vpalignr xmm4,xmm2,xmm1,4 rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR [esp],edx vpalignr xmm7,xmm0,xmm3,4 rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 8[esp] vpsrld xmm6,xmm4,7 xor ecx,edi and edx,DWORD PTR 4[esp] mov DWORD PTR 16[esp],eax vpaddd xmm1,xmm1,xmm7 or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrld xmm7,xmm4,3 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpslld xmm5,xmm4,14 mov edi,DWORD PTR 20[esp] xor ecx,esi xor eax,edi vpxor xmm4,xmm7,xmm6 add edx,DWORD PTR 12[esp] and ebx,eax add edx,DWORD PTR 48[esp] vpshufd xmm7,xmm0,250 xor ebx,edi add ecx,edx add edx,DWORD PTR 28[esp] vpsrld xmm6,xmm6,11 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm4,xmm4,xmm5 mov DWORD PTR 28[esp],edx rorx edi,edx,25 xor ecx,esi vpslld xmm5,xmm5,11 andn esi,edx,DWORD PTR 4[esp] xor ecx,edi and edx,DWORD PTR [esp] vpxor xmm4,xmm4,xmm6 mov DWORD PTR 12[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpsrld xmm6,xmm7,10 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpxor xmm4,xmm4,xmm5 mov edi,DWORD PTR 16[esp] xor ecx,esi xor ebx,edi vpsrlq xmm5,xmm7,17 add edx,DWORD PTR 8[esp] and eax,ebx add edx,DWORD PTR 52[esp] vpaddd xmm1,xmm1,xmm4 xor eax,edi add ecx,edx add edx,DWORD PTR 24[esp] vpxor xmm6,xmm6,xmm5 lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 vpsrlq xmm7,xmm7,19 mov DWORD PTR 24[esp],edx rorx edi,edx,25 xor ecx,esi vpxor xmm6,xmm6,xmm7 andn esi,edx,DWORD PTR [esp] xor ecx,edi and edx,DWORD PTR 28[esp] vpshufd xmm7,xmm6,132 mov DWORD PTR 8[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrldq xmm7,xmm7,8 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpaddd xmm1,xmm1,xmm7 mov edi,DWORD PTR 12[esp] xor ecx,esi xor eax,edi vpshufd xmm7,xmm1,80 add edx,DWORD PTR 4[esp] and ebx,eax add edx,DWORD PTR 56[esp] vpsrld xmm6,xmm7,10 xor ebx,edi add ecx,edx add edx,DWORD PTR 20[esp] vpsrlq xmm5,xmm7,17 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm6,xmm6,xmm5 mov DWORD PTR 20[esp],edx rorx edi,edx,25 xor ecx,esi vpsrlq xmm7,xmm7,19 andn esi,edx,DWORD PTR 28[esp] xor ecx,edi and edx,DWORD PTR 24[esp] vpxor xmm6,xmm6,xmm7 mov DWORD PTR 4[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpshufd xmm7,xmm6,232 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpslldq xmm7,xmm7,8 mov edi,DWORD PTR 8[esp] xor ecx,esi xor ebx,edi vpaddd xmm1,xmm1,xmm7 add edx,DWORD PTR [esp] and eax,ebx add edx,DWORD PTR 60[esp] vpaddd xmm6,xmm1,XMMWORD PTR 16[ebp] xor eax,edi add ecx,edx add edx,DWORD PTR 16[esp] lea eax,DWORD PTR [ecx*1+eax] vmovdqa XMMWORD PTR 48[esp],xmm6 vpalignr xmm4,xmm3,xmm2,4 rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 16[esp],edx vpalignr xmm7,xmm1,xmm0,4 rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 24[esp] vpsrld xmm6,xmm4,7 xor ecx,edi and edx,DWORD PTR 20[esp] mov DWORD PTR [esp],eax vpaddd xmm2,xmm2,xmm7 or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrld xmm7,xmm4,3 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpslld xmm5,xmm4,14 mov edi,DWORD PTR 4[esp] xor ecx,esi xor eax,edi vpxor xmm4,xmm7,xmm6 add edx,DWORD PTR 28[esp] and ebx,eax add edx,DWORD PTR 64[esp] vpshufd xmm7,xmm1,250 xor ebx,edi add ecx,edx add edx,DWORD PTR 12[esp] vpsrld xmm6,xmm6,11 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm4,xmm4,xmm5 mov DWORD PTR 12[esp],edx rorx edi,edx,25 xor ecx,esi vpslld xmm5,xmm5,11 andn esi,edx,DWORD PTR 20[esp] xor ecx,edi and edx,DWORD PTR 16[esp] vpxor xmm4,xmm4,xmm6 mov DWORD PTR 28[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpsrld xmm6,xmm7,10 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpxor xmm4,xmm4,xmm5 mov edi,DWORD PTR [esp] xor ecx,esi xor ebx,edi vpsrlq xmm5,xmm7,17 add edx,DWORD PTR 24[esp] and eax,ebx add edx,DWORD PTR 68[esp] vpaddd xmm2,xmm2,xmm4 xor eax,edi add ecx,edx add edx,DWORD PTR 8[esp] vpxor xmm6,xmm6,xmm5 lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 vpsrlq xmm7,xmm7,19 mov DWORD PTR 8[esp],edx rorx edi,edx,25 xor ecx,esi vpxor xmm6,xmm6,xmm7 andn esi,edx,DWORD PTR 16[esp] xor ecx,edi and edx,DWORD PTR 12[esp] vpshufd xmm7,xmm6,132 mov DWORD PTR 24[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrldq xmm7,xmm7,8 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpaddd xmm2,xmm2,xmm7 mov edi,DWORD PTR 28[esp] xor ecx,esi xor eax,edi vpshufd xmm7,xmm2,80 add edx,DWORD PTR 20[esp] and ebx,eax add edx,DWORD PTR 72[esp] vpsrld xmm6,xmm7,10 xor ebx,edi add ecx,edx add edx,DWORD PTR 4[esp] vpsrlq xmm5,xmm7,17 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm6,xmm6,xmm5 mov DWORD PTR 4[esp],edx rorx edi,edx,25 xor ecx,esi vpsrlq xmm7,xmm7,19 andn esi,edx,DWORD PTR 12[esp] xor ecx,edi and edx,DWORD PTR 8[esp] vpxor xmm6,xmm6,xmm7 mov DWORD PTR 20[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpshufd xmm7,xmm6,232 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpslldq xmm7,xmm7,8 mov edi,DWORD PTR 24[esp] xor ecx,esi xor ebx,edi vpaddd xmm2,xmm2,xmm7 add edx,DWORD PTR 16[esp] and eax,ebx add edx,DWORD PTR 76[esp] vpaddd xmm6,xmm2,XMMWORD PTR 32[ebp] xor eax,edi add ecx,edx add edx,DWORD PTR [esp] lea eax,DWORD PTR [ecx*1+eax] vmovdqa XMMWORD PTR 64[esp],xmm6 vpalignr xmm4,xmm0,xmm3,4 rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR [esp],edx vpalignr xmm7,xmm2,xmm1,4 rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 8[esp] vpsrld xmm6,xmm4,7 xor ecx,edi and edx,DWORD PTR 4[esp] mov DWORD PTR 16[esp],eax vpaddd xmm3,xmm3,xmm7 or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrld xmm7,xmm4,3 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpslld xmm5,xmm4,14 mov edi,DWORD PTR 20[esp] xor ecx,esi xor eax,edi vpxor xmm4,xmm7,xmm6 add edx,DWORD PTR 12[esp] and ebx,eax add edx,DWORD PTR 80[esp] vpshufd xmm7,xmm2,250 xor ebx,edi add ecx,edx add edx,DWORD PTR 28[esp] vpsrld xmm6,xmm6,11 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm4,xmm4,xmm5 mov DWORD PTR 28[esp],edx rorx edi,edx,25 xor ecx,esi vpslld xmm5,xmm5,11 andn esi,edx,DWORD PTR 4[esp] xor ecx,edi and edx,DWORD PTR [esp] vpxor xmm4,xmm4,xmm6 mov DWORD PTR 12[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpsrld xmm6,xmm7,10 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpxor xmm4,xmm4,xmm5 mov edi,DWORD PTR 16[esp] xor ecx,esi xor ebx,edi vpsrlq xmm5,xmm7,17 add edx,DWORD PTR 8[esp] and eax,ebx add edx,DWORD PTR 84[esp] vpaddd xmm3,xmm3,xmm4 xor eax,edi add ecx,edx add edx,DWORD PTR 24[esp] vpxor xmm6,xmm6,xmm5 lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 vpsrlq xmm7,xmm7,19 mov DWORD PTR 24[esp],edx rorx edi,edx,25 xor ecx,esi vpxor xmm6,xmm6,xmm7 andn esi,edx,DWORD PTR [esp] xor ecx,edi and edx,DWORD PTR 28[esp] vpshufd xmm7,xmm6,132 mov DWORD PTR 8[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 vpsrldq xmm7,xmm7,8 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi vpaddd xmm3,xmm3,xmm7 mov edi,DWORD PTR 12[esp] xor ecx,esi xor eax,edi vpshufd xmm7,xmm3,80 add edx,DWORD PTR 4[esp] and ebx,eax add edx,DWORD PTR 88[esp] vpsrld xmm6,xmm7,10 xor ebx,edi add ecx,edx add edx,DWORD PTR 20[esp] vpsrlq xmm5,xmm7,17 lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 vpxor xmm6,xmm6,xmm5 mov DWORD PTR 20[esp],edx rorx edi,edx,25 xor ecx,esi vpsrlq xmm7,xmm7,19 andn esi,edx,DWORD PTR 28[esp] xor ecx,edi and edx,DWORD PTR 24[esp] vpxor xmm6,xmm6,xmm7 mov DWORD PTR 4[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 vpshufd xmm7,xmm6,232 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi vpslldq xmm7,xmm7,8 mov edi,DWORD PTR 8[esp] xor ecx,esi xor ebx,edi vpaddd xmm3,xmm3,xmm7 add edx,DWORD PTR [esp] and eax,ebx add edx,DWORD PTR 92[esp] vpaddd xmm6,xmm3,XMMWORD PTR 48[ebp] xor eax,edi add ecx,edx add edx,DWORD PTR 16[esp] lea eax,DWORD PTR [ecx*1+eax] vmovdqa XMMWORD PTR 80[esp],xmm6 cmp DWORD PTR 64[ebp],66051 jne $L018avx_bmi_00_47 rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 16[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 24[esp] xor ecx,edi and edx,DWORD PTR 20[esp] mov DWORD PTR [esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 4[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 28[esp] and ebx,eax add edx,DWORD PTR 32[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 12[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 12[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 20[esp] xor ecx,edi and edx,DWORD PTR 16[esp] mov DWORD PTR 28[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR [esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR 24[esp] and eax,ebx add edx,DWORD PTR 36[esp] xor eax,edi add ecx,edx add edx,DWORD PTR 8[esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 8[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 16[esp] xor ecx,edi and edx,DWORD PTR 12[esp] mov DWORD PTR 24[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 28[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 20[esp] and ebx,eax add edx,DWORD PTR 40[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 4[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 4[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 12[esp] xor ecx,edi and edx,DWORD PTR 8[esp] mov DWORD PTR 20[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR 24[esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR 16[esp] and eax,ebx add edx,DWORD PTR 44[esp] xor eax,edi add ecx,edx add edx,DWORD PTR [esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR [esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 8[esp] xor ecx,edi and edx,DWORD PTR 4[esp] mov DWORD PTR 16[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 20[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 12[esp] and ebx,eax add edx,DWORD PTR 48[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 28[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 28[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 4[esp] xor ecx,edi and edx,DWORD PTR [esp] mov DWORD PTR 12[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR 16[esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR 8[esp] and eax,ebx add edx,DWORD PTR 52[esp] xor eax,edi add ecx,edx add edx,DWORD PTR 24[esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 24[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR [esp] xor ecx,edi and edx,DWORD PTR 28[esp] mov DWORD PTR 8[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 12[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 4[esp] and ebx,eax add edx,DWORD PTR 56[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 20[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 20[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 28[esp] xor ecx,edi and edx,DWORD PTR 24[esp] mov DWORD PTR 4[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR 8[esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR [esp] and eax,ebx add edx,DWORD PTR 60[esp] xor eax,edi add ecx,edx add edx,DWORD PTR 16[esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 16[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 24[esp] xor ecx,edi and edx,DWORD PTR 20[esp] mov DWORD PTR [esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 4[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 28[esp] and ebx,eax add edx,DWORD PTR 64[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 12[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 12[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 20[esp] xor ecx,edi and edx,DWORD PTR 16[esp] mov DWORD PTR 28[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR [esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR 24[esp] and eax,ebx add edx,DWORD PTR 68[esp] xor eax,edi add ecx,edx add edx,DWORD PTR 8[esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 8[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 16[esp] xor ecx,edi and edx,DWORD PTR 12[esp] mov DWORD PTR 24[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 28[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 20[esp] and ebx,eax add edx,DWORD PTR 72[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 4[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 4[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 12[esp] xor ecx,edi and edx,DWORD PTR 8[esp] mov DWORD PTR 20[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR 24[esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR 16[esp] and eax,ebx add edx,DWORD PTR 76[esp] xor eax,edi add ecx,edx add edx,DWORD PTR [esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR [esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 8[esp] xor ecx,edi and edx,DWORD PTR 4[esp] mov DWORD PTR 16[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 20[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 12[esp] and ebx,eax add edx,DWORD PTR 80[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 28[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 28[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 4[esp] xor ecx,edi and edx,DWORD PTR [esp] mov DWORD PTR 12[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR 16[esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR 8[esp] and eax,ebx add edx,DWORD PTR 84[esp] xor eax,edi add ecx,edx add edx,DWORD PTR 24[esp] lea eax,DWORD PTR [ecx*1+eax] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 24[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR [esp] xor ecx,edi and edx,DWORD PTR 28[esp] mov DWORD PTR 8[esp],eax or edx,esi rorx edi,eax,2 rorx esi,eax,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,eax,22 xor esi,edi mov edi,DWORD PTR 12[esp] xor ecx,esi xor eax,edi add edx,DWORD PTR 4[esp] and ebx,eax add edx,DWORD PTR 88[esp] xor ebx,edi add ecx,edx add edx,DWORD PTR 20[esp] lea ebx,DWORD PTR [ecx*1+ebx] rorx ecx,edx,6 rorx esi,edx,11 mov DWORD PTR 20[esp],edx rorx edi,edx,25 xor ecx,esi andn esi,edx,DWORD PTR 28[esp] xor ecx,edi and edx,DWORD PTR 24[esp] mov DWORD PTR 4[esp],ebx or edx,esi rorx edi,ebx,2 rorx esi,ebx,13 lea edx,DWORD PTR [ecx*1+edx] rorx ecx,ebx,22 xor esi,edi mov edi,DWORD PTR 8[esp] xor ecx,esi xor ebx,edi add edx,DWORD PTR [esp] and eax,ebx add edx,DWORD PTR 92[esp] xor eax,edi add ecx,edx add edx,DWORD PTR 16[esp] lea eax,DWORD PTR [ecx*1+eax] mov esi,DWORD PTR 96[esp] xor ebx,edi mov ecx,DWORD PTR 12[esp] add eax,DWORD PTR [esi] add ebx,DWORD PTR 4[esi] add edi,DWORD PTR 8[esi] add ecx,DWORD PTR 12[esi] mov DWORD PTR [esi],eax mov DWORD PTR 4[esi],ebx mov DWORD PTR 8[esi],edi mov DWORD PTR 12[esi],ecx mov DWORD PTR 4[esp],ebx xor ebx,edi mov DWORD PTR 8[esp],edi mov DWORD PTR 12[esp],ecx mov edi,DWORD PTR 20[esp] mov ecx,DWORD PTR 24[esp] add edx,DWORD PTR 16[esi] add edi,DWORD PTR 20[esi] add ecx,DWORD PTR 24[esi] mov DWORD PTR 16[esi],edx mov DWORD PTR 20[esi],edi mov DWORD PTR 20[esp],edi mov edi,DWORD PTR 28[esp] mov DWORD PTR 24[esi],ecx add edi,DWORD PTR 28[esi] mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esi],edi mov DWORD PTR 28[esp],edi mov edi,DWORD PTR 100[esp] vmovdqa xmm7,XMMWORD PTR 64[ebp] sub ebp,192 cmp edi,DWORD PTR 104[esp] jb $L017grand_avx_bmi mov esp,DWORD PTR 108[esp] vzeroall pop edi pop esi pop ebx pop ebp ret _sha256_block_data_order ENDP .text$ ENDS .bss SEGMENT 'BSS' COMM _OPENSSL_ia32cap_P:DWORD:4 .bss ENDS END