/* 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;
}