  The paper proposes a new static analysis designed to handle open programs,
i.e., fragments of programs, with dynamic pointer-linked data structures - in
particular, various kinds of lists - that employ advanced low-level pointer
operations. The goal is to allow such programs be analysed without a need of
writing analysis harnesses that would first initialise the structures being
handled. The approach builds on a special flavour of separation logic and the
approach of bi-abduction. The code of interest is analyzed along the call tree,
starting from its leaves, with each function analysed just once without any
call context, leading to a set of contracts summarizing the behaviour of the
analysed functions. In order to handle the considered programs, methods of
abduction existing in the literature are significantly modified and extended in
the paper. The proposed approach has been implemented in a tool prototype and
successfully evaluated on not large but complex programs.
