void RTMPWriteTxWI_Data(int param_1,byte *param_2,int param_3)

{
  byte bVar1;
  byte bVar2;
  byte bVar3;
  byte bVar4;
  uint uVar5;
  ushort *puVar6;
  int iVar7;
  
  if (param_2 == (byte *)0x0) {
    printk("<4>/home/eric/release/dir600b5/progs.priv/rt2860v2/build/rt2860v2_ap/../rt2860v2/common/cmm_data.c:%d assert pTxWIfailed\n"
           ,0x647);
  }
  puVar6 = *(ushort **)(param_3 + 0x18);
  iVar7 = *(int *)(param_3 + 0x14);
  *(uint *)(param_1 + 0x16abc) = *(uint *)(param_1 + 0x16abc) & 0xffffffef;
  memset(param_2,0,0x10)   //possible issue identified - semgrep
  bVar3 = *param_2;
  bVar4 = (byte)((uint)(*(int *)(param_3 + 200) << 0x1a) >> 0x1f);
  *param_2 = bVar3 & 0xfe | bVar4;
  param_2[4] = param_2[4] & 0xfe | (byte)((uint)(*(int *)(param_3 + 200) << 0x1e) >> 0x1f);
  param_2[1] = param_2[1] & 0xfc | *(byte *)(param_3 + 0xb9) & 3;
  param_2[5] = *(byte *)(param_3 + 0xb7);
  uVar5 = *(int *)(param_3 + 0x28) + (uint)*(byte *)(param_3 + 0xb4) & 0xffff;
  param_2[7] = param_2[7] & 0xf0 | (byte)((uVar5 << 0x14) >> 0x1c);
  param_2[6] = (byte)uVar5;
  *param_2 = bVar3 & 0xfa | bVar4 | (byte)(((uint)(*(int *)(param_3 + 200) << 0x1d) >> 0x1f) << 2);
  uVar5 = ((uint)*puVar6 << 0x18) >> 0x1f;
  if (((uint)*puVar6 << 0x10) >> 0x1e < 2) {
    uVar5 = 0;
  }
  param_2[2] = param_2[2] & 0x7f | (byte)(uVar5 << 7);
  if (uVar5 != 0) {
    uVar5 = 0;
    if ((*(uint *)(param_1 + 0x16b18) & 0x400) != 0) {
      uVar5 = ((uint)*puVar6 << 0x18) >> 0x1f;
    }
    param_2[2] = param_2[2] & 0x7f | (byte)(uVar5 << 7);
  }
  *param_2 = *param_2 & 0xef | (*(char *)(param_3 + 1) == '\x04') << 4;
  uVar5 = (uint)*(byte *)(param_1 + 0x16e10);
  if (*(char *)(param_3 + 1) == '\x04') {
    if (iVar7 == 0) {
      bVar3 = param_2[4];
    }
    else {
      uVar5 = (uint)*(byte *)((uint)*(byte *)(*(int *)(param_3 + 0x14) +
                                              (*(byte *)(param_3 + 0xb8) + 0x218) * 2 + 6) * 0x38 +
                              param_1 + 0x7136e);
      bVar3 = param_2[4];
    }
  }
  else {
    bVar3 = param_2[4];
  }
  bVar4 = param_2[3];
  param_2[4] = bVar3 & 3 | (byte)((uVar5 & 0x3f) << 2);
  bVar3 = param_2[2];
  bVar2 = (byte)(((uint)*puVar6 << 0x17) >> 0x18);
  param_2[3] = bVar4 & 0xfe | bVar2 >> 7;
  bVar2 = bVar2 >> 7;
  bVar1 = (byte)((((uint)*puVar6 << 0x15) >> 0x1e) << 1);
  param_2[3] = bVar4 & 0xf8 | bVar2 | bVar1;
  param_2[2] = bVar3 & 0x80 | (byte)*puVar6 & 0x7f;
  param_2[3] = bVar4 & 0x38 | bVar2 | bVar1 | (byte)((((uint)*puVar6 << 0x10) >> 0x1e) << 6);
  if (iVar7 == 0) goto LAB_00023cdc;
  if (*(char *)(iVar7 + 0x459) == '\x01') {
    if ((*puVar6 & 0x7f) < 8) {
      uVar5 = (uint)*(byte *)(iVar7 + 0x456);
    }
    else {
      bVar4 = *param_2 & 0xfd | 2;
LAB_00023cc8:
      *param_2 = bVar4;
LAB_00023ccc:
      uVar5 = (uint)*(byte *)(iVar7 + 0x456);
    }
  }
  else if (*(char *)(iVar7 + 0x459) == '\0') {
    if (((uint)*puVar6 << 0x10) >> 0x1e < 2) goto LAB_00023ccc;
    if (7 < (*puVar6 & 0x7f)) {
      bVar4 = *param_2 & 0xfd;
      param_2[2] = bVar3 & 0x80 | 7;
      goto LAB_00023cc8;
    }
    uVar5 = (uint)*(byte *)(iVar7 + 0x456);
  }
  else {
    uVar5 = (uint)*(byte *)(iVar7 + 0x456);
  }
  *param_2 = *param_2 & 0x1f | (byte)((uVar5 & 7) << 5);
LAB_00023cdc:
  param_2[7] = param_2[7] & 0xf | (byte)((param_2[2] & 0xf) << 4);
  return;
}