int * FUN_00404330(undefined4 param_1,int param_2,int param_3,int param_4)

{
  int iVar1;
  int *piVar2;
  
  piVar2 = DAT_00439600;
  if (DAT_00439600 != (int *)0x0) {
    do {
      if ((piVar2[2] == param_2) && (iVar1 = duidcmp(piVar2 + 3,param_1), iVar1 == 0)) {
        if (param_2 != 0) {
          return piVar2;
        }
        if ((piVar2[5] == param_3) && (piVar2[6] == param_4)) {
          return piVar2;
        }
      }
      piVar2 = (int *)*piVar2;
    } while (piVar2 != (int *)0x0);
  }
  return piVar2;
}