i think there is a subtle difference between past unreal and past hypothesis about an ability or a possibility and it can be understood from the context. in general could have is a hypothesis about an ability but context ( such as in condition ) can make it unreal situation. so the difference between "could" and "could have" would be certainty.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.