/* WARNING: Heritage AFTER dead removal. Example location: r0x0041ce90 : 0x00404d48 */
/* WARNING: Restarted to delay deadcode elimination for space: ram */

void FUN_00404c20(undefined4 *param_1,undefined4 param_2)

{
  double dVar1;
  undefined4 uVar2;
  undefined4 uVar3;
  double dVar4;
  double dVar5;
  undefined4 uVar6;
  
  if (debug != 0) {
    printf("loop %f %f\n",param_2,*param_1,param_1[1],param_1[2],param_1[3]);
  }
  dVar5 = (double)FUN_00404b30(*param_1,param_1[2],param_1[1]);
  dVar4 = (double)FUN_00404b30(*param_1,param_1[2],param_1[3]);
  uVar6 = (undefined4)((ulonglong)dVar5 >> 0x20);
  uVar2 = SUB84(dVar5,0);
  uVar3 = uVar6;
  if ((double)CONCAT44(DAT_0041d9bc,DAT_0041d9b8) <= dVar5) {
    uVar2 = DAT_0041d9b8;
    uVar3 = DAT_0041d9bc;
  }
  DAT_0041d9bc = uVar3;
  DAT_0041d9b8 = uVar2;
  dVar1 = dVar4;
  if ((double)CONCAT44(DAT_0041d9c4,DAT_0041d9c0) <= dVar4) {
    dVar1 = (double)CONCAT44(DAT_0041d9c4,DAT_0041d9c0);
  }
  DAT_0041d9c4 = (undefined4)((ulonglong)dVar1 >> 0x20);
  DAT_0041d9c0 = SUB84(dVar1,0);
  if (debug != 0) {
    printf("constraint left:  %f %f \n",param_2,SUB84(dVar5,0),uVar6,DAT_0041d9b8,DAT_0041d9bc);
    dVar1 = (double)CONCAT44(DAT_0041d9c4,DAT_0041d9c0);
  }
  DAT_0041d9c4 = (undefined4)((ulonglong)dVar1 >> 0x20);
  DAT_0041d9c0 = SUB84(dVar1,0);
  if (debug != 0) {
    printf("constraint right: %f %f \n",param_2,SUB84(dVar4,0),(int)((ulonglong)dVar4 >> 0x20),
           DAT_0041d9c0,DAT_0041d9c4);
    dVar1 = (double)CONCAT44(DAT_0041d9c4,DAT_0041d9c0);
  }
  DAT_0041d9c4 = (undefined4)((ulonglong)dVar1 >> 0x20);
  DAT_0041d9c0 = SUB84(dVar1,0);
  return;
}