/* 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 );
}