undefined4 FUN_00489bec(undefined4 *param_1)
{
int iVar1;
undefined4 uVar2;
iVar1 = param_1[4];
*param_1 = 0xffffffff;
param_1[4] = iVar1 + -1;
if (iVar1 + -1 < 0) {
LAB_00489c48:
uVar2 = 0xffffffff;
*(byte *)((int)param_1 + 0x15) = *(byte *)((int)param_1 + 0x15) | 2;
}
else {
if (*(char *)((int)param_1 + 0x15) == '\0') {
iVar1 = FUN_00483560(param_1[2]);
if (iVar1 == -1) goto LAB_00489c48;
param_1[1] = iVar1;
}
else {
*(undefined1 *)((int)param_1 + 0x15) = 0;
}
uVar2 = param_1[1];
param_1[3] = param_1[3] + 1;
*param_1 = uVar2;
}
return uVar2;
}