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;
}