Can someone explain me how dynamic_cast works internally? And what is the role of Virtual Pointer in that?