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;
}