static void arith2_normalise(ArithCoder *c)
{
    while ((c->high >> 15) - (c->low >> 15) < 2) {
        if ((c->low ^ c->high) & 0x10000) {
            c->high  ^= 0x8000;
            c->value ^= 0x8000;
            c->low   ^= 0x8000;
        }
        c->high  = (uint16_t)c->high  << 8  | 0xFF;
        c->value = (uint16_t)c->value << 8  | bytestream2_get_byte(c->gbc.gB);
        c->low   = (uint16_t)c->low   << 8;
    }
}