undefined4 FUN_00403474(undefined4 param_1,char *param_2)

{
  int *piVar1;
  int iVar2;
  int iVar3;
  int *piVar4;
  
  piVar1 = (int *)FUN_00403240(param_2,0);
  if (piVar1 != (int *)0x0) {
    iVar2 = strcmp((char *)piVar1[2],param_2);
    if (iVar2 == 0) {
      if (piVar1[4] != 0) {
        susock_send(param_1,&DAT_0040a8a4,5,0x4000);
        return 0xffffffff;
      }
      piVar4 = (int *)piVar1[1];
      iVar2 = *piVar1;
      *piVar4 = iVar2;
      *(int **)(iVar2 + 4) = piVar4;
      *piVar1 = 0;
      piVar1[1] = 0;
      FUN_0040304c(piVar1);
    }
    else {
      solist_get_reset(piVar1[3]);
      do {
        iVar2 = solist_get_next(piVar1[3]);
        if (iVar2 == 0) {
          return 0;
        }
        iVar3 = sobj_strcmp(iVar2,param_2);
      } while (iVar3 != 0);
      solist_remove(piVar1[3],iVar2);
      sobj_del(iVar2);
    }
  }
  return 0;
}