undefined4 Set_AP_SSID_Proc(int *param_1,char *param_2)

{
  char cVar1;
  size_t sVar2;
  code *pcVar3;
  int iVar4;
  int iVar5;
  
  iVar5 = *param_1;
  sVar2 = strlen(param_2);
  if (0x20 < sVar2) {
    return 0;
  }
  memset((void *)((int)param_1 + *(int *)(iVar5 + 0xfc) * 0x1140 + 0x51b3),0,0x20)   //possible issue identified - semgrep
  iVar4 = *(int *)(iVar5 + 0xfc);
  sVar2 = strlen(param_2);
  memmove((void *)((int)param_1 + iVar4 * 0x1140 + 0x51b3),param_2,sVar2)   //possible issue identified - semgrep
  iVar4 = *(int *)(iVar5 + 0xfc);
  sVar2 = strlen(param_2);
  *(char *)((int)param_1 + iVar4 * 0x1140 + 0x51b2) = (char)sVar2;
  if (((char)param_1[0x5aa0] == '\0') || (cVar1 = (char)param_1[0x5ab3], cVar1 == '\x02')) {   //possible issue identified - semgrep
    APStop(param_1);
    pcVar3 = APStartUp;
  }
  else {
    if ((cVar1 == '\x01') || (cVar1 != '\0')) goto LAB_0008bf08;
    APStop(param_1);
    APStartUp(param_1);
    pcVar3 = AsicEnableBssSync;
  }
  (*pcVar3)(param_1);
LAB_0008bf08:
  if (2 < RTDebugLevel) {
    iVar5 = *(int *)(iVar5 + 0xfc);
    printk("I/F(ra%d) Set_SSID_Proc::(Len=%d,Ssid=%s)\n",iVar5,
           *(undefined1 *)((int)param_1 + iVar5 * 0x1140 + 0x51b2),
           (int)param_1 + iVar5 * 0x1140 + 0x51b3);
  }
  return 1;
}