void FUN_00403710(double param_1,undefined4 param_2,undefined4 param_3,int *param_4)

{
  uint in_fcsr;
  
  *(undefined2 *)(param_4 + 1) = 0;
  for (; in_fcsr = in_fcsr & 0xff7fffff, 1000000000.0 < param_1; param_1 = param_1 / 10.0) {
    *(short *)(param_4 + 1) = (short)param_4[1] + 1;
  }
  if ((((in_fcsr | 3) ^ 2) & 3) == 0) {
    param_1 = ROUND(param_1);
  }
  else {
    param_1 = FLOOR(param_1);
  }
  *param_4 = (int)param_1;
  return;
}