static void windowing_and_mdct_ltp(AACContext *ac, float *out,

                                   float *in, IndividualChannelStream *ics)

{

    const float *lwindow      = ics->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_sine_1024;

    const float *swindow      = ics->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128;

    const float *lwindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;

    const float *swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;



    if (ics->window_sequence[0] != LONG_STOP_SEQUENCE) {

        ac->dsp.vector_fmul(in, in, lwindow_prev, 1024);

    } else {

        memset(in, 0, 448 * sizeof(float));

        ac->dsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);

        memcpy(in + 576, in + 576, 448 * sizeof(float));

    }

    if (ics->window_sequence[0] != LONG_START_SEQUENCE) {

        ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);

    } else {

        memcpy(in + 1024, in + 1024, 448 * sizeof(float));

        ac->dsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);

        memset(in + 1024 + 576, 0, 448 * sizeof(float));

    }

    ac->mdct_ltp.mdct_calc(&ac->mdct_ltp, out, in);

}

static void windowing_and_mdct_ltp(AACContext *ac, float *out,

                                   float *in, IndividualChannelStream *ics)

{

    const float *lwindow      = ics->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_sine_1024;

    const float *swindow      = ics->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128;

    const float *lwindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;

    const float *swindow_prev = ics->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;



    if (ics->window_sequence[0] != LONG_STOP_SEQUENCE) {

        ac->dsp.vector_fmul(in, in, lwindow_prev, 1024);

    } else {

        memset(in, 0, 448 * sizeof(float));

        ac->dsp.vector_fmul(in + 448, in + 448, swindow_prev, 128);

        memcpy(in + 576, in + 576, 448 * sizeof(float));

    }

    if (ics->window_sequence[0] != LONG_START_SEQUENCE) {

        ac->dsp.vector_fmul_reverse(in + 1024, in + 1024, lwindow, 1024);

    } else {

        memcpy(in + 1024, in + 1024, 448 * sizeof(float));

        ac->dsp.vector_fmul_reverse(in + 1024 + 448, in + 1024 + 448, swindow, 128);

        memset(in + 1024 + 576, 0, 448 * sizeof(float));

    }

    ac->mdct_ltp.mdct_calc(&ac->mdct_ltp, out, in);

}

        memcpy(in + 576, in + 576, 448 * sizeof(float));         memcpy(in + 1024, in + 1024, 448 * sizeof(float));
static void FUNC_0(AACContext *VAR_0, float *VAR_1,

                                   float *VAR_2, IndividualChannelStream *VAR_3)

{

    const float *VAR_4      = VAR_3->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_sine_1024;

    const float *VAR_5      = VAR_3->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128;

    const float *VAR_6 = VAR_3->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024;

    const float *VAR_7 = VAR_3->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128;



    if (VAR_3->window_sequence[0] != LONG_STOP_SEQUENCE) {

        VAR_0->dsp.vector_fmul(VAR_2, VAR_2, VAR_6, 1024);

    } else {

        memset(VAR_2, 0, 448 * sizeof(float));

        VAR_0->dsp.vector_fmul(VAR_2 + 448, VAR_2 + 448, VAR_7, 128);

        memcpy(VAR_2 + 576, VAR_2 + 576, 448 * sizeof(float));

    }

    if (VAR_3->window_sequence[0] != LONG_START_SEQUENCE) {

        VAR_0->dsp.vector_fmul_reverse(VAR_2 + 1024, VAR_2 + 1024, VAR_4, 1024);

    } else {

        memcpy(VAR_2 + 1024, VAR_2 + 1024, 448 * sizeof(float));

        VAR_0->dsp.vector_fmul_reverse(VAR_2 + 1024 + 448, VAR_2 + 1024 + 448, VAR_5, 128);

        memset(VAR_2 + 1024 + 576, 0, 448 * sizeof(float));

    }

    VAR_0->mdct_ltp.mdct_calc(&VAR_0->mdct_ltp, VAR_1, VAR_2);

}

static void FUNC_0(AACContext *VAR_0, float *VAR_1,
float *VAR_2, IndividualChannelStream *VAR_3)
{ const float *VAR_4      = VAR_3->use_kb_window[0] ? ff_aac_kbd_long_1024 : ff_sine_1024; const float *VAR_5      = VAR_3->use_kb_window[0] ? ff_aac_kbd_short_128 : ff_sine_128; const float *VAR_6 = VAR_3->use_kb_window[1] ? ff_aac_kbd_long_1024 : ff_sine_1024; const float *VAR_7 = VAR_3->use_kb_window[1] ? ff_aac_kbd_short_128 : ff_sine_128; if (VAR_3->window_sequence[0] != LONG_STOP_SEQUENCE) { VAR_0->dsp.vector_fmul(VAR_2, VAR_2, VAR_6, 1024); } else { memset(VAR_2, 0, 448 * sizeof(float)); VAR_0->dsp.vector_fmul(VAR_2 + 448, VAR_2 + 448, VAR_7, 128); memcpy(VAR_2 + 576, VAR_2 + 576, 448 * sizeof(float)); } if (VAR_3->window_sequence[0] != LONG_START_SEQUENCE) { VAR_0->dsp.vector_fmul_reverse(VAR_2 + 1024, VAR_2 + 1024, VAR_4, 1024); } else { memcpy(VAR_2 + 1024, VAR_2 + 1024, 448 * sizeof(float)); VAR_0->dsp.vector_fmul_reverse(VAR_2 + 1024 + 448, VAR_2 + 1024 + 448, VAR_5, 128); memset(VAR_2 + 1024 + 576, 0, 448 * sizeof(float)); } VAR_0->mdct_ltp.mdct_calc(&VAR_0->mdct_ltp, VAR_1, VAR_2); }