void MeasureReqDelete(int param_1,undefined1 param_2)
{
undefined4 *__s;
undefined4 *puVar1;
undefined4 *puVar2;
undefined4 *puVar3;
char *pcVar4;
uint uVar5;
pcVar4 = *(char **)(param_1 + 0x16e18);
if (pcVar4 == (char *)0x0) {
if (RTDebugLevel != 0) {
printk("%s: pMeasureReqTab doesn\'t exist.\n","MeasureReqDelete");
return;
}
}
else if (*pcVar4 == '\0') {
if (RTDebugLevel != 0) {
printk("pMeasureReqTab empty.\n");
return;
}
}
else {
__s = (undefined4 *)MeasureReqLookUp(param_1,param_2);
if (__s != (undefined4 *)0x0) {
uVar5 = *(byte *)((int)__s + 9) & 0x1f;
puVar3 = *(undefined4 **)(pcVar4 + uVar5 * 4 + 4);
local_bh_disable();
puVar2 = (undefined4 *)0x0;
do {
if (puVar3 == __s) {
if (puVar2 == (undefined4 *)0x0) {
*(undefined4 *)(pcVar4 + uVar5 * 4 + 4) = *__s;
}
else {
*puVar2 = *__s;
}
break;
}
puVar1 = (undefined4 *)*puVar3;
puVar2 = puVar3;
puVar3 = puVar1;
} while (puVar1 != (undefined4 *)0x0);
memset(__s,0,0x10) //possible issue identified - semgrep
*pcVar4 = *pcVar4 + -1;
local_bh_enable();
return;
}
}
return;
}