void RTMPWriteTxWI(int param_1,void *param_2,uint param_3,undefined4 param_4,byte param_5,
                  byte param_6,byte param_7,byte param_8,undefined4 param_9,byte param_10,
                  uint param_11,byte param_12,undefined4 param_13,undefined4 param_14,byte param_15,
                  byte param_16,ushort *param_17)

{
  uint uVar1;
  uint uVar2;
  uint uVar3;
  uint uVar4;
  uint uVar5;
  uint uVar6;
  ushort uVar7;
  uint uVar8;
  uint uVar9;
  uint uVar10;
  uint uVar11;
  uint uVar12;
  int iVar13;
  uint local_48;
  undefined4 local_44;
  uint local_38;
  uint local_34;
  uint local_30;
  int local_2c;
  
  local_38 = (uint)param_8;
  local_34 = (uint)param_12;
  local_30 = (uint)param_16;
  iVar13 = 0;
  if (param_10 < 0x20) {
    iVar13 = param_1 + (uint)param_10 * 0xa20 + 0x5cf38;
  }
  *(uint *)(param_1 + 0x16abc) = *(uint *)(param_1 + 0x16abc) & 0xffffffef;
  local_2c = param_1;
  memset(&local_48,0,0x10)   //possible issue identified - semgrep
  param_3 = param_3 & 1;
  uVar9 = (param_5 & 1) << 3;
  uVar1 = (param_6 & 1) << 4;
  uVar2 = (param_15 & 3) << 8;
  uVar8 = (uint)*(byte *)(param_1 + 0x16e10);
  if (*(uint *)(local_2c + 0x4a94) == 0x28720200) {
    if (0xd < uVar8) {
      uVar8 = 0xd;
    }
  }
  else {
    uVar10 = *(uint *)(local_2c + 0x4a94) & 0xffff0000;
    if ((uVar10 == 0x28830000) || (uVar10 == 0x38830000)) {
      if (0x1f < uVar8) {
        uVar8 = 0x1f;
      }
    }
    else if (7 < uVar8) {
      uVar8 = 7;
    }
  }
  uVar11 = (uint)*param_17;
  uVar3 = ((uVar11 << 0x17) >> 0x1f) << 0x18;
  uVar4 = ((uVar11 << 0x15) >> 0x1e) << 0x19;
  uVar10 = (uVar11 << 0x10) >> 0x1e;
  uVar11 = (uVar11 << 0x18) >> 0x1f;
  local_44 = (uint)CONCAT11(param_10,param_7 & 1 | (byte)((local_38 & 1) << 1) |
                                     (byte)((uVar8 & 0x3f) << 2));
  if (uVar10 < 2) {
    uVar11 = 0;
  }
  if ((uVar11 != 0) && (uVar11 = 0, (*(uint *)(local_2c + 0x16b18) & 0x400) != 0)) {
    uVar11 = ((uint)*param_17 << 0x18) >> 0x1f;
  }
  uVar11 = uVar11 << 0x17;
  uVar7 = *param_17;
  uVar8 = (uint)(uVar7 & 0x7f) << 0x10;
  uVar5 = uVar10 << 0x1e;
  uVar6 = (local_30 & 1) << 2;
  uVar12 = local_48 & 0x3800fce2 | param_3 | uVar9 | uVar1 | uVar2 | uVar3 | uVar4 | uVar11 | uVar8
           | uVar5 | uVar6;
  if (iVar13 == 0) goto LAB_00023fb4;
  if (*(char *)(local_2c + 0x16e04) == '\0') {
    uVar9 = (uint)*(byte *)(iVar13 + 0x456);
    local_48 = uVar12;
  }
  else {
    if (*(char *)(iVar13 + 0x459) == '\x01') {
      if ((uVar7 & 0x7f) < 8) {
        uVar9 = (uint)*(byte *)(iVar13 + 0x456);
        local_48 = uVar12;
        goto LAB_00023fa8;
      }
      uVar12 = local_48 & 0x3800fce0 | param_3 | uVar9 | uVar1 | uVar2 | uVar3 | uVar4 | uVar11 |
               uVar8 | uVar5 | uVar6 | 2;
    }
    else if ((*(char *)(iVar13 + 0x459) == '\0') && (1 < uVar10)) {
      if ((uVar7 & 0x7f) < 8) {
        uVar9 = (uint)*(byte *)(iVar13 + 0x456);
        local_48 = uVar12;
        goto LAB_00023fa8;
      }
      uVar12 = local_48 & 0x3800fce0 | param_3 | uVar9 | uVar1 | uVar2 | uVar3 | uVar4 | uVar11 |
               uVar5 | uVar6 | 0x70000;
    }
    local_48 = uVar12;
    uVar9 = (uint)*(byte *)(iVar13 + 0x456);
  }
LAB_00023fa8:
  uVar12 = local_48 & 0xffffff1f | (uVar9 & 7) << 5;
LAB_00023fb4:
  local_48 = uVar12;
  local_44 = local_44 | (param_11 & 0xfff) << 0x10 | ((local_48 << 9) >> 0x19) << 0x1c;
  memmove(param_2,&local_48,0x10)   //possible issue identified - semgrep
  return;
}