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;
}