I find the first one clearer and easier to understand.
Our coding standards do not mandate "single point of exit";
by all means use it where it makes the code clearer, but enforcing it leads to clumsy, deeply nested code, with extra "flag" variables to keep state.
At least that's what I've seen.
In any case, with the growing use of exceptions in modern languages, single point of exit is somewhat illusory.
More important than single point of exit is to keep functions cohesive and short, with few parameters, and free of globals.