int * sloop_register_signal(int param_1,int param_2,int param_3)

{
  int *piVar1;
  int *piVar2;
  int iVar3;
  
  piVar1 = DAT_0041cf10;
  piVar2 = (int *)0x0;
  if ((int **)DAT_0041cf10 != &DAT_0041cf10) {
    iVar3 = *DAT_0041cf10;
    piVar2 = (int *)DAT_0041cf10[1];
    *piVar2 = iVar3;
    *piVar1 = 0;
    piVar1[2] = 0x103;
    *(int **)(iVar3 + 4) = piVar2;
    *piVar1 = (int)DAT_0041cf28;
    DAT_0041cf28[1] = (int)piVar1;
    piVar1[3] = param_1;
    piVar1[4] = param_3;
    piVar1[5] = param_2;
    DAT_0041cf28 = piVar1;
    piVar1[1] = (int)&DAT_0041cf28;
    signal(param_1,FUN_00406d10)   //possible issue identified - semgrep
    piVar2 = piVar1;
  }
  return piVar2;
}