undefined4
MlmeEnqueueForRecv(int param_1,undefined1 param_2,undefined4 param_3,undefined4 param_4,
                  undefined1 param_5,undefined1 param_6,undefined1 param_7,uint param_8,
                  byte *param_9,undefined1 param_10,undefined1 param_11)

{
  int iVar1;
  int iVar2;
  char *pcVar3;
  int iVar4;
  undefined4 local_30;
  undefined4 local_2c;
  
  local_30 = 0xff;
  local_2c = 0;
  if (*(char *)(param_1 + 0x76a0c) == -0x80) {
    if ((*(uint *)(param_1 + 0x76904) & 0x140) == 0) {
      if (param_8 < 0x641) {
        iVar1 = MlmeQueueFull(param_1 + 0x16fc8,0);
        if (iVar1 != 0) {
          return 0;
        }
        iVar1 = APMsgTypeSubst(param_1,param_9,&local_30,&local_2c);
        if (iVar1 != 0) {
          local_bh_disable();
          iVar1 = *(int *)(param_1 + 0x16fd0);
          *(int *)(param_1 + 0x16fc8) = *(int *)(param_1 + 0x16fc8) + 1;
          *(int *)(param_1 + 0x16fd0) = iVar1 + 1;
          if (iVar1 + 1 == 0x14) {
            *(undefined4 *)(param_1 + 0x16fd0) = 0;
          }
          iVar4 = (iVar1 + 1) * 0x668 + param_1;
          *(undefined1 *)(iVar4 + 0x16fce) = 1;
          iVar2 = param_1 + iVar1 * 0x668;
          *(undefined4 *)(iVar2 + 0x17618) = local_30;
          *(undefined4 *)(iVar2 + 0x1761c) = local_2c;
          *(undefined4 *)(iVar2 + 0x17628) = param_4;
          *(undefined1 *)(iVar4 + 0x16fc8) = param_5;
          *(undefined4 *)(iVar2 + 0x1762c) = param_3;
          *(undefined1 *)(iVar4 + 0x16fc9) = param_6;
          *(undefined1 *)(iVar4 + 0x16fca) = param_7;
          *(undefined1 *)(iVar4 + 0x16fcb) = param_10;
          *(undefined1 *)(iVar4 + 0x16fcf) = param_11;
          *(undefined1 *)(iVar4 + 0x16fcd) = param_2;
          *(undefined4 *)(iVar2 + 0x17638) = 0;
          *(uint *)(iVar2 + 0x17620) = param_8;
          *(undefined1 *)(iVar4 + 0x16fcc) = *(undefined1 *)(param_1 + 0x4be0);
          if (param_9 != (byte *)0x0) {
            memmove((void *)(param_1 + iVar1 * 0x668 + 0x16fd8),param_9,param_8)   //possible issue identified - semgrep
          }
          local_bh_enable();
          MlmeHandler(param_1);
          return 1;
        }
        printk("ERROR!!! ");
        pcVar3 = "MlmeEnqueueForRecv: un-recongnized mgmt->subtype=%d\n";
        param_8 = ((uint)*param_9 << 0x18) >> 0x1c;
      }
      else {
        printk("ERROR!!! ");
        pcVar3 = "MlmeEnqueueForRecv: frame too large, size = %ld \n";
      }
      printk(pcVar3,param_8);
    }
    else {
      printk("ERROR!!! ");
      printk("MlmeEnqueueForRecv: fRTMP_ADAPTER_HALT_IN_PROGRESS\n");
    }
  }
  return 0;
}