TITLE sha1-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 _sha1_block_data_order PROC PUBLIC $L_sha1_block_data_order_begin:: push ebp push ebx push esi push edi call $L000pic_point $L000pic_point: pop ebp lea esi,DWORD PTR _OPENSSL_ia32cap_P lea ebp,DWORD PTR ($LK_XX_XX-$L000pic_point)[ebp] mov eax,DWORD PTR [esi] mov edx,DWORD PTR 4[esi] test edx,512 jz $L001x86 mov ecx,DWORD PTR 8[esi] test eax,16777216 jz $L001x86 test ecx,536870912 jnz $Lshaext_shortcut and edx,268435456 and eax,1073741824 or eax,edx cmp eax,1342177280 je $Lavx_shortcut jmp $Lssse3_shortcut ALIGN 16 $L001x86: mov ebp,DWORD PTR 20[esp] mov esi,DWORD PTR 24[esp] mov eax,DWORD PTR 28[esp] sub esp,76 shl eax,6 add eax,esi mov DWORD PTR 104[esp],eax mov edi,DWORD PTR 16[ebp] jmp $L002loop ALIGN 16 $L002loop: mov eax,DWORD PTR [esi] mov ebx,DWORD PTR 4[esi] mov ecx,DWORD PTR 8[esi] mov edx,DWORD PTR 12[esi] bswap eax bswap ebx bswap ecx bswap edx mov DWORD PTR [esp],eax mov DWORD PTR 4[esp],ebx mov DWORD PTR 8[esp],ecx mov DWORD PTR 12[esp],edx mov eax,DWORD PTR 16[esi] mov ebx,DWORD PTR 20[esi] mov ecx,DWORD PTR 24[esi] mov edx,DWORD PTR 28[esi] bswap eax bswap ebx bswap ecx bswap edx mov DWORD PTR 16[esp],eax mov DWORD PTR 20[esp],ebx mov DWORD PTR 24[esp],ecx mov DWORD PTR 28[esp],edx mov eax,DWORD PTR 32[esi] mov ebx,DWORD PTR 36[esi] mov ecx,DWORD PTR 40[esi] mov edx,DWORD PTR 44[esi] bswap eax bswap ebx bswap ecx bswap edx mov DWORD PTR 32[esp],eax mov DWORD PTR 36[esp],ebx mov DWORD PTR 40[esp],ecx mov DWORD PTR 44[esp],edx mov eax,DWORD PTR 48[esi] mov ebx,DWORD PTR 52[esi] mov ecx,DWORD PTR 56[esi] mov edx,DWORD PTR 60[esi] bswap eax bswap ebx bswap ecx bswap edx mov DWORD PTR 48[esp],eax mov DWORD PTR 52[esp],ebx mov DWORD PTR 56[esp],ecx mov DWORD PTR 60[esp],edx mov DWORD PTR 100[esp],esi mov eax,DWORD PTR [ebp] mov ebx,DWORD PTR 4[ebp] mov ecx,DWORD PTR 8[ebp] mov edx,DWORD PTR 12[ebp] ; 00_15 0 mov esi,ecx mov ebp,eax rol ebp,5 xor esi,edx add ebp,edi mov edi,DWORD PTR [esp] and esi,ebx ror ebx,2 xor esi,edx lea ebp,DWORD PTR 1518500249[edi*1+ebp] add ebp,esi ; 00_15 1 mov edi,ebx mov esi,ebp rol ebp,5 xor edi,ecx add ebp,edx mov edx,DWORD PTR 4[esp] and edi,eax ror eax,2 xor edi,ecx lea ebp,DWORD PTR 1518500249[edx*1+ebp] add ebp,edi ; 00_15 2 mov edx,eax mov edi,ebp rol ebp,5 xor edx,ebx add ebp,ecx mov ecx,DWORD PTR 8[esp] and edx,esi ror esi,2 xor edx,ebx lea ebp,DWORD PTR 1518500249[ecx*1+ebp] add ebp,edx ; 00_15 3 mov ecx,esi mov edx,ebp rol ebp,5 xor ecx,eax add ebp,ebx mov ebx,DWORD PTR 12[esp] and ecx,edi ror edi,2 xor ecx,eax lea ebp,DWORD PTR 1518500249[ebx*1+ebp] add ebp,ecx ; 00_15 4 mov ebx,edi mov ecx,ebp rol ebp,5 xor ebx,esi add ebp,eax mov eax,DWORD PTR 16[esp] and ebx,edx ror edx,2 xor ebx,esi lea ebp,DWORD PTR 1518500249[eax*1+ebp] add ebp,ebx ; 00_15 5 mov eax,edx mov ebx,ebp rol ebp,5 xor eax,edi add ebp,esi mov esi,DWORD PTR 20[esp] and eax,ecx ror ecx,2 xor eax,edi lea ebp,DWORD PTR 1518500249[esi*1+ebp] add ebp,eax ; 00_15 6 mov esi,ecx mov eax,ebp rol ebp,5 xor esi,edx add ebp,edi mov edi,DWORD PTR 24[esp] and esi,ebx ror ebx,2 xor esi,edx lea ebp,DWORD PTR 1518500249[edi*1+ebp] add ebp,esi ; 00_15 7 mov edi,ebx mov esi,ebp rol ebp,5 xor edi,ecx add ebp,edx mov edx,DWORD PTR 28[esp] and edi,eax ror eax,2 xor edi,ecx lea ebp,DWORD PTR 1518500249[edx*1+ebp] add ebp,edi ; 00_15 8 mov edx,eax mov edi,ebp rol ebp,5 xor edx,ebx add ebp,ecx mov ecx,DWORD PTR 32[esp] and edx,esi ror esi,2 xor edx,ebx lea ebp,DWORD PTR 1518500249[ecx*1+ebp] add ebp,edx ; 00_15 9 mov ecx,esi mov edx,ebp rol ebp,5 xor ecx,eax add ebp,ebx mov ebx,DWORD PTR 36[esp] and ecx,edi ror edi,2 xor ecx,eax lea ebp,DWORD PTR 1518500249[ebx*1+ebp] add ebp,ecx ; 00_15 10 mov ebx,edi mov ecx,ebp rol ebp,5 xor ebx,esi add ebp,eax mov eax,DWORD PTR 40[esp] and ebx,edx ror edx,2 xor ebx,esi lea ebp,DWORD PTR 1518500249[eax*1+ebp] add ebp,ebx ; 00_15 11 mov eax,edx mov ebx,ebp rol ebp,5 xor eax,edi add ebp,esi mov esi,DWORD PTR 44[esp] and eax,ecx ror ecx,2 xor eax,edi lea ebp,DWORD PTR 1518500249[esi*1+ebp] add ebp,eax ; 00_15 12 mov esi,ecx mov eax,ebp rol ebp,5 xor esi,edx add ebp,edi mov edi,DWORD PTR 48[esp] and esi,ebx ror ebx,2 xor esi,edx lea ebp,DWORD PTR 1518500249[edi*1+ebp] add ebp,esi ; 00_15 13 mov edi,ebx mov esi,ebp rol ebp,5 xor edi,ecx add ebp,edx mov edx,DWORD PTR 52[esp] and edi,eax ror eax,2 xor edi,ecx lea ebp,DWORD PTR 1518500249[edx*1+ebp] add ebp,edi ; 00_15 14 mov edx,eax mov edi,ebp rol ebp,5 xor edx,ebx add ebp,ecx mov ecx,DWORD PTR 56[esp] and edx,esi ror esi,2 xor edx,ebx lea ebp,DWORD PTR 1518500249[ecx*1+ebp] add ebp,edx ; 00_15 15 mov ecx,esi mov edx,ebp rol ebp,5 xor ecx,eax add ebp,ebx mov ebx,DWORD PTR 60[esp] and ecx,edi ror edi,2 xor ecx,eax lea ebp,DWORD PTR 1518500249[ebx*1+ebp] mov ebx,DWORD PTR [esp] add ecx,ebp ; 16_19 16 mov ebp,edi xor ebx,DWORD PTR 8[esp] xor ebp,esi xor ebx,DWORD PTR 32[esp] and ebp,edx xor ebx,DWORD PTR 52[esp] rol ebx,1 xor ebp,esi add eax,ebp mov ebp,ecx ror edx,2 mov DWORD PTR [esp],ebx rol ebp,5 lea ebx,DWORD PTR 1518500249[eax*1+ebx] mov eax,DWORD PTR 4[esp] add ebx,ebp ; 16_19 17 mov ebp,edx xor eax,DWORD PTR 12[esp] xor ebp,edi xor eax,DWORD PTR 36[esp] and ebp,ecx xor eax,DWORD PTR 56[esp] rol eax,1 xor ebp,edi add esi,ebp mov ebp,ebx ror ecx,2 mov DWORD PTR 4[esp],eax rol ebp,5 lea eax,DWORD PTR 1518500249[esi*1+eax] mov esi,DWORD PTR 8[esp] add eax,ebp ; 16_19 18 mov ebp,ecx xor esi,DWORD PTR 16[esp] xor ebp,edx xor esi,DWORD PTR 40[esp] and ebp,ebx xor esi,DWORD PTR 60[esp] rol esi,1 xor ebp,edx add edi,ebp mov ebp,eax ror ebx,2 mov DWORD PTR 8[esp],esi rol ebp,5 lea esi,DWORD PTR 1518500249[edi*1+esi] mov edi,DWORD PTR 12[esp] add esi,ebp ; 16_19 19 mov ebp,ebx xor edi,DWORD PTR 20[esp] xor ebp,ecx xor edi,DWORD PTR 44[esp] and ebp,eax xor edi,DWORD PTR [esp] rol edi,1 xor ebp,ecx add edx,ebp mov ebp,esi ror eax,2 mov DWORD PTR 12[esp],edi rol ebp,5 lea edi,DWORD PTR 1518500249[edx*1+edi] mov edx,DWORD PTR 16[esp] add edi,ebp ; 20_39 20 mov ebp,esi xor edx,DWORD PTR 24[esp] xor ebp,eax xor edx,DWORD PTR 48[esp] xor ebp,ebx xor edx,DWORD PTR 4[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR 16[esp],edx lea edx,DWORD PTR 1859775393[ecx*1+edx] mov ecx,DWORD PTR 20[esp] add edx,ebp ; 20_39 21 mov ebp,edi xor ecx,DWORD PTR 28[esp] xor ebp,esi xor ecx,DWORD PTR 52[esp] xor ebp,eax xor ecx,DWORD PTR 8[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 20[esp],ecx lea ecx,DWORD PTR 1859775393[ebx*1+ecx] mov ebx,DWORD PTR 24[esp] add ecx,ebp ; 20_39 22 mov ebp,edx xor ebx,DWORD PTR 32[esp] xor ebp,edi xor ebx,DWORD PTR 56[esp] xor ebp,esi xor ebx,DWORD PTR 12[esp] rol ebx,1 add eax,ebp ror edx,2 mov ebp,ecx rol ebp,5 mov DWORD PTR 24[esp],ebx lea ebx,DWORD PTR 1859775393[eax*1+ebx] mov eax,DWORD PTR 28[esp] add ebx,ebp ; 20_39 23 mov ebp,ecx xor eax,DWORD PTR 36[esp] xor ebp,edx xor eax,DWORD PTR 60[esp] xor ebp,edi xor eax,DWORD PTR 16[esp] rol eax,1 add esi,ebp ror ecx,2 mov ebp,ebx rol ebp,5 mov DWORD PTR 28[esp],eax lea eax,DWORD PTR 1859775393[esi*1+eax] mov esi,DWORD PTR 32[esp] add eax,ebp ; 20_39 24 mov ebp,ebx xor esi,DWORD PTR 40[esp] xor ebp,ecx xor esi,DWORD PTR [esp] xor ebp,edx xor esi,DWORD PTR 20[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 mov DWORD PTR 32[esp],esi lea esi,DWORD PTR 1859775393[edi*1+esi] mov edi,DWORD PTR 36[esp] add esi,ebp ; 20_39 25 mov ebp,eax xor edi,DWORD PTR 44[esp] xor ebp,ebx xor edi,DWORD PTR 4[esp] xor ebp,ecx xor edi,DWORD PTR 24[esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 mov DWORD PTR 36[esp],edi lea edi,DWORD PTR 1859775393[edx*1+edi] mov edx,DWORD PTR 40[esp] add edi,ebp ; 20_39 26 mov ebp,esi xor edx,DWORD PTR 48[esp] xor ebp,eax xor edx,DWORD PTR 8[esp] xor ebp,ebx xor edx,DWORD PTR 28[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR 40[esp],edx lea edx,DWORD PTR 1859775393[ecx*1+edx] mov ecx,DWORD PTR 44[esp] add edx,ebp ; 20_39 27 mov ebp,edi xor ecx,DWORD PTR 52[esp] xor ebp,esi xor ecx,DWORD PTR 12[esp] xor ebp,eax xor ecx,DWORD PTR 32[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 44[esp],ecx lea ecx,DWORD PTR 1859775393[ebx*1+ecx] mov ebx,DWORD PTR 48[esp] add ecx,ebp ; 20_39 28 mov ebp,edx xor ebx,DWORD PTR 56[esp] xor ebp,edi xor ebx,DWORD PTR 16[esp] xor ebp,esi xor ebx,DWORD PTR 36[esp] rol ebx,1 add eax,ebp ror edx,2 mov ebp,ecx rol ebp,5 mov DWORD PTR 48[esp],ebx lea ebx,DWORD PTR 1859775393[eax*1+ebx] mov eax,DWORD PTR 52[esp] add ebx,ebp ; 20_39 29 mov ebp,ecx xor eax,DWORD PTR 60[esp] xor ebp,edx xor eax,DWORD PTR 20[esp] xor ebp,edi xor eax,DWORD PTR 40[esp] rol eax,1 add esi,ebp ror ecx,2 mov ebp,ebx rol ebp,5 mov DWORD PTR 52[esp],eax lea eax,DWORD PTR 1859775393[esi*1+eax] mov esi,DWORD PTR 56[esp] add eax,ebp ; 20_39 30 mov ebp,ebx xor esi,DWORD PTR [esp] xor ebp,ecx xor esi,DWORD PTR 24[esp] xor ebp,edx xor esi,DWORD PTR 44[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 mov DWORD PTR 56[esp],esi lea esi,DWORD PTR 1859775393[edi*1+esi] mov edi,DWORD PTR 60[esp] add esi,ebp ; 20_39 31 mov ebp,eax xor edi,DWORD PTR 4[esp] xor ebp,ebx xor edi,DWORD PTR 28[esp] xor ebp,ecx xor edi,DWORD PTR 48[esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 mov DWORD PTR 60[esp],edi lea edi,DWORD PTR 1859775393[edx*1+edi] mov edx,DWORD PTR [esp] add edi,ebp ; 20_39 32 mov ebp,esi xor edx,DWORD PTR 8[esp] xor ebp,eax xor edx,DWORD PTR 32[esp] xor ebp,ebx xor edx,DWORD PTR 52[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR [esp],edx lea edx,DWORD PTR 1859775393[ecx*1+edx] mov ecx,DWORD PTR 4[esp] add edx,ebp ; 20_39 33 mov ebp,edi xor ecx,DWORD PTR 12[esp] xor ebp,esi xor ecx,DWORD PTR 36[esp] xor ebp,eax xor ecx,DWORD PTR 56[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 4[esp],ecx lea ecx,DWORD PTR 1859775393[ebx*1+ecx] mov ebx,DWORD PTR 8[esp] add ecx,ebp ; 20_39 34 mov ebp,edx xor ebx,DWORD PTR 16[esp] xor ebp,edi xor ebx,DWORD PTR 40[esp] xor ebp,esi xor ebx,DWORD PTR 60[esp] rol ebx,1 add eax,ebp ror edx,2 mov ebp,ecx rol ebp,5 mov DWORD PTR 8[esp],ebx lea ebx,DWORD PTR 1859775393[eax*1+ebx] mov eax,DWORD PTR 12[esp] add ebx,ebp ; 20_39 35 mov ebp,ecx xor eax,DWORD PTR 20[esp] xor ebp,edx xor eax,DWORD PTR 44[esp] xor ebp,edi xor eax,DWORD PTR [esp] rol eax,1 add esi,ebp ror ecx,2 mov ebp,ebx rol ebp,5 mov DWORD PTR 12[esp],eax lea eax,DWORD PTR 1859775393[esi*1+eax] mov esi,DWORD PTR 16[esp] add eax,ebp ; 20_39 36 mov ebp,ebx xor esi,DWORD PTR 24[esp] xor ebp,ecx xor esi,DWORD PTR 48[esp] xor ebp,edx xor esi,DWORD PTR 4[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 mov DWORD PTR 16[esp],esi lea esi,DWORD PTR 1859775393[edi*1+esi] mov edi,DWORD PTR 20[esp] add esi,ebp ; 20_39 37 mov ebp,eax xor edi,DWORD PTR 28[esp] xor ebp,ebx xor edi,DWORD PTR 52[esp] xor ebp,ecx xor edi,DWORD PTR 8[esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 mov DWORD PTR 20[esp],edi lea edi,DWORD PTR 1859775393[edx*1+edi] mov edx,DWORD PTR 24[esp] add edi,ebp ; 20_39 38 mov ebp,esi xor edx,DWORD PTR 32[esp] xor ebp,eax xor edx,DWORD PTR 56[esp] xor ebp,ebx xor edx,DWORD PTR 12[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR 24[esp],edx lea edx,DWORD PTR 1859775393[ecx*1+edx] mov ecx,DWORD PTR 28[esp] add edx,ebp ; 20_39 39 mov ebp,edi xor ecx,DWORD PTR 36[esp] xor ebp,esi xor ecx,DWORD PTR 60[esp] xor ebp,eax xor ecx,DWORD PTR 16[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 28[esp],ecx lea ecx,DWORD PTR 1859775393[ebx*1+ecx] mov ebx,DWORD PTR 32[esp] add ecx,ebp ; 40_59 40 mov ebp,edi xor ebx,DWORD PTR 40[esp] xor ebp,esi xor ebx,DWORD PTR [esp] and ebp,edx xor ebx,DWORD PTR 20[esp] rol ebx,1 add ebp,eax ror edx,2 mov eax,ecx rol eax,5 mov DWORD PTR 32[esp],ebx lea ebx,DWORD PTR 2400959708[ebp*1+ebx] mov ebp,edi add ebx,eax and ebp,esi mov eax,DWORD PTR 36[esp] add ebx,ebp ; 40_59 41 mov ebp,edx xor eax,DWORD PTR 44[esp] xor ebp,edi xor eax,DWORD PTR 4[esp] and ebp,ecx xor eax,DWORD PTR 24[esp] rol eax,1 add ebp,esi ror ecx,2 mov esi,ebx rol esi,5 mov DWORD PTR 36[esp],eax lea eax,DWORD PTR 2400959708[ebp*1+eax] mov ebp,edx add eax,esi and ebp,edi mov esi,DWORD PTR 40[esp] add eax,ebp ; 40_59 42 mov ebp,ecx xor esi,DWORD PTR 48[esp] xor ebp,edx xor esi,DWORD PTR 8[esp] and ebp,ebx xor esi,DWORD PTR 28[esp] rol esi,1 add ebp,edi ror ebx,2 mov edi,eax rol edi,5 mov DWORD PTR 40[esp],esi lea esi,DWORD PTR 2400959708[ebp*1+esi] mov ebp,ecx add esi,edi and ebp,edx mov edi,DWORD PTR 44[esp] add esi,ebp ; 40_59 43 mov ebp,ebx xor edi,DWORD PTR 52[esp] xor ebp,ecx xor edi,DWORD PTR 12[esp] and ebp,eax xor edi,DWORD PTR 32[esp] rol edi,1 add ebp,edx ror eax,2 mov edx,esi rol edx,5 mov DWORD PTR 44[esp],edi lea edi,DWORD PTR 2400959708[ebp*1+edi] mov ebp,ebx add edi,edx and ebp,ecx mov edx,DWORD PTR 48[esp] add edi,ebp ; 40_59 44 mov ebp,eax xor edx,DWORD PTR 56[esp] xor ebp,ebx xor edx,DWORD PTR 16[esp] and ebp,esi xor edx,DWORD PTR 36[esp] rol edx,1 add ebp,ecx ror esi,2 mov ecx,edi rol ecx,5 mov DWORD PTR 48[esp],edx lea edx,DWORD PTR 2400959708[ebp*1+edx] mov ebp,eax add edx,ecx and ebp,ebx mov ecx,DWORD PTR 52[esp] add edx,ebp ; 40_59 45 mov ebp,esi xor ecx,DWORD PTR 60[esp] xor ebp,eax xor ecx,DWORD PTR 20[esp] and ebp,edi xor ecx,DWORD PTR 40[esp] rol ecx,1 add ebp,ebx ror edi,2 mov ebx,edx rol ebx,5 mov DWORD PTR 52[esp],ecx lea ecx,DWORD PTR 2400959708[ebp*1+ecx] mov ebp,esi add ecx,ebx and ebp,eax mov ebx,DWORD PTR 56[esp] add ecx,ebp ; 40_59 46 mov ebp,edi xor ebx,DWORD PTR [esp] xor ebp,esi xor ebx,DWORD PTR 24[esp] and ebp,edx xor ebx,DWORD PTR 44[esp] rol ebx,1 add ebp,eax ror edx,2 mov eax,ecx rol eax,5 mov DWORD PTR 56[esp],ebx lea ebx,DWORD PTR 2400959708[ebp*1+ebx] mov ebp,edi add ebx,eax and ebp,esi mov eax,DWORD PTR 60[esp] add ebx,ebp ; 40_59 47 mov ebp,edx xor eax,DWORD PTR 4[esp] xor ebp,edi xor eax,DWORD PTR 28[esp] and ebp,ecx xor eax,DWORD PTR 48[esp] rol eax,1 add ebp,esi ror ecx,2 mov esi,ebx rol esi,5 mov DWORD PTR 60[esp],eax lea eax,DWORD PTR 2400959708[ebp*1+eax] mov ebp,edx add eax,esi and ebp,edi mov esi,DWORD PTR [esp] add eax,ebp ; 40_59 48 mov ebp,ecx xor esi,DWORD PTR 8[esp] xor ebp,edx xor esi,DWORD PTR 32[esp] and ebp,ebx xor esi,DWORD PTR 52[esp] rol esi,1 add ebp,edi ror ebx,2 mov edi,eax rol edi,5 mov DWORD PTR [esp],esi lea esi,DWORD PTR 2400959708[ebp*1+esi] mov ebp,ecx add esi,edi and ebp,edx mov edi,DWORD PTR 4[esp] add esi,ebp ; 40_59 49 mov ebp,ebx xor edi,DWORD PTR 12[esp] xor ebp,ecx xor edi,DWORD PTR 36[esp] and ebp,eax xor edi,DWORD PTR 56[esp] rol edi,1 add ebp,edx ror eax,2 mov edx,esi rol edx,5 mov DWORD PTR 4[esp],edi lea edi,DWORD PTR 2400959708[ebp*1+edi] mov ebp,ebx add edi,edx and ebp,ecx mov edx,DWORD PTR 8[esp] add edi,ebp ; 40_59 50 mov ebp,eax xor edx,DWORD PTR 16[esp] xor ebp,ebx xor edx,DWORD PTR 40[esp] and ebp,esi xor edx,DWORD PTR 60[esp] rol edx,1 add ebp,ecx ror esi,2 mov ecx,edi rol ecx,5 mov DWORD PTR 8[esp],edx lea edx,DWORD PTR 2400959708[ebp*1+edx] mov ebp,eax add edx,ecx and ebp,ebx mov ecx,DWORD PTR 12[esp] add edx,ebp ; 40_59 51 mov ebp,esi xor ecx,DWORD PTR 20[esp] xor ebp,eax xor ecx,DWORD PTR 44[esp] and ebp,edi xor ecx,DWORD PTR [esp] rol ecx,1 add ebp,ebx ror edi,2 mov ebx,edx rol ebx,5 mov DWORD PTR 12[esp],ecx lea ecx,DWORD PTR 2400959708[ebp*1+ecx] mov ebp,esi add ecx,ebx and ebp,eax mov ebx,DWORD PTR 16[esp] add ecx,ebp ; 40_59 52 mov ebp,edi xor ebx,DWORD PTR 24[esp] xor ebp,esi xor ebx,DWORD PTR 48[esp] and ebp,edx xor ebx,DWORD PTR 4[esp] rol ebx,1 add ebp,eax ror edx,2 mov eax,ecx rol eax,5 mov DWORD PTR 16[esp],ebx lea ebx,DWORD PTR 2400959708[ebp*1+ebx] mov ebp,edi add ebx,eax and ebp,esi mov eax,DWORD PTR 20[esp] add ebx,ebp ; 40_59 53 mov ebp,edx xor eax,DWORD PTR 28[esp] xor ebp,edi xor eax,DWORD PTR 52[esp] and ebp,ecx xor eax,DWORD PTR 8[esp] rol eax,1 add ebp,esi ror ecx,2 mov esi,ebx rol esi,5 mov DWORD PTR 20[esp],eax lea eax,DWORD PTR 2400959708[ebp*1+eax] mov ebp,edx add eax,esi and ebp,edi mov esi,DWORD PTR 24[esp] add eax,ebp ; 40_59 54 mov ebp,ecx xor esi,DWORD PTR 32[esp] xor ebp,edx xor esi,DWORD PTR 56[esp] and ebp,ebx xor esi,DWORD PTR 12[esp] rol esi,1 add ebp,edi ror ebx,2 mov edi,eax rol edi,5 mov DWORD PTR 24[esp],esi lea esi,DWORD PTR 2400959708[ebp*1+esi] mov ebp,ecx add esi,edi and ebp,edx mov edi,DWORD PTR 28[esp] add esi,ebp ; 40_59 55 mov ebp,ebx xor edi,DWORD PTR 36[esp] xor ebp,ecx xor edi,DWORD PTR 60[esp] and ebp,eax xor edi,DWORD PTR 16[esp] rol edi,1 add ebp,edx ror eax,2 mov edx,esi rol edx,5 mov DWORD PTR 28[esp],edi lea edi,DWORD PTR 2400959708[ebp*1+edi] mov ebp,ebx add edi,edx and ebp,ecx mov edx,DWORD PTR 32[esp] add edi,ebp ; 40_59 56 mov ebp,eax xor edx,DWORD PTR 40[esp] xor ebp,ebx xor edx,DWORD PTR [esp] and ebp,esi xor edx,DWORD PTR 20[esp] rol edx,1 add ebp,ecx ror esi,2 mov ecx,edi rol ecx,5 mov DWORD PTR 32[esp],edx lea edx,DWORD PTR 2400959708[ebp*1+edx] mov ebp,eax add edx,ecx and ebp,ebx mov ecx,DWORD PTR 36[esp] add edx,ebp ; 40_59 57 mov ebp,esi xor ecx,DWORD PTR 44[esp] xor ebp,eax xor ecx,DWORD PTR 4[esp] and ebp,edi xor ecx,DWORD PTR 24[esp] rol ecx,1 add ebp,ebx ror edi,2 mov ebx,edx rol ebx,5 mov DWORD PTR 36[esp],ecx lea ecx,DWORD PTR 2400959708[ebp*1+ecx] mov ebp,esi add ecx,ebx and ebp,eax mov ebx,DWORD PTR 40[esp] add ecx,ebp ; 40_59 58 mov ebp,edi xor ebx,DWORD PTR 48[esp] xor ebp,esi xor ebx,DWORD PTR 8[esp] and ebp,edx xor ebx,DWORD PTR 28[esp] rol ebx,1 add ebp,eax ror edx,2 mov eax,ecx rol eax,5 mov DWORD PTR 40[esp],ebx lea ebx,DWORD PTR 2400959708[ebp*1+ebx] mov ebp,edi add ebx,eax and ebp,esi mov eax,DWORD PTR 44[esp] add ebx,ebp ; 40_59 59 mov ebp,edx xor eax,DWORD PTR 52[esp] xor ebp,edi xor eax,DWORD PTR 12[esp] and ebp,ecx xor eax,DWORD PTR 32[esp] rol eax,1 add ebp,esi ror ecx,2 mov esi,ebx rol esi,5 mov DWORD PTR 44[esp],eax lea eax,DWORD PTR 2400959708[ebp*1+eax] mov ebp,edx add eax,esi and ebp,edi mov esi,DWORD PTR 48[esp] add eax,ebp ; 20_39 60 mov ebp,ebx xor esi,DWORD PTR 56[esp] xor ebp,ecx xor esi,DWORD PTR 16[esp] xor ebp,edx xor esi,DWORD PTR 36[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 mov DWORD PTR 48[esp],esi lea esi,DWORD PTR 3395469782[edi*1+esi] mov edi,DWORD PTR 52[esp] add esi,ebp ; 20_39 61 mov ebp,eax xor edi,DWORD PTR 60[esp] xor ebp,ebx xor edi,DWORD PTR 20[esp] xor ebp,ecx xor edi,DWORD PTR 40[esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 mov DWORD PTR 52[esp],edi lea edi,DWORD PTR 3395469782[edx*1+edi] mov edx,DWORD PTR 56[esp] add edi,ebp ; 20_39 62 mov ebp,esi xor edx,DWORD PTR [esp] xor ebp,eax xor edx,DWORD PTR 24[esp] xor ebp,ebx xor edx,DWORD PTR 44[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR 56[esp],edx lea edx,DWORD PTR 3395469782[ecx*1+edx] mov ecx,DWORD PTR 60[esp] add edx,ebp ; 20_39 63 mov ebp,edi xor ecx,DWORD PTR 4[esp] xor ebp,esi xor ecx,DWORD PTR 28[esp] xor ebp,eax xor ecx,DWORD PTR 48[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 60[esp],ecx lea ecx,DWORD PTR 3395469782[ebx*1+ecx] mov ebx,DWORD PTR [esp] add ecx,ebp ; 20_39 64 mov ebp,edx xor ebx,DWORD PTR 8[esp] xor ebp,edi xor ebx,DWORD PTR 32[esp] xor ebp,esi xor ebx,DWORD PTR 52[esp] rol ebx,1 add eax,ebp ror edx,2 mov ebp,ecx rol ebp,5 mov DWORD PTR [esp],ebx lea ebx,DWORD PTR 3395469782[eax*1+ebx] mov eax,DWORD PTR 4[esp] add ebx,ebp ; 20_39 65 mov ebp,ecx xor eax,DWORD PTR 12[esp] xor ebp,edx xor eax,DWORD PTR 36[esp] xor ebp,edi xor eax,DWORD PTR 56[esp] rol eax,1 add esi,ebp ror ecx,2 mov ebp,ebx rol ebp,5 mov DWORD PTR 4[esp],eax lea eax,DWORD PTR 3395469782[esi*1+eax] mov esi,DWORD PTR 8[esp] add eax,ebp ; 20_39 66 mov ebp,ebx xor esi,DWORD PTR 16[esp] xor ebp,ecx xor esi,DWORD PTR 40[esp] xor ebp,edx xor esi,DWORD PTR 60[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 mov DWORD PTR 8[esp],esi lea esi,DWORD PTR 3395469782[edi*1+esi] mov edi,DWORD PTR 12[esp] add esi,ebp ; 20_39 67 mov ebp,eax xor edi,DWORD PTR 20[esp] xor ebp,ebx xor edi,DWORD PTR 44[esp] xor ebp,ecx xor edi,DWORD PTR [esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 mov DWORD PTR 12[esp],edi lea edi,DWORD PTR 3395469782[edx*1+edi] mov edx,DWORD PTR 16[esp] add edi,ebp ; 20_39 68 mov ebp,esi xor edx,DWORD PTR 24[esp] xor ebp,eax xor edx,DWORD PTR 48[esp] xor ebp,ebx xor edx,DWORD PTR 4[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR 16[esp],edx lea edx,DWORD PTR 3395469782[ecx*1+edx] mov ecx,DWORD PTR 20[esp] add edx,ebp ; 20_39 69 mov ebp,edi xor ecx,DWORD PTR 28[esp] xor ebp,esi xor ecx,DWORD PTR 52[esp] xor ebp,eax xor ecx,DWORD PTR 8[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 20[esp],ecx lea ecx,DWORD PTR 3395469782[ebx*1+ecx] mov ebx,DWORD PTR 24[esp] add ecx,ebp ; 20_39 70 mov ebp,edx xor ebx,DWORD PTR 32[esp] xor ebp,edi xor ebx,DWORD PTR 56[esp] xor ebp,esi xor ebx,DWORD PTR 12[esp] rol ebx,1 add eax,ebp ror edx,2 mov ebp,ecx rol ebp,5 mov DWORD PTR 24[esp],ebx lea ebx,DWORD PTR 3395469782[eax*1+ebx] mov eax,DWORD PTR 28[esp] add ebx,ebp ; 20_39 71 mov ebp,ecx xor eax,DWORD PTR 36[esp] xor ebp,edx xor eax,DWORD PTR 60[esp] xor ebp,edi xor eax,DWORD PTR 16[esp] rol eax,1 add esi,ebp ror ecx,2 mov ebp,ebx rol ebp,5 mov DWORD PTR 28[esp],eax lea eax,DWORD PTR 3395469782[esi*1+eax] mov esi,DWORD PTR 32[esp] add eax,ebp ; 20_39 72 mov ebp,ebx xor esi,DWORD PTR 40[esp] xor ebp,ecx xor esi,DWORD PTR [esp] xor ebp,edx xor esi,DWORD PTR 20[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 mov DWORD PTR 32[esp],esi lea esi,DWORD PTR 3395469782[edi*1+esi] mov edi,DWORD PTR 36[esp] add esi,ebp ; 20_39 73 mov ebp,eax xor edi,DWORD PTR 44[esp] xor ebp,ebx xor edi,DWORD PTR 4[esp] xor ebp,ecx xor edi,DWORD PTR 24[esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 mov DWORD PTR 36[esp],edi lea edi,DWORD PTR 3395469782[edx*1+edi] mov edx,DWORD PTR 40[esp] add edi,ebp ; 20_39 74 mov ebp,esi xor edx,DWORD PTR 48[esp] xor ebp,eax xor edx,DWORD PTR 8[esp] xor ebp,ebx xor edx,DWORD PTR 28[esp] rol edx,1 add ecx,ebp ror esi,2 mov ebp,edi rol ebp,5 mov DWORD PTR 40[esp],edx lea edx,DWORD PTR 3395469782[ecx*1+edx] mov ecx,DWORD PTR 44[esp] add edx,ebp ; 20_39 75 mov ebp,edi xor ecx,DWORD PTR 52[esp] xor ebp,esi xor ecx,DWORD PTR 12[esp] xor ebp,eax xor ecx,DWORD PTR 32[esp] rol ecx,1 add ebx,ebp ror edi,2 mov ebp,edx rol ebp,5 mov DWORD PTR 44[esp],ecx lea ecx,DWORD PTR 3395469782[ebx*1+ecx] mov ebx,DWORD PTR 48[esp] add ecx,ebp ; 20_39 76 mov ebp,edx xor ebx,DWORD PTR 56[esp] xor ebp,edi xor ebx,DWORD PTR 16[esp] xor ebp,esi xor ebx,DWORD PTR 36[esp] rol ebx,1 add eax,ebp ror edx,2 mov ebp,ecx rol ebp,5 mov DWORD PTR 48[esp],ebx lea ebx,DWORD PTR 3395469782[eax*1+ebx] mov eax,DWORD PTR 52[esp] add ebx,ebp ; 20_39 77 mov ebp,ecx xor eax,DWORD PTR 60[esp] xor ebp,edx xor eax,DWORD PTR 20[esp] xor ebp,edi xor eax,DWORD PTR 40[esp] rol eax,1 add esi,ebp ror ecx,2 mov ebp,ebx rol ebp,5 lea eax,DWORD PTR 3395469782[esi*1+eax] mov esi,DWORD PTR 56[esp] add eax,ebp ; 20_39 78 mov ebp,ebx xor esi,DWORD PTR [esp] xor ebp,ecx xor esi,DWORD PTR 24[esp] xor ebp,edx xor esi,DWORD PTR 44[esp] rol esi,1 add edi,ebp ror ebx,2 mov ebp,eax rol ebp,5 lea esi,DWORD PTR 3395469782[edi*1+esi] mov edi,DWORD PTR 60[esp] add esi,ebp ; 20_39 79 mov ebp,eax xor edi,DWORD PTR 4[esp] xor ebp,ebx xor edi,DWORD PTR 28[esp] xor ebp,ecx xor edi,DWORD PTR 48[esp] rol edi,1 add edx,ebp ror eax,2 mov ebp,esi rol ebp,5 lea edi,DWORD PTR 3395469782[edx*1+edi] add edi,ebp mov ebp,DWORD PTR 96[esp] mov edx,DWORD PTR 100[esp] add edi,DWORD PTR [ebp] add esi,DWORD PTR 4[ebp] add eax,DWORD PTR 8[ebp] add ebx,DWORD PTR 12[ebp] add ecx,DWORD PTR 16[ebp] mov DWORD PTR [ebp],edi add edx,64 mov DWORD PTR 4[ebp],esi cmp edx,DWORD PTR 104[esp] mov DWORD PTR 8[ebp],eax mov edi,ecx mov DWORD PTR 12[ebp],ebx mov esi,edx mov DWORD PTR 16[ebp],ecx jb $L002loop add esp,76 pop edi pop esi pop ebx pop ebp ret _sha1_block_data_order ENDP ALIGN 16 __sha1_block_data_order_shaext PROC PRIVATE push ebp push ebx push esi push edi call $L003pic_point $L003pic_point: pop ebp lea ebp,DWORD PTR ($LK_XX_XX-$L003pic_point)[ebp] $Lshaext_shortcut:: mov edi,DWORD PTR 20[esp] mov ebx,esp mov esi,DWORD PTR 24[esp] mov ecx,DWORD PTR 28[esp] sub esp,32 movdqu xmm0,XMMWORD PTR [edi] movd xmm1,DWORD PTR 16[edi] and esp,-32 movdqa xmm3,XMMWORD PTR 80[ebp] movdqu xmm4,XMMWORD PTR [esi] pshufd xmm0,xmm0,27 movdqu xmm5,XMMWORD PTR 16[esi] pshufd xmm1,xmm1,27 movdqu xmm6,XMMWORD PTR 32[esi] DB 102,15,56,0,227 movdqu xmm7,XMMWORD PTR 48[esi] DB 102,15,56,0,235 DB 102,15,56,0,243 DB 102,15,56,0,251 jmp $L004loop_shaext ALIGN 16 $L004loop_shaext: dec ecx lea eax,DWORD PTR 64[esi] movdqa XMMWORD PTR [esp],xmm1 paddd xmm1,xmm4 cmovne esi,eax movdqa XMMWORD PTR 16[esp],xmm0 DB 15,56,201,229 movdqa xmm2,xmm0 DB 15,58,204,193,0 DB 15,56,200,213 pxor xmm4,xmm6 DB 15,56,201,238 DB 15,56,202,231 movdqa xmm1,xmm0 DB 15,58,204,194,0 DB 15,56,200,206 pxor xmm5,xmm7 DB 15,56,202,236 DB 15,56,201,247 movdqa xmm2,xmm0 DB 15,58,204,193,0 DB 15,56,200,215 pxor xmm6,xmm4 DB 15,56,201,252 DB 15,56,202,245 movdqa xmm1,xmm0 DB 15,58,204,194,0 DB 15,56,200,204 pxor xmm7,xmm5 DB 15,56,202,254 DB 15,56,201,229 movdqa xmm2,xmm0 DB 15,58,204,193,0 DB 15,56,200,213 pxor xmm4,xmm6 DB 15,56,201,238 DB 15,56,202,231 movdqa xmm1,xmm0 DB 15,58,204,194,1 DB 15,56,200,206 pxor xmm5,xmm7 DB 15,56,202,236 DB 15,56,201,247 movdqa xmm2,xmm0 DB 15,58,204,193,1 DB 15,56,200,215 pxor xmm6,xmm4 DB 15,56,201,252 DB 15,56,202,245 movdqa xmm1,xmm0 DB 15,58,204,194,1 DB 15,56,200,204 pxor xmm7,xmm5 DB 15,56,202,254 DB 15,56,201,229 movdqa xmm2,xmm0 DB 15,58,204,193,1 DB 15,56,200,213 pxor xmm4,xmm6 DB 15,56,201,238 DB 15,56,202,231 movdqa xmm1,xmm0 DB 15,58,204,194,1 DB 15,56,200,206 pxor xmm5,xmm7 DB 15,56,202,236 DB 15,56,201,247 movdqa xmm2,xmm0 DB 15,58,204,193,2 DB 15,56,200,215 pxor xmm6,xmm4 DB 15,56,201,252 DB 15,56,202,245 movdqa xmm1,xmm0 DB 15,58,204,194,2 DB 15,56,200,204 pxor xmm7,xmm5 DB 15,56,202,254 DB 15,56,201,229 movdqa xmm2,xmm0 DB 15,58,204,193,2 DB 15,56,200,213 pxor xmm4,xmm6 DB 15,56,201,238 DB 15,56,202,231 movdqa xmm1,xmm0 DB 15,58,204,194,2 DB 15,56,200,206 pxor xmm5,xmm7 DB 15,56,202,236 DB 15,56,201,247 movdqa xmm2,xmm0 DB 15,58,204,193,2 DB 15,56,200,215 pxor xmm6,xmm4 DB 15,56,201,252 DB 15,56,202,245 movdqa xmm1,xmm0 DB 15,58,204,194,3 DB 15,56,200,204 pxor xmm7,xmm5 DB 15,56,202,254 movdqu xmm4,XMMWORD PTR [esi] movdqa xmm2,xmm0 DB 15,58,204,193,3 DB 15,56,200,213 movdqu xmm5,XMMWORD PTR 16[esi] DB 102,15,56,0,227 movdqa xmm1,xmm0 DB 15,58,204,194,3 DB 15,56,200,206 movdqu xmm6,XMMWORD PTR 32[esi] DB 102,15,56,0,235 movdqa xmm2,xmm0 DB 15,58,204,193,3 DB 15,56,200,215 movdqu xmm7,XMMWORD PTR 48[esi] DB 102,15,56,0,243 movdqa xmm1,xmm0 DB 15,58,204,194,3 movdqa xmm2,XMMWORD PTR [esp] DB 102,15,56,0,251 DB 15,56,200,202 paddd xmm0,XMMWORD PTR 16[esp] jnz $L004loop_shaext pshufd xmm0,xmm0,27 pshufd xmm1,xmm1,27 movdqu XMMWORD PTR [edi],xmm0 movd DWORD PTR 16[edi],xmm1 mov esp,ebx pop edi pop esi pop ebx pop ebp ret __sha1_block_data_order_shaext ENDP ALIGN 16 __sha1_block_data_order_ssse3 PROC PRIVATE push ebp push ebx push esi push edi call $L005pic_point $L005pic_point: pop ebp lea ebp,DWORD PTR ($LK_XX_XX-$L005pic_point)[ebp] $Lssse3_shortcut:: movdqa xmm7,XMMWORD PTR [ebp] movdqa xmm0,XMMWORD PTR 16[ebp] movdqa xmm1,XMMWORD PTR 32[ebp] movdqa xmm2,XMMWORD PTR 48[ebp] movdqa xmm6,XMMWORD PTR 64[ebp] mov edi,DWORD PTR 20[esp] mov ebp,DWORD PTR 24[esp] mov edx,DWORD PTR 28[esp] mov esi,esp sub esp,208 and esp,-64 movdqa XMMWORD PTR 112[esp],xmm0 movdqa XMMWORD PTR 128[esp],xmm1 movdqa XMMWORD PTR 144[esp],xmm2 shl edx,6 movdqa XMMWORD PTR 160[esp],xmm7 add edx,ebp movdqa XMMWORD PTR 176[esp],xmm6 add ebp,64 mov DWORD PTR 192[esp],edi mov DWORD PTR 196[esp],ebp mov DWORD PTR 200[esp],edx mov DWORD PTR 204[esp],esi mov eax,DWORD PTR [edi] mov ebx,DWORD PTR 4[edi] mov ecx,DWORD PTR 8[edi] mov edx,DWORD PTR 12[edi] mov edi,DWORD PTR 16[edi] mov esi,ebx movdqu xmm0,XMMWORD PTR [ebp-64] movdqu xmm1,XMMWORD PTR [ebp-48] movdqu xmm2,XMMWORD PTR [ebp-32] movdqu xmm3,XMMWORD PTR [ebp-16] DB 102,15,56,0,198 DB 102,15,56,0,206 DB 102,15,56,0,214 movdqa XMMWORD PTR 96[esp],xmm7 DB 102,15,56,0,222 paddd xmm0,xmm7 paddd xmm1,xmm7 paddd xmm2,xmm7 movdqa XMMWORD PTR [esp],xmm0 psubd xmm0,xmm7 movdqa XMMWORD PTR 16[esp],xmm1 psubd xmm1,xmm7 movdqa XMMWORD PTR 32[esp],xmm2 mov ebp,ecx psubd xmm2,xmm7 xor ebp,edx pshufd xmm4,xmm0,238 and esi,ebp jmp $L006loop ALIGN 16 $L006loop: ror ebx,2 xor esi,edx mov ebp,eax punpcklqdq xmm4,xmm1 movdqa xmm6,xmm3 add edi,DWORD PTR [esp] xor ebx,ecx paddd xmm7,xmm3 movdqa XMMWORD PTR 64[esp],xmm0 rol eax,5 add edi,esi psrldq xmm6,4 and ebp,ebx xor ebx,ecx pxor xmm4,xmm0 add edi,eax ror eax,7 pxor xmm6,xmm2 xor ebp,ecx mov esi,edi add edx,DWORD PTR 4[esp] pxor xmm4,xmm6 xor eax,ebx rol edi,5 movdqa XMMWORD PTR 48[esp],xmm7 add edx,ebp and esi,eax movdqa xmm0,xmm4 xor eax,ebx add edx,edi ror edi,7 movdqa xmm6,xmm4 xor esi,ebx pslldq xmm0,12 paddd xmm4,xmm4 mov ebp,edx add ecx,DWORD PTR 8[esp] psrld xmm6,31 xor edi,eax rol edx,5 movdqa xmm7,xmm0 add ecx,esi and ebp,edi xor edi,eax psrld xmm0,30 add ecx,edx ror edx,7 por xmm4,xmm6 xor ebp,eax mov esi,ecx add ebx,DWORD PTR 12[esp] pslld xmm7,2 xor edx,edi rol ecx,5 pxor xmm4,xmm0 movdqa xmm0,XMMWORD PTR 96[esp] add ebx,ebp and esi,edx pxor xmm4,xmm7 pshufd xmm5,xmm1,238 xor edx,edi add ebx,ecx ror ecx,7 xor esi,edi mov ebp,ebx punpcklqdq xmm5,xmm2 movdqa xmm7,xmm4 add eax,DWORD PTR 16[esp] xor ecx,edx paddd xmm0,xmm4 movdqa XMMWORD PTR 80[esp],xmm1 rol ebx,5 add eax,esi psrldq xmm7,4 and ebp,ecx xor ecx,edx pxor xmm5,xmm1 add eax,ebx ror ebx,7 pxor xmm7,xmm3 xor ebp,edx mov esi,eax add edi,DWORD PTR 20[esp] pxor xmm5,xmm7 xor ebx,ecx rol eax,5 movdqa XMMWORD PTR [esp],xmm0 add edi,ebp and esi,ebx movdqa xmm1,xmm5 xor ebx,ecx add edi,eax ror eax,7 movdqa xmm7,xmm5 xor esi,ecx pslldq xmm1,12 paddd xmm5,xmm5 mov ebp,edi add edx,DWORD PTR 24[esp] psrld xmm7,31 xor eax,ebx rol edi,5 movdqa xmm0,xmm1 add edx,esi and ebp,eax xor eax,ebx psrld xmm1,30 add edx,edi ror edi,7 por xmm5,xmm7 xor ebp,ebx mov esi,edx add ecx,DWORD PTR 28[esp] pslld xmm0,2 xor edi,eax rol edx,5 pxor xmm5,xmm1 movdqa xmm1,XMMWORD PTR 112[esp] add ecx,ebp and esi,edi pxor xmm5,xmm0 pshufd xmm6,xmm2,238 xor edi,eax add ecx,edx ror edx,7 xor esi,eax mov ebp,ecx punpcklqdq xmm6,xmm3 movdqa xmm0,xmm5 add ebx,DWORD PTR 32[esp] xor edx,edi paddd xmm1,xmm5 movdqa XMMWORD PTR 96[esp],xmm2 rol ecx,5 add ebx,esi psrldq xmm0,4 and ebp,edx xor edx,edi pxor xmm6,xmm2 add ebx,ecx ror ecx,7 pxor xmm0,xmm4 xor ebp,edi mov esi,ebx add eax,DWORD PTR 36[esp] pxor xmm6,xmm0 xor ecx,edx rol ebx,5 movdqa XMMWORD PTR 16[esp],xmm1 add eax,ebp and esi,ecx movdqa xmm2,xmm6 xor ecx,edx add eax,ebx ror ebx,7 movdqa xmm0,xmm6 xor esi,edx pslldq xmm2,12 paddd xmm6,xmm6 mov ebp,eax add edi,DWORD PTR 40[esp] psrld xmm0,31 xor ebx,ecx rol eax,5 movdqa xmm1,xmm2 add edi,esi and ebp,ebx xor ebx,ecx psrld xmm2,30 add edi,eax ror eax,7 por xmm6,xmm0 xor ebp,ecx movdqa xmm0,XMMWORD PTR 64[esp] mov esi,edi add edx,DWORD PTR 44[esp] pslld xmm1,2 xor eax,ebx rol edi,5 pxor xmm6,xmm2 movdqa xmm2,XMMWORD PTR 112[esp] add edx,ebp and esi,eax pxor xmm6,xmm1 pshufd xmm7,xmm3,238 xor eax,ebx add edx,edi ror edi,7 xor esi,ebx mov ebp,edx punpcklqdq xmm7,xmm4 movdqa xmm1,xmm6 add ecx,DWORD PTR 48[esp] xor edi,eax paddd xmm2,xmm6 movdqa XMMWORD PTR 64[esp],xmm3 rol edx,5 add ecx,esi psrldq xmm1,4 and ebp,edi xor edi,eax pxor xmm7,xmm3 add ecx,edx ror edx,7 pxor xmm1,xmm5 xor ebp,eax mov esi,ecx add ebx,DWORD PTR 52[esp] pxor xmm7,xmm1 xor edx,edi rol ecx,5 movdqa XMMWORD PTR 32[esp],xmm2 add ebx,ebp and esi,edx movdqa xmm3,xmm7 xor edx,edi add ebx,ecx ror ecx,7 movdqa xmm1,xmm7 xor esi,edi pslldq xmm3,12 paddd xmm7,xmm7 mov ebp,ebx add eax,DWORD PTR 56[esp] psrld xmm1,31 xor ecx,edx rol ebx,5 movdqa xmm2,xmm3 add eax,esi and ebp,ecx xor ecx,edx psrld xmm3,30 add eax,ebx ror ebx,7 por xmm7,xmm1 xor ebp,edx movdqa xmm1,XMMWORD PTR 80[esp] mov esi,eax add edi,DWORD PTR 60[esp] pslld xmm2,2 xor ebx,ecx rol eax,5 pxor xmm7,xmm3 movdqa xmm3,XMMWORD PTR 112[esp] add edi,ebp and esi,ebx pxor xmm7,xmm2 pshufd xmm2,xmm6,238 xor ebx,ecx add edi,eax ror eax,7 pxor xmm0,xmm4 punpcklqdq xmm2,xmm7 xor esi,ecx mov ebp,edi add edx,DWORD PTR [esp] pxor xmm0,xmm1 movdqa XMMWORD PTR 80[esp],xmm4 xor eax,ebx rol edi,5 movdqa xmm4,xmm3 add edx,esi paddd xmm3,xmm7 and ebp,eax pxor xmm0,xmm2 xor eax,ebx add edx,edi ror edi,7 xor ebp,ebx movdqa xmm2,xmm0 movdqa XMMWORD PTR 48[esp],xmm3 mov esi,edx add ecx,DWORD PTR 4[esp] xor edi,eax rol edx,5 pslld xmm0,2 add ecx,ebp and esi,edi psrld xmm2,30 xor edi,eax add ecx,edx ror edx,7 xor esi,eax mov ebp,ecx add ebx,DWORD PTR 8[esp] xor edx,edi rol ecx,5 por xmm0,xmm2 add ebx,esi and ebp,edx movdqa xmm2,XMMWORD PTR 96[esp] xor edx,edi add ebx,ecx add eax,DWORD PTR 12[esp] xor ebp,edi mov esi,ebx pshufd xmm3,xmm7,238 rol ebx,5 add eax,ebp xor esi,edx ror ecx,7 add eax,ebx add edi,DWORD PTR 16[esp] pxor xmm1,xmm5 punpcklqdq xmm3,xmm0 xor esi,ecx mov ebp,eax rol eax,5 pxor xmm1,xmm2 movdqa XMMWORD PTR 96[esp],xmm5 add edi,esi xor ebp,ecx movdqa xmm5,xmm4 ror ebx,7 paddd xmm4,xmm0 add edi,eax pxor xmm1,xmm3 add edx,DWORD PTR 20[esp] xor ebp,ebx mov esi,edi rol edi,5 movdqa xmm3,xmm1 movdqa XMMWORD PTR [esp],xmm4 add edx,ebp xor esi,ebx ror eax,7 add edx,edi pslld xmm1,2 add ecx,DWORD PTR 24[esp] xor esi,eax psrld xmm3,30 mov ebp,edx rol edx,5 add ecx,esi xor ebp,eax ror edi,7 add ecx,edx por xmm1,xmm3 add ebx,DWORD PTR 28[esp] xor ebp,edi movdqa xmm3,XMMWORD PTR 64[esp] mov esi,ecx rol ecx,5 add ebx,ebp xor esi,edi ror edx,7 pshufd xmm4,xmm0,238 add ebx,ecx add eax,DWORD PTR 32[esp] pxor xmm2,xmm6 punpcklqdq xmm4,xmm1 xor esi,edx mov ebp,ebx rol ebx,5 pxor xmm2,xmm3 movdqa XMMWORD PTR 64[esp],xmm6 add eax,esi xor ebp,edx movdqa xmm6,XMMWORD PTR 128[esp] ror ecx,7 paddd xmm5,xmm1 add eax,ebx pxor xmm2,xmm4 add edi,DWORD PTR 36[esp] xor ebp,ecx mov esi,eax rol eax,5 movdqa xmm4,xmm2 movdqa XMMWORD PTR 16[esp],xmm5 add edi,ebp xor esi,ecx ror ebx,7 add edi,eax pslld xmm2,2 add edx,DWORD PTR 40[esp] xor esi,ebx psrld xmm4,30 mov ebp,edi rol edi,5 add edx,esi xor ebp,ebx ror eax,7 add edx,edi por xmm2,xmm4 add ecx,DWORD PTR 44[esp] xor ebp,eax movdqa xmm4,XMMWORD PTR 80[esp] mov esi,edx rol edx,5 add ecx,ebp xor esi,eax ror edi,7 pshufd xmm5,xmm1,238 add ecx,edx add ebx,DWORD PTR 48[esp] pxor xmm3,xmm7 punpcklqdq xmm5,xmm2 xor esi,edi mov ebp,ecx rol ecx,5 pxor xmm3,xmm4 movdqa XMMWORD PTR 80[esp],xmm7 add ebx,esi xor ebp,edi movdqa xmm7,xmm6 ror edx,7 paddd xmm6,xmm2 add ebx,ecx pxor xmm3,xmm5 add eax,DWORD PTR 52[esp] xor ebp,edx mov esi,ebx rol ebx,5 movdqa xmm5,xmm3 movdqa XMMWORD PTR 32[esp],xmm6 add eax,ebp xor esi,edx ror ecx,7 add eax,ebx pslld xmm3,2 add edi,DWORD PTR 56[esp] xor esi,ecx psrld xmm5,30 mov ebp,eax rol eax,5 add edi,esi xor ebp,ecx ror ebx,7 add edi,eax por xmm3,xmm5 add edx,DWORD PTR 60[esp] xor ebp,ebx movdqa xmm5,XMMWORD PTR 96[esp] mov esi,edi rol edi,5 add edx,ebp xor esi,ebx ror eax,7 pshufd xmm6,xmm2,238 add edx,edi add ecx,DWORD PTR [esp] pxor xmm4,xmm0 punpcklqdq xmm6,xmm3 xor esi,eax mov ebp,edx rol edx,5 pxor xmm4,xmm5 movdqa XMMWORD PTR 96[esp],xmm0 add ecx,esi xor ebp,eax movdqa xmm0,xmm7 ror edi,7 paddd xmm7,xmm3 add ecx,edx pxor xmm4,xmm6 add ebx,DWORD PTR 4[esp] xor ebp,edi mov esi,ecx rol ecx,5 movdqa xmm6,xmm4 movdqa XMMWORD PTR 48[esp],xmm7 add ebx,ebp xor esi,edi ror edx,7 add ebx,ecx pslld xmm4,2 add eax,DWORD PTR 8[esp] xor esi,edx psrld xmm6,30 mov ebp,ebx rol ebx,5 add eax,esi xor ebp,edx ror ecx,7 add eax,ebx por xmm4,xmm6 add edi,DWORD PTR 12[esp] xor ebp,ecx movdqa xmm6,XMMWORD PTR 64[esp] mov esi,eax rol eax,5 add edi,ebp xor esi,ecx ror ebx,7 pshufd xmm7,xmm3,238 add edi,eax add edx,DWORD PTR 16[esp] pxor xmm5,xmm1 punpcklqdq xmm7,xmm4 xor esi,ebx mov ebp,edi rol edi,5 pxor xmm5,xmm6 movdqa XMMWORD PTR 64[esp],xmm1 add edx,esi xor ebp,ebx movdqa xmm1,xmm0 ror eax,7 paddd xmm0,xmm4 add edx,edi pxor xmm5,xmm7 add ecx,DWORD PTR 20[esp] xor ebp,eax mov esi,edx rol edx,5 movdqa xmm7,xmm5 movdqa XMMWORD PTR [esp],xmm0 add ecx,ebp xor esi,eax ror edi,7 add ecx,edx pslld xmm5,2 add ebx,DWORD PTR 24[esp] xor esi,edi psrld xmm7,30 mov ebp,ecx rol ecx,5 add ebx,esi xor ebp,edi ror edx,7 add ebx,ecx por xmm5,xmm7 add eax,DWORD PTR 28[esp] movdqa xmm7,XMMWORD PTR 80[esp] ror ecx,7 mov esi,ebx xor ebp,edx rol ebx,5 pshufd xmm0,xmm4,238 add eax,ebp xor esi,ecx xor ecx,edx add eax,ebx add edi,DWORD PTR 32[esp] pxor xmm6,xmm2 punpcklqdq xmm0,xmm5 and esi,ecx xor ecx,edx ror ebx,7 pxor xmm6,xmm7 movdqa XMMWORD PTR 80[esp],xmm2 mov ebp,eax xor esi,ecx rol eax,5 movdqa xmm2,xmm1 add edi,esi paddd xmm1,xmm5 xor ebp,ebx pxor xmm6,xmm0 xor ebx,ecx add edi,eax add edx,DWORD PTR 36[esp] and ebp,ebx movdqa xmm0,xmm6 movdqa XMMWORD PTR 16[esp],xmm1 xor ebx,ecx ror eax,7 mov esi,edi xor ebp,ebx rol edi,5 pslld xmm6,2 add edx,ebp xor esi,eax psrld xmm0,30 xor eax,ebx add edx,edi add ecx,DWORD PTR 40[esp] and esi,eax xor eax,ebx ror edi,7 por xmm6,xmm0 mov ebp,edx xor esi,eax movdqa xmm0,XMMWORD PTR 96[esp] rol edx,5 add ecx,esi xor ebp,edi xor edi,eax add ecx,edx pshufd xmm1,xmm5,238 add ebx,DWORD PTR 44[esp] and ebp,edi xor edi,eax ror edx,7 mov esi,ecx xor ebp,edi rol ecx,5 add ebx,ebp xor esi,edx xor edx,edi add ebx,ecx add eax,DWORD PTR 48[esp] pxor xmm7,xmm3 punpcklqdq xmm1,xmm6 and esi,edx xor edx,edi ror ecx,7 pxor xmm7,xmm0 movdqa XMMWORD PTR 96[esp],xmm3 mov ebp,ebx xor esi,edx rol ebx,5 movdqa xmm3,XMMWORD PTR 144[esp] add eax,esi paddd xmm2,xmm6 xor ebp,ecx pxor xmm7,xmm1 xor ecx,edx add eax,ebx add edi,DWORD PTR 52[esp] and ebp,ecx movdqa xmm1,xmm7 movdqa XMMWORD PTR 32[esp],xmm2 xor ecx,edx ror ebx,7 mov esi,eax xor ebp,ecx rol eax,5 pslld xmm7,2 add edi,ebp xor esi,ebx psrld xmm1,30 xor ebx,ecx add edi,eax add edx,DWORD PTR 56[esp] and esi,ebx xor ebx,ecx ror eax,7 por xmm7,xmm1 mov ebp,edi xor esi,ebx movdqa xmm1,XMMWORD PTR 64[esp] rol edi,5 add edx,esi xor ebp,eax xor eax,ebx add edx,edi pshufd xmm2,xmm6,238 add ecx,DWORD PTR 60[esp] and ebp,eax xor eax,ebx ror edi,7 mov esi,edx xor ebp,eax rol edx,5 add ecx,ebp xor esi,edi xor edi,eax add ecx,edx add ebx,DWORD PTR [esp] pxor xmm0,xmm4 punpcklqdq xmm2,xmm7 and esi,edi xor edi,eax ror edx,7 pxor xmm0,xmm1 movdqa XMMWORD PTR 64[esp],xmm4 mov ebp,ecx xor esi,edi rol ecx,5 movdqa xmm4,xmm3 add ebx,esi paddd xmm3,xmm7 xor ebp,edx pxor xmm0,xmm2 xor edx,edi add ebx,ecx add eax,DWORD PTR 4[esp] and ebp,edx movdqa xmm2,xmm0 movdqa XMMWORD PTR 48[esp],xmm3 xor edx,edi ror ecx,7 mov esi,ebx xor ebp,edx rol ebx,5 pslld xmm0,2 add eax,ebp xor esi,ecx psrld xmm2,30 xor ecx,edx add eax,ebx add edi,DWORD PTR 8[esp] and esi,ecx xor ecx,edx ror ebx,7 por xmm0,xmm2 mov ebp,eax xor esi,ecx movdqa xmm2,XMMWORD PTR 80[esp] rol eax,5 add edi,esi xor ebp,ebx xor ebx,ecx add edi,eax pshufd xmm3,xmm7,238 add edx,DWORD PTR 12[esp] and ebp,ebx xor ebx,ecx ror eax,7 mov esi,edi xor ebp,ebx rol edi,5 add edx,ebp xor esi,eax xor eax,ebx add edx,edi add ecx,DWORD PTR 16[esp] pxor xmm1,xmm5 punpcklqdq xmm3,xmm0 and esi,eax xor eax,ebx ror edi,7 pxor xmm1,xmm2 movdqa XMMWORD PTR 80[esp],xmm5 mov ebp,edx xor esi,eax rol edx,5 movdqa xmm5,xmm4 add ecx,esi paddd xmm4,xmm0 xor ebp,edi pxor xmm1,xmm3 xor edi,eax add ecx,edx add ebx,DWORD PTR 20[esp] and ebp,edi movdqa xmm3,xmm1 movdqa XMMWORD PTR [esp],xmm4 xor edi,eax ror edx,7 mov esi,ecx xor ebp,edi rol ecx,5 pslld xmm1,2 add ebx,ebp xor esi,edx psrld xmm3,30 xor edx,edi add ebx,ecx add eax,DWORD PTR 24[esp] and esi,edx xor edx,edi ror ecx,7 por xmm1,xmm3 mov ebp,ebx xor esi,edx movdqa xmm3,XMMWORD PTR 96[esp] rol ebx,5 add eax,esi xor ebp,ecx xor ecx,edx add eax,ebx pshufd xmm4,xmm0,238 add edi,DWORD PTR 28[esp] and ebp,ecx xor ecx,edx ror ebx,7 mov esi,eax xor ebp,ecx rol eax,5 add edi,ebp xor esi,ebx xor ebx,ecx add edi,eax add edx,DWORD PTR 32[esp] pxor xmm2,xmm6 punpcklqdq xmm4,xmm1 and esi,ebx xor ebx,ecx ror eax,7 pxor xmm2,xmm3 movdqa XMMWORD PTR 96[esp],xmm6 mov ebp,edi xor esi,ebx rol edi,5 movdqa xmm6,xmm5 add edx,esi paddd xmm5,xmm1 xor ebp,eax pxor xmm2,xmm4 xor eax,ebx add edx,edi add ecx,DWORD PTR 36[esp] and ebp,eax movdqa xmm4,xmm2 movdqa XMMWORD PTR 16[esp],xmm5 xor eax,ebx ror edi,7 mov esi,edx xor ebp,eax rol edx,5 pslld xmm2,2 add ecx,ebp xor esi,edi psrld xmm4,30 xor edi,eax add ecx,edx add ebx,DWORD PTR 40[esp] and esi,edi xor edi,eax ror edx,7 por xmm2,xmm4 mov ebp,ecx xor esi,edi movdqa xmm4,XMMWORD PTR 64[esp] rol ecx,5 add ebx,esi xor ebp,edx xor edx,edi add ebx,ecx pshufd xmm5,xmm1,238 add eax,DWORD PTR 44[esp] and ebp,edx xor edx,edi ror ecx,7 mov esi,ebx xor ebp,edx rol ebx,5 add eax,ebp xor esi,edx add eax,ebx add edi,DWORD PTR 48[esp] pxor xmm3,xmm7 punpcklqdq xmm5,xmm2 xor esi,ecx mov ebp,eax rol eax,5 pxor xmm3,xmm4 movdqa XMMWORD PTR 64[esp],xmm7 add edi,esi xor ebp,ecx movdqa xmm7,xmm6 ror ebx,7 paddd xmm6,xmm2 add edi,eax pxor xmm3,xmm5 add edx,DWORD PTR 52[esp] xor ebp,ebx mov esi,edi rol edi,5 movdqa xmm5,xmm3 movdqa XMMWORD PTR 32[esp],xmm6 add edx,ebp xor esi,ebx ror eax,7 add edx,edi pslld xmm3,2 add ecx,DWORD PTR 56[esp] xor esi,eax psrld xmm5,30 mov ebp,edx rol edx,5 add ecx,esi xor ebp,eax ror edi,7 add ecx,edx por xmm3,xmm5 add ebx,DWORD PTR 60[esp] xor ebp,edi mov esi,ecx rol ecx,5 add ebx,ebp xor esi,edi ror edx,7 add ebx,ecx add eax,DWORD PTR [esp] xor esi,edx mov ebp,ebx rol ebx,5 add eax,esi xor ebp,edx ror ecx,7 paddd xmm7,xmm3 add eax,ebx add edi,DWORD PTR 4[esp] xor ebp,ecx mov esi,eax movdqa XMMWORD PTR 48[esp],xmm7 rol eax,5 add edi,ebp xor esi,ecx ror ebx,7 add edi,eax add edx,DWORD PTR 8[esp] xor esi,ebx mov ebp,edi rol edi,5 add edx,esi xor ebp,ebx ror eax,7 add edx,edi add ecx,DWORD PTR 12[esp] xor ebp,eax mov esi,edx rol edx,5 add ecx,ebp xor esi,eax ror edi,7 add ecx,edx mov ebp,DWORD PTR 196[esp] cmp ebp,DWORD PTR 200[esp] je $L007done movdqa xmm7,XMMWORD PTR 160[esp] movdqa xmm6,XMMWORD PTR 176[esp] movdqu xmm0,XMMWORD PTR [ebp] movdqu xmm1,XMMWORD PTR 16[ebp] movdqu xmm2,XMMWORD PTR 32[ebp] movdqu xmm3,XMMWORD PTR 48[ebp] add ebp,64 DB 102,15,56,0,198 mov DWORD PTR 196[esp],ebp movdqa XMMWORD PTR 96[esp],xmm7 add ebx,DWORD PTR 16[esp] xor esi,edi mov ebp,ecx rol ecx,5 add ebx,esi xor ebp,edi ror edx,7 DB 102,15,56,0,206 add ebx,ecx add eax,DWORD PTR 20[esp] xor ebp,edx mov esi,ebx paddd xmm0,xmm7 rol ebx,5 add eax,ebp xor esi,edx ror ecx,7 movdqa XMMWORD PTR [esp],xmm0 add eax,ebx add edi,DWORD PTR 24[esp] xor esi,ecx mov ebp,eax psubd xmm0,xmm7 rol eax,5 add edi,esi xor ebp,ecx ror ebx,7 add edi,eax add edx,DWORD PTR 28[esp] xor ebp,ebx mov esi,edi rol edi,5 add edx,ebp xor esi,ebx ror eax,7 add edx,edi add ecx,DWORD PTR 32[esp] xor esi,eax mov ebp,edx rol edx,5 add ecx,esi xor ebp,eax ror edi,7 DB 102,15,56,0,214 add ecx,edx add ebx,DWORD PTR 36[esp] xor ebp,edi mov esi,ecx paddd xmm1,xmm7 rol ecx,5 add ebx,ebp xor esi,edi ror edx,7 movdqa XMMWORD PTR 16[esp],xmm1 add ebx,ecx add eax,DWORD PTR 40[esp] xor esi,edx mov ebp,ebx psubd xmm1,xmm7 rol ebx,5 add eax,esi xor ebp,edx ror ecx,7 add eax,ebx add edi,DWORD PTR 44[esp] xor ebp,ecx mov esi,eax rol eax,5 add edi,ebp xor esi,ecx ror ebx,7 add edi,eax add edx,DWORD PTR 48[esp] xor esi,ebx mov ebp,edi rol edi,5 add edx,esi xor ebp,ebx ror eax,7 DB 102,15,56,0,222 add edx,edi add ecx,DWORD PTR 52[esp] xor ebp,eax mov esi,edx paddd xmm2,xmm7 rol edx,5 add ecx,ebp xor esi,eax ror edi,7 movdqa XMMWORD PTR 32[esp],xmm2 add ecx,edx add ebx,DWORD PTR 56[esp] xor esi,edi mov ebp,ecx psubd xmm2,xmm7 rol ecx,5 add ebx,esi xor ebp,edi ror edx,7 add ebx,ecx add eax,DWORD PTR 60[esp] xor ebp,edx mov esi,ebx rol ebx,5 add eax,ebp ror ecx,7 add eax,ebx mov ebp,DWORD PTR 192[esp] add eax,DWORD PTR [ebp] add esi,DWORD PTR 4[ebp] add ecx,DWORD PTR 8[ebp] mov DWORD PTR [ebp],eax add edx,DWORD PTR 12[ebp] mov DWORD PTR 4[ebp],esi add edi,DWORD PTR 16[ebp] mov DWORD PTR 8[ebp],ecx mov ebx,ecx mov DWORD PTR 12[ebp],edx xor ebx,edx mov DWORD PTR 16[ebp],edi mov ebp,esi pshufd xmm4,xmm0,238 and esi,ebx mov ebx,ebp jmp $L006loop ALIGN 16 $L007done: add ebx,DWORD PTR 16[esp] xor esi,edi mov ebp,ecx rol ecx,5 add ebx,esi xor ebp,edi ror edx,7 add ebx,ecx add eax,DWORD PTR 20[esp] xor ebp,edx mov esi,ebx rol ebx,5 add eax,ebp xor esi,edx ror ecx,7 add eax,ebx add edi,DWORD PTR 24[esp] xor esi,ecx mov ebp,eax rol eax,5 add edi,esi xor ebp,ecx ror ebx,7 add edi,eax add edx,DWORD PTR 28[esp] xor ebp,ebx mov esi,edi rol edi,5 add edx,ebp xor esi,ebx ror eax,7 add edx,edi add ecx,DWORD PTR 32[esp] xor esi,eax mov ebp,edx rol edx,5 add ecx,esi xor ebp,eax ror edi,7 add ecx,edx add ebx,DWORD PTR 36[esp] xor ebp,edi mov esi,ecx rol ecx,5 add ebx,ebp xor esi,edi ror edx,7 add ebx,ecx add eax,DWORD PTR 40[esp] xor esi,edx mov ebp,ebx rol ebx,5 add eax,esi xor ebp,edx ror ecx,7 add eax,ebx add edi,DWORD PTR 44[esp] xor ebp,ecx mov esi,eax rol eax,5 add edi,ebp xor esi,ecx ror ebx,7 add edi,eax add edx,DWORD PTR 48[esp] xor esi,ebx mov ebp,edi rol edi,5 add edx,esi xor ebp,ebx ror eax,7 add edx,edi add ecx,DWORD PTR 52[esp] xor ebp,eax mov esi,edx rol edx,5 add ecx,ebp xor esi,eax ror edi,7 add ecx,edx add ebx,DWORD PTR 56[esp] xor esi,edi mov ebp,ecx rol ecx,5 add ebx,esi xor ebp,edi ror edx,7 add ebx,ecx add eax,DWORD PTR 60[esp] xor ebp,edx mov esi,ebx rol ebx,5 add eax,ebp ror ecx,7 add eax,ebx mov ebp,DWORD PTR 192[esp] add eax,DWORD PTR [ebp] mov esp,DWORD PTR 204[esp] add esi,DWORD PTR 4[ebp] add ecx,DWORD PTR 8[ebp] mov DWORD PTR [ebp],eax add edx,DWORD PTR 12[ebp] mov DWORD PTR 4[ebp],esi add edi,DWORD PTR 16[ebp] mov DWORD PTR 8[ebp],ecx mov DWORD PTR 12[ebp],edx mov DWORD PTR 16[ebp],edi pop edi pop esi pop ebx pop ebp ret __sha1_block_data_order_ssse3 ENDP ALIGN 16 __sha1_block_data_order_avx PROC PRIVATE push ebp push ebx push esi push edi call $L008pic_point $L008pic_point: pop ebp lea ebp,DWORD PTR ($LK_XX_XX-$L008pic_point)[ebp] $Lavx_shortcut:: vzeroall vmovdqa xmm7,XMMWORD PTR [ebp] vmovdqa xmm0,XMMWORD PTR 16[ebp] vmovdqa xmm1,XMMWORD PTR 32[ebp] vmovdqa xmm2,XMMWORD PTR 48[ebp] vmovdqa xmm6,XMMWORD PTR 64[ebp] mov edi,DWORD PTR 20[esp] mov ebp,DWORD PTR 24[esp] mov edx,DWORD PTR 28[esp] mov esi,esp sub esp,208 and esp,-64 vmovdqa XMMWORD PTR 112[esp],xmm0 vmovdqa XMMWORD PTR 128[esp],xmm1 vmovdqa XMMWORD PTR 144[esp],xmm2 shl edx,6 vmovdqa XMMWORD PTR 160[esp],xmm7 add edx,ebp vmovdqa XMMWORD PTR 176[esp],xmm6 add ebp,64 mov DWORD PTR 192[esp],edi mov DWORD PTR 196[esp],ebp mov DWORD PTR 200[esp],edx mov DWORD PTR 204[esp],esi mov eax,DWORD PTR [edi] mov ebx,DWORD PTR 4[edi] mov ecx,DWORD PTR 8[edi] mov edx,DWORD PTR 12[edi] mov edi,DWORD PTR 16[edi] mov esi,ebx vmovdqu xmm0,XMMWORD PTR [ebp-64] vmovdqu xmm1,XMMWORD PTR [ebp-48] vmovdqu xmm2,XMMWORD PTR [ebp-32] vmovdqu xmm3,XMMWORD PTR [ebp-16] vpshufb xmm0,xmm0,xmm6 vpshufb xmm1,xmm1,xmm6 vpshufb xmm2,xmm2,xmm6 vmovdqa XMMWORD PTR 96[esp],xmm7 vpshufb xmm3,xmm3,xmm6 vpaddd xmm4,xmm0,xmm7 vpaddd xmm5,xmm1,xmm7 vpaddd xmm6,xmm2,xmm7 vmovdqa XMMWORD PTR [esp],xmm4 mov ebp,ecx vmovdqa XMMWORD PTR 16[esp],xmm5 xor ebp,edx vmovdqa XMMWORD PTR 32[esp],xmm6 and esi,ebp jmp $L009loop ALIGN 16 $L009loop: shrd ebx,ebx,2 xor esi,edx vpalignr xmm4,xmm1,xmm0,8 mov ebp,eax add edi,DWORD PTR [esp] vpaddd xmm7,xmm7,xmm3 vmovdqa XMMWORD PTR 64[esp],xmm0 xor ebx,ecx shld eax,eax,5 vpsrldq xmm6,xmm3,4 add edi,esi and ebp,ebx vpxor xmm4,xmm4,xmm0 xor ebx,ecx add edi,eax vpxor xmm6,xmm6,xmm2 shrd eax,eax,7 xor ebp,ecx vmovdqa XMMWORD PTR 48[esp],xmm7 mov esi,edi add edx,DWORD PTR 4[esp] vpxor xmm4,xmm4,xmm6 xor eax,ebx shld edi,edi,5 add edx,ebp and esi,eax vpsrld xmm6,xmm4,31 xor eax,ebx add edx,edi shrd edi,edi,7 xor esi,ebx vpslldq xmm0,xmm4,12 vpaddd xmm4,xmm4,xmm4 mov ebp,edx add ecx,DWORD PTR 8[esp] xor edi,eax shld edx,edx,5 vpsrld xmm7,xmm0,30 vpor xmm4,xmm4,xmm6 add ecx,esi and ebp,edi xor edi,eax add ecx,edx vpslld xmm0,xmm0,2 shrd edx,edx,7 xor ebp,eax vpxor xmm4,xmm4,xmm7 mov esi,ecx add ebx,DWORD PTR 12[esp] xor edx,edi shld ecx,ecx,5 vpxor xmm4,xmm4,xmm0 add ebx,ebp and esi,edx vmovdqa xmm0,XMMWORD PTR 96[esp] xor edx,edi add ebx,ecx shrd ecx,ecx,7 xor esi,edi vpalignr xmm5,xmm2,xmm1,8 mov ebp,ebx add eax,DWORD PTR 16[esp] vpaddd xmm0,xmm0,xmm4 vmovdqa XMMWORD PTR 80[esp],xmm1 xor ecx,edx shld ebx,ebx,5 vpsrldq xmm7,xmm4,4 add eax,esi and ebp,ecx vpxor xmm5,xmm5,xmm1 xor ecx,edx add eax,ebx vpxor xmm7,xmm7,xmm3 shrd ebx,ebx,7 xor ebp,edx vmovdqa XMMWORD PTR [esp],xmm0 mov esi,eax add edi,DWORD PTR 20[esp] vpxor xmm5,xmm5,xmm7 xor ebx,ecx shld eax,eax,5 add edi,ebp and esi,ebx vpsrld xmm7,xmm5,31 xor ebx,ecx add edi,eax shrd eax,eax,7 xor esi,ecx vpslldq xmm1,xmm5,12 vpaddd xmm5,xmm5,xmm5 mov ebp,edi add edx,DWORD PTR 24[esp] xor eax,ebx shld edi,edi,5 vpsrld xmm0,xmm1,30 vpor xmm5,xmm5,xmm7 add edx,esi and ebp,eax xor eax,ebx add edx,edi vpslld xmm1,xmm1,2 shrd edi,edi,7 xor ebp,ebx vpxor xmm5,xmm5,xmm0 mov esi,edx add ecx,DWORD PTR 28[esp] xor edi,eax shld edx,edx,5 vpxor xmm5,xmm5,xmm1 add ecx,ebp and esi,edi vmovdqa xmm1,XMMWORD PTR 112[esp] xor edi,eax add ecx,edx shrd edx,edx,7 xor esi,eax vpalignr xmm6,xmm3,xmm2,8 mov ebp,ecx add ebx,DWORD PTR 32[esp] vpaddd xmm1,xmm1,xmm5 vmovdqa XMMWORD PTR 96[esp],xmm2 xor edx,edi shld ecx,ecx,5 vpsrldq xmm0,xmm5,4 add ebx,esi and ebp,edx vpxor xmm6,xmm6,xmm2 xor edx,edi add ebx,ecx vpxor xmm0,xmm0,xmm4 shrd ecx,ecx,7 xor ebp,edi vmovdqa XMMWORD PTR 16[esp],xmm1 mov esi,ebx add eax,DWORD PTR 36[esp] vpxor xmm6,xmm6,xmm0 xor ecx,edx shld ebx,ebx,5 add eax,ebp and esi,ecx vpsrld xmm0,xmm6,31 xor ecx,edx add eax,ebx shrd ebx,ebx,7 xor esi,edx vpslldq xmm2,xmm6,12 vpaddd xmm6,xmm6,xmm6 mov ebp,eax add edi,DWORD PTR 40[esp] xor ebx,ecx shld eax,eax,5 vpsrld xmm1,xmm2,30 vpor xmm6,xmm6,xmm0 add edi,esi and ebp,ebx xor ebx,ecx add edi,eax vpslld xmm2,xmm2,2 vmovdqa xmm0,XMMWORD PTR 64[esp] shrd eax,eax,7 xor ebp,ecx vpxor xmm6,xmm6,xmm1 mov esi,edi add edx,DWORD PTR 44[esp] xor eax,ebx shld edi,edi,5 vpxor xmm6,xmm6,xmm2 add edx,ebp and esi,eax vmovdqa xmm2,XMMWORD PTR 112[esp] xor eax,ebx add edx,edi shrd edi,edi,7 xor esi,ebx vpalignr xmm7,xmm4,xmm3,8 mov ebp,edx add ecx,DWORD PTR 48[esp] vpaddd xmm2,xmm2,xmm6 vmovdqa XMMWORD PTR 64[esp],xmm3 xor edi,eax shld edx,edx,5 vpsrldq xmm1,xmm6,4 add ecx,esi and ebp,edi vpxor xmm7,xmm7,xmm3 xor edi,eax add ecx,edx vpxor xmm1,xmm1,xmm5 shrd edx,edx,7 xor ebp,eax vmovdqa XMMWORD PTR 32[esp],xmm2 mov esi,ecx add ebx,DWORD PTR 52[esp] vpxor xmm7,xmm7,xmm1 xor edx,edi shld ecx,ecx,5 add ebx,ebp and esi,edx vpsrld xmm1,xmm7,31 xor edx,edi add ebx,ecx shrd ecx,ecx,7 xor esi,edi vpslldq xmm3,xmm7,12 vpaddd xmm7,xmm7,xmm7 mov ebp,ebx add eax,DWORD PTR 56[esp] xor ecx,edx shld ebx,ebx,5 vpsrld xmm2,xmm3,30 vpor xmm7,xmm7,xmm1 add eax,esi and ebp,ecx xor ecx,edx add eax,ebx vpslld xmm3,xmm3,2 vmovdqa xmm1,XMMWORD PTR 80[esp] shrd ebx,ebx,7 xor ebp,edx vpxor xmm7,xmm7,xmm2 mov esi,eax add edi,DWORD PTR 60[esp] xor ebx,ecx shld eax,eax,5 vpxor xmm7,xmm7,xmm3 add edi,ebp and esi,ebx vmovdqa xmm3,XMMWORD PTR 112[esp] xor ebx,ecx add edi,eax vpalignr xmm2,xmm7,xmm6,8 vpxor xmm0,xmm0,xmm4 shrd eax,eax,7 xor esi,ecx mov ebp,edi add edx,DWORD PTR [esp] vpxor xmm0,xmm0,xmm1 vmovdqa XMMWORD PTR 80[esp],xmm4 xor eax,ebx shld edi,edi,5 vmovdqa xmm4,xmm3 vpaddd xmm3,xmm3,xmm7 add edx,esi and ebp,eax vpxor xmm0,xmm0,xmm2 xor eax,ebx add edx,edi shrd edi,edi,7 xor ebp,ebx vpsrld xmm2,xmm0,30 vmovdqa XMMWORD PTR 48[esp],xmm3 mov esi,edx add ecx,DWORD PTR 4[esp] xor edi,eax shld edx,edx,5 vpslld xmm0,xmm0,2 add ecx,ebp and esi,edi xor edi,eax add ecx,edx shrd edx,edx,7 xor esi,eax mov ebp,ecx add ebx,DWORD PTR 8[esp] vpor xmm0,xmm0,xmm2 xor edx,edi shld ecx,ecx,5 vmovdqa xmm2,XMMWORD PTR 96[esp] add ebx,esi and ebp,edx xor edx,edi add ebx,ecx add eax,DWORD PTR 12[esp] xor ebp,edi mov esi,ebx shld ebx,ebx,5 add eax,ebp xor esi,edx shrd ecx,ecx,7 add eax,ebx vpalignr xmm3,xmm0,xmm7,8 vpxor xmm1,xmm1,xmm5 add edi,DWORD PTR 16[esp] xor esi,ecx mov ebp,eax shld eax,eax,5 vpxor xmm1,xmm1,xmm2 vmovdqa XMMWORD PTR 96[esp],xmm5 add edi,esi xor ebp,ecx vmovdqa xmm5,xmm4 vpaddd xmm4,xmm4,xmm0 shrd ebx,ebx,7 add edi,eax vpxor xmm1,xmm1,xmm3 add edx,DWORD PTR 20[esp] xor ebp,ebx mov esi,edi shld edi,edi,5 vpsrld xmm3,xmm1,30 vmovdqa XMMWORD PTR [esp],xmm4 add edx,ebp xor esi,ebx shrd eax,eax,7 add edx,edi vpslld xmm1,xmm1,2 add ecx,DWORD PTR 24[esp] xor esi,eax mov ebp,edx shld edx,edx,5 add ecx,esi xor ebp,eax shrd edi,edi,7 add ecx,edx vpor xmm1,xmm1,xmm3 add ebx,DWORD PTR 28[esp] xor ebp,edi vmovdqa xmm3,XMMWORD PTR 64[esp] mov esi,ecx shld ecx,ecx,5 add ebx,ebp xor esi,edi shrd edx,edx,7 add ebx,ecx vpalignr xmm4,xmm1,xmm0,8 vpxor xmm2,xmm2,xmm6 add eax,DWORD PTR 32[esp] xor esi,edx mov ebp,ebx shld ebx,ebx,5 vpxor xmm2,xmm2,xmm3 vmovdqa XMMWORD PTR 64[esp],xmm6 add eax,esi xor ebp,edx vmovdqa xmm6,XMMWORD PTR 128[esp] vpaddd xmm5,xmm5,xmm1 shrd ecx,ecx,7 add eax,ebx vpxor xmm2,xmm2,xmm4 add edi,DWORD PTR 36[esp] xor ebp,ecx mov esi,eax shld eax,eax,5 vpsrld xmm4,xmm2,30 vmovdqa XMMWORD PTR 16[esp],xmm5 add edi,ebp xor esi,ecx shrd ebx,ebx,7 add edi,eax vpslld xmm2,xmm2,2 add edx,DWORD PTR 40[esp] xor esi,ebx mov ebp,edi shld edi,edi,5 add edx,esi xor ebp,ebx shrd eax,eax,7 add edx,edi vpor xmm2,xmm2,xmm4 add ecx,DWORD PTR 44[esp] xor ebp,eax vmovdqa xmm4,XMMWORD PTR 80[esp] mov esi,edx shld edx,edx,5 add ecx,ebp xor esi,eax shrd edi,edi,7 add ecx,edx vpalignr xmm5,xmm2,xmm1,8 vpxor xmm3,xmm3,xmm7 add ebx,DWORD PTR 48[esp] xor esi,edi mov ebp,ecx shld ecx,ecx,5 vpxor xmm3,xmm3,xmm4 vmovdqa XMMWORD PTR 80[esp],xmm7 add ebx,esi xor ebp,edi vmovdqa xmm7,xmm6 vpaddd xmm6,xmm6,xmm2 shrd edx,edx,7 add ebx,ecx vpxor xmm3,xmm3,xmm5 add eax,DWORD PTR 52[esp] xor ebp,edx mov esi,ebx shld ebx,ebx,5 vpsrld xmm5,xmm3,30 vmovdqa XMMWORD PTR 32[esp],xmm6 add eax,ebp xor esi,edx shrd ecx,ecx,7 add eax,ebx vpslld xmm3,xmm3,2 add edi,DWORD PTR 56[esp] xor esi,ecx mov ebp,eax shld eax,eax,5 add edi,esi xor ebp,ecx shrd ebx,ebx,7 add edi,eax vpor xmm3,xmm3,xmm5 add edx,DWORD PTR 60[esp] xor ebp,ebx vmovdqa xmm5,XMMWORD PTR 96[esp] mov esi,edi shld edi,edi,5 add edx,ebp xor esi,ebx shrd eax,eax,7 add edx,edi vpalignr xmm6,xmm3,xmm2,8 vpxor xmm4,xmm4,xmm0 add ecx,DWORD PTR [esp] xor esi,eax mov ebp,edx shld edx,edx,5 vpxor xmm4,xmm4,xmm5 vmovdqa XMMWORD PTR 96[esp],xmm0 add ecx,esi xor ebp,eax vmovdqa xmm0,xmm7 vpaddd xmm7,xmm7,xmm3 shrd edi,edi,7 add ecx,edx vpxor xmm4,xmm4,xmm6 add ebx,DWORD PTR 4[esp] xor ebp,edi mov esi,ecx shld ecx,ecx,5 vpsrld xmm6,xmm4,30 vmovdqa XMMWORD PTR 48[esp],xmm7 add ebx,ebp xor esi,edi shrd edx,edx,7 add ebx,ecx vpslld xmm4,xmm4,2 add eax,DWORD PTR 8[esp] xor esi,edx mov ebp,ebx shld ebx,ebx,5 add eax,esi xor ebp,edx shrd ecx,ecx,7 add eax,ebx vpor xmm4,xmm4,xmm6 add edi,DWORD PTR 12[esp] xor ebp,ecx vmovdqa xmm6,XMMWORD PTR 64[esp] mov esi,eax shld eax,eax,5 add edi,ebp xor esi,ecx shrd ebx,ebx,7 add edi,eax vpalignr xmm7,xmm4,xmm3,8 vpxor xmm5,xmm5,xmm1 add edx,DWORD PTR 16[esp] xor esi,ebx mov ebp,edi shld edi,edi,5 vpxor xmm5,xmm5,xmm6 vmovdqa XMMWORD PTR 64[esp],xmm1 add edx,esi xor ebp,ebx vmovdqa xmm1,xmm0 vpaddd xmm0,xmm0,xmm4 shrd eax,eax,7 add edx,edi vpxor xmm5,xmm5,xmm7 add ecx,DWORD PTR 20[esp] xor ebp,eax mov esi,edx shld edx,edx,5 vpsrld xmm7,xmm5,30 vmovdqa XMMWORD PTR [esp],xmm0 add ecx,ebp xor esi,eax shrd edi,edi,7 add ecx,edx vpslld xmm5,xmm5,2 add ebx,DWORD PTR 24[esp] xor esi,edi mov ebp,ecx shld ecx,ecx,5 add ebx,esi xor ebp,edi shrd edx,edx,7 add ebx,ecx vpor xmm5,xmm5,xmm7 add eax,DWORD PTR 28[esp] vmovdqa xmm7,XMMWORD PTR 80[esp] shrd ecx,ecx,7 mov esi,ebx xor ebp,edx shld ebx,ebx,5 add eax,ebp xor esi,ecx xor ecx,edx add eax,ebx vpalignr xmm0,xmm5,xmm4,8 vpxor xmm6,xmm6,xmm2 add edi,DWORD PTR 32[esp] and esi,ecx xor ecx,edx shrd ebx,ebx,7 vpxor xmm6,xmm6,xmm7 vmovdqa XMMWORD PTR 80[esp],xmm2 mov ebp,eax xor esi,ecx vmovdqa xmm2,xmm1 vpaddd xmm1,xmm1,xmm5 shld eax,eax,5 add edi,esi vpxor xmm6,xmm6,xmm0 xor ebp,ebx xor ebx,ecx add edi,eax add edx,DWORD PTR 36[esp] vpsrld xmm0,xmm6,30 vmovdqa XMMWORD PTR 16[esp],xmm1 and ebp,ebx xor ebx,ecx shrd eax,eax,7 mov esi,edi vpslld xmm6,xmm6,2 xor ebp,ebx shld edi,edi,5 add edx,ebp xor esi,eax xor eax,ebx add edx,edi add ecx,DWORD PTR 40[esp] and esi,eax vpor xmm6,xmm6,xmm0 xor eax,ebx shrd edi,edi,7 vmovdqa xmm0,XMMWORD PTR 96[esp] mov ebp,edx xor esi,eax shld edx,edx,5 add ecx,esi xor ebp,edi xor edi,eax add ecx,edx add ebx,DWORD PTR 44[esp] and ebp,edi xor edi,eax shrd edx,edx,7 mov esi,ecx xor ebp,edi shld ecx,ecx,5 add ebx,ebp xor esi,edx xor edx,edi add ebx,ecx vpalignr xmm1,xmm6,xmm5,8 vpxor xmm7,xmm7,xmm3 add eax,DWORD PTR 48[esp] and esi,edx xor edx,edi shrd ecx,ecx,7 vpxor xmm7,xmm7,xmm0 vmovdqa XMMWORD PTR 96[esp],xmm3 mov ebp,ebx xor esi,edx vmovdqa xmm3,XMMWORD PTR 144[esp] vpaddd xmm2,xmm2,xmm6 shld ebx,ebx,5 add eax,esi vpxor xmm7,xmm7,xmm1 xor ebp,ecx xor ecx,edx add eax,ebx add edi,DWORD PTR 52[esp] vpsrld xmm1,xmm7,30 vmovdqa XMMWORD PTR 32[esp],xmm2 and ebp,ecx xor ecx,edx shrd ebx,ebx,7 mov esi,eax vpslld xmm7,xmm7,2 xor ebp,ecx shld eax,eax,5 add edi,ebp xor esi,ebx xor ebx,ecx add edi,eax add edx,DWORD PTR 56[esp] and esi,ebx vpor xmm7,xmm7,xmm1 xor ebx,ecx shrd eax,eax,7 vmovdqa xmm1,XMMWORD PTR 64[esp] mov ebp,edi xor esi,ebx shld edi,edi,5 add edx,esi xor ebp,eax xor eax,ebx add edx,edi add ecx,DWORD PTR 60[esp] and ebp,eax xor eax,ebx shrd edi,edi,7 mov esi,edx xor ebp,eax shld edx,edx,5 add ecx,ebp xor esi,edi xor edi,eax add ecx,edx vpalignr xmm2,xmm7,xmm6,8 vpxor xmm0,xmm0,xmm4 add ebx,DWORD PTR [esp] and esi,edi xor edi,eax shrd edx,edx,7 vpxor xmm0,xmm0,xmm1 vmovdqa XMMWORD PTR 64[esp],xmm4 mov ebp,ecx xor esi,edi vmovdqa xmm4,xmm3 vpaddd xmm3,xmm3,xmm7 shld ecx,ecx,5 add ebx,esi vpxor xmm0,xmm0,xmm2 xor ebp,edx xor edx,edi add ebx,ecx add eax,DWORD PTR 4[esp] vpsrld xmm2,xmm0,30 vmovdqa XMMWORD PTR 48[esp],xmm3 and ebp,edx xor edx,edi shrd ecx,ecx,7 mov esi,ebx vpslld xmm0,xmm0,2 xor ebp,edx shld ebx,ebx,5 add eax,ebp xor esi,ecx xor ecx,edx add eax,ebx add edi,DWORD PTR 8[esp] and esi,ecx vpor xmm0,xmm0,xmm2 xor ecx,edx shrd ebx,ebx,7 vmovdqa xmm2,XMMWORD PTR 80[esp] mov ebp,eax xor esi,ecx shld eax,eax,5 add edi,esi xor ebp,ebx xor ebx,ecx add edi,eax add edx,DWORD PTR 12[esp] and ebp,ebx xor ebx,ecx shrd eax,eax,7 mov esi,edi xor ebp,ebx shld edi,edi,5 add edx,ebp xor esi,eax xor eax,ebx add edx,edi vpalignr xmm3,xmm0,xmm7,8 vpxor xmm1,xmm1,xmm5 add ecx,DWORD PTR 16[esp] and esi,eax xor eax,ebx shrd edi,edi,7 vpxor xmm1,xmm1,xmm2 vmovdqa XMMWORD PTR 80[esp],xmm5 mov ebp,edx xor esi,eax vmovdqa xmm5,xmm4 vpaddd xmm4,xmm4,xmm0 shld edx,edx,5 add ecx,esi vpxor xmm1,xmm1,xmm3 xor ebp,edi xor edi,eax add ecx,edx add ebx,DWORD PTR 20[esp] vpsrld xmm3,xmm1,30 vmovdqa XMMWORD PTR [esp],xmm4 and ebp,edi xor edi,eax shrd edx,edx,7 mov esi,ecx vpslld xmm1,xmm1,2 xor ebp,edi shld ecx,ecx,5 add ebx,ebp xor esi,edx xor edx,edi add ebx,ecx add eax,DWORD PTR 24[esp] and esi,edx vpor xmm1,xmm1,xmm3 xor edx,edi shrd ecx,ecx,7 vmovdqa xmm3,XMMWORD PTR 96[esp] mov ebp,ebx xor esi,edx shld ebx,ebx,5 add eax,esi xor ebp,ecx xor ecx,edx add eax,ebx add edi,DWORD PTR 28[esp] and ebp,ecx xor ecx,edx shrd ebx,ebx,7 mov esi,eax xor ebp,ecx shld eax,eax,5 add edi,ebp xor esi,ebx xor ebx,ecx add edi,eax vpalignr xmm4,xmm1,xmm0,8 vpxor xmm2,xmm2,xmm6 add edx,DWORD PTR 32[esp] and esi,ebx xor ebx,ecx shrd eax,eax,7 vpxor xmm2,xmm2,xmm3 vmovdqa XMMWORD PTR 96[esp],xmm6 mov ebp,edi xor esi,ebx vmovdqa xmm6,xmm5 vpaddd xmm5,xmm5,xmm1 shld edi,edi,5 add edx,esi vpxor xmm2,xmm2,xmm4 xor ebp,eax xor eax,ebx add edx,edi add ecx,DWORD PTR 36[esp] vpsrld xmm4,xmm2,30 vmovdqa XMMWORD PTR 16[esp],xmm5 and ebp,eax xor eax,ebx shrd edi,edi,7 mov esi,edx vpslld xmm2,xmm2,2 xor ebp,eax shld edx,edx,5 add ecx,ebp xor esi,edi xor edi,eax add ecx,edx add ebx,DWORD PTR 40[esp] and esi,edi vpor xmm2,xmm2,xmm4 xor edi,eax shrd edx,edx,7 vmovdqa xmm4,XMMWORD PTR 64[esp] mov ebp,ecx xor esi,edi shld ecx,ecx,5 add ebx,esi xor ebp,edx xor edx,edi add ebx,ecx add eax,DWORD PTR 44[esp] and ebp,edx xor edx,edi shrd ecx,ecx,7 mov esi,ebx xor ebp,edx shld ebx,ebx,5 add eax,ebp xor esi,edx add eax,ebx vpalignr xmm5,xmm2,xmm1,8 vpxor xmm3,xmm3,xmm7 add edi,DWORD PTR 48[esp] xor esi,ecx mov ebp,eax shld eax,eax,5 vpxor xmm3,xmm3,xmm4 vmovdqa XMMWORD PTR 64[esp],xmm7 add edi,esi xor ebp,ecx vmovdqa xmm7,xmm6 vpaddd xmm6,xmm6,xmm2 shrd ebx,ebx,7 add edi,eax vpxor xmm3,xmm3,xmm5 add edx,DWORD PTR 52[esp] xor ebp,ebx mov esi,edi shld edi,edi,5 vpsrld xmm5,xmm3,30 vmovdqa XMMWORD PTR 32[esp],xmm6 add edx,ebp xor esi,ebx shrd eax,eax,7 add edx,edi vpslld xmm3,xmm3,2 add ecx,DWORD PTR 56[esp] xor esi,eax mov ebp,edx shld edx,edx,5 add ecx,esi xor ebp,eax shrd edi,edi,7 add ecx,edx vpor xmm3,xmm3,xmm5 add ebx,DWORD PTR 60[esp] xor ebp,edi mov esi,ecx shld ecx,ecx,5 add ebx,ebp xor esi,edi shrd edx,edx,7 add ebx,ecx add eax,DWORD PTR [esp] vpaddd xmm7,xmm7,xmm3 xor esi,edx mov ebp,ebx shld ebx,ebx,5 add eax,esi vmovdqa XMMWORD PTR 48[esp],xmm7 xor ebp,edx shrd ecx,ecx,7 add eax,ebx add edi,DWORD PTR 4[esp] xor ebp,ecx mov esi,eax shld eax,eax,5 add edi,ebp xor esi,ecx shrd ebx,ebx,7 add edi,eax add edx,DWORD PTR 8[esp] xor esi,ebx mov ebp,edi shld edi,edi,5 add edx,esi xor ebp,ebx shrd eax,eax,7 add edx,edi add ecx,DWORD PTR 12[esp] xor ebp,eax mov esi,edx shld edx,edx,5 add ecx,ebp xor esi,eax shrd edi,edi,7 add ecx,edx mov ebp,DWORD PTR 196[esp] cmp ebp,DWORD PTR 200[esp] je $L010done vmovdqa xmm7,XMMWORD PTR 160[esp] vmovdqa xmm6,XMMWORD PTR 176[esp] vmovdqu xmm0,XMMWORD PTR [ebp] vmovdqu xmm1,XMMWORD PTR 16[ebp] vmovdqu xmm2,XMMWORD PTR 32[ebp] vmovdqu xmm3,XMMWORD PTR 48[ebp] add ebp,64 vpshufb xmm0,xmm0,xmm6 mov DWORD PTR 196[esp],ebp vmovdqa XMMWORD PTR 96[esp],xmm7 add ebx,DWORD PTR 16[esp] xor esi,edi vpshufb xmm1,xmm1,xmm6 mov ebp,ecx shld ecx,ecx,5 vpaddd xmm4,xmm0,xmm7 add ebx,esi xor ebp,edi shrd edx,edx,7 add ebx,ecx vmovdqa XMMWORD PTR [esp],xmm4 add eax,DWORD PTR 20[esp] xor ebp,edx mov esi,ebx shld ebx,ebx,5 add eax,ebp xor esi,edx shrd ecx,ecx,7 add eax,ebx add edi,DWORD PTR 24[esp] xor esi,ecx mov ebp,eax shld eax,eax,5 add edi,esi xor ebp,ecx shrd ebx,ebx,7 add edi,eax add edx,DWORD PTR 28[esp] xor ebp,ebx mov esi,edi shld edi,edi,5 add edx,ebp xor esi,ebx shrd eax,eax,7 add edx,edi add ecx,DWORD PTR 32[esp] xor esi,eax vpshufb xmm2,xmm2,xmm6 mov ebp,edx shld edx,edx,5 vpaddd xmm5,xmm1,xmm7 add ecx,esi xor ebp,eax shrd edi,edi,7 add ecx,edx vmovdqa XMMWORD PTR 16[esp],xmm5 add ebx,DWORD PTR 36[esp] xor ebp,edi mov esi,ecx shld ecx,ecx,5 add ebx,ebp xor esi,edi shrd edx,edx,7 add ebx,ecx add eax,DWORD PTR 40[esp] xor esi,edx mov ebp,ebx shld ebx,ebx,5 add eax,esi xor ebp,edx shrd ecx,ecx,7 add eax,ebx add edi,DWORD PTR 44[esp] xor ebp,ecx mov esi,eax shld eax,eax,5 add edi,ebp xor esi,ecx shrd ebx,ebx,7 add edi,eax add edx,DWORD PTR 48[esp] xor esi,ebx vpshufb xmm3,xmm3,xmm6 mov ebp,edi shld edi,edi,5 vpaddd xmm6,xmm2,xmm7 add edx,esi xor ebp,ebx shrd eax,eax,7 add edx,edi vmovdqa XMMWORD PTR 32[esp],xmm6 add ecx,DWORD PTR 52[esp] xor ebp,eax mov esi,edx shld edx,edx,5 add ecx,ebp xor esi,eax shrd edi,edi,7 add ecx,edx add ebx,DWORD PTR 56[esp] xor esi,edi mov ebp,ecx shld ecx,ecx,5 add ebx,esi xor ebp,edi shrd edx,edx,7 add ebx,ecx add eax,DWORD PTR 60[esp] xor ebp,edx mov esi,ebx shld ebx,ebx,5 add eax,ebp shrd ecx,ecx,7 add eax,ebx mov ebp,DWORD PTR 192[esp] add eax,DWORD PTR [ebp] add esi,DWORD PTR 4[ebp] add ecx,DWORD PTR 8[ebp] mov DWORD PTR [ebp],eax add edx,DWORD PTR 12[ebp] mov DWORD PTR 4[ebp],esi add edi,DWORD PTR 16[ebp] mov ebx,ecx mov DWORD PTR 8[ebp],ecx xor ebx,edx mov DWORD PTR 12[ebp],edx mov DWORD PTR 16[ebp],edi mov ebp,esi and esi,ebx mov ebx,ebp jmp $L009loop ALIGN 16 $L010done: add ebx,DWORD PTR 16[esp] xor esi,edi mov ebp,ecx shld ecx,ecx,5 add ebx,esi xor ebp,edi shrd edx,edx,7 add ebx,ecx add eax,DWORD PTR 20[esp] xor ebp,edx mov esi,ebx shld ebx,ebx,5 add eax,ebp xor esi,edx shrd ecx,ecx,7 add eax,ebx add edi,DWORD PTR 24[esp] xor esi,ecx mov ebp,eax shld eax,eax,5 add edi,esi xor ebp,ecx shrd ebx,ebx,7 add edi,eax add edx,DWORD PTR 28[esp] xor ebp,ebx mov esi,edi shld edi,edi,5 add edx,ebp xor esi,ebx shrd eax,eax,7 add edx,edi add ecx,DWORD PTR 32[esp] xor esi,eax mov ebp,edx shld edx,edx,5 add ecx,esi xor ebp,eax shrd edi,edi,7 add ecx,edx add ebx,DWORD PTR 36[esp] xor ebp,edi mov esi,ecx shld ecx,ecx,5 add ebx,ebp xor esi,edi shrd edx,edx,7 add ebx,ecx add eax,DWORD PTR 40[esp] xor esi,edx mov ebp,ebx shld ebx,ebx,5 add eax,esi xor ebp,edx shrd ecx,ecx,7 add eax,ebx add edi,DWORD PTR 44[esp] xor ebp,ecx mov esi,eax shld eax,eax,5 add edi,ebp xor esi,ecx shrd ebx,ebx,7 add edi,eax add edx,DWORD PTR 48[esp] xor esi,ebx mov ebp,edi shld edi,edi,5 add edx,esi xor ebp,ebx shrd eax,eax,7 add edx,edi add ecx,DWORD PTR 52[esp] xor ebp,eax mov esi,edx shld edx,edx,5 add ecx,ebp xor esi,eax shrd edi,edi,7 add ecx,edx add ebx,DWORD PTR 56[esp] xor esi,edi mov ebp,ecx shld ecx,ecx,5 add ebx,esi xor ebp,edi shrd edx,edx,7 add ebx,ecx add eax,DWORD PTR 60[esp] xor ebp,edx mov esi,ebx shld ebx,ebx,5 add eax,ebp shrd ecx,ecx,7 add eax,ebx vzeroall mov ebp,DWORD PTR 192[esp] add eax,DWORD PTR [ebp] mov esp,DWORD PTR 204[esp] add esi,DWORD PTR 4[ebp] add ecx,DWORD PTR 8[ebp] mov DWORD PTR [ebp],eax add edx,DWORD PTR 12[ebp] mov DWORD PTR 4[ebp],esi add edi,DWORD PTR 16[ebp] mov DWORD PTR 8[ebp],ecx mov DWORD PTR 12[ebp],edx mov DWORD PTR 16[ebp],edi pop edi pop esi pop ebx pop ebp ret __sha1_block_data_order_avx ENDP ALIGN 64 $LK_XX_XX:: DD 1518500249,1518500249,1518500249,1518500249 DD 1859775393,1859775393,1859775393,1859775393 DD 2400959708,2400959708,2400959708,2400959708 DD 3395469782,3395469782,3395469782,3395469782 DD 66051,67438087,134810123,202182159 DB 15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 DB 83,72,65,49,32,98,108,111,99,107,32,116,114,97,110,115 DB 102,111,114,109,32,102,111,114,32,120,56,54,44,32,67,82 DB 89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112 DB 114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0 .text$ ENDS .bss SEGMENT 'BSS' COMM _OPENSSL_ia32cap_P:DWORD:4 .bss ENDS END