undefined4 FUN_004013b0(void)
{
undefined *puVar1;
int ***pppiVar2;
undefined4 uVar3;
int iVar4;
int iVar5;
int ***pppiVar6;
int *piVar7;
int ***pppiVar8;
int iVar9;
int ****ppppiVar10;
undefined **ppuVar11;
uint uVar12;
int local_1c0 [2];
int ***local_1b8;
int ***local_1b4;
char local_1b0 [128];
char acStack_130 [128];
undefined1 auStack_b0 [128];
int local_30;
memset(local_1b0,0,0x80) //possible issue identified - semgrep
memset(acStack_130,0,0x80) //possible issue identified - semgrep
memset(auStack_b0,0,0x80) //possible issue identified - semgrep
local_30 = iw_sockets_open() //possible issue identified - semgrep
uVar3 = 0xffffffff;
if (-1 < local_30) {
uVar3 = (*FP_GetChannel)(local_30,DAT_004176f4);
sprintf(acStack_130,"%d",uVar3) //possible issue identified - semgrep
FUN_00401114(DAT_004176f8,"media/channel",acStack_130);
if (DAT_004176fc != 0) {
FUN_00401114(DAT_004176fc,"media/channel",acStack_130);
}
iVar4 = atoi(acStack_130);
memset(local_1b0,0,0x80) //possible issue identified - semgrep
sprintf(local_1b0,"%s/%s",DAT_00417700,"media/dot11n/bandwidth") //possible issue identified - semgrep
xmldbc_get_wb(0,0,local_1b0,acStack_130,0x80);
iVar5 = strncmp(acStack_130,"20+40",5);
iVar9 = iVar4;
if (iVar5 == 0) {
memset(acStack_130,0,0x80) //possible issue identified - semgrep
iVar9 = iVar4 + -2;
if (iVar4 < 5) {
iVar9 = iVar4 + 2;
}
}
sprintf(acStack_130,"%d",iVar9) //possible issue identified - semgrep
FUN_00401114(DAT_004176f8,"media/dot11n/centralchannel",acStack_130);
if (DAT_004176fc != 0) {
FUN_00401114(DAT_004176fc,"media/dot11n/centralchannel",acStack_130);
}
uVar3 = DAT_004176f4;
local_1b8 = (int ***)&local_1b8;
local_1b4 = (int ***)&local_1b8;
while (puVar1 = PTR_LOOP_00417550, (undefined **)PTR_LOOP_00417550 != &PTR_LOOP_00417550) {
iVar9 = *(int *)PTR_LOOP_00417550;
piVar7 = *(int **)(PTR_LOOP_00417550 + 4);
*piVar7 = iVar9;
*(undefined4 *)puVar1 = 0;
*(int **)(iVar9 + 4) = piVar7;
*(int ****)puVar1 = local_1b8;
local_1b8[1] = (int **)puVar1;
local_1b8 = (int ***)puVar1;
*(int *****)(puVar1 + 4) = &local_1b8;
}
(*FP_GetClist)(local_30,uVar3,&PTR_LOOP_00417550);
pppiVar2 = local_1b8;
for (ppuVar11 = (undefined **)PTR_LOOP_00417550; ppuVar11 != &PTR_LOOP_00417550;
ppuVar11 = (undefined **)*ppuVar11) {
pppiVar6 = (int ***)ppuVar11[9];
for (ppppiVar10 = (int ****)pppiVar2; ppppiVar10 != &local_1b8;
ppppiVar10 = (int ****)*ppppiVar10) {
iVar9 = memcmp(ppppiVar10 + 3,ppuVar11 + 3,6);
if ((iVar9 == 0) && (ppppiVar10[9] == pppiVar6)) {
pppiVar6 = ppppiVar10[2];
ppuVar11[10] = (undefined *)0x1;
ppuVar11[2] = (undefined *)pppiVar6;
break;
}
}
}
while (pppiVar2 = local_1b8, (int ****)local_1b8 != &local_1b8) {
pppiVar8 = (int ***)local_1b8[1];
pppiVar6 = (int ***)*local_1b8;
*pppiVar8 = (int **)pppiVar6;
pppiVar6[1] = (int **)pppiVar8;
*local_1b8 = (int **)0x0;
pppiVar2[1] = (int **)0x0;
free(pppiVar2);
}
local_1c0[0] = 0;
local_1c0[1] = 0;
for (ppuVar11 = (undefined **)PTR_LOOP_00417550; ppuVar11 != &PTR_LOOP_00417550;
ppuVar11 = (undefined **)*ppuVar11) {
uVar12 = (uint)ppuVar11[9] & (int)~(uint)ppuVar11[9] >> 0x1f;
iVar9 = (&DAT_004176f8)[uVar12];
if (iVar9 == 0) {
iVar4 = local_1c0[0] + 1;
iVar9 = DAT_004176f8;
local_1c0[0] = iVar4;
}
else {
iVar4 = local_1c0[uVar12] + 1;
local_1c0[uVar12] = iVar4;
}
memset(local_1b0,0,0x80) //possible issue identified - semgrep
memset(acStack_130,0,0x80) //possible issue identified - semgrep
sprintf(local_1b0,"%s:%d/%s","media/clients/entry",iVar4,"macaddr") //possible issue identified - semgrep
sprintf(acStack_130,"%02X:%02X:%02X:%02X:%02X:%02X",(uint)*(byte *)(ppuVar11 + 3),
(uint)*(byte *)((int)ppuVar11 + 0xd),(uint)*(byte *)((int)ppuVar11 + 0xe),
(uint)*(byte *)((int)ppuVar11 + 0xf),(uint)*(byte *)(ppuVar11 + 4),
(uint)*(byte *)((int)ppuVar11 + 0x11)) //possible issue identified - semgrep
FUN_00401114(iVar9,local_1b0,acStack_130);
memset(local_1b0,0,0x80) //possible issue identified - semgrep
memset(acStack_130,0,0x80) //possible issue identified - semgrep
sprintf(local_1b0,"%s:%d/%s","media/clients/entry",iVar4,"uptime") //possible issue identified - semgrep
sprintf(acStack_130,"%lu",ppuVar11[2]) //possible issue identified - semgrep
FUN_00401114(iVar9,local_1b0,acStack_130);
memset(local_1b0,0,0x80) //possible issue identified - semgrep
memset(acStack_130,0,0x80) //possible issue identified - semgrep
sprintf(local_1b0,"%s:%d/%s","media/clients/entry",iVar4,&DAT_00406754) //possible issue identified - semgrep
sprintf(acStack_130,"%u",ppuVar11[0xb]) //possible issue identified - semgrep
FUN_00401114(iVar9,local_1b0,acStack_130);
memset(local_1b0,0,0x80) //possible issue identified - semgrep
memset(acStack_130,0,0x80) //possible issue identified - semgrep
memset(auStack_b0,0,0x80) //possible issue identified - semgrep
sprintf(local_1b0,"%s:%d/%s","media/clients/entry",iVar4,&DAT_00406760) //possible issue identified - semgrep
(*FP_GetBandRate)(acStack_130,auStack_b0,ppuVar11);
FUN_00401114(iVar9,local_1b0,acStack_130);
memset(local_1b0,0,0x80) //possible issue identified - semgrep
sprintf(local_1b0,"%s:%d/%s","media/clients/entry",iVar4,&DAT_00406768) //possible issue identified - semgrep
FUN_00401114(iVar9,local_1b0,auStack_b0);
if ((DAT_0041770c != 0) && (ppuVar11[10] == (undefined *)0x0)) {
sprintf(acStack_130,"%s NEW_CLIENT %d %02X:%02X:%02X:%02X:%02X:%02X",DAT_0041770c,uVar12,
(uint)*(byte *)(ppuVar11 + 3),(uint)*(byte *)((int)ppuVar11 + 0xd),
(uint)*(byte *)((int)ppuVar11 + 0xe),(uint)*(byte *)((int)ppuVar11 + 0xf),
(uint)*(byte *)(ppuVar11 + 4),(uint)*(byte *)((int)ppuVar11 + 0x11)) //possible issue identified - semgrep
system(acStack_130) //possible issue identified - semgrep
}
}
FUN_004011c4(DAT_004176f8,local_1c0[0] + 1);
if (DAT_004176fc != 0) {
FUN_004011c4(DAT_004176fc,local_1c0[1] + 1);
}
close(local_30);
uVar3 = 0;
}
return uVar3;
}