⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x64masm.asm

📁 lots Elliptic curve cryptography codes. Use Visual c++ to compile
💻 ASM
📖 第 1 页 / 共 3 页
字号:
include ksamd64.incEXTERNDEF s_sosemanukMulTables:FAR.CODEALIGN 8Salsa20_OperateKeystream PROC FRAMEmov r10, [rsp + 5*8]alloc_stack(10*16 + 32*16 + 8)save_xmm128 xmm6, 0200hsave_xmm128 xmm7, 0210hsave_xmm128 xmm8, 0220hsave_xmm128 xmm9, 0230hsave_xmm128 xmm10, 0240hsave_xmm128 xmm11, 0250hsave_xmm128 xmm12, 0260hsave_xmm128 xmm13, 0270hsave_xmm128 xmm14, 0280hsave_xmm128 xmm15, 0290h.endprologcmp r8, 4jl label5movdqa xmm0, [r10 + 0*16]movdqa xmm1, [r10 + 1*16]movdqa xmm2, [r10 + 2*16]movdqa xmm3, [r10 + 3*16]pshufd xmm4, xmm0, 0*64+0*16+0*4+0movdqa [rsp + (0*4+0)*16 + 256], xmm4pshufd xmm4, xmm0, 1*64+1*16+1*4+1movdqa [rsp + (0*4+1)*16 + 256], xmm4pshufd xmm4, xmm0, 2*64+2*16+2*4+2movdqa [rsp + (0*4+2)*16 + 256], xmm4pshufd xmm4, xmm0, 3*64+3*16+3*4+3movdqa [rsp + (0*4+3)*16 + 256], xmm4pshufd xmm4, xmm1, 0*64+0*16+0*4+0movdqa [rsp + (1*4+0)*16 + 256], xmm4pshufd xmm4, xmm1, 2*64+2*16+2*4+2movdqa [rsp + (1*4+2)*16 + 256], xmm4pshufd xmm4, xmm1, 3*64+3*16+3*4+3movdqa [rsp + (1*4+3)*16 + 256], xmm4pshufd xmm4, xmm2, 1*64+1*16+1*4+1movdqa [rsp + (2*4+1)*16 + 256], xmm4pshufd xmm4, xmm2, 2*64+2*16+2*4+2movdqa [rsp + (2*4+2)*16 + 256], xmm4pshufd xmm4, xmm2, 3*64+3*16+3*4+3movdqa [rsp + (2*4+3)*16 + 256], xmm4pshufd xmm4, xmm3, 0*64+0*16+0*4+0movdqa [rsp + (3*4+0)*16 + 256], xmm4pshufd xmm4, xmm3, 1*64+1*16+1*4+1movdqa [rsp + (3*4+1)*16 + 256], xmm4pshufd xmm4, xmm3, 2*64+2*16+2*4+2movdqa [rsp + (3*4+2)*16 + 256], xmm4pshufd xmm4, xmm3, 3*64+3*16+3*4+3movdqa [rsp + (3*4+3)*16 + 256], xmm4label1:mov eax, dword ptr [r10 + 8*4]mov r11d, dword ptr [r10 + 5*4]mov dword ptr [rsp + 8*16 + 0*4 + 256], eaxmov dword ptr [rsp + 5*16 + 0*4 + 256], r11dadd eax, 1adc r11d, 0mov dword ptr [rsp + 8*16 + 1*4 + 256], eaxmov dword ptr [rsp + 5*16 + 1*4 + 256], r11dadd eax, 1adc r11d, 0mov dword ptr [rsp + 8*16 + 2*4 + 256], eaxmov dword ptr [rsp + 5*16 + 2*4 + 256], r11dadd eax, 1adc r11d, 0mov dword ptr [rsp + 8*16 + 3*4 + 256], eaxmov dword ptr [rsp + 5*16 + 3*4 + 256], r11dadd eax, 1adc r11d, 0mov dword ptr [r10 + 8*4], eaxmov dword ptr [r10 + 5*4], r11dmovdqa xmm0, [rsp + 12*16 + 1*256]movdqa xmm4, [rsp + 13*16 + 1*256]movdqa xmm8, [rsp + 14*16 + 1*256]movdqa xmm12, [rsp + 15*16 + 1*256]movdqa xmm2, [rsp + 0*16 + 1*256]movdqa xmm6, [rsp + 1*16 + 1*256]movdqa xmm10, [rsp + 2*16 + 1*256]movdqa xmm14, [rsp + 3*16 + 1*256]paddd xmm0, xmm2paddd xmm4, xmm6paddd xmm8, xmm10paddd xmm12, xmm14movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12pslld xmm0, 7pslld xmm4, 7pslld xmm8, 7pslld xmm12, 7psrld xmm1, 32-7psrld xmm5, 32-7psrld xmm9, 32-7psrld xmm13, 32-7pxor xmm0, [rsp + 4*16 + 1*256]pxor xmm4, [rsp + 5*16 + 1*256]pxor xmm8, [rsp + 6*16 + 1*256]pxor xmm12, [rsp + 7*16 + 1*256]pxor xmm0, xmm1pxor xmm4, xmm5pxor xmm8, xmm9pxor xmm12, xmm13movdqa [rsp + 4*16], xmm0movdqa [rsp + 5*16], xmm4movdqa [rsp + 6*16], xmm8movdqa [rsp + 7*16], xmm12movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12paddd xmm0, xmm2paddd xmm4, xmm6paddd xmm8, xmm10paddd xmm12, xmm14movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12pslld xmm0, 9pslld xmm4, 9pslld xmm8, 9pslld xmm12, 9psrld xmm3, 32-9psrld xmm7, 32-9psrld xmm11, 32-9psrld xmm15, 32-9pxor xmm0, [rsp + 8*16 + 1*256]pxor xmm4, [rsp + 9*16 + 1*256]pxor xmm8, [rsp + 10*16 + 1*256]pxor xmm12, [rsp + 11*16 + 1*256]pxor xmm0, xmm3pxor xmm4, xmm7pxor xmm8, xmm11pxor xmm12, xmm15movdqa [rsp + 8*16], xmm0movdqa [rsp + 9*16], xmm4movdqa [rsp + 10*16], xmm8movdqa [rsp + 11*16], xmm12movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12paddd xmm0, xmm1paddd xmm4, xmm5paddd xmm8, xmm9paddd xmm12, xmm13movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12pslld xmm0, 13pslld xmm4, 13pslld xmm8, 13pslld xmm12, 13psrld xmm1, 32-13psrld xmm5, 32-13psrld xmm9, 32-13psrld xmm13, 32-13pxor xmm0, [rsp + 12*16 + 1*256]pxor xmm4, [rsp + 13*16 + 1*256]pxor xmm8, [rsp + 14*16 + 1*256]pxor xmm12, [rsp + 15*16 + 1*256]pxor xmm0, xmm1pxor xmm4, xmm5pxor xmm8, xmm9pxor xmm12, xmm13movdqa [rsp + 12*16], xmm0movdqa [rsp + 13*16], xmm4movdqa [rsp + 14*16], xmm8movdqa [rsp + 15*16], xmm12paddd xmm0, xmm3paddd xmm4, xmm7paddd xmm8, xmm11paddd xmm12, xmm15movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12pslld xmm0, 18pslld xmm4, 18pslld xmm8, 18pslld xmm12, 18psrld xmm3, 32-18psrld xmm7, 32-18psrld xmm11, 32-18psrld xmm15, 32-18pxor xmm0, xmm2pxor xmm4, xmm6pxor xmm8, xmm10pxor xmm12, xmm14pxor xmm0, xmm3pxor xmm4, xmm7pxor xmm8, xmm11pxor xmm12, xmm15movdqa [rsp + 0*16], xmm0movdqa [rsp + 1*16], xmm4movdqa [rsp + 2*16], xmm8movdqa [rsp + 3*16], xmm12mov rax, r9jmp label2labelSSE2_Salsa_Output:movdqa xmm0, xmm4punpckldq xmm4, xmm5movdqa xmm1, xmm6punpckldq xmm6, xmm7movdqa xmm2, xmm4punpcklqdq xmm4, xmm6punpckhqdq xmm2, xmm6punpckhdq xmm0, xmm5punpckhdq xmm1, xmm7movdqa xmm6, xmm0punpcklqdq xmm0, xmm1punpckhqdq xmm6, xmm1test rdx, rdxjz labelSSE2_Salsa_Output_A3test rdx, 15jnz labelSSE2_Salsa_Output_A7pxor xmm4, [rdx+0*16]pxor xmm2, [rdx+4*16]pxor xmm0, [rdx+8*16]pxor xmm6, [rdx+12*16]add rdx, 1*16jmp labelSSE2_Salsa_Output_A3labelSSE2_Salsa_Output_A7:movdqu xmm1, [rdx+0*16]pxor xmm4, xmm1movdqu xmm1, [rdx+4*16]pxor xmm2, xmm1movdqu xmm1, [rdx+8*16]pxor xmm0, xmm1movdqu xmm1, [rdx+12*16]pxor xmm6, xmm1add rdx, 1*16labelSSE2_Salsa_Output_A3:test rcx, 15jnz labelSSE2_Salsa_Output_A8movdqa [rcx+0*16], xmm4movdqa [rcx+4*16], xmm2movdqa [rcx+8*16], xmm0movdqa [rcx+12*16], xmm6jmp labelSSE2_Salsa_Output_A9labelSSE2_Salsa_Output_A8:movdqu [rcx+0*16], xmm4movdqu [rcx+4*16], xmm2movdqu [rcx+8*16], xmm0movdqu [rcx+12*16], xmm6labelSSE2_Salsa_Output_A9:add rcx, 1*16retlabel6:movdqa xmm0, [rsp + 12*16 + 0*256]movdqa xmm4, [rsp + 13*16 + 0*256]movdqa xmm8, [rsp + 14*16 + 0*256]movdqa xmm12, [rsp + 15*16 + 0*256]movdqa xmm2, [rsp + 0*16 + 0*256]movdqa xmm6, [rsp + 1*16 + 0*256]movdqa xmm10, [rsp + 2*16 + 0*256]movdqa xmm14, [rsp + 3*16 + 0*256]paddd xmm0, xmm2paddd xmm4, xmm6paddd xmm8, xmm10paddd xmm12, xmm14movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12pslld xmm0, 7pslld xmm4, 7pslld xmm8, 7pslld xmm12, 7psrld xmm1, 32-7psrld xmm5, 32-7psrld xmm9, 32-7psrld xmm13, 32-7pxor xmm0, [rsp + 4*16 + 0*256]pxor xmm4, [rsp + 5*16 + 0*256]pxor xmm8, [rsp + 6*16 + 0*256]pxor xmm12, [rsp + 7*16 + 0*256]pxor xmm0, xmm1pxor xmm4, xmm5pxor xmm8, xmm9pxor xmm12, xmm13movdqa [rsp + 4*16], xmm0movdqa [rsp + 5*16], xmm4movdqa [rsp + 6*16], xmm8movdqa [rsp + 7*16], xmm12movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12paddd xmm0, xmm2paddd xmm4, xmm6paddd xmm8, xmm10paddd xmm12, xmm14movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12pslld xmm0, 9pslld xmm4, 9pslld xmm8, 9pslld xmm12, 9psrld xmm3, 32-9psrld xmm7, 32-9psrld xmm11, 32-9psrld xmm15, 32-9pxor xmm0, [rsp + 8*16 + 0*256]pxor xmm4, [rsp + 9*16 + 0*256]pxor xmm8, [rsp + 10*16 + 0*256]pxor xmm12, [rsp + 11*16 + 0*256]pxor xmm0, xmm3pxor xmm4, xmm7pxor xmm8, xmm11pxor xmm12, xmm15movdqa [rsp + 8*16], xmm0movdqa [rsp + 9*16], xmm4movdqa [rsp + 10*16], xmm8movdqa [rsp + 11*16], xmm12movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12paddd xmm0, xmm1paddd xmm4, xmm5paddd xmm8, xmm9paddd xmm12, xmm13movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12pslld xmm0, 13pslld xmm4, 13pslld xmm8, 13pslld xmm12, 13psrld xmm1, 32-13psrld xmm5, 32-13psrld xmm9, 32-13psrld xmm13, 32-13pxor xmm0, [rsp + 12*16 + 0*256]pxor xmm4, [rsp + 13*16 + 0*256]pxor xmm8, [rsp + 14*16 + 0*256]pxor xmm12, [rsp + 15*16 + 0*256]pxor xmm0, xmm1pxor xmm4, xmm5pxor xmm8, xmm9pxor xmm12, xmm13movdqa [rsp + 12*16], xmm0movdqa [rsp + 13*16], xmm4movdqa [rsp + 14*16], xmm8movdqa [rsp + 15*16], xmm12paddd xmm0, xmm3paddd xmm4, xmm7paddd xmm8, xmm11paddd xmm12, xmm15movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12pslld xmm0, 18pslld xmm4, 18pslld xmm8, 18pslld xmm12, 18psrld xmm3, 32-18psrld xmm7, 32-18psrld xmm11, 32-18psrld xmm15, 32-18pxor xmm0, xmm2pxor xmm4, xmm6pxor xmm8, xmm10pxor xmm12, xmm14pxor xmm0, xmm3pxor xmm4, xmm7pxor xmm8, xmm11pxor xmm12, xmm15movdqa [rsp + 0*16], xmm0movdqa [rsp + 1*16], xmm4movdqa [rsp + 2*16], xmm8movdqa [rsp + 3*16], xmm12label2:movdqa xmm0, [rsp + 7*16 + 0*256]movdqa xmm4, [rsp + 4*16 + 0*256]movdqa xmm8, [rsp + 5*16 + 0*256]movdqa xmm12, [rsp + 6*16 + 0*256]movdqa xmm2, [rsp + 0*16 + 0*256]movdqa xmm6, [rsp + 1*16 + 0*256]movdqa xmm10, [rsp + 2*16 + 0*256]movdqa xmm14, [rsp + 3*16 + 0*256]paddd xmm0, xmm2paddd xmm4, xmm6paddd xmm8, xmm10paddd xmm12, xmm14movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12pslld xmm0, 7pslld xmm4, 7pslld xmm8, 7pslld xmm12, 7psrld xmm1, 32-7psrld xmm5, 32-7psrld xmm9, 32-7psrld xmm13, 32-7pxor xmm0, [rsp + 13*16 + 0*256]pxor xmm4, [rsp + 14*16 + 0*256]pxor xmm8, [rsp + 15*16 + 0*256]pxor xmm12, [rsp + 12*16 + 0*256]pxor xmm0, xmm1pxor xmm4, xmm5pxor xmm8, xmm9pxor xmm12, xmm13movdqa [rsp + 13*16], xmm0movdqa [rsp + 14*16], xmm4movdqa [rsp + 15*16], xmm8movdqa [rsp + 12*16], xmm12movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12paddd xmm0, xmm2paddd xmm4, xmm6paddd xmm8, xmm10paddd xmm12, xmm14movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12pslld xmm0, 9pslld xmm4, 9pslld xmm8, 9pslld xmm12, 9psrld xmm3, 32-9psrld xmm7, 32-9psrld xmm11, 32-9psrld xmm15, 32-9pxor xmm0, [rsp + 10*16 + 0*256]pxor xmm4, [rsp + 11*16 + 0*256]pxor xmm8, [rsp + 8*16 + 0*256]pxor xmm12, [rsp + 9*16 + 0*256]pxor xmm0, xmm3pxor xmm4, xmm7pxor xmm8, xmm11pxor xmm12, xmm15movdqa [rsp + 10*16], xmm0movdqa [rsp + 11*16], xmm4movdqa [rsp + 8*16], xmm8movdqa [rsp + 9*16], xmm12movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12paddd xmm0, xmm1paddd xmm4, xmm5paddd xmm8, xmm9paddd xmm12, xmm13movdqa xmm1, xmm0movdqa xmm5, xmm4movdqa xmm9, xmm8movdqa xmm13, xmm12pslld xmm0, 13pslld xmm4, 13pslld xmm8, 13pslld xmm12, 13psrld xmm1, 32-13psrld xmm5, 32-13psrld xmm9, 32-13psrld xmm13, 32-13pxor xmm0, [rsp + 7*16 + 0*256]pxor xmm4, [rsp + 4*16 + 0*256]pxor xmm8, [rsp + 5*16 + 0*256]pxor xmm12, [rsp + 6*16 + 0*256]pxor xmm0, xmm1pxor xmm4, xmm5pxor xmm8, xmm9pxor xmm12, xmm13movdqa [rsp + 7*16], xmm0movdqa [rsp + 4*16], xmm4movdqa [rsp + 5*16], xmm8movdqa [rsp + 6*16], xmm12paddd xmm0, xmm3paddd xmm4, xmm7paddd xmm8, xmm11paddd xmm12, xmm15movdqa xmm3, xmm0movdqa xmm7, xmm4movdqa xmm11, xmm8movdqa xmm15, xmm12pslld xmm0, 18pslld xmm4, 18pslld xmm8, 18pslld xmm12, 18psrld xmm3, 32-18psrld xmm7, 32-18psrld xmm11, 32-18psrld xmm15, 32-18pxor xmm0, xmm2pxor xmm4, xmm6pxor xmm8, xmm10pxor xmm12, xmm14pxor xmm0, xmm3pxor xmm4, xmm7pxor xmm8, xmm11pxor xmm12, xmm15movdqa [rsp + 0*16], xmm0movdqa [rsp + 1*16], xmm4movdqa [rsp + 2*16], xmm8movdqa [rsp + 3*16], xmm12sub eax, 2jnz label6movdqa xmm4, [rsp + 0*16 + 256]paddd xmm4, [rsp + 0*16]movdqa xmm5, [rsp + 13*16 + 256]paddd xmm5, [rsp + 13*16]movdqa xmm6, [rsp + 10*16 + 256]paddd xmm6, [rsp + 10*16]movdqa xmm7, [rsp + 7*16 + 256]paddd xmm7, [rsp + 7*16]call labelSSE2_Salsa_Output

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -