XS.xs 

if(ph > pt) {
    sv_catpvn(out, pt, (STRLEN)(ph - pt));
}

bytes_consumed = consume_utf8_bytes(ph, ubuf);
if(!bytes_consumed) {
    bytes_consumed = consume_latin_byte(ph, ubuf);
}