libavcodec/mpegaudiodec.c:2525: error: Buffer Overrun L1
  Offset: [31, +oo] (⇐ [0, +oo] + 31) Size: 2 by call to `mp_decode_frame`.

libavcodec/mpegaudiodec.c:2519:19: Call
2517.         assert (m != NULL);
2518. 
2519.         header = (AV_RB32(buf) & 0x000fffff) | s->syncword; // patch header
                        ^
2520. 
2521.         if (ff_mpa_check_header(header) < 0) // Bad header, discard block

libavutil/bswap.h:60:1: Parameter `x`
  58. 
  59. #ifndef bswap_32
  60. static av_always_inline av_const uint32_t bswap_32(uint32_t x)
      ^
  61. {
  62.     x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);

libavutil/bswap.h:62:5: Assignment
  60. static av_always_inline av_const uint32_t bswap_32(uint32_t x)
  61. {
  62.     x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
          ^
  63.     x= (x>>16) | (x<<16);
  64.     return x;

libavutil/bswap.h:63:5: Assignment
  61. {
  62.     x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
  63.     x= (x>>16) | (x<<16);
          ^
  64.     return x;
  65. }

libavutil/bswap.h:64:5: Assignment
  62.     x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);
  63.     x= (x>>16) | (x<<16);
  64.     return x;
          ^
  65. }
  66. #endif

libavcodec/mpegaudiodec.c:2519:9: Assignment
2517.         assert (m != NULL);
2518. 
2519.         header = (AV_RB32(buf) & 0x000fffff) | s->syncword; // patch header
              ^
2520. 
2521.         if (ff_mpa_check_header(header) < 0) // Bad header, discard block

libavcodec/mpegaudiodec.c:2524:9: Call
2522.             break;
2523. 
2524.         ff_mpegaudio_decode_header((MPADecodeHeader *)m, header);
              ^
2525.         out_size += mp_decode_frame(m, outptr, buf, fsize);
2526.         buf += fsize;

libavcodec/mpegaudiodecheader.c:40:9: Assignment
  38.     if (header & (1<<20)) {
  39.         s->lsf = (header & (1<<19)) ? 0 : 1;
  40.         mpeg25 = 0;
              ^
  41.     } else {
  42.         s->lsf = 1;

libavcodec/mpegaudiodecheader.c:50:5: Assignment
  48.     sample_rate_index = (header >> 10) & 3;
  49.     sample_rate = ff_mpa_freq_tab[sample_rate_index] >> (s->lsf + mpeg25);
  50.     sample_rate_index += 3 * (s->lsf + mpeg25);
          ^
  51.     s->sample_rate_index = sample_rate_index;
  52.     s->error_protection = ((header >> 16) & 1) ^ 1;

libavcodec/mpegaudiodecheader.c:51:5: Assignment
  49.     sample_rate = ff_mpa_freq_tab[sample_rate_index] >> (s->lsf + mpeg25);
  50.     sample_rate_index += 3 * (s->lsf + mpeg25);
  51.     s->sample_rate_index = sample_rate_index;
          ^
  52.     s->error_protection = ((header >> 16) & 1) ^ 1;
  53.     s->sample_rate = sample_rate;

libavcodec/mpegaudiodec.c:2525:21: Call
2523. 
2524.         ff_mpegaudio_decode_header((MPADecodeHeader *)m, header);
2525.         out_size += mp_decode_frame(m, outptr, buf, fsize);
                          ^
2526.         buf += fsize;
2527.         len -= fsize;

libavcodec/mpegaudiodec.c:2205:1: Parameter `s->synth_buf[*]`
  2203. }
  2204. 
  2205. static int mp_decode_frame(MPADecodeContext *s,
        ^
  2206.                            OUT_INT *samples, const uint8_t *buf, int buf_size)
  2207. {

libavcodec/mpegaudiodec.c:2265:13: Call
  2263.         samples_ptr = samples + ch;
  2264.         for(i=0;i<nb_frames;i++) {
  2265.             RENAME(ff_mpa_synth_filter)(
                    ^
  2266. #if CONFIG_FLOAT
  2267.                          s,

libavcodec/mpegaudiodec.c:901:1: Parameter `*synth_buf_ptr`
    899. /* XXX: optimize by avoiding ring buffer usage */
    900. #if CONFIG_FLOAT
    901. void ff_mpa_synth_filter_float(MPADecodeContext *s, float *synth_buf_ptr,
         ^
    902.                                int *synth_buf_offset,
    903.                                float *window, int *dither_state,

libavcodec/mpegaudiodec.c:911:5: Assignment
    909. 
    910.     offset = *synth_buf_offset;
    911.     synth_buf = synth_buf_ptr + offset;
             ^
    912. 
    913.     dct32(synth_buf, sb_samples);

libavcodec/mpegaudiodec.c:913:5: Call
    911.     synth_buf = synth_buf_ptr + offset;
    912. 
    913.     dct32(synth_buf, sb_samples);
             ^
    914.     s->apply_window_mp3(synth_buf, window, dither_state, samples, incr);
    915. 

libavcodec/mpegaudiodec.c:568:1: <Length trace>
566. 
567. /* DCT32 without 1/sqrt(2) coef zero scaling. */
568. static void dct32(INTFLOAT *out, const INTFLOAT *tab)
     ^
569. {
570.     INTFLOAT tmp0, tmp1;

libavcodec/mpegaudiodec.c:568:1: Parameter `*out`
      566. 
      567. /* DCT32 without 1/sqrt(2) coef zero scaling. */
      568. static void dct32(INTFLOAT *out, const INTFLOAT *tab)
           ^
      569. {
      570.     INTFLOAT tmp0, tmp1;

libavcodec/mpegaudiodec.c:728:5: Array access: Offset: [31, +oo] (⇐ [0, +oo] + 31) Size: 2 by call to `mp_decode_frame` 
      726.     out[23] = val29 + val19;
      727.     out[15] = val30 + val17;
      728.     out[31] = val31;
               ^
      729. }
      730. 

static void dct32(INTFLOAT *out, const INTFLOAT *tab)
{
    INTFLOAT tmp0, tmp1;
    INTFLOAT val0 , val1 , val2 , val3 , val4 , val5 , val6 , val7 ,
             val8 , val9 , val10, val11, val12, val13, val14, val15,
             val16, val17, val18, val19, val20, val21, val22, val23,
             val24, val25, val26, val27, val28, val29, val30, val31;
    BF0( 0, 31, COS0_0 , 1);
    BF0(15, 16, COS0_15, 5);
    BF( 0, 15, COS1_0 , 1);
    BF(16, 31,-COS1_0 , 1);
    BF0( 7, 24, COS0_7 , 1);
    BF0( 8, 23, COS0_8 , 1);
    BF( 7,  8, COS1_7 , 4);
    BF(23, 24,-COS1_7 , 4);
    BF( 0,  7, COS2_0 , 1);
    BF( 8, 15,-COS2_0 , 1);
    BF(16, 23, COS2_0 , 1);
    BF(24, 31,-COS2_0 , 1);
    BF0( 3, 28, COS0_3 , 1);
    BF0(12, 19, COS0_12, 2);
    BF( 3, 12, COS1_3 , 1);
    BF(19, 28,-COS1_3 , 1);
    BF0( 4, 27, COS0_4 , 1);
    BF0(11, 20, COS0_11, 2);
    BF( 4, 11, COS1_4 , 1);
    BF(20, 27,-COS1_4 , 1);
    BF( 3,  4, COS2_3 , 3);
    BF(11, 12,-COS2_3 , 3);
    BF(19, 20, COS2_3 , 3);
    BF(27, 28,-COS2_3 , 3);
    BF( 0,  3, COS3_0 , 1);
    BF( 4,  7,-COS3_0 , 1);
    BF( 8, 11, COS3_0 , 1);
    BF(12, 15,-COS3_0 , 1);
    BF(16, 19, COS3_0 , 1);
    BF(20, 23,-COS3_0 , 1);
    BF(24, 27, COS3_0 , 1);
    BF(28, 31,-COS3_0 , 1);
    BF0( 1, 30, COS0_1 , 1);
    BF0(14, 17, COS0_14, 3);
    BF( 1, 14, COS1_1 , 1);
    BF(17, 30,-COS1_1 , 1);
    BF0( 6, 25, COS0_6 , 1);
    BF0( 9, 22, COS0_9 , 1);
    BF( 6,  9, COS1_6 , 2);
    BF(22, 25,-COS1_6 , 2);
    BF( 1,  6, COS2_1 , 1);
    BF( 9, 14,-COS2_1 , 1);
    BF(17, 22, COS2_1 , 1);
    BF(25, 30,-COS2_1 , 1);
    BF0( 2, 29, COS0_2 , 1);
    BF0(13, 18, COS0_13, 3);
    BF( 2, 13, COS1_2 , 1);
    BF(18, 29,-COS1_2 , 1);
    BF0( 5, 26, COS0_5 , 1);
    BF0(10, 21, COS0_10, 1);
    BF( 5, 10, COS1_5 , 2);
    BF(21, 26,-COS1_5 , 2);
    BF( 2,  5, COS2_2 , 1);
    BF(10, 13,-COS2_2 , 1);
    BF(18, 21, COS2_2 , 1);
    BF(26, 29,-COS2_2 , 1);
    BF( 1,  2, COS3_1 , 2);
    BF( 5,  6,-COS3_1 , 2);
    BF( 9, 10, COS3_1 , 2);
    BF(13, 14,-COS3_1 , 2);
    BF(17, 18, COS3_1 , 2);
    BF(21, 22,-COS3_1 , 2);
    BF(25, 26, COS3_1 , 2);
    BF(29, 30,-COS3_1 , 2);
    BF1( 0,  1,  2,  3);
    BF2( 4,  5,  6,  7);
    BF1( 8,  9, 10, 11);
    BF2(12, 13, 14, 15);
    BF1(16, 17, 18, 19);
    BF2(20, 21, 22, 23);
    BF1(24, 25, 26, 27);
    BF2(28, 29, 30, 31);
    ADD( 8, 12);
    ADD(12, 10);
    ADD(10, 14);
    ADD(14,  9);
    ADD( 9, 13);
    ADD(13, 11);
    ADD(11, 15);
    out[ 0] = val0;
    out[16] = val1;
    out[ 8] = val2;
    out[24] = val3;
    out[ 4] = val4;
    out[20] = val5;
    out[12] = val6;
    out[28] = val7;
    out[ 2] = val8;
    out[18] = val9;
    out[10] = val10;
    out[26] = val11;
    out[ 6] = val12;
    out[22] = val13;
    out[14] = val14;
    out[30] = val15;
    ADD(24, 28);
    ADD(28, 26);
    ADD(26, 30);
    ADD(30, 25);
    ADD(25, 29);
    ADD(29, 27);
    ADD(27, 31);
    out[ 1] = val16 + val24;
    out[17] = val17 + val25;
    out[ 9] = val18 + val26;
    out[25] = val19 + val27;
    out[ 5] = val20 + val28;
    out[21] = val21 + val29;
    out[13] = val22 + val30;
    out[29] = val23 + val31;
    out[ 3] = val24 + val20;
    out[19] = val25 + val21;
    out[11] = val26 + val22;
    out[27] = val27 + val23;
    out[ 7] = val28 + val18;
    out[23] = val29 + val19;
    out[15] = val30 + val17;
    out[31] = val31;
}
['static int decode_frame_mp3on4(AVCodecContext * avctx,\n                        void *data, int *data_size,\n                        AVPacket *avpkt)\n{\n    const uint8_t *buf = avpkt->data;\n    int buf_size = avpkt->size;\n    MP3On4DecodeContext *s = avctx->priv_data;\n    MPADecodeContext *m;\n    int fsize, len = buf_size, out_size = 0;\n    uint32_t header;\n    OUT_INT *out_samples = data;\n    OUT_INT decoded_buf[MPA_FRAME_SIZE * MPA_MAX_CHANNELS];\n    OUT_INT *outptr, *bp;\n    int fr, j, n;\n    if(*data_size < MPA_FRAME_SIZE * MPA_MAX_CHANNELS * s->frames * sizeof(OUT_INT))\n        return -1;\n    *data_size = 0;\n    if (buf_size < HEADER_SIZE)\n        return -1;\n    outptr = s->frames == 1 ? out_samples : decoded_buf;\n    avctx->bit_rate = 0;\n    for (fr = 0; fr < s->frames; fr++) {\n        fsize = AV_RB16(buf) >> 4;\n        fsize = FFMIN3(fsize, len, MPA_MAX_CODED_FRAME_SIZE);\n        m = s->mp3decctx[fr];\n        assert (m != NULL);\n        header = (AV_RB32(buf) & 0x000fffff) | s->syncword;\n        if (ff_mpa_check_header(header) < 0)\n            break;\n        ff_mpegaudio_decode_header((MPADecodeHeader *)m, header);\n        out_size += mp_decode_frame(m, outptr, buf, fsize);\n        buf += fsize;\n        len -= fsize;\n        if(s->frames > 1) {\n            n = m->avctx->frame_size*m->nb_channels;\n            bp = out_samples + s->coff[fr];\n            if(m->nb_channels == 1) {\n                for(j = 0; j < n; j++) {\n                    *bp = decoded_buf[j];\n                    bp += avctx->channels;\n                }\n            } else {\n                for(j = 0; j < n; j++) {\n                    bp[0] = decoded_buf[j++];\n                    bp[1] = decoded_buf[j];\n                    bp += avctx->channels;\n                }\n            }\n        }\n        avctx->bit_rate += m->bit_rate;\n    }\n    avctx->sample_rate = s->mp3decctx[0]->sample_rate;\n    *data_size = out_size;\n    return buf_size;\n}', 'static av_always_inline av_const uint32_t bswap_32(uint32_t x)\n{\n    x= ((x<<8)&0xFF00FF00) | ((x>>8)&0x00FF00FF);\n    x= (x>>16) | (x<<16);\n    return x;\n}', 'int ff_mpegaudio_decode_header(MPADecodeHeader *s, uint32_t header)\n{\n    int sample_rate, frame_size, mpeg25, padding;\n    int sample_rate_index, bitrate_index;\n    if (header & (1<<20)) {\n        s->lsf = (header & (1<<19)) ? 0 : 1;\n        mpeg25 = 0;\n    } else {\n        s->lsf = 1;\n        mpeg25 = 1;\n    }\n    s->layer = 4 - ((header >> 17) & 3);\n    sample_rate_index = (header >> 10) & 3;\n    sample_rate = ff_mpa_freq_tab[sample_rate_index] >> (s->lsf + mpeg25);\n    sample_rate_index += 3 * (s->lsf + mpeg25);\n    s->sample_rate_index = sample_rate_index;\n    s->error_protection = ((header >> 16) & 1) ^ 1;\n    s->sample_rate = sample_rate;\n    bitrate_index = (header >> 12) & 0xf;\n    padding = (header >> 9) & 1;\n    s->mode = (header >> 6) & 3;\n    s->mode_ext = (header >> 4) & 3;\n    if (s->mode == MPA_MONO)\n        s->nb_channels = 1;\n    else\n        s->nb_channels = 2;\n    if (bitrate_index != 0) {\n        frame_size = ff_mpa_bitrate_tab[s->lsf][s->layer - 1][bitrate_index];\n        s->bit_rate = frame_size * 1000;\n        switch(s->layer) {\n        case 1:\n            frame_size = (frame_size * 12000) / sample_rate;\n            frame_size = (frame_size + padding) * 4;\n            break;\n        case 2:\n            frame_size = (frame_size * 144000) / sample_rate;\n            frame_size += padding;\n            break;\n        default:\n        case 3:\n            frame_size = (frame_size * 144000) / (sample_rate << s->lsf);\n            frame_size += padding;\n            break;\n        }\n        s->frame_size = frame_size;\n    } else {\n        return 1;\n    }\n#if defined(DEBUG)\n    dprintf(NULL, "layer%d, %d Hz, %d kbits/s, ",\n           s->layer, s->sample_rate, s->bit_rate);\n    if (s->nb_channels == 2) {\n        if (s->layer == 3) {\n            if (s->mode_ext & MODE_EXT_MS_STEREO)\n                dprintf(NULL, "ms-");\n            if (s->mode_ext & MODE_EXT_I_STEREO)\n                dprintf(NULL, "i-");\n        }\n        dprintf(NULL, "stereo");\n    } else {\n        dprintf(NULL, "mono");\n    }\n    dprintf(NULL, "\\n");\n#endif\n    return 0;\n}', 'static int mp_decode_frame(MPADecodeContext *s,\n                           OUT_INT *samples, const uint8_t *buf, int buf_size)\n{\n    int i, nb_frames, ch;\n    OUT_INT *samples_ptr;\n    init_get_bits(&s->gb, buf + HEADER_SIZE, (buf_size - HEADER_SIZE)*8);\n    if (s->error_protection)\n        skip_bits(&s->gb, 16);\n    dprintf(s->avctx, "frame %d:\\n", s->frame_count);\n    switch(s->layer) {\n    case 1:\n        s->avctx->frame_size = 384;\n        nb_frames = mp_decode_layer1(s);\n        break;\n    case 2:\n        s->avctx->frame_size = 1152;\n        nb_frames = mp_decode_layer2(s);\n        break;\n    case 3:\n        s->avctx->frame_size = s->lsf ? 576 : 1152;\n    default:\n        nb_frames = mp_decode_layer3(s);\n        s->last_buf_size=0;\n        if(s->in_gb.buffer){\n            align_get_bits(&s->gb);\n            i= get_bits_left(&s->gb)>>3;\n            if(i >= 0 && i <= BACKSTEP_SIZE){\n                memmove(s->last_buf, s->gb.buffer + (get_bits_count(&s->gb)>>3), i);\n                s->last_buf_size=i;\n            }else\n                av_log(s->avctx, AV_LOG_ERROR, "invalid old backstep %d\\n", i);\n            s->gb= s->in_gb;\n            s->in_gb.buffer= NULL;\n        }\n        align_get_bits(&s->gb);\n        assert((get_bits_count(&s->gb) & 7) == 0);\n        i= get_bits_left(&s->gb)>>3;\n        if(i<0 || i > BACKSTEP_SIZE || nb_frames<0){\n            if(i<0)\n                av_log(s->avctx, AV_LOG_ERROR, "invalid new backstep %d\\n", i);\n            i= FFMIN(BACKSTEP_SIZE, buf_size - HEADER_SIZE);\n        }\n        assert(i <= buf_size - HEADER_SIZE && i>= 0);\n        memcpy(s->last_buf + s->last_buf_size, s->gb.buffer + buf_size - HEADER_SIZE - i, i);\n        s->last_buf_size += i;\n        break;\n    }\n    for(ch=0;ch<s->nb_channels;ch++) {\n        samples_ptr = samples + ch;\n        for(i=0;i<nb_frames;i++) {\n            RENAME(ff_mpa_synth_filter)(\n#if CONFIG_FLOAT\n                         s,\n#endif\n                         s->synth_buf[ch], &(s->synth_buf_offset[ch]),\n                         RENAME(ff_mpa_synth_window), &s->dither_state,\n                         samples_ptr, s->nb_channels,\n                         s->sb_samples[ch][i]);\n            samples_ptr += 32 * s->nb_channels;\n        }\n    }\n    return nb_frames * 32 * sizeof(OUT_INT) * s->nb_channels;\n}', 'static void dct32(INTFLOAT *out, const INTFLOAT *tab)\n{\n    INTFLOAT tmp0, tmp1;\n    INTFLOAT val0 , val1 , val2 , val3 , val4 , val5 , val6 , val7 ,\n             val8 , val9 , val10, val11, val12, val13, val14, val15,\n             val16, val17, val18, val19, val20, val21, val22, val23,\n             val24, val25, val26, val27, val28, val29, val30, val31;\n    BF0( 0, 31, COS0_0 , 1);\n    BF0(15, 16, COS0_15, 5);\n    BF( 0, 15, COS1_0 , 1);\n    BF(16, 31,-COS1_0 , 1);\n    BF0( 7, 24, COS0_7 , 1);\n    BF0( 8, 23, COS0_8 , 1);\n    BF( 7,  8, COS1_7 , 4);\n    BF(23, 24,-COS1_7 , 4);\n    BF( 0,  7, COS2_0 , 1);\n    BF( 8, 15,-COS2_0 , 1);\n    BF(16, 23, COS2_0 , 1);\n    BF(24, 31,-COS2_0 , 1);\n    BF0( 3, 28, COS0_3 , 1);\n    BF0(12, 19, COS0_12, 2);\n    BF( 3, 12, COS1_3 , 1);\n    BF(19, 28,-COS1_3 , 1);\n    BF0( 4, 27, COS0_4 , 1);\n    BF0(11, 20, COS0_11, 2);\n    BF( 4, 11, COS1_4 , 1);\n    BF(20, 27,-COS1_4 , 1);\n    BF( 3,  4, COS2_3 , 3);\n    BF(11, 12,-COS2_3 , 3);\n    BF(19, 20, COS2_3 , 3);\n    BF(27, 28,-COS2_3 , 3);\n    BF( 0,  3, COS3_0 , 1);\n    BF( 4,  7,-COS3_0 , 1);\n    BF( 8, 11, COS3_0 , 1);\n    BF(12, 15,-COS3_0 , 1);\n    BF(16, 19, COS3_0 , 1);\n    BF(20, 23,-COS3_0 , 1);\n    BF(24, 27, COS3_0 , 1);\n    BF(28, 31,-COS3_0 , 1);\n    BF0( 1, 30, COS0_1 , 1);\n    BF0(14, 17, COS0_14, 3);\n    BF( 1, 14, COS1_1 , 1);\n    BF(17, 30,-COS1_1 , 1);\n    BF0( 6, 25, COS0_6 , 1);\n    BF0( 9, 22, COS0_9 , 1);\n    BF( 6,  9, COS1_6 , 2);\n    BF(22, 25,-COS1_6 , 2);\n    BF( 1,  6, COS2_1 , 1);\n    BF( 9, 14,-COS2_1 , 1);\n    BF(17, 22, COS2_1 , 1);\n    BF(25, 30,-COS2_1 , 1);\n    BF0( 2, 29, COS0_2 , 1);\n    BF0(13, 18, COS0_13, 3);\n    BF( 2, 13, COS1_2 , 1);\n    BF(18, 29,-COS1_2 , 1);\n    BF0( 5, 26, COS0_5 , 1);\n    BF0(10, 21, COS0_10, 1);\n    BF( 5, 10, COS1_5 , 2);\n    BF(21, 26,-COS1_5 , 2);\n    BF( 2,  5, COS2_2 , 1);\n    BF(10, 13,-COS2_2 , 1);\n    BF(18, 21, COS2_2 , 1);\n    BF(26, 29,-COS2_2 , 1);\n    BF( 1,  2, COS3_1 , 2);\n    BF( 5,  6,-COS3_1 , 2);\n    BF( 9, 10, COS3_1 , 2);\n    BF(13, 14,-COS3_1 , 2);\n    BF(17, 18, COS3_1 , 2);\n    BF(21, 22,-COS3_1 , 2);\n    BF(25, 26, COS3_1 , 2);\n    BF(29, 30,-COS3_1 , 2);\n    BF1( 0,  1,  2,  3);\n    BF2( 4,  5,  6,  7);\n    BF1( 8,  9, 10, 11);\n    BF2(12, 13, 14, 15);\n    BF1(16, 17, 18, 19);\n    BF2(20, 21, 22, 23);\n    BF1(24, 25, 26, 27);\n    BF2(28, 29, 30, 31);\n    ADD( 8, 12);\n    ADD(12, 10);\n    ADD(10, 14);\n    ADD(14,  9);\n    ADD( 9, 13);\n    ADD(13, 11);\n    ADD(11, 15);\n    out[ 0] = val0;\n    out[16] = val1;\n    out[ 8] = val2;\n    out[24] = val3;\n    out[ 4] = val4;\n    out[20] = val5;\n    out[12] = val6;\n    out[28] = val7;\n    out[ 2] = val8;\n    out[18] = val9;\n    out[10] = val10;\n    out[26] = val11;\n    out[ 6] = val12;\n    out[22] = val13;\n    out[14] = val14;\n    out[30] = val15;\n    ADD(24, 28);\n    ADD(28, 26);\n    ADD(26, 30);\n    ADD(30, 25);\n    ADD(25, 29);\n    ADD(29, 27);\n    ADD(27, 31);\n    out[ 1] = val16 + val24;\n    out[17] = val17 + val25;\n    out[ 9] = val18 + val26;\n    out[25] = val19 + val27;\n    out[ 5] = val20 + val28;\n    out[21] = val21 + val29;\n    out[13] = val22 + val30;\n    out[29] = val23 + val31;\n    out[ 3] = val24 + val20;\n    out[19] = val25 + val21;\n    out[11] = val26 + val22;\n    out[27] = val27 + val23;\n    out[ 7] = val28 + val18;\n    out[23] = val29 + val19;\n    out[15] = val30 + val17;\n    out[31] = val31;\n}']