undefined4 RtmpDoAte(int param_1,uint *param_2)
{
bool bVar1;
uint *puVar2;
uint uVar3;
int *piVar4;
uint *puVar5;
int iVar6;
int iVar7;
uint uVar8;
undefined4 uVar9;
int unaff_gp;
uint *local_20 [2];
os_alloc_mem_suspend(param_1,local_20,0x80c);
uVar9 = 0xfffffff4;
if (local_20[0] != (uint *)0x0) {
memset(local_20[0],0,0x80c) //possible issue identified - semgrep
uVar8 = (uint)(ushort)param_2[1];
if (((uVar8 + *param_2 | *param_2 | uVar8) & *(uint *)(unaff_gp + 0x18)) == 0) {
__copy_user(local_20[0]);
}
puVar2 = local_20[0];
uVar9 = 0xfffffff2;
if (uVar8 == 0) {
uVar8 = *local_20[0];
if ((((uVar8 >> 0x10) << 0x18 | (uVar8 >> 0x18) << 0x10) >> 0x10) +
((uVar8 & 0xff) << 8 | uVar8 >> 8 & 0xff) * 0x10000 == 0x18142880) {
uVar8 = (*(ushort *)((int)local_20[0] + 6) & 0xff) << 8 |
(uint)(*(ushort *)((int)local_20[0] + 6) >> 8);
if (2 < RTDebugLevel) {
printk("\n%s: Command_Id = 0x%04x !\n","RACfgCMDHandler",uVar8);
}
piVar4 = &DAT_000e4360;
iVar7 = 0;
do {
iVar6 = uVar8 - *piVar4;
if ((-1 < iVar6) && (iVar6 < piVar4[-1])) {
if (*(code **)((&RACFG_CMD_TABLES)[iVar7 * 3] + iVar6 * 4) != (code *)0x0) {
uVar9 = (**(code **)((&RACFG_CMD_TABLES)[iVar7 * 3] + iVar6 * 4))
(param_1,param_2,puVar2);
goto LAB_000add24;
}
break;
}
iVar7 = iVar7 + 1;
piVar4 = piVar4 + 3;
} while (iVar7 != 5);
uVar9 = 0;
LAB_000add24:
if (*(char *)(param_1 + 0x76a0d) != '\0') {
puVar5 = &allowedCmds_43098;
do {
if (puVar5 == (uint *)"RACfgCMDHandler") {
bVar1 = false;
goto LAB_000add68;
}
uVar3 = *puVar5;
puVar5 = puVar5 + 1;
} while (uVar8 != uVar3);
bVar1 = true;
LAB_000add68:
if (((uVar8 != 9) ||
((uVar8 = ((ushort)puVar2[3] & 0xff) << 8 | (uint)(ushort)((ushort)puVar2[3] >> 8),
uVar8 != 0x1b && (8 < uVar8 - 0xae)))) && (!bVar1)) {
ResponseToGUI(puVar2,param_2,2,0);
uVar9 = 1;
}
}
}
else {
uVar9 = 1;
if (RTDebugLevel != 0) {
printk("Unknown magic number of RACFG command = %x\n");
uVar9 = 1;
}
}
}
os_free_mem(0,local_20[0]);
}
return uVar9;
}