As an 17-year old highschool student with some interests into cryptography I developed following block cipher:
Let $H$ be an irreversible hash function with the block length $L$, which also is the block and key length. (I used SHA-256 for my example implementation below).
$O$ is the original key while $K$ is the expanded (and mutated) key.
First, the key is expanded to the length of the plain text $P$ using following scheme:
$K_n=H(H(K_0,n) \oplus O)$ ($K_0,n$ should be the n'th byte of $K_0$)
Next, the ciphertext $C$ is set to $P$ and following modification of the feistel round is being run 64 times, please note that $C_0$ are the first 64 bits of an block, $C_1$ the second 64 bit, etc.
$C_2 = C_2 \oplus ((C_3 \oplus K_3) \lll 41)$
$C_1 = C_1 \oplus ((C_2 \oplus K_2) \lll 29)$
$C_0 = C_0 \oplus ((C_1 \oplus K_1) \lll 13)$
$C_3 = C_3 \oplus ((C_0 \oplus K_0) \lll 5)$
After each round, the key mutates by $K_n = H(K_n \oplus O)$, this key mutation is not shown in the graph below.
To decrypt, you'll just have to calculate the round keys and apply the rules above in reversed order. Functional java code can be found here.
Sadly, I'm not able to perform an any "modern" cryptoanalysis due to lack of mathematical knowledge, but here are some thoughts on my cipher:
You shouldn't be able to get $O$ unless you are able to break $H$.
Since key expansion and mutation make use of $O$, you shouldn't be able to predict another round key given you already have one and don't know $O$.
An attack vector could be predicting $H$ outcome even without knowing it's input.
I hope you have more idea's when it comes to attacking this algorithm and / or are able to perform known cryptoanalysis.
Thanks in advance
// Edit: Updated algorithm and added graph