c – Making code elegant, clean and optimized

I have some piece of code that I already optimized, however I found that there is an edge case that I should handle and I am unable to make it elegant.

char* data = get_data_from_queue(data);
Album album;
get_album(data, &album);
if (get_album_vals(album) <= 0) {
    printf("Album doesn't exist, will try to create it");
    return should_create_album(album);
}
do_stuff_with_data(&data);

Now, when I don’t find album vals, under certain conditions (< 0.01%), it may be a golden album.
If it is a golden album, under certain conditions (<0.01%), it may need a second chance.

This is the modified code that should keep same behavior, apart from the second chance for golden album:

char* data = get_data_from_queue(data);
Album album;
get_album(data, &album);
if (get_album_vals(album) <= 0) {
    int is_golden_album = 0;
    ret = should_create_album(album);
    if (!ret && album_might_be_golden(album)) {
        GoldenAlbum golden_album;
        if (get_golden_album(data, &golden_album)
        {
            ret = should_create_album(golden_album);
        } else {
            is_golden_album = 1;
        }
    }
    if (is_golden_album > 0)
    {
        return ret;
    }
}
do_stuff_with_data(&data);

However the new code is awful and I am not sure how to make it more elegant and optimized and I have spent way too much time on this.

Anyone have a suggestion?