📄 bn-win32.asm
字号:
jz $L013aw_end ; Tail Round 6 mov ecx, DWORD PTR 24[esi] mov edx, DWORD PTR 24[edi] add ecx, eax mov eax, 0 adc eax, eax add ecx, edx adc eax, 0 mov DWORD PTR 24[ebx],ecx$L013aw_end: pop edi pop esi pop ebx pop ebp ret_bn_add_words ENDP_TEXT$ ENDS_TEXT$ SEGMENT PAGE 'CODE'PUBLIC _bn_sub_words_bn_sub_words PROC NEAR push ebp push ebx push esi push edi ; mov ebx, DWORD PTR 20[esp] mov esi, DWORD PTR 24[esp] mov edi, DWORD PTR 28[esp] mov ebp, DWORD PTR 32[esp] xor eax, eax and ebp, 4294967288 jz $L014aw_finish$L015aw_loop: ; Round 0 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx ; Round 1 mov ecx, DWORD PTR 4[esi] mov edx, DWORD PTR 4[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 4[ebx],ecx ; Round 2 mov ecx, DWORD PTR 8[esi] mov edx, DWORD PTR 8[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 8[ebx],ecx ; Round 3 mov ecx, DWORD PTR 12[esi] mov edx, DWORD PTR 12[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 12[ebx],ecx ; Round 4 mov ecx, DWORD PTR 16[esi] mov edx, DWORD PTR 16[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 16[ebx],ecx ; Round 5 mov ecx, DWORD PTR 20[esi] mov edx, DWORD PTR 20[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 20[ebx],ecx ; Round 6 mov ecx, DWORD PTR 24[esi] mov edx, DWORD PTR 24[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 24[ebx],ecx ; Round 7 mov ecx, DWORD PTR 28[esi] mov edx, DWORD PTR 28[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 28[ebx],ecx ; add esi, 32 add edi, 32 add ebx, 32 sub ebp, 8 jnz $L015aw_loop$L014aw_finish: mov ebp, DWORD PTR 32[esp] and ebp, 7 jz $L016aw_end ; Tail Round 0 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR [ebx],ecx jz $L016aw_end ; Tail Round 1 mov ecx, DWORD PTR 4[esi] mov edx, DWORD PTR 4[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 4[ebx],ecx jz $L016aw_end ; Tail Round 2 mov ecx, DWORD PTR 8[esi] mov edx, DWORD PTR 8[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 8[ebx],ecx jz $L016aw_end ; Tail Round 3 mov ecx, DWORD PTR 12[esi] mov edx, DWORD PTR 12[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 12[ebx],ecx jz $L016aw_end ; Tail Round 4 mov ecx, DWORD PTR 16[esi] mov edx, DWORD PTR 16[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 16[ebx],ecx jz $L016aw_end ; Tail Round 5 mov ecx, DWORD PTR 20[esi] mov edx, DWORD PTR 20[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 20[ebx],ecx jz $L016aw_end ; Tail Round 6 mov ecx, DWORD PTR 24[esi] mov edx, DWORD PTR 24[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 24[ebx],ecx$L016aw_end: pop edi pop esi pop ebx pop ebp ret_bn_sub_words ENDP_TEXT$ ENDS_TEXT$ SEGMENT PAGE 'CODE'PUBLIC _bn_sub_part_words_bn_sub_part_words PROC NEAR push ebp push ebx push esi push edi ; mov ebx, DWORD PTR 20[esp] mov esi, DWORD PTR 24[esp] mov edi, DWORD PTR 28[esp] mov ebp, DWORD PTR 32[esp] xor eax, eax and ebp, 4294967288 jz $L017aw_finish$L018aw_loop: ; Round 0 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx ; Round 1 mov ecx, DWORD PTR 4[esi] mov edx, DWORD PTR 4[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 4[ebx],ecx ; Round 2 mov ecx, DWORD PTR 8[esi] mov edx, DWORD PTR 8[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 8[ebx],ecx ; Round 3 mov ecx, DWORD PTR 12[esi] mov edx, DWORD PTR 12[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 12[ebx],ecx ; Round 4 mov ecx, DWORD PTR 16[esi] mov edx, DWORD PTR 16[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 16[ebx],ecx ; Round 5 mov ecx, DWORD PTR 20[esi] mov edx, DWORD PTR 20[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 20[ebx],ecx ; Round 6 mov ecx, DWORD PTR 24[esi] mov edx, DWORD PTR 24[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 24[ebx],ecx ; Round 7 mov ecx, DWORD PTR 28[esi] mov edx, DWORD PTR 28[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 28[ebx],ecx ; add esi, 32 add edi, 32 add ebx, 32 sub ebp, 8 jnz $L018aw_loop$L017aw_finish: mov ebp, DWORD PTR 32[esp] and ebp, 7 jz $L019aw_end ; Tail Round 0 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4 dec ebp jz $L019aw_end ; Tail Round 1 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4 dec ebp jz $L019aw_end ; Tail Round 2 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4 dec ebp jz $L019aw_end ; Tail Round 3 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4 dec ebp jz $L019aw_end ; Tail Round 4 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4 dec ebp jz $L019aw_end ; Tail Round 5 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4 dec ebp jz $L019aw_end ; Tail Round 6 mov ecx, DWORD PTR [esi] mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx add esi, 4 add edi, 4 add ebx, 4$L019aw_end: cmp DWORD PTR 36[esp],0 je $L020pw_end mov ebp, DWORD PTR 36[esp] cmp ebp, 0 je $L020pw_end jge $L021pw_pos ; pw_neg mov edx, 0 sub edx, ebp mov ebp, edx and ebp, 4294967288 jz $L022pw_neg_finish$L023pw_neg_loop: ; dl<0 Round 0 mov ecx, 0 mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR [ebx],ecx ; dl<0 Round 1 mov ecx, 0 mov edx, DWORD PTR 4[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 4[ebx],ecx ; dl<0 Round 2 mov ecx, 0 mov edx, DWORD PTR 8[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 8[ebx],ecx ; dl<0 Round 3 mov ecx, 0 mov edx, DWORD PTR 12[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 12[ebx],ecx ; dl<0 Round 4 mov ecx, 0 mov edx, DWORD PTR 16[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 16[ebx],ecx ; dl<0 Round 5 mov ecx, 0 mov edx, DWORD PTR 20[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 20[ebx],ecx ; dl<0 Round 6 mov ecx, 0 mov edx, DWORD PTR 24[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 24[ebx],ecx ; dl<0 Round 7 mov ecx, 0 mov edx, DWORD PTR 28[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 28[ebx],ecx ; add edi, 32 add ebx, 32 sub ebp, 8 jnz $L023pw_neg_loop$L022pw_neg_finish: mov edx, DWORD PTR 36[esp] mov ebp, 0 sub ebp, edx and ebp, 7 jz $L020pw_end ; dl<0 Tail Round 0 mov ecx, 0 mov edx, DWORD PTR [edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR [ebx],ecx jz $L020pw_end ; dl<0 Tail Round 1 mov ecx, 0 mov edx, DWORD PTR 4[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 4[ebx],ecx jz $L020pw_end ; dl<0 Tail Round 2 mov ecx, 0 mov edx, DWORD PTR 8[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 8[ebx],ecx jz $L020pw_end ; dl<0 Tail Round 3 mov ecx, 0 mov edx, DWORD PTR 12[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 12[ebx],ecx jz $L020pw_end ; dl<0 Tail Round 4 mov ecx, 0 mov edx, DWORD PTR 16[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 16[ebx],ecx jz $L020pw_end ; dl<0 Tail Round 5 mov ecx, 0 mov edx, DWORD PTR 20[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 dec ebp mov DWORD PTR 20[ebx],ecx jz $L020pw_end ; dl<0 Tail Round 6 mov ecx, 0 mov edx, DWORD PTR 24[edi] sub ecx, eax mov eax, 0 adc eax, eax sub ecx, edx adc eax, 0 mov DWORD PTR 24[ebx],ecx jmp $L020pw_end$L021pw_pos: and ebp, 4294967288 jz $L024pw_pos_finish$L025pw_pos_loop: ; dl>0 Round 0 mov ecx, DWORD PTR [esi] sub ecx, eax mov DWORD PTR [ebx],ecx jnc $L026pw_nc0 ; dl>0 Round 1 mov ecx, DWORD PTR 4[esi] sub ecx, eax mov DWORD PTR 4[ebx],ecx jnc $L027pw_nc1 ; dl>0 Round 2 mov ecx, DWORD PTR 8[esi] sub ecx, eax mov DWORD PTR 8[ebx],ecx jnc $L028pw_nc2 ; dl>0 Round 3 mov ecx, DWORD PTR 12[esi] sub ecx, eax mov DWORD PTR 12[ebx],ecx jnc $L029pw_nc3 ; dl>0 Round 4 mov ecx, DWORD PTR 16[esi] sub ecx, eax mov DWORD PTR 16[ebx],ecx jnc $L030pw_nc4 ; dl>0 Round 5 mov ecx, DWORD PTR 20[esi] sub ecx, eax mov DWORD PTR 20[ebx],ecx jnc $L031pw_nc5 ; dl>0 Round 6 mov ecx, DWORD PTR 24[esi] sub ecx, eax mov DWORD PTR 24[ebx],ecx jnc $L032pw_nc6 ; dl>0 Round 7 mov ecx, DWORD PTR 28[esi] sub ecx, eax mov DWORD PTR 28[ebx],ecx jnc $L033pw_nc7 ; add esi, 32 add ebx, 32 sub ebp, 8 jnz $L025pw_pos_loop$L024pw_pos_finish: mov ebp, DWORD PTR 36[esp] and ebp, 7 jz $L020pw_end ; dl>0 Tail Round 0 mov ecx, DWORD PTR [esi] sub ecx, eax mov DWORD PTR [ebx],ecx jnc $L034pw_tail_nc0 dec ebp jz $L020pw_end ; dl>0 Tail Round 1 mov ecx, DWORD PTR 4[esi] sub ecx, eax mov DWORD PTR 4[ebx],ecx jnc $L035pw_tail_nc1 dec ebp jz $L020pw_end ; dl>0 Tail Round 2 mov ecx, DWORD PTR 8[esi] sub ecx, eax mov DWORD PTR 8[ebx],ecx jnc $L036pw_tail_nc2 dec ebp jz $L020pw_end ; dl>0 Tail Round 3 mov ecx, DWORD PTR 12[esi] sub ecx, eax mov DWORD PTR 12[ebx],ecx jnc $L037pw_tail_nc3 dec ebp jz $L020pw_end ; dl>0 Tail Round 4 mov ecx, DWORD PTR 16[esi] sub ecx, eax mov DWORD PTR 16[ebx],ecx jnc $L038pw_tail_nc4 dec ebp jz $L020pw_end ; dl>0 Tail Round 5 mov ecx, DWORD PTR 20[esi] sub ecx, eax mov DWORD PTR 20[ebx],ecx jnc $L039pw_tail_nc5 dec ebp jz $L020pw_end ; dl>0 Tail Round 6 mov ecx, DWORD PTR 24[esi] sub ecx, eax mov DWORD PTR 24[ebx],ecx jnc $L040pw_tail_nc6 mov eax, 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -