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

📄 win32.asm

📁 基于DSP的用C语言实现语音编码解码
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        ; Don't even think of reading this code
        ; It was automatically generated by bf586.pl
        ; Which is a perl program used to generate the x86 assember for
        ; any of elf, a.out, Win32, or Solaris
        ; It can be found in SSLeay 0.7.0+
        ; eric <eay@mincom.oz.au>
        ; 
        TITLE   bfx86xxxx.asm
        .386
.model FLAT
_TEXT   SEGMENT
PUBLIC  _BF_encrypt
EXTRN   _des_SPtrans:DWORD
_BF_encrypt PROC NEAR
        push    ebp
        push    ebx
        push    esi
        push    edi
        ; 
        ; Load the 2 words
        mov     eax,            DWORD PTR 20[esp]
        mov     ecx,            DWORD PTR [eax]
        mov     edx,            DWORD PTR 4[eax]
        ; 
        ; P pointer, s and enc flag
        mov     edi,            DWORD PTR 24[esp]
        xor     eax,            eax
        xor     ebx,            ebx
        mov     ebp,            DWORD PTR 28[esp]
        cmp     ebp,            0
        je      $L000start_decrypt
        xor     ecx,            DWORD PTR [edi]
        ; 
        ; Round 0
        ror     ecx,            16
        mov     esi,            DWORD PTR 4[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 8[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 12[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 16[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 20[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 24[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 28[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 32[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 36[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 40[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 44[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 48[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 52[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 56[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 60[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 64[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

⌨️ 快捷键说明

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