undefined4 CntlEnqueueForRecv(int param_1,uint param_2,uint param_3,int param_4)

{
  uint uVar1;
  char *pcVar2;
  short sVar3;
  uint uVar4;
  
  uVar1 = ((uint)*(byte *)(param_4 + 0x11) << 0x18) >> 0x1c;
  if (2 < RTDebugLevel) {
    printk("%s(): BAR-Wcid(%ld), Tid (%d)\n","CntlEnqueueForRecv",param_2,uVar1);
  }
  if ((*(uint *)(param_1 + 0x76904) & 0x140) == 0) {
    if (param_3 < 0x641) {
      if (param_3 == 0x14) {
        if (0x1f < param_2) {
          return 0;
        }
        if (7 < uVar1) {
          return 0;
        }
        uVar4 = (uint)*(ushort *)(param_1 + (param_2 * 0x510 + uVar1 + 0x2e9ac) * 2 + 6);
        if (2 < RTDebugLevel) {
          printk("BAR(%ld) : Tid (%d) - %04x:%04x\n",param_2,uVar1,
                 (uint)*(byte *)(param_4 + 0x13) << 4 | (uint)(*(byte *)(param_4 + 0x12) >> 4),
                 *(undefined2 *)(uVar4 * 0x4c + param_1 + 0x72f70));
        }
        if (((uint)*(ushort *)(param_1 + uVar4 * 0x4c + 0x72f70) -
             ((uint)*(byte *)(param_4 + 0x13) << 4 | (uint)(*(byte *)(param_4 + 0x12) >> 4)) & 0x800
            ) == 0) {
          return 1;
        }
        ba_indicate_reordering_mpdus_le_seq(param_1,param_1 + uVar4 * 0x4c + 0x72f6c);
        uVar1 = (uint)*(byte *)(param_4 + 0x13) << 4 | (uint)(*(byte *)(param_4 + 0x12) >> 4);
        sVar3 = 0xfff   //possible issue identified - semgrep
        if (uVar1 != 0) {
          sVar3 = (short)uVar1 + -1   //possible issue identified - semgrep
        }
        *(short *)(uVar4 * 0x4c + param_1 + 0x72f70) = sVar3;
        return 1;
      }
      printk("ERROR!!! ");
      pcVar2 = "CntlEnqueueForRecv: BlockAck Request frame length size = %ld incorrect\n";
    }
    else {
      printk("ERROR!!! ");
      pcVar2 = "CntlEnqueueForRecv: frame too large, size = %ld \n";
    }
    printk(pcVar2,param_3);
  }
  return 0;
}