📄 dechash.inc
字号:
ror eax, 8
xor ecx, edx
or eax, ecx
ror eax, 8
mov dword ptr [esi + 32], eax
// part 10
mov edx, dword ptr [esi + 36]
mov ecx, dword ptr [edi + ecx*4]
xor eax, eax
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
shl eax, 24
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
ror eax, 8
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
ror eax, 8
xor ecx, edx
or eax, ecx
ror eax, 8
mov dword ptr [esi + 36], eax
// part 11
mov edx, dword ptr [esi + 40]
mov ecx, dword ptr [edi + ecx*4]
xor eax, eax
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
shl eax, 24
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
ror eax, 8
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
ror eax, 8
xor ecx, edx
or eax, ecx
ror eax, 8
mov dword ptr [esi + 40], eax
// part 12
mov edx, dword ptr [esi + 44]
mov ecx, dword ptr [edi + ecx*4]
xor eax, eax
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
shl eax, 24
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
ror eax, 8
xor ecx, edx
shr edx, 8
and ecx, ebx
or eax, ecx
mov ecx, dword ptr [edi + ecx*4]
ror eax, 8
xor ecx, edx
or eax, ecx
ror eax, 8
mov dword ptr [esi + 44], eax
add ecx, ebp
inc ebp
and ecx, ebx
cmp ebp, 18
jnz @roundsloop
pop ebp
pop edi
pop esi
pop ebx
end;
{$ENDIF}
{$IFDEF THash_MD4_asm}
procedure THash_MD4.DoTransform(Buffer: PLongArray);
asm
push ebx
push esi
push edi
lea edi, [eax].THash_MD4.FDigest // let edi points to A,B ..
mov esi, edx // let esi points to Buffer
push ebp
mov eax, [edi]
mov ebx, [edi+4]
push edi
mov ecx, [edi+8]
mov edx, [edi+0Ch]
mov edi, ecx
xor edi, edx
and edi, ebx
mov ebp, [esi]
xor edi, edx
add eax, ebp
mov ebp, ebx
add eax, edi
rol eax, 3
xor ebp, ecx
mov edi, [esi+4]
and ebp, eax
add edx, edi
xor ebp, ecx
mov edi, eax
add edx, ebp
xor edi, ebx
rol edx, 7
and edi, edx
mov ebp, [esi+8]
xor edi, ebx
add ecx, ebp
mov ebp, edx
add ecx, edi
rol ecx, 0Bh
xor ebp, eax
mov edi, [esi+0Ch]
and ebp, ecx
add ebx, edi
xor ebp, eax
mov edi, ecx
add ebx, ebp
xor edi, edx
ror ebx, 0Dh
and edi, ebx
mov ebp, [esi+10h]
xor edi, edx
add eax, ebp
mov ebp, ebx
add eax, edi
rol eax, 3
xor ebp, ecx
mov edi, [esi+14h]
and ebp, eax
add edx, edi
xor ebp, ecx
mov edi, eax
add edx, ebp
xor edi, ebx
rol edx, 7
and edi, edx
mov ebp, [esi+18h]
xor edi, ebx
add ecx, ebp
mov ebp, edx
add ecx, edi
rol ecx, 0Bh
xor ebp, eax
mov edi, [esi+1Ch]
and ebp, ecx
add ebx, edi
xor ebp, eax
mov edi, ecx
add ebx, ebp
xor edi, edx
ror ebx, 0Dh
and edi, ebx
mov ebp, [esi+20h]
xor edi, edx
add eax, ebp
mov ebp, ebx
add eax, edi
rol eax, 3
xor ebp, ecx
mov edi, [esi+24h]
and ebp, eax
add edx, edi
xor ebp, ecx
mov edi, eax
add edx, ebp
xor edi, ebx
rol edx, 7
and edi, edx
mov ebp, [esi+28h]
xor edi, ebx
add ecx, ebp
mov ebp, edx
add ecx, edi
rol ecx, 0Bh
xor ebp, eax
mov edi, [esi+2Ch]
and ebp, ecx
add ebx, edi
xor ebp, eax
mov edi, ecx
add ebx, ebp
xor edi, edx
ror ebx, 0Dh
and edi, ebx
mov ebp, [esi+30h]
xor edi, edx
add eax, ebp
mov ebp, ebx
add eax, edi
rol eax, 3
xor ebp, ecx
mov edi, [esi+34h]
and ebp, eax
add edx, edi
xor ebp, ecx
mov edi, eax
add edx, ebp
xor edi, ebx
rol edx, 7
and edi, edx
mov ebp, [esi+38h]
xor edi, ebx
add ecx, ebp
mov ebp, edx
add ecx, edi
rol ecx, 0Bh
xor ebp, eax
mov edi, [esi+3Ch]
and ebp, ecx
add ebx, edi
xor ebp, eax
mov edi, edx
add ebx, ebp
mov ebp, edx
ror ebx, 0Dh
or edi, ecx
and ebp, ecx
and edi, ebx
add eax, [esi]
or edi, ebp
mov ebp, ecx
lea eax, [eax+edi+5A827999h]
mov edi, ecx
rol eax, 3
or edi, ebx
and ebp, ebx
and edi, eax
add edx, [esi+10h]
or edi, ebp
mov ebp, ebx
lea edx, [edx+edi+5A827999h]
mov edi, ebx
rol edx, 5
or edi, eax
and ebp, eax
and edi, edx
add ecx, [esi+20h]
or edi, ebp
mov ebp, eax
lea ecx, [ecx+edi+5A827999h]
mov edi, eax
rol ecx, 9
or edi, edx
and ebp, edx
and edi, ecx
add ebx, [esi+30h]
or edi, ebp
mov ebp, edx
lea ebx, [ebx+edi+5A827999h]
mov edi, edx
rol ebx, 0Dh
or edi, ecx
and ebp, ecx
and edi, ebx
add eax, [esi+4]
or edi, ebp
mov ebp, ecx
lea eax, [eax+edi+5A827999h]
mov edi, ecx
rol eax, 3
or edi, ebx
and ebp, ebx
and edi, eax
add edx, [esi+14h]
or edi, ebp
mov ebp, ebx
lea edx, [edx+edi+5A827999h]
mov edi, ebx
rol edx, 5
or edi, eax
and ebp, eax
and edi, edx
add ecx, [esi+24h]
or edi, ebp
mov ebp, eax
lea ecx, [ecx+edi+5A827999h]
mov edi, eax
rol ecx, 9
or edi, edx
and ebp, edx
and edi, ecx
add ebx, [esi+34h]
or edi, ebp
mov ebp, edx
lea ebx, [ebx+edi+5A827999h]
mov edi, edx
rol ebx, 0Dh
or edi, ecx
and ebp, ecx
and edi, ebx
add eax, [esi+8]
or edi, ebp
mov ebp, ecx
lea eax, [eax+edi+5A827999h]
mov edi, ecx
rol eax, 3
or edi, ebx
and ebp, ebx
and edi, eax
add edx, [esi+18h]
or edi, ebp
mov ebp, ebx
lea edx, [edx+edi+5A827999h]
mov edi, ebx
rol edx, 5
or edi, eax
and ebp, eax
and edi, edx
add ecx, [esi+28h]
or edi, ebp
mov ebp, eax
lea ecx, [ecx+edi+5A827999h]
mov edi, eax
rol ecx, 9
or edi, edx
and ebp, edx
and edi, ecx
add ebx, [esi+38h]
or edi, ebp
mov ebp, edx
lea ebx, [ebx+edi+5A827999h]
mov edi, edx
rol ebx, 0Dh
or edi, ecx
and ebp, ecx
and edi, ebx
add eax, [esi+0Ch]
or edi, ebp
mov ebp, ecx
lea eax, [eax+edi+5A827999h]
mov edi, ecx
rol eax, 3
or edi, ebx
and ebp, ebx
and edi, eax
add edx, [esi+1Ch]
or edi, ebp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -