undefined4
RTMPCheckEtherType(int param_1,int param_2,int param_3,undefined4 param_4,byte *param_5,
                  byte *param_6)

{
  short sVar1;
  bool bVar2;
  byte bVar3;
  undefined1 uVar4;
  uint uVar5;
  uint uVar6;
  ushort *puVar7;
  int iVar8;
  uint uVar9;
  byte local_30;
  byte local_2f [11];
  
  if (((*(char *)(param_1 + 0x5b30) != '\0') ||
      (bVar2 = false, (*(uint *)(param_1 + 0x16abc) & 0x100) != 0)) && (bVar2 = false, param_3 != 0)
     ) {
    sVar1 = *(short *)(param_3 + 0x27e)   //possible issue identified - semgrep
    bVar2 = sVar1 == 0;
    if (((ushort)(sVar1 - 1U) < 0x1f) && (bVar2 = true, (*(uint *)(param_3 + 0x414) & 1) == 0)) {
      bVar2 = sVar1 == 0;
    }
  }
  iVar8 = *(int *)(param_2 + 0x9c);
  uVar9 = *(uint *)(param_2 + 0x4c);
  if (iVar8 == 0) {
    printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/cmm_data.c:%d assert pSrcBuffailed\n"
           ,0xb20);
  }
  *(undefined1 *)(param_2 + 0x2d) = 0;
  uVar6 = (uint)CONCAT11(*(undefined1 *)(iVar8 + 0xc),*(undefined1 *)(iVar8 + 0xd));
  puVar7 = (ushort *)(iVar8 + 0xe);
  if (0x5dc < uVar6) {
LAB_00023690:
    if (uVar6 == 0x8100) {
      if (*(ushort *)(param_1 + 0x5924) == 0) {
        bVar3 = *(byte *)(param_2 + 0x2d);
      }
      else {
        if (((*puVar7 & 0xf) << 8 | (uint)(*puVar7 >> 8)) != (uint)*(ushort *)(param_1 + 0x5924)) {
          return 0;
        }
        bVar3 = *(byte *)(param_2 + 0x2d);
      }
      *(byte *)(param_2 + 0x2d) = bVar3 | 0x10;
      Sniff2BytesFromNdisBuffer(puVar7,2,&local_30,local_2f);
      if (bVar2) {
        bVar3 = (byte)*puVar7 >> 5;
        *param_5 = bVar3;
        *param_6 = *(byte *)((int)&MapUserPriorityToAccessCategory + (uint)bVar3);
      }
      uVar6 = (uint)local_30 * 0x100 + (uint)local_2f[0] & 0xffff;
      puVar7 = puVar7 + 2;
      goto LAB_000237c4;
    }
    if (uVar6 != 0x800) goto LAB_00023778;
    if (bVar2) {
      if ((*puVar7 & 0xf0) == 0x40) {
        *param_5 = *(byte *)((int)puVar7 + 1) >> 5;
        bVar3 = *param_5;
      }
      else {
        bVar3 = *param_5;
      }
      *param_6 = *(byte *)((int)&MapUserPriorityToAccessCategory + (uint)bVar3);
      goto LAB_00023804;
    }
    bVar3 = *(byte *)(param_2 + 0x2d);
    goto LAB_0002382c;
  }
  if (((*(char *)(iVar8 + 0xe) == -0x56) && (*(char *)(iVar8 + 0xf) == -0x56)) &&
     (*(char *)(iVar8 + 0x10) == '\x03')) {
    Sniff2BytesFromNdisBuffer(puVar7,6,&local_30,local_2f);
    *(byte *)(param_2 + 0x2d) = *(byte *)(param_2 + 0x2d) | 0x20;
    uVar6 = (uint)local_30 * 0x100 + (uint)local_2f[0] & 0xffff;
    puVar7 = (ushort *)(iVar8 + 0x16);
    goto LAB_00023690;
  }
LAB_00023778:
  if (uVar6 == 0x86dd) {
    uVar6 = 0x86dd;
    if (bVar2) {
      if (((byte)*puVar7 & 0xf0) == 0x60) {
        *param_5 = (byte)(((uint)(byte)*puVar7 << 0x1c) >> 0x1d);
        bVar3 = *param_5;
      }
      else {
        bVar3 = *param_5;
      }
      *param_6 = *(byte *)((int)&MapUserPriorityToAccessCategory + (uint)bVar3);
LAB_000238fc:
      if (bVar2) {
        uVar6 = 0x86dd;
        if ((*puVar7 & 0xf0) != 0x60) {
          *param_5 = 0;
          *param_6 = 0;
        }
      }
      else {
        uVar6 = 0x86dd;
      }
    }
    goto LAB_00023938;
  }
LAB_000237c4:
  if (uVar6 == 0x806) {
    bVar3 = *(byte *)(param_2 + 0x2d);
LAB_00023920:
    bVar3 = bVar3 | 1;
LAB_0002392c:
    *(byte *)(param_2 + 0x2d) = bVar3;
  }
  else {
    uVar4 = (undefined1)(uVar6 >> 8);
    if (0x806 < uVar6) {
      if (uVar6 == 0x86dd) goto LAB_000238fc;
      if (uVar6 != 0x888e) goto LAB_0002393c;
      bVar3 = *(byte *)(param_2 + 0x2d) | 2;
      goto LAB_0002392c;
    }
    if (uVar6 != 0x800) goto LAB_0002393c;
LAB_00023804:
    if (bVar2) {
      if ((*puVar7 & 0xf0) == 0x40) {
        bVar3 = *(byte *)(param_2 + 0x2d);
        goto LAB_0002382c;
      }
      *param_5 = 0;
      *param_6 = 0;
    }
    else {
      bVar3 = *(byte *)(param_2 + 0x2d);
LAB_0002382c:
      *(byte *)(param_2 + 0x2d) = bVar3 | 4;
    }
    if (uVar9 < 0x23) {
      printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/cmm_data.c:%d assert (pktLen > 34)failed\n"
             ,0xbd0);
      bVar3 = *(byte *)((int)puVar7 + 9);
    }
    else {
      bVar3 = *(byte *)((int)puVar7 + 9);
    }
    uVar6 = 0x800;
    if (bVar3 == 0x11) {
      if (uVar9 < 0x23) {
        printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/cmm_data.c:%d assert (pktLen > 34)failed\n"
               ,0xbd3);
      }
      uVar9 = (puVar7[10] & 0xff) << 8 | (uint)*(byte *)((int)puVar7 + 0x15);
      uVar5 = (puVar7[0xb] & 0xff) << 8 | (uint)(puVar7[0xb] >> 8);
      if (uVar9 == 0x44) {
        if (uVar5 == 0x43) {
          bVar3 = *(byte *)(param_2 + 0x2d);
LAB_000238f4:
          uVar6 = 0x800;
          goto LAB_00023920;
        }
        uVar6 = 0x800;
      }
      else {
        uVar6 = 0x800;
        if (uVar9 == 0x43) {
          if (uVar5 != 0x44) {
            uVar4 = 8;
            goto LAB_0002393c;
          }
          bVar3 = *(byte *)(param_2 + 0x2d);
          goto LAB_000238f4;
        }
      }
    }
  }
LAB_00023938:
  uVar4 = (undefined1)(uVar6 >> 8);
LAB_0002393c:
  *(undefined1 *)(param_2 + 0x3a) = uVar4;
  *(char *)(param_2 + 0x39) = (char)uVar6;
  if (*(char *)(param_1 + (uint)*param_6 + 0x16aac) != '\0') {
    *param_5 = 0;
    *param_6 = 0;
  }
  return 1;
}