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;
}