void FUN_004831c0(void)
{
ushort *puVar1;
ushort *puVar2;
ushort *puVar3;
ushort *puVar4;
undefined1 auStack_38 [16];
undefined1 auStack_28 [20];
FUN_004874ec(auStack_38,FUN_004874e4,&DAT_004b7688);
FUN_004874e4(&DAT_004b7688);
if ((DAT_004c01a0 == 1) && (0 < DAT_004c01a4)) {
FUN_004874ec(auStack_28,FUN_004874e4,&DAT_004b7670);
FUN_004874e4(&DAT_004b7670);
puVar3 = (ushort *)PTR_DAT_004b76bc;
puVar1 = (ushort *)0x0;
while (puVar4 = puVar1, puVar2 = puVar3, puVar2 != (ushort *)0x0) {
puVar3 = *(ushort **)(puVar2 + 0xc);
puVar1 = puVar2;
if ((*puVar2 & 0x8030) == 0x30) {
puVar1 = puVar3;
if (puVar4 != (ushort *)0x0) {
*(ushort **)(puVar4 + 0xc) = puVar3;
puVar1 = (ushort *)PTR_DAT_004b76bc;
}
PTR_DAT_004b76bc = (undefined *)puVar1;
puVar1 = puVar4;
if ((*puVar2 & 0x2000) != 0) {
FUN_004859b0();
}
}
}
FUN_004874ec(auStack_28,1);
DAT_004c01a4 = 0;
}
DAT_004c01a0 = DAT_004c01a0 + -1;
FUN_004874ec(auStack_38,1);
return;
}