Clarification on StructurizeCFG

Hi all. Could someone clarify what exactly StructurizeCFG does? I understand that the outcome is a structured CFG but I am having a hard time parsing the explanation here llvm-project/StructurizeCFG.cpp at release/13.x · llvm/llvm-project · GitHub. How does the output CFG model higher-level control flow? In particular the “else” case. Are there some simple steps to follow to translate this into a higher-level C-like language (let’s assume for simplicity that no loops are present)?