Exact Math formula of the MixRGB Node (Multiply Option)
color1 *= ((1.0 - fac) + fac * color2)
/* r_col = current value, col = new value, (fac == 0) is no change */
void ramp_blend(int type, float r_col[3], const float fac, const float col[3])
{
    float tmp, facm = 1.0f - fac;

    switch (type) {
        case MA_RAMP_BLEND:
            r_col[0] = facm * (r_col[0]) + fac * col[0];
            r_col[1] = facm * (r_col[1]) + fac * col[1];
            r_col[2] = facm * (r_col[2]) + fac * col[2];
            break;
        case MA_RAMP_ADD:
            r_col[0] += fac * col[0];
            r_col[1] += fac * col[1];
            r_col[2] += fac * col[2];
            break;
        case MA_RAMP_MULT:
            r_col[0] *= (facm + fac * col[0]);
            r_col[1] *= (facm + fac * col[1]);
            r_col[2] *= (facm + fac * col[2]);
            break;

From GitLab:
https://gitlab.com/ideasman42/blender/-/blob/dyntopo_knife/source/blender/blenkernel/intern/material.c