Ahh, Thank you.
My week was busy but I got around fixing it.
I also added the optimizations you suggested.

This is done for what ever calling convention Delphi(Pascal) uses.
asm Code:
  1. test ecx,ecx; // Check If Zero
  2.   jnz @@Continue;  //IF it is not Zero Go to @@Continue, Else go on
  3.   mov eax,edx;  //Put second paramater as result
  4.   ret;          //Return
  5. @@Continue:
  6.   test edx,edx; //Begin of while loop
  7.   jz @@Wend;   // If second paramater is zero go to the end
  8.   cmp ecx,edx;  // Compare First and second paramater
  9.   jnbe @@Lower;  //If First > second then go to @@Lower
  10.   sub edx,ecx; // second = second - first
  11.   jmp @@Continue;// next iteration of while loop
  12. @@Lower:
  13.   sub ecx,edx;  // first = first - second
  14.   jmp @@Continue; // next iteration of while loop
  15. @@Wend: //While loop ended, need to return value.
  16.   mov eax,ecx;
Comments might not be valid anymore.