42 lines
1.1 KiB
C#
42 lines
1.1 KiB
C#
namespace FindKey
|
|
{
|
|
internal class Program
|
|
{
|
|
static void Main()
|
|
{
|
|
var parallelOptions = new ParallelOptions
|
|
{
|
|
MaxDegreeOfParallelism = 6
|
|
};
|
|
Parallel.For(0, 10000, parallelOptions, (i, state) =>
|
|
{
|
|
for (int j = 0; j <= 9999; j++)
|
|
{
|
|
if (CheckIfMatchesCondition(i, j))
|
|
{
|
|
Console.WriteLine($"Found match: {i:D4}-{j:D4}");
|
|
state.Stop();
|
|
break;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
static bool CheckIfMatchesCondition(int p1, int p2)
|
|
{
|
|
uint edx = (uint)p1;
|
|
uint ecx = (uint)p2;
|
|
uint ebx;
|
|
int eax = 0xD00B;
|
|
do
|
|
{
|
|
edx ^= ecx;
|
|
ebx = (ecx << 2) + (edx >> 2);
|
|
ecx = ebx ^ edx;
|
|
}
|
|
while (--eax > 0);
|
|
return ebx == 0x6F3AAD5A;
|
|
|
|
}
|
|
}
|
|
}
|