int rt2800_ioctl_get_channel(int param_1,char *param_2,undefined4 param_3,undefined4 param_4)

{
  int iVar1;
  double dVar2;
  double dVar3;
  uint in_fcsr;
  char local_38 [24];
  undefined1 auStack_20 [20];
  
  local_38[0] = '\0';
  local_38[1] = '\0';
  local_38[2] = '\0';
  local_38[3] = '\0';
  local_38[4] = '\0';
  local_38[5] = '\0';
  local_38[6] = '\0';
  local_38[7] = '\0';
  strncpy(local_38 + 8,param_2,0x10)   //possible issue identified - semgrep
  ioctl(param_1,0x8b05,local_38 + 8);
  dVar2 = (double)iw_freq2float(auStack_20);
  if ((dVar2 <= 2400000000.0) || (2500000000.0 <= dVar2)) {
    if (dVar2 <= 3000000000.0) {
      snprintf(local_38,8,"%g",param_4,SUB84(dVar2,0),(int)((ulonglong)dVar2 >> 0x20))   //possible issue identified - semgrep
      iVar1 = atoi(local_38);
      return iVar1;
    }
    dVar3 = 5000000000.0;
  }
  else {
    dVar3 = 2407000000.0;
  }
  dVar2 = (dVar2 - dVar3) / 5000000.0;
  if ((((in_fcsr & 0xff7fffff | 3) ^ 2) & 3) == 0) {
    dVar2 = ROUND(dVar2);
  }
  else {
    dVar2 = FLOOR(dVar2);
  }
  return (int)dVar2;
}