I'm trying to write a keygen to a crack me that I'm learning from and I got stuck. What happens there is pretty simple:

Let's say that I entered the password: "12121212"

    XOR DWORD PTR DS:[ECX+EAX],1234567
    AND BYTE PTR DS:[ECX+EAX],0E
    ADD ECX,4
    CMP ECX,8

As we can see, the first `DWORD` of the password (`0x32313231`, *notice that x86 processors use* [*little-endian layout*][1]) is being `XORed` with `0x1234567` so `0x32313231 ^ 0x1234567` results with `0x56771233`.
Then there is an `AND` operation on the first byte (`0x56`) of the manipulated password and `0xe` which results with `0x6`. After that, the program repeats the operations, this time on the second `DWORD` of the password.

My question is: I know I can reverse `XOR` but is it possible with `AND` operation?
 


  [1]: https://en.wikipedia.org/wiki/Endianness