Improving Grey-Box Fuzzing by Modeling Program Behavior