λ x : word64 * word64 * word64 * word64 * word64, Interp-η (λ var : Syntax.base_type → Type, λ '(x7, x8, x6, x4, x2)%core, uint64_t x10, uint8_t x11 = Op (Syntax.SubWithGetBorrow 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x2, 0xfffffffffffff); uint64_t x13, ℤ x14 = subborrow_u51ℤ(x11, x4, 0xfffffffffff); uint64_t x16, ℤ x17 = subborrow_u51ℤ(x14, x6, 0x0); uint64_t x19, ℤ x20 = subborrow_u51ℤ(x17, x8, 0x4000000000); uint64_t x22, uint8_t x23 = Op (Syntax.SubWithGetBorrow 51 Syntax.TZ (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (Return x20, Return x7, 0x7fffffff80000); uint64_t x24 = cmovznz64(x23, 0x0, 0xffffffffffffffffL); uint64_t x25 = (x24 & 0xfffffffffffff); uint64_t x27, uint8_t x28 = Op (Syntax.AddWithGetCarry 52 (Syntax.TWord 3) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 6) (Syntax.TWord 3)) (0x0, Return x10, Return x25); uint64_t x29 = (x24 & 0xfffffffffff); uint64_t x31, uint8_t x32 = addcarryx_u51(x28, x13, x29); uint64_t x34, uint8_t x35 = addcarryx_u51(x32, x16, 0x0); uint64_t x36 = (x24 & 0x4000000000); uint64_t x38, uint8_t x39 = addcarryx_u51(x35, x19, x36); uint64_t x40 = (x24 & 0x7fffffff80000); uint64_t x42, uint8_t _ = addcarryx_u51(x39, x22, x40); (Return x42, Return x38, Return x34, Return x31, Return x27)) x : word64 * word64 * word64 * word64 * word64 → ReturnType (uint64_t * uint64_t * uint64_t * uint64_t * uint64_t)