size_t FUN_0041d594(uint param_1,void *param_2,uint param_3) //possible issue identified - semgrep
{
undefined4 *puVar1;
uint __n;
if (param_1 == 0) {
return 0;
}
puVar1 = (undefined4 *)(&DAT_00441134 + (param_1 & 0xf) * 4);
do {
puVar1 = (undefined4 *)*puVar1;
if (puVar1 == (undefined4 *)0x0) {
return 0;
}
} while (puVar1[1] != param_1);
__n = puVar1[3];
if (__n < 0x15) {
if (param_3 < __n) {
LAB_0041d64c:
memcpy(param_2,puVar1 + 5,param_3) //possible issue identified - semgrep
return param_3;
}
}
else {
__n = 0x14;
if (param_3 < 0x14) goto LAB_0041d64c;
}
memcpy(param_2,puVar1 + 5,__n) //possible issue identified - semgrep
return __n;
}