At the end of the loop L || R equals the original plaintext 0x0123456789ABCDEF . This gives us that must have been used during encryption.
The easiest way to invert it is to ? No – far too many. Fortunately the key schedule is linear with respect to XOR and rotation, and the Feistel function is bijective for a given sub‑key, so we can reverse the algorithm step by step. dvdes-631
A quick glance shows: