Cracking hash of the type md5(substr(md5($pass)).$salt)

I have found this type of hash and would like to know if someone here has already cracked something similar so it can save me a bit of work.

I know I will lose quite a bit of speed because the GPU is good with computations and not with string operations but I don't care as I only want to crack a few hashes cracked as a POC.

So I have been thinking of the possible solutions:

1. Writing my own kernel is discarded. It would take me a lot of time because I know nothing about OpenCL plus as far as I know I wouldn't get a great speed benefit compared to the CPU.
2. Use hashcat to write all the hashes to a file, write a program that takes the substring and adds the salt, and use hashcat again using those md5 hashes as the word list. I haven't seen the option to write all hashes to a file, I believe this option would be great for these kinds of slightly modified hashes.
3. Modify an existing CPU md5 cracker. Any recommendation? 

Worst case scenario I can code a slow script and be done with it but I had curiosity about how a more knowledgeable person than me would do it.

I have a program I wrote a while back that can get you half way there:

This will handle the substr(md5(pass)) part. You would just need to wrap it in md5 + salt.
Thanks. I will give it a try.