A sound abstract interpreter for dynamic code