When examining the BINFO structures and looking for the chain of
virtual methods for the given actual and referenced type, I discovered
that I have to use one out of two methods depending whether the actual
type is derived through single or multiple inheritance. Basically, if
I want to find latter I need to dive deep into BINFOs representing the
ancestors with non-zero offsets within the type and those contain the
list I am interested in. On the other hand, if the ancestor lies at
the offset zero of the actual type, the BINFOs representing the
ancestors don't have the list (actually they have one but with wrong
values) but fortunately the indices of virtual functions are the same
in the actual type (only that it can have more of them) so we can use
those. So in the end I dive deep into the binfos only when hitting
multiple inheritance and keep the top-most binfo otherwise.