Public CTF binary used a CFF pass (dispatcher + state var). I am not asking for a generic unflatten.
Find the dispatcher, recover the state transitions, rebuild a sane graph in a notebook, then annotate Ghidra with comments. Took longer than the actual challenge logic.
state = 0xA1
while True:
if state == 0xA1: ...Refs: Ghidra
Lab / educational. Public binaries and patched classes only. Isolated VM.