Yes, works good here. But you list a number of sectors with c2 errors ("Reread times 22, ErrSectorNum 7/ 7"), while, as I've already said earlier, it's better to show a number of error bytes per sector according to the 294-bytes C2-error part in each sector and to take the good bytes from each rereading, instead of trying to reread the entire sector without errors.
For example, there are 5 C2 errors in the sector #123 (bytes 2, 5, 10, 15 and 20 are corrupted).
1st reread: 4 C2 errors (bytes 5, 10, 15 and 20 are corrupted, byte 2 is good - you replace it in the dump) - 4 errors left.
2nd reread: 8 C2 errors (bytes 2, 3, 4, 5, 6, 15, 20, 25 are corrupted, byte 10 is good - you replace it in the dump) - 3 errors left.
3rd reread: 7 C2 errors (bytes 2, 3, 4, 5, 10, 15 and 20 are corrupted, nothing fixed, nothing to replace) - 3 errors left
4th reread: 10 C2 errors (bytes 1, 2, 3, 4, 5, 6, 7, 8, 9 and 10 are corrupted, bytes 15 and 20 are good - you replace them in the dump) - 1 error left
etc.