undefined4 * FUN_00437d7c(undefined4 *param_1,int *param_2,int param_3)
{
int iVar1;
undefined4 *puVar2;
int iVar3;
if (((param_1 == (undefined4 *)0x0) ||
(puVar2 = (undefined4 *)*param_1, puVar2 == (undefined4 *)0x0)) || ((puVar2[5] & 1) == 0)) {
puVar2 = (undefined4 *)FUN_0043a36c(0x18,"a_object.c",0x10c);
if (puVar2 == (undefined4 *)0x0) {
FUN_00433604(0xd,0x7b,0x41,"a_object.c",0x10f);
return (undefined4 *)0x0;
}
puVar2[5] = 1;
puVar2[3] = 0;
puVar2[4] = 0;
puVar2[2] = 0;
*puVar2 = 0;
puVar2[1] = 0;
}
iVar1 = puVar2[4];
iVar3 = *param_2;
if (iVar1 != 0) {
if (param_3 <= (int)puVar2[3]) goto LAB_00437e40;
FUN_0043a484();
}
iVar1 = param_3;
if (param_3 == 0) {
iVar1 = 1;
}
iVar1 = FUN_0043a36c(iVar1,"a_object.c",0xf2);
puVar2[5] = puVar2[5] | 8;
puVar2[4] = iVar1;
if (iVar1 == 0) {
FUN_00433604(0xd,0xc4,0x41,"a_object.c",0x102);
if ((param_1 != (undefined4 *)0x0) && ((undefined4 *)*param_1 == puVar2)) {
return (undefined4 *)0x0;
}
FUN_004376e0(puVar2);
return (undefined4 *)0x0;
}
LAB_00437e40:
FUN_00483c90(iVar1,iVar3,param_3);
puVar2[3] = param_3;
*puVar2 = 0;
puVar2[1] = 0;
if (param_1 != (undefined4 *)0x0) {
*param_1 = puVar2;
}
*param_2 = iVar3 + param_3;
return puVar2;
}