bool ModificationMap::addModification(ByteContainer &bc, unsigned __int64 addr, BYTE to, BYTE &old) { BytePair *bpp = get(addr); if(bpp) { if(to == bpp->getFrom()) { old = to; remove(addr); return true; } else if(to != bpp->getTo()) { BytePair nbp(bpp->getFrom(), to); old = bpp->getTo(); remove(addr); put(addr, nbp); return true; } } else { // addr not found in map const BYTE from = bc.getByte(addr); if(to != from) { old = from; put(addr, BytePair(from, to)); return true; } } return false; }