void SupportRate(void *param_1,byte param_2,void *param_3,byte param_4,int *param_5,byte *param_6,
byte *param_7)
{
byte bVar1;
int iVar2;
uint uVar3;
uVar3 = (uint)param_2;
*param_7 = 0;
if ((uVar3 - 1 & 0xff) < 0xc) {
memmove((void *)*param_5,param_1,uVar3) //possible issue identified - semgrep
*param_6 = param_2;
}
else {
*param_6 = 8;
*(undefined1 *)*param_5 = 0x82;
*(undefined1 *)(*param_5 + 1) = 0x84;
*(undefined1 *)(*param_5 + 2) = 0x8b;
*(undefined1 *)(*param_5 + 3) = 0x96;
*(undefined1 *)(*param_5 + 4) = 0x12;
*(undefined1 *)(*param_5 + 5) = 0x24;
*(undefined1 *)(*param_5 + 6) = 0x48;
*(undefined1 *)(*param_5 + 7) = 0x6c;
if (RTDebugLevel < 3) {
bVar1 = *param_6;
goto LAB_00074478;
}
printk("SUPP_RATES., Len=%d\n",uVar3);
}
bVar1 = *param_6;
LAB_00074478:
uVar3 = (uint)bVar1;
if (uVar3 + param_4 < 0xd) {
memmove((void *)(*param_5 + uVar3),param_3,(uint)param_4) //possible issue identified - semgrep
*param_6 = param_4 + *param_6;
}
else {
memmove((void *)(*param_5 + uVar3),param_3,0xc - uVar3) //possible issue identified - semgrep
*param_6 = 0xc;
}
iVar2 = 0;
while (iVar2 < (int)(uint)*param_6) {
bVar1 = *(byte *)(*param_5 + iVar2) & 0x7f;
iVar2 = iVar2 + 1;
if (*param_7 < bVar1) {
*param_7 = bVar1;
}
}
return;
}