This document describes BE-PUM, a tool for generating control flow graphs (CFGs) from binary malware code to facilitate model checking. BE-PUM uses binary emulation and pushdown model generation to handle obfuscation techniques like indirect jumps, self-modifying code, decryption, and packers. It generates more precise models than tools like Jakstab and IDA Pro. The document outlines BE-PUM's approach, provides examples of how it handles different obfuscations, and compares it to other tools based on experiments. It is presented as both a model generator and emulator that can under-approximate programs through concolic testing and white-box testing.