undefined4 FUN_0048331c(undefined **param_1)
{
ushort uVar1;
int iVar2;
ushort *puVar3;
undefined4 uVar4;
ushort uVar5;
undefined1 auStack_38 [16];
if (param_1 == &PTR_DAT_004b76bc) {
uVar5 = 0;
}
else {
uVar5 = 0x100;
if (param_1 != (undefined **)0x0) {
if (((uint)*param_1 & 0x40) == 0) {
return 0;
}
iVar2 = FUN_00481660();
if (iVar2 != 0) {
return 0xffffffff;
}
*(ushort *)param_1 = *(ushort *)param_1 & 0xffbf;
return 0;
}
}
FUN_004874ec(auStack_38,FUN_004874e4,&DAT_004b7688);
uVar4 = 0;
FUN_004874e4(&DAT_004b7688);
DAT_004c01a0 = DAT_004c01a0 + 1;
FUN_004874ec(auStack_38,1);
FUN_004874ec(auStack_38,FUN_004874e4,&DAT_004b7670);
FUN_004874e4(&DAT_004b7670);
puVar3 = (ushort *)PTR_DAT_004b76bc;
FUN_004874ec(auStack_38,1);
while (puVar3 != (ushort *)0x0) {
if ((*puVar3 & 0x40) == 0) {
puVar3 = *(ushort **)(puVar3 + 0xc);
}
else {
if (DAT_004b76a0 == 2) {
uVar1 = *puVar3;
}
else {
FUN_004874ec(auStack_38,FUN_004874e4,puVar3 + 0x1a);
FUN_004874e4(puVar3 + 0x1a);
uVar1 = *puVar3;
}
if ((((uVar5 | uVar1) ^ 0x140) & 0x340) == 0) {
iVar2 = FUN_00481660(puVar3);
if (iVar2 == 0) {
*puVar3 = *puVar3 & 0xffbf;
}
else {
uVar4 = 0xffffffff;
}
}
if (DAT_004b76a0 == 2) {
puVar3 = *(ushort **)(puVar3 + 0xc);
}
else {
FUN_004874ec(auStack_38,1);
puVar3 = *(ushort **)(puVar3 + 0xc);
}
}
}
FUN_004831c0();
return uVar4;
}