private function parseIconDirEntries(Icon $icon, $data, $count)
    {
        for ($i = 0; $i < $count; ++$i) {
            $icoDirEntry = unpack(
                'Cwidth/Cheight/CcolorCount/Creserved/Splanes/SbitCount/LsizeInBytes/LfileOffset',
                $data
            );
            $icoDirEntry['fileOffset'] -= ($count * 16) + 6;
            if ($icoDirEntry['colorCount'] == 0) {
                $icoDirEntry['colorCount'] = 256;
            }
            if ($icoDirEntry['width'] == 0) {
                $icoDirEntry['width'] = 256;
            }
            if ($icoDirEntry['height'] == 0) {
                $icoDirEntry['height'] = 256;
            }

            $entry = new IconImage($icoDirEntry);
            $icon[] = $entry;

            $data = substr($data, 16);
        }

        return $data;
    }