Når jeg programmerer omvendt, finner jeg ofte funksjoner som den nedenfor. Spesielt denne funksjonen har et sett med nestede if / else-blokker (rosa bokser) som vanligvis vil være ganske enkle å følge. Når koden kjøres i den blå boksen, blir koden imidlertid rotete og kan ta en av to uavhengige kodebaner (lilla eller gule). Hvis utvikleren hadde brukt en funksjon (eller ikke brukt en innebygd funksjon) for de lilla eller gule kodeblokkene, ville denne koden være mye lettere å reversere. Som en funksjon kan jeg gi nytt navn og kommentere kodeblokken, og det overordnede programmet blir lettere å lese.
Min vanlige teknikk når jeg kommer over denne typen funksjoner er å bruke farger på kodeblokkene som ser du i grafen nedenfor. Er det en måte for IDA å behandle en vilkårlig samling av kodeblokker som en funksjon som ikke kalles, og / eller er det bedre tilnærminger til å håndtere integrert kode og uavhengige kodeblokker?