/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
char * MeasureReqInsert(int param_1,uint param_2)
{
char *pcVar1;
int iVar2;
undefined4 *puVar3;
undefined4 *puVar4;
char *pcVar5;
char *pcVar6;
char *pcVar7;
char *__s;
int iVar8;
pcVar7 = *(char **)(param_1 + 0x16e18);
if (pcVar7 == (char *)0x0) {
if (RTDebugLevel == 0) {
return (char *)0x0;
}
printk("%s: pMeasureReqTab doesn\'t exist.\n","MeasureReqInsert");
return (char *)0x0;
}
pcVar1 = (char *)MeasureReqLookUp(param_1,param_2 & 0xff);
if (pcVar1 != (char *)0x0) {
return pcVar1;
}
iVar8 = 0;
local_bh_disable();
pcVar1 = pcVar7;
do {
iVar2 = iVar8 + 8;
__s = pcVar7 + iVar2 * 0x10 + 4;
if (pcVar1[0x8c] == '\x01') {
if ((*(int *)(pcVar1 + 0x88) + 500) - _jiffies < 0) {
pcVar1 = *(char **)(pcVar7 + ((byte)pcVar7[iVar8 * 0x10 + 0x8d] & 0x1f) * 4 + 4);
pcVar6 = (char *)0x0;
goto LAB_00045894;
}
}
else if (pcVar1[0x8c] == '\0') goto LAB_0004592c;
iVar8 = iVar8 + 1;
pcVar1 = pcVar1 + 0x10;
} while (iVar8 != 0x20);
goto LAB_0004596c;
while (pcVar1 = *(char **)pcVar5, pcVar6 = pcVar5, *(char **)pcVar5 != (char *)0x0) {
LAB_00045894:
pcVar5 = pcVar1;
if (pcVar5 == __s) {
if (pcVar6 == (char *)0x0) {
*(undefined4 *)(pcVar7 + ((byte)pcVar7[iVar8 * 0x10 + 0x8d] & 0x1f) * 4 + 4) =
*(undefined4 *)(pcVar7 + (iVar8 + 8) * 0x10 + 4);
}
else {
*(undefined4 *)pcVar6 = *(undefined4 *)(pcVar7 + (iVar8 + 8) * 0x10 + 4);
}
break;
}
}
memset(__s,0,0x10) //possible issue identified - semgrep
*pcVar7 = *pcVar7 + -1;
if (iVar8 < 0x20) {
LAB_0004592c:
*(int *)(pcVar7 + iVar2 * 0x10 + 8) = _jiffies;
pcVar7[iVar2 * 0x10 + 0xc] = '\x01';
pcVar7[iVar2 * 0x10 + 0xd] = (char)param_2;
puVar3 = *(undefined4 **)(pcVar7 + (param_2 & 0x1f) * 4 + 4);
*pcVar7 = *pcVar7 + '\x01';
if (puVar3 == (undefined4 *)0x0) {
*(char **)(pcVar7 + (param_2 & 0x1f) * 4 + 4) = __s;
}
else {
do {
puVar4 = puVar3;
puVar3 = (undefined4 *)*puVar4;
} while (puVar3 != (undefined4 *)0x0);
*puVar4 = __s;
}
goto LAB_000459c0;
}
LAB_0004596c:
__s = (char *)0x0;
if (RTDebugLevel != 0) {
printk("%s: pMeasureReqTab tab full.\n","MeasureReqInsert");
}
LAB_000459c0:
local_bh_enable();
return __s;
}