### RAW ASSEMBLY INSTRUCTIONS:

glabel render_hud_element
/* D92FC 80142BFC 27BDFCF8 */  addiu     $sp, $sp, -0x308
/* D9300 80142C00 AFB702E4 */  sw        $s7, 0x2E4($sp)
/* D9304 80142C04 0080B82D */  daddu     $s7, $a0, $zero
/* D9308 80142C08 AFBF02EC */  sw        $ra, 0x2EC($sp)
/* D930C 80142C0C AFBE02E8 */  sw        $fp, 0x2E8($sp)
/* D9310 80142C10 AFB602E0 */  sw        $s6, 0x2E0($sp)
/* D9314 80142C14 AFB502DC */  sw        $s5, 0x2DC($sp)
/* D9318 80142C18 AFB402D8 */  sw        $s4, 0x2D8($sp)
/* D931C 80142C1C AFB302D4 */  sw        $s3, 0x2D4($sp)
/* D9320 80142C20 AFB202D0 */  sw        $s2, 0x2D0($sp)
/* D9324 80142C24 AFB102CC */  sw        $s1, 0x2CC($sp)
/* D9328 80142C28 AFB002C8 */  sw        $s0, 0x2C8($sp)
/* D932C 80142C2C F7B80300 */  sdc1      $f24, 0x300($sp)
/* D9330 80142C30 F7B602F8 */  sdc1      $f22, 0x2F8($sp)
/* D9334 80142C34 F7B402F0 */  sdc1      $f20, 0x2F0($sp)
/* D9338 80142C38 8EE20000 */  lw        $v0, 0x0($s7)
/* D933C 80142C3C 30428000 */  andi      $v0, $v0, 0x8000
/* D9340 80142C40 1040000C */  beqz      $v0, .L80142C74
/* D9344 80142C44 3C05E300 */   lui      $a1, (0xE3001201 >> 16)
/* D9348 80142C48 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* D934C 80142C4C 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* D9350 80142C50 8C620000 */  lw        $v0, 0x0($v1)
/* D9354 80142C54 34A51201 */  ori       $a1, $a1, (0xE3001201 & 0xFFFF)
/* D9358 80142C58 0040202D */  daddu     $a0, $v0, $zero
/* D935C 80142C5C 24420008 */  addiu     $v0, $v0, 0x8
/* D9360 80142C60 AC620000 */  sw        $v0, 0x0($v1)
/* D9364 80142C64 24023000 */  addiu     $v0, $zero, 0x3000
/* D9368 80142C68 AC850000 */  sw        $a1, 0x0($a0)
/* D936C 80142C6C 08050B26 */  j         .L80142C98
/* D9370 80142C70 AC820004 */   sw       $v0, 0x4($a0)
.L80142C74:
/* D9374 80142C74 3C04800A */  lui       $a0, %hi(gMainGfxPos)
/* D9378 80142C78 2484A66C */  addiu     $a0, $a0, %lo(gMainGfxPos)
/* D937C 80142C7C 8C820000 */  lw        $v0, 0x0($a0)
/* D9380 80142C80 34A51201 */  ori       $a1, $a1, (0xE3001201 & 0xFFFF)
/* D9384 80142C84 0040182D */  daddu     $v1, $v0, $zero
/* D9388 80142C88 24420008 */  addiu     $v0, $v0, 0x8
/* D938C 80142C8C AC820000 */  sw        $v0, 0x0($a0)
/* D9390 80142C90 AC650000 */  sw        $a1, 0x0($v1)
/* D9394 80142C94 AC600004 */  sw        $zero, 0x4($v1)
.L80142C98:
/* D9398 80142C98 8EE30000 */  lw        $v1, 0x0($s7)
/* D939C 80142C9C 30620100 */  andi      $v0, $v1, 0x100
/* D93A0 80142CA0 14400005 */  bnez      $v0, .L80142CB8
/* D93A4 80142CA4 3C020010 */   lui      $v0, (0x100000 >> 16)
/* D93A8 80142CA8 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* D93AC 80142CAC 4481A000 */  mtc1      $at, $f20
/* D93B0 80142CB0 08050B51 */  j         .L80142D44
/* D93B4 80142CB4 4600A606 */   mov.s    $f24, $f20
.L80142CB8:
/* D93B8 80142CB8 00621024 */  and       $v0, $v1, $v0
/* D93BC 80142CBC 14400011 */  bnez      $v0, .L80142D04
/* D93C0 80142CC0 00000000 */   nop
/* D93C4 80142CC4 82E30046 */  lb        $v1, 0x46($s7)
/* D93C8 80142CC8 3C048015 */  lui       $a0, %hi(gHudElementSizes)
/* D93CC 80142CCC 2484EFCC */  addiu     $a0, $a0, %lo(gHudElementSizes)
/* D93D0 80142CD0 00031040 */  sll       $v0, $v1, 1
/* D93D4 80142CD4 00431021 */  addu      $v0, $v0, $v1
/* D93D8 80142CD8 00021040 */  sll       $v0, $v0, 1
/* D93DC 80142CDC 00441021 */  addu      $v0, $v0, $a0
/* D93E0 80142CE0 84430000 */  lh        $v1, 0x0($v0)
/* D93E4 80142CE4 84420002 */  lh        $v0, 0x2($v0)
/* D93E8 80142CE8 4483C000 */  mtc1      $v1, $f24
/* D93EC 80142CEC 00000000 */  nop
/* D93F0 80142CF0 4680C620 */  cvt.s.w   $f24, $f24
/* D93F4 80142CF4 4482A000 */  mtc1      $v0, $f20
/* D93F8 80142CF8 00000000 */  nop
/* D93FC 80142CFC 08050B49 */  j         .L80142D24
/* D9400 80142D00 4680A520 */   cvt.s.w  $f20, $f20
.L80142D04:
/* D9404 80142D04 92E2004E */  lbu       $v0, 0x4E($s7)
/* D9408 80142D08 92E3004F */  lbu       $v1, 0x4F($s7)
/* D940C 80142D0C 4482C000 */  mtc1      $v0, $f24
/* D9410 80142D10 00000000 */  nop
/* D9414 80142D14 4680C620 */  cvt.s.w   $f24, $f24
/* D9418 80142D18 4483A000 */  mtc1      $v1, $f20
/* D941C 80142D1C 00000000 */  nop
/* D9420 80142D20 4680A520 */  cvt.s.w   $f20, $f20
.L80142D24:
/* D9424 80142D24 C6E00028 */  lwc1      $f0, 0x28($s7)
/* D9428 80142D28 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* D942C 80142D2C 44811000 */  mtc1      $at, $f2
/* D9430 80142D30 4600C603 */  div.s     $f24, $f24, $f0
/* D9434 80142D34 C6E0002C */  lwc1      $f0, 0x2C($s7)
/* D9438 80142D38 46181603 */  div.s     $f24, $f2, $f24
/* D943C 80142D3C 4600A503 */  div.s     $f20, $f20, $f0
/* D9440 80142D40 46141503 */  div.s     $f20, $f2, $f20
.L80142D44:
/* D9444 80142D44 8EE20000 */  lw        $v0, 0x0($s7)
/* D9448 80142D48 3C030010 */  lui       $v1, (0x100000 >> 16)
/* D944C 80142D4C 00431024 */  and       $v0, $v0, $v1
/* D9450 80142D50 1440000C */  bnez      $v0, .L80142D84
/* D9454 80142D54 00000000 */   nop
/* D9458 80142D58 82E20046 */  lb        $v0, 0x46($s7)
/* D945C 80142D5C 3C048015 */  lui       $a0, %hi(gHudElementSizes)
/* D9460 80142D60 2484EFCC */  addiu     $a0, $a0, %lo(gHudElementSizes)
/* D9464 80142D64 00021840 */  sll       $v1, $v0, 1
/* D9468 80142D68 00621821 */  addu      $v1, $v1, $v0
/* D946C 80142D6C 00031840 */  sll       $v1, $v1, 1
/* D9470 80142D70 00641821 */  addu      $v1, $v1, $a0
/* D9474 80142D74 84760000 */  lh        $s6, 0x0($v1)
/* D9478 80142D78 84630002 */  lh        $v1, 0x2($v1)
/* D947C 80142D7C 08050B64 */  j         .L80142D90
/* D9480 80142D80 AFA302B8 */   sw       $v1, 0x2B8($sp)
.L80142D84:
/* D9484 80142D84 92F6004E */  lbu       $s6, 0x4E($s7)
/* D9488 80142D88 92ED004F */  lbu       $t5, 0x4F($s7)
/* D948C 80142D8C AFAD02B8 */  sw        $t5, 0x2B8($sp)
.L80142D90:
/* D9490 80142D90 4480B000 */  mtc1      $zero, $f22
/* D9494 80142D94 27AE01E0 */  addiu     $t6, $sp, 0x1E0
/* D9498 80142D98 AFAE02BC */  sw        $t6, 0x2BC($sp)
/* D949C 80142D9C 8EFE001C */  lw        $fp, 0x1C($s7)
/* D94A0 80142DA0 4407B000 */  mfc1      $a3, $f22
/* D94A4 80142DA4 87C30028 */  lh        $v1, 0x28($fp)
/* D94A8 80142DA8 87C2002A */  lh        $v0, 0x2A($fp)
/* D94AC 80142DAC 44833000 */  mtc1      $v1, $f6
/* D94B0 80142DB0 00000000 */  nop
/* D94B4 80142DB4 468031A0 */  cvt.s.w   $f6, $f6
/* D94B8 80142DB8 00021023 */  negu      $v0, $v0
/* D94BC 80142DBC 44053000 */  mfc1      $a1, $f6
/* D94C0 80142DC0 44823000 */  mtc1      $v0, $f6
/* D94C4 80142DC4 00000000 */  nop
/* D94C8 80142DC8 468031A0 */  cvt.s.w   $f6, $f6
/* D94CC 80142DCC 44063000 */  mfc1      $a2, $f6
/* D94D0 80142DD0 0C019E40 */  jal       guTranslateF
/* D94D4 80142DD4 01C0202D */   daddu    $a0, $t6, $zero
/* D94D8 80142DD8 27AD0220 */  addiu     $t5, $sp, 0x220
/* D94DC 80142DDC AFAD02C0 */  sw        $t5, 0x2C0($sp)
/* D94E0 80142DE0 87C20028 */  lh        $v0, 0x28($fp)
/* D94E4 80142DE4 4407B000 */  mfc1      $a3, $f22
/* D94E8 80142DE8 87C3002A */  lh        $v1, 0x2A($fp)
/* D94EC 80142DEC 00021023 */  negu      $v0, $v0
/* D94F0 80142DF0 44823000 */  mtc1      $v0, $f6
/* D94F4 80142DF4 00000000 */  nop
/* D94F8 80142DF8 468031A0 */  cvt.s.w   $f6, $f6
/* D94FC 80142DFC 44053000 */  mfc1      $a1, $f6
/* D9500 80142E00 44833000 */  mtc1      $v1, $f6
/* D9504 80142E04 00000000 */  nop
/* D9508 80142E08 468031A0 */  cvt.s.w   $f6, $f6
/* D950C 80142E0C 44063000 */  mfc1      $a2, $f6
/* D9510 80142E10 0C019E40 */  jal       guTranslateF
/* D9514 80142E14 01A0202D */   daddu    $a0, $t5, $zero
/* D9518 80142E18 86E2003C */  lh        $v0, 0x3C($s7)
/* D951C 80142E1C 82E30040 */  lb        $v1, 0x40($s7)
/* D9520 80142E20 82E40042 */  lb        $a0, 0x42($s7)
/* D9524 80142E24 C7C00004 */  lwc1      $f0, 0x4($fp)
/* D9528 80142E28 3C014024 */  lui       $at, (0x40240000 >> 16)
/* D952C 80142E2C 44812800 */  mtc1      $at, $f5
/* D9530 80142E30 44802000 */  mtc1      $zero, $f4
/* D9534 80142E34 00431021 */  addu      $v0, $v0, $v1
/* D9538 80142E38 00441021 */  addu      $v0, $v0, $a0
/* D953C 80142E3C 44821000 */  mtc1      $v0, $f2
/* D9540 80142E40 00000000 */  nop
/* D9544 80142E44 468010A0 */  cvt.s.w   $f2, $f2
/* D9548 80142E48 46001080 */  add.s     $f2, $f2, $f0
/* D954C 80142E4C 86E2003E */  lh        $v0, 0x3E($s7)
/* D9550 80142E50 82E30041 */  lb        $v1, 0x41($s7)
/* D9554 80142E54 82E40043 */  lb        $a0, 0x43($s7)
/* D9558 80142E58 C7C00008 */  lwc1      $f0, 0x8($fp)
/* D955C 80142E5C 00021023 */  negu      $v0, $v0
/* D9560 80142E60 00431023 */  subu      $v0, $v0, $v1
/* D9564 80142E64 00441021 */  addu      $v0, $v0, $a0
/* D9568 80142E68 44051000 */  mfc1      $a1, $f2
/* D956C 80142E6C 44821000 */  mtc1      $v0, $f2
/* D9570 80142E70 00000000 */  nop
/* D9574 80142E74 468010A0 */  cvt.s.w   $f2, $f2
/* D9578 80142E78 82E20044 */  lb        $v0, 0x44($s7)
/* D957C 80142E7C 46001080 */  add.s     $f2, $f2, $f0
/* D9580 80142E80 44820000 */  mtc1      $v0, $f0
/* D9584 80142E84 00000000 */  nop
/* D9588 80142E88 46800021 */  cvt.d.w   $f0, $f0
/* D958C 80142E8C 46240003 */  div.d     $f0, $f0, $f4
/* D9590 80142E90 44061000 */  mfc1      $a2, $f2
/* D9594 80142E94 C7C2000C */  lwc1      $f2, 0xC($fp)
/* D9598 80142E98 46200007 */  neg.d     $f0, $f0
/* D959C 80142E9C 460010A1 */  cvt.d.s   $f2, $f2
/* D95A0 80142EA0 46220000 */  add.d     $f0, $f0, $f2
/* D95A4 80142EA4 27B401A0 */  addiu     $s4, $sp, 0x1A0
/* D95A8 80142EA8 46200020 */  cvt.s.d   $f0, $f0
/* D95AC 80142EAC 44070000 */  mfc1      $a3, $f0
/* D95B0 80142EB0 0C019E40 */  jal       guTranslateF
/* D95B4 80142EB4 0280202D */   daddu    $a0, $s4, $zero
/* D95B8 80142EB8 C6E20030 */  lwc1      $f2, 0x30($s7)
/* D95BC 80142EBC 46181102 */  mul.s     $f4, $f2, $f24
/* D95C0 80142EC0 00000000 */  nop
/* D95C4 80142EC4 46141082 */  mul.s     $f2, $f2, $f20
/* D95C8 80142EC8 00000000 */  nop
/* D95CC 80142ECC C7C0001C */  lwc1      $f0, 0x1C($fp)
/* D95D0 80142ED0 46002102 */  mul.s     $f4, $f4, $f0
/* D95D4 80142ED4 00000000 */  nop
/* D95D8 80142ED8 C7C00020 */  lwc1      $f0, 0x20($fp)
/* D95DC 80142EDC 3C150001 */  lui       $s5, (0x11630 >> 16)
/* D95E0 80142EE0 46001082 */  mul.s     $f2, $f2, $f0
/* D95E4 80142EE4 00000000 */  nop
/* D95E8 80142EE8 36B51630 */  ori       $s5, $s5, (0x11630 & 0xFFFF)
/* D95EC 80142EEC 27B30260 */  addiu     $s3, $sp, 0x260
/* D95F0 80142EF0 8FC70024 */  lw        $a3, 0x24($fp)
/* D95F4 80142EF4 44052000 */  mfc1      $a1, $f4
/* D95F8 80142EF8 44061000 */  mfc1      $a2, $f2
/* D95FC 80142EFC 0C019DF0 */  jal       guScaleF
/* D9600 80142F00 0260202D */   daddu    $a0, $s3, $zero
/* D9604 80142F04 27B20120 */  addiu     $s2, $sp, 0x120
/* D9608 80142F08 E7B60010 */  swc1      $f22, 0x10($sp)
/* D960C 80142F0C 8FC50014 */  lw        $a1, 0x14($fp)
/* D9610 80142F10 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* D9614 80142F14 4481A000 */  mtc1      $at, $f20
/* D9618 80142F18 4406B000 */  mfc1      $a2, $f22
/* D961C 80142F1C 4407A000 */  mfc1      $a3, $f20
/* D9620 80142F20 0C019EC8 */  jal       guRotateF
/* D9624 80142F24 0240202D */   daddu    $a0, $s2, $zero
/* D9628 80142F28 27B10160 */  addiu     $s1, $sp, 0x160
/* D962C 80142F2C E7B40010 */  swc1      $f20, 0x10($sp)
/* D9630 80142F30 8FC50018 */  lw        $a1, 0x18($fp)
/* D9634 80142F34 4406B000 */  mfc1      $a2, $f22
/* D9638 80142F38 4407B000 */  mfc1      $a3, $f22
/* D963C 80142F3C 0C019EC8 */  jal       guRotateF
/* D9640 80142F40 0220202D */   daddu    $a0, $s1, $zero
/* D9644 80142F44 27B000E0 */  addiu     $s0, $sp, 0xE0
/* D9648 80142F48 E7B60010 */  swc1      $f22, 0x10($sp)
/* D964C 80142F4C 8FC50010 */  lw        $a1, 0x10($fp)
/* D9650 80142F50 4406A000 */  mfc1      $a2, $f20
/* D9654 80142F54 4407B000 */  mfc1      $a3, $f22
/* D9658 80142F58 0C019EC8 */  jal       guRotateF
/* D965C 80142F5C 0200202D */   daddu    $a0, $s0, $zero
/* D9660 80142F60 0220202D */  daddu     $a0, $s1, $zero
/* D9664 80142F64 0200282D */  daddu     $a1, $s0, $zero
/* D9668 80142F68 0C019D80 */  jal       guMtxCatF
/* D966C 80142F6C 27A60020 */   addiu    $a2, $sp, 0x20
/* D9670 80142F70 27A40020 */  addiu     $a0, $sp, 0x20
/* D9674 80142F74 0240282D */  daddu     $a1, $s2, $zero
/* D9678 80142F78 27B000A0 */  addiu     $s0, $sp, 0xA0
/* D967C 80142F7C 0C019D80 */  jal       guMtxCatF
/* D9680 80142F80 0200302D */   daddu    $a2, $s0, $zero
/* D9684 80142F84 0260202D */  daddu     $a0, $s3, $zero
/* D9688 80142F88 8FA502BC */  lw        $a1, 0x2BC($sp)
/* D968C 80142F8C 0C019D80 */  jal       guMtxCatF
/* D9690 80142F90 27A60020 */   addiu    $a2, $sp, 0x20
/* D9694 80142F94 27A40020 */  addiu     $a0, $sp, 0x20
/* D9698 80142F98 0200282D */  daddu     $a1, $s0, $zero
/* D969C 80142F9C 27B00060 */  addiu     $s0, $sp, 0x60
/* D96A0 80142FA0 0C019D80 */  jal       guMtxCatF
/* D96A4 80142FA4 0200302D */   daddu    $a2, $s0, $zero
/* D96A8 80142FA8 0200202D */  daddu     $a0, $s0, $zero
/* D96AC 80142FAC 8FA502C0 */  lw        $a1, 0x2C0($sp)
/* D96B0 80142FB0 0C019D80 */  jal       guMtxCatF
/* D96B4 80142FB4 27A60020 */   addiu    $a2, $sp, 0x20
/* D96B8 80142FB8 27A40020 */  addiu     $a0, $sp, 0x20
/* D96BC 80142FBC 0280282D */  daddu     $a1, $s4, $zero
/* D96C0 80142FC0 0C019D80 */  jal       guMtxCatF
/* D96C4 80142FC4 0200302D */   daddu    $a2, $s0, $zero
/* D96C8 80142FC8 0200202D */  daddu     $a0, $s0, $zero
/* D96CC 80142FCC 3C108007 */  lui       $s0, %hi(gMatrixListPos)
/* D96D0 80142FD0 261041F0 */  addiu     $s0, $s0, %lo(gMatrixListPos)
/* D96D4 80142FD4 3C11800A */  lui       $s1, %hi(gDisplayContext)
/* D96D8 80142FD8 2631A674 */  addiu     $s1, $s1, %lo(gDisplayContext)
/* D96DC 80142FDC 96050000 */  lhu       $a1, 0x0($s0)
/* D96E0 80142FE0 8E220000 */  lw        $v0, 0x0($s1)
/* D96E4 80142FE4 00052980 */  sll       $a1, $a1, 6
/* D96E8 80142FE8 00B52821 */  addu      $a1, $a1, $s5
/* D96EC 80142FEC 0C019D40 */  jal       guMtxF2L
/* D96F0 80142FF0 00452821 */   addu     $a1, $v0, $a1
/* D96F4 80142FF4 3C06DA38 */  lui       $a2, (0xDA380002 >> 16)
/* D96F8 80142FF8 34C60002 */  ori       $a2, $a2, (0xDA380002 & 0xFFFF)
/* D96FC 80142FFC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* D9700 80143000 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* D9704 80143004 0000382D */  daddu     $a3, $zero, $zero
/* D9708 80143008 8C620000 */  lw        $v0, 0x0($v1)
/* D970C 8014300C 96040000 */  lhu       $a0, 0x0($s0)
/* D9710 80143010 0040282D */  daddu     $a1, $v0, $zero
/* D9714 80143014 24420008 */  addiu     $v0, $v0, 0x8
/* D9718 80143018 AC620000 */  sw        $v0, 0x0($v1)
/* D971C 8014301C 3082FFFF */  andi      $v0, $a0, 0xFFFF
/* D9720 80143020 00021180 */  sll       $v0, $v0, 6
/* D9724 80143024 ACA60000 */  sw        $a2, 0x0($a1)
/* D9728 80143028 8E230000 */  lw        $v1, 0x0($s1)
/* D972C 8014302C 00551021 */  addu      $v0, $v0, $s5
/* D9730 80143030 00621821 */  addu      $v1, $v1, $v0
/* D9734 80143034 3C028000 */  lui       $v0, (0x80000000 >> 16)
/* D9738 80143038 00621821 */  addu      $v1, $v1, $v0
/* D973C 8014303C ACA30004 */  sw        $v1, 0x4($a1)
/* D9740 80143040 8EE30000 */  lw        $v1, 0x0($s7)
/* D9744 80143044 24840001 */  addiu     $a0, $a0, 0x1
/* D9748 80143048 A6040000 */  sh        $a0, 0x0($s0)
/* D974C 8014304C 30624000 */  andi      $v0, $v1, 0x4000
/* D9750 80143050 00E2202B */  sltu      $a0, $a3, $v0
/* D9754 80143054 3C020008 */  lui       $v0, (0x80000 >> 16)
/* D9758 80143058 00621824 */  and       $v1, $v1, $v0
/* D975C 8014305C 24020001 */  addiu     $v0, $zero, 0x1
/* D9760 80143060 14820002 */  bne       $a0, $v0, .L8014306C
/* D9764 80143064 00E3182B */   sltu     $v1, $a3, $v1
/* D9768 80143068 0062382B */  sltu      $a3, $v1, $v0
.L8014306C:
/* D976C 8014306C 54800004 */  bnel      $a0, $zero, .L80143080
/* D9770 80143070 24020001 */   addiu    $v0, $zero, 0x1
/* D9774 80143074 50620001 */  beql      $v1, $v0, .L8014307C
/* D9778 80143078 24070002 */   addiu    $a3, $zero, 0x2
.L8014307C:
/* D977C 8014307C 24020001 */  addiu     $v0, $zero, 0x1
.L80143080:
/* D9780 80143080 14820004 */  bne       $a0, $v0, .L80143094
/* D9784 80143084 24020001 */   addiu    $v0, $zero, 0x1
/* D9788 80143088 50640002 */  beql      $v1, $a0, .L80143094
/* D978C 8014308C 24070002 */   addiu    $a3, $zero, 0x2
/* D9790 80143090 24020001 */  addiu     $v0, $zero, 0x1
.L80143094:
/* D9794 80143094 10E20005 */  beq       $a3, $v0, .L801430AC
/* D9798 80143098 24020002 */   addiu    $v0, $zero, 0x2
/* D979C 8014309C 10E20052 */  beq       $a3, $v0, .L801431E8
/* D97A0 801430A0 3C03D838 */   lui      $v1, (0xD8380002 >> 16)
/* D97A4 801430A4 08050D8F */  j         .L8014363C
/* D97A8 801430A8 00000000 */   nop
.L801430AC:
/* D97AC 801430AC 8EE30000 */  lw        $v1, 0x0($s7)
/* D97B0 801430B0 3C020002 */  lui       $v0, (0x20000 >> 16)
/* D97B4 801430B4 00621024 */  and       $v0, $v1, $v0
/* D97B8 801430B8 10400013 */  beqz      $v0, .L80143108
/* D97BC 801430BC 30620020 */   andi     $v0, $v1, 0x20
/* D97C0 801430C0 1040000A */  beqz      $v0, .L801430EC
/* D97C4 801430C4 0000202D */   daddu    $a0, $zero, $zero
/* D97C8 801430C8 24050007 */  addiu     $a1, $zero, 0x7
/* D97CC 801430CC 240600FF */  addiu     $a2, $zero, 0xFF
/* D97D0 801430D0 00C0102D */  daddu     $v0, $a2, $zero
/* D97D4 801430D4 AFA20010 */  sw        $v0, 0x10($sp)
/* D97D8 801430D8 92E2004A */  lbu       $v0, 0x4A($s7)
/* D97DC 801430DC 00C0382D */  daddu     $a3, $a2, $zero
/* D97E0 801430E0 AFA00018 */  sw        $zero, 0x18($sp)
/* D97E4 801430E4 08050C54 */  j         .L80143150
/* D97E8 801430E8 AFA20014 */   sw       $v0, 0x14($sp)
.L801430EC:
/* D97EC 801430EC 0080282D */  daddu     $a1, $a0, $zero
/* D97F0 801430F0 0080302D */  daddu     $a2, $a0, $zero
/* D97F4 801430F4 0080382D */  daddu     $a3, $a0, $zero
/* D97F8 801430F8 AFA00010 */  sw        $zero, 0x10($sp)
/* D97FC 801430FC AFA00014 */  sw        $zero, 0x14($sp)
/* D9800 80143100 08050C54 */  j         .L80143150
/* D9804 80143104 AFA00018 */   sw       $zero, 0x18($sp)
.L80143108:
/* D9808 80143108 1040000A */  beqz      $v0, .L80143134
/* D980C 8014310C 24050007 */   addiu    $a1, $zero, 0x7
/* D9810 80143110 240200FF */  addiu     $v0, $zero, 0xFF
/* D9814 80143114 AFA20010 */  sw        $v0, 0x10($sp)
/* D9818 80143118 92E2004A */  lbu       $v0, 0x4A($s7)
/* D981C 8014311C 240600FF */  addiu     $a2, $zero, 0xFF
/* D9820 80143120 AFA00018 */  sw        $zero, 0x18($sp)
/* D9824 80143124 AFA20014 */  sw        $v0, 0x14($sp)
/* D9828 80143128 8FC40000 */  lw        $a0, 0x0($fp)
/* D982C 8014312C 08050C54 */  j         .L80143150
/* D9830 80143130 00C0382D */   daddu    $a3, $a2, $zero
.L80143134:
/* D9834 80143134 0000282D */  daddu     $a1, $zero, $zero
/* D9838 80143138 00A0302D */  daddu     $a2, $a1, $zero
/* D983C 8014313C AFA00010 */  sw        $zero, 0x10($sp)
/* D9840 80143140 AFA00014 */  sw        $zero, 0x14($sp)
/* D9844 80143144 AFA00018 */  sw        $zero, 0x18($sp)
/* D9848 80143148 8FC40000 */  lw        $a0, 0x0($fp)
/* D984C 8014314C 00A0382D */  daddu     $a3, $a1, $zero
.L80143150:
/* D9850 80143150 0C04EAA7 */  jal       imgfx_update
/* D9854 80143154 00000000 */   nop
/* D9858 80143158 8EE20010 */  lw        $v0, 0x10($s7)
/* D985C 8014315C 8FAE02B8 */  lw        $t6, 0x2B8($sp)
/* D9860 80143160 AFA202A0 */  sw        $v0, 0x2A0($sp)
/* D9864 80143164 00161023 */  negu      $v0, $s6
/* D9868 80143168 00021FC2 */  srl       $v1, $v0, 31
/* D986C 8014316C 00431021 */  addu      $v0, $v0, $v1
/* D9870 80143170 8EE40014 */  lw        $a0, 0x14($s7)
/* D9874 80143174 00021043 */  sra       $v0, $v0, 1
/* D9878 80143178 A7A202AC */  sh        $v0, 0x2AC($sp)
/* D987C 8014317C 000E17C2 */  srl       $v0, $t6, 31
/* D9880 80143180 01C21021 */  addu      $v0, $t6, $v0
/* D9884 80143184 97AD02BA */  lhu       $t5, 0x2BA($sp)
/* D9888 80143188 00021043 */  sra       $v0, $v0, 1
/* D988C 8014318C A7A202AE */  sh        $v0, 0x2AE($sp)
/* D9890 80143190 240200FF */  addiu     $v0, $zero, 0xFF
/* D9894 80143194 A7B602A8 */  sh        $s6, 0x2A8($sp)
/* D9898 80143198 A3A202B0 */  sb        $v0, 0x2B0($sp)
/* D989C 8014319C A7AD02AA */  sh        $t5, 0x2AA($sp)
/* D98A0 801431A0 AFA402A4 */  sw        $a0, 0x2A4($sp)
/* D98A4 801431A4 8EE30000 */  lw        $v1, 0x0($s7)
/* D98A8 801431A8 3C020002 */  lui       $v0, (0x20000 >> 16)
/* D98AC 801431AC 00621024 */  and       $v0, $v1, $v0
/* D98B0 801431B0 10400006 */  beqz      $v0, .L801431CC
/* D98B4 801431B4 3C020080 */   lui      $v0, (0x800000 >> 16)
/* D98B8 801431B8 00621024 */  and       $v0, $v1, $v0
/* D98BC 801431BC 14400004 */  bnez      $v0, .L801431D0
/* D98C0 801431C0 0000202D */   daddu    $a0, $zero, $zero
/* D98C4 801431C4 08050C75 */  j         .L801431D4
/* D98C8 801431C8 27A502A0 */   addiu    $a1, $sp, 0x2A0
.L801431CC:
/* D98CC 801431CC 8FC40000 */  lw        $a0, 0x0($fp)
.L801431D0:
/* D98D0 801431D0 27A502A0 */  addiu     $a1, $sp, 0x2A0
.L801431D4:
/* D98D4 801431D4 24060040 */  addiu     $a2, $zero, 0x40
/* D98D8 801431D8 0C04EBDC */  jal       imgfx_appendGfx_component
/* D98DC 801431DC 27A70060 */   addiu    $a3, $sp, 0x60
/* D98E0 801431E0 08050D8F */  j         .L8014363C
/* D98E4 801431E4 3C03D838 */   lui      $v1, (0xD8380002 >> 16)
.L801431E8:
/* D98E8 801431E8 3C0AFC11 */  lui       $t2, (0xFC11B223 >> 16)
/* D98EC 801431EC 354AB223 */  ori       $t2, $t2, (0xFC11B223 & 0xFFFF)
/* D98F0 801431F0 3C09FF67 */  lui       $t1, (0xFF67FFFF >> 16)
/* D98F4 801431F4 3529FFFF */  ori       $t1, $t1, (0xFF67FFFF & 0xFFFF)
/* D98F8 801431F8 3C078016 */  lui       $a3, %hi(D_80159180)
/* D98FC 801431FC 24E79180 */  addiu     $a3, $a3, %lo(D_80159180)
/* D9900 80143200 3C0C800A */  lui       $t4, %hi(gMainGfxPos)
/* D9904 80143204 258CA66C */  addiu     $t4, $t4, %lo(gMainGfxPos)
/* D9908 80143208 3C068015 */  lui       $a2, %hi(D_8014F0C8)
/* D990C 8014320C 24C6F0C8 */  addiu     $a2, $a2, %lo(D_8014F0C8)
/* D9910 80143210 8CE50000 */  lw        $a1, 0x0($a3)
/* D9914 80143214 8D8B0000 */  lw        $t3, 0x0($t4)
/* D9918 80143218 8CE20000 */  lw        $v0, 0x0($a3)
/* D991C 8014321C 8CE30000 */  lw        $v1, 0x0($a3)
/* D9920 80143220 00052980 */  sll       $a1, $a1, 6
/* D9924 80143224 24A50030 */  addiu     $a1, $a1, 0x30
/* D9928 80143228 03C52821 */  addu      $a1, $fp, $a1
/* D992C 8014322C 00021180 */  sll       $v0, $v0, 6
/* D9930 80143230 03C21021 */  addu      $v0, $fp, $v0
/* D9934 80143234 00031980 */  sll       $v1, $v1, 6
/* D9938 80143238 03C31821 */  addu      $v1, $fp, $v1
/* D993C 8014323C 0160402D */  daddu     $t0, $t3, $zero
/* D9940 80143240 8CCF0000 */  lw        $t7, 0x0($a2)
/* D9944 80143244 8CD80004 */  lw        $t8, 0x4($a2)
/* D9948 80143248 8CCD0008 */  lw        $t5, 0x8($a2)
/* D994C 8014324C 8CCE000C */  lw        $t6, 0xC($a2)
/* D9950 80143250 AC4F0030 */  sw        $t7, 0x30($v0)
/* D9954 80143254 AC580034 */  sw        $t8, 0x34($v0)
/* D9958 80143258 AC4D0038 */  sw        $t5, 0x38($v0)
/* D995C 8014325C AC4E003C */  sw        $t6, 0x3C($v0)
/* D9960 80143260 8CE40000 */  lw        $a0, 0x0($a3)
/* D9964 80143264 256B0008 */  addiu     $t3, $t3, 0x8
/* D9968 80143268 8CCF0010 */  lw        $t7, 0x10($a2)
/* D996C 8014326C 8CD80014 */  lw        $t8, 0x14($a2)
/* D9970 80143270 8CCD0018 */  lw        $t5, 0x18($a2)
/* D9974 80143274 8CCE001C */  lw        $t6, 0x1C($a2)
/* D9978 80143278 AC6F0040 */  sw        $t7, 0x40($v1)
/* D997C 8014327C AC780044 */  sw        $t8, 0x44($v1)
/* D9980 80143280 AC6D0048 */  sw        $t5, 0x48($v1)
/* D9984 80143284 AC6E004C */  sw        $t6, 0x4C($v1)
/* D9988 80143288 8CE20000 */  lw        $v0, 0x0($a3)
/* D998C 8014328C 00042180 */  sll       $a0, $a0, 6
/* D9990 80143290 03C42021 */  addu      $a0, $fp, $a0
/* D9994 80143294 00021180 */  sll       $v0, $v0, 6
/* D9998 80143298 03C21021 */  addu      $v0, $fp, $v0
/* D999C 8014329C 8CCF0020 */  lw        $t7, 0x20($a2)
/* D99A0 801432A0 8CD80024 */  lw        $t8, 0x24($a2)
/* D99A4 801432A4 8CCD0028 */  lw        $t5, 0x28($a2)
/* D99A8 801432A8 8CCE002C */  lw        $t6, 0x2C($a2)
/* D99AC 801432AC AC8F0050 */  sw        $t7, 0x50($a0)
/* D99B0 801432B0 AC980054 */  sw        $t8, 0x54($a0)
/* D99B4 801432B4 AC8D0058 */  sw        $t5, 0x58($a0)
/* D99B8 801432B8 AC8E005C */  sw        $t6, 0x5C($a0)
/* D99BC 801432BC 8CCF0030 */  lw        $t7, 0x30($a2)
/* D99C0 801432C0 8CD80034 */  lw        $t8, 0x34($a2)
/* D99C4 801432C4 8CCD0038 */  lw        $t5, 0x38($a2)
/* D99C8 801432C8 8CCE003C */  lw        $t6, 0x3C($a2)
/* D99CC 801432CC AC4F0060 */  sw        $t7, 0x60($v0)
/* D99D0 801432D0 AC580064 */  sw        $t8, 0x64($v0)
/* D99D4 801432D4 AC4D0068 */  sw        $t5, 0x68($v0)
/* D99D8 801432D8 AC4E006C */  sw        $t6, 0x6C($v0)
/* D99DC 801432DC 00163023 */  negu      $a2, $s6
/* D99E0 801432E0 000617C2 */  srl       $v0, $a2, 31
/* D99E4 801432E4 00C23021 */  addu      $a2, $a2, $v0
/* D99E8 801432E8 00063043 */  sra       $a2, $a2, 1
/* D99EC 801432EC A4A60000 */  sh        $a2, 0x0($a1)
/* D99F0 801432F0 8FAF02B8 */  lw        $t7, 0x2B8($sp)
/* D99F4 801432F4 00A0202D */  daddu     $a0, $a1, $zero
/* D99F8 801432F8 A4A00004 */  sh        $zero, 0x4($a1)
/* D99FC 801432FC A4A00008 */  sh        $zero, 0x8($a1)
/* D9A00 80143300 000F1823 */  negu      $v1, $t7
/* D9A04 80143304 000317C2 */  srl       $v0, $v1, 31
/* D9A08 80143308 00621821 */  addu      $v1, $v1, $v0
/* D9A0C 8014330C 00031843 */  sra       $v1, $v1, 1
/* D9A10 80143310 000F3940 */  sll       $a3, $t7, 5
/* D9A14 80143314 A4A30002 */  sh        $v1, 0x2($a1)
/* D9A18 80143318 A4A7000A */  sh        $a3, 0xA($a1)
/* D9A1C 8014331C 24A50010 */  addiu     $a1, $a1, 0x10
/* D9A20 80143320 001617C2 */  srl       $v0, $s6, 31
/* D9A24 80143324 02C21021 */  addu      $v0, $s6, $v0
/* D9A28 80143328 00021043 */  sra       $v0, $v0, 1
/* D9A2C 8014332C 2442FFFF */  addiu     $v0, $v0, -0x1
/* D9A30 80143330 A4A30002 */  sh        $v1, 0x2($a1)
/* D9A34 80143334 00161940 */  sll       $v1, $s6, 5
/* D9A38 80143338 A4A20000 */  sh        $v0, 0x0($a1)
/* D9A3C 8014333C A4A00004 */  sh        $zero, 0x4($a1)
/* D9A40 80143340 A4A30008 */  sh        $v1, 0x8($a1)
/* D9A44 80143344 A4A7000A */  sh        $a3, 0xA($a1)
/* D9A48 80143348 A4820020 */  sh        $v0, 0x20($a0)
/* D9A4C 8014334C 000F17C2 */  srl       $v0, $t7, 31
/* D9A50 80143350 01E21021 */  addu      $v0, $t7, $v0
/* D9A54 80143354 00021043 */  sra       $v0, $v0, 1
/* D9A58 80143358 2442FFFF */  addiu     $v0, $v0, -0x1
/* D9A5C 8014335C A4820022 */  sh        $v0, 0x22($a0)
/* D9A60 80143360 A4820032 */  sh        $v0, 0x32($a0)
/* D9A64 80143364 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* D9A68 80143368 A4800024 */  sh        $zero, 0x24($a0)
/* D9A6C 8014336C A4830028 */  sh        $v1, 0x28($a0)
/* D9A70 80143370 A480002A */  sh        $zero, 0x2A($a0)
/* D9A74 80143374 A4860030 */  sh        $a2, 0x30($a0)
/* D9A78 80143378 A4800034 */  sh        $zero, 0x34($a0)
/* D9A7C 8014337C A4800038 */  sh        $zero, 0x38($a0)
/* D9A80 80143380 A480003A */  sh        $zero, 0x3A($a0)
/* D9A84 80143384 AD8B0000 */  sw        $t3, 0x0($t4)
/* D9A88 80143388 AD020000 */  sw        $v0, 0x0($t0)
/* D9A8C 8014338C 25620008 */  addiu     $v0, $t3, 0x8
/* D9A90 80143390 AD000004 */  sw        $zero, 0x4($t0)
/* D9A94 80143394 AD820000 */  sw        $v0, 0x0($t4)
/* D9A98 80143398 25620010 */  addiu     $v0, $t3, 0x10
/* D9A9C 8014339C AD6A0000 */  sw        $t2, 0x0($t3)
/* D9AA0 801433A0 AD690004 */  sw        $t1, 0x4($t3)
/* D9AA4 801433A4 AD820000 */  sw        $v0, 0x0($t4)
/* D9AA8 801433A8 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* D9AAC 801433AC AD620008 */  sw        $v0, 0x8($t3)
/* D9AB0 801433B0 92E2004B */  lbu       $v0, 0x4B($s7)
/* D9AB4 801433B4 92E3004C */  lbu       $v1, 0x4C($s7)
/* D9AB8 801433B8 92E4004D */  lbu       $a0, 0x4D($s7)
/* D9ABC 801433BC 00021600 */  sll       $v0, $v0, 24
/* D9AC0 801433C0 00031C00 */  sll       $v1, $v1, 16
/* D9AC4 801433C4 00431025 */  or        $v0, $v0, $v1
/* D9AC8 801433C8 00042200 */  sll       $a0, $a0, 8
/* D9ACC 801433CC 92E3004A */  lbu       $v1, 0x4A($s7)
/* D9AD0 801433D0 00441025 */  or        $v0, $v0, $a0
/* D9AD4 801433D4 00431025 */  or        $v0, $v0, $v1
/* D9AD8 801433D8 AD62000C */  sw        $v0, 0xC($t3)
/* D9ADC 801433DC 8EE30000 */  lw        $v1, 0x0($s7)
/* D9AE0 801433E0 30620020 */  andi      $v0, $v1, 0x20
/* D9AE4 801433E4 1440000C */  bnez      $v0, .L80143418
/* D9AE8 801433E8 3C020080 */   lui      $v0, (0x800000 >> 16)
/* D9AEC 801433EC 00621024 */  and       $v0, $v1, $v0
/* D9AF0 801433F0 14400005 */  bnez      $v0, .L80143408
/* D9AF4 801433F4 3C04E200 */   lui      $a0, (0xE200001C >> 16)
/* D9AF8 801433F8 3484001C */  ori       $a0, $a0, (0xE200001C & 0xFFFF)
/* D9AFC 801433FC 3C030F0A */  lui       $v1, (0xF0A7008 >> 16)
/* D9B00 80143400 08050D10 */  j         .L80143440
/* D9B04 80143404 34637008 */   ori      $v1, $v1, (0xF0A7008 & 0xFFFF)
.L80143408:
/* D9B08 80143408 3484001C */  ori       $a0, $a0, (0xE200001C & 0xFFFF)
/* D9B0C 8014340C 3C030055 */  lui       $v1, (0x553048 >> 16)
/* D9B10 80143410 08050D10 */  j         .L80143440
/* D9B14 80143414 34633048 */   ori      $v1, $v1, (0x553048 & 0xFFFF)
.L80143418:
/* D9B18 80143418 00621024 */  and       $v0, $v1, $v0
/* D9B1C 8014341C 14400005 */  bnez      $v0, .L80143434
/* D9B20 80143420 3C04E200 */   lui      $a0, (0xE200001C >> 16)
/* D9B24 80143424 3484001C */  ori       $a0, $a0, (0xE200001C & 0xFFFF)
/* D9B28 80143428 3C030050 */  lui       $v1, (0x504340 >> 16)
/* D9B2C 8014342C 08050D10 */  j         .L80143440
/* D9B30 80143430 34634340 */   ori      $v1, $v1, (0x504340 & 0xFFFF)
.L80143434:
/* D9B34 80143434 3484001C */  ori       $a0, $a0, (0xE200001C & 0xFFFF)
/* D9B38 80143438 3C030050 */  lui       $v1, (0x504348 >> 16)
/* D9B3C 8014343C 34634348 */  ori       $v1, $v1, (0x504348 & 0xFFFF)
.L80143440:
/* D9B40 80143440 25620018 */  addiu     $v0, $t3, 0x18
/* D9B44 80143444 AD820000 */  sw        $v0, 0x0($t4)
/* D9B48 80143448 AD640010 */  sw        $a0, 0x10($t3)
/* D9B4C 8014344C AD630014 */  sw        $v1, 0x14($t3)
/* D9B50 80143450 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* D9B54 80143454 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* D9B58 80143458 02C0382D */  daddu     $a3, $s6, $zero
/* D9B5C 8014345C 3C02FD70 */  lui       $v0, (0xFD700000 >> 16)
/* D9B60 80143460 8C660000 */  lw        $a2, 0x0($v1)
/* D9B64 80143464 3C080700 */  lui       $t0, (0x7000000 >> 16)
/* D9B68 80143468 00C0282D */  daddu     $a1, $a2, $zero
/* D9B6C 8014346C 24C60008 */  addiu     $a2, $a2, 0x8
/* D9B70 80143470 AC660000 */  sw        $a2, 0x0($v1)
/* D9B74 80143474 ACA20000 */  sw        $v0, 0x0($a1)
/* D9B78 80143478 24C20008 */  addiu     $v0, $a2, 0x8
/* D9B7C 8014347C AC620000 */  sw        $v0, 0x0($v1)
/* D9B80 80143480 24C20010 */  addiu     $v0, $a2, 0x10
/* D9B84 80143484 AC620000 */  sw        $v0, 0x0($v1)
/* D9B88 80143488 8EE40010 */  lw        $a0, 0x10($s7)
/* D9B8C 8014348C 24C20018 */  addiu     $v0, $a2, 0x18
/* D9B90 80143490 AC620000 */  sw        $v0, 0x0($v1)
/* D9B94 80143494 3C02F570 */  lui       $v0, (0xF5700000 >> 16)
/* D9B98 80143498 ACA40004 */  sw        $a0, 0x4($a1)
/* D9B9C 8014349C ACC20000 */  sw        $v0, 0x0($a2)
/* D9BA0 801434A0 3C02E600 */  lui       $v0, (0xE6000000 >> 16)
/* D9BA4 801434A4 ACC20008 */  sw        $v0, 0x8($a2)
/* D9BA8 801434A8 3C02F300 */  lui       $v0, (0xF3000000 >> 16)
/* D9BAC 801434AC ACC80004 */  sw        $t0, 0x4($a2)
/* D9BB0 801434B0 ACC0000C */  sw        $zero, 0xC($a2)
/* D9BB4 801434B4 06C10002 */  bgez      $s6, .L801434C0
/* D9BB8 801434B8 ACC20010 */   sw       $v0, 0x10($a2)
/* D9BBC 801434BC 26C70007 */  addiu     $a3, $s6, 0x7
.L801434C0:
/* D9BC0 801434C0 000728C3 */  sra       $a1, $a3, 3
/* D9BC4 801434C4 18A00002 */  blez      $a1, .L801434D0
/* D9BC8 801434C8 24030800 */   addiu    $v1, $zero, 0x800
/* D9BCC 801434CC 24A307FF */  addiu     $v1, $a1, 0x7FF
.L801434D0:
/* D9BD0 801434D0 8FAD02B8 */  lw        $t5, 0x2B8($sp)
/* D9BD4 801434D4 02CD0018 */  mult      $s6, $t5
/* D9BD8 801434D8 00007012 */  mflo      $t6
/* D9BDC 801434DC 25C20001 */  addiu     $v0, $t6, 0x1
/* D9BE0 801434E0 00021043 */  sra       $v0, $v0, 1
/* D9BE4 801434E4 2444FFFF */  addiu     $a0, $v0, -0x1
/* D9BE8 801434E8 28820800 */  slti      $v0, $a0, 0x800
/* D9BEC 801434EC 50400001 */  beql      $v0, $zero, .L801434F4
/* D9BF0 801434F0 240407FF */   addiu    $a0, $zero, 0x7FF
.L801434F4:
/* D9BF4 801434F4 30820FFF */  andi      $v0, $a0, 0xFFF
/* D9BF8 801434F8 00021300 */  sll       $v0, $v0, 12
/* D9BFC 801434FC 18A0000D */  blez      $a1, .L80143534
/* D9C00 80143500 00482025 */   or       $a0, $v0, $t0
/* D9C04 80143504 14A00002 */  bnez      $a1, .L80143510
/* D9C08 80143508 0065001A */   div      $zero, $v1, $a1
/* D9C0C 8014350C 0007000D */  break     7
.L80143510:
/* D9C10 80143510 2401FFFF */  addiu     $at, $zero, -0x1
/* D9C14 80143514 14A10004 */  bne       $a1, $at, .L80143528
/* D9C18 80143518 3C018000 */   lui      $at, (0x80000000 >> 16)
/* D9C1C 8014351C 14610002 */  bne       $v1, $at, .L80143528
/* D9C20 80143520 00000000 */   nop
/* D9C24 80143524 0006000D */  break     6
.L80143528:
/* D9C28 80143528 00001012 */  mflo      $v0
/* D9C2C 8014352C 08050D4E */  j         .L80143538
/* D9C30 80143530 30420FFF */   andi     $v0, $v0, 0xFFF
.L80143534:
/* D9C34 80143534 30620FFF */  andi      $v0, $v1, 0xFFF
.L80143538:
/* D9C38 80143538 00821025 */  or        $v0, $a0, $v0
/* D9C3C 8014353C ACC20014 */  sw        $v0, 0x14($a2)
/* D9C40 80143540 3C06E300 */  lui       $a2, (0xE3001001 >> 16)
/* D9C44 80143544 34C61001 */  ori       $a2, $a2, (0xE3001001 & 0xFFFF)
/* D9C48 80143548 3C070100 */  lui       $a3, (0x1004008 >> 16)
/* D9C4C 8014354C 34E74008 */  ori       $a3, $a3, (0x1004008 & 0xFFFF)
/* D9C50 80143550 3C080500 */  lui       $t0, (0x5000204 >> 16)
/* D9C54 80143554 35080204 */  ori       $t0, $t0, (0x5000204 & 0xFFFF)
/* D9C58 80143558 3C090500 */  lui       $t1, (0x5000406 >> 16)
/* D9C5C 8014355C 3C05800A */  lui       $a1, %hi(gMainGfxPos)
/* D9C60 80143560 24A5A66C */  addiu     $a1, $a1, %lo(gMainGfxPos)
/* D9C64 80143564 35290406 */  ori       $t1, $t1, (0x5000406 & 0xFFFF)
/* D9C68 80143568 8CA40000 */  lw        $a0, 0x0($a1)
/* D9C6C 8014356C 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* D9C70 80143570 0080182D */  daddu     $v1, $a0, $zero
/* D9C74 80143574 24840008 */  addiu     $a0, $a0, 0x8
/* D9C78 80143578 ACA40000 */  sw        $a0, 0x0($a1)
/* D9C7C 8014357C AC620000 */  sw        $v0, 0x0($v1)
/* D9C80 80143580 24820008 */  addiu     $v0, $a0, 0x8
/* D9C84 80143584 AC600004 */  sw        $zero, 0x4($v1)
/* D9C88 80143588 ACA20000 */  sw        $v0, 0x0($a1)
/* D9C8C 8014358C 26C20007 */  addiu     $v0, $s6, 0x7
/* D9C90 80143590 000210C3 */  sra       $v0, $v0, 3
/* D9C94 80143594 304201FF */  andi      $v0, $v0, 0x1FF
/* D9C98 80143598 00021240 */  sll       $v0, $v0, 9
/* D9C9C 8014359C 3C03F568 */  lui       $v1, (0xF5680000 >> 16)
/* D9CA0 801435A0 00431025 */  or        $v0, $v0, $v1
/* D9CA4 801435A4 AC820000 */  sw        $v0, 0x0($a0)
/* D9CA8 801435A8 24820010 */  addiu     $v0, $a0, 0x10
/* D9CAC 801435AC AC800004 */  sw        $zero, 0x4($a0)
/* D9CB0 801435B0 ACA20000 */  sw        $v0, 0x0($a1)
/* D9CB4 801435B4 3C02F200 */  lui       $v0, (0xF2000000 >> 16)
/* D9CB8 801435B8 26C3FFFF */  addiu     $v1, $s6, -0x1
/* D9CBC 801435BC 00031880 */  sll       $v1, $v1, 2
/* D9CC0 801435C0 30630FFF */  andi      $v1, $v1, 0xFFF
/* D9CC4 801435C4 AC820008 */  sw        $v0, 0x8($a0)
/* D9CC8 801435C8 8FAD02B8 */  lw        $t5, 0x2B8($sp)
/* D9CCC 801435CC 00031B00 */  sll       $v1, $v1, 12
/* D9CD0 801435D0 25A2FFFF */  addiu     $v0, $t5, -0x1
/* D9CD4 801435D4 00021080 */  sll       $v0, $v0, 2
/* D9CD8 801435D8 30420FFF */  andi      $v0, $v0, 0xFFF
/* D9CDC 801435DC 00621825 */  or        $v1, $v1, $v0
/* D9CE0 801435E0 24820018 */  addiu     $v0, $a0, 0x18
/* D9CE4 801435E4 AC83000C */  sw        $v1, 0xC($a0)
/* D9CE8 801435E8 ACA20000 */  sw        $v0, 0x0($a1)
/* D9CEC 801435EC 3C028016 */  lui       $v0, %hi(D_80159180)
/* D9CF0 801435F0 8C429180 */  lw        $v0, %lo(D_80159180)($v0)
/* D9CF4 801435F4 24830020 */  addiu     $v1, $a0, 0x20
/* D9CF8 801435F8 AC860010 */  sw        $a2, 0x10($a0)
/* D9CFC 801435FC AC800014 */  sw        $zero, 0x14($a0)
/* D9D00 80143600 ACA30000 */  sw        $v1, 0x0($a1)
/* D9D04 80143604 AC870018 */  sw        $a3, 0x18($a0)
/* D9D08 80143608 00021180 */  sll       $v0, $v0, 6
/* D9D0C 8014360C 24420030 */  addiu     $v0, $v0, 0x30
/* D9D10 80143610 03C21021 */  addu      $v0, $fp, $v0
/* D9D14 80143614 AC82001C */  sw        $v0, 0x1C($a0)
/* D9D18 80143618 24820028 */  addiu     $v0, $a0, 0x28
/* D9D1C 8014361C ACA20000 */  sw        $v0, 0x0($a1)
/* D9D20 80143620 24820030 */  addiu     $v0, $a0, 0x30
/* D9D24 80143624 AC880020 */  sw        $t0, 0x20($a0)
/* D9D28 80143628 AC800024 */  sw        $zero, 0x24($a0)
/* D9D2C 8014362C ACA20000 */  sw        $v0, 0x0($a1)
/* D9D30 80143630 AC890028 */  sw        $t1, 0x28($a0)
/* D9D34 80143634 AC80002C */  sw        $zero, 0x2C($a0)
/* D9D38 80143638 3C03D838 */  lui       $v1, (0xD8380002 >> 16)
.L8014363C:
/* D9D3C 8014363C 3C04800A */  lui       $a0, %hi(gMainGfxPos)
/* D9D40 80143640 2484A66C */  addiu     $a0, $a0, %lo(gMainGfxPos)
/* D9D44 80143644 8C820000 */  lw        $v0, 0x0($a0)
/* D9D48 80143648 34630002 */  ori       $v1, $v1, (0xD8380002 & 0xFFFF)
/* D9D4C 8014364C 0040282D */  daddu     $a1, $v0, $zero
/* D9D50 80143650 24420008 */  addiu     $v0, $v0, 0x8
/* D9D54 80143654 AC820000 */  sw        $v0, 0x0($a0)
/* D9D58 80143658 ACA30000 */  sw        $v1, 0x0($a1)
/* D9D5C 8014365C 24030040 */  addiu     $v1, $zero, 0x40
/* D9D60 80143660 ACA30004 */  sw        $v1, 0x4($a1)
/* D9D64 80143664 24430008 */  addiu     $v1, $v0, 0x8
/* D9D68 80143668 AC830000 */  sw        $v1, 0x0($a0)
/* D9D6C 8014366C 3C03E700 */  lui       $v1, (0xE7000000 >> 16)
/* D9D70 80143670 AC430000 */  sw        $v1, 0x0($v0)
/* D9D74 80143674 AC400004 */  sw        $zero, 0x4($v0)
/* D9D78 80143678 8FBF02EC */  lw        $ra, 0x2EC($sp)
/* D9D7C 8014367C 8FBE02E8 */  lw        $fp, 0x2E8($sp)
/* D9D80 80143680 8FB702E4 */  lw        $s7, 0x2E4($sp)
/* D9D84 80143684 8FB602E0 */  lw        $s6, 0x2E0($sp)
/* D9D88 80143688 8FB502DC */  lw        $s5, 0x2DC($sp)
/* D9D8C 8014368C 8FB402D8 */  lw        $s4, 0x2D8($sp)
/* D9D90 80143690 8FB302D4 */  lw        $s3, 0x2D4($sp)
/* D9D94 80143694 8FB202D0 */  lw        $s2, 0x2D0($sp)
/* D9D98 80143698 8FB102CC */  lw        $s1, 0x2CC($sp)
/* D9D9C 8014369C 8FB002C8 */  lw        $s0, 0x2C8($sp)
/* D9DA0 801436A0 D7B80300 */  ldc1      $f24, 0x300($sp)
/* D9DA4 801436A4 D7B602F8 */  ldc1      $f22, 0x2F8($sp)
/* D9DA8 801436A8 D7B402F0 */  ldc1      $f20, 0x2F0($sp)
/* D9DAC 801436AC 03E00008 */  jr        $ra
/* D9DB0 801436B0 27BD0308 */   addiu    $sp, $sp, 0x308

### DECOMPILED C INSTRUCTIONS:

void render_hud_elements_backUI(void) {
    s32 i, count, j;
    s32 sortedElements[ARRAY_COUNT(*gHudElements)];
    s32 el1, el2;
    s32 texSizeX, texSizeY;
    s32 drawSizeX, drawSizeY, offsetX, offsetY;
    HudElement* hudElement;

    D_80159180++;
    if (D_80159180 > 2) {
        D_80159180 = 0;
    }
    gSPDisplayList(gMainGfxPos++, VIRTUAL_TO_PHYSICAL(gHudElementsDLBackUI));

    count = 0;
    for (i = 0; i < ARRAY_COUNT(*gHudElements); i++) {
        hudElement = (*gHudElements)[i];
        if (hudElement != NULL) {
            s32 flags = hudElement->flags;
            if (flags && !(flags & HUD_ELEMENT_FLAG_DISABLED)) {
                if (!(flags & (HUD_ELEMENT_FLAG_80 | HUD_ELEMENT_FLAG_TRANSFORM | HUD_ELEMENT_FLAG_200000 | HUD_ELEMENT_FLAG_10000000 | HUD_ELEMENT_FLAG_40000000))) {
                    if (!(flags & HUD_ELEMENT_FLAG_FRONTUI) && hudElement->drawSizePreset >= 0) {
                        sortedElements[count++] = i;
                    }
                }
            }
        }
    }

    for (i = 0; i < count - 1; i++) {
        for (j = i + 1; j < count; j++) {
            el1 = sortedElements[i];
            el2 = sortedElements[j];
            if ((*gHudElements)[el1]->worldPosOffset.z < (*gHudElements)[el2]->worldPosOffset.z) {
                sortedElements[i] = el2;
                sortedElements[j] = el1;
            }
        }
    }

    for (i = 0; i < count; i++) {
        hudElement = (*gHudElements)[sortedElements[i]];

        if (hudElement->readPos == NULL) {
            break;
        }

        if (!(hudElement->flags & HUD_ELEMENT_FLAG_FIXEDSCALE)) {
            if (!(hudElement->flags & HUD_ELEMENT_FLAG_CUSTOM_SIZE)) {
                texSizeX = gHudElementSizes[hudElement->tileSizePreset].width;
                texSizeY = gHudElementSizes[hudElement->tileSizePreset].height;
            } else {
                texSizeX = hudElement->customImageSize.x;
                texSizeY = hudElement->customImageSize.y;
            }

            if (!(hudElement->flags & HUD_ELEMENT_FLAG_SCALED)) {
                if (!(hudElement->flags & HUD_ELEMENT_FLAG_CUSTOM_SIZE)) {
                    drawSizeX = gHudElementSizes[hudElement->drawSizePreset].width;
                    drawSizeY = gHudElementSizes[hudElement->drawSizePreset].height;
                    offsetX = -drawSizeX / 2;
                    offsetY = -drawSizeY / 2;
                } else {
                    // TODO find better match
                    do {
                    drawSizeX = hudElement->customDrawSize.x;
                    drawSizeY = hudElement->customDrawSize.y;
                    offsetX = -drawSizeX / 2;
                    } while (0);
                    offsetY = -drawSizeY / 2;

                }
            } else {
                drawSizeX = hudElement->sizeX;
                drawSizeY = hudElement->sizeY;
                offsetX = -drawSizeX / 2;
                offsetY = -drawSizeY / 2;
            }

            if (!(hudElement->flags & HUD_ELEMENT_FLAG_REPEATED)) {
                if (hudElement->flags & HUD_ELEMENT_FLAG_DROP_SHADOW) {
                    hud_element_draw_rect(hudElement, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, TRUE, TRUE);
                }
                hud_element_draw_rect(hudElement, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, TRUE, FALSE);
            } else {
                if (hudElement->flags & HUD_ELEMENT_FLAG_DROP_SHADOW) {
                    hud_element_draw_rect(hudElement, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, TRUE);
                }
                hud_element_draw_rect(hudElement, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, FALSE);
            }
        } else {
            f32 xScaled, yScaled;

            if (!(hudElement->flags & HUD_ELEMENT_FLAG_CUSTOM_SIZE)) {
                texSizeX = gHudElementSizes[hudElement->tileSizePreset].width;
                texSizeY = gHudElementSizes[hudElement->tileSizePreset].height;
            } else {
                texSizeX = hudElement->customImageSize.x;
                texSizeY = hudElement->customImageSize.y;
            }

            drawSizeX = hudElement->unkImgScale[0];
            drawSizeY = hudElement->unkImgScale[1];

            offsetX = -hudElement->unkImgScale[0] / 2;
            offsetY = -hudElement->unkImgScale[1] / 2;

            xScaled = (f32) drawSizeX / (f32) texSizeX;
            yScaled = (f32) drawSizeY / (f32) texSizeY;

            xScaled = 1.0f / xScaled;
            yScaled = 1.0f / yScaled;

            hudElement->widthScale = X10(xScaled);
            hudElement->heightScale = X10(yScaled);

            if (hudElement->flags & HUD_ELEMENT_FLAG_DROP_SHADOW) {
                hud_element_draw_rect(hudElement, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, TRUE);
            }
            hud_element_draw_rect(hudElement, texSizeX, texSizeY, drawSizeX, drawSizeY, offsetX, offsetY, FALSE, FALSE);
        }
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel parasol_get_npc
/* E27F40 802B6000 27BDFFB0 */  addiu     $sp, $sp, -0x50
/* E27F44 802B6004 AFB00030 */  sw        $s0, 0x30($sp)
/* E27F48 802B6008 3C108011 */  lui       $s0, %hi(gPlayerStatus)
/* E27F4C 802B600C 2610EFC8 */  addiu     $s0, $s0, %lo(gPlayerStatus)
/* E27F50 802B6010 AFBF003C */  sw        $ra, 0x3C($sp)
/* E27F54 802B6014 AFB20038 */  sw        $s2, 0x38($sp)
.L802B6018:
/* E27F58 802B6018 AFB10034 */  sw        $s1, 0x34($sp)
/* E27F5C 802B601C F7B60048 */  sdc1      $f22, 0x48($sp)
/* E27F60 802B6020 F7B40040 */  sdc1      $f20, 0x40($sp)
/* E27F64 802B6024 8E040000 */  lw        $a0, 0x0($s0)
/* E27F68 802B6028 0481002F */  bgez      $a0, .L802B60E8
/* E27F6C 802B602C 3C027FFF */   lui      $v0, (0x7FFFFFFF >> 16)
/* E27F70 802B6030 3442FFFF */  ori       $v0, $v0, (0x7FFFFFFF & 0xFFFF)
/* E27F74 802B6034 3C030080 */  lui       $v1, (0x800008 >> 16)
/* E27F78 802B6038 34630008 */  ori       $v1, $v1, (0x800008 & 0xFFFF)
/* E27F7C 802B603C 00821024 */  and       $v0, $a0, $v0
.L802B6040:
/* E27F80 802B6040 00431025 */  or        $v0, $v0, $v1
.L802B6044:
/* E27F84 802B6044 8E030004 */  lw        $v1, 0x4($s0)
glabel action_hammer_play_hit_fx
/* E27F88 802B6048 AE020000 */  sw        $v0, 0x0($s0)
.L802B604C:
/* E27F8C 802B604C 34420800 */  ori       $v0, $v0, 0x800
.L802B6050:
/* E27F90 802B6050 AE020000 */  sw        $v0, 0x0($s0)
/* E27F94 802B6054 34630004 */  ori       $v1, $v1, 0x4
.L802B6058:
/* E27F98 802B6058 AE030004 */  sw        $v1, 0x4($s0)
/* E27F9C 802B605C 820300BF */  lb        $v1, 0xBF($s0)
glabel action_update_sliding
/* E27FA0 802B6060 24020001 */  addiu     $v0, $zero, 0x1
/* E27FA4 802B6064 54620005 */  bnel      $v1, $v0, .L802B607C
.L802B6068:
/* E27FA8 802B6068 A20000B6 */   sb       $zero, 0xB6($s0)
/* E27FAC 802B606C 24020014 */  addiu     $v0, $zero, 0x14
/* E27FB0 802B6070 A20200B6 */  sb        $v0, 0xB6($s0)
.L802B6074:
/* E27FB4 802B6074 24020002 */  addiu     $v0, $zero, 0x2
/* E27FB8 802B6078 A6020008 */  sh        $v0, 0x8($s0)
glabel .L802B607C
/* E27FBC 802B607C C600002C */  lwc1      $f0, 0x2C($s0)
.L802B6080:
/* E27FC0 802B6080 3C03800B */  lui       $v1, %hi(gCameras)
/* E27FC4 802B6084 24631D80 */  addiu     $v1, $v1, %lo(gCameras)
/* E27FC8 802B6088 AE000054 */  sw        $zero, 0x54($s0)
.L802B608C:
/* E27FCC 802B608C 94620002 */  lhu       $v0, 0x2($v1)
.L802B6090:
/* E27FD0 802B6090 3C01802B */  lui       $at, %hi(D_802B68B0)
.L802B6094:
/* E27FD4 802B6094 AC2068B0 */  sw        $zero, %lo(D_802B68B0)($at)
/* E27FD8 802B6098 3C01802B */  lui       $at, %hi(D_802B68BC)
glabel action_update_state_23
/* E27FDC 802B609C E42068BC */  swc1      $f0, %lo(D_802B68BC)($at)
/* E27FE0 802B60A0 3C0142B4 */  lui       $at, (0x42B40000 >> 16)
glabel action_update_use_spinning_flower
/* E27FE4 802B60A4 44810000 */  mtc1      $at, $f0
.L802B60A8:
/* E27FE8 802B60A8 34420003 */  ori       $v0, $v0, 0x3
.L802B60AC:
/* E27FEC 802B60AC A4620002 */  sh        $v0, 0x2($v1)
/* E27FF0 802B60B0 3C01802B */  lui       $at, %hi(D_802B68B4)
glabel action_update_jump
/* E27FF4 802B60B4 E42068B4 */  swc1      $f0, %lo(D_802B68B4)($at)
/* E27FF8 802B60B8 0C03A8CD */  jal       subtract_hp
/* E27FFC 802B60BC 24040001 */   addiu    $a0, $zero, 0x1
/* E28000 802B60C0 0C03A5D8 */  jal       open_status_bar_long
/* E28004 802B60C4 00000000 */   nop
.L802B60C8:
/* E28008 802B60C8 240400E8 */  addiu     $a0, $zero, 0xE8
/* E2800C 802B60CC 3C03800A */  lui       $v1, %hi(gOverrideFlags)
glabel .L802B60D0
/* E28010 802B60D0 2463A650 */  addiu     $v1, $v1, %lo(gOverrideFlags)
.L802B60D4:
/* E28014 802B60D4 8C620000 */  lw        $v0, 0x0($v1)
/* E28018 802B60D8 0000282D */  daddu     $a1, $zero, $zero
/* E2801C 802B60DC 34420040 */  ori       $v0, $v0, 0x40
/* E28020 802B60E0 0C052736 */  jal       sfx_play_sound_at_player
/* E28024 802B60E4 AC620000 */   sw       $v0, 0x0($v1)
.L802B60E8:
/* E28028 802B60E8 820300B6 */  lb        $v1, 0xB6($s0)
.L802B60EC:
/* E2802C 802B60EC 2C620016 */  sltiu     $v0, $v1, 0x16
.L802B60F0:
/* E28030 802B60F0 104001C5 */  beqz      $v0, .L802B6808
glabel .L802B60F4
/* E28034 802B60F4 00031080 */   sll      $v0, $v1, 2
/* E28038 802B60F8 3C01802B */  lui       $at, %hi(jtbl_802B6850)
/* E2803C 802B60FC 00220821 */  addu      $at, $at, $v0
.L802B6100:
/* E28040 802B6100 8C226850 */  lw        $v0, %lo(jtbl_802B6850)($at)
.L802B6104:
/* E28044 802B6104 00400008 */  jr        $v0
.L802B6108:
/* E28048 802B6108 00000000 */   nop
glabel .L802B610C
/* E2804C 802B610C 96020008 */  lhu       $v0, 0x8($s0)
.L802B6110:
/* E28050 802B6110 2403FFFF */  addiu     $v1, $zero, -0x1
/* E28054 802B6114 2442FFFF */  addiu     $v0, $v0, -0x1
.L802B6118:
/* E28058 802B6118 A6020008 */  sh        $v0, 0x8($s0)
/* E2805C 802B611C 00021400 */  sll       $v0, $v0, 16
glabel action_update_parasol
/* E28060 802B6120 00021403 */  sra       $v0, $v0, 16
.L802B6124:
/* E28064 802B6124 504301B8 */  beql      $v0, $v1, .L802B6808
.L802B6128:
/* E28068 802B6128 A20000B6 */   sb       $zero, 0xB6($s0)
/* E2806C 802B612C 080ADA02 */  j         .L802B6808
/* E28070 802B6130 00000000 */   nop
glabel .L802B6134
/* E28074 802B6134 96020008 */  lhu       $v0, 0x8($s0)
/* E28078 802B6138 2403FFFF */  addiu     $v1, $zero, -0x1
.L802B613C:
/* E2807C 802B613C 2442FFFF */  addiu     $v0, $v0, -0x1
.L802B6140:
/* E28080 802B6140 A6020008 */  sh        $v0, 0x8($s0)
.L802B6144:
/* E28084 802B6144 00021400 */  sll       $v0, $v0, 16
/* E28088 802B6148 00021403 */  sra       $v0, $v0, 16
.L802B614C:
/* E2808C 802B614C 50430001 */  beql      $v0, $v1, .L802B6154
.L802B6150:
/* E28090 802B6150 A20000B6 */   sb       $zero, 0xB6($s0)
.L802B6154:
/* E28094 802B6154 C600002C */  lwc1      $f0, 0x2C($s0)
.L802B6158:
/* E28098 802B6158 3C014080 */  lui       $at, (0x40800000 >> 16)
.L802B615C:
/* E2809C 802B615C 44811000 */  mtc1      $at, $f2
/* E280A0 802B6160 00000000 */  nop
.L802B6164:
/* E280A4 802B6164 46020001 */  sub.s     $f0, $f0, $f2
.L802B6168:
/* E280A8 802B6168 080ADA02 */  j         .L802B6808
/* E280AC 802B616C E600002C */   swc1     $f0, 0x2C($s0)
glabel .L802B6170
/* E280B0 802B6170 820200BF */  lb        $v0, 0xBF($s0)
glabel .L802B6174
/* E280B4 802B6174 24110001 */  addiu     $s1, $zero, 0x1
/* E280B8 802B6178 1451000C */  bne       $v0, $s1, .L802B61AC
.L802B617C:
/* E280BC 802B617C 3C040008 */   lui      $a0, (0x80002 >> 16)
.L802B6180:
/* E280C0 802B6180 0000202D */  daddu     $a0, $zero, $zero
glabel .L802B6184
/* E280C4 802B6184 8E050028 */  lw        $a1, 0x28($s0)
.L802B6188:
/* E280C8 802B6188 8E06002C */  lw        $a2, 0x2C($s0)
.L802B618C:
/* E280CC 802B618C 8E070030 */  lw        $a3, 0x30($s0)
.L802B6190:
/* E280D0 802B6190 3C013F80 */  lui       $at, (0x3F800000 >> 16)
.L802B6194:
/* E280D4 802B6194 44810000 */  mtc1      $at, $f0
glabel func_802B6198
/* E280D8 802B6198 24020028 */  addiu     $v0, $zero, 0x28
/* E280DC 802B619C AFA20014 */  sw        $v0, 0x14($sp)
.L802B61A0:
/* E280E0 802B61A0 0C01C1CC */  jal       fx_smoke_burst
.L802B61A4:
/* E280E4 802B61A4 E7A00010 */   swc1     $f0, 0x10($sp)
.L802B61A8:
/* E280E8 802B61A8 3C040008 */  lui       $a0, (0x80002 >> 16)
.L802B61AC:
/* E280EC 802B61AC 0C037FDE */  jal       suggest_player_anim_always_forward
.L802B61B0:
/* E280F0 802B61B0 34840002 */   ori      $a0, $a0, (0x80002 & 0xFFFF)
.L802B61B4:
/* E280F4 802B61B4 3C0141A0 */  lui       $at, (0x41A00000 >> 16)
/* E280F8 802B61B8 44810000 */  mtc1      $at, $f0
/* E280FC 802B61BC 3C01437A */  lui       $at, (0x437A0000 >> 16)
glabel func_802B61C0
/* E28100 802B61C0 44811000 */  mtc1      $at, $f2
/* E28104 802B61C4 3C01802B */  lui       $at, %hi(D_802B68BC)
.L802B61C8:
/* E28108 802B61C8 C42468BC */  lwc1      $f4, %lo(D_802B68BC)($at)
.L802B61CC:
/* E2810C 802B61CC C6060028 */  lwc1      $f6, 0x28($s0)
/* E28110 802B61D0 C6080030 */  lwc1      $f8, 0x30($s0)
.L802B61D4:
/* E28114 802B61D4 C60A002C */  lwc1      $f10, 0x2C($s0)
.L802B61D8:
/* E28118 802B61D8 8E030000 */  lw        $v1, 0x0($s0)
.L802B61DC:
/* E2811C 802B61DC 24020002 */  addiu     $v0, $zero, 0x2
/* E28120 802B61E0 AE000074 */  sw        $zero, 0x74($s0)
glabel func_802B61E4
/* E28124 802B61E4 A60000C0 */  sh        $zero, 0xC0($s0)
.L802B61E8:
/* E28128 802B61E8 A60000C2 */  sh        $zero, 0xC2($s0)
.L802B61EC:
/* E2812C 802B61EC A20200B6 */  sb        $v0, 0xB6($s0)
.L802B61F0:
/* E28130 802B61F0 A6110008 */  sh        $s1, 0x8($s0)
.L802B61F4:
/* E28134 802B61F4 34630002 */  ori       $v1, $v1, 0x2
.L802B61F8:
/* E28138 802B61F8 E6000070 */  swc1      $f0, 0x70($s0)
.L802B61FC:
/* E2813C 802B61FC E6020078 */  swc1      $f2, 0x78($s0)
.L802B6200:
/* E28140 802B6200 E604007C */  swc1      $f4, 0x7C($s0)
.L802B6204:
/* E28144 802B6204 E606003C */  swc1      $f6, 0x3C($s0)
glabel .L802B6208
/* E28148 802B6208 E6080040 */  swc1      $f8, 0x40($s0)
/* E2814C 802B620C E60A004C */  swc1      $f10, 0x4C($s0)
.L802B6210:
/* E28150 802B6210 080ADA02 */  j         .L802B6808
.L802B6214:
/* E28154 802B6214 AE030000 */   sw       $v1, 0x0($s0)
glabel .L802B6218
/* E28158 802B6218 96020008 */  lhu       $v0, 0x8($s0)
/* E2815C 802B621C 2442FFFF */  addiu     $v0, $v0, -0x1
.L802B6220:
/* E28160 802B6220 A6020008 */  sh        $v0, 0x8($s0)
.L802B6224:
/* E28164 802B6224 00021400 */  sll       $v0, $v0, 16
glabel .L802B6228
/* E28168 802B6228 1C400177 */  bgtz      $v0, .L802B6808
.L802B622C:
/* E2816C 802B622C 00000000 */   nop
glabel action_update_step_up_peach
/* E28170 802B6230 920200B6 */  lbu       $v0, 0xB6($s0)
/* E28174 802B6234 080AD9ED */  j         .L802B67B4
glabel .L802B6238
/* E28178 802B6238 24420001 */   addiu    $v0, $v0, 0x1
glabel .L802B623C
/* E2817C 802B623C 820300BF */  lb        $v1, 0xBF($s0)
glabel .L802B6240
/* E28180 802B6240 24020001 */  addiu     $v0, $zero, 0x1
glabel .L802B6244
/* E28184 802B6244 1462000F */  bne       $v1, $v0, .L802B6284
glabel .L802B6248
/* E28188 802B6248 00000000 */   nop
/* E2818C 802B624C 960200C0 */  lhu       $v0, 0xC0($s0)
glabel .L802B6250
/* E28190 802B6250 30420001 */  andi      $v0, $v0, 0x1
.L802B6254:
/* E28194 802B6254 1440000B */  bnez      $v0, .L802B6284
glabel .L802B6258
/* E28198 802B6258 0000202D */   daddu    $a0, $zero, $zero
.L802B625C:
/* E2819C 802B625C 8E050028 */  lw        $a1, 0x28($s0)
/* E281A0 802B6260 8E06002C */  lw        $a2, 0x2C($s0)
/* E281A4 802B6264 8E070030 */  lw        $a3, 0x30($s0)
.L802B6268:
/* E281A8 802B6268 3C013F33 */  lui       $at, (0x3F333333 >> 16)
.L802B626C:
/* E281AC 802B626C 34213333 */  ori       $at, $at, (0x3F333333 & 0xFFFF)
/* E281B0 802B6270 44810000 */  mtc1      $at, $f0
.L802B6274:
/* E281B4 802B6274 24020012 */  addiu     $v0, $zero, 0x12
glabel .L802B6278
/* E281B8 802B6278 AFA20014 */  sw        $v0, 0x14($sp)
/* E281BC 802B627C 0C01C1CC */  jal       fx_smoke_burst
.L802B6280:
/* E281C0 802B6280 E7A00010 */   swc1     $f0, 0x10($sp)
.L802B6284:
/* E281C4 802B6284 C600007C */  lwc1      $f0, 0x7C($s0)
glabel action_update_run
/* E281C8 802B6288 C6020078 */  lwc1      $f2, 0x78($s0)
/* E281CC 802B628C 46020080 */  add.s     $f2, $f0, $f2
.L802B6290:
/* E281D0 802B6290 C600002C */  lwc1      $f0, 0x2C($s0)
glabel func_802B6294
/* E281D4 802B6294 4602003C */  c.lt.s    $f0, $f2
glabel .L802B6298
/* E281D8 802B6298 00000000 */  nop
/* E281DC 802B629C 45000034 */  bc1f      .L802B6370
/* E281E0 802B62A0 27A50018 */   addiu    $a1, $sp, 0x18
glabel func_802B62A4
/* E281E4 802B62A4 3C12802B */  lui       $s2, %hi(D_802B68B4)
.L802B62A8:
/* E281E8 802B62A8 265268B4 */  addiu     $s2, $s2, %lo(D_802B68B4)
/* E281EC 802B62AC C64C0000 */  lwc1      $f12, 0x0($s2)
jtbl_802B62B0:
/* E281F0 802B62B0 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
.L802B62B4:
/* E281F4 802B62B4 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
glabel .L802B62B8
/* E281F8 802B62B8 4481B000 */  mtc1      $at, $f22
/* E281FC 802B62BC 00000000 */  nop
/* E28200 802B62C0 46166302 */  mul.s     $f12, $f12, $f22
/* E28204 802B62C4 00000000 */  nop
.L802B62C8:
/* E28208 802B62C8 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
glabel action_update_peach_land
/* E2820C 802B62CC 4481A000 */  mtc1      $at, $f20
Munchlesia_LaunchVelocity:
/* E28210 802B62D0 27A6001C */  addiu     $a2, $sp, 0x1C
Munchlesia_LateralVelocity:
/* E28214 802B62D4 0C00A82D */  jal       sin_cos_rad
Munchlesia_LaunchAccel:
/* E28218 802B62D8 46146303 */   div.s    $f12, $f12, $f20
Munchlesia_LaunchYaw:
/* E2821C 802B62DC C64C0000 */  lwc1      $f12, 0x0($s2)
D_802B62E0:
/* E28220 802B62E0 46166302 */  mul.s     $f12, $f12, $f22
.L802B62E4:
/* E28224 802B62E4 00000000 */  nop
/* E28228 802B62E8 0C00A85B */  jal       sin_rad
/* E2822C 802B62EC 46146303 */   div.s    $f12, $f12, $f20
/* E28230 802B62F0 3C014180 */  lui       $at, (0x41800000 >> 16)
/* E28234 802B62F4 44811000 */  mtc1      $at, $f2
glabel func_802B62F8
/* E28238 802B62F8 00000000 */  nop
.L802B62FC:
/* E2823C 802B62FC 46020002 */  mul.s     $f0, $f0, $f2
D_802B6300:
/* E28240 802B6300 00000000 */  nop
/* E28244 802B6304 3C01BF80 */  lui       $at, (0xBF800000 >> 16)
.L802B6308:
/* E28248 802B6308 44811000 */  mtc1      $at, $f2
.L802B630C:
/* E2824C 802B630C 3C11802B */  lui       $s1, %hi(D_802B68B0)
.L802B6310:
/* E28250 802B6310 263168B0 */  addiu     $s1, $s1, %lo(D_802B68B0)
/* E28254 802B6314 4602003C */  c.lt.s    $f0, $f2
/* E28258 802B6318 00000000 */  nop
glabel .L802B631C
/* E2825C 802B631C 45000002 */  bc1f      .L802B6328
.L802B6320:
/* E28260 802B6320 E6200000 */   swc1     $f0, 0x0($s1)
glabel .L802B6324
/* E28264 802B6324 E6220000 */  swc1      $f2, 0x0($s1)
.L802B6328:
/* E28268 802B6328 C604002C */  lwc1      $f4, 0x2C($s0)
glabel .L802B632C
/* E2826C 802B632C C6200000 */  lwc1      $f0, 0x0($s1)
.L802B6330:
/* E28270 802B6330 C6420000 */  lwc1      $f2, 0x0($s2)
/* E28274 802B6334 46002100 */  add.s     $f4, $f4, $f0
.L802B6338:
/* E28278 802B6338 3C014040 */  lui       $at, (0x40400000 >> 16)
/* E2827C 802B633C 44810000 */  mtc1      $at, $f0
.L802B6340:
/* E28280 802B6340 00000000 */  nop
/* E28284 802B6344 46001080 */  add.s     $f2, $f2, $f0
glabel func_802B6348
/* E28288 802B6348 3C014334 */  lui       $at, (0x43340000 >> 16)
/* E2828C 802B634C 44810000 */  mtc1      $at, $f0
PlayerTweesterPhysicsPtr:
/* E28290 802B6350 E604002C */  swc1      $f4, 0x2C($s0)
glabel .L802B6354
/* E28294 802B6354 4602003C */  c.lt.s    $f0, $f2
/* E28298 802B6358 00000000 */  nop
.L802B635C:
/* E2829C 802B635C 4500012A */  bc1f      .L802B6808
D_802B6360:
/* E282A0 802B6360 E6420000 */   swc1     $f2, 0x0($s2)
.L802B6364:
/* E282A4 802B6364 920200B6 */  lbu       $v0, 0xB6($s0)
/* E282A8 802B6368 080AD9EC */  j         .L802B67B0
.L802B636C:
/* E282AC 802B636C E6400000 */   swc1     $f0, 0x0($s2)
glabel .L802B6370
/* E282B0 802B6370 920200B6 */  lbu       $v0, 0xB6($s0)
.L802B6374:
/* E282B4 802B6374 080AD9EC */  j         .L802B67B0
/* E282B8 802B6378 E602002C */   swc1     $f2, 0x2C($s0)
glabel .L802B637C
/* E282BC 802B637C 820300BF */  lb        $v1, 0xBF($s0)
/* E282C0 802B6380 24020001 */  addiu     $v0, $zero, 0x1
/* E282C4 802B6384 14620011 */  bne       $v1, $v0, .L802B63CC
/* E282C8 802B6388 27A40020 */   addiu    $a0, $sp, 0x20
/* E282CC 802B638C 960200C0 */  lhu       $v0, 0xC0($s0)
/* E282D0 802B6390 30420001 */  andi      $v0, $v0, 0x1
glabel .L802B6394
/* E282D4 802B6394 1440000E */  bnez      $v0, .L802B63D0
.L802B6398:
/* E282D8 802B6398 27A50024 */   addiu    $a1, $sp, 0x24
.L802B639C:
/* E282DC 802B639C 0000202D */  daddu     $a0, $zero, $zero
/* E282E0 802B63A0 8E050028 */  lw        $a1, 0x28($s0)
/* E282E4 802B63A4 8E06002C */  lw        $a2, 0x2C($s0)
.L802B63A8:
/* E282E8 802B63A8 8E070030 */  lw        $a3, 0x30($s0)
.L802B63AC:
/* E282EC 802B63AC 3C013F33 */  lui       $at, (0x3F333333 >> 16)
glabel .L802B63B0
/* E282F0 802B63B0 34213333 */  ori       $at, $at, (0x3F333333 & 0xFFFF)
/* E282F4 802B63B4 44810000 */  mtc1      $at, $f0
/* E282F8 802B63B8 24020012 */  addiu     $v0, $zero, 0x12
/* E282FC 802B63BC AFA20014 */  sw        $v0, 0x14($sp)
.L802B63C0:
/* E28300 802B63C0 0C01C1CC */  jal       fx_smoke_burst
.L802B63C4:
/* E28304 802B63C4 E7A00010 */   swc1     $f0, 0x10($sp)
.L802B63C8:
/* E28308 802B63C8 27A40020 */  addiu     $a0, $sp, 0x20
.L802B63CC:
/* E2830C 802B63CC 27A50024 */  addiu     $a1, $sp, 0x24
.L802B63D0:
/* E28310 802B63D0 0C0B27F5 */  jal       get_lava_reset_pos
glabel action_update_first_strike
/* E28314 802B63D4 27A60028 */   addiu    $a2, $sp, 0x28
.L802B63D8:
/* E28318 802B63D8 14400005 */  bnez      $v0, .L802B63F0
glabel .L802B63DC
/* E2831C 802B63DC 00000000 */   nop
.L802B63E0:
/* E28320 802B63E0 C6000028 */  lwc1      $f0, 0x28($s0)
.L802B63E4:
/* E28324 802B63E4 C6020030 */  lwc1      $f2, 0x30($s0)
/* E28328 802B63E8 E7A00020 */  swc1      $f0, 0x20($sp)
/* E2832C 802B63EC E7A20028 */  swc1      $f2, 0x28($sp)
.L802B63F0:
/* E28330 802B63F0 C7A00020 */  lwc1      $f0, 0x20($sp)
.L802B63F4:
/* E28334 802B63F4 C602002C */  lwc1      $f2, 0x2C($s0)
/* E28338 802B63F8 3C013DEA */  lui       $at, (0x3DEA161E >> 16)
/* E2833C 802B63FC 3421161E */  ori       $at, $at, (0x3DEA161E & 0xFFFF)
.L802B6400:
/* E28340 802B6400 44812000 */  mtc1      $at, $f4
/* E28344 802B6404 3C01BE92 */  lui       $at, (0xBE92FEC5 >> 16)
/* E28348 802B6408 3421FEC5 */  ori       $at, $at, (0xBE92FEC5 & 0xFFFF)
.L802B640C:
/* E2834C 802B640C 44813000 */  mtc1      $at, $f6
/* E28350 802B6410 3C01BE3A */  lui       $at, (0xBE3AACDA >> 16)
.L802B6414:
/* E28354 802B6414 3421ACDA */  ori       $at, $at, (0xBE3AACDA & 0xFFFF)
.L802B6418:
/* E28358 802B6418 44814000 */  mtc1      $at, $f8
/* E2835C 802B641C 3C013C3C */  lui       $at, (0x3C3CBE62 >> 16)
.L802B6420:
/* E28360 802B6420 3421BE62 */  ori       $at, $at, (0x3C3CBE62 & 0xFFFF)
.L802B6424:
/* E28364 802B6424 44815000 */  mtc1      $at, $f10
.L802B6428:
/* E28368 802B6428 920300B6 */  lbu       $v1, 0xB6($s0)
.L802B642C:
/* E2836C 802B642C 4600040D */  trunc.w.s $f16, $f0
D_802B6430:
/* E28370 802B6430 44028000 */  mfc1      $v0, $f16
/* E28374 802B6434 00000000 */  nop
/* E28378 802B6438 A6020016 */  sh        $v0, 0x16($s0)
/* E2837C 802B643C C7A00028 */  lwc1      $f0, 0x28($sp)
/* E28380 802B6440 24630001 */  addiu     $v1, $v1, 0x1
/* E28384 802B6444 E6020050 */  swc1      $f2, 0x50($s0)
.L802B6448:
/* E28388 802B6448 E6040070 */  swc1      $f4, 0x70($s0)
glabel action_update_peach_step_down_land
/* E2838C 802B644C E6060074 */  swc1      $f6, 0x74($s0)
.L802B6450:
/* E28390 802B6450 E6080078 */  swc1      $f8, 0x78($s0)
.L802B6454:
/* E28394 802B6454 E60A007C */  swc1      $f10, 0x7C($s0)
/* E28398 802B6458 A20300B6 */  sb        $v1, 0xB6($s0)
/* E2839C 802B645C 4600040D */  trunc.w.s $f16, $f0
.L802B6460:
/* E283A0 802B6460 44028000 */  mfc1      $v0, $f16
.L802B6464:
/* E283A4 802B6464 080ADA02 */  j         .L802B6808
/* E283A8 802B6468 A602001A */   sh       $v0, 0x1A($s0)
glabel .L802B646C
/* E283AC 802B646C C60C0028 */  lwc1      $f12, 0x28($s0)
/* E283B0 802B6470 C60E0030 */  lwc1      $f14, 0x30($s0)
/* E283B4 802B6474 86020016 */  lh        $v0, 0x16($s0)
glabel action_update_raise_arms
/* E283B8 802B6478 8603001A */  lh        $v1, 0x1A($s0)
glabel action_update_peach_falling
/* E283BC 802B647C 44828000 */  mtc1      $v0, $f16
/* E283C0 802B6480 00000000 */  nop
/* E283C4 802B6484 46808420 */  cvt.s.w   $f16, $f16
/* E283C8 802B6488 44068000 */  mfc1      $a2, $f16
.L802B648C:
/* E283CC 802B648C 44838000 */  mtc1      $v1, $f16
.L802B6490:
/* E283D0 802B6490 00000000 */  nop
.L802B6494:
/* E283D4 802B6494 46808420 */  cvt.s.w   $f16, $f16
/* E283D8 802B6498 44078000 */  mfc1      $a3, $f16
/* E283DC 802B649C 0C00A720 */  jal       atan2
.L802B64A0:
/* E283E0 802B64A0 00000000 */   nop
/* E283E4 802B64A4 86020016 */  lh        $v0, 0x16($s0)
glabel .L802B64A8
/* E283E8 802B64A8 8603001A */  lh        $v1, 0x1A($s0)
.L802B64AC:
/* E283EC 802B64AC 3C01802B */  lui       $at, %hi(.L802B68B8)
/* E283F0 802B64B0 E42068B8 */  swc1      $f0, %lo(.L802B68B8)($at)
.L802B64B4:
/* E283F4 802B64B4 44826000 */  mtc1      $v0, $f12
/* E283F8 802B64B8 00000000 */  nop
/* E283FC 802B64BC 46806320 */  cvt.s.w   $f12, $f12
/* E28400 802B64C0 44837000 */  mtc1      $v1, $f14
.L802B64C4:
/* E28404 802B64C4 00000000 */  nop
/* E28408 802B64C8 0C038022 */  jal       get_xz_dist_to_player
.L802B64CC:
/* E2840C 802B64CC 468073A0 */   cvt.s.w  $f14, $f14
.L802B64D0:
/* E28410 802B64D0 3C014190 */  lui       $at, (0x41900000 >> 16)
.L802B64D4:
/* E28414 802B64D4 44811000 */  mtc1      $at, $f2
.L802B64D8:
/* E28418 802B64D8 920200B6 */  lbu       $v0, 0xB6($s0)
glabel .L802B64DC
/* E2841C 802B64DC 46020003 */  div.s     $f0, $f0, $f2
glabel .L802B64E0
/* E28420 802B64E0 24420001 */  addiu     $v0, $v0, 0x1
/* E28424 802B64E4 E6000054 */  swc1      $f0, 0x54($s0)
/* E28428 802B64E8 080ADA02 */  j         .L802B6808
.L802B64EC:
/* E2842C 802B64EC A20200B6 */   sb       $v0, 0xB6($s0)
glabel .L802B64F0
/* E28430 802B64F0 C60C0028 */  lwc1      $f12, 0x28($s0)
/* E28434 802B64F4 C60E0030 */  lwc1      $f14, 0x30($s0)
.L802B64F8:
/* E28438 802B64F8 86020016 */  lh        $v0, 0x16($s0)
/* E2843C 802B64FC 8603001A */  lh        $v1, 0x1A($s0)
/* E28440 802B6500 44828000 */  mtc1      $v0, $f16
/* E28444 802B6504 00000000 */  nop
glabel action_update_pushing_block
/* E28448 802B6508 46808420 */  cvt.s.w   $f16, $f16
.L802B650C:
/* E2844C 802B650C 44068000 */  mfc1      $a2, $f16
glabel .L802B6510
/* E28450 802B6510 44838000 */  mtc1      $v1, $f16
/* E28454 802B6514 00000000 */  nop
/* E28458 802B6518 46808420 */  cvt.s.w   $f16, $f16
.L802B651C:
/* E2845C 802B651C 44078000 */  mfc1      $a3, $f16
.L802B6520:
/* E28460 802B6520 0C00A720 */  jal       atan2
.L802B6524:
/* E28464 802B6524 00000000 */   nop
/* E28468 802B6528 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* E2846C 802B652C 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
.L802B6530:
/* E28470 802B6530 44811000 */  mtc1      $at, $f2
.L802B6534:
/* E28474 802B6534 00000000 */  nop
/* E28478 802B6538 46020082 */  mul.s     $f2, $f0, $f2
/* E2847C 802B653C 00000000 */  nop
/* E28480 802B6540 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
glabel .L802B6544
/* E28484 802B6544 44812000 */  mtc1      $at, $f4
glabel .L802B6548
/* E28488 802B6548 3C01802B */  lui       $at, %hi(.L802B68B8)
/* E2848C 802B654C E42068B8 */  swc1      $f0, %lo(.L802B68B8)($at)
glabel func_802B6550
/* E28490 802B6550 46041503 */  div.s     $f20, $f2, $f4
.L802B6554:
/* E28494 802B6554 0C00A85B */  jal       sin_rad
/* E28498 802B6558 4600A306 */   mov.s    $f12, $f20
/* E2849C 802B655C C6020054 */  lwc1      $f2, 0x54($s0)
/* E284A0 802B6560 46001102 */  mul.s     $f4, $f2, $f0
/* E284A4 802B6564 00000000 */  nop
glabel .L802B6568
/* E284A8 802B6568 C6000028 */  lwc1      $f0, 0x28($s0)
.L802B656C:
/* E284AC 802B656C 44801000 */  mtc1      $zero, $f2
.L802B6570:
/* E284B0 802B6570 46040000 */  add.s     $f0, $f0, $f4
.L802B6574:
/* E284B4 802B6574 AFA0002C */  sw        $zero, 0x2C($sp)
/* E284B8 802B6578 4604103E */  c.le.s    $f2, $f4
/* E284BC 802B657C 00000000 */  nop
.L802B6580:
/* E284C0 802B6580 45000008 */  bc1f      .L802B65A4
/* E284C4 802B6584 E6000028 */   swc1     $f0, 0x28($s0)
/* E284C8 802B6588 86020016 */  lh        $v0, 0x16($s0)
glabel .L802B658C
/* E284CC 802B658C 44821000 */  mtc1      $v0, $f2
.L802B6590:
/* E284D0 802B6590 00000000 */  nop
glabel .L802B6594
/* E284D4 802B6594 468010A0 */  cvt.s.w   $f2, $f2
.L802B6598:
/* E284D8 802B6598 4600103E */  c.le.s    $f2, $f0
.L802B659C:
/* E284DC 802B659C 080AD970 */  j         .L802B65C0
/* E284E0 802B65A0 00000000 */   nop
glabel .L802B65A4
/* E284E4 802B65A4 86020016 */  lh        $v0, 0x16($s0)
.L802B65A8:
/* E284E8 802B65A8 C6000028 */  lwc1      $f0, 0x28($s0)
/* E284EC 802B65AC 44821000 */  mtc1      $v0, $f2
/* E284F0 802B65B0 00000000 */  nop
glabel .L802B65B4
/* E284F4 802B65B4 468010A0 */  cvt.s.w   $f2, $f2
.L802B65B8:
/* E284F8 802B65B8 4602003E */  c.le.s    $f0, $f2
/* E284FC 802B65BC 00000000 */  nop
glabel .L802B65C0
/* E28500 802B65C0 45000003 */  bc1f      .L802B65D0
/* E28504 802B65C4 24020001 */   addiu    $v0, $zero, 0x1
/* E28508 802B65C8 E6020028 */  swc1      $f2, 0x28($s0)
glabel .L802B65CC
/* E2850C 802B65CC AFA2002C */  sw        $v0, 0x2C($sp)
.L802B65D0:
/* E28510 802B65D0 0C00A874 */  jal       cos_rad
/* E28514 802B65D4 4600A306 */   mov.s    $f12, $f20
/* E28518 802B65D8 C6020054 */  lwc1      $f2, 0x54($s0)
.L802B65DC:
/* E2851C 802B65DC 46001102 */  mul.s     $f4, $f2, $f0
.L802B65E0:
/* E28520 802B65E0 00000000 */  nop
.L802B65E4:
/* E28524 802B65E4 C6000030 */  lwc1      $f0, 0x30($s0)
glabel action_update_walk_peach
/* E28528 802B65E8 46040081 */  sub.s     $f2, $f0, $f4
.L802B65EC:
/* E2852C 802B65EC 44800000 */  mtc1      $zero, $f0
.L802B65F0:
/* E28530 802B65F0 00000000 */  nop
/* E28534 802B65F4 4604003E */  c.le.s    $f0, $f4
glabel func_802B65F8_E26D08
/* E28538 802B65F8 00000000 */  nop
/* E2853C 802B65FC 45000008 */  bc1f      .L802B6620
/* E28540 802B6600 E6020030 */   swc1     $f2, 0x30($s0)
.L802B6604:
/* E28544 802B6604 8602001A */  lh        $v0, 0x1A($s0)
/* E28548 802B6608 44820000 */  mtc1      $v0, $f0
glabel .L802B660C
/* E2854C 802B660C 00000000 */  nop
/* E28550 802B6610 46800020 */  cvt.s.w   $f0, $f0
/* E28554 802B6614 4600103E */  c.le.s    $f2, $f0
/* E28558 802B6618 080AD98E */  j         action_update_talk
glabel .L802B661C
/* E2855C 802B661C 00000000 */   nop
.L802B6620:
/* E28560 802B6620 8602001A */  lh        $v0, 0x1A($s0)
/* E28564 802B6624 44820000 */  mtc1      $v0, $f0
.L802B6628:
/* E28568 802B6628 00000000 */  nop
/* E2856C 802B662C 46800020 */  cvt.s.w   $f0, $f0
.L802B6630:
/* E28570 802B6630 4602003E */  c.le.s    $f0, $f2
glabel .L802B6634
/* E28574 802B6634 00000000 */  nop
glabel action_update_talk
/* E28578 802B6638 45000005 */  bc1f      .L802B6650
/* E2857C 802B663C 00000000 */   nop
/* E28580 802B6640 8FA2002C */  lw        $v0, 0x2C($sp)
glabel .L802B6644
/* E28584 802B6644 E6000030 */  swc1      $f0, 0x30($s0)
glabel func_802B6648_E27428
/* E28588 802B6648 24420001 */  addiu     $v0, $v0, 0x1
.L802B664C:
/* E2858C 802B664C AFA2002C */  sw        $v0, 0x2C($sp)
.L802B6650:
/* E28590 802B6650 8FA3002C */  lw        $v1, 0x2C($sp)
glabel .L802B6654
/* E28594 802B6654 24020002 */  addiu     $v0, $zero, 0x2
/* E28598 802B6658 1462006B */  bne       $v1, $v0, .L802B6808
/* E2859C 802B665C 00000000 */   nop
glabel .L802B6660
/* E285A0 802B6660 920200B6 */  lbu       $v0, 0xB6($s0)
/* E285A4 802B6664 080AD9ED */  j         .L802B67B4
/* E285A8 802B6668 24420001 */   addiu    $v0, $v0, 0x1
glabel .L802B666C
/* E285AC 802B666C 820300BF */  lb        $v1, 0xBF($s0)
glabel .L802B6670
/* E285B0 802B6670 24020001 */  addiu     $v0, $zero, 0x1
glabel .L802B6674
/* E285B4 802B6674 1462000F */  bne       $v1, $v0, .L802B66B4
.L802B6678:
/* E285B8 802B6678 00000000 */   nop
/* E285BC 802B667C 960200C0 */  lhu       $v0, 0xC0($s0)
glabel .L802B6680
/* E285C0 802B6680 30420001 */  andi      $v0, $v0, 0x1
/* E285C4 802B6684 1440000B */  bnez      $v0, .L802B66B4
/* E285C8 802B6688 0000202D */   daddu    $a0, $zero, $zero
glabel func_802B668C
/* E285CC 802B668C 8E050028 */  lw        $a1, 0x28($s0)
jtbl_802B6690:
/* E285D0 802B6690 8E06002C */  lw        $a2, 0x2C($s0)
/* E285D4 802B6694 8E070030 */  lw        $a3, 0x30($s0)
.L802B6698:
/* E285D8 802B6698 3C013F33 */  lui       $at, (0x3F333333 >> 16)
/* E285DC 802B669C 34213333 */  ori       $at, $at, (0x3F333333 & 0xFFFF)
/* E285E0 802B66A0 44810000 */  mtc1      $at, $f0
.L802B66A4:
/* E285E4 802B66A4 24020012 */  addiu     $v0, $zero, 0x12
glabel func_802B66A8
/* E285E8 802B66A8 AFA20014 */  sw        $v0, 0x14($sp)
/* E285EC 802B66AC 0C01C1CC */  jal       fx_smoke_burst
.L802B66B0:
/* E285F0 802B66B0 E7A00010 */   swc1     $f0, 0x10($sp)
.L802B66B4:
/* E285F4 802B66B4 0C038D36 */  jal       func_800E34D8
/* E285F8 802B66B8 00000000 */   nop
glabel .L802B66BC
/* E285FC 802B66BC 46000306 */  mov.s     $f12, $f0
glabel .L802B66C0
/* E28600 802B66C0 0C038D45 */  jal       player_check_collision_below
/* E28604 802B66C4 27A5002C */   addiu    $a1, $sp, 0x2C
/* E28608 802B66C8 8FA2002C */  lw        $v0, 0x2C($sp)
/* E2860C 802B66CC 0440004E */  bltz      $v0, .L802B6808
/* E28610 802B66D0 E600002C */   swc1     $f0, 0x2C($s0)
/* E28614 802B66D4 0000202D */  daddu     $a0, $zero, $zero
/* E28618 802B66D8 24050002 */  addiu     $a1, $zero, 0x2
.L802B66DC:
/* E2861C 802B66DC 3C073F4C */  lui       $a3, (0x3F4CCCCD >> 16)
.L802B66E0:
/* E28620 802B66E0 34E7CCCD */  ori       $a3, $a3, (0x3F4CCCCD & 0xFFFF)
/* E28624 802B66E4 0C0B2D72 */  jal       exec_ShakeCamX
/* E28628 802B66E8 24060001 */   addiu    $a2, $zero, 0x1
/* E2862C 802B66EC 24040100 */  addiu     $a0, $zero, 0x100
.L802B66F0:
/* E28630 802B66F0 0C00A3C2 */  jal       start_rumble
.L802B66F4:
/* E28634 802B66F4 24050032 */   addiu    $a1, $zero, 0x32
/* E28638 802B66F8 0C03954C */  jal       phys_adjust_cam_on_landing
/* E2863C 802B66FC 00000000 */   nop
/* E28640 802B6700 240403FB */  addiu     $a0, $zero, 0x3FB
/* E28644 802B6704 3C03800B */  lui       $v1, %hi(gCameras)
.L802B6708:
/* E28648 802B6708 24631D80 */  addiu     $v1, $v1, %lo(gCameras)
/* E2864C 802B670C 94620002 */  lhu       $v0, 0x2($v1)
.L802B6710:
/* E28650 802B6710 0000282D */  daddu     $a1, $zero, $zero
/* E28654 802B6714 3042FFFD */  andi      $v0, $v0, 0xFFFD
D_802B6718_E274F8:
/* E28658 802B6718 0C052736 */  jal       sfx_play_sound_at_player
.L802B671C:
/* E2865C 802B671C A4620002 */   sh       $v0, 0x2($v1)
D_802B6720_E27500:
/* E28660 802B6720 3C040008 */  lui       $a0, (0x8001A >> 16)
/* E28664 802B6724 0C037FDE */  jal       suggest_player_anim_always_forward
D_802B6728_E27508:
/* E28668 802B6728 3484001A */   ori      $a0, $a0, (0x8001A & 0xFFFF)
.L802B672C:
/* E2866C 802B672C 8E020000 */  lw        $v0, 0x0($s0)
D_802B6730:
/* E28670 802B6730 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
/* E28674 802B6734 44811000 */  mtc1      $at, $f2
glabel func_802B6738
/* E28678 802B6738 C600002C */  lwc1      $f0, 0x2C($s0)
/* E2867C 802B673C 2403F7FF */  addiu     $v1, $zero, -0x801
.L802B6740:
/* E28680 802B6740 A20000BF */  sb        $zero, 0xBF($s0)
.L802B6744:
/* E28684 802B6744 00431024 */  and       $v0, $v0, $v1
/* E28688 802B6748 2403FFF7 */  addiu     $v1, $zero, -0x9
.L802B674C:
/* E2868C 802B674C 00431024 */  and       $v0, $v0, $v1
.L802B6750:
/* E28690 802B6750 AE020000 */  sw        $v0, 0x0($s0)
/* E28694 802B6754 920200B6 */  lbu       $v0, 0xB6($s0)
.L802B6758:
/* E28698 802B6758 46020000 */  add.s     $f0, $f0, $f2
/* E2869C 802B675C E6020070 */  swc1      $f2, 0x70($s0)
D_802B6760_E29190:
/* E286A0 802B6760 24420001 */  addiu     $v0, $v0, 0x1
.L802B6764:
/* E286A4 802B6764 A20200B6 */  sb        $v0, 0xB6($s0)
D_802B6768_E29198:
/* E286A8 802B6768 080ADA02 */  j         .L802B6808
/* E286AC 802B676C E600002C */   swc1     $f0, 0x2C($s0)
D_802B6770_E27C80:
/* E286B0 802B6770 C60C0070 */  lwc1      $f12, 0x70($s0)
/* E286B4 802B6774 3C013FF0 */  lui       $at, (0x3FF00000 >> 16)
.L802B6778:
/* E286B8 802B6778 44810800 */  mtc1      $at, $f1
.L802B677C:
/* E286BC 802B677C 44800000 */  mtc1      $zero, $f0
D_802B6780:
/* E286C0 802B6780 46006321 */  cvt.d.s   $f12, $f12
D_802B6784:
/* E286C4 802B6784 46206301 */  sub.d     $f12, $f12, $f0
glabel D_802B6788
/* E286C8 802B6788 27A5002C */  addiu     $a1, $sp, 0x2C
.L802B678C:
/* E286CC 802B678C 46206320 */  cvt.s.d   $f12, $f12
D_802B6790:
/* E286D0 802B6790 0C038D45 */  jal       player_check_collision_below
D_802B6794:
/* E286D4 802B6794 E60C0070 */   swc1     $f12, 0x70($s0)
D_802B6798:
/* E286D8 802B6798 8FA2002C */  lw        $v0, 0x2C($sp)
D_802B679C:
/* E286DC 802B679C 0440001A */  bltz      $v0, .L802B6808
/* E286E0 802B67A0 E600002C */   swc1     $f0, 0x2C($s0)
.L802B67A4:
/* E286E4 802B67A4 920200B6 */  lbu       $v0, 0xB6($s0)
/* E286E8 802B67A8 2403000A */  addiu     $v1, $zero, 0xA
/* E286EC 802B67AC A6030008 */  sh        $v1, 0x8($s0)
.L802B67B0:
/* E286F0 802B67B0 24420001 */  addiu     $v0, $v0, 0x1
.L802B67B4:
/* E286F4 802B67B4 080ADA02 */  j         .L802B6808
/* E286F8 802B67B8 A20200B6 */   sb       $v0, 0xB6($s0)
glabel .L802B67BC
/* E286FC 802B67BC 96020008 */  lhu       $v0, 0x8($s0)
.L802B67C0:
/* E28700 802B67C0 2442FFFF */  addiu     $v0, $v0, -0x1
.L802B67C4:
/* E28704 802B67C4 A6020008 */  sh        $v0, 0x8($s0)
/* E28708 802B67C8 00021400 */  sll       $v0, $v0, 16
/* E2870C 802B67CC 1C40000E */  bgtz      $v0, .L802B6808
/* E28710 802B67D0 00000000 */   nop
/* E28714 802B67D4 0C039769 */  jal       set_action_state
.L802B67D8:
/* E28718 802B67D8 2404000A */   addiu    $a0, $zero, 0xA
/* E2871C 802B67DC 3C03FF7F */  lui       $v1, (0xFF7FFFFF >> 16)
/* E28720 802B67E0 3463FFFF */  ori       $v1, $v1, (0xFF7FFFFF & 0xFFFF)
.L802B67E4:
/* E28724 802B67E4 8E020000 */  lw        $v0, 0x0($s0)
.L802B67E8:
/* E28728 802B67E8 3C04800A */  lui       $a0, %hi(gOverrideFlags)
.L802B67EC:
/* E2872C 802B67EC 2484A650 */  addiu     $a0, $a0, %lo(gOverrideFlags)
/* E28730 802B67F0 00431024 */  and       $v0, $v0, $v1
.L802B67F4:
/* E28734 802B67F4 AE020000 */  sw        $v0, 0x0($s0)
glabel .L802B67F8
/* E28738 802B67F8 8C820000 */  lw        $v0, 0x0($a0)
/* E2873C 802B67FC 2403FFBF */  addiu     $v1, $zero, -0x41
.L802B6800:
/* E28740 802B6800 00431024 */  and       $v0, $v0, $v1
.L802B6804:
/* E28744 802B6804 AC820000 */  sw        $v0, 0x0($a0)
glabel .L802B6808
/* E28748 802B6808 820200B6 */  lb        $v0, 0xB6($s0)
.L802B680C:
/* E2874C 802B680C 28420007 */  slti      $v0, $v0, 0x7
.L802B6810:
/* E28750 802B6810 10400004 */  beqz      $v0, .L802B6824
.L802B6814:
/* E28754 802B6814 00000000 */   nop
/* E28758 802B6818 960200C0 */  lhu       $v0, 0xC0($s0)
.L802B681C:
/* E2875C 802B681C 24420001 */  addiu     $v0, $v0, 0x1
glabel func_802B6820_E256F0
/* E28760 802B6820 A60200C0 */  sh        $v0, 0xC0($s0)
.L802B6824:
/* E28764 802B6824 8FBF003C */  lw        $ra, 0x3C($sp)
.L802B6828:
/* E28768 802B6828 8FB20038 */  lw        $s2, 0x38($sp)
glabel .L802B682C
/* E2876C 802B682C 8FB10034 */  lw        $s1, 0x34($sp)
/* E28770 802B6830 8FB00030 */  lw        $s0, 0x30($sp)
/* E28774 802B6834 D7B60048 */  ldc1      $f22, 0x48($sp)
/* E28778 802B6838 D7B40040 */  ldc1      $f20, 0x40($sp)
/* E2877C 802B683C 03E00008 */  jr        $ra
/* E28780 802B6840 27BD0050 */   addiu    $sp, $sp, 0x50
/* E28784 802B6844 00000000 */  nop
/* E28788 802B6848 00000000 */  nop
/* E2878C 802B684C 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void action_update_hit_lava(void) {
    PlayerStatus* playerStatus = &gPlayerStatus;
    f32 resetPosX, resetPosY, resetPosZ;
    f32 returnRadians;
    f32 dx, dy;
    f32 componentSpeed;
    s32 completeAxes; // number of axes along which the 'return motion' is complete

    static f32 LaunchVelocity;
    static f32 LaunchInterpPhase; // used to interp launch velocity
    static f32 ReturnAngle;
    static f32 InitialPosY;

    if (playerStatus->flags & PS_FLAG_ACTION_STATE_CHANGED) {
        playerStatus->flags &= ~PS_FLAG_ACTION_STATE_CHANGED;
        playerStatus->flags |= (PS_FLAG_SCRIPTED_FALL | PS_FLAG_FLYING);
        playerStatus->animFlags |= PA_FLAG_INTERRUPT_USE_PARTNER;
        playerStatus->flags |= PS_FLAG_HIT_FIRE;
        if (playerStatus->hazardType == HAZARD_TYPE_LAVA) {
            playerStatus->actionSubstate = SUBSTATE_DELAY_INIT_SINK;
            playerStatus->currentStateTime = 2;
        } else {
            playerStatus->actionSubstate = SUBSTATE_INIT;
        }
        InitialPosY = playerStatus->position.y;
        playerStatus->currentSpeed = 0.0f;
        LaunchVelocity = 0.0f;

        gCameras[CAM_DEFAULT].moveFlags |= (CAMERA_MOVE_IGNORE_PLAYER_Y | CAMERA_MOVE_FLAG_2);
        LaunchInterpPhase = 90.0f;
        subtract_hp(1);
        open_status_bar_long();
        gOverrideFlags |= GLOBAL_OVERRIDES_40;
        sfx_play_sound_at_player(SOUND_E8, SOUND_SPACE_MODE_0);
    }

    switch (playerStatus->actionSubstate) {
        case SUBSTATE_DELAY_INIT:
            if (--playerStatus->currentStateTime == -1) {
                playerStatus->actionSubstate = SUBSTATE_INIT;
            }
            break;
        case SUBSTATE_DELAY_INIT_SINK:
            if (--playerStatus->currentStateTime == -1) {
                playerStatus->actionSubstate = SUBSTATE_INIT;
            }
            playerStatus->position.y -= 4.0f;
            break;
        case SUBSTATE_INIT:
            if (playerStatus->hazardType == HAZARD_TYPE_LAVA) {
                fx_smoke_burst(0, playerStatus->position.x, playerStatus->position.y, playerStatus->position.z, 1.0f, 40);
            }
            suggest_player_anim_always_forward(ANIM_MarioW2_TouchedLava);
            playerStatus->gravityIntegrator[1] = 0.0f;
            playerStatus->timeInAir = 0;
            playerStatus->peakJumpTime = 0;
            playerStatus->actionSubstate = SUBSTATE_LAUNCH;
            playerStatus->currentStateTime = 1;
            playerStatus->gravityIntegrator[0] = 20.0f;
            playerStatus->gravityIntegrator[2] = 250.0f;
            playerStatus->gravityIntegrator[3] = InitialPosY;
            playerStatus->jumpFromPos.x = playerStatus->position.x;
            playerStatus->jumpFromPos.z = playerStatus->position.z;
            playerStatus->jumpFromHeight = playerStatus->position.y;
            playerStatus->flags |= PS_FLAG_JUMPING;
            break;
        case SUBSTATE_DELAY_LAUNCH:
            if (--playerStatus->currentStateTime <= 0) {
                playerStatus->actionSubstate++;
            }
            break;
        case SUBSTATE_LAUNCH:
            if (playerStatus->hazardType == HAZARD_TYPE_LAVA && (playerStatus->timeInAir % 2) == 0) {
                fx_smoke_burst(0, playerStatus->position.x, playerStatus->position.y, playerStatus->position.z, 0.7f, 18);
            }
            if (playerStatus->position.y < playerStatus->gravityIntegrator[3] + playerStatus->gravityIntegrator[2]) {
                sin_cos_rad(DEG_TO_RAD(LaunchInterpPhase), &dx, &dy);
                LaunchVelocity = sin_rad(DEG_TO_RAD(LaunchInterpPhase)) * 16.0f;
                if (LaunchVelocity < -1.0f) {
                    LaunchVelocity = -1.0f;
                }
                playerStatus->position.y += LaunchVelocity;
                LaunchInterpPhase += 3.0f;
                if (LaunchInterpPhase > 180.0f) {
                    LaunchInterpPhase = 180.0f;
                    playerStatus->actionSubstate++;
                }
            } else {
                playerStatus->position.y = playerStatus->gravityIntegrator[3] + playerStatus->gravityIntegrator[2];
                playerStatus->actionSubstate++;
            }
            break;
        case SUBSTATE_END_LAUNCH:
            if (playerStatus->hazardType == HAZARD_TYPE_LAVA && (playerStatus->timeInAir % 2) == 0) {
                fx_smoke_burst(0, playerStatus->position.x, playerStatus->position.y, playerStatus->position.z, 0.7f, 18);
            }
            if (get_lava_reset_pos(&resetPosX, &resetPosY, &resetPosZ) == 0) {
                resetPosX = playerStatus->position.x;
                resetPosZ = playerStatus->position.z;
            }
            playerStatus->lastGoodPosition.x = resetPosX;
            playerStatus->lastGoodPosition.z = resetPosZ;
            playerStatus->jumpApexHeight = playerStatus->position.y;
            LOAD_INTEGRATOR_FALL(playerStatus->gravityIntegrator);
            playerStatus->actionSubstate++;
            break;
        case SUBSTATE_RETURN_INIT:
            ReturnAngle = atan2(playerStatus->position.x, playerStatus->position.z, playerStatus->lastGoodPosition.x, playerStatus->lastGoodPosition.z);
            playerStatus->currentSpeed = get_xz_dist_to_player(playerStatus->lastGoodPosition.x, playerStatus->lastGoodPosition.z) / 18.0f;
            playerStatus->actionSubstate++;
            break;
        case SUBSTATE_RETURN_MOTION:
            ReturnAngle = atan2(playerStatus->position.x, playerStatus->position.z, playerStatus->lastGoodPosition.x, playerStatus->lastGoodPosition.z);
            returnRadians = DEG_TO_RAD(ReturnAngle);
            // update motion along x axis
            componentSpeed = playerStatus->currentSpeed * sin_rad(returnRadians);
            playerStatus->position.x += componentSpeed;
            completeAxes = 0;
            if (componentSpeed >= 0.0f) {
                if (playerStatus->lastGoodPosition.x <= playerStatus->position.x) {
                    playerStatus->position.x = playerStatus->lastGoodPosition.x;
                    completeAxes++;
                }
            } else {
                if (playerStatus->position.x <= playerStatus->lastGoodPosition.x) {
                    playerStatus->position.x = playerStatus->lastGoodPosition.x;
                    completeAxes++;
                }
            }
            // update motion along z axis
            componentSpeed = playerStatus->currentSpeed * cos_rad(returnRadians);
            playerStatus->position.z -= componentSpeed;
            if (componentSpeed >= 0.0f) {
                if (playerStatus->position.z <= playerStatus->lastGoodPosition.z) {
                    playerStatus->position.z = playerStatus->lastGoodPosition.z;
                    completeAxes++;
                }
            } else {
                if (playerStatus->lastGoodPosition.z <= playerStatus->position.z) {
                    playerStatus->position.z = playerStatus->lastGoodPosition.z;
                    completeAxes++;
                }
            }
            // if both axes are done, continue to next substate
            if (completeAxes == 2) {
                playerStatus->actionSubstate++;
            }
            break;
        case SUBSTATE_HOVER:
            if (playerStatus->hazardType == HAZARD_TYPE_LAVA && (playerStatus->timeInAir % 2) == 0) {
                fx_smoke_burst(0, playerStatus->position.x, playerStatus->position.y, playerStatus->position.z, 0.7f, 18);
            }
            playerStatus->position.y = player_check_collision_below(player_fall_distance(), &completeAxes);
            if (completeAxes >= 0) {
                exec_ShakeCamX(0, 2, 1, 0.8f);
                start_rumble(256, 50);
                phys_adjust_cam_on_landing();
                gCameras[CAM_DEFAULT].moveFlags &= ~CAMERA_MOVE_FLAG_2;
                sfx_play_sound_at_player(SOUND_3FB, SOUND_SPACE_MODE_0);
                suggest_player_anim_always_forward(ANIM_MarioW2_Thrown);
                playerStatus->flags &= ~PS_FLAG_HIT_FIRE;
                playerStatus->flags &= ~PS_FLAG_FLYING;
                playerStatus->hazardType = HAZARD_TYPE_NONE;
                playerStatus->gravityIntegrator[0] = 6.0f;
                playerStatus->position.y += 6.0f;
                playerStatus->actionSubstate++;
            }
            break;
        case SUBSTATE_BOUNCE:
            playerStatus->gravityIntegrator[0] -= 1.0;
            playerStatus->position.y = player_check_collision_below(playerStatus->gravityIntegrator[0], &completeAxes);
            if (completeAxes >= 0) {
                playerStatus->currentStateTime = 10;
                playerStatus->actionSubstate++;
            }
            break;
        case SUBSTATE_DELAY_DONE:
            if (--playerStatus->currentStateTime <= 0) {
                set_action_state(ACTION_STATE_LAND);
                playerStatus->flags &= ~PS_FLAG_SCRIPTED_FALL;
                gOverrideFlags &= ~GLOBAL_OVERRIDES_40;
            }
            break;
    }
    if (playerStatus->actionSubstate < SUBSTATE_BOUNCE) {
        playerStatus->timeInAir++;
    }
}