Oliver Schneider wrote:
 .\lib\rtl\largeint.c
There's a sutraction performed in your implementation. But actually it's a
logical negation (asm -> NEG; C -> ~) in this function of the low and high
part:
RtlLargeIntegerNegate()
 
The implementation is actually correct... you can try it yourself:
   LARGE_INTEGER Test;
   Test.LowPart = Test.HighPart = 24;
   Test = RtlLargeIntegerNegate(Test);
   printf("%x %x\n", Test.LowPart, Test.HighPart);
The native implementation uses NEG + *SBB*.
- Filip