Michael Cohen's ties to politics have been a roller coaster the past four years.
As President Trump's former personal lawyer and fixer, Cohen played a crucial role in Trump's ascension, ultimately to the White House.
But his public testimony before the House Oversight Committee on Wednesday also showed that things can change quickly in Washington. Cohen spent the hearing decrying his former boss as a racist and a con man and sparring with Republican lawmakers who highlighted Cohen's track record of untruths.
A few representative highlights from the hearing:
An opening for the ages
When Cohen sat down at the witness table to speak at one of the most anticipated congressional hearings in recent memory, it was clear he knew the president would be watching.
His entire opening statement was damning. Cohen laid out how he helped make payments to women who alleged extramarital affairs with Trump — allegations Trump has denied. And he said Trump welcomed advance knowledge of efforts by WikiLeaks to publish emails that would be damaging for Democrats during the 2016 presidential race; Trump has previously said he had no advance notice, according to CNN.
He also made personal attacks aimed at Trump's character.
Toward the end of the statement, Cohen explained how Trump asked him to handle the "negative press surrounding his medical deferment from the Vietnam draft."
Trump received five draft deferments during the Vietnam War — four for education and one for bone spurs in his heels.
Cohen said that he asked Trump for medical records related to the medical deferment and that Trump responded that there were none because there was no surgery.
"I find it ironic, President Trump, that you are in Vietnam right now," Cohen said, as if speaking directly to Trump, who was reported to be watching from Hanoi, the Vietnamese capital.
The committee's ranking member, Jim Jordan, R-Ohio, led the way for Republicans in setting an adversarial tone toward Cohen.
"A pattern of deception for personal greed and ambition, and you just got 30 minutes of an opening statement where you trashed the president of the United States of America," Jordan said. "Here's what I see; here's what I see. I see a guy work for 10 years and is here trashing the guy he worked for, for 10 years, didn't get a job in the White House and now — and now, you're behaving just like everyone else who's got fired or didn't get the job they wanted."
"Michael was lobbying EVERYONE to be 'Chief of Staff,' " tweeted Eric Trump as the hearing was underway Wednesday morning. "It was the biggest joke in the campaign and around the office."
Just about any time a Republican member of the committee finished questioning prior to the five-minute limit, the member yielded the rest of that time to Jordan, who drilled into Cohen and worked to paint him as a vindictive liar.
It was a shocking turn against a man who less than three years ago was working to elect a member of their party to the nation's highest office.
Democrats' generous and even sometimes kind treatment of Cohen was equally odd.
"Good luck on your road to redemption," Rep. Mark DeSaulnier, D-Calif., told Cohen at one point.
While not directly related to the question of Russian election interference, Cohen's strong words about Trump's character were still notable considering that they came from a man who worked in close contact with the now president for a decade before he took office.
Cohen said Trump "is a racist" and told of multiple occasions in which Trump casually demeaned black people.
"Trump once asked me if I could name a country run by a black person that wasn't a shithole," Cohen said. "This was when Barack Obama was president of the United States."
Rep. Mark Meadows, R-N.C., sought to fight back against those charges. He invited Lynne Patton, a longtime Trump friend and current Department of Housing and Urban Development official, to attend the hearing and stand next to him during that part of his questions.
Later in the hearing, Rep. Rashida Tlaib, D-Mich., said she thought Meadows bringing up Patton "as a prop" was in and of itself a racist act.
"Just because someone has a person of color, a black person, working for them does not mean that they aren't racist," Tlaib said.
That set off a firestorm, as Meadows grew defensive and emotional and mentioned that he has family members who are people of color.
Tlaib eventually apologized to Meadows for implying that he was racist but stood by her statement that the act of bringing one person of color up as representative of someone's feelings about an entire race is racist.
Personal remorse — and a warning about Trump
At times, Cohen seemed extremely regretful for spending so much of his life devoted to Trump, often in a way that he said included illegal actions.
"I wish I could go back in time," Cohen told lawmakers at one point.
Rep. Paul Gosar, R-Ariz., took Cohen to task for being a "pathological person" who "doesn't know fact from fiction."
"Look at the old adage our moms taught us: Liar, liar, pants on fire," Gosar said. "No one should ever look at you and give you credibility. It's sad."
Cohen responded to Gosar's comments when answering questions from Rep. Jim Cooper, D-Tenn.
"It's that sort of behavior that I'm responsible for. I'm responsible for your silliness, because I did the same thing that you're doing now for 10 years," Cohen said. "I can only warn people. The more people that follow Mr. Trump as I did blindly, [the more people are] going to follow the same consequences that I'm suffering."
Editor's note: NPR has decided in this case to spell out the vulgar word that the president reportedly used because it meets our standard for use of offensive language: It is "absolutely integral to the meaning and spirit of the story being told."