/* WARNING: Removing unreachable block (ram,0x004864e0) */

void FUN_00486450(undefined4 param_1,undefined4 param_2,undefined4 param_3,undefined4 param_4)

{
  undefined *puVar1;
  undefined4 uVar2;
  undefined *puVar3;
  undefined4 *puVar4;
  int iVar5;
  code *pcVar6;
  code *apcStack_48 [2];
  undefined **ppuStack_40;
  undefined *puStack_28;
  undefined4 uStack_24;
  undefined1 auStack_18 [16];
  
  puVar3 = &DAT_004b7800;
  FUN_004874ec(auStack_18,FUN_004874e4);
  FUN_004874e4(&DAT_004b7800);
  if (DAT_004c2210 != (code *)0x0) {
    (*DAT_004c2210)(param_1);
  }
  uVar2 = 1;
  FUN_004874ec(auStack_18);
  FUN_00487440();
  FUN_00481458();
  pcVar6 = FUN_00487ba0;
  FUN_00487ba0(param_1);
  apcStack_48[0] = pcVar6 + 0x39340;
  iVar5 = 0;
  ppuStack_40 = &puStack_28;
  do {
    puVar1 = *ppuStack_40;
    iVar5 = iVar5 + 1;
    ppuStack_40 = ppuStack_40 + 1;
  } while (puVar1 != (undefined *)0x0);
  puVar4 = (undefined4 *)((int)apcStack_48 - (iVar5 * 4 + 0x12U & 0xfffffff8));
  puStack_28 = puVar3;
  uStack_24 = param_4;
  *puVar4 = uVar2;
  ppuStack_40 = &puStack_28;
  do {
    puVar4 = puVar4 + 1;
    puVar3 = *ppuStack_40;
    iVar5 = iVar5 + -1;
    ppuStack_40 = ppuStack_40 + 1;
    *puVar4 = puVar3;
  } while (iVar5 != 0);
  (**(code **)(pcVar6 + 0x32084))();
  return;
}