void RTMPIoctlAddWPAKey(int *param_1,int *param_2)

{
  undefined1 uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  uint uVar5;
  uint uVar6;
  undefined4 uVar7;
  
  iVar4 = *param_2;
  uVar5 = (uint)*(byte *)(*param_1 + 0xfc);
  uVar3 = *(uint *)(iVar4 + 0x10);
  if ((uint)param_1[uVar5 * 0x450 + 0x1477] < 3) {
    if (uVar3 < 0x11) {
      uVar3 = *(uint *)(iVar4 + 0xc);
      uVar6 = uVar3 & 0xfffffff;
      if (uVar6 < 4) {
        if ((int)uVar3 < 0) {
          if (2 < RTDebugLevel) {
            printk("RTMPIoctlAddWPAKey-IF(ra%d) : Set Group Key\n",uVar5);
          }
          *(char *)(param_1 + uVar5 * 0x450 + 0x1490) = (char)uVar6;
          if (0x10 < *(uint *)(iVar4 + 0x10)) {
            if (2 < RTDebugLevel) {
              printk("RTMPIoctlAddWPAKey-IF(ra%d) : Key length too long %d\n",uVar5);
            }
            *(undefined4 *)(iVar4 + 0x10) = 0x10;
          }
          iVar2 = uVar5 * 0x10c + uVar6 * 0x43;
          *(char *)((int)param_1 + iVar2 + 0x755d5) = (char)*(undefined4 *)(iVar4 + 0x10);
          memmove((void *)((int)param_1 + iVar2 + 0x75594),(void *)(iVar4 + 0x14),
                  *(size_t *)(iVar4 + 0x10))   //possible issue identified - semgrep
          if (*(int *)(iVar4 + 0x10) == 5) {
            uVar1 = 1;
          }
          else {
            uVar1 = 2;
          }
          *(undefined1 *)((int)param_1 + iVar2 + 0x755d4) = uVar1;
          iVar4 = uVar5 * 0x10c + uVar6 * 0x43;
          uVar1 = *(undefined1 *)((int)param_1 + iVar4 + 0x755d4);
          AsicAddSharedKeyEntry(param_1,uVar5,uVar3 & 0xff,(int)param_1 + iVar4 + 0x75594);
          uVar6 = uVar5 + (*(byte *)(param_1 + 0x2c) - 3) & 0xff;
          uVar7 = 0;
        }
        else {
          iVar2 = MacTableLookup(param_1,iVar4 + 4);
          if (iVar2 == 0) {
            return;
          }
          if (RTDebugLevel < 3) {
            uVar1 = (undefined1)*(undefined4 *)(iVar4 + 0x10);
          }
          else {
            printk("RTMPIoctlAddWPAKey-IF(ra%d) : Set Pair-wise Key\n",uVar5);
            uVar1 = (undefined1)*(undefined4 *)(iVar4 + 0x10);
          }
          *(undefined1 *)(iVar2 + 0x239) = uVar1;
          memmove((void *)(iVar2 + 0x1f8),(void *)(iVar4 + 0x14),*(size_t *)(iVar4 + 0x10))   //possible issue identified - semgrep
          if (*(int *)(iVar4 + 0x10) == 5) {
            uVar1 = 1;
          }
          else {
            uVar1 = 2;
          }
          *(undefined1 *)(iVar2 + 0x238) = uVar1;
          AsicAddPairwiseKeyEntry(param_1,*(undefined1 *)(iVar2 + 0x27e),iVar2 + 0x1f8);
          uVar6 = (uint)*(byte *)(iVar2 + 0x27e);
          uVar5 = (uint)*(byte *)(iVar2 + 0x31);
          uVar1 = *(undefined1 *)(iVar2 + 0x238);
          uVar7 = 1;
        }
        RTMPSetWcidSecurityInfo(param_1,uVar5,uVar3 & 0xff,uVar1,uVar6,uVar7);
      }
    }
  }
  else if (((uVar3 == 0x20) || (uVar3 == 0x40)) &&
          (iVar2 = MacTableLookup(param_1,iVar4 + 4), iVar2 != 0)) {
    iVar2 = uVar5 * 0x1140;
    memmove((void *)((int)param_1 + iVar2 + 0x5275),(void *)(iVar4 + 0x14),0x20)   //possible issue identified - semgrep
    if (2 < RTDebugLevel) {
      printk("RTMPIoctlAddWPAKey-IF(ra%d) : Add PMK=%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x....\n",
             uVar5,*(undefined1 *)((int)param_1 + iVar2 + 0x5275),
             *(undefined1 *)((int)param_1 + iVar2 + 0x5276),
             *(undefined1 *)((int)param_1 + iVar2 + 0x5277),(char)param_1[uVar5 * 0x450 + 0x149e],
             *(undefined1 *)((int)param_1 + iVar2 + 0x5279),
             *(undefined1 *)((int)param_1 + iVar2 + 0x527a),
             *(undefined1 *)((int)param_1 + iVar2 + 0x527b),(char)param_1[uVar5 * 0x450 + 0x149f]);
    }
  }
  return;
}