krippp: This is a really weird-looking game. It's amazing into how much trouble Yasser got from allowing <7.d5>.
But it's actually all somewhat imprecise; Anand used a lot of bluff which Seirawan folded under. He could've gained advantage by playing the most natural-looking moves on:
1ST) <12..Nf5> to be able to trade white's DSB guarding the d-pawn.
2ND) <15..b5> instead of giving the c-pawn with <15..g6?!>, which he could've played after ..b5 anyway.
3RD) <22..Qxg2>, which gives white the g-file, sure, but it's fortified by the ..f7 & ..g6 formation, and so quite useless. White has no attack elsewhere, so giving white this tempo is irrelevant.
4TH) is Seirawan's really weird-looking decision not to capture the d-pawn with <24..Rxd6>.
White would actually get a surprising amount of initiative afterward, but with so few pieces for the attack, it just can't be winning. And the d-pawn is a real pain for black, so capturing it should be a high priority.
This is the most complicated decision, but nothing a grandmaster shouldn't be able to calculate, because the tactics seem fairly straight-forward.
Here's what Stockfish 5 says after <24..Rxd6>, which it also recommends, with advantage for black.
White basically has 3 main-candidates to attack with:
A) <25.Rxd6 Qxd6 26.Qf3> threatening Qxf7 and Qa8+ with Qxg8, so <26..Rf8 27.Qa8+?!> trying for perpetual, <27..Qb8 28.Qc6+ Qc7 29.Qa8+>, but <29..Kd7 30.Rd1+ Ke7> and White has no more attack.
B) <25.Rc1> threatening c5 & cxb6 pinning the queen, so <25..Rd7 26.c5 b5>, completely stopped.
C) <25.Qf4> forking ..Rd6 and ..f7, so <25..Rd7 26.Rxd7 Qxd7 27.c5! bxc5 28.Rb1> threatening Qb8# or Rb8# so <28..Qc7 29.Qa4> threatening Qa6+ & Rb7 so <29..a5 30.Rb5>, and perhaps here Yasser stopped calculating and thought "OK he has the advantage",
but <Rd8!>, bringing the rook to safety and action, and if white captures the a-pawn he gets backrank-mated, hence <31.g3 Rd7> to make an escape-square for the king and stop Ra7, <32.Rxa5 Kd8 33.Ra8+ Ke7 34.Rg8 Bd4 35.Qa8 Rd8> and white's attack dies out after the exchange(s).
It's all fairly straight-forward, no strokes of genius required. I haven't always even chosen the best defense for black, just the most obvious one.
Well, after this the game is played "normally", too bad Seirawan blundered with <38..Qxd7?> which opens the a8-h1 diagonal for <39.Qf3+>, and with <39..Qd5??> instead of <39..Qb7>. I guess he was in time-trouble by now.