undefined4 Set_AutoChannelSel_Proc(int param_1,char *param_2)

{
  bool bVar1;
  char cVar2;
  char cVar3;
  char cVar4;
  size_t sVar5;
  char *pcVar6;
  undefined4 uVar7;
  char *pcVar8;
  size_t local_40;
  undefined1 auStack_3c [40];
  
  memset(&local_40,0,0x24)   //possible issue identified - semgrep
  sVar5 = strlen(param_2);
  if (sVar5 < 0x21) {
    sVar5 = strlen(param_2);
    if (sVar5 == 0) {
      local_40 = 0;
      memcpy(auStack_3c,&_LC271,0)   //possible issue identified - semgrep
    }
    else {
      sVar5 = strlen(param_2);
      memmove(auStack_3c,param_2,sVar5)   //possible issue identified - semgrep
      local_40 = strlen(param_2);
    }
  }
  pcVar8 = "1";
  cVar2 = *param_2;
  pcVar6 = param_2;
  do {
    cVar3 = *pcVar8;
    pcVar6 = pcVar6 + 1;
    pcVar8 = pcVar8 + 1;
    cVar4 = cVar2;
    if (cVar3 != cVar2) break;
    bVar1 = cVar2 != '\0';
    cVar2 = *pcVar6;
    cVar4 = cVar3;
  } while (bVar1);
  if (cVar4 == cVar3) {
    uVar7 = 1;
  }
  else {
    pcVar6 = "2";
    cVar2 = *param_2;
    do {
      cVar3 = *pcVar6;
      param_2 = param_2 + 1;
      pcVar6 = pcVar6 + 1;
      cVar4 = cVar2;
      if (cVar3 != cVar2) break;
      bVar1 = cVar2 != '\0';
      cVar2 = *param_2;
      cVar4 = cVar3;
    } while (bVar1);
    if (cVar4 != cVar3) {
      if (RTDebugLevel == 0) {
        return 0;
      }
      printk("Set_AutoChannelSel_Proc Alg isn\'t defined\n");
      return 0;
    }
    uVar7 = 2;
  }
  *(undefined4 *)(param_1 + 0x16618) = uVar7;
  if (2 < RTDebugLevel) {
    printk("Set_AutoChannelSel_Proc Alg=%d \n",*(undefined4 *)(param_1 + 0x16618));
  }
  if (local_40 == 0) {
    uVar7 = 0x12;
  }
  else {
    uVar7 = 0x13;
  }
  ApSiteSurvey(param_1,&local_40,uVar7,1);
  return 1;
}