  Pushdown Systems (PDSs) are a natural model for sequential programs with
(recursive) procedure calls. In this work, we define the Branching temporal
logic of CAlls and RETurns (BCARET) that allows to write branching temporal
formulas while taking into account the matching between calls and returns. We
consider the model-checking problem of PDSs against BCARET formulas with
"standard" valuations (where an atomic proposition holds at a configuration c
or not depends only on the control state of c, not on its stack) as well as
regular valuations (where the set of configurations in which an atomic
proposition holds is regular). We show that these problems can be effectively
solved by a reduction to the emptiness problem of Alternating B\"uchi Pushdown
Systems. We show that our results can be applied for malware detection.
