Entr kann nicht nil sein, da du niemals Nil setzt.
Es wird ausschließlich das Result gesetzt, also ist deine Prüfung falsch,
Delphi-Quellcode:
X := TKey(Keys.Keys[0]).inThe.FindSubKey(Entr.Subkey, Entr);
//if X >= 0 then ... ja, nun rächt es sich, dass hier ein total unpraktisches Result "Count" rausgegeben wird, wenn nichts gefunden wurde
if X < TKey(Keys.Keys[0]).inThe.Count then ... oder sowas
oder in FindSubKey muß Entr auch auf Nil gesetzt werden.
Auf den ersten Blick seh ich auch nichts,
aber rate mal wozu der Debugger da ist.