### RAW ASSEMBLY INSTRUCTIONS:

dlabel func_8024CA00
/* 13FD40 8024CA00 27BDFED0 */  addiu     $sp, $sp, -0x130
/* 13FD44 8024CA04 AFBF00FC */  sw        $ra, 0xFC($sp)
/* 13FD48 8024CA08 AFBE00F8 */  sw        $fp, 0xF8($sp)
.L8024CA0C:
/* 13FD4C 8024CA0C AFB700F4 */  sw        $s7, 0xF4($sp)
/* 13FD50 8024CA10 AFB600F0 */  sw        $s6, 0xF0($sp)
/* 13FD54 8024CA14 AFB500EC */  sw        $s5, 0xEC($sp)
/* 13FD58 8024CA18 AFB400E8 */  sw        $s4, 0xE8($sp)
.L8024CA1C:
/* 13FD5C 8024CA1C AFB300E4 */  sw        $s3, 0xE4($sp)
/* 13FD60 8024CA20 AFB200E0 */  sw        $s2, 0xE0($sp)
/* 13FD64 8024CA24 AFB100DC */  sw        $s1, 0xDC($sp)
/* 13FD68 8024CA28 AFB000D8 */  sw        $s0, 0xD8($sp)
/* 13FD6C 8024CA2C F7BE0128 */  sdc1      $f30, 0x128($sp)
/* 13FD70 8024CA30 F7BC0120 */  sdc1      $f28, 0x120($sp)
/* 13FD74 8024CA34 F7BA0118 */  sdc1      $f26, 0x118($sp)
/* 13FD78 8024CA38 F7B80110 */  sdc1      $f24, 0x110($sp)
/* 13FD7C 8024CA3C F7B60108 */  sdc1      $f22, 0x108($sp)
/* 13FD80 8024CA40 F7B40100 */  sdc1      $f20, 0x100($sp)
/* 13FD84 8024CA44 AFA40130 */  sw        $a0, 0x130($sp)
/* 13FD88 8024CA48 AFA50134 */  sw        $a1, 0x134($sp)
/* 13FD8C 8024CA4C AFA60138 */  sw        $a2, 0x138($sp)
/* 13FD90 8024CA50 0C039D59 */  jal       get_player_data
/* 13FD94 8024CA54 AFA7013C */   sw       $a3, 0x13C($sp)
/* 13FD98 8024CA58 3C05DC08 */  lui       $a1, (0xDC080008 >> 16)
/* 13FD9C 8024CA5C 34A50008 */  ori       $a1, $a1, (0xDC080008 & 0xFFFF)
.L8024CA60:
/* 13FDA0 8024CA60 0000A02D */  daddu     $s4, $zero, $zero
/* 13FDA4 8024CA64 AFA200D0 */  sw        $v0, 0xD0($sp)
/* 13FDA8 8024CA68 3C02800A */  lui       $v0, %hi(gMainGfxPos)
.L8024CA6C:
/* 13FDAC 8024CA6C 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* 13FDB0 8024CA70 0040882D */  daddu     $s1, $v0, $zero
/* 13FDB4 8024CA74 3C1EE700 */  lui       $fp, (0xE7000000 >> 16)
.L8024CA78:
/* 13FDB8 8024CA78 24170400 */  addiu     $s7, $zero, 0x400
/* 13FDBC 8024CA7C 24160010 */  addiu     $s6, $zero, 0x10
/* 13FDC0 8024CA80 24150016 */  addiu     $s5, $zero, 0x16
.L8024CA84:
/* 13FDC4 8024CA84 24130054 */  addiu     $s3, $zero, 0x54
/* 13FDC8 8024CA88 0280902D */  daddu     $s2, $s4, $zero
.L8024CA8C:
/* 13FDCC 8024CA8C 8E230000 */  lw        $v1, 0x0($s1)
/* 13FDD0 8024CA90 03C0102D */  daddu     $v0, $fp, $zero
/* 13FDD4 8024CA94 0060202D */  daddu     $a0, $v1, $zero
/* 13FDD8 8024CA98 24630008 */  addiu     $v1, $v1, 0x8
/* 13FDDC 8024CA9C AE230000 */  sw        $v1, 0x0($s1)
/* 13FDE0 8024CAA0 AC820000 */  sw        $v0, 0x0($a0)
/* 13FDE4 8024CAA4 24620008 */  addiu     $v0, $v1, 0x8
D_8024CAA8_C0A328:
/* 13FDE8 8024CAA8 AC800004 */  sw        $zero, 0x4($a0)
/* 13FDEC 8024CAAC AE220000 */  sw        $v0, 0x0($s1)
/* 13FDF0 8024CAB0 3C028025 */  lui       $v0, %hi(D_8024F8B0_C0D130)
/* 13FDF4 8024CAB4 2442F8B0 */  addiu     $v0, $v0, %lo(D_8024F8B0_C0D130)
/* 13FDF8 8024CAB8 AC620004 */  sw        $v0, 0x4($v1)
/* 13FDFC 8024CABC 00761021 */  addu      $v0, $v1, $s6
/* 13FE00 8024CAC0 AC650000 */  sw        $a1, 0x0($v1)
/* 13FE04 8024CAC4 AE220000 */  sw        $v0, 0x0($s1)
/* 13FE08 8024CAC8 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 13FE0C 8024CACC AC620008 */  sw        $v0, 0x8($v1)
/* 13FE10 8024CAD0 3C028027 */  lui       $v0, %hi(gPauseDLSpiritsBg)
/* 13FE14 8024CAD4 2442F5A0 */  addiu     $v0, $v0, %lo(gPauseDLSpiritsBg)
.L8024CAD8:
/* 13FE18 8024CAD8 AC62000C */  sw        $v0, 0xC($v1)
.L8024CADC:
/* 13FE1C 8024CADC 3C02FD48 */  lui       $v0, (0xFD48003F >> 16)
/* 13FE20 8024CAE0 3442003F */  ori       $v0, $v0, (0xFD48003F & 0xFFFF)
/* 13FE24 8024CAE4 3C0DF548 */  lui       $t5, (0xF5481000 >> 16)
/* 13FE28 8024CAE8 35AD1000 */  ori       $t5, $t5, (0xF5481000 & 0xFFFF)
/* 13FE2C 8024CAEC 3C0C0708 */  lui       $t4, (0x7080170 >> 16)
D_8024CAF0_C0A370:
/* 13FE30 8024CAF0 358C0170 */  ori       $t4, $t4, (0x7080170 & 0xFFFF)
/* 13FE34 8024CAF4 3C0B070F */  lui       $t3, (0x70FE000 >> 16)
/* 13FE38 8024CAF8 356BE000 */  ori       $t3, $t3, (0x70FE000 & 0xFFFF)
/* 13FE3C 8024CAFC 3C0FF540 */  lui       $t7, (0xF5401000 >> 16)
/* 13FE40 8024CB00 35EF1000 */  ori       $t7, $t7, (0xF5401000 & 0xFFFF)
/* 13FE44 8024CB04 3C0E0008 */  lui       $t6, (0x80170 >> 16)
/* 13FE48 8024CB08 35CE0170 */  ori       $t6, $t6, (0x80170 & 0xFFFF)
/* 13FE4C 8024CB0C 3C10001F */  lui       $s0, (0x1FC000 >> 16)
/* 13FE50 8024CB10 3610C000 */  ori       $s0, $s0, (0x1FC000 & 0xFFFF)
/* 13FE54 8024CB14 326A0FFF */  andi      $t2, $s3, 0xFFF
/* 13FE58 8024CB18 26730058 */  addiu     $s3, $s3, 0x58
/* 13FE5C 8024CB1C 32490FFF */  andi      $t1, $s2, 0xFFF
/* 13FE60 8024CB20 26520058 */  addiu     $s2, $s2, 0x58
/* 13FE64 8024CB24 26940001 */  addiu     $s4, $s4, 0x1
/* 13FE68 8024CB28 014B5825 */  or        $t3, $t2, $t3
/* 13FE6C 8024CB2C 01505025 */  or        $t2, $t2, $s0
/* 13FE70 8024CB30 8FB80134 */  lw        $t8, 0x134($sp)
/* 13FE74 8024CB34 8E230000 */  lw        $v1, 0x0($s1)
.L8024CB38:
/* 13FE78 8024CB38 2704000F */  addiu     $a0, $t8, 0xF
/* 13FE7C 8024CB3C 00042080 */  sll       $a0, $a0, 2
/* 13FE80 8024CB40 0060402D */  daddu     $t0, $v1, $zero
/* 13FE84 8024CB44 8FB80138 */  lw        $t8, 0x138($sp)
/* 13FE88 8024CB48 24630008 */  addiu     $v1, $v1, 0x8
/* 13FE8C 8024CB4C 03153821 */  addu      $a3, $t8, $s5
.L8024CB50:
/* 13FE90 8024CB50 00072880 */  sll       $a1, $a3, 2
.L8024CB54:
/* 13FE94 8024CB54 24E70016 */  addiu     $a3, $a3, 0x16
/* 13FE98 8024CB58 00073880 */  sll       $a3, $a3, 2
/* 13FE9C 8024CB5C 8FB80134 */  lw        $t8, 0x134($sp)
/* 13FEA0 8024CB60 26B50016 */  addiu     $s5, $s5, 0x16
/* 13FEA4 8024CB64 AE230000 */  sw        $v1, 0x0($s1)
D_8024CB68_C0A3E8:
/* 13FEA8 8024CB68 AD020000 */  sw        $v0, 0x0($t0)
/* 13FEAC 8024CB6C 3C028027 */  lui       $v0, %hi(pause_spirits_bg_png)
D_8024CB70:
/* 13FEB0 8024CB70 2442A2B0 */  addiu     $v0, $v0, %lo(pause_spirits_bg_png)
/* 13FEB4 8024CB74 AD020004 */  sw        $v0, 0x4($t0)
/* 13FEB8 8024CB78 24620008 */  addiu     $v0, $v1, 0x8
/* 13FEBC 8024CB7C AE220000 */  sw        $v0, 0x0($s1)
/* 13FEC0 8024CB80 24620010 */  addiu     $v0, $v1, 0x10
/* 13FEC4 8024CB84 AC6D0000 */  sw        $t5, 0x0($v1)
/* 13FEC8 8024CB88 AC6C0004 */  sw        $t4, 0x4($v1)
/* 13FECC 8024CB8C AE220000 */  sw        $v0, 0x0($s1)
/* 13FED0 8024CB90 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* 13FED4 8024CB94 AC620008 */  sw        $v0, 0x8($v1)
/* 13FED8 8024CB98 24620018 */  addiu     $v0, $v1, 0x18
/* 13FEDC 8024CB9C AC60000C */  sw        $zero, 0xC($v1)
/* 13FEE0 8024CBA0 AE220000 */  sw        $v0, 0x0($s1)
/* 13FEE4 8024CBA4 3C02F400 */  lui       $v0, (0xF4000000 >> 16)
/* 13FEE8 8024CBA8 01221025 */  or        $v0, $t1, $v0
/* 13FEEC 8024CBAC AC620010 */  sw        $v0, 0x10($v1)
/* 13FEF0 8024CBB0 24620020 */  addiu     $v0, $v1, 0x20
/* 13FEF4 8024CBB4 AC6B0014 */  sw        $t3, 0x14($v1)
/* 13FEF8 8024CBB8 AE220000 */  sw        $v0, 0x0($s1)
/* 13FEFC 8024CBBC 24620028 */  addiu     $v0, $v1, 0x28
/* 13FF00 8024CBC0 AC7E0018 */  sw        $fp, 0x18($v1)
/* 13FF04 8024CBC4 AC60001C */  sw        $zero, 0x1C($v1)
/* 13FF08 8024CBC8 AE220000 */  sw        $v0, 0x0($s1)
/* 13FF0C 8024CBCC 24620030 */  addiu     $v0, $v1, 0x30
/* 13FF10 8024CBD0 AC6F0020 */  sw        $t7, 0x20($v1)
/* 13FF14 8024CBD4 AC6E0024 */  sw        $t6, 0x24($v1)
/* 13FF18 8024CBD8 AE220000 */  sw        $v0, 0x0($s1)
/* 13FF1C 8024CBDC 3C02F200 */  lui       $v0, (0xF2000000 >> 16)
/* 13FF20 8024CBE0 01224825 */  or        $t1, $t1, $v0
/* 13FF24 8024CBE4 24020010 */  addiu     $v0, $zero, 0x10
/* 13FF28 8024CBE8 AC690028 */  sw        $t1, 0x28($v1)
/* 13FF2C 8024CBEC AC6A002C */  sw        $t2, 0x2C($v1)
/* 13FF30 8024CBF0 AFA00010 */  sw        $zero, 0x10($sp)
/* 13FF34 8024CBF4 AFA20014 */  sw        $v0, 0x14($sp)
/* 13FF38 8024CBF8 AFB60018 */  sw        $s6, 0x18($sp)
/* 13FF3C 8024CBFC AFB7001C */  sw        $s7, 0x1C($sp)
/* 13FF40 8024CC00 AFB70020 */  sw        $s7, 0x20($sp)
/* 13FF44 8024CC04 2706010F */  addiu     $a2, $t8, 0x10F
.L8024CC08:
/* 13FF48 8024CC08 0C091216 */  jal       func_80244858
/* 13FF4C 8024CC0C 00063080 */   sll      $a2, $a2, 2
/* 13FF50 8024CC10 8E220000 */  lw        $v0, 0x0($s1)
.L8024CC14:
/* 13FF54 8024CC14 26D602C0 */  addiu     $s6, $s6, 0x2C0
.L8024CC18:
/* 13FF58 8024CC18 0040182D */  daddu     $v1, $v0, $zero
.L8024CC1C:
/* 13FF5C 8024CC1C 24420008 */  addiu     $v0, $v0, 0x8
/* 13FF60 8024CC20 AE220000 */  sw        $v0, 0x0($s1)
/* 13FF64 8024CC24 2A820005 */  slti      $v0, $s4, 0x5
D_8024CC28_C0A4A8:
/* 13FF68 8024CC28 AC7E0000 */  sw        $fp, 0x0($v1)
/* 13FF6C 8024CC2C 1440FFAB */  bnez      $v0, .L8024CADC
.L8024CC30:
/* 13FF70 8024CC30 AC600004 */   sw       $zero, 0x4($v1)
D_8024CC34:
/* 13FF74 8024CC34 4480A000 */  mtc1      $zero, $f20
/* 13FF78 8024CC38 3C130001 */  lui       $s3, (0x11630 >> 16)
/* 13FF7C 8024CC3C 36731630 */  ori       $s3, $s3, (0x11630 & 0xFFFF)
/* 13FF80 8024CC40 0000A02D */  daddu     $s4, $zero, $zero
/* 13FF84 8024CC44 3C0643A0 */  lui       $a2, (0x43A00000 >> 16)
/* 13FF88 8024CC48 3C074370 */  lui       $a3, (0x43700000 >> 16)
/* 13FF8C 8024CC4C 3C01C47A */  lui       $at, (0xC47A0000 >> 16)
/* 13FF90 8024CC50 44810000 */  mtc1      $at, $f0
/* 13FF94 8024CC54 3C01447A */  lui       $at, (0x447A0000 >> 16)
/* 13FF98 8024CC58 44811000 */  mtc1      $at, $f2
/* 13FF9C 8024CC5C 3C013F80 */  lui       $at, (0x3F800000 >> 16)
D_8024CC60:
/* 13FFA0 8024CC60 4481B000 */  mtc1      $at, $f22
/* 13FFA4 8024CC64 4405A000 */  mfc1      $a1, $f20
/* 13FFA8 8024CC68 27A40050 */  addiu     $a0, $sp, 0x50
/* 13FFAC 8024CC6C E7B40010 */  swc1      $f20, 0x10($sp)
/* 13FFB0 8024CC70 E7A00014 */  swc1      $f0, 0x14($sp)
/* 13FFB4 8024CC74 E7A20018 */  swc1      $f2, 0x18($sp)
/* 13FFB8 8024CC78 0C018E44 */  jal       guOrthoF
/* 13FFBC 8024CC7C E7B6001C */   swc1     $f22, 0x1C($sp)
/* 13FFC0 8024CC80 27A40050 */  addiu     $a0, $sp, 0x50
/* 13FFC4 8024CC84 3C118007 */  lui       $s1, %hi(gMatrixListPos)
/* 13FFC8 8024CC88 263141F0 */  addiu     $s1, $s1, %lo(gMatrixListPos)
/* 13FFCC 8024CC8C 3C12800A */  lui       $s2, %hi(gDisplayContext)
/* 13FFD0 8024CC90 2652A674 */  addiu     $s2, $s2, %lo(gDisplayContext)
/* 13FFD4 8024CC94 96250000 */  lhu       $a1, 0x0($s1)
/* 13FFD8 8024CC98 8E420000 */  lw        $v0, 0x0($s2)
/* 13FFDC 8024CC9C 00052980 */  sll       $a1, $a1, 6
D_8024CCA0_C0A520:
/* 13FFE0 8024CCA0 00B32821 */  addu      $a1, $a1, $s3
/* 13FFE4 8024CCA4 0C019D40 */  jal       guMtxF2L
.L8024CCA8:
/* 13FFE8 8024CCA8 00452821 */   addu     $a1, $v0, $a1
/* 13FFEC 8024CCAC 3C09DA38 */  lui       $t1, (0xDA380007 >> 16)
/* 13FFF0 8024CCB0 35290007 */  ori       $t1, $t1, (0xDA380007 & 0xFFFF)
/* 13FFF4 8024CCB4 27A40050 */  addiu     $a0, $sp, 0x50
/* 13FFF8 8024CCB8 3C10800A */  lui       $s0, %hi(gMainGfxPos)
/* 13FFFC 8024CCBC 2610A66C */  addiu     $s0, $s0, %lo(gMainGfxPos)
/* 140000 8024CCC0 8E030000 */  lw        $v1, 0x0($s0)
D_8024CCC4:
/* 140004 8024CCC4 4405A000 */  mfc1      $a1, $f20
/* 140008 8024CCC8 4406A000 */  mfc1      $a2, $f20
/* 14000C 8024CCCC 4407A000 */  mfc1      $a3, $f20
/* 140010 8024CCD0 96220000 */  lhu       $v0, 0x0($s1)
/* 140014 8024CCD4 0060402D */  daddu     $t0, $v1, $zero
D_8024CCD8:
/* 140018 8024CCD8 24630008 */  addiu     $v1, $v1, 0x8
/* 14001C 8024CCDC AE030000 */  sw        $v1, 0x0($s0)
/* 140020 8024CCE0 24430001 */  addiu     $v1, $v0, 0x1
/* 140024 8024CCE4 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 140028 8024CCE8 00021180 */  sll       $v0, $v0, 6
/* 14002C 8024CCEC AD090000 */  sw        $t1, 0x0($t0)
.L8024CCF0:
/* 140030 8024CCF0 A6230000 */  sh        $v1, 0x0($s1)
/* 140034 8024CCF4 8E430000 */  lw        $v1, 0x0($s2)
/* 140038 8024CCF8 00531021 */  addu      $v0, $v0, $s3
/* 14003C 8024CCFC 00621821 */  addu      $v1, $v1, $v0
/* 140040 8024CD00 0C019E40 */  jal       guTranslateF
/* 140044 8024CD04 AD030004 */   sw       $v1, 0x4($t0)
.L8024CD08:
/* 140048 8024CD08 27A40050 */  addiu     $a0, $sp, 0x50
/* 14004C 8024CD0C 96250000 */  lhu       $a1, 0x0($s1)
D_8024CD10_C0A590:
/* 140050 8024CD10 8E420000 */  lw        $v0, 0x0($s2)
/* 140054 8024CD14 00052980 */  sll       $a1, $a1, 6
/* 140058 8024CD18 00B32821 */  addu      $a1, $a1, $s3
/* 14005C 8024CD1C 0C019D40 */  jal       guMtxF2L
/* 140060 8024CD20 00452821 */   addu     $a1, $v0, $a1
/* 140064 8024CD24 3C04DA38 */  lui       $a0, (0xDA380002 >> 16)
.L8024CD28:
/* 140068 8024CD28 34840002 */  ori       $a0, $a0, (0xDA380002 & 0xFFFF)
/* 14006C 8024CD2C 8E020000 */  lw        $v0, 0x0($s0)
/* 140070 8024CD30 96230000 */  lhu       $v1, 0x0($s1)
/* 140074 8024CD34 0040282D */  daddu     $a1, $v0, $zero
/* 140078 8024CD38 24420008 */  addiu     $v0, $v0, 0x8
/* 14007C 8024CD3C AE020000 */  sw        $v0, 0x0($s0)
.L8024CD40:
/* 140080 8024CD40 24620001 */  addiu     $v0, $v1, 0x1
/* 140084 8024CD44 3063FFFF */  andi      $v1, $v1, 0xFFFF
/* 140088 8024CD48 00031980 */  sll       $v1, $v1, 6
/* 14008C 8024CD4C 00731821 */  addu      $v1, $v1, $s3
/* 140090 8024CD50 ACA40000 */  sw        $a0, 0x0($a1)
/* 140094 8024CD54 A6220000 */  sh        $v0, 0x0($s1)
/* 140098 8024CD58 8E420000 */  lw        $v0, 0x0($s2)
.L8024CD5C:
/* 14009C 8024CD5C 3C048027 */  lui       $a0, %hi(gPauseSpiritsNumSpirits)
/* 1400A0 8024CD60 8C8406FC */  lw        $a0, %lo(gPauseSpiritsNumSpirits)($a0)
/* 1400A4 8024CD64 00431021 */  addu      $v0, $v0, $v1
/* 1400A8 8024CD68 188000B3 */  blez      $a0, .L8024D038
/* 1400AC 8024CD6C ACA20004 */   sw       $v0, 0x4($a1)
/* 1400B0 8024CD70 3C168027 */  lui       $s6, %hi(gPauseSpiritsSpriteIDs)
/* 1400B4 8024CD74 26D606C0 */  addiu     $s6, $s6, %lo(gPauseSpiritsSpriteIDs)
/* 1400B8 8024CD78 4600A686 */  mov.s     $f26, $f20
/* 1400BC 8024CD7C 27B30090 */  addiu     $s3, $sp, 0x90
/* 1400C0 8024CD80 3C013F66 */  lui       $at, (0x3F666666 >> 16)
/* 1400C4 8024CD84 34216666 */  ori       $at, $at, (0x3F666666 & 0xFFFF)
/* 1400C8 8024CD88 4481F000 */  mtc1      $at, $f30
/* 1400CC 8024CD8C 00141880 */  sll       $v1, $s4, 2
.L8024CD90:
/* 1400D0 8024CD90 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* 1400D4 8024CD94 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
D_8024CD98_C0A618:
/* 1400D8 8024CD98 3C128025 */  lui       $s2, %hi(D_8024F974)
/* 1400DC 8024CD9C 02439021 */  addu      $s2, $s2, $v1
D_8024CDA0:
/* 1400E0 8024CDA0 8E52F974 */  lw        $s2, %lo(D_8024F974)($s2)
.L8024CDA4:
/* 1400E4 8024CDA4 3C038025 */  lui       $v1, %hi(D_8024F93C)
/* 1400E8 8024CDA8 2463F93C */  addiu     $v1, $v1, %lo(D_8024F93C)
D_8024CDAC:
/* 1400EC 8024CDAC 94420134 */  lhu       $v0, 0x134($v0)
/* 1400F0 8024CDB0 8FB800D0 */  lw        $t8, 0xD0($sp)
/* 1400F4 8024CDB4 00021080 */  sll       $v0, $v0, 2
/* 1400F8 8024CDB8 4482B000 */  mtc1      $v0, $f22
.L8024CDBC:
/* 1400FC 8024CDBC 00000000 */  nop
/* 140100 8024CDC0 4680B5A0 */  cvt.s.w   $f22, $f22
/* 140104 8024CDC4 001210C0 */  sll       $v0, $s2, 3
/* 140108 8024CDC8 00431021 */  addu      $v0, $v0, $v1
/* 14010C 8024CDCC C4580000 */  lwc1      $f24, 0x0($v0)
/* 140110 8024CDD0 4680C620 */  cvt.s.w   $f24, $f24
/* 140114 8024CDD4 C45C0004 */  lwc1      $f28, 0x4($v0)
/* 140118 8024CDD8 4680E720 */  cvt.s.w   $f28, $f28
/* 14011C 8024CDDC 8302028E */  lb        $v0, 0x28E($t8)
/* 140120 8024CDE0 26430001 */  addiu     $v1, $s2, 0x1
/* 140124 8024CDE4 0043102A */  slt       $v0, $v0, $v1
/* 140128 8024CDE8 10400004 */  beqz      $v0, .L8024CDFC
/* 14012C 8024CDEC 0000802D */   daddu    $s0, $zero, $zero
/* 140130 8024CDF0 4480A000 */  mtc1      $zero, $f20
/* 140134 8024CDF4 080933BA */  j         .L8024CEE8
/* 140138 8024CDF8 24110080 */   addiu    $s1, $zero, 0x80
.L8024CDFC:
/* 14013C 8024CDFC 3C018027 */  lui       $at, %hi(D_80270050)
/* 140140 8024CE00 D4240050 */  ldc1      $f4, %lo(D_80270050)($at)
.L8024CE04:
/* 140144 8024CE04 4600B5A1 */  cvt.d.s   $f22, $f22
D_8024CE08_C0A688:
/* 140148 8024CE08 4624B102 */  mul.d     $f4, $f22, $f4
/* 14014C 8024CE0C 00000000 */  nop
/* 140150 8024CE10 3C018027 */  lui       $at, %hi(D_80270058)
/* 140154 8024CE14 D4220058 */  ldc1      $f2, %lo(D_80270058)($at)
/* 140158 8024CE18 4492A000 */  mtc1      $s2, $f20
.L8024CE1C:
/* 14015C 8024CE1C 00000000 */  nop
/* 140160 8024CE20 4680A521 */  cvt.d.w   $f20, $f20
/* 140164 8024CE24 4622A082 */  mul.d     $f2, $f20, $f2
/* 140168 8024CE28 00000000 */  nop
/* 14016C 8024CE2C 3C018027 */  lui       $at, %hi(D_80270060)
/* 140170 8024CE30 D4200060 */  ldc1      $f0, %lo(D_80270060)($at)
/* 140174 8024CE34 46201080 */  add.d     $f2, $f2, $f0
/* 140178 8024CE38 4622B082 */  mul.d     $f2, $f22, $f2
/* 14017C 8024CE3C 00000000 */  nop
/* 140180 8024CE40 02520018 */  mult      $s2, $s2
/* 140184 8024CE44 0000C012 */  mflo      $t8
/* 140188 8024CE48 00000000 */  nop
/* 14018C 8024CE4C 00000000 */  nop
/* 140190 8024CE50 03120018 */  mult      $t8, $s2
/* 140194 8024CE54 0000C012 */  mflo      $t8
/* 140198 8024CE58 44986000 */  mtc1      $t8, $f12
/* 14019C 8024CE5C 00000000 */  nop
/* 1401A0 8024CE60 46806321 */  cvt.d.w   $f12, $f12
.L8024CE64:
/* 1401A4 8024CE64 46246300 */  add.d     $f12, $f12, $f4
/* 1401A8 8024CE68 46226300 */  add.d     $f12, $f12, $f2
/* 1401AC 8024CE6C 0C00A8BB */  jal       sin_deg
/* 1401B0 8024CE70 46206320 */   cvt.s.d  $f12, $f12
/* 1401B4 8024CE74 3C013FD0 */  lui       $at, (0x3FD00000 >> 16)
/* 1401B8 8024CE78 44816800 */  mtc1      $at, $f13
.L8024CE7C:
/* 1401BC 8024CE7C 44806000 */  mtc1      $zero, $f12
.L8024CE80:
/* 1401C0 8024CE80 00000000 */  nop
/* 1401C4 8024CE84 462CA302 */  mul.d     $f12, $f20, $f12
/* 1401C8 8024CE88 00000000 */  nop
/* 1401CC 8024CE8C 3C018027 */  lui       $at, %hi(D_80270068)
/* 1401D0 8024CE90 D4220068 */  ldc1      $f2, %lo(D_80270068)($at)
/* 1401D4 8024CE94 4622A502 */  mul.d     $f20, $f20, $f2
/* 1401D8 8024CE98 00000000 */  nop
glabel func_8024CE9C
/* 1401DC 8024CE9C 3C018027 */  lui       $at, %hi(D_80270070)
/* 1401E0 8024CEA0 D4220070 */  ldc1      $f2, %lo(D_80270070)($at)
/* 1401E4 8024CEA4 46341081 */  sub.d     $f2, $f2, $f20
/* 1401E8 8024CEA8 4622B082 */  mul.d     $f2, $f22, $f2
/* 1401EC 8024CEAC 00000000 */  nop
/* 1401F0 8024CEB0 46366300 */  add.d     $f12, $f12, $f22
/* 1401F4 8024CEB4 46226300 */  add.d     $f12, $f12, $f2
/* 1401F8 8024CEB8 46000506 */  mov.s     $f20, $f0
/* 1401FC 8024CEBC 0C00A8BB */  jal       sin_deg
/* 140200 8024CEC0 46206320 */   cvt.s.d  $f12, $f12
/* 140204 8024CEC4 3C0140A0 */  lui       $at, (0x40A00000 >> 16)
/* 140208 8024CEC8 44811000 */  mtc1      $at, $f2
/* 14020C 8024CECC 00000000 */  nop
/* 140210 8024CED0 4602A502 */  mul.s     $f20, $f20, $f2
/* 140214 8024CED4 00000000 */  nop
/* 140218 8024CED8 241000FF */  addiu     $s0, $zero, 0xFF
/* 14021C 8024CEDC 0200882D */  daddu     $s1, $s0, $zero
/* 140220 8024CEE0 4600A502 */  mul.s     $f20, $f20, $f0
/* 140224 8024CEE4 00000000 */  nop
.L8024CEE8:
/* 140228 8024CEE8 24050008 */  addiu     $a1, $zero, 0x8
/* 14022C 8024CEEC 3C038027 */  lui       $v1, %hi(gPauseSpiritsIndexes)
/* 140230 8024CEF0 246306E0 */  addiu     $v1, $v1, %lo(gPauseSpiritsIndexes)
/* 140234 8024CEF4 00121080 */  sll       $v0, $s2, 2
/* 140238 8024CEF8 0043A821 */  addu      $s5, $v0, $v1
/* 14023C 8024CEFC 0200302D */  daddu     $a2, $s0, $zero
/* 140240 8024CF00 8EA30000 */  lw        $v1, 0x0($s5)
/* 140244 8024CF04 24020040 */  addiu     $v0, $zero, 0x40
/* 140248 8024CF08 AFA60010 */  sw        $a2, 0x10($sp)
/* 14024C 8024CF0C AFB10014 */  sw        $s1, 0x14($sp)
/* 140250 8024CF10 AFA20018 */  sw        $v0, 0x18($sp)
/* 140254 8024CF14 00031880 */  sll       $v1, $v1, 2
/* 140258 8024CF18 00761821 */  addu      $v1, $v1, $s6
/* 14025C 8024CF1C 8C640000 */  lw        $a0, 0x0($v1)
/* 140260 8024CF20 0C0B7A25 */  jal       set_npc_imgfx_all
/* 140264 8024CF24 00C0382D */   daddu    $a3, $a2, $zero
/* 140268 8024CF28 8FB80134 */  lw        $t8, 0x134($sp)
/* 14026C 8024CF2C 27020016 */  addiu     $v0, $t8, 0x16
/* 140270 8024CF30 44820000 */  mtc1      $v0, $f0
glabel func_8024CF34
/* 140274 8024CF34 00000000 */  nop
/* 140278 8024CF38 46800020 */  cvt.s.w   $f0, $f0
/* 14027C 8024CF3C 46180000 */  add.s     $f0, $f0, $f24
/* 140280 8024CF40 8FB80138 */  lw        $t8, 0x138($sp)
/* 140284 8024CF44 2702004D */  addiu     $v0, $t8, 0x4D
/* 140288 8024CF48 44050000 */  mfc1      $a1, $f0
/* 14028C 8024CF4C 44820000 */  mtc1      $v0, $f0
/* 140290 8024CF50 00000000 */  nop
/* 140294 8024CF54 46800020 */  cvt.s.w   $f0, $f0
/* 140298 8024CF58 461C0000 */  add.s     $f0, $f0, $f28
/* 14029C 8024CF5C 46140000 */  add.s     $f0, $f0, $f20
/* 1402A0 8024CF60 4407D000 */  mfc1      $a3, $f26
/* 1402A4 8024CF64 44060000 */  mfc1      $a2, $f0
/* 1402A8 8024CF68 0C019E40 */  jal       guTranslateF
/* 1402AC 8024CF6C 27A40050 */   addiu    $a0, $sp, 0x50
/* 1402B0 8024CF70 3C054334 */  lui       $a1, (0x43340000 >> 16)
/* 1402B4 8024CF74 4406D000 */  mfc1      $a2, $f26
/* 1402B8 8024CF78 4407D000 */  mfc1      $a3, $f26
D_8024CF7C:
/* 1402BC 8024CF7C 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 1402C0 8024CF80 44813000 */  mtc1      $at, $f6
/* 1402C4 8024CF84 0260202D */  daddu     $a0, $s3, $zero
/* 1402C8 8024CF88 0C019EC8 */  jal       guRotateF
/* 1402CC 8024CF8C E7A60010 */   swc1     $f6, 0x10($sp)
/* 1402D0 8024CF90 0260202D */  daddu     $a0, $s3, $zero
/* 1402D4 8024CF94 27A50050 */  addiu     $a1, $sp, 0x50
/* 1402D8 8024CF98 0C019D80 */  jal       guMtxCatF
/* 1402DC 8024CF9C 00A0302D */   daddu    $a2, $a1, $zero
/* 1402E0 8024CFA0 2642FFFF */  addiu     $v0, $s2, -0x1
/* 1402E4 8024CFA4 2C420003 */  sltiu     $v0, $v0, 0x3
/* 1402E8 8024CFA8 1040000A */  beqz      $v0, .L8024CFD4
/* 1402EC 8024CFAC 0260202D */   daddu    $a0, $s3, $zero
glabel .L8024CFB0
/* 1402F0 8024CFB0 3C054334 */  lui       $a1, (0x43340000 >> 16)
/* 1402F4 8024CFB4 4406D000 */  mfc1      $a2, $f26
D_8024CFB8:
/* 1402F8 8024CFB8 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
glabel .L8024CFBC
/* 1402FC 8024CFBC 0C019EC8 */  jal       guRotateF
/* 140300 8024CFC0 E7BA0010 */   swc1     $f26, 0x10($sp)
/* 140304 8024CFC4 0260202D */  daddu     $a0, $s3, $zero
glabel .L8024CFC8
/* 140308 8024CFC8 27A50050 */  addiu     $a1, $sp, 0x50
/* 14030C 8024CFCC 0C019D80 */  jal       guMtxCatF
/* 140310 8024CFD0 00A0302D */   daddu    $a2, $a1, $zero
.L8024CFD4:
/* 140314 8024CFD4 4405F000 */  mfc1      $a1, $f30
/* 140318 8024CFD8 4406F000 */  mfc1      $a2, $f30
/* 14031C 8024CFDC 4407F000 */  mfc1      $a3, $f30
/* 140320 8024CFE0 0C019DF0 */  jal       guScaleF
/* 140324 8024CFE4 0260202D */   daddu    $a0, $s3, $zero
/* 140328 8024CFE8 0260202D */  daddu     $a0, $s3, $zero
/* 14032C 8024CFEC 27A50050 */  addiu     $a1, $sp, 0x50
/* 140330 8024CFF0 0C019D80 */  jal       guMtxCatF
/* 140334 8024CFF4 00A0302D */   daddu    $a2, $a1, $zero
D_8024CFF8_C0A878:
/* 140338 8024CFF8 0000282D */  daddu     $a1, $zero, $zero
glabel .L8024CFFC
/* 14033C 8024CFFC 00A0302D */  daddu     $a2, $a1, $zero
/* 140340 8024D000 8EA20000 */  lw        $v0, 0x0($s5)
/* 140344 8024D004 27A30050 */  addiu     $v1, $sp, 0x50
/* 140348 8024D008 AFA30010 */  sw        $v1, 0x10($sp)
/* 14034C 8024D00C 00021080 */  sll       $v0, $v0, 2
/* 140350 8024D010 00561021 */  addu      $v0, $v0, $s6
/* 140354 8024D014 8C440000 */  lw        $a0, 0x0($v0)
/* 140358 8024D018 0C0B78F6 */  jal       spr_draw_npc_sprite
/* 14035C 8024D01C 00A0382D */   daddu    $a3, $a1, $zero
/* 140360 8024D020 3C028027 */  lui       $v0, %hi(gPauseSpiritsNumSpirits)
glabel .L8024D024
/* 140364 8024D024 8C4206FC */  lw        $v0, %lo(gPauseSpiritsNumSpirits)($v0)
/* 140368 8024D028 26940001 */  addiu     $s4, $s4, 0x1
/* 14036C 8024D02C 0282102A */  slt       $v0, $s4, $v0
/* 140370 8024D030 1440FF57 */  bnez      $v0, .L8024CD90
/* 140374 8024D034 00141880 */   sll      $v1, $s4, 2
.L8024D038:
/* 140378 8024D038 3C02D838 */  lui       $v0, (0xD8380002 >> 16)
/* 14037C 8024D03C 34420002 */  ori       $v0, $v0, (0xD8380002 & 0xFFFF)
/* 140380 8024D040 8FB80134 */  lw        $t8, 0x134($sp)
/* 140384 8024D044 3C0C800A */  lui       $t4, %hi(gMainGfxPos)
/* 140388 8024D048 258CA66C */  addiu     $t4, $t4, %lo(gMainGfxPos)
D_8024D04C:
/* 14038C 8024D04C 27060007 */  addiu     $a2, $t8, 0x7
/* 140390 8024D050 8FB80138 */  lw        $t8, 0x138($sp)
/* 140394 8024D054 8D890000 */  lw        $t1, 0x0($t4)
/* 140398 8024D058 2708000E */  addiu     $t0, $t8, 0xE
/* 14039C 8024D05C 8FB80134 */  lw        $t8, 0x134($sp)
D_8024D060_C0A8E0:
/* 1403A0 8024D060 0120182D */  daddu     $v1, $t1, $zero
/* 1403A4 8024D064 270A0117 */  addiu     $t2, $t8, 0x117
/* 1403A8 8024D068 8FB80138 */  lw        $t8, 0x138($sp)
/* 1403AC 8024D06C 25290008 */  addiu     $t1, $t1, 0x8
/* 1403B0 8024D070 AD890000 */  sw        $t1, 0x0($t4)
glabel .L8024D074
/* 1403B4 8024D074 AC620000 */  sw        $v0, 0x0($v1)
/* 1403B8 8024D078 24020040 */  addiu     $v0, $zero, 0x40
/* 1403BC 8024D07C AC620004 */  sw        $v0, 0x4($v1)
/* 1403C0 8024D080 1CC00002 */  bgtz      $a2, .L8024D08C
/* 1403C4 8024D084 270B008C */   addiu    $t3, $t8, 0x8C
/* 1403C8 8024D088 24060001 */  addiu     $a2, $zero, 0x1
.L8024D08C:
/* 1403CC 8024D08C 59000001 */  blezl     $t0, .L8024D094
/* 1403D0 8024D090 24080001 */   addiu    $t0, $zero, 0x1
.L8024D094:
/* 1403D4 8024D094 1940006D */  blez      $t2, .L8024D24C
/* 1403D8 8024D098 00000000 */   nop
glabel .L8024D09C
/* 1403DC 8024D09C 1960006B */  blez      $t3, .L8024D24C
/* 1403E0 8024D0A0 28C2013F */   slti     $v0, $a2, 0x13F
/* 1403E4 8024D0A4 10400069 */  beqz      $v0, .L8024D24C
/* 1403E8 8024D0A8 290200EF */   slti     $v0, $t0, 0xEF
/* 1403EC 8024D0AC 10400067 */  beqz      $v0, .L8024D24C
/* 1403F0 8024D0B0 2942013F */   slti     $v0, $t2, 0x13F
/* 1403F4 8024D0B4 50400001 */  beql      $v0, $zero, .L8024D0BC
/* 1403F8 8024D0B8 240A013F */   addiu    $t2, $zero, 0x13F
.L8024D0BC:
/* 1403FC 8024D0BC 296200EF */  slti      $v0, $t3, 0xEF
/* 140400 8024D0C0 50400001 */  beql      $v0, $zero, .L8024D0C8
glabel .L8024D0C4
/* 140404 8024D0C4 240B00EF */   addiu    $t3, $zero, 0xEF
.L8024D0C8:
/* 140408 8024D0C8 44861000 */  mtc1      $a2, $f2
/* 14040C 8024D0CC 00000000 */  nop
/* 140410 8024D0D0 468010A0 */  cvt.s.w   $f2, $f2
/* 140414 8024D0D4 25220008 */  addiu     $v0, $t1, 0x8
/* 140418 8024D0D8 3C014080 */  lui       $at, (0x40800000 >> 16)
/* 14041C 8024D0DC 44812000 */  mtc1      $at, $f4
/* 140420 8024D0E0 44880000 */  mtc1      $t0, $f0
/* 140424 8024D0E4 00000000 */  nop
/* 140428 8024D0E8 46800020 */  cvt.s.w   $f0, $f0
glabel .L8024D0EC
/* 14042C 8024D0EC 46041082 */  mul.s     $f2, $f2, $f4
/* 140430 8024D0F0 00000000 */  nop
/* 140434 8024D0F4 8FB80134 */  lw        $t8, 0x134($sp)
/* 140438 8024D0F8 3C08ED00 */  lui       $t0, (0xED000000 >> 16)
/* 14043C 8024D0FC 27060007 */  addiu     $a2, $t8, 0x7
/* 140440 8024D100 8FB80138 */  lw        $t8, 0x138($sp)
/* 140444 8024D104 46040002 */  mul.s     $f0, $f0, $f4
/* 140448 8024D108 00000000 */  nop
/* 14044C 8024D10C AD820000 */  sw        $v0, 0x0($t4)
/* 140450 8024D110 2707000E */  addiu     $a3, $t8, 0xE
/* 140454 8024D114 4600118D */  trunc.w.s $f6, $f2
/* 140458 8024D118 44023000 */  mfc1      $v0, $f6
/* 14045C 8024D11C 00000000 */  nop
glabel .L8024D120
/* 140460 8024D120 30420FFF */  andi      $v0, $v0, 0xFFF
/* 140464 8024D124 00021300 */  sll       $v0, $v0, 12
/* 140468 8024D128 4600018D */  trunc.w.s $f6, $f0
/* 14046C 8024D12C 44033000 */  mfc1      $v1, $f6
D_8024D130:
/* 140470 8024D130 448A1000 */  mtc1      $t2, $f2
D_8024D134:
/* 140474 8024D134 00000000 */  nop
/* 140478 8024D138 468010A0 */  cvt.s.w   $f2, $f2
/* 14047C 8024D13C 46041082 */  mul.s     $f2, $f2, $f4
/* 140480 8024D140 00000000 */  nop
/* 140484 8024D144 30630FFF */  andi      $v1, $v1, 0xFFF
/* 140488 8024D148 00681825 */  or        $v1, $v1, $t0
/* 14048C 8024D14C 00431025 */  or        $v0, $v0, $v1
/* 140490 8024D150 448B0000 */  mtc1      $t3, $f0
D_8024D154:
/* 140494 8024D154 00000000 */  nop
/* 140498 8024D158 46800020 */  cvt.s.w   $f0, $f0
/* 14049C 8024D15C 46040002 */  mul.s     $f0, $f0, $f4
/* 1404A0 8024D160 00000000 */  nop
/* 1404A4 8024D164 AD220000 */  sw        $v0, 0x0($t1)
/* 1404A8 8024D168 4600118D */  trunc.w.s $f6, $f2
D_8024D16C:
/* 1404AC 8024D16C 44023000 */  mfc1      $v0, $f6
/* 1404B0 8024D170 00000000 */  nop
/* 1404B4 8024D174 30420FFF */  andi      $v0, $v0, 0xFFF
/* 1404B8 8024D178 00021300 */  sll       $v0, $v0, 12
glabel .L8024D17C
/* 1404BC 8024D17C 4600018D */  trunc.w.s $f6, $f0
/* 1404C0 8024D180 44033000 */  mfc1      $v1, $f6
/* 1404C4 8024D184 00000000 */  nop
/* 1404C8 8024D188 30630FFF */  andi      $v1, $v1, 0xFFF
/* 1404CC 8024D18C 00431025 */  or        $v0, $v0, $v1
/* 1404D0 8024D190 AD220004 */  sw        $v0, 0x4($t1)
/* 1404D4 8024D194 24020110 */  addiu     $v0, $zero, 0x110
/* 1404D8 8024D198 AFA20014 */  sw        $v0, 0x14($sp)
/* 1404DC 8024D19C 2402007E */  addiu     $v0, $zero, 0x7E
/* 1404E0 8024D1A0 AFA20018 */  sw        $v0, 0x18($sp)
/* 1404E4 8024D1A4 93A20147 */  lbu       $v0, 0x147($sp)
/* 1404E8 8024D1A8 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 1404EC 8024D1AC 44810000 */  mtc1      $at, $f0
glabel .L8024D1B0
/* 1404F0 8024D1B0 8FB8013C */  lw        $t8, 0x13C($sp)
/* 1404F4 8024D1B4 AFA2001C */  sw        $v0, 0x1C($sp)
/* 1404F8 8024D1B8 93A2014B */  lbu       $v0, 0x14B($sp)
/* 1404FC 8024D1BC 0000202D */  daddu     $a0, $zero, $zero
/* 140500 8024D1C0 AFA20020 */  sw        $v0, 0x20($sp)
/* 140504 8024D1C4 8FA20140 */  lw        $v0, 0x140($sp)
/* 140508 8024D1C8 3C058027 */  lui       $a1, %hi(gPauseWS_25)
/* 14050C 8024D1CC 24A5FE78 */  addiu     $a1, $a1, %lo(gPauseWS_25)
/* 140510 8024D1D0 AFA00010 */  sw        $zero, 0x10($sp)
/* 140514 8024D1D4 AFA0002C */  sw        $zero, 0x2C($sp)
/* 140518 8024D1D8 AFA00030 */  sw        $zero, 0x30($sp)
/* 14051C 8024D1DC AFA00034 */  sw        $zero, 0x34($sp)
/* 140520 8024D1E0 AFA00038 */  sw        $zero, 0x38($sp)
glabel .L8024D1E4
/* 140524 8024D1E4 AFA0003C */  sw        $zero, 0x3C($sp)
/* 140528 8024D1E8 AFA00040 */  sw        $zero, 0x40($sp)
/* 14052C 8024D1EC AFA0004C */  sw        $zero, 0x4C($sp)
/* 140530 8024D1F0 E7A00024 */  swc1      $f0, 0x24($sp)
/* 140534 8024D1F4 E7A00028 */  swc1      $f0, 0x28($sp)
/* 140538 8024D1F8 AFB80044 */  sw        $t8, 0x44($sp)
/* 14053C 8024D1FC 0C03D4B8 */  jal       draw_box
/* 140540 8024D200 AFA20048 */   sw       $v0, 0x48($sp)
/* 140544 8024D204 3C038027 */  lui       $v1, %hi(gPauseMenuCurrentTab)
/* 140548 8024D208 806300D4 */  lb        $v1, %lo(gPauseMenuCurrentTab)($v1)
glabel .L8024D20C
/* 14054C 8024D20C 24020005 */  addiu     $v0, $zero, 0x5
/* 140550 8024D210 1462000E */  bne       $v1, $v0, .L8024D24C
/* 140554 8024D214 24040027 */   addiu    $a0, $zero, 0x27
/* 140558 8024D218 8FB80130 */  lw        $t8, 0x130($sp)
/* 14055C 8024D21C 3C038025 */  lui       $v1, %hi(D_8024F990)
/* 140560 8024D220 2463F990 */  addiu     $v1, $v1, %lo(D_8024F990)
/* 140564 8024D224 93020003 */  lbu       $v0, 0x3($t8)
/* 140568 8024D228 8FB80134 */  lw        $t8, 0x134($sp)
/* 14056C 8024D22C 000210C0 */  sll       $v0, $v0, 3
/* 140570 8024D230 00431021 */  addu      $v0, $v0, $v1
/* 140574 8024D234 8C450000 */  lw        $a1, 0x0($v0)
/* 140578 8024D238 8C460004 */  lw        $a2, 0x4($v0)
/* 14057C 8024D23C 03052821 */  addu      $a1, $t8, $a1
glabel .L8024D240
/* 140580 8024D240 8FB80138 */  lw        $t8, 0x138($sp)
/* 140584 8024D244 0C090B41 */  jal       func_80242D04
/* 140588 8024D248 03063021 */   addu     $a2, $t8, $a2
.L8024D24C:
/* 14058C 8024D24C 8FBF00FC */  lw        $ra, 0xFC($sp)
/* 140590 8024D250 8FBE00F8 */  lw        $fp, 0xF8($sp)
/* 140594 8024D254 8FB700F4 */  lw        $s7, 0xF4($sp)
/* 140598 8024D258 8FB600F0 */  lw        $s6, 0xF0($sp)
/* 14059C 8024D25C 8FB500EC */  lw        $s5, 0xEC($sp)
/* 1405A0 8024D260 8FB400E8 */  lw        $s4, 0xE8($sp)
/* 1405A4 8024D264 8FB300E4 */  lw        $s3, 0xE4($sp)
/* 1405A8 8024D268 8FB200E0 */  lw        $s2, 0xE0($sp)
/* 1405AC 8024D26C 8FB100DC */  lw        $s1, 0xDC($sp)
/* 1405B0 8024D270 8FB000D8 */  lw        $s0, 0xD8($sp)
/* 1405B4 8024D274 D7BE0128 */  ldc1      $f30, 0x128($sp)
/* 1405B8 8024D278 D7BC0120 */  ldc1      $f28, 0x120($sp)
/* 1405BC 8024D27C D7BA0118 */  ldc1      $f26, 0x118($sp)
D_8024D280_C0AB00:
/* 1405C0 8024D280 D7B80110 */  ldc1      $f24, 0x110($sp)
/* 1405C4 8024D284 D7B60108 */  ldc1      $f22, 0x108($sp)
glabel .L8024D288
/* 1405C8 8024D288 D7B40100 */  ldc1      $f20, 0x100($sp)
/* 1405CC 8024D28C 03E00008 */  jr        $ra
/* 1405D0 8024D290 27BD0130 */   addiu    $sp, $sp, 0x130

### DECOMPILED C INSTRUCTIONS:

void pause_spirits_draw_contents(MenuPanel* menu, s32 baseX, s32 baseY, s32 width, s32 height, s32 opacity, s32 darkening) {
    Matrix4f matrix1;
    Matrix4f matrix2;
    s32 i, j;
    s32 color;
    s32 alpha;
    s32 index;
    f32 x, y;
    f32 offsetY;
    s32 x1, y1, x2, y2;
    f32 frameCounter;
    f32 scale;
    PlayerData* playerData = get_player_data();

    gDPPipeSync(gMainGfxPos++);
    gSPViewport(gMainGfxPos++, &gPauseSpiritsViewport);
    gSPDisplayList(gMainGfxPos++, gPauseDLSpiritsBg);

    for (i = 0; i < 5; i++) {
        gDPLoadTextureTile_4b(gMainGfxPos++, pause_spirits_bg_png, G_IM_FMT_CI, 128, 110,
                               0, i * 22, 127, i * 22 + 21, 0,
                               G_TX_MIRROR, G_TX_CLAMP, 7, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
        pause_draw_rect((baseX + 15) * 4, (baseY + 22 + i * 22) * 4, (baseX + 271) * 4, (baseY + 22 + i * 22 + 22) * 4, 0, 16, 16 + i * 704, 0x400, 0x400);
        gDPPipeSync(gMainGfxPos++);
    }

    guOrthoF(matrix1, 0.0f, 320.0f, 240.0f, 0.0f, -1000.0f, 1000.0f, 1.0f);
    guMtxF2L(matrix1, &gDisplayContext->matrixStack[gMatrixListPos]);
    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_PROJECTION);
    guTranslateF(matrix1, 0.0f, 0.0f, 0.0f);
    guMtxF2L(matrix1, &gDisplayContext->matrixStack[gMatrixListPos]);
    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

    for (i = 0; i < gPauseSpiritsNumSpirits; i++) {
        index = gPauseSpiritsDrawOrder[i];
        frameCounter = gGameStatusPtr->frameCounter * 4;
        x = gPauseSpiritsPositions[index].x;
        y = gPauseSpiritsPositions[index].y;

        if (playerData->maxStarPower < index + 1) {
            color = 0;
            alpha = 128;
            offsetY = 0.0f;
        } else {
            color = 255;
            alpha = 255;
            offsetY = sin_deg(index * index * index + frameCounter * 0.4321 + frameCounter * (index * 0.02 + 0.1324))
                  * 5.0f
                  * sin_deg(index * 0.25 + frameCounter + frameCounter * (0.0432 - index * 0.01));

        }

        set_npc_imgfx_all(gPauseSpiritsSpriteIDs[gPauseSpiritsIndexes[index]], IMGFX_SET_TINT, color, color, color, alpha, 64);
        guTranslateF(matrix1, baseX + 22 + x, baseY + 77 + y + offsetY, 0.0f);
        guRotateF(matrix2, 180.0f, 0.0f, 0.0f, 1.0f);
        guMtxCatF(matrix2, matrix1, matrix1);

        if (index == 1 || index == 2 || index == 3) {
            guRotateF(matrix2, 180.0f, 0.0f, 1.0f, 0.0f);
            guMtxCatF(matrix2, matrix1, matrix1);
        }

        guScaleF(matrix2, 0.9f, 0.9f, 0.9f);
        guMtxCatF(matrix2, matrix1, matrix1);
        spr_draw_npc_sprite(gPauseSpiritsSpriteIDs[gPauseSpiritsIndexes[index]], 0, 0, 0, matrix1);
    }

    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);

    x1 = baseX + 7;
    y1 = baseY + 14;
    x2 = baseX + 279;
    y2 = baseY + 140;

    if (x1 <= 0) {
        x1 = 1;
    }
    if (y1 <= 0) {
        y1 = 1;
    }

    if (x2 <= 0 || y2 <= 0 || x1 >= SCREEN_WIDTH - 1 || y1 >= SCREEN_HEIGHT - 1) {
        return;
    }

    if (x2 >= SCREEN_WIDTH - 1) {
        x2 = SCREEN_WIDTH - 1;
    }
    if (y2 >= SCREEN_HEIGHT - 1) {
        y2 = SCREEN_HEIGHT - 1;
    }

    gDPSetScissor(gMainGfxPos++, G_SC_NON_INTERLACE, x1, y1, x2, y2);
    draw_box(0, &gPauseWS_25, baseX + 7, baseY + 14, 0, 272, 126, opacity, darkening, 1.0f, 1.0f, 0, 0, 0, 0, 0, 0, width, height, 0);

    if (gPauseMenuCurrentTab == 5) {
        pause_set_cursor_pos(WINDOW_ID_PAUSE_SPIRITS, baseX + gPauseSpiritsCursorPositions[menu->selected].x, baseY + gPauseSpiritsCursorPositions[menu->selected].y);
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel action_update_sliding
/* E27570 802B6060 27BDFF90 */  addiu     $sp, $sp, -0x70
/* E27574 802B6064 AFB00058 */  sw        $s0, 0x58($sp)
.L802B6068:
/* E27578 802B6068 3C108011 */  lui       $s0, %hi(gPlayerStatus)
/* E2757C 802B606C 2610EFC8 */  addiu     $s0, $s0, %lo(gPlayerStatus)
/* E27580 802B6070 AFBF0064 */  sw        $ra, 0x64($sp)
.L802B6074:
/* E27584 802B6074 AFB20060 */  sw        $s2, 0x60($sp)
/* E27588 802B6078 AFB1005C */  sw        $s1, 0x5C($sp)
glabel .L802B607C
/* E2758C 802B607C F7B40068 */  sdc1      $f20, 0x68($sp)
.L802B6080:
/* E27590 802B6080 8E040000 */  lw        $a0, 0x0($s0)
/* E27594 802B6084 04830021 */  bgezl     $a0, .L802B610C
/* E27598 802B6088 0200202D */   daddu    $a0, $s0, $zero
.L802B608C:
/* E2759C 802B608C 3C027FFF */  lui       $v0, (0x7FFFFFFF >> 16)
.L802B6090:
/* E275A0 802B6090 3442FFFF */  ori       $v0, $v0, (0x7FFFFFFF & 0xFFFF)
.L802B6094:
/* E275A4 802B6094 8E030004 */  lw        $v1, 0x4($s0)
/* E275A8 802B6098 00821024 */  and       $v0, $a0, $v0
glabel action_update_state_23
/* E275AC 802B609C AE020000 */  sw        $v0, 0x0($s0)
/* E275B0 802B60A0 A20000B6 */  sb        $zero, 0xB6($s0)
glabel action_update_use_spinning_flower
/* E275B4 802B60A4 AE000054 */  sw        $zero, 0x54($s0)
.L802B60A8:
/* E275B8 802B60A8 34630004 */  ori       $v1, $v1, 0x4
.L802B60AC:
/* E275BC 802B60AC 0C0AD800 */  jal       parasol_get_npc
/* E275C0 802B60B0 AE030004 */   sw       $v1, 0x4($s0)
glabel action_update_jump
/* E275C4 802B60B4 3C040001 */  lui       $a0, (0x1000A >> 16)
/* E275C8 802B60B8 3C01802B */  lui       $at, %hi(D_802B6780)
/* E275CC 802B60BC AC206780 */  sw        $zero, %lo(D_802B6780)($at)
/* E275D0 802B60C0 3C01802B */  lui       $at, %hi(D_802B6790)
/* E275D4 802B60C4 AC206790 */  sw        $zero, %lo(D_802B6790)($at)
.L802B60C8:
/* E275D8 802B60C8 3C01802B */  lui       $at, %hi(D_802B6794)
/* E275DC 802B60CC AC206794 */  sw        $zero, %lo(D_802B6794)($at)
glabel .L802B60D0
/* E275E0 802B60D0 3C01802B */  lui       $at, %hi(D_802B6798)
.L802B60D4:
/* E275E4 802B60D4 AC206798 */  sw        $zero, %lo(D_802B6798)($at)
/* E275E8 802B60D8 3C01802B */  lui       $at, %hi(D_802B679C)
/* E275EC 802B60DC AC20679C */  sw        $zero, %lo(D_802B679C)($at)
/* E275F0 802B60E0 0C037FBF */  jal       suggest_player_anim_allow_backward
/* E275F4 802B60E4 3484000A */   ori      $a0, $a0, (0x1000A & 0xFFFF)
.L802B60E8:
/* E275F8 802B60E8 24040167 */  addiu     $a0, $zero, 0x167
.L802B60EC:
/* E275FC 802B60EC 0C052736 */  jal       sfx_play_sound_at_player
.L802B60F0:
/* E27600 802B60F0 0000282D */   daddu    $a1, $zero, $zero
glabel .L802B60F4
/* E27604 802B60F4 3C03800B */  lui       $v1, %hi(gCameras)
/* E27608 802B60F8 24631D80 */  addiu     $v1, $v1, %lo(gCameras)
/* E2760C 802B60FC 94620002 */  lhu       $v0, 0x2($v1)
.L802B6100:
/* E27610 802B6100 34420001 */  ori       $v0, $v0, 0x1
.L802B6104:
/* E27614 802B6104 A4620002 */  sh        $v0, 0x2($v1)
.L802B6108:
/* E27618 802B6108 0200202D */  daddu     $a0, $s0, $zero
glabel .L802B610C
/* E2761C 802B610C 27A50028 */  addiu     $a1, $sp, 0x28
.L802B6110:
/* E27620 802B6110 27A6002C */  addiu     $a2, $sp, 0x2C
/* E27624 802B6114 C6080054 */  lwc1      $f8, 0x54($s0)
.L802B6118:
/* E27628 802B6118 C6000028 */  lwc1      $f0, 0x28($s0)
/* E2762C 802B611C C602002C */  lwc1      $f2, 0x2C($s0)
glabel action_update_parasol
/* E27630 802B6120 C6040030 */  lwc1      $f4, 0x30($s0)
.L802B6124:
/* E27634 802B6124 C60600A0 */  lwc1      $f6, 0xA0($s0)
.L802B6128:
/* E27638 802B6128 27A70030 */  addiu     $a3, $sp, 0x30
/* E2763C 802B612C E7A00028 */  swc1      $f0, 0x28($sp)
/* E27640 802B6130 E7A2002C */  swc1      $f2, 0x2C($sp)
glabel .L802B6134
/* E27644 802B6134 E7A40030 */  swc1      $f4, 0x30($sp)
/* E27648 802B6138 E7A80010 */  swc1      $f8, 0x10($sp)
.L802B613C:
/* E2764C 802B613C 0C037D18 */  jal       player_test_move_with_slipping
.L802B6140:
/* E27650 802B6140 E7A60014 */   swc1     $f6, 0x14($sp)
.L802B6144:
/* E27654 802B6144 C7A00028 */  lwc1      $f0, 0x28($sp)
/* E27658 802B6148 C7A20030 */  lwc1      $f2, 0x30($sp)
.L802B614C:
/* E2765C 802B614C C7A4002C */  lwc1      $f4, 0x2C($sp)
.L802B6150:
/* E27660 802B6150 820300B6 */  lb        $v1, 0xB6($s0)
.L802B6154:
/* E27664 802B6154 AFA20048 */  sw        $v0, 0x48($sp)
.L802B6158:
/* E27668 802B6158 2C620008 */  sltiu     $v0, $v1, 0x8
.L802B615C:
/* E2766C 802B615C E6000028 */  swc1      $f0, 0x28($s0)
/* E27670 802B6160 E6020030 */  swc1      $f2, 0x30($s0)
.L802B6164:
/* E27674 802B6164 1040016D */  beqz      $v0, .L802B671C
.L802B6168:
/* E27678 802B6168 E604002C */   swc1     $f4, 0x2C($s0)
/* E2767C 802B616C 00031080 */  sll       $v0, $v1, 2
glabel .L802B6170
/* E27680 802B6170 3C01802B */  lui       $at, %hi(func_802B6738 + 0x8)
glabel .L802B6174
/* E27684 802B6174 00220821 */  addu      $at, $at, $v0
/* E27688 802B6178 8C226740 */  lw        $v0, %lo(func_802B6738 + 0x8)($at)
.L802B617C:
/* E2768C 802B617C 00400008 */  jr        $v0
.L802B6180:
/* E27690 802B6180 00000000 */   nop
glabel .L802B6184
/* E27694 802B6184 3C02802B */  lui       $v0, %hi(D_802B6780)
.L802B6188:
/* E27698 802B6188 24426780 */  addiu     $v0, $v0, %lo(D_802B6780)
.L802B618C:
/* E2769C 802B618C C4400000 */  lwc1      $f0, 0x0($v0)
.L802B6190:
/* E276A0 802B6190 3C01802B */  lui       $at, %hi(D_802B6760_E29190)
.L802B6194:
/* E276A4 802B6194 D4226760 */  ldc1      $f2, %lo(D_802B6760_E29190)($at)
glabel func_802B6198
/* E276A8 802B6198 46000021 */  cvt.d.s   $f0, $f0
/* E276AC 802B619C 46220000 */  add.d     $f0, $f0, $f2
.L802B61A0:
/* E276B0 802B61A0 3C01802B */  lui       $at, %hi(D_802B6784)
.L802B61A4:
/* E276B4 802B61A4 C4226784 */  lwc1      $f2, %lo(D_802B6784)($at)
.L802B61A8:
/* E276B8 802B61A8 46200020 */  cvt.s.d   $f0, $f0
.L802B61AC:
/* E276BC 802B61AC 4600103E */  c.le.s    $f2, $f0
.L802B61B0:
/* E276C0 802B61B0 00000000 */  nop
.L802B61B4:
/* E276C4 802B61B4 45000002 */  bc1f      func_802B61C0
/* E276C8 802B61B8 E4400000 */   swc1     $f0, 0x0($v0)
/* E276CC 802B61BC E4420000 */  swc1      $f2, 0x0($v0)
glabel func_802B61C0
/* E276D0 802B61C0 C6000054 */  lwc1      $f0, 0x54($s0)
/* E276D4 802B61C4 C4420000 */  lwc1      $f2, 0x0($v0)
.L802B61C8:
/* E276D8 802B61C8 46020000 */  add.s     $f0, $f0, $f2
.L802B61CC:
/* E276DC 802B61CC 3C01802B */  lui       $at, %hi(D_802B6788)
/* E276E0 802B61D0 C4226788 */  lwc1      $f2, %lo(D_802B6788)($at)
.L802B61D4:
/* E276E4 802B61D4 4600103E */  c.le.s    $f2, $f0
.L802B61D8:
/* E276E8 802B61D8 00000000 */  nop
.L802B61DC:
/* E276EC 802B61DC 45000002 */  bc1f      .L802B61E8
/* E276F0 802B61E0 E6000054 */   swc1     $f0, 0x54($s0)
glabel func_802B61E4
/* E276F4 802B61E4 E6020054 */  swc1      $f2, 0x54($s0)
.L802B61E8:
/* E276F8 802B61E8 0200202D */  daddu     $a0, $s0, $zero
.L802B61EC:
/* E276FC 802B61EC 27A50028 */  addiu     $a1, $sp, 0x28
.L802B61F0:
/* E27700 802B61F0 27A6002C */  addiu     $a2, $sp, 0x2C
.L802B61F4:
/* E27704 802B61F4 27A70030 */  addiu     $a3, $sp, 0x30
.L802B61F8:
/* E27708 802B61F8 3C11802B */  lui       $s1, %hi(D_802B6798)
.L802B61FC:
/* E2770C 802B61FC 26316798 */  addiu     $s1, $s1, %lo(D_802B6798)
.L802B6200:
/* E27710 802B6200 C6000028 */  lwc1      $f0, 0x28($s0)
.L802B6204:
/* E27714 802B6204 860200B0 */  lh        $v0, 0xB0($s0)
glabel .L802B6208
/* E27718 802B6208 3C0142C8 */  lui       $at, (0x42C80000 >> 16)
/* E2771C 802B620C 44813000 */  mtc1      $at, $f6
.L802B6210:
/* E27720 802B6210 44821000 */  mtc1      $v0, $f2
.L802B6214:
/* E27724 802B6214 00000000 */  nop
glabel .L802B6218
/* E27728 802B6218 468010A0 */  cvt.s.w   $f2, $f2
/* E2772C 802B621C E7A00028 */  swc1      $f0, 0x28($sp)
.L802B6220:
/* E27730 802B6220 3C013F00 */  lui       $at, (0x3F000000 >> 16)
.L802B6224:
/* E27734 802B6224 44810000 */  mtc1      $at, $f0
glabel .L802B6228
/* E27738 802B6228 C6040030 */  lwc1      $f4, 0x30($s0)
.L802B622C:
/* E2773C 802B622C 46001082 */  mul.s     $f2, $f2, $f0
glabel action_update_step_up_peach
/* E27740 802B6230 00000000 */  nop
/* E27744 802B6234 E7A60034 */  swc1      $f6, 0x34($sp)
glabel .L802B6238
/* E27748 802B6238 E7A40030 */  swc1      $f4, 0x30($sp)
glabel .L802B623C
/* E2774C 802B623C C600002C */  lwc1      $f0, 0x2C($s0)
glabel .L802B6240
/* E27750 802B6240 3C12802B */  lui       $s2, %hi(D_802B6794)
glabel .L802B6244
/* E27754 802B6244 26526794 */  addiu     $s2, $s2, %lo(D_802B6794)
glabel .L802B6248
/* E27758 802B6248 46020000 */  add.s     $f0, $f0, $f2
/* E2775C 802B624C C6220000 */  lwc1      $f2, 0x0($s1)
glabel .L802B6250
/* E27760 802B6250 27A20034 */  addiu     $v0, $sp, 0x34
.L802B6254:
/* E27764 802B6254 E6420000 */  swc1      $f2, 0x0($s2)
glabel .L802B6258
/* E27768 802B6258 E7A0002C */  swc1      $f0, 0x2C($sp)
.L802B625C:
/* E2776C 802B625C AFA20010 */  sw        $v0, 0x10($sp)
/* E27770 802B6260 27A20038 */  addiu     $v0, $sp, 0x38
/* E27774 802B6264 AFA20014 */  sw        $v0, 0x14($sp)
.L802B6268:
/* E27778 802B6268 27A2003C */  addiu     $v0, $sp, 0x3C
.L802B626C:
/* E2777C 802B626C AFA20018 */  sw        $v0, 0x18($sp)
/* E27780 802B6270 27A20040 */  addiu     $v0, $sp, 0x40
.L802B6274:
/* E27784 802B6274 AFA2001C */  sw        $v0, 0x1C($sp)
glabel .L802B6278
/* E27788 802B6278 27A20044 */  addiu     $v0, $sp, 0x44
/* E2778C 802B627C 0C03791B */  jal       player_raycast_below_cam_relative
.L802B6280:
/* E27790 802B6280 AFA20020 */   sw       $v0, 0x20($sp)
.L802B6284:
/* E27794 802B6284 C7A0003C */  lwc1      $f0, 0x3C($sp)
glabel action_update_run
/* E27798 802B6288 AFA20048 */  sw        $v0, 0x48($sp)
/* E2779C 802B628C 04400023 */  bltz      $v0, .L802B631C
.L802B6290:
/* E277A0 802B6290 E6200000 */   swc1     $f0, 0x0($s1)
glabel func_802B6294
/* E277A4 802B6294 0C016F6A */  jal       get_collider_flags
glabel .L802B6298
/* E277A8 802B6298 0040202D */   daddu    $a0, $v0, $zero
/* E277AC 802B629C 304200FF */  andi      $v0, $v0, 0xFF
/* E277B0 802B62A0 24030005 */  addiu     $v1, $zero, 0x5
glabel func_802B62A4
/* E277B4 802B62A4 1443000F */  bne       $v0, $v1, .L802B62E4
.L802B62A8:
/* E277B8 802B62A8 00000000 */   nop
/* E277BC 802B62AC 3C028016 */  lui       $v0, %hi(gCollisionStatus)
jtbl_802B62B0:
/* E277C0 802B62B0 2442A550 */  addiu     $v0, $v0, %lo(gCollisionStatus)
.L802B62B4:
/* E277C4 802B62B4 97A3004A */  lhu       $v1, 0x4A($sp)
glabel .L802B62B8
/* E277C8 802B62B8 C7A0003C */  lwc1      $f0, 0x3C($sp)
/* E277CC 802B62BC 3C014334 */  lui       $at, (0x43340000 >> 16)
/* E277D0 802B62C0 44811000 */  mtc1      $at, $f2
/* E277D4 802B62C4 C7A4002C */  lwc1      $f4, 0x2C($sp)
.L802B62C8:
/* E277D8 802B62C8 46020000 */  add.s     $f0, $f0, $f2
glabel action_update_peach_land
/* E277DC 802B62CC A4430002 */  sh        $v1, 0x2($v0)
Munchlesia_LaunchVelocity:
/* E277E0 802B62D0 E604002C */  swc1      $f4, 0x2C($s0)
Munchlesia_LateralVelocity:
/* E277E4 802B62D4 3C01802B */  lui       $at, %hi(D_802B6790)
Munchlesia_LaunchAccel:
/* E277E8 802B62D8 E4206790 */  swc1      $f0, %lo(D_802B6790)($at)
Munchlesia_LaunchYaw:
/* E277EC 802B62DC 080AD9C7 */  j         .L802B671C
D_802B62E0:
/* E277F0 802B62E0 00000000 */   nop
.L802B62E4:
/* E277F4 802B62E4 C6400000 */  lwc1      $f0, 0x0($s2)
/* E277F8 802B62E8 C6220000 */  lwc1      $f2, 0x0($s1)
/* E277FC 802B62EC 46020001 */  sub.s     $f0, $f0, $f2
/* E27800 802B62F0 3C014049 */  lui       $at, (0x40490000 >> 16)
/* E27804 802B62F4 44811800 */  mtc1      $at, $f3
glabel func_802B62F8
/* E27808 802B62F8 44801000 */  mtc1      $zero, $f2
.L802B62FC:
/* E2780C 802B62FC 46000021 */  cvt.d.s   $f0, $f0
D_802B6300:
/* E27810 802B6300 46200005 */  abs.d     $f0, $f0
/* E27814 802B6304 4620103E */  c.le.d    $f2, $f0
.L802B6308:
/* E27818 802B6308 00000000 */  nop
.L802B630C:
/* E2781C 802B630C 45010004 */  bc1t      .L802B6320
.L802B6310:
/* E27820 802B6310 24020002 */   addiu    $v0, $zero, 0x2
/* E27824 802B6314 080AD8C8 */  j         .L802B6320
/* E27828 802B6318 24020001 */   addiu    $v0, $zero, 0x1
glabel .L802B631C
/* E2782C 802B631C 24020002 */  addiu     $v0, $zero, 0x2
.L802B6320:
/* E27830 802B6320 A20200B6 */  sb        $v0, 0xB6($s0)
glabel .L802B6324
/* E27834 802B6324 3C01802B */  lui       $at, %hi(D_802B6790)
.L802B6328:
/* E27838 802B6328 C42C6790 */  lwc1      $f12, %lo(D_802B6790)($at)
glabel .L802B632C
/* E2783C 802B632C 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
.L802B6330:
/* E27840 802B6330 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
/* E27844 802B6334 44810000 */  mtc1      $at, $f0
.L802B6338:
/* E27848 802B6338 00000000 */  nop
/* E2784C 802B633C 46006302 */  mul.s     $f12, $f12, $f0
.L802B6340:
/* E27850 802B6340 00000000 */  nop
/* E27854 802B6344 27A5004C */  addiu     $a1, $sp, 0x4C
glabel func_802B6348
/* E27858 802B6348 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* E2785C 802B634C 44810000 */  mtc1      $at, $f0
PlayerTweesterPhysicsPtr:
/* E27860 802B6350 27A60050 */  addiu     $a2, $sp, 0x50
glabel .L802B6354
/* E27864 802B6354 0C00A82D */  jal       sin_cos_rad
/* E27868 802B6358 46006303 */   div.s    $f12, $f12, $f0
.L802B635C:
/* E2786C 802B635C C7A0004C */  lwc1      $f0, 0x4C($sp)
D_802B6360:
/* E27870 802B6360 C7A20050 */  lwc1      $f2, 0x50($sp)
.L802B6364:
/* E27874 802B6364 C6040054 */  lwc1      $f4, 0x54($s0)
/* E27878 802B6368 46020003 */  div.s     $f0, $f0, $f2
.L802B636C:
/* E2787C 802B636C 46040002 */  mul.s     $f0, $f0, $f4
glabel .L802B6370
/* E27880 802B6370 00000000 */  nop
.L802B6374:
/* E27884 802B6374 C602002C */  lwc1      $f2, 0x2C($s0)
/* E27888 802B6378 46000005 */  abs.s     $f0, $f0
glabel .L802B637C
/* E2788C 802B637C 46001080 */  add.s     $f2, $f2, $f0
/* E27890 802B6380 24040167 */  addiu     $a0, $zero, 0x167
/* E27894 802B6384 0C0154F0 */  jal       snd_stop_sound
/* E27898 802B6388 E602002C */   swc1     $f2, 0x2C($s0)
/* E2789C 802B638C 080AD9C7 */  j         .L802B671C
/* E278A0 802B6390 00000000 */   nop
glabel .L802B6394
/* E278A4 802B6394 0200202D */  daddu     $a0, $s0, $zero
.L802B6398:
/* E278A8 802B6398 27A50028 */  addiu     $a1, $sp, 0x28
.L802B639C:
/* E278AC 802B639C 27A6002C */  addiu     $a2, $sp, 0x2C
/* E278B0 802B63A0 27A70030 */  addiu     $a3, $sp, 0x30
/* E278B4 802B63A4 860200B0 */  lh        $v0, 0xB0($s0)
.L802B63A8:
/* E278B8 802B63A8 3C013F00 */  lui       $at, (0x3F000000 >> 16)
.L802B63AC:
/* E278BC 802B63AC 44810000 */  mtc1      $at, $f0
glabel .L802B63B0
/* E278C0 802B63B0 C6040028 */  lwc1      $f4, 0x28($s0)
/* E278C4 802B63B4 3C014248 */  lui       $at, (0x42480000 >> 16)
/* E278C8 802B63B8 44813000 */  mtc1      $at, $f6
/* E278CC 802B63BC 44821000 */  mtc1      $v0, $f2
.L802B63C0:
/* E278D0 802B63C0 00000000 */  nop
.L802B63C4:
/* E278D4 802B63C4 468010A0 */  cvt.s.w   $f2, $f2
.L802B63C8:
/* E278D8 802B63C8 46001082 */  mul.s     $f2, $f2, $f0
.L802B63CC:
/* E278DC 802B63CC 00000000 */  nop
.L802B63D0:
/* E278E0 802B63D0 27A20034 */  addiu     $v0, $sp, 0x34
glabel action_update_first_strike
/* E278E4 802B63D4 E7A40028 */  swc1      $f4, 0x28($sp)
.L802B63D8:
/* E278E8 802B63D8 C600002C */  lwc1      $f0, 0x2C($s0)
glabel .L802B63DC
/* E278EC 802B63DC C6040030 */  lwc1      $f4, 0x30($s0)
.L802B63E0:
/* E278F0 802B63E0 46020000 */  add.s     $f0, $f0, $f2
.L802B63E4:
/* E278F4 802B63E4 E7A60034 */  swc1      $f6, 0x34($sp)
/* E278F8 802B63E8 E7A40030 */  swc1      $f4, 0x30($sp)
/* E278FC 802B63EC E7A0002C */  swc1      $f0, 0x2C($sp)
.L802B63F0:
/* E27900 802B63F0 AFA20010 */  sw        $v0, 0x10($sp)
.L802B63F4:
/* E27904 802B63F4 27A20038 */  addiu     $v0, $sp, 0x38
/* E27908 802B63F8 AFA20014 */  sw        $v0, 0x14($sp)
/* E2790C 802B63FC 27A2003C */  addiu     $v0, $sp, 0x3C
.L802B6400:
/* E27910 802B6400 AFA20018 */  sw        $v0, 0x18($sp)
/* E27914 802B6404 27A20040 */  addiu     $v0, $sp, 0x40
/* E27918 802B6408 AFA2001C */  sw        $v0, 0x1C($sp)
.L802B640C:
/* E2791C 802B640C 27A20044 */  addiu     $v0, $sp, 0x44
/* E27920 802B6410 0C03791B */  jal       player_raycast_below_cam_relative
.L802B6414:
/* E27924 802B6414 AFA20020 */   sw       $v0, 0x20($sp)
.L802B6418:
/* E27928 802B6418 04400023 */  bltz      $v0, .L802B64A8
/* E2792C 802B641C AFA20048 */   sw       $v0, 0x48($sp)
.L802B6420:
/* E27930 802B6420 C6020054 */  lwc1      $f2, 0x54($s0)
.L802B6424:
/* E27934 802B6424 3C014040 */  lui       $at, (0x40400000 >> 16)
.L802B6428:
/* E27938 802B6428 44810000 */  mtc1      $at, $f0
.L802B642C:
/* E2793C 802B642C 00000000 */  nop
D_802B6430:
/* E27940 802B6430 46001203 */  div.s     $f8, $f2, $f0
/* E27944 802B6434 3C01802B */  lui       $at, %hi(D_802B6768_E29198)
/* E27948 802B6438 D4226768 */  ldc1      $f2, %lo(D_802B6768_E29198)($at)
/* E2794C 802B643C 46004021 */  cvt.d.s   $f0, $f8
/* E27950 802B6440 4622003C */  c.lt.d    $f0, $f2
/* E27954 802B6444 00000000 */  nop
.L802B6448:
/* E27958 802B6448 45030001 */  bc1tl     .L802B6450
glabel action_update_peach_step_down_land
/* E2795C 802B644C AE000054 */   sw       $zero, 0x54($s0)
.L802B6450:
/* E27960 802B6450 C6000054 */  lwc1      $f0, 0x54($s0)
.L802B6454:
/* E27964 802B6454 46080001 */  sub.s     $f0, $f0, $f8
/* E27968 802B6458 4480A000 */  mtc1      $zero, $f20
/* E2796C 802B645C 00000000 */  nop
.L802B6460:
/* E27970 802B6460 4614003E */  c.le.s    $f0, $f20
.L802B6464:
/* E27974 802B6464 00000000 */  nop
/* E27978 802B6468 450000AC */  bc1f      .L802B671C
glabel .L802B646C
/* E2797C 802B646C E6000054 */   swc1     $f0, 0x54($s0)
/* E27980 802B6470 24040172 */  addiu     $a0, $zero, 0x172
/* E27984 802B6474 0C052736 */  jal       sfx_play_sound_at_player
glabel action_update_raise_arms
/* E27988 802B6478 0000282D */   daddu    $a1, $zero, $zero
glabel action_update_peach_falling
/* E2798C 802B647C 3C040001 */  lui       $a0, (0x10031 >> 16)
/* E27990 802B6480 0C037FDE */  jal       suggest_player_anim_always_forward
/* E27994 802B6484 34840031 */   ori      $a0, $a0, (0x10031 & 0xFFFF)
/* E27998 802B6488 24020006 */  addiu     $v0, $zero, 0x6
.L802B648C:
/* E2799C 802B648C A20200B6 */  sb        $v0, 0xB6($s0)
.L802B6490:
/* E279A0 802B6490 C7A0002C */  lwc1      $f0, 0x2C($sp)
.L802B6494:
/* E279A4 802B6494 2402000F */  addiu     $v0, $zero, 0xF
/* E279A8 802B6498 A6020008 */  sh        $v0, 0x8($s0)
/* E279AC 802B649C E6140054 */  swc1      $f20, 0x54($s0)
.L802B64A0:
/* E279B0 802B64A0 080AD9C7 */  j         .L802B671C
/* E279B4 802B64A4 E600002C */   swc1     $f0, 0x2C($s0)
glabel .L802B64A8
/* E279B8 802B64A8 C6000054 */  lwc1      $f0, 0x54($s0)
.L802B64AC:
/* E279BC 802B64AC 3C01802B */  lui       $at, %hi(.L802B678C)
/* E279C0 802B64B0 C422678C */  lwc1      $f2, %lo(.L802B678C)($at)
.L802B64B4:
/* E279C4 802B64B4 46020000 */  add.s     $f0, $f0, $f2
/* E279C8 802B64B8 44802000 */  mtc1      $zero, $f4
/* E279CC 802B64BC 00000000 */  nop
/* E279D0 802B64C0 4604003E */  c.le.s    $f0, $f4
.L802B64C4:
/* E279D4 802B64C4 00000000 */  nop
/* E279D8 802B64C8 45000002 */  bc1f      .L802B64D4
.L802B64CC:
/* E279DC 802B64CC E6000054 */   swc1     $f0, 0x54($s0)
.L802B64D0:
/* E279E0 802B64D0 E6040054 */  swc1      $f4, 0x54($s0)
.L802B64D4:
/* E279E4 802B64D4 C6000070 */  lwc1      $f0, 0x70($s0)
.L802B64D8:
/* E279E8 802B64D8 C6020074 */  lwc1      $f2, 0x74($s0)
glabel .L802B64DC
/* E279EC 802B64DC 46020000 */  add.s     $f0, $f0, $f2
glabel .L802B64E0
/* E279F0 802B64E0 C602002C */  lwc1      $f2, 0x2C($s0)
/* E279F4 802B64E4 46001080 */  add.s     $f2, $f2, $f0
/* E279F8 802B64E8 4604003E */  c.le.s    $f0, $f4
.L802B64EC:
/* E279FC 802B64EC E6000070 */  swc1      $f0, 0x70($s0)
glabel .L802B64F0
/* E27A00 802B64F0 4500008A */  bc1f      .L802B671C
/* E27A04 802B64F4 E602002C */   swc1     $f2, 0x2C($s0)
.L802B64F8:
/* E27A08 802B64F8 3C013DEA */  lui       $at, (0x3DEA161E >> 16)
/* E27A0C 802B64FC 3421161E */  ori       $at, $at, (0x3DEA161E & 0xFFFF)
/* E27A10 802B6500 44810000 */  mtc1      $at, $f0
/* E27A14 802B6504 3C01BE92 */  lui       $at, (0xBE92FEC5 >> 16)
glabel action_update_pushing_block
/* E27A18 802B6508 3421FEC5 */  ori       $at, $at, (0xBE92FEC5 & 0xFFFF)
.L802B650C:
/* E27A1C 802B650C 44811000 */  mtc1      $at, $f2
glabel .L802B6510
/* E27A20 802B6510 3C01BE3A */  lui       $at, (0xBE3AACDA >> 16)
/* E27A24 802B6514 3421ACDA */  ori       $at, $at, (0xBE3AACDA & 0xFFFF)
/* E27A28 802B6518 44812000 */  mtc1      $at, $f4
.L802B651C:
/* E27A2C 802B651C 3C013C3C */  lui       $at, (0x3C3CBE62 >> 16)
.L802B6520:
/* E27A30 802B6520 3421BE62 */  ori       $at, $at, (0x3C3CBE62 & 0xFFFF)
.L802B6524:
/* E27A34 802B6524 44813000 */  mtc1      $at, $f6
/* E27A38 802B6528 24020003 */  addiu     $v0, $zero, 0x3
/* E27A3C 802B652C A20200B6 */  sb        $v0, 0xB6($s0)
.L802B6530:
/* E27A40 802B6530 E6000070 */  swc1      $f0, 0x70($s0)
.L802B6534:
/* E27A44 802B6534 E6020074 */  swc1      $f2, 0x74($s0)
/* E27A48 802B6538 E6040078 */  swc1      $f4, 0x78($s0)
/* E27A4C 802B653C 080AD9C7 */  j         .L802B671C
/* E27A50 802B6540 E606007C */   swc1     $f6, 0x7C($s0)
glabel .L802B6544
/* E27A54 802B6544 3C11802B */  lui       $s1, %hi(.L802B678C)
glabel .L802B6548
/* E27A58 802B6548 2631678C */  addiu     $s1, $s1, %lo(.L802B678C)
/* E27A5C 802B654C C6000054 */  lwc1      $f0, 0x54($s0)
glabel func_802B6550
/* E27A60 802B6550 C6220000 */  lwc1      $f2, 0x0($s1)
.L802B6554:
/* E27A64 802B6554 46020000 */  add.s     $f0, $f0, $f2
/* E27A68 802B6558 44801000 */  mtc1      $zero, $f2
/* E27A6C 802B655C 00000000 */  nop
/* E27A70 802B6560 4602003E */  c.le.s    $f0, $f2
/* E27A74 802B6564 00000000 */  nop
glabel .L802B6568
/* E27A78 802B6568 45000002 */  bc1f      .L802B6574
.L802B656C:
/* E27A7C 802B656C E6000054 */   swc1     $f0, 0x54($s0)
.L802B6570:
/* E27A80 802B6570 E6020054 */  swc1      $f2, 0x54($s0)
.L802B6574:
/* E27A84 802B6574 0C038D36 */  jal       func_800E34D8
/* E27A88 802B6578 00000000 */   nop
/* E27A8C 802B657C 46000306 */  mov.s     $f12, $f0
.L802B6580:
/* E27A90 802B6580 0C038D45 */  jal       player_check_collision_below
/* E27A94 802B6584 27A50048 */   addiu    $a1, $sp, 0x48
/* E27A98 802B6588 8FA20048 */  lw        $v0, 0x48($sp)
glabel .L802B658C
/* E27A9C 802B658C 04400063 */  bltz      $v0, .L802B671C
.L802B6590:
/* E27AA0 802B6590 E600002C */   swc1     $f0, 0x2C($s0)
glabel .L802B6594
/* E27AA4 802B6594 3C040008 */  lui       $a0, (0x80003 >> 16)
.L802B6598:
/* E27AA8 802B6598 3C01BF80 */  lui       $at, (0xBF800000 >> 16)
.L802B659C:
/* E27AAC 802B659C 44810000 */  mtc1      $at, $f0
/* E27AB0 802B65A0 34840003 */  ori       $a0, $a0, (0x80003 & 0xFFFF)
glabel .L802B65A4
/* E27AB4 802B65A4 0C037FDE */  jal       suggest_player_anim_always_forward
.L802B65A8:
/* E27AB8 802B65A8 E6200000 */   swc1     $f0, 0x0($s1)
/* E27ABC 802B65AC 24040162 */  addiu     $a0, $zero, 0x162
/* E27AC0 802B65B0 0C052736 */  jal       sfx_play_sound_at_player
glabel .L802B65B4
/* E27AC4 802B65B4 0000282D */   daddu    $a1, $zero, $zero
.L802B65B8:
/* E27AC8 802B65B8 080AD9AC */  j         .L802B66B0
/* E27ACC 802B65BC 00000000 */   nop
glabel .L802B65C0
/* E27AD0 802B65C0 C6000054 */  lwc1      $f0, 0x54($s0)
/* E27AD4 802B65C4 3C01802B */  lui       $at, %hi(.L802B678C)
/* E27AD8 802B65C8 C422678C */  lwc1      $f2, %lo(.L802B678C)($at)
glabel .L802B65CC
/* E27ADC 802B65CC 46020000 */  add.s     $f0, $f0, $f2
.L802B65D0:
/* E27AE0 802B65D0 44801000 */  mtc1      $zero, $f2
/* E27AE4 802B65D4 00000000 */  nop
/* E27AE8 802B65D8 4602003E */  c.le.s    $f0, $f2
.L802B65DC:
/* E27AEC 802B65DC 00000000 */  nop
.L802B65E0:
/* E27AF0 802B65E0 45000002 */  bc1f      .L802B65EC
.L802B65E4:
/* E27AF4 802B65E4 E6000054 */   swc1     $f0, 0x54($s0)
glabel action_update_walk_peach
/* E27AF8 802B65E8 E6020054 */  swc1      $f2, 0x54($s0)
.L802B65EC:
/* E27AFC 802B65EC 960200BC */  lhu       $v0, 0xBC($s0)
.L802B65F0:
/* E27B00 802B65F0 1040004A */  beqz      $v0, .L802B671C
/* E27B04 802B65F4 00000000 */   nop
glabel func_802B65F8_E26D08
/* E27B08 802B65F8 3C040001 */  lui       $a0, (0x10030 >> 16)
/* E27B0C 802B65FC 0C037FDE */  jal       suggest_player_anim_always_forward
/* E27B10 802B6600 34840030 */   ori      $a0, $a0, (0x10030 & 0xFFFF)
.L802B6604:
/* E27B14 802B6604 080AD9AC */  j         .L802B66B0
/* E27B18 802B6608 00000000 */   nop
glabel .L802B660C
/* E27B1C 802B660C C6000054 */  lwc1      $f0, 0x54($s0)
/* E27B20 802B6610 3C01802B */  lui       $at, %hi(.L802B678C)
/* E27B24 802B6614 C422678C */  lwc1      $f2, %lo(.L802B678C)($at)
/* E27B28 802B6618 46020000 */  add.s     $f0, $f0, $f2
glabel .L802B661C
/* E27B2C 802B661C 44801000 */  mtc1      $zero, $f2
.L802B6620:
/* E27B30 802B6620 00000000 */  nop
/* E27B34 802B6624 4602003E */  c.le.s    $f0, $f2
.L802B6628:
/* E27B38 802B6628 00000000 */  nop
/* E27B3C 802B662C 45000002 */  bc1f      action_update_talk
.L802B6630:
/* E27B40 802B6630 E6000054 */   swc1     $f0, 0x54($s0)
glabel .L802B6634
/* E27B44 802B6634 E6020054 */  swc1      $f2, 0x54($s0)
glabel action_update_talk
/* E27B48 802B6638 960200BC */  lhu       $v0, 0xBC($s0)
/* E27B4C 802B663C 10400037 */  beqz      $v0, .L802B671C
/* E27B50 802B6640 00000000 */   nop
glabel .L802B6644
/* E27B54 802B6644 3C040001 */  lui       $a0, (0x10031 >> 16)
glabel func_802B6648_E27428
/* E27B58 802B6648 0C037FDE */  jal       suggest_player_anim_always_forward
.L802B664C:
/* E27B5C 802B664C 34840031 */   ori      $a0, $a0, (0x10031 & 0xFFFF)
.L802B6650:
/* E27B60 802B6650 24040172 */  addiu     $a0, $zero, 0x172
glabel .L802B6654
/* E27B64 802B6654 0C052736 */  jal       sfx_play_sound_at_player
/* E27B68 802B6658 0000282D */   daddu    $a1, $zero, $zero
/* E27B6C 802B665C 920200B6 */  lbu       $v0, 0xB6($s0)
glabel .L802B6660
/* E27B70 802B6660 2403000F */  addiu     $v1, $zero, 0xF
/* E27B74 802B6664 080AD9AD */  j         .L802B66B4
/* E27B78 802B6668 A6030008 */   sh       $v1, 0x8($s0)
glabel .L802B666C
/* E27B7C 802B666C C6000054 */  lwc1      $f0, 0x54($s0)
glabel .L802B6670
/* E27B80 802B6670 3C01802B */  lui       $at, %hi(.L802B678C)
glabel .L802B6674
/* E27B84 802B6674 C422678C */  lwc1      $f2, %lo(.L802B678C)($at)
.L802B6678:
/* E27B88 802B6678 46020000 */  add.s     $f0, $f0, $f2
/* E27B8C 802B667C 44801000 */  mtc1      $zero, $f2
glabel .L802B6680
/* E27B90 802B6680 00000000 */  nop
/* E27B94 802B6684 4602003E */  c.le.s    $f0, $f2
/* E27B98 802B6688 00000000 */  nop
glabel func_802B668C
/* E27B9C 802B668C 45000002 */  bc1f      .L802B6698
jtbl_802B6690:
/* E27BA0 802B6690 E6000054 */   swc1     $f0, 0x54($s0)
/* E27BA4 802B6694 E6020054 */  swc1      $f2, 0x54($s0)
.L802B6698:
/* E27BA8 802B6698 96020008 */  lhu       $v0, 0x8($s0)
/* E27BAC 802B669C 2442FFFF */  addiu     $v0, $v0, -0x1
/* E27BB0 802B66A0 A6020008 */  sh        $v0, 0x8($s0)
.L802B66A4:
/* E27BB4 802B66A4 00021400 */  sll       $v0, $v0, 16
glabel func_802B66A8
/* E27BB8 802B66A8 1440001C */  bnez      $v0, .L802B671C
/* E27BBC 802B66AC 00000000 */   nop
.L802B66B0:
/* E27BC0 802B66B0 920200B6 */  lbu       $v0, 0xB6($s0)
.L802B66B4:
/* E27BC4 802B66B4 24420001 */  addiu     $v0, $v0, 0x1
/* E27BC8 802B66B8 080AD9C7 */  j         .L802B671C
glabel .L802B66BC
/* E27BCC 802B66BC A20200B6 */   sb       $v0, 0xB6($s0)
glabel .L802B66C0
/* E27BD0 802B66C0 C6020054 */  lwc1      $f2, 0x54($s0)
/* E27BD4 802B66C4 3C014040 */  lui       $at, (0x40400000 >> 16)
/* E27BD8 802B66C8 44810000 */  mtc1      $at, $f0
/* E27BDC 802B66CC 00000000 */  nop
/* E27BE0 802B66D0 46001203 */  div.s     $f8, $f2, $f0
/* E27BE4 802B66D4 3C01802B */  lui       $at, %hi(D_802B6770_E27C80)
/* E27BE8 802B66D8 D4226770 */  ldc1      $f2, %lo(D_802B6770_E27C80)($at)
.L802B66DC:
/* E27BEC 802B66DC 46004021 */  cvt.d.s   $f0, $f8
.L802B66E0:
/* E27BF0 802B66E0 4622003C */  c.lt.d    $f0, $f2
/* E27BF4 802B66E4 00000000 */  nop
/* E27BF8 802B66E8 45030001 */  bc1tl     .L802B66F0
/* E27BFC 802B66EC AE000054 */   sw       $zero, 0x54($s0)
.L802B66F0:
/* E27C00 802B66F0 C6000054 */  lwc1      $f0, 0x54($s0)
.L802B66F4:
/* E27C04 802B66F4 46080001 */  sub.s     $f0, $f0, $f8
/* E27C08 802B66F8 44801000 */  mtc1      $zero, $f2
/* E27C0C 802B66FC 00000000 */  nop
/* E27C10 802B6700 4602003E */  c.le.s    $f0, $f2
/* E27C14 802B6704 00000000 */  nop
.L802B6708:
/* E27C18 802B6708 45000004 */  bc1f      .L802B671C
/* E27C1C 802B670C E6000054 */   swc1     $f0, 0x54($s0)
.L802B6710:
/* E27C20 802B6710 E6020054 */  swc1      $f2, 0x54($s0)
/* E27C24 802B6714 0C039769 */  jal       set_action_state
D_802B6718_E274F8:
/* E27C28 802B6718 0000202D */   daddu    $a0, $zero, $zero
.L802B671C:
/* E27C2C 802B671C 8FBF0064 */  lw        $ra, 0x64($sp)
D_802B6720_E27500:
/* E27C30 802B6720 8FB20060 */  lw        $s2, 0x60($sp)
/* E27C34 802B6724 8FB1005C */  lw        $s1, 0x5C($sp)
D_802B6728_E27508:
/* E27C38 802B6728 8FB00058 */  lw        $s0, 0x58($sp)
.L802B672C:
/* E27C3C 802B672C D7B40068 */  ldc1      $f20, 0x68($sp)
D_802B6730:
/* E27C40 802B6730 03E00008 */  jr        $ra
/* E27C44 802B6734 27BD0070 */   addiu    $sp, $sp, 0x70

### DECOMPILED C INSTRUCTIONS:

void action_update_sliding(void) {
    PlayerStatus* playerStatus = &gPlayerStatus;
    CollisionStatus* collisionStatus;
    s32 surfaceType;
    f32 sinA, cosA;
    f32 speed;
    f32 posX, posY, posZ, depth;
    f32 hitRx, hitRy, hitDirX, hitDirZ;
    s32 hitID;

    if (playerStatus->flags & PS_FLAG_ACTION_STATE_CHANGED) {
        playerStatus->flags &= ~PS_FLAG_ACTION_STATE_CHANGED;
        playerStatus->actionSubstate = SUBSTATE_SLIDING;
        playerStatus->currentSpeed = 0.0f;
        playerStatus->animFlags |= PA_FLAG_INTERRUPT_USE_PARTNER;
        func_802B6000_E27510();
        SlideAcceleration = 0.0f;
        D_802B6790 = 0.0f;
        D_802B6794 = 0.0f;
        D_802B6798 = 0.0f;
        D_802B679C = 0;
        suggest_player_anim_allow_backward(ANIM_Mario1_Sit);
        sfx_play_sound_at_player(SOUND_167, SOUND_SPACE_MODE_0);
        gCameras[CAM_DEFAULT].moveFlags |= CAMERA_MOVE_IGNORE_PLAYER_Y;
    }
    speed = playerStatus->currentSpeed;
    posX = playerStatus->position.x;
    posY = playerStatus->position.y;
    posZ = playerStatus->position.z;
    hitID = player_test_move_with_slipping(playerStatus, &posX, &posY, &posZ, speed, playerStatus->heading);
    playerStatus->position.x = posX;
    playerStatus->position.z = posZ;
    playerStatus->position.y = posY;

    switch (playerStatus->actionSubstate) {
        case SUBSTATE_SLIDING:
            SlideAcceleration += 0.1;
            if (MaxSlideAccel <= SlideAcceleration) {
                SlideAcceleration = MaxSlideAccel;
            }
            playerStatus->currentSpeed += SlideAcceleration;
            if (MaxSlideVelocity <= playerStatus->currentSpeed) {
                playerStatus->currentSpeed = MaxSlideVelocity;
            }
            posX = playerStatus->position.x;
            depth = 100.0f;
            posZ = playerStatus->position.z;
            D_802B6794 = D_802B6798;
            posY = playerStatus->position.y + (playerStatus->colliderHeight * 0.5f);
            hitID = player_raycast_below_cam_relative(playerStatus, &posX, &posY, &posZ, &depth, &hitRx, &hitRy, &hitDirX, &hitDirZ);
            D_802B6798 = hitRy;
            if (hitID >= 0) {
                collisionStatus = &gCollisionStatus;
                surfaceType = get_collider_flags(hitID) & COLLIDER_FLAGS_SURFACE_TYPE_MASK;
                if (surfaceType == SURFACE_TYPE_SLIDE) {
                    collisionStatus->currentFloor = hitID;
                    playerStatus->position.y = posY;
                    D_802B6790 = hitRy + 180.0f;
                    break;
                }
                if (!(fabs(D_802B6794 - D_802B6798) >= 50.0)) {
                    playerStatus->actionSubstate = SUBSTATE_STOP;
                } else {
                    playerStatus->actionSubstate = SUBSTATE_LAUNCH;
                }
            } else {
                playerStatus->actionSubstate = SUBSTATE_LAUNCH;
            }
            sin_cos_rad(DEG_TO_RAD(D_802B6790), &sinA, &cosA);
            playerStatus->position.y += fabsf((sinA / cosA) * playerStatus->currentSpeed);
            snd_stop_sound(SOUND_167);
            break;
        case SUBSTATE_STOP:
            posX = playerStatus->position.x;
            depth = 50.0f;
            posZ = playerStatus->position.z;
            posY = playerStatus->position.y + (playerStatus->colliderHeight * 0.5f);
            hitID = player_raycast_below_cam_relative(playerStatus, &posX, &posY, &posZ, &depth, &hitRx, &hitRy, &hitDirX, &hitDirZ);
            if (hitID >= 0) {
                speed = playerStatus->currentSpeed / 3.0f;
                if (speed < 0.01) {
                    playerStatus->currentSpeed = 0.0f;
                }
                playerStatus->currentSpeed -= speed;
                if (playerStatus->currentSpeed <= 0.0f) {
                    sfx_play_sound_at_player(SOUND_DUST_OFF, SOUND_SPACE_MODE_0);
                    suggest_player_anim_always_forward(ANIM_Mario1_DustOff);
                    playerStatus->actionSubstate = SUBSTATE_DUST_OFF;
                    playerStatus->currentStateTime = 15;
                    playerStatus->currentSpeed = 0.0f;
                    playerStatus->position.y = posY;
                }
                break;
            }
        case SUBSTATE_LAUNCH:
            playerStatus->currentSpeed += SlideLaunchSpeed;
            if (playerStatus->currentSpeed <= 0.0f) {
                playerStatus->currentSpeed = 0.0f;
            }
            playerStatus->gravityIntegrator[0] += playerStatus->gravityIntegrator[1];
            playerStatus->position.y += playerStatus->gravityIntegrator[0];
            if (playerStatus->gravityIntegrator[0] <= 0.0f) {
                playerStatus->actionSubstate = SUBSTATE_FALL;
                LOAD_INTEGRATOR_FALL(playerStatus->gravityIntegrator);
            }
            break;
        case SUBSTATE_FALL:
            playerStatus->currentSpeed += SlideLaunchSpeed;
            if (playerStatus->currentSpeed <= 0.0f) {
                playerStatus->currentSpeed = 0.0f;
            }
            playerStatus->position.y = player_check_collision_below(player_fall_distance(), &hitID);
            if (hitID >= 0) {
                SlideLaunchSpeed = -1;
                suggest_player_anim_always_forward(ANIM_MarioW2_Collapse);
                sfx_play_sound_at_player(SOUND_162, SOUND_SPACE_MODE_0);
                playerStatus->actionSubstate++; // SUBSTATE_CRASH
            }
            break;
        case SUBSTATE_CRASH:
            playerStatus->currentSpeed += SlideLaunchSpeed;
            if (playerStatus->currentSpeed <= 0.0f) {
                playerStatus->currentSpeed = 0.0f;
            }
            if (playerStatus->animNotifyValue != 0) {
                suggest_player_anim_always_forward(ANIM_Mario1_GetUp);
                playerStatus->actionSubstate++; // SUBSTATE_GET_UP
            }
            break;
        case SUBSTATE_GET_UP:
            playerStatus->currentSpeed += SlideLaunchSpeed;
            if (playerStatus->currentSpeed <= 0.0f) {
                playerStatus->currentSpeed = 0.0f;
            }
            if (playerStatus->animNotifyValue != 0) {
                suggest_player_anim_always_forward(ANIM_Mario1_DustOff);
                sfx_play_sound_at_player(SOUND_DUST_OFF, SOUND_SPACE_MODE_0);
                playerStatus->currentStateTime = 15;
                playerStatus->actionSubstate++; // SUBSTATE_DUST_OFF
            }
            break;
        case SUBSTATE_DUST_OFF:
            playerStatus->currentSpeed += SlideLaunchSpeed;
            if (playerStatus->currentSpeed <= 0.0f) {
                playerStatus->currentSpeed = 0.0f;
            }
            if (--playerStatus->currentStateTime == 0) {
                playerStatus->actionSubstate++; // SUBSTATE_DONE
            }
            break;
        case SUBSTATE_DONE:
            speed = playerStatus->currentSpeed / 3.0f;
            if (speed < 0.01) {
                playerStatus->currentSpeed = 0.0f;
            }
            playerStatus->currentSpeed -= speed;
            if (playerStatus->currentSpeed <= 0.0f) {
                playerStatus->currentSpeed = 0.0f;
                set_action_state(ACTION_STATE_IDLE);
            }
            break;
    }
}