Hassan's confession to stealing Amir's birthday gifts came as a surprise to the boy.
I flinched, like I'd been slapped. My heart sank, and I almost blurted out the truth.
But Amir quickly realized why Hassan had answered as he did. Hassan never lied, so if he had denied stealing the gifts, Baba would have known that it was Amir who had planted them. Hassan saw that the shame that would have been placed on Amir would have never allowed Baba to forgive him. Amir saw that it was
... Hassan's final sacrifice for me.
Hassan would take the blame himself, sparing the embarrassment that would have befallen Amir. Amir recognized that Hassan must have known that he had planted the gifts, and he believed that Hassan also must have known that Amir watched as he was sodomized by Assef. But Amir was in for another surprise: Baba had decided to forgive Hassan.
But theft was the one unforgivable sin... how could he just forgive Hassan... why couldn't he not forgive me for not being the son he'd always wanted?
When he saw Baba cry, Amir realized that his plot had all been for nothing. Baba would not cry for his son, but he had tears to spare for Hassan. Amir considered running after them and admitting his misdeed, but he had not the courage for such action--one he knew would cause Baba to hate him forever.