private static uint AddMulCarry(ref uint uAdd, uint uMul1, uint uMul2, uint uCarry) { ulong num = (ulong)uMul1 * (ulong)uMul2 + (ulong)uAdd + (ulong)uCarry; uAdd = (uint)num; return (uint)(num >> 0x20); }