I'm not convinced that the "goto L0" statements you have in there now are even necessary - they are all at the "end" of if/else clauses where the code path if they're omitted goes past the remaining code anyway.
That's essentially equiv to re-drawing the flowchart so the various side exits go down instead of sideways and up (and the bottom just goes back up, anyway.)
Sort of:
