If I'm in a lang with decent refactor tools and I find variables or methods with names that don't seem to line up with that the codes does I like to rename them in my local branch. It just takes out an additional layer of trying to mentally map between the names and the intentions of the code
Another thing would be to try and write some unit tests (if they aren't already there). When I don't understand what it is trying to do then write them without any asserts even, at that point it is a segregated sandbox for observing behavior
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.