"Shang-Chi and the Legend of the Ten Rings," the Disney blockbuster featuring Marvel's first leading Asian superhero, dominated the North American box office for a third straight week, taking in $21.7 million, figures showed Monday.

The film -- starring Chinese-Canadian actor Simu Liu as a former assassin in the shadow of an evil father (Hong Kong legend Tony Leung) -- has so far earned $176.9 million in US and Canadian theaters, industry tracker Exhibitor Relations said.

Sci-fi comedy "Free Guy," from 20th Century, held steady in second spot with $5.1 million. It stars Ryan Reynolds as an everyman bank teller who discovers he's actually a non-player character in a huge video game.

Third place went to new entrant "Cry Macho," the latest gritty drama by the legendary Clint Eastwood, who directs and stars as a retired rodeo rider helping a teenager and his fighting rooster leave Mexico. The Warner Brothers film earned $4.4 million.

In fourth place, for a second week running, was Universal's slasher film "Candyman," a reimagining of the classic 1992 film of the same name. It took in $3.5 million this weekend, and so far has topped $53 million overall in North America.

Another horror movie, "Malignant," came in fifth with $2.7 million, while comedy/action new entry "Copshop" opened in sixth spot, with $2.3 million.

Rounding out the top 10 were:

"Jungle Cruise" ($2.1 million, for a total of $112.6 million)

"Paw Patrol: The Movie" ($1.7 million)

"Don't Breathe 2" ($670,000)

"The Eyes of Tammy Faye ($650,000)