void memcpy_exl(undefined4 param_1,void *param_2,void *param_3,uint param_4)
{
bool bVar1;
void *__src;
uint uVar2;
void *__dest;
uint local_30 [3];
local_30[0] = 0;
uVar2 = 0;
__dest = (void *)0x0;
__src = (void *)0x0;
while( true ) {
bVar1 = param_4 >> 2 <= uVar2;
uVar2 = uVar2 + 1;
if (bVar1) break;
memmove(local_30,param_3,4) //possible issue identified - semgrep
__dest = (void *)((int)param_2 + 4);
local_30[0] = (((local_30[0] >> 0x10) << 0x18 | (local_30[0] >> 0x18) << 0x10) >> 0x10) +
((local_30[0] & 0xff) << 8 | local_30[0] >> 8 & 0xff) * 0x10000;
memmove(param_2,local_30,4) //possible issue identified - semgrep
__src = (void *)((int)param_3 + 4);
param_2 = __dest;
param_3 = (void *)((int)param_3 + 4);
}
param_4 = param_4 & 3;
if (param_4 != 0) {
memmove(local_30,__src,param_4) //possible issue identified - semgrep
local_30[0] = (((local_30[0] >> 0x10) << 0x18 | (local_30[0] >> 0x18) << 0x10) >> 0x10) +
((local_30[0] & 0xff) << 8 | local_30[0] >> 8 & 0xff) * 0x10000;
memmove(__dest,local_30,param_4) //possible issue identified - semgrep
}
return;
}