/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */

undefined4 main(int param_1,char **param_2)

{
  undefined *puVar1;
  int iVar2;
  char *__ptr;
  undefined4 uVar3;
  int iVar4;
  int *piVar5;
  char *__format;
  char *pcVar6;
  stat sStack_c0;
  
  sloop_init(0);
LAB_004019ec:
  iVar2 = getopt(param_1,param_2,"hvs:u:m:r:p:")   //possible issue identified - semgrep
  if (0 < iVar2) {
    uVar3 = 0xffffffff;
    switch(iVar2) {
    case 0x68:
      uVar3 = 0;
      break;
    case 0x69:
    case 0x6a:
    case 0x6b:
    case 0x6c:
    case 0x6e:
    case 0x6f:
    case 0x71:
    case 0x74:
      uVar3 = 0xffffffff;
      break;
    case 0x6d:
      DAT_0041a9e0 = atoi(_optarg);
      goto LAB_004019ec;
    case 0x70:
      PTR_s__etc_scripts_ddnsd_helper_sh_0041a9f4 = _optarg;
      goto LAB_004019ec;
    case 0x72:
      DAT_0041a9e4 = atoi(_optarg);
      goto LAB_004019ec;
    case 0x73:
      PTR_s__var_run_ddnsd_susock_0041a9f0 = _optarg;
      goto LAB_004019ec;
    case 0x75:
      strcpy(s_DDNSD_0041a9a0,_optarg)   //possible issue identified - semgrep
      goto LAB_004019ec;
    case 0x76:
      goto switchD_0040194c_caseD_76;
    }
    FUN_0040178c(uVar3);
    goto LAB_004019ec;
  }
  if (PTR_s__var_run_ddnsd_susock_0041a9f0 == (undefined *)0x0) {
    fprintf(_stderr,"%s: no unix socket name for control interface !!\n","ddnsd");
    FUN_0040174c(0xffffffff);
  }
  openlog("ddnsd",0,5);
  sloop_register_signal(2,FUN_00404514,0);
  sloop_register_signal(0xf,FUN_00404514,0);
  sloop_register_signal(9,FUN_00404514,0);
  sloop_register_signal(0xd,&LAB_00401550,0);
  sloop_register_signal(0xe,FUN_00404514,0);
  sloop_register_signal(0x10,&LAB_00401558,0);
  sloop_register_signal(0x11,&LAB_00401558,0);
  iVar2 = stat(PTR_s__var_run_ddnsd_susock_0041a9f0,&sStack_c0)   //possible issue identified - semgrep
  if (-1 < iVar2) {
    unlink(PTR_s__var_run_ddnsd_susock_0041a9f0)   //possible issue identified - semgrep
  }
  __ptr = dirname(PTR_s__var_run_ddnsd_susock_0041a9f0);
  iVar2 = make_valid_path(__ptr,0x1f8);
  if (iVar2 == 0) {
    __format = "%s: unable to create directory [%s]\n";
    pcVar6 = __ptr;
  }
  else {
    iVar2 = susock_server_open(PTR_s__var_run_ddnsd_susock_0041a9f0,4,FUN_00401560)   //possible issue identified - semgrep
    if (iVar2 != 0) {
      uVar3 = susock_fd(iVar2);
      sloop_register_read_sock(uVar3,susock_server_sloop_handler,iVar2);
      sloop_run();
      while (puVar1 = PTR_LOOP_0041a9f8, (undefined **)PTR_LOOP_0041a9f8 != &PTR_LOOP_0041a9f8) {
        piVar5 = *(int **)(PTR_LOOP_0041a9f8 + 4);
        iVar4 = *(int *)PTR_LOOP_0041a9f8;
        *piVar5 = iVar4;
        *(int **)(iVar4 + 4) = piVar5;
        *(undefined4 *)puVar1 = 0;
        *(undefined4 *)(puVar1 + 4) = 0;
        FUN_004015b0(puVar1);
      }
      susock_close(iVar2);
      unlink(PTR_s__var_run_ddnsd_susock_0041a9f0)   //possible issue identified - semgrep
      goto LAB_00401ca8;
    }
    __format = "%s: unable to create unix socket [%s]!\n";
    pcVar6 = PTR_s__var_run_ddnsd_susock_0041a9f0;
  }
  fprintf(_stderr,__format,&DAT_0040a6d8,pcVar6);
LAB_00401ca8:
  free(__ptr);
  FUN_0040174c(0);
  return 0;
switchD_0040194c_caseD_76:
  DAT_0041ad00 = DAT_0041ad00 + 1;
  goto LAB_004019ec;
}