anchor.diff:  end;
   {$ELSE WIN64}
   asm
  -      .PUSHNV RBX
  +       .PUSHNV RBX
   
          PUSH    R8                       // PUSH Extra
          MOVZX   R8D,DX                   // R8W = Multiplicator
          MOV     R10,RCX
  -       TEST    R10,R10
  -       JZ      @@1
          MOV     R10,[R10-8]              // R10D = Length(Multiplicand)
  -@@1:
          XOR     R11D,R11D                // R11D = I
          XOR     EBX,EBX
          CMP     R11D,R10D
  -       JNB     @@3
  -@@2:
  +       JNB     @SkipMult
  +@MultLoop:
          MOV     EAX,[RCX + CLimbSize*R11]
          MUL     EAX,R8D
          ADD     EAX,EBX
  
positive.code: 
  class operator BigInteger.Multiply(Left: Word; const Right: BigInteger): BigInteger;
  begin
    Result := Right * Left;
  end;
  
  class function BigInteger.MultiplyKaratsuba(const Left, Right: BigInteger): BigInteger;
  
negative.code:   Move(Src^, Dest^, Count * CLimbSize);
  end;
  
  { BigInteger }
  
  procedure ShallowCopy(const Value: BigInteger; var Result: BigInteger); inline;
  begin
  