void * FUN_00402d4c(size_t param_1,void *param_2,size_t param_3,void *param_4)
{
void *__dest;
void *__s;
if ((int)param_1 < 0) { //possible issue identified - semgrep
__s = (void *)0x0;
}
else {
__s = (void *)0x0;
if (param_2 != (void *)0x0) {
__s = malloc(0x2c) //possible issue identified - semgrep
if (__s != (void *)0x0) {
memset(__s,0,0x2c) //possible issue identified - semgrep
*(char *)((int)__s + 4) = (char)param_1;
memcpy((void *)((int)__s + 5),param_2,param_1) //possible issue identified - semgrep
if ((0 < (int)param_3) && (param_4 != (void *)0x0)) {
*(short *)((int)__s + 0x24) = (short)param_3;
__dest = malloc(param_3) //possible issue identified - semgrep
*(void **)((int)__s + 0x28) = __dest;
memcpy(__dest,param_4,param_3) //possible issue identified - semgrep
}
}
}
}
return __s;
}