There isn’t a law on the books anywhere in human society that can change the human heart for the better. All it can do is make the human heart worse by giving evil legitimacy, or in the case of gun control, giving evil power to overcome good once all the law-abiding citizens are stripped of their firearms.
That is why I am on record as saying that laws and governments should not run afoul of the values of the culture that gave it life. Not because I think that law will reinforce morality, even assuming that morality can be codified. But, because law can be twisted from its original purpose, and is powerful enough to override our cultural conscience and that which we already know as a matter of instinct to be right and wrong. Thus, the law can be more destructive of morality than it is supportive of it. When a law does not run afoul of the morality of the culture it is at best neutral. When a law does run afoul how’s the value of the culture it destroys at least a piece of the culture.
Ask yourself, are there unjust laws? If there are, then law cannot be the final arbiter of right and wrong.