The problem of the stop can be explained as: given a program and an entry for it, will it complete its execution and return a response or will it go into an infinite cycle?

This was proven undecidable by Turing, unquestionable. The point is: I came up with a simple way to solve such a problem.

If I execute a complete dump of memory and registers at each program execution state, I will have the program state at any moment. From there it is enough to arrive if there was any repetition of state. Since all that the program can do is to transition to the next state based only on the previous state, if the state repeated then it is immediate to infer that the program is entering an infinite loop.

Memory is finite, so there is a finite number of states. Any program that does not end will eventually repeat a state. I'm not saying that this is feasible, after all in a memory of four gigs we have in the at least 2 elevated to 4000000000 states. I do not even know how many digits this has.

My question is: what is wrong? Clearly the problem is undecidable. Where does this method fail?