- f_st1 = f_st0;
- f_st0 = f_st1; // fld
- *((double *)(u32)&sf.q[1]) = f_st0;
- f_st0 = f_st1; // var_18 fst
- *((float *)(u32)&sf.d[0]) = f_st0; // var_20 fst
+ { double t = f_st0; f_st0 = f_st1; f_st1 = t; } // fxch
+ f_st0 = -f_st0;
+ f_st0 = f_st1;
+ f_st1 = f_st0; // fld st
+ f_st0 = f_st1 * log2(f_st0);
+ f_st1 = f_st0; // fld st
+ sf.d[0] = (s32)f_st0; f_st0 = f_st1; // var_20 fist
+ *((double *)(u32)&sf.q[1]) = f_st0; // var_18 fst