//-------------------------------------------------------------------------
uint32_t challenge_1(uint32_t c1, uint32_t c2, uint32_t c3, uint32_t c4) // 1953 operation(s)
{
uint32_t result;
__asm
{
pushad
mov eax, [c1]
mov edx, [c2]
mov ecx, [c3]
mov ebx, [c4]
sub eax, ebx
inc ebx
sub ebx, ecx
sub ecx, 0x852e4867
add ebx, ebx
inc ecx
add eax, edx
add ecx, ebx
sub ecx, ebx
inc ecx
sub ebx, edx
add eax, 0x7a20f9e6
add ebx, 0xaa5a1584
add edx, edx
sub ebx, 0x1ca0a567
sub eax, 0xf94f7d8c
inc ecx
inc eax
add edx, eax
sub ebx, edx
inc ebx
sub edx, 0xd68a9fa7
inc ebx
inc eax
inc eax
.
.
...1000+ instructions later...
.
sub ebx, edx
inc eax
sub ebx, edx
sub ecx, eax
add eax, ebx
add ecx, 0xd2cb013d
add ecx, 0xda9d6a2e
add edx, eax
sub edx, 0x25ebd85d
add ebx, ebx
add ebx, 0x936e2259
inc eax
add eax, ecx
add ebx, 0xc0c1aa
inc ebx
add edx, 0x921ee6d5
add edx, edx
add ecx, eax
add ecx, eax
inc ebx
sub ebx, edx
add ebx, eax
inc ebx
sub eax, 0xd9d2f9c2
add edx, eax
inc ecx
add ecx, 0xad2e6bb0
add ecx, eax
sub ecx, ebx
add ebx, eax
sub ecx, 0xe2786d0c
add eax, ebx
add eax, ecx
add eax, edx
mov dword ptr [result], eax
popad
}
return result;
}