void CMDHandler(int param_1)
{
char cVar1;
int iVar2;
int *local_30 [2];
if (param_1 != 0) {
while (*(int *)(param_1 + 0x29bc) != 0) {
local_bh_disable();
RTThreadDequeueCmd(param_1 + 0x29bc,local_30);
local_bh_enable();
if (local_30[0] == (int *)0x0) {
return;
}
if (((*(uint *)(param_1 + 0x76904) & 0x140) == 0) && (3 < *local_30[0] + 0xf28cfefeU)) {
if (RTDebugLevel != 0) {
printk("--> Control Thread !! ERROR !! Unknown(cmdqelmt->command=0x%x) !! \n");
goto LAB_00027ff8;
}
cVar1 = (char)local_30[0][3] //possible issue identified - semgrep
}
else {
LAB_00027ff8:
cVar1 = (char)local_30[0][3] //possible issue identified - semgrep
}
iVar2 = local_30[0][1];
if (cVar1 == '\x01') {
joined_r0x00028020:
if (iVar2 != 0) {
os_free_mem(param_1);
}
}
else if (iVar2 != 0) {
iVar2 = local_30[0][2];
goto joined_r0x00028020;
}
os_free_mem(param_1,local_30[0]);
}
}
return;
}