[C++] 纯文本查看 复制代码 DWORD CKeyGrenDlg::CalcKey(LPCSTR szName)
{
DWORD a = 0x81276345;
int b = strlen(szName);
for (int i = 0; i < b;i++)
{
_asm
{
mov eax,szName
add eax,i
MOVZX EAX, BYTE PTR DS : [EAX]
MOVSX EDX, AL
MOV EAX, DWORD PTR SS : a
ADD EAX, EDX
MOV DWORD PTR SS : a, EAX
MOV ECX, DWORD PTR SS : i
SHL ECX, 0x8
MOV EDX, DWORD PTR SS : a
XOR EDX, ECX
MOV DWORD PTR SS : a, EDX
MOV EAX, DWORD PTR SS : i
ADD EAX, 0x1
MOV ECX, DWORD PTR SS : b
IMUL ECX, DWORD PTR SS : i
NOT ECX
IMUL EAX, ECX
MOV EDX, DWORD PTR SS : a
IMUL EDX, EAX
MOV DWORD PTR SS : a, EDX
}
}
return a;
}
019 Brad Soblesky 算法 |