The first thing to say is that there is no clear answer to your question. Some people always use 'might' as a distancing form of 'may'; some people use 'may' and 'might' interchangeably; others do not use 'may' at all.
In formal standard British usage 'may (have)' is not possible in sentences such as:
If the pilot had not been wearing a seat belt, he might have been injured.
We know that he was not injured. Therefore, there is (obviously) no actual possibility that he was injured, and so we cannot use 'may'. However, I am increasinggly seeing 'may' used in such situations.
Interested in Language