?? x64masm.asm
字號(hào):
mov [rdi + (((8)-((8)/(4))*(4))*20 + (8/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + edx]
xor r11d, ecx
mov [rdi + (((8)-((8)/(4))*(4))*20 + (8/4)) * 4], r11d
mov r11d, 1
and r11d, edx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((8+3)-((8+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((8+2)-((8+2)/(10))*(10))*4]
add ecx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul edx, 54655307h
rol edx, 7
mov [rsp + 8*8 + ((8+0)-((8+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((9+0)-((9+0)/(10))*(10))*4]
mov [rdi + (((9)-((9)/(4))*(4))*20 + (9/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + ecx]
xor r11d, edx
mov [rdi + (((9)-((9)/(4))*(4))*20 + (9/4)) * 4], r11d
mov r11d, 1
and r11d, ecx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((9+3)-((9+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((9+2)-((9+2)/(10))*(10))*4]
add edx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul ecx, 54655307h
rol ecx, 7
mov [rsp + 8*8 + ((9+0)-((9+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((10+0)-((10+0)/(10))*(10))*4]
mov [rdi + (((10)-((10)/(4))*(4))*20 + (10/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + edx]
xor r11d, ecx
mov [rdi + (((10)-((10)/(4))*(4))*20 + (10/4)) * 4], r11d
mov r11d, 1
and r11d, edx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((10+3)-((10+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((10+2)-((10+2)/(10))*(10))*4]
add ecx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul edx, 54655307h
rol edx, 7
mov [rsp + 8*8 + ((10+0)-((10+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((11+0)-((11+0)/(10))*(10))*4]
mov [rdi + (((11)-((11)/(4))*(4))*20 + (11/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + ecx]
xor r11d, edx
mov [rdi + (((11)-((11)/(4))*(4))*20 + (11/4)) * 4], r11d
mov r11d, 1
and r11d, ecx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((11+3)-((11+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((11+2)-((11+2)/(10))*(10))*4]
add edx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul ecx, 54655307h
rol ecx, 7
mov [rsp + 8*8 + ((11+0)-((11+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((12+0)-((12+0)/(10))*(10))*4]
mov [rdi + (((12)-((12)/(4))*(4))*20 + (12/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + edx]
xor r11d, ecx
mov [rdi + (((12)-((12)/(4))*(4))*20 + (12/4)) * 4], r11d
mov r11d, 1
and r11d, edx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((12+3)-((12+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((12+2)-((12+2)/(10))*(10))*4]
add ecx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul edx, 54655307h
rol edx, 7
mov [rsp + 8*8 + ((12+0)-((12+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((13+0)-((13+0)/(10))*(10))*4]
mov [rdi + (((13)-((13)/(4))*(4))*20 + (13/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + ecx]
xor r11d, edx
mov [rdi + (((13)-((13)/(4))*(4))*20 + (13/4)) * 4], r11d
mov r11d, 1
and r11d, ecx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((13+3)-((13+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((13+2)-((13+2)/(10))*(10))*4]
add edx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul ecx, 54655307h
rol ecx, 7
mov [rsp + 8*8 + ((13+0)-((13+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((14+0)-((14+0)/(10))*(10))*4]
mov [rdi + (((14)-((14)/(4))*(4))*20 + (14/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + edx]
xor r11d, ecx
mov [rdi + (((14)-((14)/(4))*(4))*20 + (14/4)) * 4], r11d
mov r11d, 1
and r11d, edx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((14+3)-((14+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((14+2)-((14+2)/(10))*(10))*4]
add ecx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul edx, 54655307h
rol edx, 7
mov [rsp + 8*8 + ((14+0)-((14+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((15+0)-((15+0)/(10))*(10))*4]
mov [rdi + (((15)-((15)/(4))*(4))*20 + (15/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + ecx]
xor r11d, edx
mov [rdi + (((15)-((15)/(4))*(4))*20 + (15/4)) * 4], r11d
mov r11d, 1
and r11d, ecx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((15+3)-((15+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((15+2)-((15+2)/(10))*(10))*4]
add edx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul ecx, 54655307h
rol ecx, 7
mov [rsp + 8*8 + ((15+0)-((15+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((16+0)-((16+0)/(10))*(10))*4]
mov [rdi + (((16)-((16)/(4))*(4))*20 + (16/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + edx]
xor r11d, ecx
mov [rdi + (((16)-((16)/(4))*(4))*20 + (16/4)) * 4], r11d
mov r11d, 1
and r11d, edx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((16+3)-((16+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((16+2)-((16+2)/(10))*(10))*4]
add ecx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul edx, 54655307h
rol edx, 7
mov [rsp + 8*8 + ((16+0)-((16+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((17+0)-((17+0)/(10))*(10))*4]
mov [rdi + (((17)-((17)/(4))*(4))*20 + (17/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + ecx]
xor r11d, edx
mov [rdi + (((17)-((17)/(4))*(4))*20 + (17/4)) * 4], r11d
mov r11d, 1
and r11d, ecx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((17+3)-((17+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((17+2)-((17+2)/(10))*(10))*4]
add edx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul ecx, 54655307h
rol ecx, 7
mov [rsp + 8*8 + ((17+0)-((17+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((18+0)-((18+0)/(10))*(10))*4]
mov [rdi + (((18)-((18)/(4))*(4))*20 + (18/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + edx]
xor r11d, ecx
mov [rdi + (((18)-((18)/(4))*(4))*20 + (18/4)) * 4], r11d
mov r11d, 1
and r11d, edx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((18+3)-((18+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((18+2)-((18+2)/(10))*(10))*4]
add ecx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul edx, 54655307h
rol edx, 7
mov [rsp + 8*8 + ((18+0)-((18+0)/(10))*(10))*4], r10d
mov eax, [rsp + 8*8 + ((19+0)-((19+0)/(10))*(10))*4]
mov [rdi + (((19)-((19)/(4))*(4))*20 + (19/4)) * 4 + 80*4], eax
rol eax, 8
lea r11d, [r10d + ecx]
xor r11d, edx
mov [rdi + (((19)-((19)/(4))*(4))*20 + (19/4)) * 4], r11d
mov r11d, 1
and r11d, ecx
neg r11d
and r11d, r10d
xor r10d, eax
movzx eax, al
xor r10d, [rsi+rax*4]
mov eax, [rsp + 8*8 + ((19+3)-((19+3)/(10))*(10))*4]
xor r11d, [rsp + 8*8 + ((19+2)-((19+2)/(10))*(10))*4]
add edx, r11d
movzx r11d, al
shr eax, 8
xor r10d, [rsi+1024+r11*4]
xor r10d, eax
imul ecx, 54655307h
rol ecx, 7
mov [rsp + 8*8 + ((19+0)-((19+0)/(10))*(10))*4], r10d
add rdi, 5*4
cmp rdi, QWORD PTR [rsp+4*8]
jne label0
mov rax, QWORD PTR [rsp+2*8]
mov r11, QWORD PTR [rsp+1*8]
lea rdi, [rsp + 8*8 + 12*4]
mov rsi, QWORD PTR [rsp+7*8]
label1:
movdqa xmm0, [rdi+0*20*4]
movdqa xmm2, [rdi+2*20*4]
movdqa xmm3, [rdi+3*20*4]
movdqa xmm1, [rdi+1*20*4]
movdqa xmm4, xmm0
pand xmm0, xmm2
pxor xmm0, xmm3
pxor xmm2, xmm1
pxor xmm2, xmm0
por xmm3, xmm4
pxor xmm3, xmm1
pxor xmm4, xmm2
movdqa xmm1, xmm3
por xmm3, xmm4
pxor xmm3, xmm0
pand xmm0, xmm1
pxor xmm4, xmm0
pxor xmm1, xmm3
pxor xmm1, xmm4
pxor xmm4, xmm7
pxor xmm2, [rdi+80*4]
pxor xmm3, [rdi+80*5]
pxor xmm1, [rdi+80*6]
pxor xmm4, [rdi+80*7]
cmp rsi, 16
jl label4
movdqa xmm6, xmm2
punpckldq xmm2, xmm3
movdqa xmm5, xmm1
punpckldq xmm1, xmm4
movdqa xmm0, xmm2
punpcklqdq xmm2, xmm1
punpckhqdq xmm0, xmm1
punpckhdq xmm6, xmm3
punpckhdq xmm5, xmm4
movdqa xmm3, xmm6
punpcklqdq xmm6, xmm5
punpckhqdq xmm3, xmm5
test rax, rax
jz labelSSE2_Sosemanuk_Output3
test rax, 15
jnz labelSSE2_Sosemanuk_Output7
pxor xmm2, [rax+0*16]
pxor xmm0, [rax+1*16]
pxor xmm6, [rax+2*16]
pxor xmm3, [rax+3*16]
add rax, 4*16
jmp labelSSE2_Sosemanuk_Output3
labelSSE2_Sosemanuk_Output7:
movdqu xmm1, [rax+0*16]
pxor xmm2, xmm1
movdqu xmm1, [rax+1*16]
pxor xmm0, xmm1
movdqu xmm1, [rax+2*16]
pxor xmm6, xmm1
movdqu xmm1, [rax+3*16]
pxor xmm3, xmm1
add rax, 4*16
labelSSE2_Sosemanuk_Output3:
test r11, 15
jnz labelSSE2_Sosemanuk_Output8
movdqa [r11+0*16], xmm2
movdqa [r11+1*16], xmm0
movdqa [r11+2*16], xmm6
movdqa [r11+3*16], xmm3
jmp labelSSE2_Sosemanuk_Output9
labelSSE2_Sosemanuk_Output8:
movdqu [r11+0*16], xmm2
movdqu [r11+1*16], xmm0
movdqu [r11+2*16], xmm6
movdqu [r11+3*16], xmm3
labelSSE2_Sosemanuk_Output9:
add r11, 4*16
add rdi, 4*4
sub rsi, 16
jnz label1
mov rsi, QWORD PTR [rsp+3*8]
sub rsi, 80
jz label6
mov QWORD PTR [rsp+3*8], rsi
mov QWORD PTR [rsp+2*8], rax
mov QWORD PTR [rsp+1*8], r11
jmp label2
label4:
test rax, rax
jz label5
movd xmm0, dword ptr [rax+0*4]
pxor xmm2, xmm0
movd xmm0, dword ptr [rax+1*4]
pxor xmm3, xmm0
movd xmm0, dword ptr [rax+2*4]
pxor xmm1, xmm0
movd xmm0, dword ptr [rax+3*4]
pxor xmm4, xmm0
add rax, 16
label5:
movd dword ptr [r11+0*4], xmm2
movd dword ptr [r11+1*4], xmm3
movd dword ptr [r11+2*4], xmm1
movd dword ptr [r11+3*4], xmm4
sub rsi, 4
jz label6
add r11, 16
psrldq xmm2, 4
psrldq xmm3, 4
psrldq xmm1, 4
psrldq xmm4, 4
jmp label4
label6:
mov r10, QWORD PTR [rsp+6*8]
movdqa xmm0, [rsp + 8*8+0*16]
movdqa [r10+0*16], xmm0
movdqa xmm0, [rsp + 8*8+1*16]
movdqa [r10+1*16], xmm0
movq xmm0, QWORD PTR [rsp + 8*8+2*16]
movq QWORD PTR [r10+2*16], xmm0
mov [r10+10*4], ecx
mov [r10+11*4], edx
movdqa xmm6, [rsp + 02f0h]
movdqa xmm7, [rsp + 0300h]
add rsp, 80*4*2+12*4+8*8 + 2*16+8
pop rdi
pop rsi
ret
Sosemanuk_OperateKeystream ENDP
Panama_SSE2_Pull PROC FRAME
alloc_stack(2*16+8)
save_xmm128 xmm6, 0h
save_xmm128 xmm7, 10h
.endprolog
shl rcx, 5
jz label5
mov r10d, [rdx+4*17]
add rcx, r10
mov rdi, rcx
movdqa xmm0, xmmword ptr [rdx+0*16]
movdqa xmm1, xmmword ptr [rdx+1*16]
movdqa xmm2, xmmword ptr [rdx+2*16]
movdqa xmm3, xmmword ptr [rdx+3*16]
mov eax, dword ptr [rdx+4*16]
label4:
movdqa xmm6, xmm2
movss xmm6, xmm3
pshufd xmm5, xmm6, 0*64+3*16+2*4+1
movd xmm6, eax
movdqa xmm7, xmm3
movss xmm7, xmm6
pshufd xmm6, xmm7, 0*64+3*16+2*4+1
movd ecx, xmm2
not ecx
movd r11d, xmm3
or ecx, r11d
xor eax, ecx
pcmpeqb xmm7, xmm7
pxor xmm7, xmm1
por xmm7, xmm2
pxor xmm7, xmm3
movd ecx, xmm7
rol ecx, (((((5*1) MOD (17))*(((5*1) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(1)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*5) MOD (17))*(((5*5) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(5)) MOD (17)))*13+16)) MOD (17))*4], ecx
punpckhqdq xmm7, xmm7
movd ecx, xmm7
rol ecx, (((((5*9) MOD (17))*(((5*9) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(9)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*13) MOD (17))*(((5*13) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(13)) MOD (17)))*13+16)) MOD (17))*4], ecx
pcmpeqb xmm7, xmm7
pxor xmm7, xmm0
por xmm7, xmm1
pxor xmm7, xmm2
movd ecx, xmm7
rol ecx, (((((5*2) MOD (17))*(((5*2) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(2)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*6) MOD (17))*(((5*6) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(6)) MOD (17)))*13+16)) MOD (17))*4], ecx
punpckhqdq xmm7, xmm7
movd ecx, xmm7
rol ecx, (((((5*10) MOD (17))*(((5*10) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(10)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*14) MOD (17))*(((5*14) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(14)) MOD (17)))*13+16)) MOD (17))*4], ecx
pcmpeqb xmm7, xmm7
pxor xmm7, xmm6
por xmm7, xmm0
pxor xmm7, xmm1
movd ecx, xmm7
rol ecx, (((((5*3) MOD (17))*(((5*3) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(3)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*7) MOD (17))*(((5*7) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(7)) MOD (17)))*13+16)) MOD (17))*4], ecx
punpckhqdq xmm7, xmm7
movd ecx, xmm7
rol ecx, (((((5*11) MOD (17))*(((5*11) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(11)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*15) MOD (17))*(((5*15) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(15)) MOD (17)))*13+16)) MOD (17))*4], ecx
pcmpeqb xmm7, xmm7
pxor xmm7, xmm5
por xmm7, xmm6
pxor xmm7, xmm0
movd ecx, xmm7
rol ecx, (((((5*4) MOD (17))*(((5*4) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(4)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*8) MOD (17))*(((5*8) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(8)) MOD (17)))*13+16)) MOD (17))*4], ecx
punpckhqdq xmm7, xmm7
movd ecx, xmm7
rol ecx, (((((5*12) MOD (17))*(((5*12) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(12)) MOD (17)))*13+16)) MOD (17))*4], ecx
pshuflw xmm7, xmm7, 1*64+0*16+3*4+2
movd ecx, xmm7
rol ecx, (((((5*16) MOD (17))*(((5*16) MOD (17))+1)/2)) MOD (32))
mov [rdx+((((((5*(16)) MOD (17)))*13+16)) MOD (17))*4], ecx
movdqa xmm4, xmm3
punpcklqdq xmm3, xmm2
punpckhdq xmm4, xmm2
movdqa xmm2, xmm1
punpcklqdq xmm1, xmm0
punpckhdq xmm2, xmm0
test r8, r8
jz label0
movdqa xmm6, xmm4
punpcklqdq xmm4, xmm2
punpckhqdq xmm6, xmm2
test r9, 15
jnz label2
test r9, r9
jz label1
pxor xmm4, [r9]
pxor xmm6, [r9+16]
add r9, 32
jmp label1
label2:
movdqu xmm0, [r9]
movdqu xmm2, [r9+16]
pxor xmm4, xmm0
pxor xmm6, xmm2
add r9, 32
label1:
test r8, 15
jnz label3
movdqa xmmword ptr [r8], xmm4
movdqa xmmword ptr [r8+16], xmm6
add r8, 32
jmp label0
label3:
movdqu xmmword ptr [r8], xmm4
movdqu xmmword ptr [r8+16], xmm6
add r8, 32
label0:
lea rcx, [r10 + 32]
and rcx, 31*32
lea r11, [r10 + (32-24)*32]
and r11, 31*32
movdqa xmm0, xmmword ptr [rdx+20*4+rcx+0*8]
pxor xmm3, xmm0
pshufd xmm0, xmm0, 2*64+3*16+0*4+1
movdqa xmmword ptr [rdx+20*4+rcx+0*8], xmm3
pxor xmm0, xmmword ptr [rdx+20*4+r11+2*8]
movdqa xmmword ptr [rdx+20*4+r11+2*8], xmm0
movdqa xmm4, xmmword ptr [rdx+20*4+rcx+2*8]
pxor xmm1, xmm4
movdqa xmmword ptr [rdx+20*4+rcx+2*8], xmm1
pxor xmm4, xmmword ptr [rdx+20*4+r11+0*8]
movdqa xmmword ptr [rdx+20*4+r11+0*8], xmm4
movdqa xmm3, xmmword ptr [rdx+3*16]
movdqa xmm2, xmmword ptr [rdx+2*16]
movdqa xmm1, xmmword ptr [rdx+1*16]
movdqa xmm0, xmmword ptr [rdx+0*16]
movd xmm6, eax
movdqa xmm7, xmm3
movss xmm7, xmm6
movdqa xmm6, xmm2
movss xmm6, xmm3
movdqa xmm5, xmm1
movss xmm5, xmm2
movdqa xmm4, xmm0
movss xmm4, xmm1
pshufd xmm7, xmm7, 0*64+3*16+2*4+1
pshufd xmm6, xmm6, 0*64+3*16+2*4+1
pshufd xmm5, xmm5, 0*64+3*16+2*4+1
pshufd xmm4, xmm4, 0*64+3*16+2*4+1
xor eax, 1
movd ecx, xmm0
xor eax, ecx
movd ecx, xmm3
xor eax, ecx
pxor xmm3, xmm2
pxor xmm2, xmm1
pxor xmm1, xmm0
pxor xmm0, xmm7
pxor xmm3, xmm7
pxor xmm2, xmm6
pxor xmm1, xmm5
pxor xmm0, xmm4
lea rcx, [r10 + (32-4)*32]
and rcx, 31*32
lea r11, [r10 + 16*32]
and r11, 31*32
movdqa xmm4, xmmword ptr [rdx+20*4+rcx+0*16]
movdqa xmm5, xmmword ptr [rdx+20*4+r11+0*16]
movdqa xmm6, xmm4
punpcklqdq xmm4, xmm5
punpckhqdq xmm6, xmm5
pxor xmm3, xmm4
pxor xmm2, xmm6
movdqa xmm4, xmmword ptr [rdx+20*4+rcx+1*16]
movdqa xmm5, xmmword ptr [rdx+20*4+r11+1*16]
movdqa xmm6, xmm4
punpcklqdq xmm4, xmm5
punpckhqdq xmm6, xmm5
pxor xmm1, xmm4
pxor xmm0, xmm6
add r10, 32
cmp r10, rdi
jne label4
mov [rdx+4*16], eax
movdqa xmmword ptr [rdx+3*16], xmm3
movdqa xmmword ptr [rdx+2*16], xmm2
movdqa xmmword ptr [rdx+1*16], xmm1
movdqa xmmword ptr [rdx+0*16], xmm0
label5:
movdqa xmm6, [rsp + 0h]
movdqa xmm7, [rsp + 10h]
add rsp, 2*16+8
ret
Panama_SSE2_Pull ENDP
_TEXT ENDS
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -