void RT5350_AsicTxAlcGetAutoAgcOffset
               (int param_1,undefined1 *param_2,char *param_3,undefined4 param_4,byte *param_5)

{
  byte bVar1;
  char cVar2;
  uint uVar3;
  undefined1 *puVar4;
  uint uVar5;
  uint uVar6;
  byte local_28;
  byte local_27 [11];
  
  local_27[0] = 0;
  local_28 = 0;
  cVar2 = '\0';
  if ((*(uint *)(param_1 + 0x1f0f8) & 3) == 0) {
    uVar3 = RT5350_GetDesiredTSSI(param_1,&local_28);
    if (uVar3 == 0) {
      return;
    }
    uVar6 = (uint)local_28 * 10000;
    uVar5 = uVar3 >> 5;
    if (2 < RTDebugLevel) {
      printk("DesiredTSSI = %d, CurrentTSSI = %d (Range: %d ~ %d, BBP_R49=0x%X)\n",uVar3,uVar6,
             uVar3 - uVar5,uVar5 + uVar3,(uint)local_28);
    }
    if (uVar6 < uVar3 - uVar5) {
      *(char *)(param_1 + 0x50db) = *(char *)(param_1 + 0x50db) + '\x01';
    }
    if (uVar5 + uVar3 < uVar6) {
      *(char *)(param_1 + 0x50db) = *(char *)(param_1 + 0x50db) + -1;
      cVar2 = *(char *)(param_1 + 0x50db)   //possible issue identified - semgrep
    }
    else {
      cVar2 = *(char *)(param_1 + 0x50db)   //possible issue identified - semgrep
    }
    if (cVar2 < -0x1e) {
      *(undefined1 *)(param_1 + 0x50db) = 0xe2;
      bVar1 = *(byte *)(param_1 + 0xd6);
    }
    else {
      bVar1 = *(byte *)(param_1 + 0xd6);
    }
    if ((int)(uint)bVar1 <= (int)*(char *)(param_1 + 0x50db)) {
      *(byte *)(param_1 + 0x50db) = bVar1;
    }
    puVar4 = TxPowerTuningTable + (*(char *)(param_1 + 0x50db) + 0x1e) * 2;
    *(undefined1 *)(param_1 + 0x50dc) = *puVar4;
    *(undefined1 *)(param_1 + 0x50dd) = puVar4[1];
    RT30xxReadRFRegister(param_1,0x31,local_27);
    local_27[0] = local_27[0] & 0xc0 | *(byte *)(param_1 + 0x50dc);
    RT30xxWriteRFRegister(param_1,0x31,local_27[0]);
    if (2 < RTDebugLevel) {
      printk("RF_R49 = 0x%X ",local_27[0]);
    }
    cVar2 = *(char *)(param_1 + 0x50dd)   //possible issue identified - semgrep
    if (2 < RTDebugLevel) {
      printk("Current idxTxPowerTable = %d {RF_TX_ALC = 0x%X, MAC_PowerDelta = %d}\n",
             *(char *)(param_1 + 0x50db) + 0x1e,(int)*(char *)(param_1 + 0x50dc),(int)cVar2);
    }
  }
  *param_5 = local_28;
  *param_2 = 0;
  *param_3 = cVar2;
  return;
}