void sloop_cancel_signal(int *param_1)
{
uint uVar1;
int *piVar2;
int *piVar3;
int iVar4;
if (param_1 == (int *)0x0) {
while (piVar3 = DAT_00417da8, (int **)DAT_00417da8 != &DAT_00417da8) {
signal(DAT_00417da8[3],(__sighandler_t)0x0) //possible issue identified - semgrep
iVar4 = *piVar3;
piVar2 = (int *)piVar3[1];
uVar1 = piVar3[2];
*piVar2 = iVar4;
*piVar3 = 0;
*(int **)(iVar4 + 4) = piVar2;
*piVar3 = (int)DAT_00417d90;
DAT_00417d90[1] = (int)piVar3;
piVar3[2] = uVar1 & 0xfffffeff;
DAT_00417d90 = piVar3;
piVar3[1] = (int)&DAT_00417d90;
}
}
else {
signal(param_1[3],(__sighandler_t)0x0) //possible issue identified - semgrep
iVar4 = *param_1;
piVar3 = (int *)param_1[1];
uVar1 = param_1[2];
*piVar3 = iVar4;
*param_1 = 0;
*(int **)(iVar4 + 4) = piVar3;
*param_1 = (int)DAT_00417d90;
DAT_00417d90[1] = (int)param_1;
DAT_00417d90 = param_1;
param_1[2] = uVar1 & 0xfffffeff;
param_1[1] = (int)&DAT_00417d90;
}
return;
}