You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

3987 lines
68 KiB

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