What does get_current_screen() do?

If you look at the source of get_current_screen() it’s a really small function the merely gives you value of $current_screen global variable. There is matching set_current_screen() that fills that variable.

What the variable actually contains is instance of WP_Screen class. There is plenty going on in that class, but in a nutshell it keeps track of context for admin page you are currently seeing and implements functionality, shared between admin pages.