Resident Evil: Apocalypse

A month after the contamination of The Hive seen in Resident Evil, the Umbrella Corporation unwisely sends in a research team to reopen the complex and investigate the incident, since no one survived except Alice and Matt Addison, and as Alice was experimented on, Matt was put into a mysterious "Nemesis Program". When the team reprograms and opens the sealed blast doors, they are slaughtered by the massive crowd of infected.
With the infected released outside, they reach Raccoon City, spreading the infection among the general populace. Two days after the infection has spread to the surface, Umbrella, worried about possible worldwide contamination, quarantines Raccoon City and establishes a security perimeter around it, also evacuating all important Umbrella personnel out of the city. However, a girl named Angela Ashford (Sophie Vavasseur), daughter of the Level 6 Umbrella researcher Dr. Charles Ashford (Jared Harris), who is also the T-virus creator, goes missing, after an Umbrella security car transporting her out of Raccoon City suffers a traffic accident.
Alice awakens in the deserted Raccoon City hospital attached to wiring, and after strapping herself out of the wiring, she manages to unlock her room and step outside. Finding no one in the hospital, she wanders outside to find the city a ghost town, infected. She arms herself with a shotgun from a police car and wanders around the city to look for supplies. She is constantly disturbed by a man who keeps showing up in visions, who was revealed to be experimenting on her; she now has superhuman agility and strength.
While Umbrella is evacuating civilians at the Raven's Gate Bridge, the only exit out of the town, disgraced police officer Jill Valentine (Sienna Guillory), confers with Sargeant Payton Wells (Razaaq Adoti), her old ally, after hearing about the infection being true. However, the T-virus infects a man having a heart attack, turning him into a zombie that bites Payton at the city gates. Umbrella's supervisor and the head of the Raccoon City contamination operation, Timothy Cain (Thomas Kretschmann), worried that the T-virus has reached the gates, seals the exit and orders his soldiers to fire over the crowd's heads, scaring them back into the city.
Elsewhere, Carlos Olivera (Oded Fehr) and other Umbrella soldiers link up with Special Tactics And Rescue Squad (S.T.A.R.S.) units to defend against an onslaught of zombies. Their positions are overrun, causing Carlos and his team to retreat with a bitten Yuri (Stefen Hayes), who turns into a zombie and infects Carlos before being killed. Before Yuri becomes a zombie, however, Jill, Payton, and news reporter Terri Morales (Sandrine Holt) lock themselves in a church, where a panicked man is also hiding. Inspecting the church, Jill finds a priest who has been feeding other people to his zombified sister. Later on, they find the church is full of Lickers. The priest and the panicked man are killed, but Jill, Payton, and Terri are saved at the last minute by the heavily-armed Alice.
In the meantime, Umbrella dispatches their Nemesis Program to kill all remaining S.T.A.R.S. operatives to test him. When Nemesis encounters a surviving citizen, L.J. (Mike Epps), and members of S.T.A.R.S., the latter two entities open fire on Nemesis. Nemesis guns the team down but spares L.J.'s life when he drops his weapons. Meanwhile, Dr. Ashford has refused extraction, since Angela is missing, and soon discovers she is hiding in her school dormitory. He hacks into the city's CCTV system, uses it to contact Alice and the other survivors, and offers to arrange their evacuation in exchange for their rescuing Angela. Alice, seeing no other escape, accepts the offer.
After Payton, Terri, and Jill hear the offer they relent, intending to seal themselves until backup arrives, but Alice explains her choice; as the contamination cannot be put under control, a nuclear bomb will be dropped on Raccoon City, completely destroying it, and the media cover story will be a meltdown of the local nuclear power plant. Soon afterward, Payton shows signs of weakness from the T-virus, and as this happens, Nemesis appears and shoots Payton dead. Alice separates and assaults him, but he is invincible to fight. She lures him to a local store, where she tries to fight him, but she is overwhelmed and forced into retreat. Jill and Terri make it to the school, and they pick up L.J. on the way.
Inside the school, they find Carlos and Nicholai (Zack Ward) acting on the same offer. After encounters with zombie dogs and infected children who kill Nicholai and Terri, Alice saves the group again, and they find Angela. Angela reveals she was injected with the T-virus; she was ill with a genetic disease and forced to walk on crutches. Dr. Ashford created the T-virus to allow her to walk, and he created the anti-virus because of the T-virus' potential for mutations, but the virus was then impounded and weaponized by Umbrella. Alice uses Terri's video camera to record her story and injects Carlos with the anti-virus carried by Angela, to keep her infection in check.
Dr. Ashford gives Alice the location of the extraction point at City Hall, where the helicopter waits. The group makes it to the rendezvous but is cornered by Major Cain, who has caught wind of Dr. Ashford's intentions and is holding him prisoner. All but Alice are restrained, and seconds later Nemesis appears. The helicopter is actually Nemesis' extraction before the bomb detonation. Major Cain commands Alice to fight Nemesis. Alice refuses, but when Cain kills Dr. Ashford in cold blood, she relents and fights Nemesis, impaling him on a pole. Defeating Nemesis, she realizes he is Matt Addison, her friend and one of the survivors in The Hive, as he was infected by a Licker, he started to mutate and was placed in the program.
Her stand and refusing to kill him rekindles a trace of Matt's former humanity; he and Alice join forces and attack the Umbrella forces. Meanwhile, Carlos and Jill cut themselves free from their bonds and join the fight. Nemesis is killed, protecting Alice from an exploding helicopter. Alice punished Major Cain by throwing him out of the helicopter to be devoured by a horde of encroaching zombies, including Dr. Ashford. As the survivors escape in the remaining chopper, the nuclear missile detonates over the City Hall. The helicopter is caught in the blast wave and crashes. As the helicopter falls, a metal pole comes loose and is flung towards Angela. Alice moves in front of Angela and is impaled, saving her but killing Alice.
Some hours after the explosion, Umbrella employees locate the helicopter's crash site, deep in the Arklay Mountains. There, they find Alice's body, badly burned; the others are nowhere to be found. The media later shows that Terri's footage has been shown to the press, but despite Carlos and Jill's best efforts, Jill's earlier suggestion about Umbrella's media power comes true. Umbrella promotes a fake story about a nuclear power plant explosion near the city with ease, the infection is characterized as a hoax, and the media announces that Jill and Carlos are wanted by the police for questioning.
Three weeks later, in Umbrella's research facility in Detroit, Alice awakens. Led by Umbrella scientist Dr. Sam Isaacs (Iain Glen), the doctors begin questioning her. Soon, she recalls events from Raccoon City and before. She realizes that the doctor who appeared in her visions is Dr. Isaacs. She attacks him, fights her way out of the facility, and makes her way outside, only to be surrounded by more Umbrella guards holding her at gunpoint. Suddenly, Jill, Carlos, Angela, and L.J. pull up, disguised as Umbrella employees. Carlos shows the guards a written order placing her in his custody. Alice enters the vehicle, and Dr. Isaacs is shown saying, "Let them go", to an Umbrella guard and then saying, "Program Alice activated". A close-up of Alice's eye shows a flashing Umbrella logo, and she ignores them. The scene then pulls away from the car they are in and all the way out into space, where an Umbrella satellite is seen.

Question: Who shoots Payton dead?
Answer: Nemesis