You'll never be able to recover the original high-frequency content once it's gone, as far as I'm aware. You can synthesize the missing content with some degree of accuracy though...
If the encoded signal still contains useful information up to around 10kHz then you could low-pass this at 10kHz and call this signal "A".
Signal "A" can then be high-pass filtered at 5kHz to give a band-passed version of signal "A" from 5kHz to 10kHz. Call this signal "B".
Use an even-harmonic generator on signal "B" to create a 2nd-harmonic signal and band-pass filter this to 10kHz to 20kHz. Call this signal "C".
Mix all of signal "A" with a controlled amount of signal "C" and you'll have a full-spectrum audio signal with the content from 10kHz to 20kHz being synthesized from existing real-world frequency data.
How you'd go about doing this in software is totally beyond me. I'm an analogue and digital hardware engineer by training and know almost nothing about software. I did take the approach above using analogue electronics some 20 years ago and, although I didn't do any officially documented testing at the time, the results were very pleasing to most people who heard it.

Cheers, Slipstreem.