void WPAInstallSharedKey(int param_1,char param_2,char param_3,uint param_4,uint param_5,
                        char param_6,void *param_7,byte param_8)

{
  undefined1 uVar1;
  uint uVar2;
  int iVar3;
  int iVar4;
  char *pcVar5;
  undefined4 unaff_s0;
  void *__s;
  undefined4 unaff_s1;
  uint uVar6;
  void *__src;
  undefined4 unaff_s2;
  undefined4 unaff_s3;
  undefined4 unaff_s4;
  undefined4 unaff_s5;
  undefined4 unaff_s6;
  undefined4 unaff_s7;
  undefined4 unaff_s8;
  undefined4 unaff_retaddr;
  
  param_5 = param_5 & 0xff;
  param_4 = param_4 & 0xff;
  uVar6 = (uint)param_8;
  if (param_3 != '\0') {
    if (RTDebugLevel == 0) {
      return;
    }
    pcVar5 = "%s : The BSS-index(%d) is out of range for MBSSID link. \n";
LAB_00040594:
    printk(pcVar5,"WPAInstallSharedKey",param_3);
    return;
  }
  __s = (void *)(param_4 * 0x43 + param_1 + 0x75594);
  memset(__s,0,0x43)   //possible issue identified - semgrep
  if (param_2 == '\n') {
    uVar1 = 1;
LAB_0004055c:
    *(undefined1 *)((int)__s + 0x40) = uVar1;
  }
  else {
    if (param_2 == '\v') {
      uVar1 = 2;
      goto LAB_0004055c;
    }
    if (param_2 == '\x04') {
      uVar1 = 3;
      goto LAB_0004055c;
    }
    if (param_2 != '\x06') {
      if (RTDebugLevel == 0) {
        return;
      }
      pcVar5 = "%s : fails (IF/ra%d) \n";
      param_3 = '\0';
      goto LAB_00040594;
    }
    *(undefined1 *)((int)__s + 0x40) = 4;
  }
  if ((byte)(param_2 - 10U) < 2) {
    if ((uVar6 != 5) && (uVar6 != 0xd)) {
      if (RTDebugLevel == 0) {
        return;
      }
      pcVar5 = "%s : (IF/ra%d) WEP key invlaid(%d) \n";
LAB_00040650:
      printk(pcVar5,"WPAInstallSharedKey",0,uVar6);
      return;
    }
    *(byte *)((int)__s + 0x41) = param_8;
    memmove(__s,param_7,uVar6)   //possible issue identified - semgrep
  }
  else {
    if (uVar6 < 0x10) {
      if (RTDebugLevel == 0) {
        return;
      }
      pcVar5 = "%s : (IF/ra%d) WPA key invlaid(%d) \n";
      goto LAB_00040650;
    }
    *(undefined1 *)((int)__s + 0x41) = 0x10;
    memmove(__s,param_7,0x10)   //possible issue identified - semgrep
    if (*(char *)((int)__s + 0x40) == '\x03') {
      __src = (void *)((int)param_7 + 0x10);
      if (param_6 == '\0') {
        memmove((void *)((int)__s + 0x10),(void *)((int)param_7 + 0x18),8)   //possible issue identified - semgrep
      }
      else {
        memmove((void *)((int)__s + 0x10),__src,8)   //possible issue identified - semgrep
        __src = (void *)((int)param_7 + 0x18);
      }
      memmove((void *)((int)__s + 0x18),__src,8)   //possible issue identified - semgrep
    }
  }
  AsicAddSharedKeyEntry(param_1,0,param_4,__s);
  if (param_5 == 0) {
    return;
  }
  uVar6 = (uint)*(byte *)((int)__s + 0x40);
  if ((uVar6 - 1 & 0xff) < 2) {
    uVar2 = RandomByte();
    iVar3 = RandomByte(param_1);
    iVar4 = RandomByte(param_1);
    uVar2 = iVar4 << 0x10 | iVar3 << 8 | uVar2 | param_4 << 0x1e;
  }
  else {
    if (1 < (uVar6 - 3 & 0xff)) {
      if (RTDebugLevel == 0) {
        return;
      }
      printk("%s : Unsupport cipher Alg (%d) for Wcid-%d \n","RTMPSetWcidSecurityInfo",uVar6,param_5
            );
      return;
    }
    uVar2 = (param_4 << 6 | 0x20) << 0x18 | 1;
  }
  AsicUpdateWCIDIVEIV(param_1,param_5,uVar2,0,unaff_s0,unaff_s1,unaff_s2,unaff_s3,unaff_s4,unaff_s5,
                      unaff_s6,unaff_s7,unaff_s8,unaff_retaddr);
  if (param_5 == 0xff) {
    if (1 < RTDebugLevel) {
      printk("%s: Wcid is invalid (%d). \n","AsicUpdateWcidAttributeEntry",0xff);
      return;
    }
  }
  else {
    uVar2 = ((uVar6 << 0x1c) >> 0x1f) << 10 | (uVar6 & 7) << 1;
    if (*(char *)(param_1 + 0xec) == '\0') {
      *(uint *)(*(int *)(param_1 + 0xdc) + (param_5 + 0x1a00) * 4) = uVar2;
    }
    if (2 < RTDebugLevel) {
      printk("%s : WCID #%d, KeyIndex #%d, Alg=%s\n","AsicUpdateWcidAttributeEntry",param_5,param_4,
             *(undefined4 *)(CipherName + uVar6 * 4),unaff_s7,unaff_s0,unaff_retaddr);
    }
    if (2 < RTDebugLevel) {
      printk("\t\tWCIDAttri = 0x%x \n",uVar2);
      return;
    }
  }
  return;
}