/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void BssEntrySet(undefined4 param_1,void *param_2,void *param_3,void *param_4,byte param_5,
char param_6,undefined2 param_7,char *param_8,undefined2 param_9,ushort param_10,
void *param_11,byte param_12,void *param_13,byte param_14,byte *param_15,
byte *param_16,byte param_17,byte param_18,undefined1 param_19,undefined1 param_20,
undefined1 param_21)
{
byte bVar1;
char cVar2;
undefined1 uVar3;
ushort uVar4;
int iVar5;
uint __n;
char *pcVar6;
uint uVar7;
size_t __n_00;
size_t __n_01;
undefined1 in_stack_00000060;
void *in_stack_00000064;
void *in_stack_00000068;
void *in_stack_0000006c;
ushort in_stack_00000070;
char *in_stack_00000074;
uVar4 = in_stack_00000070;
uVar3 = in_stack_00000060;
__n = (uint)in_stack_00000070;
uVar7 = (uint)param_5;
__n_01 = (size_t)param_12;
__n_00 = (size_t)param_14;
memcpy(param_2,param_3,6) //possible issue identified - semgrep
*(undefined1 *)((int)param_2 + 0x5f) = 1;
if (uVar7 == 0) {
iVar5 = memcmp((void *)((int)param_2 + 0x6d),ZeroSsid,(uint)*(byte *)((int)param_2 + 0x6c));
if (iVar5 == 0) {
memset((void *)((int)param_2 + 0x6d),0,0x20) //possible issue identified - semgrep
*(undefined1 *)((int)param_2 + 0x6c) = 0;
}
}
else {
iVar5 = memcmp(param_4,ZeroSsid,uVar7);
if (iVar5 != 0) {
memset((void *)((int)param_2 + 0x6d),0,0x20) //possible issue identified - semgrep
memmove((void *)((int)param_2 + 0x6d),param_4,uVar7) //possible issue identified - semgrep
*(byte *)((int)param_2 + 0x6c) = param_5;
*(undefined1 *)((int)param_2 + 0x5f) = 0;
}
}
*(char *)((int)param_2 + 8) = param_6;
*(undefined2 *)((int)param_2 + 0xc) = param_7;
if (param_6 == '\x01') {
if (*param_8 != '\0') {
*(ushort *)((int)param_2 + 100) = (ushort)(byte)param_8[1];
*(ushort *)((int)param_2 + 0x66) = (ushort)(byte)param_8[2];
*(undefined2 *)((int)param_2 + 0x68) = *(undefined2 *)(param_8 + 3);
*(undefined2 *)((int)param_2 + 0x6a) = *(undefined2 *)(param_8 + 5);
}
}
else {
*(undefined2 *)((int)param_2 + 10) = param_9;
}
*(undefined4 *)((int)param_2 + 0x94) = _jiffies;
*(byte *)((int)param_2 + 0x5e) = (byte)(((uint)param_10 << 0x1b) >> 0x1f);
*(ushort *)((int)param_2 + 0x62) = param_10;
if (0xc < __n_01) {
printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/mlme.c:%d assert SupRateLen <= MAX_LEN_OF_SUPPORTED_RATESfailed\n"
,0xb85);
__n_01 = 0xc //possible issue identified - semgrep
}
memmove((void *)((int)param_2 + 0xe),param_11,__n_01) //possible issue identified - semgrep
*(byte *)((int)param_2 + 0x1a) = param_12;
if (0xc < __n_00) {
printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/mlme.c:%d assert ExtRateLen <= MAX_LEN_OF_SUPPORTED_RATESfailed\n"
,0xb8b);
__n_00 = 0xc //possible issue identified - semgrep
}
memmove((void *)((int)param_2 + 0x1b),param_13,__n_00) //possible issue identified - semgrep
*(char *)((int)param_2 + 0x27) = (char)__n_00;
*(undefined1 *)((int)param_2 + 0x5b) = param_19;
*(undefined1 *)((int)param_2 + 7) = param_20;
*(undefined1 *)((int)param_2 + 0x5c) = param_21;
*(undefined1 *)((int)param_2 + 0x4dc) = uVar3;
*(undefined1 *)((int)param_2 + 6) = param_20;
memmove((void *)((int)param_2 + 0xbc),&stack0x00000058,8) //possible issue identified - semgrep
*(ushort *)((int)param_2 + 0xc6) = param_10;
*(undefined2 *)((int)param_2 + 0xc4) = param_7;
if (__n == 0) {
*(undefined2 *)((int)param_2 + 0xd4) = 0;
*(undefined1 *)((int)param_2 + 0x59) = 0;
}
else {
*(ushort *)((int)param_2 + 0xd4) = uVar4;
memmove((void *)((int)param_2 + 0xd6),in_stack_00000074,__n) //possible issue identified - semgrep
*(undefined1 *)((int)param_2 + 0x59) = 0;
}
*(undefined1 *)((int)param_2 + 0x42) = 0;
if (param_17 != 0) {
*(byte *)((int)param_2 + 0x42) = param_17;
memmove((void *)((int)param_2 + 0x28),param_15,(uint)param_17) //possible issue identified - semgrep
if (param_18 != 0) {
*(byte *)((int)param_2 + 0x59) = param_18;
memmove((void *)((int)param_2 + 0x43),param_16,(uint)param_18) //possible issue identified - semgrep
if (((*param_16 < 3) || ((param_16[1] & 3) != 3)) || ((*param_15 & 2) == 0)) {
if (((param_16[1] & 3) != 1) || ((*param_15 & 2) == 0)) goto LAB_00018e90;
cVar2 = '\x02';
}
else {
cVar2 = -2 //possible issue identified - semgrep
}
*(byte *)((int)param_2 + 7) = *param_16 + cVar2;
}
}
LAB_00018e90:
BssCipherParse(param_2);
if (in_stack_00000064 == (void *)0x0) {
*(undefined1 *)((int)param_2 + 0x4ea) = 0;
}
else {
memmove((void *)((int)param_2 + 0x4ea),in_stack_00000064,0x20) //possible issue identified - semgrep
}
if (in_stack_00000068 == (void *)0x0) {
*(undefined1 *)((int)param_2 + 0x50a) = 0;
}
else {
memmove((void *)((int)param_2 + 0x50a),in_stack_00000068,5) //possible issue identified - semgrep
}
if (in_stack_0000006c == (void *)0x0) {
*(undefined1 *)((int)param_2 + 0x510) = 0;
}
else {
memmove((void *)((int)param_2 + 0x510),in_stack_0000006c,8) //possible issue identified - semgrep
}
pcVar6 = in_stack_00000074;
for (uVar7 = 0; (byte)pcVar6[1] + 2 + uVar7 <= __n; uVar7 = uVar7 + bVar1 + 2 & 0xffff) {
if (*pcVar6 == -0x23) {
memcmp(pcVar6 + 2,&WPS_OUI,4);
bVar1 = pcVar6[1];
}
else {
bVar1 = pcVar6[1];
}
pcVar6 = pcVar6 + bVar1 + 2;
}
return;
}