/* 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;
}