In, “Legion,” the first thing Michael the archangel does when he arrives in Los Angeles two days before Christmas is slice off his wings and kill a couple of cops. If this behavior strikes you as decidedly un-angelic, wait’ll you learn that he’s actually the good guy!

This goofy slab of end-of-days hokum, the first feature by visual-effects technician Scott Stewart (he wrote the screenplay with film editor Peter Schink), isn’t “bad,” per se. It’s actually moderately enjoyable as far as these things go, except for a deadly dull middle section. You can forgive a lot of flaws in a movie about angels fighting for the future of humanity — you can even forgive the story not making a bit of sense, as this one doesn’t — but dullness will not be tolerated.

Michael (Paul Bettany) has come to earth with the rest of God’s angels to fulfill a rather dour mission. It seems God has lost faith in humanity and, having already played the flood card with Noah, opted for a straight-up extermination this time. But Michael disagrees with God on the subject of mankind’s worth, and has gone rogue to prevent the slaughter. Normally I’d say it’s a bad idea to side against God — he tends to win — but in this case, with God being uncharacteristically pessimistic, and with the complete annihilation of humanity seeming like an overreaction, I’m not sure what to think.

Then again, even if God is wrong, it’s not Michael’s place to say so. You’re an angel. Do what you’re told. If there’s one thing I can’t stand, it’s an uppity angel.

Anyway, the residents of a tiny Arizona crossroads called Paradise Falls are unaware of the impending apocalypse, much less of the role they will play in it. The town consists of a roadside diner and a garage, both owned by Bob Hanson (Dennis Quaid), whose grown son, Jeep (Lucas Black), fixes the cars while Bob runs the restaurant. The only impediment is that Jeep, despite his name, is not very good at his job, nor at much of anything, including thinking or making decisions or expressing himself. The diner’s waitress, Charlie (Adrianne Palicki), is eight months pregnant by some deadbeat guy and plans to give the baby up for adoption, though Jeep — at this point a platonic friend of hers — wants them to keep it, together. (And we’ll get a house on a farm with a picket fence, and we’ll have the baby, and we’ll live off the fat of the land and raise rabbits. Tell me about the rabbits, George!)

Mysterious things begin to happen at the diner. The phones and radios stop working, and the TV goes to a screen that says, “This is not a test.” One of the diner patrons says there’s no cause for alarm: “It’s one of those test things.” Someone else replies, “This don’t look like no test.” He is probably basing that assessment on the fact that the TV screen specifically says it is not a test. If this is how intelligent the humans are, then maybe I can see God’s point after all.

Michael arrives next, to warn them of what’s about to happen. (He drives up in a cop car from L.A., presumably the one belonging to the officers he killed. While he’s still a quarter-mile away on the dirt road, the Paradise Falls diner people identify it as an LAPD car. How they can see the LAPD logo from so far away, I do not know.) Why must Michael warn these people specifically? Well, remember how Charlie is pregnant? And there’s no father? And it’s almost Christmas? Can you connect those dots yourself, or do you need a chart?

Considering it’s about the potential death of all mankind, “Legion” is actually fairly small in scale. The destroying angels — who possess the bodies of ordinary humans, demon-style, then go about their work of death — descend on the diner, now heavily barricaded and fortified, and that’s where the bulk of the action takes place. From a story standpoint, it’s rather satisfying to have the fate of the world boiled down to one easy-to-manage location, rather than trying to show the entire apocalypse. I appreciate a film that knows what it’s capable of and doesn’t try to overreach.

Jeep is no good with a gun, of course; his character arc is that he must learn to shoot a person dead when the need arises, not sit there and vacillate. (Jeep is a chronic vacillator.) Also on hand are the cook, Percy (Charles S. Dutton), who has a hook for a hand (this is not explained); Kyle (Tyrese Gibson), who stopped for gas on his way to L.A.; and a bickering traveling couple (Jon Tenney and Kate Walsh) and their skanky teenage daughter (Willa Holland). Before the final battle, the film does the obligatory thing where there is calm for a few minutes and the characters talk to each other. Unfortunately, this portion of the movie goes on FOREVER, making it apparent that between this and the climactic battle, well, that’s all the filmmakers had.

The angel Gabriel (Kevin Durand), still carrying out God’s plan like an obedient seraph, shows up to argue with Michael, leading to some contradictory theology that it’s best not to think about. (Clearly the filmmakers didn’t.) If Michael and Gabriel have physical bodies, how come all the other angels have to possess people’s souls? What are their powers, exactly? Aren’t angels immortal? How do you kill one, then? And on and on.

Like I said, it’s not bad. It’s occasionally funny, sometimes on purpose. The action, when it arrives, is fairly satisfying. That flat middle chunk is the problem, the only thing keeping it from being a respectably stupid B-movie.

C (1 hr., 40 min.; R, a lot of harsh profanity, a lot of violence, some of it fairly bloody.)