undefined4 DO_RACFG_CMD_ATE_IO_WRITE_BULK(int param_1,undefined4 param_2,int param_3)
{
char cVar1;
uint uVar2;
uint uVar3;
ushort local_38 [2];
uint local_34;
undefined4 local_30 [2];
memcpy(&local_34,(void *)(param_3 + 0xc),4) //possible issue identified - semgrep
local_34 = (((local_34 >> 0x10) << 0x18 | (local_34 >> 0x18) << 0x10) >> 0x10) +
((local_34 & 0xff) << 8 | local_34 >> 8 & 0xff) * 0x10000;
memcpy(local_38,(void *)(param_3 + 0x10),2) //possible issue identified - semgrep
local_38[0] = (ushort)((local_38[0] & 0xff) << 8) | local_38[0] >> 8;
uVar2 = 0;
while( true ) {
uVar3 = uVar2;
if (local_38[0] <= uVar3) break;
memcpy_exl(param_1,local_30,param_3 + uVar3 + 0x12,4);
if (RTDebugLevel < 3) {
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
else {
printk("Write %x %x\n",uVar3 + local_34,local_30[0]);
cVar1 = *(char *)(param_1 + 0xec) //possible issue identified - semgrep
}
uVar2 = uVar3 + 4;
if (cVar1 == '\0') {
*(undefined4 *)(*(int *)(param_1 + 0xdc) + (uVar3 + local_34 & 0xffff)) = local_30[0];
}
}
ResponseToGUI(param_3,param_2,2,0);
return 0;
}