/* WARNING: Globals starting with '_' overlap smaller symbols at the same address */
void MlmePeriodicExec(undefined4 param_1,int param_2)
{
bool bVar1;
char cVar2;
int iVar3;
uint uVar4;
char *pcVar5;
if ((*(uint *)(param_2 + 0x76904) & 0x80201c0) == 0) {
if ((*(char *)(param_2 + 0x76a0c) == -0x80) || (*(uint *)(param_2 + 0x1f0f0) % 10 == 9)) {
uVar4 = *(int *)(param_2 + 0x1f0f0) + 1;
*(int *)(param_2 + 0x1f0f4) = *(int *)(param_2 + 0x1f0f4) + 1;
*(undefined1 *)(param_2 + 0x769d9) = 0;
*(uint *)(param_2 + 0x1f0f0) = uVar4;
if (uVar4 % 5 == 0) {
pcVar5 = (char *)(param_2 + 0x521e);
iVar3 = 0;
do {
bVar1 = (int)(uint)*(byte *)(param_2 + 0x51aa) <= iVar3;
iVar3 = iVar3 + 1;
if (bVar1) goto LAB_00019b68;
cVar2 = *pcVar5;
pcVar5 = pcVar5 + 0x1140;
} while (cVar2 == '\0');
APMlmeDynamicTxRateSwitching(param_2);
}
LAB_00019b68:
if (*(uint *)(param_2 + 0x1f0f0) % 10 == 0) {
*(int *)(param_2 + 0x1f0f8) = *(int *)(param_2 + 0x1f0f8) + 1;
if (*(char *)(param_2 + 0x76a0c) != -0x80) {
memset((void *)(param_2 + 0x766f0),0,100) //possible issue identified - semgrep
NICUpdateRawCounters(param_2);
if (*(char *)(param_2 + 0x76a50) == '\x01') {
*(int *)(param_2 + 0x76a58) = *(int *)(param_2 + 0x76a5c) + *(int *)(param_2 + 0x76a58);
printk("<0>MlmePeriodicExec: Rx packet cnt = %d/%d\n");
*(undefined4 *)(param_2 + 0x76a5c) = 0;
if (*(char *)(param_2 + 0x76a12) == '\0') {
printk("<0>MlmePeriodicExec: Rx AvgRssi0=%d, AvgRssi1=%d, AvgRssi2=%d\n\n",
(int)*(char *)(param_2 + 0x76a65),(int)*(char *)(param_2 + 0x76a66),
(int)*(char *)(param_2 + 0x76a67));
}
else {
printk("<0>MlmePeriodicExec: Rx AvgRssi=%d\n\n",(int)*(char *)(param_2 + 0x76a65));
}
}
MlmeResetRalinkCounters(param_2);
if (*(char *)(param_2 + 0x76a51) == '\x01') {
return;
}
if ((*(uint *)(param_2 + 0x4a94) & 0xffff0000) != 0x53500000) {
return;
}
if ((*(char *)(param_2 + 0x76a54) == '\x01') &&
((*(char *)(param_2 + 0x76a0c) == '\x01' || (*(char *)(param_2 + 0x76a0c) == '\x05'))))
{
RT5350ATEAsicAdjustTxPower(param_2);
}
RT5350ATEAsicExtraPowerOverMAC(param_2);
return;
}
if (*(code **)(param_2 + 0x8c) != (code *)0x0) {
(**(code **)(param_2 + 0x8c))(param_2);
}
dynamic_tune_be_tx_op(param_2,0x32);
*(undefined4 *)(param_2 + 0x16fbc) = _jiffies;
NICUpdateRawCounters(param_2);
ORIBATimerTimeout(param_2);
if (*(char *)(param_2 + 0x1f0fe) != '\0') {
if ((uint)(*(int *)(param_2 + 0x7670c) + *(int *)(param_2 + 0x76708) +
*(int *)(param_2 + 0x76704)) < 0x33) {
uVar4 = 3;
}
else {
uVar4 = 10;
}
if (*(uint *)(param_2 + 0x1f0f8) % uVar4 == 0) {
AsicEvaluateRxAnt(param_2);
}
}
if (((*(char *)(param_2 + 0x76a0c) == -0x80) && (*(char *)(param_2 + 0xd8) == '\x01')) &&
(*(uint *)(param_2 + 0x1f0f8) % 10 == 0)) {
AsicVCORecalibration(param_2);
}
APMlmePeriodicExec(param_2) //possible issue identified - semgrep
if (((*(int *)(param_2 + 0x766f4) == 0) && ((*(uint *)(param_2 + 0x76904) & 0x4000) == 0))
&& (((*(uint *)(param_2 + 0x16abc) & 0x80) != 0 &&
((*(char *)(param_2 + 0x16a80) != '\x01' || (*(char *)(param_2 + 0x16acc) != '\x02'))
)))) {
*(int *)(param_2 + 0x769dc) = *(int *)(param_2 + 0x769dc) + 1;
}
else {
*(undefined4 *)(param_2 + 0x769dc) = 0;
}
if (1 < *(uint *)(param_2 + 0x769dc)) {
if (*(char *)(param_2 + 0xec) == '\0') {
*(undefined4 *)(*(int *)(param_2 + 0xdc) + 0x1004) = 0;
}
iVar3 = 0;
do {
RTMPusecDelay(1000);
cVar2 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
iVar3 = iVar3 + 1;
if (cVar2 != '\0') {
LAB_00019ef8:
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_2 + 0xdc) + 0x1004) = 1;
}
RTMPusecDelay(1);
cVar2 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
goto LAB_00019f3c;
}
if ((*(uint *)(*(int *)(param_2 + 0xdc) + 0x1200) & 3) == 0) {
cVar2 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
goto LAB_00019ef8;
}
} while (iVar3 != 10);
if (RTDebugLevel < 2) {
cVar2 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
}
else {
printk("Warning, MAC isn\'t ready \n");
cVar2 = *(char *)(param_2 + 0xec) //possible issue identified - semgrep
}
LAB_00019f3c:
if (cVar2 == '\0') {
*(undefined4 *)(*(int *)(param_2 + 0xdc) + 0x1004) = 0xc;
}
if (1 < RTDebugLevel) {
printk("MAC specific condition \n");
}
Show_QoSLoad_Proc(param_2,0);
}
MlmeResetRalinkCounters(param_2);
MlmeHandler(param_2);
}
*(undefined1 *)(param_2 + 0x769d9) = 0;
}
else {
*(uint *)(param_2 + 0x1f0f0) = *(uint *)(param_2 + 0x1f0f0) + 1;
}
}
return;
}