📄 x64masm.asm
字号:
imul edx, 54655307hrol edx, 7mov [rsp + 8*8 + ((12+0)-((12+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((13+0)-((13+0)/(10))*(10))*4]mov [rdi + (((13)-((13)/(4))*(4))*20 + (13/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + ecx]xor r11d, edxmov [rdi + (((13)-((13)/(4))*(4))*20 + (13/4)) * 4], r11dmov r11d, 1and r11d, ecxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul ecx, 54655307hrol ecx, 7mov [rsp + 8*8 + ((13+0)-((13+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((14+0)-((14+0)/(10))*(10))*4]mov [rdi + (((14)-((14)/(4))*(4))*20 + (14/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + edx]xor r11d, ecxmov [rdi + (((14)-((14)/(4))*(4))*20 + (14/4)) * 4], r11dmov r11d, 1and r11d, edxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul edx, 54655307hrol edx, 7mov [rsp + 8*8 + ((14+0)-((14+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((15+0)-((15+0)/(10))*(10))*4]mov [rdi + (((15)-((15)/(4))*(4))*20 + (15/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + ecx]xor r11d, edxmov [rdi + (((15)-((15)/(4))*(4))*20 + (15/4)) * 4], r11dmov r11d, 1and r11d, ecxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul ecx, 54655307hrol ecx, 7mov [rsp + 8*8 + ((15+0)-((15+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((16+0)-((16+0)/(10))*(10))*4]mov [rdi + (((16)-((16)/(4))*(4))*20 + (16/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + edx]xor r11d, ecxmov [rdi + (((16)-((16)/(4))*(4))*20 + (16/4)) * 4], r11dmov r11d, 1and r11d, edxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul edx, 54655307hrol edx, 7mov [rsp + 8*8 + ((16+0)-((16+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((17+0)-((17+0)/(10))*(10))*4]mov [rdi + (((17)-((17)/(4))*(4))*20 + (17/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + ecx]xor r11d, edxmov [rdi + (((17)-((17)/(4))*(4))*20 + (17/4)) * 4], r11dmov r11d, 1and r11d, ecxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul ecx, 54655307hrol ecx, 7mov [rsp + 8*8 + ((17+0)-((17+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((18+0)-((18+0)/(10))*(10))*4]mov [rdi + (((18)-((18)/(4))*(4))*20 + (18/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + edx]xor r11d, ecxmov [rdi + (((18)-((18)/(4))*(4))*20 + (18/4)) * 4], r11dmov r11d, 1and r11d, edxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul edx, 54655307hrol edx, 7mov [rsp + 8*8 + ((18+0)-((18+0)/(10))*(10))*4], r10dmov eax, [rsp + 8*8 + ((19+0)-((19+0)/(10))*(10))*4]mov [rdi + (((19)-((19)/(4))*(4))*20 + (19/4)) * 4 + 80*4], eaxrol eax, 8lea r11d, [r10d + ecx]xor r11d, edxmov [rdi + (((19)-((19)/(4))*(4))*20 + (19/4)) * 4], r11dmov r11d, 1and r11d, ecxneg r11dand r11d, r10dxor r10d, eaxmovzx eax, alxor 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, r11dmovzx r11d, alshr eax, 8xor r10d, [rsi+1024+r11*4]xor r10d, eaximul ecx, 54655307hrol ecx, 7mov [rsp + 8*8 + ((19+0)-((19+0)/(10))*(10))*4], r10dadd rdi, 5*4cmp rdi, QWORD PTR [rsp+4*8]jne label0mov 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, xmm0pand xmm0, xmm2pxor xmm0, xmm3pxor xmm2, xmm1pxor xmm2, xmm0por xmm3, xmm4pxor xmm3, xmm1pxor xmm4, xmm2movdqa xmm1, xmm3por xmm3, xmm4pxor xmm3, xmm0pand xmm0, xmm1pxor xmm4, xmm0pxor xmm1, xmm3pxor xmm1, xmm4pxor xmm4, xmm7pxor xmm2, [rdi+80*4]pxor xmm3, [rdi+80*5]pxor xmm1, [rdi+80*6]pxor xmm4, [rdi+80*7]cmp rsi, 16jl label4movdqa xmm6, xmm2punpckldq xmm2, xmm3movdqa xmm5, xmm1punpckldq xmm1, xmm4movdqa xmm0, xmm2punpcklqdq xmm2, xmm1punpckhqdq xmm0, xmm1punpckhdq xmm6, xmm3punpckhdq xmm5, xmm4movdqa xmm3, xmm6punpcklqdq xmm6, xmm5punpckhqdq xmm3, xmm5test rax, raxjz labelSSE2_Sosemanuk_Output3test rax, 15jnz labelSSE2_Sosemanuk_Output7pxor xmm2, [rax+0*16]pxor xmm0, [rax+1*16]pxor xmm6, [rax+2*16]pxor xmm3, [rax+3*16]add rax, 4*16jmp labelSSE2_Sosemanuk_Output3labelSSE2_Sosemanuk_Output7:movdqu xmm1, [rax+0*16]pxor xmm2, xmm1movdqu xmm1, [rax+1*16]pxor xmm0, xmm1movdqu xmm1, [rax+2*16]pxor xmm6, xmm1movdqu xmm1, [rax+3*16]pxor xmm3, xmm1add rax, 4*16labelSSE2_Sosemanuk_Output3:test r11, 15jnz labelSSE2_Sosemanuk_Output8movdqa [r11+0*16], xmm2movdqa [r11+1*16], xmm0movdqa [r11+2*16], xmm6movdqa [r11+3*16], xmm3jmp labelSSE2_Sosemanuk_Output9labelSSE2_Sosemanuk_Output8:movdqu [r11+0*16], xmm2movdqu [r11+1*16], xmm0movdqu [r11+2*16], xmm6movdqu [r11+3*16], xmm3labelSSE2_Sosemanuk_Output9:add r11, 4*16add rdi, 4*4sub rsi, 16jnz label1mov rsi, QWORD PTR [rsp+3*8]sub rsi, 80jz label6mov QWORD PTR [rsp+3*8], rsimov QWORD PTR [rsp+2*8], raxmov QWORD PTR [rsp+1*8], r11jmp label2label4:test rax, raxjz label5movd xmm0, dword ptr [rax+0*4]pxor xmm2, xmm0movd xmm0, dword ptr [rax+1*4]pxor xmm3, xmm0movd xmm0, dword ptr [rax+2*4]pxor xmm1, xmm0movd xmm0, dword ptr [rax+3*4]pxor xmm4, xmm0add rax, 16label5:movd dword ptr [r11+0*4], xmm2movd dword ptr [r11+1*4], xmm3movd dword ptr [r11+2*4], xmm1movd dword ptr [r11+3*4], xmm4sub rsi, 4jz label6add r11, 16psrldq xmm2, 4psrldq xmm3, 4psrldq xmm1, 4psrldq xmm4, 4jmp label4label6:mov r10, QWORD PTR [rsp+6*8]movdqa xmm0, [rsp + 8*8+0*16]movdqa [r10+0*16], xmm0movdqa xmm0, [rsp + 8*8+1*16]movdqa [r10+1*16], xmm0movq xmm0, QWORD PTR [rsp + 8*8+2*16]movq QWORD PTR [r10+2*16], xmm0mov [r10+10*4], ecxmov [r10+11*4], edxmovdqa xmm6, [rsp + 02f0h]movdqa xmm7, [rsp + 0300h]add rsp, 80*4*2+12*4+8*8 + 2*16+8pop rdipop rsiretSosemanuk_OperateKeystream ENDPPanama_SSE2_Pull PROC FRAMEalloc_stack(2*16+8)save_xmm128 xmm6, 0hsave_xmm128 xmm7, 10h.endprologshl rcx, 5jz label5mov r10d, [rdx+4*17]add rcx, r10mov rdi, rcxmovdqa 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, xmm2movss xmm6, xmm3pshufd xmm5, xmm6, 0*64+3*16+2*4+1movd xmm6, eaxmovdqa xmm7, xmm3movss xmm7, xmm6pshufd xmm6, xmm7, 0*64+3*16+2*4+1movd ecx, xmm2not ecxmovd r11d, xmm3or ecx, r11dxor eax, ecxpcmpeqb xmm7, xmm7pxor xmm7, xmm1por xmm7, xmm2pxor xmm7, xmm3movd ecx, xmm7rol ecx, (((((5*1) MOD (17))*(((5*1) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(1)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*5) MOD (17))*(((5*5) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(5)) MOD (17)))*13+16)) MOD (17))*4], ecxpunpckhqdq xmm7, xmm7movd ecx, xmm7rol ecx, (((((5*9) MOD (17))*(((5*9) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(9)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*13) MOD (17))*(((5*13) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(13)) MOD (17)))*13+16)) MOD (17))*4], ecxpcmpeqb xmm7, xmm7pxor xmm7, xmm0por xmm7, xmm1pxor xmm7, xmm2movd ecx, xmm7rol ecx, (((((5*2) MOD (17))*(((5*2) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(2)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*6) MOD (17))*(((5*6) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(6)) MOD (17)))*13+16)) MOD (17))*4], ecxpunpckhqdq xmm7, xmm7movd ecx, xmm7rol ecx, (((((5*10) MOD (17))*(((5*10) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(10)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*14) MOD (17))*(((5*14) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(14)) MOD (17)))*13+16)) MOD (17))*4], ecxpcmpeqb xmm7, xmm7pxor xmm7, xmm6por xmm7, xmm0pxor xmm7, xmm1movd ecx, xmm7rol ecx, (((((5*3) MOD (17))*(((5*3) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(3)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*7) MOD (17))*(((5*7) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(7)) MOD (17)))*13+16)) MOD (17))*4], ecxpunpckhqdq xmm7, xmm7movd ecx, xmm7rol ecx, (((((5*11) MOD (17))*(((5*11) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(11)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*15) MOD (17))*(((5*15) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(15)) MOD (17)))*13+16)) MOD (17))*4], ecxpcmpeqb xmm7, xmm7pxor xmm7, xmm5por xmm7, xmm6pxor xmm7, xmm0movd ecx, xmm7rol ecx, (((((5*4) MOD (17))*(((5*4) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(4)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*8) MOD (17))*(((5*8) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(8)) MOD (17)))*13+16)) MOD (17))*4], ecxpunpckhqdq xmm7, xmm7movd ecx, xmm7rol ecx, (((((5*12) MOD (17))*(((5*12) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(12)) MOD (17)))*13+16)) MOD (17))*4], ecxpshuflw xmm7, xmm7, 1*64+0*16+3*4+2movd ecx, xmm7rol ecx, (((((5*16) MOD (17))*(((5*16) MOD (17))+1)/2)) MOD (32))mov [rdx+((((((5*(16)) MOD (17)))*13+16)) MOD (17))*4], ecxmovdqa xmm4, xmm3punpcklqdq xmm3, xmm2punpckhdq xmm4, xmm2movdqa xmm2, xmm1punpcklqdq xmm1, xmm0punpckhdq xmm2, xmm0test r8, r8jz label0movdqa xmm6, xmm4punpcklqdq xmm4, xmm2punpckhqdq xmm6, xmm2test r9, 15jnz label2test r9, r9jz label1pxor xmm4, [r9]pxor xmm6, [r9+16]add r9, 32jmp label1label2:movdqu xmm0, [r9]movdqu xmm2, [r9+16]pxor xmm4, xmm0pxor xmm6, xmm2add r9, 32label1:test r8, 15jnz label3movdqa xmmword ptr [r8], xmm4movdqa xmmword ptr [r8+16], xmm6add r8, 32jmp label0label3:movdqu xmmword ptr [r8], xmm4movdqu xmmword ptr [r8+16], xmm6add r8, 32label0:lea rcx, [r10 + 32]and rcx, 31*32lea r11, [r10 + (32-24)*32]and r11, 31*32movdqa xmm0, xmmword ptr [rdx+20*4+rcx+0*8]pxor xmm3, xmm0pshufd xmm0, xmm0, 2*64+3*16+0*4+1movdqa xmmword ptr [rdx+20*4+rcx+0*8], xmm3pxor xmm0, xmmword ptr [rdx+20*4+r11+2*8]movdqa xmmword ptr [rdx+20*4+r11+2*8], xmm0movdqa xmm4, xmmword ptr [rdx+20*4+rcx+2*8]pxor xmm1, xmm4movdqa xmmword ptr [rdx+20*4+rcx+2*8], xmm1pxor xmm4, xmmword ptr [rdx+20*4+r11+0*8]movdqa xmmword ptr [rdx+20*4+r11+0*8], xmm4movdqa 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, eaxmovdqa xmm7, xmm3movss xmm7, xmm6movdqa xmm6, xmm2movss xmm6, xmm3movdqa xmm5, xmm1movss xmm5, xmm2movdqa xmm4, xmm0movss xmm4, xmm1pshufd xmm7, xmm7, 0*64+3*16+2*4+1pshufd xmm6, xmm6, 0*64+3*16+2*4+1pshufd xmm5, xmm5, 0*64+3*16+2*4+1pshufd xmm4, xmm4, 0*64+3*16+2*4+1xor eax, 1movd ecx, xmm0xor eax, ecxmovd ecx, xmm3xor eax, ecxpxor xmm3, xmm2pxor xmm2, xmm1pxor xmm1, xmm0pxor xmm0, xmm7pxor xmm3, xmm7pxor xmm2, xmm6pxor xmm1, xmm5pxor xmm0, xmm4lea rcx, [r10 + (32-4)*32]and rcx, 31*32lea r11, [r10 + 16*32]and r11, 31*32movdqa xmm4, xmmword ptr [rdx+20*4+rcx+0*16]movdqa xmm5, xmmword ptr [rdx+20*4+r11+0*16]movdqa xmm6, xmm4punpcklqdq xmm4, xmm5punpckhqdq xmm6, xmm5pxor xmm3, xmm4pxor xmm2, xmm6movdqa xmm4, xmmword ptr [rdx+20*4+rcx+1*16]movdqa xmm5, xmmword ptr [rdx+20*4+r11+1*16]movdqa xmm6, xmm4punpcklqdq xmm4, xmm5punpckhqdq xmm6, xmm5pxor xmm1, xmm4pxor xmm0, xmm6add r10, 32cmp r10, rdijne label4mov [rdx+4*16], eaxmovdqa xmmword ptr [rdx+3*16], xmm3movdqa xmmword ptr [rdx+2*16], xmm2movdqa xmmword ptr [rdx+1*16], xmm1movdqa xmmword ptr [rdx+0*16], xmm0label5:movdqa xmm6, [rsp + 0h]movdqa xmm7, [rsp + 10h]add rsp, 2*16+8retPanama_SSE2_Pull ENDP_TEXT ENDSEND
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -