undefined4 FUN_0041a8a8(undefined4 *param_1,uint param_2)
{
void *pvVar1;
undefined4 uVar2;
uint uVar3;
uint uVar4;
if (param_2 < (uint)param_1[1]) {
uVar4 = param_2 + param_1[3];
if (param_1[2] - param_2 <= (uint)param_1[3]) {
return 0;
}
}
else {
uVar3 = param_1[2];
uVar4 = param_2 - param_1[1];
if (param_2 <= uVar3) {
return 0;
}
if (uVar4 < (uint)param_1[3]) {
uVar4 = param_1[3] + uVar3;
}
else {
uVar4 = uVar4 + uVar3;
}
}
pvVar1 = realloc((void *)*param_1,uVar4 + 1) //possible issue identified - semgrep
if ((pvVar1 == (void *)0x0) &&
(pvVar1 = realloc((void *)*param_1,param_2 + 1), uVar4 = param_2, pvVar1 == (void *)0x0)) { //possible issue identified - semgrep
uVar2 = 0x66;
}
else {
*param_1 = pvVar1;
param_1[2] = uVar4;
uVar2 = 0;
}
return uVar2;
}