Понятен ли код функции без комментариев?

Написал функцию, и после того как написал ее, мне она показалась слишком запутанной (сам я ее понимаю), интересно было бы узнать можно ли без контекста и комментариев понять ее смысл, т.к. этот код пойдет на гитлаб:

struct kodik_material_title_t {
    char *psz_unique;
    char *psz_original;
    char *psz_other;
};

int
libkodik_material_title_from_json(json_object const *p_json, struct kodik_material_title_t **pp_object) {
    json_object *p_unique, *p_original, *p_other;
    json_bool b_json;
    int i_result = -11; /* Bad json object */
    if (0 != (b_json = json_object_object_get_ex(p_json, "title", &p_unique))) {
        if (0 != (b_json = json_object_object_get_ex(p_json, "title_orig", &p_original))) {
            if (0 == (i_result = libkodik_material_title_new(pp_object))) {
                size_t i_unique = 0, i_original = 0, i_other = 0;
                i_unique = json_object_get_string_len(p_unique);
                i_original = json_object_get_string_len(p_original);
                if (0 != (b_json = json_object_object_get_ex(p_json, "other_title", &p_other))) {
                    i_other = json_object_get_string_len(p_other);
                }
                if ( (NULL != ((*pp_object)->psz_unique     = calloc(i_unique   + 1, sizeof(char)))) &&
                      NULL != ((*pp_object)->psz_original   = calloc(i_original + 1, sizeof(char))) ||
                     (NULL != (1 != b_json/* no field other_title ??? cmp NULL & NULL else cmp with result of calloc */
                                ? NULL
                                : ((*pp_object)->psz_other = calloc(i_other    + 1, sizeof(char)))))) {
                    (void) strncpy((*pp_object)->psz_unique, json_object_get_string(p_unique), i_unique);
                    (void) strncpy((*pp_object)->psz_original, json_object_get_string(p_original), i_original);
                    if (0 != b_json) {
                        (void) strncpy((*pp_object)->psz_other, json_object_get_string(p_other), i_other);
                    }
                } else {
                    i_result = -10;
                    libkodik_material_title_free(pp_object);
                }
            }
        }
    }
    return i_result;
}

Ответы (0 шт):