uint FUN_004049b0(int param_1,int param_2,int param_3,int param_4,uint param_5,double *param_6)

{
  bool bVar1;
  double dVar2;
  int iVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  double dVar7;
  double dVar8;
  
  uVar6 = 0;
  bVar1 = true;
  for (uVar5 = param_2 + 1U & -(uint)((int)(param_2 + 1U) < 0x10);
      uVar5 != (param_1 + 1U & -(uint)((int)(param_1 + 1U) < 0x10));
      uVar5 = uVar5 + 1 & -(uint)((int)(uVar5 + 1) < 0x10)) {
    iVar3 = *(int *)(&DAT_0041d498 + uVar5 * 0x30);
    dVar2 = *(double *)(&DAT_0041d498 + (uVar5 * 6 + param_3 + 4) * 8);
    iVar4 = iVar3 - *(int *)(&DAT_0041d498 + param_2 * 0x30);
    dVar7 = (double)iVar4;
    if (iVar4 < 0) {
      dVar7 = dVar7 + 4294967296.0;
    }
    dVar7 = (*(double *)(&DAT_0041d498 + (uVar5 * 6 + param_3 + 4) * 8) -
            *(double *)(&DAT_0041d498 + (param_2 * 6 + param_4 + 4) * 8)) / dVar7;
    if ((bVar1) || (dVar7 < *param_6 != param_5)) {
      iVar4 = *(int *)(&DAT_0041d498 + param_1 * 0x30);
      *param_6 = dVar7;
      iVar4 = iVar4 - iVar3;
      dVar8 = (double)iVar4;
      if (iVar4 < 0) {
        dVar8 = dVar8 + 4294967296.0;
      }
      param_6[1] = dVar2 + dVar7 * dVar8;
      uVar6 = uVar5;
    }
    bVar1 = false;
  }
  return uVar6;
}