undefined4 DO_RACFG_CMD_IO_READ(int param_1,undefined4 param_2,int param_3)
{
uint *puVar1;
uint local_18;
uint local_14;
memcpy(&local_18,(void *)(param_3 + 0xc),4) //possible issue identified - semgrep
local_18 = (((local_18 >> 0x10) << 0x18 | (local_18 >> 0x18) << 0x10) >> 0x10) +
((local_18 & 0xff) << 8 | local_18 >> 8 & 0xff) * 0x10000;
if ((local_18 & 0xffff0000) == 0x10000000) {
puVar1 = (uint *)(local_18 | 0xa0000000);
}
else {
local_18 = local_18 & 0xffff;
if (*(char *)(param_1 + 0xec) != '\0') {
local_14 = 0;
goto LAB_000988ac;
}
puVar1 = (uint *)(*(int *)(param_1 + 0xdc) + local_18);
}
local_14 = *puVar1;
LAB_000988ac:
local_14 = (((local_14 >> 0x10) << 0x18 | (local_14 >> 0x18) << 0x10) >> 0x10) +
((local_14 & 0xff) << 8 | local_14 >> 8 & 0xff) * 0x10000;
memcpy((void *)(param_3 + 0xe),&local_14,4) //possible issue identified - semgrep
ResponseToGUI(param_3,param_2,6,0);
return 0;
}