win32.asm

来自「主要为用TI 的TMS320 5000系列实现基本的语音编解」· 汇编 代码 · 共 664 行 · 第 1/2 页

ASM
664
字号
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        xor     edx,            DWORD PTR 68[edi]
        mov     eax,            DWORD PTR 20[esp]
        mov     DWORD PTR [eax],edx
        mov     DWORD PTR 4[eax],ecx
        pop     edi
        pop     esi
        pop     ebx
        pop     ebp
        ret
$L000start_decrypt:
        xor     ecx,            DWORD PTR 68[edi]
        ; 
        ; Round 16
        ror     ecx,            16
        mov     esi,            DWORD PTR 64[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 15
        ror     edx,            16
        mov     esi,            DWORD PTR 60[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 14
        ror     ecx,            16
        mov     esi,            DWORD PTR 56[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 13
        ror     edx,            16
        mov     esi,            DWORD PTR 52[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 12
        ror     ecx,            16
        mov     esi,            DWORD PTR 48[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 11
        ror     edx,            16
        mov     esi,            DWORD PTR 44[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 10
        ror     ecx,            16
        mov     esi,            DWORD PTR 40[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 9
        ror     edx,            16
        mov     esi,            DWORD PTR 36[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 8
        ror     ecx,            16
        mov     esi,            DWORD PTR 32[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 7
        ror     edx,            16
        mov     esi,            DWORD PTR 28[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 6
        ror     ecx,            16
        mov     esi,            DWORD PTR 24[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 5
        ror     edx,            16
        mov     esi,            DWORD PTR 20[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 4
        ror     ecx,            16
        mov     esi,            DWORD PTR 16[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 3
        ror     edx,            16
        mov     esi,            DWORD PTR 12[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        ; 
        ; Round 2
        ror     ecx,            16
        mov     esi,            DWORD PTR 8[edi]
        mov     al,             ch
        mov     bl,             cl
        ror     ecx,            16
        xor     edx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             ch
        mov     bl,             cl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     edx,            esi
        ; 
        ; Round 1
        ror     edx,            16
        mov     esi,            DWORD PTR 4[edi]
        mov     al,             dh
        mov     bl,             dl
        ror     edx,            16
        xor     ecx,            esi
        mov     esi,            DWORD PTR 72[eax*4+edi]
        mov     ebp,            DWORD PTR 1096[ebx*4+edi]
        mov     al,             dh
        mov     bl,             dl
        add     esi,            ebp
        mov     eax,            DWORD PTR 2120[eax*4+edi]
        xor     esi,            eax
        mov     ebp,            DWORD PTR 3144[ebx*4+edi]
        add     esi,            ebp
        xor     eax,            eax
        xor     ecx,            esi
        xor     edx,            DWORD PTR [edi]
        mov     eax,            DWORD PTR 20[esp]
        mov     DWORD PTR [eax],edx
        mov     DWORD PTR 4[eax],ecx
        pop     edi
        pop     esi
        pop     ebx
        pop     ebp
        ret
_BF_encrypt ENDP
_TEXT   ENDS
END

⌨️ 快捷键说明

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