anchor.diff:    while not v3.IsZero do
     begin
       // Step X3. Divide and Subtract
  -    DivMod(u3, v3, q, t3);
  -    t1 := Add(u1, BigInteger.Multiply(q, v1));
  +    DivMod(u3, v3, q, temp3);
  +    temp1 := Add(u1, BigInteger.Multiply(q, v1));
       // Swap
       u1 := v1;
  -    v1 := t1;
  +    v1 := temp1;
       u3 := v3;
  -    v3 := t3;
  +    v3 := temp3;
       Inc(iter);
     end;
     // Ensure u3, i.e. gcd(Value, Modulus) = 1
  
positive.code: @LastLimb:
  
          ADC     EDI,EDI
          MOV     [EBX],EDI
  
  @Exit:
  
negative.code:         MOV     EAX,[ESI]
          ADC     EAX,EDI
          MOV     [EBX],EAX
          JNC     @RestLoopStore0
  
          MOV     EAX,[ESI + CLimbSize]
          ADC     EAX,EDI
          MOV     [EBX + CLimbSize],EAX
          JNC     @RestLoopStore1
  
          MOV     EAX,[ESI + 2*CLimbSize]
          ADC     EAX,EDI
          MOV     [EBX + 2*CLimbSize],EAX
          JNC     @RestLoopStore2
  
          MOV     EAX,[ESI + 3*CLimbSize]
          ADC     EAX,EDI
          MOV     [EBX + 3*CLimbSize],EAX
          JNC     @RestLoopStore3
  
          LEA     ESI,[ESI + CUnrollIncrement*CLimbSize]
          LEA     EBX,[EBX + CUnrollIncrement*CLimbSize]
  