RF remote control receiver (433MHz ASK to decode data coded by HT6P20X series)

I see from your code that the timebase is hard coded, (tbase1 = 450ul, tbase0 = 650ul;) would it not be more flexible to calculate the timebase from the array, then use that to set tbase1 and tbase0

My understanding of your code suggests that the array of 100 pin toggles represents 50 bits of information, we therefore should be able to estimate one cycle (wavelength) of the clock (1/fosc) as 1/150 of the time between the first transistion and the last (since we have three complete clock cycles per bit), and thus the tbase1 time is 1 high clock cycle and tbase0 timings as 2 high clock cycles (plus or minus any error).

That way the code becomes clock agnostic, in other words we dont need to worry about the exact speed of the source clock. I say this because there are a number of versions of this Holtek encoder, which typically operate at different cpu clocks. The version I have for example uses a 1MHz ceramic resonator, but other versions run using the internal RC oscillator (which will be both much slower, and also more prone to timing variations and thus errors).