Chi e' in grado di tradurre questa funzione scritta in c++ in vb6?

int fieee2msbin(float *src, float *dst) {
union {
float a;
u_long b;
} c;
u_short man;
u_short exp;

c.a = *src;
if (c.b) { /* not zero */
man = c.b >> 16;
exp = ((man << 1) & 0xff00) + 0x0200;
if (exp & 0x8000 != (man << 1) & 0x8000)
return 1; /* exponent overflow */
man = man & 0x7f | (man >> 8) & 0x80; /*
move sign */
man |= exp;
c.b = c.b & 0xffff | (long)man << 16;
}
*dst = c.a;
return 0;
}