void av_md5_update(AVMD5 *ctx, const uint8_t *src, int len)

{

    const uint8_t *end;

    int j;



    j = ctx->len & 63;

    ctx->len += len;



    if (j) {

        int cnt = FFMIN(len, 64 - j);

        memcpy(ctx->block + j, src, cnt);

        src += cnt;

        len -= cnt;

        if (j + cnt < 64)

            return;

        body(ctx->ABCD, (uint32_t *)ctx->block);

    }



    end = src + (len & ~63);

    if (HAVE_BIGENDIAN || (!HAVE_FAST_UNALIGNED && ((intptr_t)src & 3))) {

       while (src < end) {

           memcpy(ctx->block, src, 64);

           body(ctx->ABCD, (uint32_t *) ctx->block);

           src += 64;

        }

    } else {

        while (src < end) {

            body(ctx->ABCD, (uint32_t *)src);

            src += 64;

        }

    }

    len &= 63;

    if (len > 0)

        memcpy(ctx->block, src, len);

}

void av_md5_update(AVMD5 *ctx, const uint8_t *src, int len)

{

    const uint8_t *end;

    int j;



    j = ctx->len & 63;

    ctx->len += len;



    if (j) {

        int cnt = FFMIN(len, 64 - j);

        memcpy(ctx->block + j, src, cnt);

        src += cnt;

        len -= cnt;

        if (j + cnt < 64)

            return;

        body(ctx->ABCD, (uint32_t *)ctx->block);

    }



    end = src + (len & ~63);

    if (HAVE_BIGENDIAN || (!HAVE_FAST_UNALIGNED && ((intptr_t)src & 3))) {

       while (src < end) {

           memcpy(ctx->block, src, 64);

           body(ctx->ABCD, (uint32_t *) ctx->block);

           src += 64;

        }

    } else {

        while (src < end) {

            body(ctx->ABCD, (uint32_t *)src);

            src += 64;

        }

    }

    len &= 63;

    if (len > 0)

        memcpy(ctx->block, src, len);

}

void FUNC_0(AVMD5 *VAR_0, const uint8_t *VAR_1, int VAR_2)

{

    const uint8_t *VAR_3;

    int VAR_4;



    VAR_4 = VAR_0->VAR_2 & 63;

    VAR_0->VAR_2 += VAR_2;



    if (VAR_4) {

        int VAR_5 = FFMIN(VAR_2, 64 - VAR_4);

        memcpy(VAR_0->block + VAR_4, VAR_1, VAR_5);

        VAR_1 += VAR_5;

        VAR_2 -= VAR_5;

        if (VAR_4 + VAR_5 < 64)

            return;

        body(VAR_0->ABCD, (uint32_t *)VAR_0->block);

    }



    VAR_3 = VAR_1 + (VAR_2 & ~63);

    if (HAVE_BIGENDIAN || (!HAVE_FAST_UNALIGNED && ((intptr_t)VAR_1 & 3))) {

       while (VAR_1 < VAR_3) {

           memcpy(VAR_0->block, VAR_1, 64);

           body(VAR_0->ABCD, (uint32_t *) VAR_0->block);

           VAR_1 += 64;

        }

    } else {

        while (VAR_1 < VAR_3) {

            body(VAR_0->ABCD, (uint32_t *)VAR_1);

            VAR_1 += 64;

        }

    }

    VAR_2 &= 63;

    if (VAR_2 > 0)

        memcpy(VAR_0->block, VAR_1, VAR_2);

}

void FUNC_0(AVMD5 *VAR_0, const uint8_t *VAR_1, int VAR_2)
{ const uint8_t *VAR_3; int VAR_4; VAR_4 = VAR_0->VAR_2 & 63; VAR_0->VAR_2 += VAR_2; if (VAR_4) { int VAR_5 = FFMIN(VAR_2, 64 - VAR_4); memcpy(VAR_0->block + VAR_4, VAR_1, VAR_5); VAR_1 += VAR_5; VAR_2 -= VAR_5; if (VAR_4 + VAR_5 < 64)
return; body(VAR_0->ABCD, (uint32_t *)VAR_0->block); } VAR_3 = VAR_1 + (VAR_2 & ~63); if (HAVE_BIGENDIAN || (!HAVE_FAST_UNALIGNED && ((intptr_t)VAR_1 & 3))) { while (VAR_1 < VAR_3) { memcpy(VAR_0->block, VAR_1, 64); body(VAR_0->ABCD, (uint32_t *) VAR_0->block); VAR_1 += 64; } } else { while (VAR_1 < VAR_3) { body(VAR_0->ABCD, (uint32_t *)VAR_1); VAR_1 += 64; } } VAR_2 &= 63; if (VAR_2 > 0)
memcpy(VAR_0->block, VAR_1, VAR_2); }