int FUN_00404008(int *param_1)

{
  int iVar1;
  int iVar2;
  
  iVar2 = *param_1;
  if ((((iVar2 == 0) || (*(int *)(iVar2 + 0x18) == 0)) &&
      (iVar1 = find_pdconf("default"), iVar1 != 0)) && (*(int *)(param_1[2] + 0x38) != 0)) {
    if (iVar2 == 0) {
      iVar2 = create_dynamic_hostconf(param_1[1],param_1[2] + 0x38);
      if (iVar2 == 0) {
        return 0;
      }
      *(int *)(iVar2 + 0x18) = iVar1;
    }
    else {
      *(int *)(iVar2 + 0x18) = iVar1;
    }
    return iVar2;
  }
  return iVar2;
}