Replace the vector of DecompEntry with a class that stores the constant offset separately. I think this is cleaner than giving the first element special handling.
This probably also fixes some potential ubsan errors by more consistently using addWithOverflow/multiplyWithOverflow.
Depends on D137847.
Could this be a class instead of a struct to ensure the offsets are only adjusted using the safe methods?