undefined4 FUN_00404a7c(undefined4 *param_1,int param_2,undefined4 param_3)

{
  int iVar1;
  int *piVar2;
  undefined4 uVar3;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  undefined4 local_20;
  undefined4 local_1c;
  
  dprintf(7,"make_iana_from_pool","called");
  iVar1 = find_pool(*param_1);
  if (iVar1 == 0) {
    dprintf(3,"make_iana_from_pool","pool \'%s\' not found",*param_1);
    return 0;
  }
  if (param_2 == 0) {
    iVar1 = get_free_address_from_pool(iVar1,&local_28);
    uVar3 = 0;
    if (iVar1 == 0) goto LAB_00404b68;
  }
  else {
    local_20 = *(undefined4 *)(param_2 + 0x1c);
    local_28 = *(undefined4 *)(param_2 + 0x14);
    local_1c = *(undefined4 *)(param_2 + 0x20);
    local_24 = *(undefined4 *)(param_2 + 0x18);
    iVar1 = is_available_in_pool(iVar1);
    if (iVar1 == 0) {
      piVar2 = __errno_location();
      *piVar2 = 0x16;
      return 0;
    }
  }
  local_2c = param_1[2];
  local_30 = param_1[1];
  iVar1 = dhcp6_add_listval(param_3,7,&local_30,0);
  if (iVar1 == 0) {
    return 0;
  }
  uVar3 = 1;
LAB_00404b68:
  dprintf(7,"make_iana_from_pool","returns (found=%d)",uVar3);
  return uVar3;
}