Two knights sacrifice: correct?
Right, I thought I was winning after 24.Kd1 Qc4 25.Qxc2 Qxd4+ 26.Ke2 Re8+ 27.Kf3, but maybe there is only a draw.
After 20.Kb4 I think 20...a5+ 21.Kb5 Qb2+ 22. Nb3 (22.Kxa5 Ra8+)(22.Ka6 Qb4#) Rxc2 and white might be in some trouble.
@svekke what about 22.Qb3 . after giving up two knights, a queen exchange is great for white even at a loss of an pawn (22..Rxc2).
I either think of 22...Qf6 or Rxc2, don't know what one the best is, but a queentrade still can be dangerous for white..
After 20. Kb4 I had a couple thoughts.
The first was 20...Re4+ 21. Nxe4 Rc4+ 22. Qxc4 (If Kb5 then Qa4 mates) Qxc4+ 23. Ka3 (If Ka5 ...b6 mates) but now the attack seems to fizzle out.
My second thought was after 20. Kb4 b5!? threatening Qa4 mate. If 21. Ra1 a5+ 22. Kxb5 Rb8+ 23. Ka6 Re6+ 24. Ka7 then Rd8! with mate to come.
But if 20. Kb4 b5 21. Ra1 a5+ 22. Kxb5 Rb8+ 23. Kc5 it's hard to find a mate for black. It looks like with correct play white escapes every time.
If 20. Kb4 b5 21. Ra1 a5+ 22. Kxb5 Qb2+ 23. Qb3 seems to offer black nothing, too. If 23...Rb8+ white will have extra material.
I'll do some more analysis later, but for now I don't think it was very sound. Certainly it offers good practical chances, though.
Actually, sorry for the double post, but I found another interesting line.
Instead of 18... Qxa2+ perhaps we can play 18... Rac8 threatening Qxa2 with mate. If 18. Ra1 then 18... Qb4+ 19. Nb3 Na4+ 20. Kc1 (20. Kb1 Rxe3 21. Qxe3 (Forced, otherwise Qa3 with mate to come) Qa3 22. Qc1 Nc3 mate) Qa3+ 21. Kd2 Nb2 and the position is very unclear.
analysis in puzzle form for Kb4.... (see move list!)
I think, at the end of your line, the black pawns look a little shaky. Looks like white's going to get one of them back, and have the better endgame.
Then again, maybe not. Even if the d-pawn falls, black has two connected passers for the bishop... I think we need engine analysis here.