void NICReadEEPROMParameters(int param_1,char *param_2)

{
  bool bVar1;
  char cVar2;
  char cVar3;
  ushort uVar4;
  undefined1 uVar5;
  byte bVar6;
  char cVar7;
  ushort uVar8;
  code *pcVar9;
  size_t sVar10;
  char *pcVar11;
  char *pcVar12;
  uint uVar13;
  int iVar14;
  uint uVar15;
  int iVar16;
  ushort *puVar17;
  ushort local_38 [2];
  undefined1 local_34;
  undefined1 local_33;
  byte local_30;
  byte local_2f;
  ushort local_2c;
  undefined1 local_2a [2];
  undefined1 local_28 [2];
  undefined1 local_26 [10];
  
  if (2 < RTDebugLevel) {
    printk("--> NICReadEEPROMParameters\n");
  }
  if (*(code **)(param_1 + 0x40) == (code *)0x0) {
    pcVar9 = *(code **)(param_1 + 0xc);
  }
  else {
    (**(code **)(param_1 + 0x40))(param_1);
    pcVar9 = *(code **)(param_1 + 0xc);
  }
  if (pcVar9 == (code *)0x0) {
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  else {
    (*pcVar9)(param_1);
    cVar2 = *(char *)(param_1 + 0xec)   //possible issue identified - semgrep
  }
  uVar15 = 0;
  if (cVar2 == '\0') {
    uVar15 = *(uint *)(*(int *)(param_1 + 0xdc) + 4);
  }
  if (2 < RTDebugLevel) {
    printk("--> E2PROM_CSR = 0x%x\n",uVar15);
  }
  uVar5 = 6;
  if ((uVar15 & 0x30) != 0) {
    uVar5 = 8;
  }
  *(undefined1 *)(param_1 + 0x4ac6) = uVar5;
  if (2 < RTDebugLevel) {
    printk("--> EEPROMAddressNum = %d\n",*(undefined1 *)(param_1 + 0x4ac6));
  }
  if (RTDebugLevel < 3) {
    pcVar9 = *(code **)(param_1 + 0x10);
  }
  else {
    printk("Initialize MAC Address from E2PROM \n");
    pcVar9 = *(code **)(param_1 + 0x10);
  }
  (*pcVar9)(param_1,4,local_2a);
  (**(code **)(param_1 + 0x10))(param_1,6,local_28);
  (**(code **)(param_1 + 0x10))(param_1,8,local_26);
  *(char *)(param_1 + 0x1696d) = local_2a[0];
  *(char *)(param_1 + 0x1696e) = local_2a[1];
  *(char *)(param_1 + 0x1696f) = local_28[0];
  *(char *)(param_1 + 0x16970) = local_28[1];
  *(char *)(param_1 + 0x16971) = (char)local_26._0_2_;
  *(char *)(param_1 + 0x16972) = SUB21(local_26._0_2_,1);
  if (*(char *)(param_1 + 0x1696d) == -1) {
    bVar6 = RandomByte(param_1);
    *(byte *)(param_1 + 0x1696d) = bVar6 & 0xf8;
  }
  if (2 < RTDebugLevel) {
    printk("E2PROM MAC: =%02x:%02x:%02x:%02x:%02x:%02x\n",*(undefined1 *)(param_1 + 0x1696d),
           *(undefined1 *)(param_1 + 0x1696e),*(undefined1 *)(param_1 + 0x1696f),
           *(undefined1 *)(param_1 + 0x16970),*(undefined1 *)(param_1 + 0x16971),
           *(undefined1 *)(param_1 + 0x16972));
  }
  if (*(char *)(param_1 + 0x1696c) == '\0') {
    if ((param_2 != (char *)0x0) && (sVar10 = strlen(param_2), sVar10 == 0x11)) {
      pcVar12 = "00:00:00:00:00:00";
      cVar2 = *param_2;
      pcVar11 = param_2;
      do {
        cVar3 = *pcVar12;
        pcVar11 = pcVar11 + 1;
        pcVar12 = pcVar12 + 1;
        cVar7 = cVar2;
        if (cVar3 != cVar2) break;
        bVar1 = cVar2 != '\0';
        cVar2 = *pcVar11;
        cVar7 = cVar3;
      } while (bVar1);
      if (cVar7 != cVar3) {
        iVar16 = 0;
        do {
          iVar14 = param_1 + iVar16;
          iVar16 = iVar16 + 1;
          AtoH(param_2,iVar14 + 0x16973,1);
          param_2 = param_2 + 3;
        } while (iVar16 != 6);
        if (2 < RTDebugLevel) {
          pcVar11 = "Use the MAC address what is assigned from Moudle Parameter. \n";
          goto LAB_0002bcc4;
        }
        goto LAB_0002bcd8;
      }
    }
    memcpy((void *)(param_1 + 0x16973),(void *)(param_1 + 0x1696d),6)   //possible issue identified - semgrep
    if (2 < RTDebugLevel) {
      pcVar11 = "Use the MAC address what is assigned from EEPROM. \n";
      goto LAB_0002bcc4;
    }
  }
  else if (2 < RTDebugLevel) {
    pcVar11 = "Use the MAC address what is assigned from Configuration file(.dat). \n";
LAB_0002bcc4:
    printk(pcVar11);
  }
LAB_0002bcd8:
  if (*(char *)(param_1 + 0xec) == '\0') {
    *(undefined4 *)(*(int *)(param_1 + 0xdc) + 0x1008) = *(undefined4 *)(param_1 + 0x16973);
  }
  if (*(char *)(param_1 + 0xec) == '\0') {
    *(uint *)(*(int *)(param_1 + 0xdc) + 0x100c) = *(ushort *)(param_1 + 0x16977) | 0xff0000;
  }
  if (2 < RTDebugLevel) {
    printk("Current MAC: =%02x:%02x:%02x:%02x:%02x:%02x\n",*(undefined1 *)(param_1 + 0x16973),
           *(undefined1 *)(param_1 + 0x16974),*(undefined1 *)(param_1 + 0x16975),
           *(undefined1 *)(param_1 + 0x16976),*(undefined1 *)(param_1 + 0x16977),
           *(undefined1 *)(param_1 + 0x16978));
  }
  RTMPReadChannelPwr(param_1);
  (**(code **)(param_1 + 0x10))(param_1,2,&local_30);
  *(uint *)(param_1 + 0x4a98) = (uint)local_30 * 0x100 + (uint)local_2f;
  if (2 < RTDebugLevel) {
    printk("E2PROM: Version = %d, FAE release #%d\n");
  }
  if (1 < local_2f) {
    printk("ERROR!!! ");
    printk("E2PROM: WRONG VERSION 0x%x, should be %d\n",local_2f,1);
  }
  (**(code **)(param_1 + 0x10))(param_1,0x34,local_38);
  *(ushort *)(param_1 + 0x4aa0) = local_38[0];
  (**(code **)(param_1 + 0x10))(param_1,0x36,local_38);
  *(ushort *)(param_1 + 0x4aa2) = local_38[0];
  (**(code **)(param_1 + 0x10))(param_1,0x38,local_38);
  *(ushort *)(param_1 + 0x4aa6) = local_38[0];
  puVar17 = (ushort *)(param_1 + 0x4aa8);
  iVar16 = 0xf0;
  do {
    (**(code **)(param_1 + 0x10))(param_1,iVar16,local_38);
    iVar16 = iVar16 + 2;
    *puVar17 = local_38[0];
    puVar17 = puVar17 + 1;
  } while (iVar16 != 0x100);
  local_2c = *(ushort *)(param_1 + 0x4aa0);
  if (((local_2c & 0xf00) == 0xf00) && (*(code **)(param_1 + 0x70) != (code *)0x0)) {
    (**(code **)(param_1 + 0x70))(param_1,&local_2c);
  }
  if ((*(byte *)(param_1 + 0x16e13) == 0) ||
     (((uint)local_2c << 0x18) >> 0x1c < (uint)*(byte *)(param_1 + 0x16e13))) {
    *(byte *)(param_1 + 0x16e13) = (byte)local_2c >> 4;
  }
  if ((*(byte *)(param_1 + 0x16e14) == 0) ||
     ((local_2c & 0xf) < (ushort)*(byte *)(param_1 + 0x16e14))) {
    *(char *)(param_1 + 0x16e14) = (char)(local_2c & 0xf);
    if ((*(int *)(param_1 + 0x4a94) != 0x38830400) && (*(int *)(param_1 + 0x4a94) != 0x28830300)) {
      if ((local_2c & 0xf) < 3) {
        uVar8 = *(ushort *)(param_1 + 0x4aa2);
        goto LAB_0002bf98;
      }
      *(undefined1 *)(param_1 + 0x16e14) = 2;
    }
    uVar8 = *(ushort *)(param_1 + 0x4aa2);
  }
  else {
    uVar8 = *(ushort *)(param_1 + 0x4aa2);
  }
LAB_0002bf98:
  if (uVar8 == 0xffff) {
    uVar8 = 0;
  }
  if ((uVar8 & 2) == 0) {
    *(undefined1 *)(param_1 + 0x50bc) = 0;
    *(undefined1 *)(param_1 + 0x50ae) = 0;
  }
  else {
    *(undefined1 *)(param_1 + 0x50ae) = 1;
    *(undefined1 *)(param_1 + 0x50bc) = 1;
  }
  *(ushort *)(param_1 + 0x4bf6) = uVar8;
  if (2 < RTDebugLevel) {
    printk("NICReadEEPROMParameters: RxPath = %d, TxPath = %d\n",local_2c & 0xf,
           ((uint)local_2c << 0x18) >> 0x1c);
  }
  cVar2 = *(char *)(param_1 + 0x16982)   //possible issue identified - semgrep
  uVar15 = (uint)local_2c << 0x14;
  uVar13 = uVar15 >> 0x1c;
  *(byte *)(param_1 + 0x1f0fc) = (byte)(((uint)local_2c << 0x1c) >> 0x1c);
  *(ushort *)(param_1 + 0x4bf4) = local_2c;
  *(byte *)(param_1 + 0x4bd4) = (byte)(uVar15 >> 0x1c);
  if (((((byte)(cVar2 - 2U) < 2) || (cVar2 == '\x05')) || (cVar2 == '\b')) ||
     ((cVar2 == '\n' || (cVar2 == '\v')))) {
    if ((((uVar13 != 2) && ((uVar13 != 4 && (uVar13 != 9)))) && (uVar13 != 10)) && (uVar13 != 0xd))
    {
      if (RTDebugLevel != 0) {
        printk("phy mode> Error! The chip does not support 5G band %d!\n",uVar13);
      }
      Set_WirelessMode_Proc(param_1,&_LC60);
    }
    pcVar9 = *(code **)(param_1 + 0x90);
  }
  else {
    pcVar9 = *(code **)(param_1 + 0x90);
  }
  if (pcVar9 != (code *)0x0) {
    (*pcVar9)(param_1);
  }
  uVar8 = local_2c & 0xf00;
  if ((((uVar8 == 0x200) || (uVar8 == 0x400)) || (uVar8 == 0x900)) || (uVar8 == 0xa00)) {
    uVar5 = 3;
  }
  else {
    cVar2 = *(char *)(param_1 + 0x16982)   //possible issue identified - semgrep
    if ((byte)(cVar2 - 2U) < 2) {
      *(undefined1 *)(param_1 + 0x16982) = 0;
    }
    else if (((cVar2 == '\x05') || (cVar2 == '\b')) || ((cVar2 == '\n' || (cVar2 == '\v')))) {
      *(undefined1 *)(param_1 + 0x16982) = 9;
    }
    uVar5 = 1;
  }
  *(undefined1 *)(param_1 + 0x76c29) = uVar5;
  (**(code **)(param_1 + 0x10))(param_1,0x6e,&local_34);
  *(undefined1 *)(param_1 + 0x50c6) = local_33;
  *(undefined1 *)(param_1 + 0x50c7) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0x70,&local_34);
  *(undefined1 *)(param_1 + 0x50c4) = local_33;
  *(undefined1 *)(param_1 + 0x50c5) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0x72,&local_34);
  *(undefined1 *)(param_1 + 0x50bf) = local_33;
  *(undefined1 *)(param_1 + 0x50bd) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0x74,&local_34);
  *(undefined1 *)(param_1 + 0x50c1) = local_33;
  *(undefined1 *)(param_1 + 0x50c0) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0x76,&local_34);
  cVar2 = *(char *)(param_1 + 0x50bd)   //possible issue identified - semgrep
  *(undefined1 *)(param_1 + 0x50c2) = local_34;
  *(undefined1 *)(param_1 + 0x50c8) = local_33;
  *(char *)(param_1 + 0x50be) = cVar2;
  *(undefined1 *)(param_1 + 0x50c9) = 0;
  *(char *)(param_1 + 0x50c3) = cVar2;
  if (cVar2 == -1) {
    *(undefined1 *)(param_1 + 0x50bc) = 0;
  }
  if (2 < RTDebugLevel) {
    printk("E2PROM: G Tssi[-4 .. +4] = %d %d %d %d - %d -%d %d %d %d, step=%d, tuning=%d\n",
           *(undefined1 *)(param_1 + 0x50c7),*(undefined1 *)(param_1 + 0x50c6),
           *(undefined1 *)(param_1 + 0x50c5),*(undefined1 *)(param_1 + 0x50c4),
           *(undefined1 *)(param_1 + 0x50bd),*(undefined1 *)(param_1 + 0x50bf),
           *(undefined1 *)(param_1 + 0x50c0),*(undefined1 *)(param_1 + 0x50c1),
           *(undefined1 *)(param_1 + 0x50c2),*(undefined1 *)(param_1 + 0x50c8),
           *(undefined1 *)(param_1 + 0x50bc));
  }
  (**(code **)(param_1 + 0x10))(param_1,0xd4,&local_34);
  *(undefined1 *)(param_1 + 0x50b8) = local_33;
  *(undefined1 *)(param_1 + 0x50b9) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0xd6,&local_34);
  *(undefined1 *)(param_1 + 0x50b6) = local_33;
  *(undefined1 *)(param_1 + 0x50b7) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0xd8,&local_34);
  *(undefined1 *)(param_1 + 0x50b1) = local_33;
  *(undefined1 *)(param_1 + 0x50af) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0xda,&local_34);
  *(undefined1 *)(param_1 + 0x50b3) = local_33;
  *(undefined1 *)(param_1 + 0x50b2) = local_34;
  (**(code **)(param_1 + 0x10))(param_1,0xdc,&local_34);
  cVar2 = *(char *)(param_1 + 0x50af)   //possible issue identified - semgrep
  *(undefined1 *)(param_1 + 0x50b4) = local_34;
  *(undefined1 *)(param_1 + 0x50ba) = local_33;
  *(char *)(param_1 + 0x50b0) = cVar2;
  *(undefined1 *)(param_1 + 0x50bb) = 0;
  *(char *)(param_1 + 0x50b5) = cVar2;
  if (cVar2 == -1) {
    *(undefined1 *)(param_1 + 0x50ae) = 0;
  }
  if (RTDebugLevel < 3) {
    pcVar9 = *(code **)(param_1 + 0x10);
  }
  else {
    printk("E2PROM: A Tssi[-4 .. +4] = %d %d %d %d - %d -%d %d %d %d, step=%d, tuning=%d\n",
           *(undefined1 *)(param_1 + 0x50b9),*(undefined1 *)(param_1 + 0x50b8),
           *(undefined1 *)(param_1 + 0x50b7),*(undefined1 *)(param_1 + 0x50b6),
           *(undefined1 *)(param_1 + 0x50af),*(undefined1 *)(param_1 + 0x50b1),
           *(undefined1 *)(param_1 + 0x50b2),*(undefined1 *)(param_1 + 0x50b3),
           *(undefined1 *)(param_1 + 0x50b4),*(undefined1 *)(param_1 + 0x50ba),
           *(undefined1 *)(param_1 + 0x50ae));
    pcVar9 = *(code **)(param_1 + 0x10);
  }
  *(undefined1 *)(param_1 + 0x4bc9) = 0;
  (*pcVar9)(param_1,0x3a,local_38);
  uVar15 = (uint)(byte)local_38[0];
  uVar13 = (uint)*(byte *)(param_1 + 0x4bdc);
  if (uVar15 == 0xff) {
    uVar15 = 0;
  }
  *(uint *)(param_1 + 0x4bd8) = uVar15;
  if ((*(byte *)(param_1 + 0x4bdc) & 0x10) == 0) {
    iVar16 = 0x3f;
    if (uVar13 + uVar15 < 0x40) {
      iVar16 = (uVar13 & 0xf) + uVar15;
    }
  }
  else {
    iVar16 = 0;
    if (uVar13 <= uVar15) {
      iVar16 = uVar15 - (uVar13 & 0xf);
    }
  }
  *(int *)(param_1 + 0x4bd8) = iVar16;
  if (RTDebugLevel < 3) {
    uVar8 = *(ushort *)(param_1 + 0x4aa6);
  }
  else {
    printk("E2PROM: RF FreqOffset=0x%lx \n",*(undefined4 *)(param_1 + 0x4bd8));
    uVar8 = *(ushort *)(param_1 + 0x4aa6);
  }
  uVar4 = uVar8 >> 8;
  local_38[0] = uVar8 >> 8;
  if (((uVar4 < 8) || (uVar4 == 0x20)) || (uVar4 == 0x21)) {
    *(byte *)(param_1 + 0x16980) = (byte)(uVar8 >> 8) | 0x80;
  }
  if ((uVar8 & 0xff) < 0x26) {
    *(byte *)(param_1 + 0x16981) = (byte)uVar8 | 0x80;
  }
  (**(code **)(param_1 + 0x10))(param_1,0x46,local_38);
  *(char *)(param_1 + 0x50df) = (char)(local_38[0] >> 8);
  *(char *)(param_1 + 0x50de) = (char)local_38[0];
  (**(code **)(param_1 + 0x10))(param_1,0x48,local_38);
  *(char *)(param_1 + 0x50e6) = (char)(local_38[0] >> 8);
  *(char *)(param_1 + 0x50e0) = (char)local_38[0];
  (**(code **)(param_1 + 0x10))(param_1,0x44,local_38);
  *(char *)(param_1 + 0x50e4) = (char)local_38[0];
  *(char *)(param_1 + 0x50e5) = (char)(local_38[0] >> 8);
  if (0x14 < (byte)(*(char *)(param_1 + 0x50de) + 10U)) {
    *(undefined1 *)(param_1 + 0x50de) = 0;
  }
  if (0x14 < (byte)(*(char *)(param_1 + 0x50df) + 10U)) {
    *(undefined1 *)(param_1 + 0x50df) = 0;
  }
  if (0x14 < (byte)(*(char *)(param_1 + 0x50e0) + 10U)) {
    *(undefined1 *)(param_1 + 0x50e0) = 0;
  }
  (**(code **)(param_1 + 0x10))(param_1,0x4a,local_38);
  *(char *)(param_1 + 0x50e2) = (char)(local_38[0] >> 8);
  *(char *)(param_1 + 0x50e1) = (char)local_38[0];
  (**(code **)(param_1 + 0x10))(param_1,0x4c,local_38);
  *(char *)(param_1 + 0x50e3) = (char)local_38[0];
  *(char *)(param_1 + 0x50e7) = (char)(local_38[0] >> 8);
  if ((byte)(*(char *)(param_1 + 0x50e6) + 1U) < 2) {
    *(undefined1 *)(param_1 + 0x50e6) = *(undefined1 *)(param_1 + 0x50e5);
  }
  if ((byte)(*(char *)(param_1 + 0x50e7) + 1U) < 2) {
    *(undefined1 *)(param_1 + 0x50e7) = *(undefined1 *)(param_1 + 0x50e5);
    cVar2 = *(char *)(param_1 + 0x50e1)   //possible issue identified - semgrep
  }
  else {
    cVar2 = *(char *)(param_1 + 0x50e1)   //possible issue identified - semgrep
  }
  if (0x14 < (byte)(cVar2 + 10U)) {
    *(undefined1 *)(param_1 + 0x50e1) = 0;
  }
  if (0x14 < (byte)(*(char *)(param_1 + 0x50e2) + 10U)) {
    *(undefined1 *)(param_1 + 0x50e2) = 0;
  }
  if (0x14 < (byte)(*(char *)(param_1 + 0x50e3) + 10U)) {
    *(undefined1 *)(param_1 + 0x50e3) = 0;
  }
  RTMPGetLEDSetting(param_1);
  RTMPReadTxPwrPerRate(param_1);
  (**(code **)(param_1 + 0x10))(param_1,0x36,local_38);
  if (local_38[0] == 0xffff) {
    *(undefined1 *)(param_1 + 0x50ca) = 0;
  }
  else if ((local_38[0] & 0x2000) == 0) {
    *(undefined1 *)(param_1 + 0x50ca) = 0;
  }
  else {
    *(undefined1 *)(param_1 + 0x50ca) = 1;
  }
  if (RTDebugLevel < 3) {
    cVar2 = *(char *)(param_1 + 0xd9)   //possible issue identified - semgrep
  }
  else {
    printk("TXALC> bInternalTxALC = %d\n",*(undefined1 *)(param_1 + 0x50ca));
    cVar2 = *(char *)(param_1 + 0xd9)   //possible issue identified - semgrep
  }
  if (cVar2 != '\x01') goto LAB_0002c7c0;
  if (RTDebugLevel < 3) {
    pcVar9 = *(code **)(param_1 + 0x10);
  }
  else {
    printk("HwAnDi> Read from EEPROM!\n");
    pcVar9 = *(code **)(param_1 + 0x10);
  }
  (*pcVar9)(param_1,0x36,local_38);
  uVar15 = (uint)local_38[0] << 0x13;
  uVar13 = uVar15 >> 0x1e;
  local_38[0] = (ushort)(uVar15 >> 0x1e);
  if (uVar13 == 0) {
LAB_0002c7a0:
    *(undefined1 *)(param_1 + 0x76e86) = 0;
  }
  else {
    if (uVar13 == 1) {
      *(byte *)(param_1 + 0x76e85) = (byte)(uVar15 >> 0x1e);
      goto LAB_0002c7c0;
    }
    if (uVar13 == 2) goto LAB_0002c7a0;
    *(undefined1 *)(param_1 + 0x76e86) = 1;
  }
  *(undefined1 *)(param_1 + 0x76e85) = 0;
LAB_0002c7c0:
  if (2 < RTDebugLevel) {
    printk("<-- NICReadEEPROMParameters\n");
  }
  return;
}