/* WARNING: Type propagation algorithm not settling */
void FUN_00485c50(void)
{
int iVar1;
undefined4 uStack_11c;
undefined4 auStack_118 [32];
undefined4 local_98 [36];
FUN_004874e4(&DAT_004b77e0);
iVar1 = 0x20;
while( true ) {
iVar1 = iVar1 + -1;
if (iVar1 < 0) break;
*(undefined4 *)((int)auStack_118 + iVar1 * 4) = 0;
}
iVar1 = FUN_00484618(auStack_118,6);
if (iVar1 == 0) {
FUN_00488190(2,auStack_118,0);
}
if (DAT_004c2200 != 0) goto LAB_00485d20;
DAT_004c2200 = 1;
while( true ) {
FUN_004874e4(&DAT_004b77e0);
FUN_0048a6b0(6);
FUN_004874e4(&DAT_004b77e0);
LAB_00485d20:
if (DAT_004c2200 != 1) break;
DAT_004c2200 = 2;
FUN_00483cc0(local_98,0,0x90);
iVar1 = 0x20;
while( true ) {
if (iVar1 + -1 < 0) break;
local_98[iVar1 + 1] = 0xffffffff;
iVar1 = iVar1 + -1;
}
local_98[0] = 0;
local_98[1] = 0;
FUN_004879a0(6,local_98,0);
}
if (DAT_004c2200 == 2) {
DAT_004c2200 = 3;
trap(0x3fc00);
}
if (DAT_004c2200 == 3) {
DAT_004c2200 = 4;
FUN_00487ba0(0x7f);
}
do {
trap(0x3fc00);
} while( true );
}