void APStartUp(int param_1)
{
undefined1 uVar1;
bool bVar2;
char cVar3;
byte bVar4;
undefined1 uVar5;
code *pcVar6;
undefined4 uVar7;
undefined4 uVar8;
void *__src;
uint uVar9;
ushort uVar10;
int iVar11;
ushort uVar12;
int iVar13;
undefined4 uVar14;
uint uVar15;
uint uVar16;
undefined2 *puVar17;
undefined1 *puVar18;
void *__dest;
int iVar19;
int iVar20;
undefined4 uVar21;
int iVar22;
ushort uVar23;
cVar3 = *(char *)(param_1 + 0x16983) //possible issue identified - semgrep
if (2 < RTDebugLevel) {
printk("===> APStartUp\n");
}
AsicDisableSync(param_1);
uVar23 = 0;
__src = (void *)(param_1 + 0x16973);
if (*(int *)(param_1 + 0x16a70) != 0) {
uVar23 = 0x20;
}
bVar2 = false;
for (uVar15 = 0; uVar15 < *(byte *)(param_1 + 0x51aa); uVar15 = uVar15 + 1 & 0xff) {
iVar11 = param_1 + uVar15 * 0x1140;
if (0x1f < (byte)(*(char *)(iVar11 + 0x51b2) - 1U)) {
memmove((void *)(iVar11 + 0x51b3),"HT_AP",5) //possible issue identified - semgrep
*(char *)(iVar11 + 0x51b8) = (char)uVar15 + '0';
*(undefined1 *)(iVar11 + 0x51b2) = 6;
}
__dest = (void *)(param_1 + uVar15 * 0x1140 + 0x51ac);
iVar11 = param_1 + uVar15 * 0x1140;
memcpy(__dest,__src,6) //possible issue identified - semgrep
*(char *)(iVar11 + 0x51b1) = (char)uVar15 + *(char *)(iVar11 + 0x51b1);
if (*(int *)(iVar11 + 0x51d8) != 0) {
memmove(*(void **)(*(int *)(iVar11 + 0x51d8) + 0x140),__dest,6) //possible issue identified - semgrep
}
iVar11 = uVar15 * 0x1140 + param_1;
uVar12 = 0x11;
if (*(int *)(iVar11 + 0x51e0) == 1) {
uVar12 = 1;
}
uVar10 = 0x400;
if (*(char *)(param_1 + 0x16a7c) == '\0') {
uVar10 = 0;
}
uVar10 = uVar10 | uVar23 | uVar12;
*(ushort *)(iVar11 + 0x51d4) = uVar10;
if (*(char *)(iVar11 + 0x5b30) != '\0') {
bVar2 = true;
}
if (*(char *)(param_1 + 0x16a2c) == '\x01') {
*(ushort *)(iVar11 + 0x51d4) = uVar10 | 0x800;
}
iVar11 = uVar15 * 0x1140 + param_1;
if (*(int *)(iVar11 + 0x51e0) == 8) {
if ((*(uint *)(iVar11 + 0x51dc) & 0xff) < 10) {
uVar9 = 1 << (*(uint *)(iVar11 + 0x51dc) & 0x1f);
if ((uVar9 & 0x300) == 0) {
if ((uVar9 & 0xc0) == 0) {
if ((uVar9 & 0x18) != 0) {
*(undefined4 *)(iVar11 + 0x51e8) = 0xc;
}
}
else {
*(undefined4 *)(iVar11 + 0x51e8) = 3;
}
}
else {
iVar11 = *(int *)(iVar11 + 0x51e8);
if (((iVar11 == 0) || (iVar11 == 0xc)) || (iVar11 == 3)) {
*(undefined4 *)(uVar15 * 0x1140 + param_1 + 0x51e8) = 0xf;
}
}
}
}
else {
*(undefined4 *)(iVar11 + 0x51e8) = 0;
}
iVar11 = uVar15 * 0x1140 + param_1;
RTMPMakeRSNIE(param_1,*(undefined4 *)(iVar11 + 0x51dc),*(undefined4 *)(iVar11 + 0x51e0),uVar15);
}
if (*(char *)(param_1 + 0x16982) != cVar3) {
RTMPSetPhyMode(param_1,cVar3);
}
SetCommonHT(param_1);
memcpy((void *)(param_1 + 0x169e4),__src,6) //possible issue identified - semgrep
uVar15 = Status;
if (*(byte *)(param_1 + 0x16982) < 5) {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
LAB_0006abd4:
uVar9 = 0;
if (cVar3 == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar15 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0100;
}
iVar13 = 1;
while( true ) {
uVar15 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar15 & 0x20000) == 0) || (iVar13 == 100)) break;
iVar13 = iVar13 + 1;
}
if ((uVar15 & 0x2ff00) == 0x100) {
uVar9 = uVar15 & 0xff;
goto LAB_0006acb8;
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_0006acb8:
if ((int)(uVar15 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,1);
uVar9 = (uint)*(byte *)(param_1 + 0x4aca);
LAB_0006ae4c:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar15 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0100;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar13 = 1;
while( true ) {
uVar15 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar15 & 0x20000) == 0) || (iVar13 == 100)) break;
iVar13 = iVar13 + 1;
}
if ((uVar15 & 0x2ff00) == 0x100) {
uVar9 = uVar15 & 0xff;
goto LAB_0006adf4;
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_0006adf4:
if ((int)(uVar15 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,1);
uVar9 = (uint)*(byte *)(param_1 + 0x4aca);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_0006ae4c;
}
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar3 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar16 != 0) {
Status = Status | 1;
}
goto LAB_0006ae70;
}
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
LAB_0006ae70:
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar15 = Status;
if (cVar3 == '\0') {
uVar9 = uVar9 & 0xe7;
if (*(int *)(param_1 + 0x29f8) != 4) {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 1;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar15 & 0x20000) == 0) goto LAB_0006b018;
iVar13 = iVar11 % 0x14;
iVar11 = iVar11 + 1;
if ((iVar13 == 0) && (cVar3 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar15 & 0xfffdffff;
}
printk(&_LC12) //possible issue identified - semgrep
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0006b0bc;
}
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 1;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar15 & 0x20000) == 0) goto LAB_0006af04;
iVar11 = iVar11 + 1;
printk(&_LC12) //possible issue identified - semgrep
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0006af44;
}
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
if ((*(uint *)(param_1 + 0x4bf4) & 0xf0) != 0x20) goto LAB_0006abd4;
uVar9 = 0;
if (cVar3 == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar15 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0100;
}
iVar13 = 1;
while( true ) {
uVar15 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar15 & 0x20000) == 0) || (iVar13 == 100)) break;
iVar13 = iVar13 + 1;
}
if ((uVar15 & 0x2ff00) == 0x100) {
uVar9 = uVar15 & 0xff;
goto LAB_0006a8e8;
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_0006a8e8:
if ((int)(uVar15 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,1);
uVar9 = (uint)*(byte *)(param_1 + 0x4aca);
LAB_0006aa7c:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar15 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0100;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar13 = 1;
while( true ) {
uVar15 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar15 & 0x20000) == 0) || (iVar13 == 100)) break;
iVar13 = iVar13 + 1;
}
if ((uVar15 & 0x2ff00) == 0x100) {
uVar9 = uVar15 & 0xff;
goto LAB_0006aa24;
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_0006aa24:
if ((int)(uVar15 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,1);
uVar9 = (uint)*(byte *)(param_1 + 0x4aca);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_0006aa7c;
}
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar3 == '\x01') {
Status = Status & 0xfffffffe;
if (uVar16 != 0) {
Status = Status | 1;
}
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
}
uVar15 = Status;
if (cVar3 == '\0') {
uVar9 = uVar9 & 0xe7 | 0x10;
if (*(int *)(param_1 + 0x29f8) != 4) {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 1;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar15 & 0x20000) == 0) goto LAB_0006b018;
iVar13 = iVar11 % 0x14;
iVar11 = iVar11 + 1;
if ((iVar13 == 0) && (cVar3 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar15 & 0xfffdffff;
}
printk(&_LC12) //possible issue identified - semgrep
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0006b0bc;
}
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 1;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar15 & 0x20000) == 0) goto LAB_0006af04;
iVar11 = iVar11 + 1;
printk(&_LC12) //possible issue identified - semgrep
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0006af44;
}
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
LAB_0006b12c:
uVar15 = Status;
uVar9 = 0;
if (cVar3 == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar15 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x101c) = 0xb0300;
}
iVar13 = 1;
while( true ) {
uVar15 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if (((uVar15 & 0x20000) == 0) || (iVar13 == 100)) break;
iVar13 = iVar13 + 1;
}
if ((uVar15 & 0x2ff00) == 0x300) {
uVar9 = uVar15 & 0xff;
goto LAB_0006b214;
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_0006b214:
if ((int)(uVar15 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",0,3);
uVar9 = (uint)*(byte *)(param_1 + 0x4acc);
LAB_0006b3ac:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
else {
uVar16 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar16 = uVar15 & 1;
}
iVar11 = 0;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar15 = 0;
if (cVar3 == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar15 & 0x20000) == 0) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x7028) = 0xb0300;
}
AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
RTMPusecDelay(1000);
iVar13 = 1;
while( true ) {
uVar15 = 0;
if (*(char *)(param_1 + 0xec) == '\0') {
uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if (((uVar15 & 0x20000) == 0) || (iVar13 == 100)) break;
iVar13 = iVar13 + 1;
}
if ((uVar15 & 0x2ff00) == 0x300) {
uVar9 = uVar15 & 0xff;
goto LAB_0006b354;
}
}
iVar11 = iVar11 + 1;
if (iVar11 == 100) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar9 = 0;
LAB_0006b354:
if ((int)(uVar15 << 0xe) < 0) {
printk("ERROR!!! ");
printk("BBP(viaMCU=%d) read R%d fail\n",1,3);
uVar9 = (uint)*(byte *)(param_1 + 0x4acc);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
}
goto LAB_0006b3ac;
}
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar3 != '\x01') {
uVar15 = *(uint *)(param_1 + 0x4bf4);
goto LAB_0006b3d4;
}
Status = Status & 0xfffffffe;
if (uVar16 != 0) {
Status = Status | 1;
}
}
uVar15 = *(uint *)(param_1 + 0x4bf4);
LAB_0006b3d4:
uVar16 = Status;
uVar9 = uVar9 & 0xe7;
if ((uVar15 & 0xf) == 3) {
uVar9 = uVar9 | 0x10;
}
else if ((uVar15 & 0xf) == 2) {
uVar9 = uVar9 | 8;
}
if (*(char *)(param_1 + 0xec) == '\0') {
if (*(int *)(param_1 + 0x29f8) == 4) {
uVar15 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar15 = uVar16 & 1;
}
iVar11 = 1;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar16 = 0;
if (cVar3 == '\0') {
uVar16 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x101c);
}
if ((uVar16 & 0x20000) == 0) break;
iVar11 = iVar11 + 1;
printk(&_LC12) //possible issue identified - semgrep
if (iVar11 == 100) goto LAB_0006b4cc;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar9 | 0xa0300;
}
*(char *)(param_1 + 0x4acc) = (char)uVar9;
if (iVar11 != 100) goto LAB_0006b4ec;
LAB_0006b4cc:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",3);
LAB_0006b4ec:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
uVar15 = 0;
if (*(char *)(param_1 + 0xad) == '\x01') {
Status = Status & 0xfffffffe;
uVar15 = uVar16 & 1;
}
iVar11 = 1;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
uVar16 = 0;
if (cVar3 == '\0') {
uVar16 = *(uint *)(*(int *)(param_1 + 0xdc) + 0x7028);
}
if ((uVar16 & 0x20000) == 0) break;
iVar13 = iVar11 % 0x14;
iVar11 = iVar11 + 1;
if ((iVar13 == 0) && (cVar3 == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar16 & 0xfffdffff;
}
printk(&_LC12) //possible issue identified - semgrep
if (iVar11 == 100) goto LAB_0006b648;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar9 | 0xa0300;
}
iVar13 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar13 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar9 | 0x80300;
}
*(char *)(param_1 + 0x4acc) = (char)uVar9;
if (iVar11 != 100) goto LAB_0006b690;
LAB_0006b648:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",3);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
LAB_0006b690:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
}
if ((cVar3 == '\x01') && (Status = Status & 0xfffffffe, uVar15 != 0)) {
Status = Status | 1;
}
}
if ((4 < *(byte *)(param_1 + 0x16982)) || (bVar2)) {
if (*(char *)(param_1 + 0x16a90) == '\0') {
*(undefined2 *)(param_1 + 0x16aaa) = 0x2f;
*(undefined1 *)(param_1 + 0x16a98) = 7;
*(undefined1 *)(param_1 + 0x16a9e) = 2;
*(undefined1 *)(param_1 + 0x16a9f) = 6;
*(undefined1 *)(param_1 + 0x16aa0) = 10;
*(undefined1 *)(param_1 + 0x16a9a) = 1;
*(undefined1 *)(param_1 + 0x16aa1) = 4;
*(undefined1 *)(param_1 + 0x16aa2) = 3;
*(undefined2 *)(param_1 + 0x16aa8) = 0x5e;
*(undefined1 *)(param_1 + 0x16a90) = 1;
AsicEvaluateRxAnt[param_1 + 3] = (code)0x3;
*(undefined1 *)(param_1 + 0x16a99) = 1;
*(undefined1 *)(param_1 + 0x16a9b) = 4;
*(undefined1 *)(param_1 + 0x16a9c) = 4;
*(undefined1 *)(param_1 + 0x16a9d) = 3;
*(undefined2 *)(param_1 + 0x16aa4) = 0;
*(undefined2 *)(param_1 + 0x16aa6) = 0;
}
AsicSetEdcaParm(param_1,param_1 + 0x16a90);
if (*(char *)(param_1 + 0x16874) == '\0') {
*(undefined2 *)(param_1 + 0x1688e) = 0x2f;
*(undefined1 *)(param_1 + 0x16874) = 1;
*(undefined1 *)(param_1 + 0x1687c) = 7;
*(undefined1 *)(param_1 + 0x16882) = 2;
*(undefined1 *)(param_1 + 0x16884) = 10;
*(undefined1 *)(param_1 + 0x16885) = 4;
*(undefined1 *)(param_1 + 0x16886) = 3;
*(undefined2 *)(param_1 + 0x1688c) = 0x5e;
*(undefined1 *)(param_1 + 0x1687b) = 3;
*(undefined1 *)(param_1 + 0x1687d) = 2;
*(undefined1 *)(param_1 + 0x1687e) = 2;
*(undefined1 *)(param_1 + 0x1687f) = 4;
*(undefined1 *)(param_1 + 0x16880) = 4;
*(undefined1 *)(param_1 + 0x16881) = 3;
*(undefined1 *)(param_1 + 0x16883) = 10;
*(undefined2 *)(param_1 + 0x16888) = 0;
*(undefined2 *)(param_1 + 0x1688a) = 0;
}
}
else {
AsicSetEdcaParm(param_1,0);
}
if (*(byte *)(param_1 + 0x16982) < 5) {
*(uint *)(param_1 + 0x16afc) = *(uint *)(param_1 + 0x16afc) & 0xfffdffff;
}
if (*(char *)(param_1 + 0x16a88) == '\0') {
*(uint *)(param_1 + 0x76904) = *(uint *)(param_1 + 0x76904) & 0xffefffff;
pcVar6 = AsicDisableRDG;
}
else {
*(uint *)(param_1 + 0x76904) = *(uint *)(param_1 + 0x76904) | 0x100000;
pcVar6 = AsicEnableRDG;
}
(*pcVar6)(param_1);
memcpy((void *)(param_1 + 0x51ac),__src,6) //possible issue identified - semgrep
AsicSetBssid(param_1,__src);
AsicSetMcastWC(param_1);
if ((*(char *)(param_1 + 0xec) == '\0') &&
(*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x1800) = 0, *(char *)(param_1 + 0xec) == '\0')) {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x1804) = 0;
}
iVar11 = 0x180c;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
while( true ) {
if (cVar3 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + iVar11 + -4) = 0;
}
if (*(char *)(param_1 + 0xec) == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + iVar11) = 0;
}
iVar11 = iVar11 + 8;
if (iVar11 == 0x1ffc) break;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
*(undefined2 *)(param_1 + 0x71358) = 5;
*(uint *)(param_1 + 0x5d350) = *(uint *)(param_1 + 0x5d350) & 0xffff3f80 | 0x4003;
*(undefined1 *)(param_1 + 0x5d190) = 1;
*(undefined1 *)(param_1 + 0x169ed) = *(undefined1 *)(param_1 + 0x169ec);
AsicBBPAdjust(param_1);
*(uint *)(param_1 + 0x16abc) = *(uint *)(param_1 + 0x16abc) & 0xfffffffb;
AsicSwitchChannel(param_1,*(undefined1 *)(param_1 + 0x169ed),0);
AsicLockChannel(param_1,*(undefined1 *)(param_1 + 0x169ed));
MlmeSetTxPreamble(param_1,*(undefined2 *)(param_1 + 0x16a70));
for (bVar4 = 0; bVar4 < *(byte *)(param_1 + 0x51aa); bVar4 = bVar4 + 1) {
MlmeUpdateTxRates(param_1,0,bVar4);
if (4 < *(byte *)(param_1 + 0x16982)) {
MlmeUpdateHtTxRates(param_1,bVar4);
}
}
*(undefined1 *)(param_1 + 0x16acc) = 0;
AsicUpdateProtect(param_1,0,0x3f,1,0);
APUpdateCapabilityAndErpIe(param_1);
APUpdateOperationMode(param_1);
RTMPSetLEDStatus(param_1,1);
puVar17 = (undefined2 *)(param_1 + 0x5d12a);
iVar11 = 0;
do {
*puVar17 = 2;
iVar13 = iVar11 + 1;
AsicRemovePairwiseKeyEntry(param_1,iVar11);
puVar17 = puVar17 + 0x510;
iVar11 = iVar13;
} while (iVar13 != 0x20);
for (uVar15 = 0; uVar15 < *(byte *)(param_1 + 0x51aa); uVar15 = uVar15 + 1 & 0xff) {
iVar11 = uVar15 * 0x1140 + param_1;
*(undefined1 *)(iVar11 + 0x52d7) = 2;
if (*(int *)(iVar11 + 0x51dc) - 3U < 7) {
*(undefined1 *)(iVar11 + 0x5240) = 1;
}
iVar13 = uVar15 * 0x1140 + param_1;
iVar11 = *(int *)(iVar13 + 0x51e0);
uVar9 = (*(byte *)(param_1 + 0xb0) - 3) + uVar15;
if (iVar11 == 0) {
iVar11 = uVar15 * 0x10c;
puVar18 = (undefined1 *)(param_1 + iVar11 + 0x755d4);
iVar19 = param_1 + 0x75594 + iVar11;
uVar16 = 0;
do {
uVar1 = *puVar18;
if ((puVar18[1] != '\0') &&
(AsicAddSharedKeyEntry(param_1,uVar15,uVar16,iVar19),
(uint)*(byte *)(iVar13 + 0x5240) == (uVar16 & 0xff))) {
uVar5 = RandomByte(param_1);
*(undefined1 *)(param_1 + uVar16 * 0x43 + iVar11 + 0x755b4) = uVar5;
uVar5 = RandomByte(param_1);
puVar18[-0x1f] = uVar5;
uVar5 = RandomByte(param_1);
puVar18[-0x1e] = uVar5;
RTMPSetWcidSecurityInfo(param_1,uVar15,uVar16,uVar1,uVar9 & 0xff,0);
}
uVar16 = uVar16 + 1;
puVar18 = puVar18 + 0x43;
iVar19 = iVar19 + 0x43;
} while (uVar16 != 4);
}
else if (((iVar11 == 4) || (iVar11 == 6)) || (iVar11 == 8)) {
iVar11 = uVar15 * 0x1140;
iVar19 = param_1 + iVar11 + 0x5255;
iVar20 = param_1 + iVar11 + 0x51ac;
GenRandom(param_1,iVar20,iVar19);
iVar13 = param_1 + iVar11 + 0x52b7;
GenRandom(param_1,iVar20,iVar13);
iVar22 = param_1 + iVar11 + 0x5295;
WpaDeriveGTK(iVar19,iVar13,iVar20,iVar22,0x20);
WPAInstallSharedKey(param_1,*(undefined1 *)(param_1 + iVar11 + 0x51e4),uVar15,
*(undefined1 *)(param_1 + iVar11 + 0x5240),uVar9 & 0xff,1,iVar22,0x20);
}
iVar11 = uVar15 * 0x1140 + param_1;
uVar21 = *(undefined4 *)(iVar11 + 0x51dc);
if (2 < RTDebugLevel) {
uVar7 = GetAuthMode((int)(char)uVar21);
uVar14 = *(undefined4 *)(iVar11 + 0x51e0);
uVar8 = GetEncryptType((int)(char)uVar14);
printk("### BSS(%d) AuthMode(%d)=%s, WepStatus(%d)=%s , AccessControlList.Policy=%ld\n",uVar15
,uVar21,uVar7,uVar14,uVar8,*(undefined4 *)(iVar11 + 0x5928));
}
}
RTMPSetPiggyBack(param_1,*(undefined1 *)(param_1 + 0x16a7f));
ApLogEvent(param_1,__src,0);
*(undefined4 *)(param_1 + 0x1f0f8) = 0;
*(undefined4 *)(param_1 + 0x1f0f0) = 0;
*(uint *)(param_1 + 0x16abc) = *(uint *)(param_1 + 0x16abc) | 0x200000;
RTMP_IndicateMediaState(param_1,1);
*(uint *)(param_1 + 0x76904) = *(uint *)(param_1 + 0x76904) & 0xffffffbf;
APMakeAllBssBeacon(param_1);
APUpdateAllBeaconFrame(param_1);
*(undefined1 *)(param_1 + 0x16acc) = 0;
AsicEnableBssSync(param_1);
if ((*(char *)(param_1 + 0xec) == '\0') &&
(*(uint *)(*(int *)(param_1 + 0xdc) + 0x1128) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x1128) & 0xffff0000 | 0x60,
*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x112c) = *(uint *)(*(int *)(param_1 + 0xdc) + 0x112c) | 1;
}
WPA_APSetGroupRekeyAction(param_1);
if (RTDebugLevel < 3) {
return;
}
printk("<=== APStartUp\n");
return;
LAB_0006b018:
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar9 | 0xa0100;
}
iVar13 = AsicSendCommandToMcuBBP(param_1,0x80,0xff,0,0,0);
if (*(char *)(param_1 + 0x16964) == '\x01') {
RTMPusecDelay(1000);
}
if ((iVar13 == 0) && (*(char *)(param_1 + 0xec) == '\0')) {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) = uVar9 | 0x80100;
}
*(char *)(param_1 + 0x4aca) = (char)uVar9;
if (iVar11 == 100) {
LAB_0006b0bc:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
if (*(char *)(param_1 + 0xec) == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) =
*(uint *)(*(int *)(param_1 + 0xdc) + 0x7028) & 0xfffdffff;
goto LAB_0006b104;
}
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
else {
LAB_0006b104:
cVar3 = *(char *)(param_1 + 0xad) //possible issue identified - semgrep
}
if (cVar3 == '\x01') goto LAB_0006b118;
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
goto LAB_0006b12c;
LAB_0006af04:
if (cVar3 == '\0') {
*(uint *)(*(int *)(param_1 + 0xdc) + 0x101c) = uVar9 | 0xa0100;
}
*(char *)(param_1 + 0x4aca) = (char)uVar9;
if (iVar11 == 100) {
LAB_0006af44:
printk("ERROR!!! ");
printk("BBP write R%d fail\n",1);
}
if (*(char *)(param_1 + 0xad) == '\x01') {
LAB_0006b118:
Status = Status & 0xfffffffe;
if (uVar16 != 0) {
Status = Status | 1;
}
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
cVar3 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
goto LAB_0006b12c;
}