### RAW ASSEMBLY INSTRUCTIONS:

glabel fire_flower_appendGfx
/* 37FC6C E007E54C 27BDFF18 */  addiu     $sp, $sp, -0xE8
/* 37FC70 E007E550 3C06DB06 */  lui       $a2, (0xDB060024 >> 16)
/* 37FC74 E007E554 34C60024 */  ori       $a2, $a2, (0xDB060024 & 0xFFFF)
/* 37FC78 E007E558 AFA400E8 */  sw        $a0, 0xE8($sp)
/* 37FC7C E007E55C 27A40018 */  addiu     $a0, $sp, 0x18
/* 37FC80 E007E560 AFB600B8 */  sw        $s6, 0xB8($sp)
/* 37FC84 E007E564 3C16800A */  lui       $s6, %hi(gMainGfxPos)
/* 37FC88 E007E568 26D6A66C */  addiu     $s6, $s6, %lo(gMainGfxPos)
/* 37FC8C E007E56C AFBF00C4 */  sw        $ra, 0xC4($sp)
/* 37FC90 E007E570 AFBE00C0 */  sw        $fp, 0xC0($sp)
/* 37FC94 E007E574 AFB700BC */  sw        $s7, 0xBC($sp)
/* 37FC98 E007E578 AFB500B4 */  sw        $s5, 0xB4($sp)
/* 37FC9C E007E57C AFB400B0 */  sw        $s4, 0xB0($sp)
/* 37FCA0 E007E580 AFB300AC */  sw        $s3, 0xAC($sp)
/* 37FCA4 E007E584 AFB200A8 */  sw        $s2, 0xA8($sp)
/* 37FCA8 E007E588 AFB100A4 */  sw        $s1, 0xA4($sp)
/* 37FCAC E007E58C AFB000A0 */  sw        $s0, 0xA0($sp)
/* 37FCB0 E007E590 F7BA00E0 */  sdc1      $f26, 0xE0($sp)
/* 37FCB4 E007E594 F7B800D8 */  sdc1      $f24, 0xD8($sp)
/* 37FCB8 E007E598 F7B600D0 */  sdc1      $f22, 0xD0($sp)
/* 37FCBC E007E59C F7B400C8 */  sdc1      $f20, 0xC8($sp)
/* 37FCC0 E007E5A0 8EC50000 */  lw        $a1, 0x0($s6)
/* 37FCC4 E007E5A4 8FB900E8 */  lw        $t9, 0xE8($sp)
/* 37FCC8 E007E5A8 00A0182D */  daddu     $v1, $a1, $zero
/* 37FCCC E007E5AC 8F31000C */  lw        $s1, 0xC($t9)
/* 37FCD0 E007E5B0 24A50008 */  addiu     $a1, $a1, 0x8
/* 37FCD4 E007E5B4 AEC50000 */  sw        $a1, 0x0($s6)
/* 37FCD8 E007E5B8 8E390034 */  lw        $t9, 0x34($s1)
/* 37FCDC E007E5BC 3C140001 */  lui       $s4, (0x11630 >> 16)
/* 37FCE0 E007E5C0 AFB90098 */  sw        $t9, 0x98($sp)
/* 37FCE4 E007E5C4 C6380030 */  lwc1      $f24, 0x30($s1)
/* 37FCE8 E007E5C8 8E300004 */  lw        $s0, 0x4($s1)
/* 37FCEC E007E5CC C63A0028 */  lwc1      $f26, 0x28($s1)
/* 37FCF0 E007E5D0 C636002C */  lwc1      $f22, 0x2C($s1)
/* 37FCF4 E007E5D4 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 37FCF8 E007E5D8 AC620000 */  sw        $v0, 0x0($v1)
/* 37FCFC E007E5DC AC600004 */  sw        $zero, 0x4($v1)
/* 37FD00 E007E5E0 ACA60000 */  sw        $a2, 0x0($a1)
/* 37FD04 E007E5E4 8FB900E8 */  lw        $t9, 0xE8($sp)
/* 37FD08 E007E5E8 8F230010 */  lw        $v1, 0x10($t9)
/* 37FD0C E007E5EC 24A20008 */  addiu     $v0, $a1, 0x8
/* 37FD10 E007E5F0 AEC20000 */  sw        $v0, 0x0($s6)
/* 37FD14 E007E5F4 8C62001C */  lw        $v0, 0x1C($v1)
/* 37FD18 E007E5F8 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* 37FD1C E007E5FC 00431021 */  addu      $v0, $v0, $v1
/* 37FD20 E007E600 ACA20004 */  sw        $v0, 0x4($a1)
/* 37FD24 E007E604 8E250008 */  lw        $a1, 0x8($s1)
/* 37FD28 E007E608 8E26000C */  lw        $a2, 0xC($s1)
/* 37FD2C E007E60C 8E270010 */  lw        $a3, 0x10($s1)
/* 37FD30 E007E610 4480A000 */  mtc1      $zero, $f20
/* 37FD34 E007E614 0C080108 */  jal       shim_guTranslateF
/* 37FD38 E007E618 36941630 */   ori      $s4, $s4, (0x11630 & 0xFFFF)
/* 37FD3C E007E61C 27B50058 */  addiu     $s5, $sp, 0x58
/* 37FD40 E007E620 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
/* 37FD44 E007E624 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* 37FD48 E007E628 4406A000 */  mfc1      $a2, $f20
/* 37FD4C E007E62C 00031080 */  sll       $v0, $v1, 2
/* 37FD50 E007E630 00431021 */  addu      $v0, $v0, $v1
/* 37FD54 E007E634 00021080 */  sll       $v0, $v0, 2
/* 37FD58 E007E638 00431023 */  subu      $v0, $v0, $v1
/* 37FD5C E007E63C 000218C0 */  sll       $v1, $v0, 3
/* 37FD60 E007E640 00431021 */  addu      $v0, $v0, $v1
/* 37FD64 E007E644 000210C0 */  sll       $v0, $v0, 3
/* 37FD68 E007E648 3C01800B */  lui       $at, %hi(gCameras + 0x6C)
/* 37FD6C E007E64C 00220821 */  addu      $at, $at, $v0
/* 37FD70 E007E650 C4201DEC */  lwc1      $f0, %lo(gCameras + 0x6C)($at)
/* 37FD74 E007E654 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 37FD78 E007E658 46000007 */  neg.s     $f0, $f0
/* 37FD7C E007E65C 44050000 */  mfc1      $a1, $f0
/* 37FD80 E007E660 02A0202D */  daddu     $a0, $s5, $zero
/* 37FD84 E007E664 0C080104 */  jal       shim_guRotateF
/* 37FD88 E007E668 E7B40010 */   swc1     $f20, 0x10($sp)
/* 37FD8C E007E66C 02A0202D */  daddu     $a0, $s5, $zero
/* 37FD90 E007E670 27A50018 */  addiu     $a1, $sp, 0x18
/* 37FD94 E007E674 0C080114 */  jal       shim_guMtxCatF
/* 37FD98 E007E678 00A0302D */   daddu    $a2, $a1, $zero
/* 37FD9C E007E67C 27A40018 */  addiu     $a0, $sp, 0x18
/* 37FDA0 E007E680 3C138007 */  lui       $s3, %hi(gMatrixListPos)
/* 37FDA4 E007E684 267341F0 */  addiu     $s3, $s3, %lo(gMatrixListPos)
/* 37FDA8 E007E688 3C17800A */  lui       $s7, %hi(gDisplayContext)
/* 37FDAC E007E68C 26F7A674 */  addiu     $s7, $s7, %lo(gDisplayContext)
/* 37FDB0 E007E690 96650000 */  lhu       $a1, 0x0($s3)
/* 37FDB4 E007E694 8EE20000 */  lw        $v0, 0x0($s7)
/* 37FDB8 E007E698 00052980 */  sll       $a1, $a1, 6
/* 37FDBC E007E69C 00B42821 */  addu      $a1, $a1, $s4
/* 37FDC0 E007E6A0 0C080118 */  jal       shim_guMtxF2L
/* 37FDC4 E007E6A4 00452821 */   addu     $a1, $v0, $a1
/* 37FDC8 E007E6A8 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 37FDCC E007E6AC 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 37FDD0 E007E6B0 2610FFFC */  addiu     $s0, $s0, -0x4
/* 37FDD4 E007E6B4 8EC40000 */  lw        $a0, 0x0($s6)
/* 37FDD8 E007E6B8 96620000 */  lhu       $v0, 0x0($s3)
/* 37FDDC E007E6BC 0080282D */  daddu     $a1, $a0, $zero
/* 37FDE0 E007E6C0 24840008 */  addiu     $a0, $a0, 0x8
/* 37FDE4 E007E6C4 AEC40000 */  sw        $a0, 0x0($s6)
/* 37FDE8 E007E6C8 ACA30000 */  sw        $v1, 0x0($a1)
/* 37FDEC E007E6CC 24430001 */  addiu     $v1, $v0, 0x1
/* 37FDF0 E007E6D0 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 37FDF4 E007E6D4 00021180 */  sll       $v0, $v0, 6
/* 37FDF8 E007E6D8 A6630000 */  sh        $v1, 0x0($s3)
/* 37FDFC E007E6DC 8EE30000 */  lw        $v1, 0x0($s7)
/* 37FE00 E007E6E0 00541021 */  addu      $v0, $v0, $s4
/* 37FE04 E007E6E4 00621821 */  addu      $v1, $v1, $v0
/* 37FE08 E007E6E8 24820008 */  addiu     $v0, $a0, 0x8
/* 37FE0C E007E6EC ACA30004 */  sw        $v1, 0x4($a1)
/* 37FE10 E007E6F0 AEC20000 */  sw        $v0, 0x0($s6)
/* 37FE14 E007E6F4 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 37FE18 E007E6F8 AC820000 */  sw        $v0, 0x0($a0)
/* 37FE1C E007E6FC 9223003F */  lbu       $v1, 0x3F($s1)
/* 37FE20 E007E700 24820010 */  addiu     $v0, $a0, 0x10
/* 37FE24 E007E704 AEC20000 */  sw        $v0, 0x0($s6)
/* 37FE28 E007E708 3C02FB00 */  lui       $v0, (0xFB000000 >> 16)
/* 37FE2C E007E70C 3C05FF00 */  lui       $a1, (0xFF000000 >> 16)
/* 37FE30 E007E710 AC820008 */  sw        $v0, 0x8($a0)
/* 37FE34 E007E714 00651825 */  or        $v1, $v1, $a1
/* 37FE38 E007E718 AC830004 */  sw        $v1, 0x4($a0)
/* 37FE3C E007E71C 9222003B */  lbu       $v0, 0x3B($s1)
/* 37FE40 E007E720 2E100003 */  sltiu     $s0, $s0, 0x3
/* 37FE44 E007E724 00451025 */  or        $v0, $v0, $a1
/* 37FE48 E007E728 1200007F */  beqz      $s0, .LE007E928
/* 37FE4C E007E72C AC82000C */   sw       $v0, 0xC($a0)
/* 37FE50 E007E730 4405A000 */  mfc1      $a1, $f20
/* 37FE54 E007E734 3C064180 */  lui       $a2, (0x41800000 >> 16)
/* 37FE58 E007E738 4407A000 */  mfc1      $a3, $f20
/* 37FE5C E007E73C 0C080108 */  jal       shim_guTranslateF
/* 37FE60 E007E740 27A40018 */   addiu    $a0, $sp, 0x18
/* 37FE64 E007E744 27A40018 */  addiu     $a0, $sp, 0x18
/* 37FE68 E007E748 96650000 */  lhu       $a1, 0x0($s3)
/* 37FE6C E007E74C 8EE20000 */  lw        $v0, 0x0($s7)
/* 37FE70 E007E750 00052980 */  sll       $a1, $a1, 6
/* 37FE74 E007E754 00B42821 */  addu      $a1, $a1, $s4
/* 37FE78 E007E758 0C080118 */  jal       shim_guMtxF2L
/* 37FE7C E007E75C 00452821 */   addu     $a1, $v0, $a1
/* 37FE80 E007E760 8EC40000 */  lw        $a0, 0x0($s6)
/* 37FE84 E007E764 24120001 */  addiu     $s2, $zero, 0x1
/* 37FE88 E007E768 0080282D */  daddu     $a1, $a0, $zero
/* 37FE8C E007E76C 24840008 */  addiu     $a0, $a0, 0x8
/* 37FE90 E007E770 AEC40000 */  sw        $a0, 0x0($s6)
/* 37FE94 E007E774 96620000 */  lhu       $v0, 0x0($s3)
/* 37FE98 E007E778 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 37FE9C E007E77C ACA30000 */  sw        $v1, 0x0($a1)
/* 37FEA0 E007E780 00521821 */  addu      $v1, $v0, $s2
/* 37FEA4 E007E784 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 37FEA8 E007E788 00021180 */  sll       $v0, $v0, 6
/* 37FEAC E007E78C A6630000 */  sh        $v1, 0x0($s3)
/* 37FEB0 E007E790 8EE30000 */  lw        $v1, 0x0($s7)
/* 37FEB4 E007E794 00541021 */  addu      $v0, $v0, $s4
/* 37FEB8 E007E798 00621821 */  addu      $v1, $v1, $v0
/* 37FEBC E007E79C 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 37FEC0 E007E7A0 ACA30004 */  sw        $v1, 0x4($a1)
/* 37FEC4 E007E7A4 AC820000 */  sw        $v0, 0x0($a0)
/* 37FEC8 E007E7A8 3C020900 */  lui       $v0, %hi(D_09000DE0_40E070)
/* 37FECC E007E7AC 24420DE0 */  addiu     $v0, $v0, %lo(D_09000DE0_40E070)
/* 37FED0 E007E7B0 AC820004 */  sw        $v0, 0x4($a0)
/* 37FED4 E007E7B4 8FB900E8 */  lw        $t9, 0xE8($sp)
/* 37FED8 E007E7B8 2631004C */  addiu     $s1, $s1, 0x4C
/* 37FEDC E007E7BC 8F220008 */  lw        $v0, 0x8($t9)
/* 37FEE0 E007E7C0 24840008 */  addiu     $a0, $a0, 0x8
/* 37FEE4 E007E7C4 0242102A */  slt       $v0, $s2, $v0
/* 37FEE8 E007E7C8 1040004C */  beqz      $v0, .LE007E8FC
/* 37FEEC E007E7CC AEC40000 */   sw       $a0, 0x0($s6)
/* 37FEF0 E007E7D0 02E0F02D */  daddu     $fp, $s7, $zero
/* 37FEF4 E007E7D4 0260B82D */  daddu     $s7, $s3, $zero
/* 37FEF8 E007E7D8 3C140001 */  lui       $s4, (0x11630 >> 16)
/* 37FEFC E007E7DC 36941630 */  ori       $s4, $s4, (0x11630 & 0xFFFF)
/* 37FF00 E007E7E0 02C0982D */  daddu     $s3, $s6, $zero
/* 37FF04 E007E7E4 26300010 */  addiu     $s0, $s1, 0x10
.LE007E7E8:
/* 37FF08 E007E7E8 8E020038 */  lw        $v0, 0x38($s0)
/* 37FF0C E007E7EC 5440003D */  bnel      $v0, $zero, .LE007E8E4
/* 37FF10 E007E7F0 26520001 */   addiu    $s2, $s2, 0x1
/* 37FF14 E007E7F4 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 37FF18 E007E7F8 44810000 */  mtc1      $at, $f0
/* 37FF1C E007E7FC 4406A000 */  mfc1      $a2, $f20
/* 37FF20 E007E800 4407A000 */  mfc1      $a3, $f20
/* 37FF24 E007E804 E7A00010 */  swc1      $f0, 0x10($sp)
/* 37FF28 E007E808 8E050014 */  lw        $a1, 0x14($s0)
/* 37FF2C E007E80C 0C080104 */  jal       shim_guRotateF
/* 37FF30 E007E810 27A40018 */   addiu    $a0, $sp, 0x18
/* 37FF34 E007E814 8E05FFF8 */  lw        $a1, -0x8($s0)
/* 37FF38 E007E818 8E06FFFC */  lw        $a2, -0x4($s0)
/* 37FF3C E007E81C 8E070000 */  lw        $a3, 0x0($s0)
/* 37FF40 E007E820 0C080108 */  jal       shim_guTranslateF
/* 37FF44 E007E824 02A0202D */   daddu    $a0, $s5, $zero
/* 37FF48 E007E828 02A0202D */  daddu     $a0, $s5, $zero
/* 37FF4C E007E82C 27A50018 */  addiu     $a1, $sp, 0x18
/* 37FF50 E007E830 0C080114 */  jal       shim_guMtxCatF
/* 37FF54 E007E834 00A0302D */   daddu    $a2, $a1, $zero
/* 37FF58 E007E838 27A40018 */  addiu     $a0, $sp, 0x18
/* 37FF5C E007E83C 96E50000 */  lhu       $a1, 0x0($s7)
/* 37FF60 E007E840 8FC20000 */  lw        $v0, 0x0($fp)
/* 37FF64 E007E844 00052980 */  sll       $a1, $a1, 6
/* 37FF68 E007E848 00B42821 */  addu      $a1, $a1, $s4
/* 37FF6C E007E84C 0C080118 */  jal       shim_guMtxF2L
/* 37FF70 E007E850 00452821 */   addu     $a1, $v0, $a1
/* 37FF74 E007E854 8E650000 */  lw        $a1, 0x0($s3)
/* 37FF78 E007E858 3C060900 */  lui       $a2, %hi(D_09000EB8_40E148)
/* 37FF7C E007E85C 24C60EB8 */  addiu     $a2, $a2, %lo(D_09000EB8_40E148)
/* 37FF80 E007E860 00A0202D */  daddu     $a0, $a1, $zero
/* 37FF84 E007E864 24A50008 */  addiu     $a1, $a1, 0x8
/* 37FF88 E007E868 AE650000 */  sw        $a1, 0x0($s3)
/* 37FF8C E007E86C 96E20000 */  lhu       $v0, 0x0($s7)
/* 37FF90 E007E870 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 37FF94 E007E874 AC830000 */  sw        $v1, 0x0($a0)
/* 37FF98 E007E878 24430001 */  addiu     $v1, $v0, 0x1
/* 37FF9C E007E87C 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 37FFA0 E007E880 00021180 */  sll       $v0, $v0, 6
/* 37FFA4 E007E884 A6E30000 */  sh        $v1, 0x0($s7)
/* 37FFA8 E007E888 8FC30000 */  lw        $v1, 0x0($fp)
/* 37FFAC E007E88C 00541021 */  addu      $v0, $v0, $s4
/* 37FFB0 E007E890 00621821 */  addu      $v1, $v1, $v0
/* 37FFB4 E007E894 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 37FFB8 E007E898 AC830004 */  sw        $v1, 0x4($a0)
/* 37FFBC E007E89C ACA20000 */  sw        $v0, 0x0($a1)
/* 37FFC0 E007E8A0 8E230000 */  lw        $v1, 0x0($s1)
/* 37FFC4 E007E8A4 24A20008 */  addiu     $v0, $a1, 0x8
/* 37FFC8 E007E8A8 10600003 */  beqz      $v1, .LE007E8B8
/* 37FFCC E007E8AC AE620000 */   sw       $v0, 0x0($s3)
/* 37FFD0 E007E8B0 3C060900 */  lui       $a2, %hi(D_09000ED8_40E168)
/* 37FFD4 E007E8B4 24C60ED8 */  addiu     $a2, $a2, %lo(D_09000ED8_40E168)
.LE007E8B8:
/* 37FFD8 E007E8B8 3C04D838 */  lui       $a0, (0xD8380002 >> 16)
/* 37FFDC E007E8BC 8E620000 */  lw        $v0, 0x0($s3)
/* 37FFE0 E007E8C0 34840002 */  ori       $a0, $a0, (0xD8380002 & 0xFFFF)
/* 37FFE4 E007E8C4 ACA60004 */  sw        $a2, 0x4($a1)
/* 37FFE8 E007E8C8 0040182D */  daddu     $v1, $v0, $zero
/* 37FFEC E007E8CC 24420008 */  addiu     $v0, $v0, 0x8
/* 37FFF0 E007E8D0 AE620000 */  sw        $v0, 0x0($s3)
/* 37FFF4 E007E8D4 24020040 */  addiu     $v0, $zero, 0x40
/* 37FFF8 E007E8D8 AC640000 */  sw        $a0, 0x0($v1)
/* 37FFFC E007E8DC AC620004 */  sw        $v0, 0x4($v1)
/* 380000 E007E8E0 26520001 */  addiu     $s2, $s2, 0x1
.LE007E8E4:
/* 380004 E007E8E4 8FB900E8 */  lw        $t9, 0xE8($sp)
/* 380008 E007E8E8 2610004C */  addiu     $s0, $s0, 0x4C
/* 38000C E007E8EC 8F220008 */  lw        $v0, 0x8($t9)
/* 380010 E007E8F0 0242102A */  slt       $v0, $s2, $v0
/* 380014 E007E8F4 1440FFBC */  bnez      $v0, .LE007E7E8
/* 380018 E007E8F8 2631004C */   addiu    $s1, $s1, 0x4C
.LE007E8FC:
/* 38001C E007E8FC 3C05D838 */  lui       $a1, (0xD8380002 >> 16)
/* 380020 E007E900 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* 380024 E007E904 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* 380028 E007E908 8C620000 */  lw        $v0, 0x0($v1)
/* 38002C E007E90C 34A50002 */  ori       $a1, $a1, (0xD8380002 & 0xFFFF)
/* 380030 E007E910 0040202D */  daddu     $a0, $v0, $zero
/* 380034 E007E914 24420008 */  addiu     $v0, $v0, 0x8
/* 380038 E007E918 AC620000 */  sw        $v0, 0x0($v1)
/* 38003C E007E91C 24020040 */  addiu     $v0, $zero, 0x40
/* 380040 E007E920 AC850000 */  sw        $a1, 0x0($a0)
/* 380044 E007E924 AC820004 */  sw        $v0, 0x4($a0)
.LE007E928:
/* 380048 E007E928 3C0DFD48 */  lui       $t5, (0xFD48000F >> 16)
/* 38004C E007E92C 35AD000F */  ori       $t5, $t5, (0xFD48000F & 0xFFFF)
/* 380050 E007E930 3C09F548 */  lui       $t1, (0xF5480400 >> 16)
/* 380054 E007E934 35290400 */  ori       $t1, $t1, (0xF5480400 & 0xFFFF)
/* 380058 E007E938 3C0E0705 */  lui       $t6, (0x7054150 >> 16)
/* 38005C E007E93C 35CE4150 */  ori       $t6, $t6, (0x7054150 & 0xFFFF)
/* 380060 E007E940 3C0F0703 */  lui       $t7, (0x703E07C >> 16)
/* 380064 E007E944 35EFE07C */  ori       $t7, $t7, (0x703E07C & 0xFFFF)
/* 380068 E007E948 3C12F540 */  lui       $s2, (0xF5400400 >> 16)
/* 38006C E007E94C 36520400 */  ori       $s2, $s2, (0xF5400400 & 0xFFFF)
/* 380070 E007E950 3C100005 */  lui       $s0, (0x54150 >> 16)
/* 380074 E007E954 36104150 */  ori       $s0, $s0, (0x54150 & 0xFFFF)
/* 380078 E007E958 3C130007 */  lui       $s3, (0x7C07C >> 16)
/* 38007C E007E95C 3673C07C */  ori       $s3, $s3, (0x7C07C & 0xFFFF)
/* 380080 E007E960 3C14F548 */  lui       $s4, (0xF5480480 >> 16)
/* 380084 E007E964 36940480 */  ori       $s4, $s4, (0xF5480480 & 0xFFFF)
/* 380088 E007E968 3C17F540 */  lui       $s7, (0xF5400480 >> 16)
/* 38008C E007E96C 36F70480 */  ori       $s7, $s7, (0xF5400480 & 0xFFFF)
/* 380090 E007E970 3C160105 */  lui       $s6, (0x1054150 >> 16)
/* 380094 E007E974 36D64150 */  ori       $s6, $s6, (0x1054150 & 0xFFFF)
/* 380098 E007E978 3C180107 */  lui       $t8, (0x107C07C >> 16)
/* 38009C E007E97C 3718C07C */  ori       $t8, $t8, (0x107C07C & 0xFFFF)
/* 3800A0 E007E980 27A40018 */  addiu     $a0, $sp, 0x18
/* 3800A4 E007E984 3C1E0001 */  lui       $fp, (0x11630 >> 16)
/* 3800A8 E007E988 37DE1630 */  ori       $fp, $fp, (0x11630 & 0xFFFF)
/* 3800AC E007E98C 3C11800A */  lui       $s1, %hi(gMainGfxPos)
/* 3800B0 E007E990 2631A66C */  addiu     $s1, $s1, %lo(gMainGfxPos)
/* 3800B4 E007E994 3C15DE00 */  lui       $s5, (0xDE000000 >> 16)
/* 3800B8 E007E998 3C020900 */  lui       $v0, %hi(D_09000D40_40DFD0)
/* 3800BC E007E99C 24420D40 */  addiu     $v0, $v0, %lo(D_09000D40_40DFD0)
/* 3800C0 E007E9A0 3C0C0900 */  lui       $t4, %hi(D_09000000_415060)
/* 3800C4 E007E9A4 258C0000 */  addiu     $t4, $t4, %lo(D_09000000_415060)
/* 3800C8 E007E9A8 3C0BE600 */  lui       $t3, (0xE6000000 >> 16)
/* 3800CC E007E9AC 3C0AF400 */  lui       $t2, (0xF4000000 >> 16)
/* 3800D0 E007E9B0 8E230000 */  lw        $v1, 0x0($s1)
/* 3800D4 E007E9B4 4480A000 */  mtc1      $zero, $f20
/* 3800D8 E007E9B8 4405B000 */  mfc1      $a1, $f22
/* 3800DC E007E9BC 0060402D */  daddu     $t0, $v1, $zero
/* 3800E0 E007E9C0 24630008 */  addiu     $v1, $v1, 0x8
/* 3800E4 E007E9C4 AE230000 */  sw        $v1, 0x0($s1)
/* 3800E8 E007E9C8 AD020004 */  sw        $v0, 0x4($t0)
/* 3800EC E007E9CC 24620008 */  addiu     $v0, $v1, 0x8
/* 3800F0 E007E9D0 AD150000 */  sw        $s5, 0x0($t0)
/* 3800F4 E007E9D4 AE220000 */  sw        $v0, 0x0($s1)
/* 3800F8 E007E9D8 24020003 */  addiu     $v0, $zero, 0x3
/* 3800FC E007E9DC 4406A000 */  mfc1      $a2, $f20
/* 380100 E007E9E0 3C08F200 */  lui       $t0, (0xF2000000 >> 16)
/* 380104 E007E9E4 AC6D0000 */  sw        $t5, 0x0($v1)
/* 380108 E007E9E8 8FB90098 */  lw        $t9, 0x98($sp)
/* 38010C E007E9EC 4407A000 */  mfc1      $a3, $f20
/* 380110 E007E9F0 00591023 */  subu      $v0, $v0, $t9
/* 380114 E007E9F4 00021240 */  sll       $v0, $v0, 9
/* 380118 E007E9F8 004C1021 */  addu      $v0, $v0, $t4
/* 38011C E007E9FC AC620004 */  sw        $v0, 0x4($v1)
/* 380120 E007EA00 24620010 */  addiu     $v0, $v1, 0x10
/* 380124 E007EA04 AE220000 */  sw        $v0, 0x0($s1)
/* 380128 E007EA08 24620018 */  addiu     $v0, $v1, 0x18
/* 38012C E007EA0C AC690008 */  sw        $t1, 0x8($v1)
/* 380130 E007EA10 AC6E000C */  sw        $t6, 0xC($v1)
/* 380134 E007EA14 AE220000 */  sw        $v0, 0x0($s1)
/* 380138 E007EA18 24620020 */  addiu     $v0, $v1, 0x20
/* 38013C E007EA1C AC6B0010 */  sw        $t3, 0x10($v1)
/* 380140 E007EA20 AC600014 */  sw        $zero, 0x14($v1)
/* 380144 E007EA24 AE220000 */  sw        $v0, 0x0($s1)
/* 380148 E007EA28 24620028 */  addiu     $v0, $v1, 0x28
/* 38014C E007EA2C 3C09E700 */  lui       $t1, (0xE7000000 >> 16)
/* 380150 E007EA30 AC6A0018 */  sw        $t2, 0x18($v1)
/* 380154 E007EA34 AC6F001C */  sw        $t7, 0x1C($v1)
/* 380158 E007EA38 AE220000 */  sw        $v0, 0x0($s1)
/* 38015C E007EA3C 24620030 */  addiu     $v0, $v1, 0x30
/* 380160 E007EA40 AC690020 */  sw        $t1, 0x20($v1)
/* 380164 E007EA44 AC600024 */  sw        $zero, 0x24($v1)
/* 380168 E007EA48 AE220000 */  sw        $v0, 0x0($s1)
/* 38016C E007EA4C 24620038 */  addiu     $v0, $v1, 0x38
/* 380170 E007EA50 AC720028 */  sw        $s2, 0x28($v1)
/* 380174 E007EA54 AC70002C */  sw        $s0, 0x2C($v1)
/* 380178 E007EA58 AE220000 */  sw        $v0, 0x0($s1)
/* 38017C E007EA5C 24620040 */  addiu     $v0, $v1, 0x40
/* 380180 E007EA60 AC680030 */  sw        $t0, 0x30($v1)
/* 380184 E007EA64 AC730034 */  sw        $s3, 0x34($v1)
/* 380188 E007EA68 AE220000 */  sw        $v0, 0x0($s1)
/* 38018C E007EA6C 24020002 */  addiu     $v0, $zero, 0x2
/* 380190 E007EA70 AC6D0038 */  sw        $t5, 0x38($v1)
/* 380194 E007EA74 00591023 */  subu      $v0, $v0, $t9
/* 380198 E007EA78 00021240 */  sll       $v0, $v0, 9
/* 38019C E007EA7C 004C1021 */  addu      $v0, $v0, $t4
/* 3801A0 E007EA80 AC62003C */  sw        $v0, 0x3C($v1)
/* 3801A4 E007EA84 24620048 */  addiu     $v0, $v1, 0x48
/* 3801A8 E007EA88 AE220000 */  sw        $v0, 0x0($s1)
/* 3801AC E007EA8C 24620050 */  addiu     $v0, $v1, 0x50
/* 3801B0 E007EA90 AC740040 */  sw        $s4, 0x40($v1)
/* 3801B4 E007EA94 AC6E0044 */  sw        $t6, 0x44($v1)
/* 3801B8 E007EA98 AE220000 */  sw        $v0, 0x0($s1)
/* 3801BC E007EA9C 24620058 */  addiu     $v0, $v1, 0x58
/* 3801C0 E007EAA0 AC6B0048 */  sw        $t3, 0x48($v1)
/* 3801C4 E007EAA4 AC60004C */  sw        $zero, 0x4C($v1)
/* 3801C8 E007EAA8 AE220000 */  sw        $v0, 0x0($s1)
/* 3801CC E007EAAC 24620060 */  addiu     $v0, $v1, 0x60
/* 3801D0 E007EAB0 AC6A0050 */  sw        $t2, 0x50($v1)
/* 3801D4 E007EAB4 AC6F0054 */  sw        $t7, 0x54($v1)
/* 3801D8 E007EAB8 AE220000 */  sw        $v0, 0x0($s1)
/* 3801DC E007EABC 24620068 */  addiu     $v0, $v1, 0x68
/* 3801E0 E007EAC0 AC690058 */  sw        $t1, 0x58($v1)
/* 3801E4 E007EAC4 AC60005C */  sw        $zero, 0x5C($v1)
/* 3801E8 E007EAC8 AE220000 */  sw        $v0, 0x0($s1)
/* 3801EC E007EACC 24620070 */  addiu     $v0, $v1, 0x70
/* 3801F0 E007EAD0 AC770060 */  sw        $s7, 0x60($v1)
/* 3801F4 E007EAD4 AC760064 */  sw        $s6, 0x64($v1)
/* 3801F8 E007EAD8 AE220000 */  sw        $v0, 0x0($s1)
/* 3801FC E007EADC AC680068 */  sw        $t0, 0x68($v1)
/* 380200 E007EAE0 0C080108 */  jal       shim_guTranslateF
/* 380204 E007EAE4 AC78006C */   sw       $t8, 0x6C($v1)
/* 380208 E007EAE8 27B00058 */  addiu     $s0, $sp, 0x58
/* 38020C E007EAEC 4405C000 */  mfc1      $a1, $f24
/* 380210 E007EAF0 0200202D */  daddu     $a0, $s0, $zero
/* 380214 E007EAF4 00A0302D */  daddu     $a2, $a1, $zero
/* 380218 E007EAF8 0C080110 */  jal       shim_guScaleF
/* 38021C E007EAFC 00A0382D */   daddu    $a3, $a1, $zero
/* 380220 E007EB00 0200202D */  daddu     $a0, $s0, $zero
/* 380224 E007EB04 27A50018 */  addiu     $a1, $sp, 0x18
/* 380228 E007EB08 0C080114 */  jal       shim_guMtxCatF
/* 38022C E007EB0C 00A0302D */   daddu    $a2, $a1, $zero
/* 380230 E007EB10 4405D000 */  mfc1      $a1, $f26
/* 380234 E007EB14 4406A000 */  mfc1      $a2, $f20
/* 380238 E007EB18 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 38023C E007EB1C 0200202D */  daddu     $a0, $s0, $zero
/* 380240 E007EB20 0C080104 */  jal       shim_guRotateF
/* 380244 E007EB24 AFA60010 */   sw       $a2, 0x10($sp)
/* 380248 E007EB28 0200202D */  daddu     $a0, $s0, $zero
/* 38024C E007EB2C 27A50018 */  addiu     $a1, $sp, 0x18
/* 380250 E007EB30 0C080114 */  jal       shim_guMtxCatF
/* 380254 E007EB34 00A0302D */   daddu    $a2, $a1, $zero
/* 380258 E007EB38 27A40018 */  addiu     $a0, $sp, 0x18
/* 38025C E007EB3C 3C108007 */  lui       $s0, %hi(gMatrixListPos)
/* 380260 E007EB40 261041F0 */  addiu     $s0, $s0, %lo(gMatrixListPos)
/* 380264 E007EB44 3C12800A */  lui       $s2, %hi(gDisplayContext)
/* 380268 E007EB48 2652A674 */  addiu     $s2, $s2, %lo(gDisplayContext)
/* 38026C E007EB4C 96050000 */  lhu       $a1, 0x0($s0)
/* 380270 E007EB50 8E420000 */  lw        $v0, 0x0($s2)
/* 380274 E007EB54 00052980 */  sll       $a1, $a1, 6
/* 380278 E007EB58 00BE2821 */  addu      $a1, $a1, $fp
/* 38027C E007EB5C 0C080118 */  jal       shim_guMtxF2L
/* 380280 E007EB60 00452821 */   addu     $a1, $v0, $a1
/* 380284 E007EB64 3C06D838 */  lui       $a2, (0xD8380002 >> 16)
/* 380288 E007EB68 8E240000 */  lw        $a0, 0x0($s1)
/* 38028C E007EB6C 34C60002 */  ori       $a2, $a2, (0xD8380002 & 0xFFFF)
/* 380290 E007EB70 0080282D */  daddu     $a1, $a0, $zero
/* 380294 E007EB74 24840008 */  addiu     $a0, $a0, 0x8
/* 380298 E007EB78 AE240000 */  sw        $a0, 0x0($s1)
/* 38029C E007EB7C 96020000 */  lhu       $v0, 0x0($s0)
/* 3802A0 E007EB80 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 3802A4 E007EB84 ACA30000 */  sw        $v1, 0x0($a1)
/* 3802A8 E007EB88 24430001 */  addiu     $v1, $v0, 0x1
/* 3802AC E007EB8C 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3802B0 E007EB90 00021180 */  sll       $v0, $v0, 6
/* 3802B4 E007EB94 A6030000 */  sh        $v1, 0x0($s0)
/* 3802B8 E007EB98 8E430000 */  lw        $v1, 0x0($s2)
/* 3802BC E007EB9C 005E1021 */  addu      $v0, $v0, $fp
/* 3802C0 E007EBA0 00621821 */  addu      $v1, $v1, $v0
/* 3802C4 E007EBA4 24820008 */  addiu     $v0, $a0, 0x8
/* 3802C8 E007EBA8 ACA30004 */  sw        $v1, 0x4($a1)
/* 3802CC E007EBAC AE220000 */  sw        $v0, 0x0($s1)
/* 3802D0 E007EBB0 3C020900 */  lui       $v0, %hi(D_09000EF8_40E188)
/* 3802D4 E007EBB4 24420EF8 */  addiu     $v0, $v0, %lo(D_09000EF8_40E188)
/* 3802D8 E007EBB8 AC820004 */  sw        $v0, 0x4($a0)
/* 3802DC E007EBBC 24820010 */  addiu     $v0, $a0, 0x10
/* 3802E0 E007EBC0 24030040 */  addiu     $v1, $zero, 0x40
/* 3802E4 E007EBC4 AC950000 */  sw        $s5, 0x0($a0)
/* 3802E8 E007EBC8 AE220000 */  sw        $v0, 0x0($s1)
/* 3802EC E007EBCC 24820018 */  addiu     $v0, $a0, 0x18
/* 3802F0 E007EBD0 AC860008 */  sw        $a2, 0x8($a0)
/* 3802F4 E007EBD4 AC83000C */  sw        $v1, 0xC($a0)
/* 3802F8 E007EBD8 AE220000 */  sw        $v0, 0x0($s1)
/* 3802FC E007EBDC AC860010 */  sw        $a2, 0x10($a0)
/* 380300 E007EBE0 AC830014 */  sw        $v1, 0x14($a0)
/* 380304 E007EBE4 8FBF00C4 */  lw        $ra, 0xC4($sp)
/* 380308 E007EBE8 8FBE00C0 */  lw        $fp, 0xC0($sp)
/* 38030C E007EBEC 8FB700BC */  lw        $s7, 0xBC($sp)
/* 380310 E007EBF0 8FB600B8 */  lw        $s6, 0xB8($sp)
/* 380314 E007EBF4 8FB500B4 */  lw        $s5, 0xB4($sp)
/* 380318 E007EBF8 8FB400B0 */  lw        $s4, 0xB0($sp)
/* 38031C E007EBFC 8FB300AC */  lw        $s3, 0xAC($sp)
/* 380320 E007EC00 8FB200A8 */  lw        $s2, 0xA8($sp)
/* 380324 E007EC04 8FB100A4 */  lw        $s1, 0xA4($sp)
/* 380328 E007EC08 8FB000A0 */  lw        $s0, 0xA0($sp)
/* 38032C E007EC0C D7BA00E0 */  ldc1      $f26, 0xE0($sp)
/* 380330 E007EC10 D7B800D8 */  ldc1      $f24, 0xD8($sp)
/* 380334 E007EC14 D7B600D0 */  ldc1      $f22, 0xD0($sp)
/* 380338 E007EC18 D7B400C8 */  ldc1      $f20, 0xC8($sp)
/* 38033C E007EC1C 03E00008 */  jr        $ra
/* 380340 E007EC20 27BD00E8 */   addiu    $sp, $sp, 0xE8
/* 380344 E007EC24 00000000 */  nop
/* 380348 E007EC28 00000000 */  nop
/* 38034C E007EC2C 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void fire_flower_appendGfx(void* effect) {
    FireFlowerFXData* part = ((EffectInstance*)effect)->data.fireFlower;
    s32 unk_34 = part->unk_34;
    f32 unk_30 = part->unk_30;
    s32 unk_04 = part->unk_04;
    f32 unk_28 = part->unk_28;
    f32 unk_2C = part->unk_2C;
    Matrix4f sp18;
    Matrix4f sp58;
    s32 i;

    gDPPipeSync(gMainGfxPos++);
    gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));

    shim_guTranslateF(sp18, part->pos.x, part->pos.y, part->pos.z);
    shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
    shim_guMtxCatF(sp58, sp18, sp18);
    shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
    gDPSetPrimColor(gMainGfxPos++, 0, 0, 255, 0, 0, part->unk_3C);
    gDPSetEnvColor(gMainGfxPos++, 255, 0, 0, part->unk_38);

    if ((u32) (unk_04 - 4) < 3U) {
        shim_guTranslateF(sp18, 0.0f, 16.0f, 0.0f);
        shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gSPDisplayList(gMainGfxPos++, D_09000DE0_381180);

        part++;
        for (i = 1; i < ((EffectInstance*)effect)->numParts; i++, part++) {
            if (part->unk_40.z == 0) {
                shim_guRotateF(sp18, part->unk_24, 0.0f, 0.0f, 1.0f);
                shim_guTranslateF(sp58, part->pos.x, part->pos.y, part->pos.z);
                shim_guMtxCatF(sp58, sp18, sp18);
                shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

                gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
                gSPDisplayList(gMainGfxPos++, part->unk_00 != 0 ? D_09000ED8_381278 : D_09000EB8_381258);
                gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
            }
        }

        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    }

    gSPDisplayList(gMainGfxPos++, D_09000D40_3810E0);
    gDPLoadTextureTile_4b(
        gMainGfxPos++, D_09000000_3803A0[3 - unk_34],
        G_IM_FMT_CI, 32, 0, 0, 0, 31, 31, 0,
        G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP,
        5, 5, G_TX_NOLOD, G_TX_NOLOD);
    gDPLoadMultiTile_4b(
        gMainGfxPos++, D_09000000_3803A0[2 - unk_34],
        0x0080, 1, G_IM_FMT_CI, 32, 0, 0, 0, 31, 31, 0,
        G_TX_MIRROR | G_TX_WRAP, G_TX_MIRROR | G_TX_WRAP,
        5, 5, G_TX_NOLOD, G_TX_NOLOD);

    shim_guTranslateF(sp18, unk_2C, 0.0f, 0.0f);
    shim_guScaleF(sp58, unk_30, unk_30, unk_30);
    shim_guMtxCatF(sp58, sp18, sp18);
    shim_guRotateF(sp58, unk_28, 0.0f, 1.0f, 0.0f);
    shim_guMtxCatF(sp58, sp18, sp18);
    shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gSPDisplayList(gMainGfxPos++, D_09000EF8_381298);
    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel D_80244F00
/* 1737E0 80244F00 27BDFFC8 */  addiu     $sp, $sp, -0x38
/* 1737E4 80244F04 AFB1001C */  sw        $s1, 0x1C($sp)
/* 1737E8 80244F08 3C11800E */  lui       $s1, %hi(gBattleStatus)
/* 1737EC 80244F0C 2631C070 */  addiu     $s1, $s1, %lo(gBattleStatus)
glabel func_80244F10
/* 1737F0 80244F10 AFB5002C */  sw        $s5, 0x2C($sp)
/* 1737F4 80244F14 3C158011 */  lui       $s5, %hi(gPlayerData)
/* 1737F8 80244F18 26B5F290 */  addiu     $s5, $s5, %lo(gPlayerData)
.L80244F1C:
/* 1737FC 80244F1C AFB40028 */  sw        $s4, 0x28($sp)
/* 173800 80244F20 3C14800E */  lui       $s4, %hi(gBattleSubState)
flo_14_pad_4F24:
/* 173804 80244F24 2694C4DC */  addiu     $s4, $s4, %lo(gBattleSubState)
.L80244F28:
/* 173808 80244F28 AFBF0030 */  sw        $ra, 0x30($sp)
.L80244F2C:
/* 17380C 80244F2C AFB30024 */  sw        $s3, 0x24($sp)
D_80244F30:
/* 173810 80244F30 AFB20020 */  sw        $s2, 0x20($sp)
/* 173814 80244F34 AFB00018 */  sw        $s0, 0x18($sp)
D_80244F38:
/* 173818 80244F38 8E3300D8 */  lw        $s3, 0xD8($s1)
flo_08_pad_4F3C:
/* 17381C 80244F3C 8E900000 */  lw        $s0, 0x0($s4)
D_80244F40:
/* 173820 80244F40 8E3200DC */  lw        $s2, 0xDC($s1)
glabel func_80244F44
/* 173824 80244F44 12000005 */  beqz      $s0, func_80244F5C
D_80244F48:
/* 173828 80244F48 24020002 */   addiu    $v0, $zero, 0x2
/* 17382C 80244F4C 12020060 */  beq       $s0, $v0, .L802450D0
D_80244F50:
/* 173830 80244F50 00000000 */   nop
/* 173834 80244F54 0809146D */  j         .L802451B4
/* 173838 80244F58 00000000 */   nop
glabel func_80244F5C
/* 17383C 80244F5C 3C03FFFB */  lui       $v1, (0xFFFBFFFF >> 16)
/* 173840 80244F60 3463FFFF */  ori       $v1, $v1, (0xFFFBFFFF & 0xFFFF)
flo_14_pad_4F64:
/* 173844 80244F64 24040019 */  addiu     $a0, $zero, 0x19
/* 173848 80244F68 8E220000 */  lw        $v0, 0x0($s1)
/* 17384C 80244F6C 0000802D */  daddu     $s0, $zero, $zero
D_80244F70:
/* 173850 80244F70 A220008C */  sb        $zero, 0x8C($s1)
/* 173854 80244F74 00431024 */  and       $v0, $v0, $v1
D_80244F78:
/* 173858 80244F78 AE220000 */  sw        $v0, 0x0($s1)
/* 17385C 80244F7C 8E220004 */  lw        $v0, 0x4($s1)
/* 173860 80244F80 96A302A6 */  lhu       $v1, 0x2A6($s5)
D_80244F84:
/* 173864 80244F84 3442001E */  ori       $v0, $v0, 0x1E
D_80244F88_EC7188:
/* 173868 80244F88 24630001 */  addiu     $v1, $v1, 0x1
/* 17386C 80244F8C AE220004 */  sw        $v0, 0x4($s1)
D_80244F90_EC7190:
/* 173870 80244F90 0C093903 */  jal       func_8024E40C
.L80244F94:
/* 173874 80244F94 A6A302A6 */   sh       $v1, 0x2A6($s5)
D_80244F98:
/* 173878 80244F98 0C09390F */  jal       func_8024E43C
/* 17387C 80244F9C 0200202D */   daddu    $a0, $s0, $zero
flo_25_ItemChoiceList:
/* 173880 80244FA0 0200302D */  daddu     $a2, $s0, $zero
D_80244FA4:
/* 173884 80244FA4 3C070040 */  lui       $a3, (0x400000 >> 16)
D_80244FA8:
/* 173888 80244FA8 0220282D */  daddu     $a1, $s1, $zero
/* 17388C 80244FAC 44801000 */  mtc1      $zero, $f2
D_80244FB0:
/* 173890 80244FB0 8CA400E0 */  lw        $a0, 0xE0($a1)
/* 173894 80244FB4 50800017 */  beql      $a0, $zero, D_80245014
D_80244FB8:
/* 173898 80244FB8 24C60001 */   addiu    $a2, $a2, 0x1
/* 17389C 80244FBC 8C830000 */  lw        $v1, 0x0($a0)
.L80244FC0:
/* 1738A0 80244FC0 30624000 */  andi      $v0, $v1, 0x4000
/* 1738A4 80244FC4 54400013 */  bnel      $v0, $zero, D_80245014
D_80244FC8:
/* 1738A8 80244FC8 24C60001 */   addiu    $a2, $a2, 0x1
/* 1738AC 80244FCC 00671024 */  and       $v0, $v1, $a3
D_80244FD0:
/* 1738B0 80244FD0 54400010 */  bnel      $v0, $zero, D_80245014
glabel func_80244FD4
/* 1738B4 80244FD4 24C60001 */   addiu    $a2, $a2, 0x1
/* 1738B8 80244FD8 8C820008 */  lw        $v0, 0x8($a0)
D_80244FDC:
/* 1738BC 80244FDC 90430018 */  lbu       $v1, 0x18($v0)
/* 1738C0 80244FE0 90820210 */  lbu       $v0, 0x210($a0)
.L80244FE4:
/* 1738C4 80244FE4 44830000 */  mtc1      $v1, $f0
.L80244FE8:
/* 1738C8 80244FE8 00000000 */  nop
D_80244FEC:
/* 1738CC 80244FEC 46800020 */  cvt.s.w   $f0, $f0
.L80244FF0:
/* 1738D0 80244FF0 2442FFFD */  addiu     $v0, $v0, -0x3
/* 1738D4 80244FF4 2C420006 */  sltiu     $v0, $v0, 0x6
arn_05_pad_4FF8:
/* 1738D8 80244FF8 10400004 */  beqz      $v0, .L8024500C
.L80244FFC:
/* 1738DC 80244FFC 26100001 */   addiu    $s0, $s0, 0x1
D_80245000:
/* 1738E0 80245000 3C0142C8 */  lui       $at, (0x42C80000 >> 16)
D_80245004:
/* 1738E4 80245004 44810000 */  mtc1      $at, $f0
/* 1738E8 80245008 00000000 */  nop
.L8024500C:
/* 1738EC 8024500C 46001080 */  add.s     $f2, $f2, $f0
D_80245010:
/* 1738F0 80245010 24C60001 */  addiu     $a2, $a2, 0x1
D_80245014:
/* 1738F4 80245014 28C20018 */  slti      $v0, $a2, 0x18
glabel func_80245018
/* 1738F8 80245018 1440FFE5 */  bnez      $v0, D_80244FB0
D_8024501C:
/* 1738FC 8024501C 24A50004 */   addiu    $a1, $a1, 0x4
D_80245020:
/* 173900 80245020 44900000 */  mtc1      $s0, $f0
/* 173904 80245024 00000000 */  nop
glabel func_80245028
/* 173908 80245028 46800020 */  cvt.s.w   $f0, $f0
.L8024502C:
/* 17390C 8024502C 46001003 */  div.s     $f0, $f2, $f0
.L80245030:
/* 173910 80245030 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* 173914 80245034 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
D_80245038:
/* 173918 80245038 4600010D */  trunc.w.s $f4, $f0
/* 17391C 8024503C E6640088 */  swc1      $f4, 0x88($s3)
D_80245040:
/* 173920 80245040 80430074 */  lb        $v1, 0x74($v0)
/* 173924 80245044 24020004 */  addiu     $v0, $zero, 0x4
D_80245048:
/* 173928 80245048 14620002 */  bne       $v1, $v0, D_80245054
/* 17392C 8024504C 24020064 */   addiu    $v0, $zero, 0x64
D_80245050:
/* 173930 80245050 AE620088 */  sw        $v0, 0x88($s3)
D_80245054:
/* 173934 80245054 3C048028 */  lui       $a0, %hi(EVS_Mario_HandlePhase)
D_80245058:
/* 173938 80245058 24844EBC */  addiu     $a0, $a0, %lo(EVS_Mario_HandlePhase)
/* 17393C 8024505C 2405000A */  addiu     $a1, $zero, 0xA
D_80245060:
/* 173940 80245060 0000302D */  daddu     $a2, $zero, $zero
.L80245064:
/* 173944 80245064 24020003 */  addiu     $v0, $zero, 0x3
D_80245068:
/* 173948 80245068 0C0B0CF8 */  jal       start_script
/* 17394C 8024506C A22201A7 */   sb       $v0, 0x1A7($s1)
.L80245070:
/* 173950 80245070 0040182D */  daddu     $v1, $v0, $zero
/* 173954 80245074 AE6301D4 */  sw        $v1, 0x1D4($s3)
/* 173958 80245078 8C620144 */  lw        $v0, 0x144($v1)
.L8024507C:
/* 17395C 8024507C AE6201E4 */  sw        $v0, 0x1E4($s3)
/* 173960 80245080 1240000E */  beqz      $s2, D_802450BC
.L80245084:
/* 173964 80245084 AC600148 */   sw       $zero, 0x148($v1)
/* 173968 80245088 82420216 */  lb        $v0, 0x216($s2)
D_8024508C:
/* 17396C 8024508C 1440000C */  bnez      $v0, .L802450C0
D_80245090:
/* 173970 80245090 24020002 */   addiu    $v0, $zero, 0x2
.L80245094:
/* 173974 80245094 2405000A */  addiu     $a1, $zero, 0xA
.L80245098:
/* 173978 80245098 8E4401C4 */  lw        $a0, 0x1C4($s2)
/* 17397C 8024509C 0C0B0CF8 */  jal       start_script
D_802450A0:
/* 173980 802450A0 0000302D */   daddu    $a2, $zero, $zero
/* 173984 802450A4 0040182D */  daddu     $v1, $v0, $zero
/* 173988 802450A8 AE4301D4 */  sw        $v1, 0x1D4($s2)
/* 17398C 802450AC 8C620144 */  lw        $v0, 0x144($v1)
D_802450B0:
/* 173990 802450B0 AE4201E4 */  sw        $v0, 0x1E4($s2)
D_802450B4:
/* 173994 802450B4 24020100 */  addiu     $v0, $zero, 0x100
/* 173998 802450B8 AC620148 */  sw        $v0, 0x148($v1)
D_802450BC:
/* 17399C 802450BC 24020002 */  addiu     $v0, $zero, 0x2
.L802450C0:
/* 1739A0 802450C0 3C01800E */  lui       $at, %hi(gBattleSubState)
/* 1739A4 802450C4 AC22C4DC */  sw        $v0, %lo(gBattleSubState)($at)
/* 1739A8 802450C8 0809146D */  j         .L802451B4
/* 1739AC 802450CC 00000000 */   nop
.L802450D0:
/* 1739B0 802450D0 0C0B1059 */  jal       does_script_exist
/* 1739B4 802450D4 8E6401E4 */   lw       $a0, 0x1E4($s3)
.L802450D8:
/* 1739B8 802450D8 14400036 */  bnez      $v0, .L802451B4
glabel func_802450DC
/* 1739BC 802450DC 00000000 */   nop
/* 1739C0 802450E0 8222008C */  lb        $v0, 0x8C($s1)
/* 1739C4 802450E4 14400033 */  bnez      $v0, .L802451B4
/* 1739C8 802450E8 3C030004 */   lui      $v1, (0x40000 >> 16)
/* 1739CC 802450EC 8E220000 */  lw        $v0, 0x0($s1)
/* 1739D0 802450F0 00431024 */  and       $v0, $v0, $v1
/* 1739D4 802450F4 14400003 */  bnez      $v0, D_80245104
/* 1739D8 802450F8 24020003 */   addiu    $v0, $zero, 0x3
D_802450FC:
/* 1739DC 802450FC 0809146D */  j         .L802451B4
.L80245100:
/* 1739E0 80245100 AE820000 */   sw       $v0, 0x0($s4)
D_80245104:
/* 1739E4 80245104 3C02800B */  lui       $v0, %hi(gCurrentEncounter)
D_80245108:
/* 1739E8 80245108 24420F10 */  addiu     $v0, $v0, %lo(gCurrentEncounter)
flo_25_D_8024510C_pad:
/* 1739EC 8024510C A0500009 */  sb        $s0, 0x9($v0)
flo_25_FlowerGuard_ItemChoiceList:
/* 1739F0 80245110 0C03A752 */  jal       is_ability_active
D_80245114:
/* 1739F4 80245114 24040017 */   addiu    $a0, $zero, 0x17
D_80245118:
/* 1739F8 80245118 14400003 */  bnez      $v0, .L80245128
/* 1739FC 8024511C 2402000B */   addiu    $v0, $zero, 0xB
D_80245120:
/* 173A00 80245120 0809146D */  j         .L802451B4
/* 173A04 80245124 AE820000 */   sw       $v0, 0x0($s4)
.L80245128:
/* 173A08 80245128 0C03A6B9 */  jal       status_bar_start_blinking_starpoints
.L8024512C:
/* 173A0C 8024512C 00000000 */   nop
/* 173A10 80245130 0C08F841 */  jal       func_8023E104
D_80245134:
/* 173A14 80245134 00000000 */   nop
/* 173A18 80245138 82230078 */  lb        $v1, 0x78($s1)
.L8024513C:
/* 173A1C 8024513C 00031040 */  sll       $v0, $v1, 1
.L80245140:
/* 173A20 80245140 00431021 */  addu      $v0, $v0, $v1
/* 173A24 80245144 000210C0 */  sll       $v0, $v0, 3
/* 173A28 80245148 00431021 */  addu      $v0, $v0, $v1
D_8024514C:
/* 173A2C 8024514C 00021080 */  sll       $v0, $v0, 2
D_80245150:
/* 173A30 80245150 24030014 */  addiu     $v1, $zero, 0x14
D_80245154:
/* 173A34 80245154 14600002 */  bnez      $v1, D_80245160
/* 173A38 80245158 0043001A */   div      $zero, $v0, $v1
/* 173A3C 8024515C 0007000D */  break     7
D_80245160:
/* 173A40 80245160 2401FFFF */  addiu     $at, $zero, -0x1
D_80245164:
/* 173A44 80245164 14610004 */  bne       $v1, $at, .L80245178
/* 173A48 80245168 3C018000 */   lui      $at, (0x80000000 >> 16)
.L8024516C:
/* 173A4C 8024516C 14410002 */  bne       $v0, $at, .L80245178
/* 173A50 80245170 00000000 */   nop
.L80245174:
/* 173A54 80245174 0006000D */  break     6
.L80245178:
/* 173A58 80245178 00002012 */  mflo      $a0
D_8024517C:
/* 173A5C 8024517C 3C01802A */  lui       $at, %hi(D_8029F264)
.L80245180:
/* 173A60 80245180 AC20F264 */  sw        $zero, %lo(D_8029F264)($at)
/* 173A64 80245184 3C01802A */  lui       $at, %hi(D_8029F24C)
/* 173A68 80245188 AC20F24C */  sw        $zero, %lo(D_8029F24C)($at)
D_8024518C:
/* 173A6C 8024518C 3C018028 */  lui       $at, %hi(BattleScreenFadeAmt)
/* 173A70 80245190 AC200A30 */  sw        $zero, %lo(BattleScreenFadeAmt)($at)
/* 173A74 80245194 3C01802A */  lui       $at, %hi(RunAwayRewardStep)
/* 173A78 80245198 AC23F250 */  sw        $v1, %lo(RunAwayRewardStep)($at)
D_8024519C:
/* 173A7C 8024519C 2403000A */  addiu     $v1, $zero, 0xA
/* 173A80 802451A0 AE830000 */  sw        $v1, 0x0($s4)
/* 173A84 802451A4 3C01802A */  lui       $at, %hi(RunAwayRewardTotal)
/* 173A88 802451A8 AC22F25C */  sw        $v0, %lo(RunAwayRewardTotal)($at)
D_802451AC:
/* 173A8C 802451AC 3C01802A */  lui       $at, %hi(RunAwayRewardIncrement)
D_802451B0:
/* 173A90 802451B0 AC24F260 */  sw        $a0, %lo(RunAwayRewardIncrement)($at)
.L802451B4:
/* 173A94 802451B4 3C03800E */  lui       $v1, %hi(gBattleSubState)
D_802451B8:
/* 173A98 802451B8 8C63C4DC */  lw        $v1, %lo(gBattleSubState)($v1)
D_802451BC:
/* 173A9C 802451BC 2402000A */  addiu     $v0, $zero, 0xA
D_802451C0:
/* 173AA0 802451C0 14620043 */  bne       $v1, $v0, D_802452D0
D_802451C4:
/* 173AA4 802451C4 2402000B */   addiu    $v0, $zero, 0xB
D_802451C8:
/* 173AA8 802451C8 82220078 */  lb        $v0, 0x78($s1)
/* 173AAC 802451CC 10400027 */  beqz      $v0, D_8024526C
/* 173AB0 802451D0 3C0551EB */   lui      $a1, (0x51EB851F >> 16)
D_802451D4:
/* 173AB4 802451D4 3C04802A */  lui       $a0, %hi(RunAwayRewardTotal)
jtbl_802451D8:
/* 173AB8 802451D8 2484F25C */  addiu     $a0, $a0, %lo(RunAwayRewardTotal)
/* 173ABC 802451DC 8C820000 */  lw        $v0, 0x0($a0)
/* 173AC0 802451E0 3C03802A */  lui       $v1, %hi(RunAwayRewardIncrement)
.L802451E4:
/* 173AC4 802451E4 8C63F260 */  lw        $v1, %lo(RunAwayRewardIncrement)($v1)
/* 173AC8 802451E8 34A5851F */  ori       $a1, $a1, (0x51EB851F & 0xFFFF)
D_802451EC:
/* 173ACC 802451EC 00431023 */  subu      $v0, $v0, $v1
D_802451F0:
/* 173AD0 802451F0 00450018 */  mult      $v0, $a1
/* 173AD4 802451F4 AC820000 */  sw        $v0, 0x0($a0)
D_802451F8:
/* 173AD8 802451F8 000217C3 */  sra       $v0, $v0, 31
.L802451FC:
/* 173ADC 802451FC 82240078 */  lb        $a0, 0x78($s1)
D_80245200:
/* 173AE0 80245200 00004010 */  mfhi      $t0
/* 173AE4 80245204 00081943 */  sra       $v1, $t0, 5
D_80245208:
/* 173AE8 80245208 00621823 */  subu      $v1, $v1, $v0
/* 173AEC 8024520C 00031600 */  sll       $v0, $v1, 24
D_80245210:
/* 173AF0 80245210 00021603 */  sra       $v0, $v0, 24
/* 173AF4 80245214 00828023 */  subu      $s0, $a0, $v0
/* 173AF8 80245218 1A000003 */  blez      $s0, D_80245228
D_8024521C:
/* 173AFC 8024521C A2230078 */   sb       $v1, 0x78($s1)
/* 173B00 80245220 0C05272D */  jal       sfx_play_sound
D_80245224:
/* 173B04 80245224 24040211 */   addiu    $a0, $zero, 0x211
D_80245228:
/* 173B08 80245228 92A20010 */  lbu       $v0, 0x10($s5)
glabel func_8024522C
/* 173B0C 8024522C 3C038028 */  lui       $v1, %hi(BattleScreenFadeAmt)
D_80245230:
/* 173B10 80245230 24630A30 */  addiu     $v1, $v1, %lo(BattleScreenFadeAmt)
/* 173B14 80245234 00501021 */  addu      $v0, $v0, $s0
/* 173B18 80245238 A2A20010 */  sb        $v0, 0x10($s5)
/* 173B1C 8024523C 8C620000 */  lw        $v0, 0x0($v1)
/* 173B20 80245240 3C04802A */  lui       $a0, %hi(RunAwayRewardStep)
/* 173B24 80245244 8C84F250 */  lw        $a0, %lo(RunAwayRewardStep)($a0)
/* 173B28 80245248 24420001 */  addiu     $v0, $v0, 0x1
/* 173B2C 8024524C 14800007 */  bnez      $a0, D_8024526C
D_80245250:
/* 173B30 80245250 AC620000 */   sw       $v0, 0x0($v1)
/* 173B34 80245254 82220078 */  lb        $v0, 0x78($s1)
D_80245258:
/* 173B38 80245258 10400004 */  beqz      $v0, D_8024526C
D_8024525C:
/* 173B3C 8024525C 00000000 */   nop
/* 173B40 80245260 92A20010 */  lbu       $v0, 0x10($s5)
/* 173B44 80245264 24420001 */  addiu     $v0, $v0, 0x1
D_80245268:
/* 173B48 80245268 A2A20010 */  sb        $v0, 0x10($s5)
D_8024526C:
/* 173B4C 8024526C 82A20010 */  lb        $v0, 0x10($s5)
/* 173B50 80245270 28420063 */  slti      $v0, $v0, 0x63
.L80245274:
/* 173B54 80245274 14400002 */  bnez      $v0, D_80245280
D_80245278:
/* 173B58 80245278 24020063 */   addiu    $v0, $zero, 0x63
D_8024527C:
/* 173B5C 8024527C A2A20010 */  sb        $v0, 0x10($s5)
D_80245280:
/* 173B60 80245280 82220078 */  lb        $v0, 0x78($s1)
/* 173B64 80245284 1440000F */  bnez      $v0, func_802452C4
glabel func_80245288
/* 173B68 80245288 00000000 */   nop
/* 173B6C 8024528C 3C03802A */  lui       $v1, %hi(RunAwayRewardStep)
D_80245290:
/* 173B70 80245290 2463F250 */  addiu     $v1, $v1, %lo(RunAwayRewardStep)
.L80245294:
/* 173B74 80245294 8C620000 */  lw        $v0, 0x0($v1)
D_80245298:
/* 173B78 80245298 10400003 */  beqz      $v0, D_802452A8
.L8024529C:
/* 173B7C 8024529C 2442FFFF */   addiu    $v0, $v0, -0x1
D_802452A0:
/* 173B80 802452A0 080914B1 */  j         func_802452C4
/* 173B84 802452A4 AC620000 */   sw       $v0, 0x0($v1)
D_802452A8:
/* 173B88 802452A8 0C03A6C3 */  jal       status_bar_stop_blinking_starpoints
D_802452AC:
/* 173B8C 802452AC 00000000 */   nop
D_802452B0:
/* 173B90 802452B0 0C08F847 */  jal       func_8023E11C
D_802452B4:
/* 173B94 802452B4 00000000 */   nop
D_802452B8:
/* 173B98 802452B8 2402000B */  addiu     $v0, $zero, 0xB
/* 173B9C 802452BC 3C01800E */  lui       $at, %hi(gBattleSubState)
jtbl_802452C0:
/* 173BA0 802452C0 AC22C4DC */  sw        $v0, %lo(gBattleSubState)($at)
glabel func_802452C4
/* 173BA4 802452C4 3C03800E */  lui       $v1, %hi(gBattleSubState)
D_802452C8:
/* 173BA8 802452C8 8C63C4DC */  lw        $v1, %lo(gBattleSubState)($v1)
/* 173BAC 802452CC 2402000B */  addiu     $v0, $zero, 0xB
D_802452D0:
/* 173BB0 802452D0 14620011 */  bne       $v1, $v0, D_80245318
/* 173BB4 802452D4 3C030200 */   lui      $v1, (0x2000000 >> 16)
/* 173BB8 802452D8 96A202A8 */  lhu       $v0, 0x2A8($s5)
/* 173BBC 802452DC 24420001 */  addiu     $v0, $v0, 0x1
/* 173BC0 802452E0 A6A202A8 */  sh        $v0, 0x2A8($s5)
/* 173BC4 802452E4 3C02800E */  lui       $v0, %hi(gBattleStatus + 0x4)
D_802452E8:
/* 173BC8 802452E8 8C42C074 */  lw        $v0, %lo(gBattleStatus + 0x4)($v0)
/* 173BCC 802452EC 00431024 */  and       $v0, $v0, $v1
.L802452F0:
/* 173BD0 802452F0 14400007 */  bnez      $v0, D_80245310
/* 173BD4 802452F4 24020008 */   addiu    $v0, $zero, 0x8
D_802452F8:
/* 173BD8 802452F8 AFA20010 */  sw        $v0, 0x10($sp)
/* 173BDC 802452FC 0000202D */  daddu     $a0, $zero, $zero
D_80245300:
/* 173BE0 80245300 2405FFFF */  addiu     $a1, $zero, -0x1
D_80245304:
/* 173BE4 80245304 0080302D */  daddu     $a2, $a0, $zero
D_80245308:
/* 173BE8 80245308 0C052A46 */  jal       bgm_set_song
.L8024530C:
/* 173BEC 8024530C 240705DC */   addiu    $a3, $zero, 0x5DC
D_80245310:
/* 173BF0 80245310 0C090464 */  jal       func_80241190
D_80245314:
/* 173BF4 80245314 24040020 */   addiu    $a0, $zero, 0x20
D_80245318:
/* 173BF8 80245318 3C03800E */  lui       $v1, %hi(gBattleSubState)
.L8024531C:
/* 173BFC 8024531C 8C63C4DC */  lw        $v1, %lo(gBattleSubState)($v1)
D_80245320:
/* 173C00 80245320 24020003 */  addiu     $v0, $zero, 0x3
D_80245324:
/* 173C04 80245324 10620005 */  beq       $v1, $v0, D_8024533C
D_80245328:
/* 173C08 80245328 24020004 */   addiu    $v0, $zero, 0x4
/* 173C0C 8024532C 10620022 */  beq       $v1, $v0, D_802453B8_EF79C8
D_80245330:
/* 173C10 80245330 00000000 */   nop
/* 173C14 80245334 08091505 */  j         .L80245414
D_80245338:
/* 173C18 80245338 00000000 */   nop
D_8024533C:
/* 173C1C 8024533C 3C048028 */  lui       $a0, %hi(EVS_Mario_HandlePhase)
D_80245340:
/* 173C20 80245340 24844EBC */  addiu     $a0, $a0, %lo(EVS_Mario_HandlePhase)
/* 173C24 80245344 2405000A */  addiu     $a1, $zero, 0xA
D_80245348:
/* 173C28 80245348 0000302D */  daddu     $a2, $zero, $zero
/* 173C2C 8024534C 24020007 */  addiu     $v0, $zero, 0x7
D_80245350_EEB900:
/* 173C30 80245350 0C0B0CF8 */  jal       start_script
glabel func_80245354
/* 173C34 80245354 A22201A7 */   sb       $v0, 0x1A7($s1)
D_80245358_EEB908:
/* 173C38 80245358 0040182D */  daddu     $v1, $v0, $zero
D_8024535C:
/* 173C3C 8024535C AE6301D4 */  sw        $v1, 0x1D4($s3)
D_80245360_EEB910:
/* 173C40 80245360 8C620144 */  lw        $v0, 0x144($v1)
/* 173C44 80245364 AE6201E4 */  sw        $v0, 0x1E4($s3)
D_80245368_EEB918:
/* 173C48 80245368 1240000E */  beqz      $s2, .L802453A4
D_8024536C:
/* 173C4C 8024536C AC600148 */   sw       $zero, 0x148($v1)
D_80245370_EEB920:
/* 173C50 80245370 82420216 */  lb        $v0, 0x216($s2)
D_80245374:
/* 173C54 80245374 1440000C */  bnez      $v0, .L802453A8
D_80245378_EEB928:
/* 173C58 80245378 24020004 */   addiu    $v0, $zero, 0x4
/* 173C5C 8024537C 2405000A */  addiu     $a1, $zero, 0xA
D_80245380_EEB930:
/* 173C60 80245380 8E4401C4 */  lw        $a0, 0x1C4($s2)
/* 173C64 80245384 0C0B0CF8 */  jal       start_script
D_80245388_EEB938:
/* 173C68 80245388 0000302D */   daddu    $a2, $zero, $zero
/* 173C6C 8024538C 0040182D */  daddu     $v1, $v0, $zero
D_80245390_EEB940:
/* 173C70 80245390 AE4301D4 */  sw        $v1, 0x1D4($s2)
/* 173C74 80245394 8C620144 */  lw        $v0, 0x144($v1)
jtbl_80245398:
/* 173C78 80245398 AE4201E4 */  sw        $v0, 0x1E4($s2)
.L8024539C:
/* 173C7C 8024539C 24020100 */  addiu     $v0, $zero, 0x100
.L802453A0:
/* 173C80 802453A0 AC620148 */  sw        $v0, 0x148($v1)
.L802453A4:
/* 173C84 802453A4 24020004 */  addiu     $v0, $zero, 0x4
.L802453A8:
/* 173C88 802453A8 3C01800E */  lui       $at, %hi(gBattleSubState)
/* 173C8C 802453AC AC22C4DC */  sw        $v0, %lo(gBattleSubState)($at)
D_802453B0:
/* 173C90 802453B0 08091505 */  j         .L80245414
/* 173C94 802453B4 00000000 */   nop
D_802453B8_EF79C8:
/* 173C98 802453B8 3C03802A */  lui       $v1, %hi(D_8029F248)
.L802453BC:
/* 173C9C 802453BC 2463F248 */  addiu     $v1, $v1, %lo(D_8029F248)
D_802453C0_EF79D0:
/* 173CA0 802453C0 8C620000 */  lw        $v0, 0x0($v1)
/* 173CA4 802453C4 10400003 */  beqz      $v0, .L802453D4
D_802453C8:
/* 173CA8 802453C8 2442FFFF */   addiu    $v0, $v0, -0x1
.L802453CC:
/* 173CAC 802453CC 08091505 */  j         .L80245414
D_802453D0:
/* 173CB0 802453D0 AC620000 */   sw       $v0, 0x0($v1)
.L802453D4:
/* 173CB4 802453D4 8E6401E4 */  lw        $a0, 0x1E4($s3)
D_802453D8:
/* 173CB8 802453D8 0C0B1059 */  jal       does_script_exist
/* 173CBC 802453DC 00000000 */   nop
D_802453E0_EEB990:
/* 173CC0 802453E0 1440000C */  bnez      $v0, .L80245414
/* 173CC4 802453E4 00000000 */   nop
/* 173CC8 802453E8 12400005 */  beqz      $s2, D_80245400
/* 173CCC 802453EC 00000000 */   nop
D_802453F0:
/* 173CD0 802453F0 0C0B1059 */  jal       does_script_exist
/* 173CD4 802453F4 8E4401E4 */   lw       $a0, 0x1E4($s2)
D_802453F8:
/* 173CD8 802453F8 14400006 */  bnez      $v0, .L80245414
.L802453FC:
/* 173CDC 802453FC 00000000 */   nop
D_80245400:
/* 173CE0 80245400 8222008C */  lb        $v0, 0x8C($s1)
.L80245404:
/* 173CE4 80245404 14400003 */  bnez      $v0, .L80245414
D_80245408_EF7A18:
/* 173CE8 80245408 00000000 */   nop
/* 173CEC 8024540C 0C090464 */  jal       func_80241190
jtbl_80245410:
/* 173CF0 80245410 24040009 */   addiu    $a0, $zero, 0x9
.L80245414:
/* 173CF4 80245414 8FBF0030 */  lw        $ra, 0x30($sp)
.L80245418:
/* 173CF8 80245418 8FB5002C */  lw        $s5, 0x2C($sp)
.L8024541C:
/* 173CFC 8024541C 8FB40028 */  lw        $s4, 0x28($sp)
/* 173D00 80245420 8FB30024 */  lw        $s3, 0x24($sp)
.L80245424:
/* 173D04 80245424 8FB20020 */  lw        $s2, 0x20($sp)
/* 173D08 80245428 8FB1001C */  lw        $s1, 0x1C($sp)
/* 173D0C 8024542C 8FB00018 */  lw        $s0, 0x18($sp)
D_80245430:
/* 173D10 80245430 03E00008 */  jr        $ra
D_80245434:
/* 173D14 80245434 27BD0038 */   addiu    $sp, $sp, 0x38

### DECOMPILED C INSTRUCTIONS:

void btl_state_update_run_away(void) {
    BattleStatus* battleStatus = &gBattleStatus;
    PlayerData* playerData = &gPlayerData;
    EncounterStatus* currentEncounter = &gCurrentEncounter;
    Actor* player = battleStatus->playerActor;
    Actor* partner = battleStatus->partnerActor;
    Actor* enemy;
    s32 enemyCount;
    f32 totalEscapeChance;
    Evt* script;
    s32 i;

    switch (gBattleSubState) {
        case BTL_SUBSTATE_RUN_AWAY_EXEC_SCRIPT:
            battleStatus->stateFreezeCount = 0;
            gBattleStatus.flags1 &= ~BS_FLAGS1_BATTLE_FLED;
            gBattleStatus.flags2 |= BS_FLAGS2_10 | BS_FLAGS2_8 | BS_FLAGS2_4 | BS_FLAGS2_2;
            playerData->unk_2A6++;
            btl_cam_use_preset(BTL_CAM_PRESET_25);
            btl_cam_target_actor(ACTOR_PLAYER);

            // calculate average escape chance
            enemyCount = 0;
            totalEscapeChance = 0.0f;

            for (i = 0; i < ARRAY_COUNT(battleStatus->enemyActors); i++) {
                enemy = battleStatus->enemyActors[i];
                if (enemy != NULL) {
                    if (!(enemy->flags & ACTOR_FLAG_TARGET_ONLY)) {
                        if (!(enemy->flags & ACTOR_FLAG_NO_DMG_APPLY)) {
                            f32 escapeChance = enemy->actorBlueprint->escapeChance;

                            if (enemy->debuff == STATUS_KEY_FEAR ||
                                enemy->debuff == STATUS_KEY_DIZZY ||
                                enemy->debuff == STATUS_KEY_PARALYZE ||
                                enemy->debuff == STATUS_KEY_SLEEP ||
                                enemy->debuff == STATUS_KEY_FROZEN ||
                                enemy->debuff == STATUS_KEY_STOP)
                            {
                                escapeChance = 100.0f;
                            }
                            totalEscapeChance += escapeChance;
                            enemyCount += 1;
                        }
                    }
                }
            }
            player->state.varTable[0] = totalEscapeChance / enemyCount;

            if (gGameStatusPtr->debugEnemyContact == DEBUG_CONTACT_AUTO_FLEE) {
                player->state.varTable[0] = 100;
            }

            battleStatus->battlePhase = PHASE_RUN_AWAY_START;
            script = start_script(&EVS_Mario_HandlePhase, EVT_PRIORITY_A, 0);
            player->takeTurnScript = script;
            player->takeTurnScriptID = script->id;
            script->owner1.actorID = ACTOR_PLAYER;
            if (partner != NULL && partner->koStatus == 0) {
                script = start_script(partner->takeTurnSource, EVT_PRIORITY_A, 0);
                partner->takeTurnScript = script;
                partner->takeTurnScriptID = script->id;
                script->owner1.actorID = ACTOR_PARTNER;
            }
            gBattleSubState = BTL_SUBSTATE_RUN_AWAY_AWAIT_SCRIPT;
            break;
        case BTL_SUBSTATE_RUN_AWAY_AWAIT_SCRIPT:
            if (does_script_exist(player->takeTurnScriptID) || battleStatus->stateFreezeCount != 0) {
                break;
            }
            if (!(gBattleStatus.flags1 & BS_FLAGS1_BATTLE_FLED)) {
                gBattleSubState = BTL_SUBSTATE_RUN_AWAY_EXEC_POST_FAILURE;
            } else {
                currentEncounter->battleOutcome = OUTCOME_PLAYER_FLED;
                if (is_ability_active(ABILITY_RUNAWAY_PAY) == 0) {
                    gBattleSubState = BTL_SUBSTATE_RUN_AWAY_DONE;
                } else {
                    status_bar_start_blinking_starpoints();
                    func_8023E104();
                    D_8029F264 = 0;
                    D_8029F24C = 0;
                    BattleScreenFadeAmt = 0;
                    // divide reward into 20 increments
                    RunAwayRewardTotal = battleStatus->totalStarPoints * 100;
                    RunAwayRewardStep = 20;
                    RunAwayRewardIncrement = RunAwayRewardTotal / RunAwayRewardStep;
                    gBattleSubState = BTL_SUBSTATE_RUN_AWAY_GIVE_STAR_POINTS;
                }
            }
            break;
    }

    if (gBattleSubState == BTL_SUBSTATE_RUN_AWAY_GIVE_STAR_POINTS) {
        if (battleStatus->totalStarPoints != 0) {
            s32 prevSP;

            //TODO shouldnt need to reuse enemyCount here, see BTL_SUBSTATE_CELEBRATE_TALLY_STAR_POINTS
            RunAwayRewardTotal -= RunAwayRewardIncrement;
            prevSP = battleStatus->totalStarPoints;
            battleStatus->totalStarPoints = (s8)(RunAwayRewardTotal / 100);
            enemyCount = prevSP - battleStatus->totalStarPoints;

            if (enemyCount > 0) {
                sfx_play_sound(SOUND_211);
            }
            playerData->starPoints += enemyCount;
            BattleScreenFadeAmt++;
            if (RunAwayRewardStep == 0 && battleStatus->totalStarPoints != 0) {
                playerData->starPoints++;
            }
        }
        if (playerData->starPoints >= 99) {
            playerData->starPoints = 99;
        }
        if (battleStatus->totalStarPoints == 0) {
            if (RunAwayRewardStep != 0) {
                RunAwayRewardStep--;
            } else {
                status_bar_stop_blinking_starpoints();
                func_8023E11C();
                gBattleSubState = BTL_SUBSTATE_RUN_AWAY_DONE;
            }
        }
    }

    if (gBattleSubState == BTL_SUBSTATE_RUN_AWAY_DONE) {
        playerData->battlesFled++;
        if (!(gBattleStatus.flags2 & BS_FLAGS2_DONT_STOP_MUSIC)) {
            bgm_set_song(0, -1, 0, 1500, 8);
        }
        btl_set_state(BATTLE_STATE_END_BATTLE);
    }

    switch (gBattleSubState) {
        case BTL_SUBSTATE_RUN_AWAY_EXEC_POST_FAILURE:
            battleStatus->battlePhase = PHASE_RUN_AWAY_FAIL;
            script = start_script(&EVS_Mario_HandlePhase, EVT_PRIORITY_A, 0);
            player->takeTurnScript = script;
            player->takeTurnScriptID = script->id;
            script->owner1.actorID = ACTOR_PLAYER;
            if (partner != NULL && partner->koStatus == 0) {
                script = start_script(partner->takeTurnSource, EVT_PRIORITY_A, 0);
                partner->takeTurnScript = script;
                partner->takeTurnScriptID = script->id;
                script->owner1.actorID = ACTOR_PARTNER;
            }
            gBattleSubState = BTL_SUBSTATE_RUN_AWAY_AWAIT_POST_FAILURE;
            break;
        case BTL_SUBSTATE_RUN_AWAY_AWAIT_POST_FAILURE:
            if (D_8029F248 != 0) {
                D_8029F248--;
                return;
            }
            if (!does_script_exist(player->takeTurnScriptID)
                && (partner == NULL || !does_script_exist(partner->takeTurnScriptID))
                && battleStatus->stateFreezeCount == 0
            ) {
                btl_set_state(BATTLE_STATE_9);
            }
            break;
    }
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel emote_appendGfx
/* 334490 E00205D0 27BDFF20 */  addiu     $sp, $sp, -0xE0
/* 334494 E00205D4 3C06DB06 */  lui       $a2, (0xDB060024 >> 16)
/* 334498 E00205D8 AFB600C0 */  sw        $s6, 0xC0($sp)
/* 33449C E00205DC 3C16800A */  lui       $s6, %hi(gMainGfxPos)
/* 3344A0 E00205E0 26D6A66C */  addiu     $s6, $s6, %lo(gMainGfxPos)
/* 3344A4 E00205E4 34C60024 */  ori       $a2, $a2, (0xDB060024 & 0xFFFF)
/* 3344A8 E00205E8 AFBF00CC */  sw        $ra, 0xCC($sp)
/* 3344AC E00205EC AFBE00C8 */  sw        $fp, 0xC8($sp)
/* 3344B0 E00205F0 AFB700C4 */  sw        $s7, 0xC4($sp)
/* 3344B4 E00205F4 AFB500BC */  sw        $s5, 0xBC($sp)
/* 3344B8 E00205F8 AFB400B8 */  sw        $s4, 0xB8($sp)
/* 3344BC E00205FC AFB300B4 */  sw        $s3, 0xB4($sp)
/* 3344C0 E0020600 AFB200B0 */  sw        $s2, 0xB0($sp)
/* 3344C4 E0020604 AFB100AC */  sw        $s1, 0xAC($sp)
/* 3344C8 E0020608 AFB000A8 */  sw        $s0, 0xA8($sp)
/* 3344CC E002060C F7B600D8 */  sdc1      $f22, 0xD8($sp)
/* 3344D0 E0020610 F7B400D0 */  sdc1      $f20, 0xD0($sp)
/* 3344D4 E0020614 8EC50000 */  lw        $a1, 0x0($s6)
/* 3344D8 E0020618 8C94000C */  lw        $s4, 0xC($a0)
/* 3344DC E002061C 00A0182D */  daddu     $v1, $a1, $zero
/* 3344E0 E0020620 24A50008 */  addiu     $a1, $a1, 0x8
/* 3344E4 E0020624 AEC50000 */  sw        $a1, 0x0($s6)
/* 3344E8 E0020628 8E950000 */  lw        $s5, 0x0($s4)
/* 3344EC E002062C 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 3344F0 E0020630 AC620000 */  sw        $v0, 0x0($v1)
/* 3344F4 E0020634 AC600004 */  sw        $zero, 0x4($v1)
/* 3344F8 E0020638 ACA60000 */  sw        $a2, 0x0($a1)
/* 3344FC E002063C 8C830010 */  lw        $v1, 0x10($a0)
/* 334500 E0020640 24A20008 */  addiu     $v0, $a1, 0x8
/* 334504 E0020644 AEC20000 */  sw        $v0, 0x0($s6)
/* 334508 E0020648 8C62001C */  lw        $v0, 0x1C($v1)
/* 33450C E002064C 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* 334510 E0020650 00431021 */  addu      $v0, $v0, $v1
/* 334514 E0020654 ACA20004 */  sw        $v0, 0x4($a1)
/* 334518 E0020658 24020001 */  addiu     $v0, $zero, 0x1
/* 33451C E002065C 12A2006D */  beq       $s5, $v0, .LE0020814
/* 334520 E0020660 27A40018 */   addiu    $a0, $sp, 0x18
/* 334524 E0020664 3C130001 */  lui       $s3, (0x11630 >> 16)
/* 334528 E0020668 8E850004 */  lw        $a1, 0x4($s4)
/* 33452C E002066C 8E860008 */  lw        $a2, 0x8($s4)
/* 334530 E0020670 8E87000C */  lw        $a3, 0xC($s4)
/* 334534 E0020674 0C080108 */  jal       shim_guTranslateF
/* 334538 E0020678 36731630 */   ori      $s3, $s3, (0x11630 & 0xFFFF)
/* 33453C E002067C 27B00058 */  addiu     $s0, $sp, 0x58
/* 334540 E0020680 4480B000 */  mtc1      $zero, $f22
/* 334544 E0020684 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
/* 334548 E0020688 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* 33454C E002068C 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 334550 E0020690 4481A000 */  mtc1      $at, $f20
/* 334554 E0020694 00031080 */  sll       $v0, $v1, 2
/* 334558 E0020698 00431021 */  addu      $v0, $v0, $v1
/* 33455C E002069C 00021080 */  sll       $v0, $v0, 2
/* 334560 E00206A0 00431023 */  subu      $v0, $v0, $v1
/* 334564 E00206A4 000218C0 */  sll       $v1, $v0, 3
/* 334568 E00206A8 00431021 */  addu      $v0, $v0, $v1
/* 33456C E00206AC 000210C0 */  sll       $v0, $v0, 3
/* 334570 E00206B0 4406B000 */  mfc1      $a2, $f22
/* 334574 E00206B4 3C01800B */  lui       $at, %hi(gCameras + 0x6C)
/* 334578 E00206B8 00220821 */  addu      $at, $at, $v0
/* 33457C E00206BC C4201DEC */  lwc1      $f0, %lo(gCameras + 0x6C)($at)
/* 334580 E00206C0 4407A000 */  mfc1      $a3, $f20
/* 334584 E00206C4 46000007 */  neg.s     $f0, $f0
/* 334588 E00206C8 44050000 */  mfc1      $a1, $f0
/* 33458C E00206CC 0200202D */  daddu     $a0, $s0, $zero
/* 334590 E00206D0 0C080104 */  jal       shim_guRotateF
/* 334594 E00206D4 E7B60010 */   swc1     $f22, 0x10($sp)
/* 334598 E00206D8 0200202D */  daddu     $a0, $s0, $zero
/* 33459C E00206DC 27A50018 */  addiu     $a1, $sp, 0x18
/* 3345A0 E00206E0 0C080114 */  jal       shim_guMtxCatF
/* 3345A4 E00206E4 00A0302D */   daddu    $a2, $a1, $zero
/* 3345A8 E00206E8 27A40018 */  addiu     $a0, $sp, 0x18
/* 3345AC E00206EC 3C118007 */  lui       $s1, %hi(gMatrixListPos)
/* 3345B0 E00206F0 263141F0 */  addiu     $s1, $s1, %lo(gMatrixListPos)
/* 3345B4 E00206F4 3C12800A */  lui       $s2, %hi(gDisplayContext)
/* 3345B8 E00206F8 2652A674 */  addiu     $s2, $s2, %lo(gDisplayContext)
/* 3345BC E00206FC 96220000 */  lhu       $v0, 0x0($s1)
/* 3345C0 E0020700 8E460000 */  lw        $a2, 0x0($s2)
/* 3345C4 E0020704 00022980 */  sll       $a1, $v0, 6
/* 3345C8 E0020708 00B32821 */  addu      $a1, $a1, $s3
/* 3345CC E002070C 00C52821 */  addu      $a1, $a2, $a1
/* 3345D0 E0020710 24430001 */  addiu     $v1, $v0, 0x1
/* 3345D4 E0020714 00021180 */  sll       $v0, $v0, 6
/* 3345D8 E0020718 00531021 */  addu      $v0, $v0, $s3
/* 3345DC E002071C 00C23021 */  addu      $a2, $a2, $v0
/* 3345E0 E0020720 A6230000 */  sh        $v1, 0x0($s1)
/* 3345E4 E0020724 0C080118 */  jal       shim_guMtxF2L
/* 3345E8 E0020728 AFA60098 */   sw       $a2, 0x98($sp)
/* 3345EC E002072C 4405A000 */  mfc1      $a1, $f20
/* 3345F0 E0020730 3C063F4C */  lui       $a2, (0x3F4CCCCD >> 16)
/* 3345F4 E0020734 34C6CCCD */  ori       $a2, $a2, (0x3F4CCCCD & 0xFFFF)
/* 3345F8 E0020738 4407A000 */  mfc1      $a3, $f20
/* 3345FC E002073C 0C080110 */  jal       shim_guScaleF
/* 334600 E0020740 0200202D */   daddu    $a0, $s0, $zero
/* 334604 E0020744 0200202D */  daddu     $a0, $s0, $zero
/* 334608 E0020748 27A50018 */  addiu     $a1, $sp, 0x18
/* 33460C E002074C 0C080114 */  jal       shim_guMtxCatF
/* 334610 E0020750 00A0302D */   daddu    $a2, $a1, $zero
/* 334614 E0020754 4406B000 */  mfc1      $a2, $f22
/* 334618 E0020758 0200202D */  daddu     $a0, $s0, $zero
/* 33461C E002075C E7B40010 */  swc1      $f20, 0x10($sp)
/* 334620 E0020760 8E850024 */  lw        $a1, 0x24($s4)
/* 334624 E0020764 0C080104 */  jal       shim_guRotateF
/* 334628 E0020768 00C0382D */   daddu    $a3, $a2, $zero
/* 33462C E002076C 0200202D */  daddu     $a0, $s0, $zero
/* 334630 E0020770 27A50018 */  addiu     $a1, $sp, 0x18
/* 334634 E0020774 0C080114 */  jal       shim_guMtxCatF
/* 334638 E0020778 00A0302D */   daddu    $a2, $a1, $zero
/* 33463C E002077C 27A40018 */  addiu     $a0, $sp, 0x18
/* 334640 E0020780 96250000 */  lhu       $a1, 0x0($s1)
/* 334644 E0020784 8E420000 */  lw        $v0, 0x0($s2)
/* 334648 E0020788 00052980 */  sll       $a1, $a1, 6
/* 33464C E002078C 00B32821 */  addu      $a1, $a1, $s3
/* 334650 E0020790 0C080118 */  jal       shim_guMtxF2L
/* 334654 E0020794 00452821 */   addu     $a1, $v0, $a1
/* 334658 E0020798 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 33465C E002079C 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 334660 E00207A0 3C06D838 */  lui       $a2, (0xD8380002 >> 16)
/* 334664 E00207A4 34C60002 */  ori       $a2, $a2, (0xD8380002 & 0xFFFF)
/* 334668 E00207A8 8EC40000 */  lw        $a0, 0x0($s6)
/* 33466C E00207AC 96220000 */  lhu       $v0, 0x0($s1)
/* 334670 E00207B0 0080282D */  daddu     $a1, $a0, $zero
/* 334674 E00207B4 24840008 */  addiu     $a0, $a0, 0x8
/* 334678 E00207B8 AEC40000 */  sw        $a0, 0x0($s6)
/* 33467C E00207BC ACA30000 */  sw        $v1, 0x0($a1)
/* 334680 E00207C0 24430001 */  addiu     $v1, $v0, 0x1
/* 334684 E00207C4 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 334688 E00207C8 00021180 */  sll       $v0, $v0, 6
/* 33468C E00207CC A6230000 */  sh        $v1, 0x0($s1)
/* 334690 E00207D0 8E430000 */  lw        $v1, 0x0($s2)
/* 334694 E00207D4 00531021 */  addu      $v0, $v0, $s3
/* 334698 E00207D8 00621821 */  addu      $v1, $v1, $v0
/* 33469C E00207DC 24820008 */  addiu     $v0, $a0, 0x8
/* 3346A0 E00207E0 ACA30004 */  sw        $v1, 0x4($a1)
/* 3346A4 E00207E4 AEC20000 */  sw        $v0, 0x0($s6)
/* 3346A8 E00207E8 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3346AC E00207EC AC820000 */  sw        $v0, 0x0($a0)
/* 3346B0 E00207F0 3C020900 */  lui       $v0, %hi(D_09002170_40F400)
/* 3346B4 E00207F4 24422170 */  addiu     $v0, $v0, %lo(D_09002170_40F400)
/* 3346B8 E00207F8 AC820004 */  sw        $v0, 0x4($a0)
/* 3346BC E00207FC 24820010 */  addiu     $v0, $a0, 0x10
/* 3346C0 E0020800 AEC20000 */  sw        $v0, 0x0($s6)
/* 3346C4 E0020804 24020040 */  addiu     $v0, $zero, 0x40
/* 3346C8 E0020808 AC860008 */  sw        $a2, 0x8($a0)
/* 3346CC E002080C 08008276 */  j         .LE00209D8
/* 3346D0 E0020810 AC82000C */   sw       $v0, 0xC($a0)
.LE0020814:
/* 3346D4 E0020814 8E820038 */  lw        $v0, 0x38($s4)
/* 3346D8 E0020818 1440010F */  bnez      $v0, .LE0020C58
/* 3346DC E002081C 0000982D */   daddu    $s3, $zero, $zero
/* 3346E0 E0020820 27B10058 */  addiu     $s1, $sp, 0x58
/* 3346E4 E0020824 3C1E800A */  lui       $fp, %hi(gDisplayContext)
/* 3346E8 E0020828 27DEA674 */  addiu     $fp, $fp, %lo(gDisplayContext)
/* 3346EC E002082C 3C178007 */  lui       $s7, %hi(gMatrixListPos)
/* 3346F0 E0020830 26F741F0 */  addiu     $s7, $s7, %lo(gMatrixListPos)
/* 3346F4 E0020834 3C150001 */  lui       $s5, (0x11630 >> 16)
/* 3346F8 E0020838 36B51630 */  ori       $s5, $s5, (0x11630 & 0xFFFF)
/* 3346FC E002083C 02C0902D */  daddu     $s2, $s6, $zero
/* 334700 E0020840 26900028 */  addiu     $s0, $s4, 0x28
/* 334704 E0020844 4480A000 */  mtc1      $zero, $f20
/* 334708 E0020848 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 33470C E002084C 4481B000 */  mtc1      $at, $f22
.LE0020850:
/* 334710 E0020850 27A40018 */  addiu     $a0, $sp, 0x18
/* 334714 E0020854 8E05FFDC */  lw        $a1, -0x24($s0)
/* 334718 E0020858 8E06FFE0 */  lw        $a2, -0x20($s0)
/* 33471C E002085C 8E07FFE4 */  lw        $a3, -0x1C($s0)
/* 334720 E0020860 0C080108 */  jal       shim_guTranslateF
/* 334724 E0020864 26730001 */   addiu    $s3, $s3, 0x1
/* 334728 E0020868 3C09800B */  lui       $t1, %hi(gCameras)
/* 33472C E002086C 25291D80 */  addiu     $t1, $t1, %lo(gCameras)
/* 334730 E0020870 3C038007 */  lui       $v1, %hi(gCurrentCameraID)
/* 334734 E0020874 8C637410 */  lw        $v1, %lo(gCurrentCameraID)($v1)
/* 334738 E0020878 4406A000 */  mfc1      $a2, $f20
/* 33473C E002087C 00031080 */  sll       $v0, $v1, 2
/* 334740 E0020880 00431021 */  addu      $v0, $v0, $v1
/* 334744 E0020884 00021080 */  sll       $v0, $v0, 2
/* 334748 E0020888 00431023 */  subu      $v0, $v0, $v1
/* 33474C E002088C 000218C0 */  sll       $v1, $v0, 3
/* 334750 E0020890 00431021 */  addu      $v0, $v0, $v1
/* 334754 E0020894 000210C0 */  sll       $v0, $v0, 3
/* 334758 E0020898 00491021 */  addu      $v0, $v0, $t1
/* 33475C E002089C C440006C */  lwc1      $f0, 0x6C($v0)
/* 334760 E00208A0 4407B000 */  mfc1      $a3, $f22
/* 334764 E00208A4 46000007 */  neg.s     $f0, $f0
/* 334768 E00208A8 44050000 */  mfc1      $a1, $f0
/* 33476C E00208AC 0220202D */  daddu     $a0, $s1, $zero
/* 334770 E00208B0 0C080104 */  jal       shim_guRotateF
/* 334774 E00208B4 E7B40010 */   swc1     $f20, 0x10($sp)
/* 334778 E00208B8 0220202D */  daddu     $a0, $s1, $zero
/* 33477C E00208BC 27A50018 */  addiu     $a1, $sp, 0x18
/* 334780 E00208C0 0C080114 */  jal       shim_guMtxCatF
/* 334784 E00208C4 00A0302D */   daddu    $a2, $a1, $zero
/* 334788 E00208C8 E7B60010 */  swc1      $f22, 0x10($sp)
/* 33478C E00208CC 8E05FFFC */  lw        $a1, -0x4($s0)
/* 334790 E00208D0 4406A000 */  mfc1      $a2, $f20
/* 334794 E00208D4 4407A000 */  mfc1      $a3, $f20
/* 334798 E00208D8 0C080104 */  jal       shim_guRotateF
/* 33479C E00208DC 0220202D */   daddu    $a0, $s1, $zero
/* 3347A0 E00208E0 0220202D */  daddu     $a0, $s1, $zero
/* 3347A4 E00208E4 27A50018 */  addiu     $a1, $sp, 0x18
/* 3347A8 E00208E8 0C080114 */  jal       shim_guMtxCatF
/* 3347AC E00208EC 00A0302D */   daddu    $a2, $a1, $zero
/* 3347B0 E00208F0 0220202D */  daddu     $a0, $s1, $zero
/* 3347B4 E00208F4 8E050000 */  lw        $a1, 0x0($s0)
/* 3347B8 E00208F8 26100040 */  addiu     $s0, $s0, 0x40
/* 3347BC E00208FC 4407B000 */  mfc1      $a3, $f22
/* 3347C0 E0020900 0C080110 */  jal       shim_guScaleF
/* 3347C4 E0020904 00A0302D */   daddu    $a2, $a1, $zero
/* 3347C8 E0020908 0220202D */  daddu     $a0, $s1, $zero
/* 3347CC E002090C 27A50018 */  addiu     $a1, $sp, 0x18
/* 3347D0 E0020910 0C080114 */  jal       shim_guMtxCatF
/* 3347D4 E0020914 00A0302D */   daddu    $a2, $a1, $zero
/* 3347D8 E0020918 27A40018 */  addiu     $a0, $sp, 0x18
/* 3347DC E002091C 96E50000 */  lhu       $a1, 0x0($s7)
/* 3347E0 E0020920 8FC20000 */  lw        $v0, 0x0($fp)
/* 3347E4 E0020924 00052980 */  sll       $a1, $a1, 6
/* 3347E8 E0020928 00B52821 */  addu      $a1, $a1, $s5
/* 3347EC E002092C 0C080118 */  jal       shim_guMtxF2L
/* 3347F0 E0020930 00452821 */   addu     $a1, $v0, $a1
/* 3347F4 E0020934 3C05EB1C */  lui       $a1, (0xEB1C00FF >> 16)
/* 3347F8 E0020938 34A500FF */  ori       $a1, $a1, (0xEB1C00FF & 0xFFFF)
/* 3347FC E002093C 3C06DA38 */  lui       $a2, (0xDA380002 >> 16)
/* 334800 E0020940 34C60002 */  ori       $a2, $a2, (0xDA380002 & 0xFFFF)
/* 334804 E0020944 3C07D838 */  lui       $a3, (0xD8380002 >> 16)
/* 334808 E0020948 34E70002 */  ori       $a3, $a3, (0xD8380002 & 0xFFFF)
/* 33480C E002094C 8E440000 */  lw        $a0, 0x0($s2)
/* 334810 E0020950 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 334814 E0020954 0080182D */  daddu     $v1, $a0, $zero
/* 334818 E0020958 24840008 */  addiu     $a0, $a0, 0x8
/* 33481C E002095C AE440000 */  sw        $a0, 0x0($s2)
/* 334820 E0020960 AC620000 */  sw        $v0, 0x0($v1)
/* 334824 E0020964 AC650004 */  sw        $a1, 0x4($v1)
/* 334828 E0020968 96E30000 */  lhu       $v1, 0x0($s7)
/* 33482C E002096C 24820008 */  addiu     $v0, $a0, 0x8
/* 334830 E0020970 AE420000 */  sw        $v0, 0x0($s2)
/* 334834 E0020974 AC860000 */  sw        $a2, 0x0($a0)
/* 334838 E0020978 24620001 */  addiu     $v0, $v1, 0x1
/* 33483C E002097C 3063FFFF */  andi      $v1, $v1, 0xFFFF
/* 334840 E0020980 00031980 */  sll       $v1, $v1, 6
/* 334844 E0020984 A6E20000 */  sh        $v0, 0x0($s7)
/* 334848 E0020988 8FC20000 */  lw        $v0, 0x0($fp)
/* 33484C E002098C 00751821 */  addu      $v1, $v1, $s5
/* 334850 E0020990 00431021 */  addu      $v0, $v0, $v1
/* 334854 E0020994 AC820004 */  sw        $v0, 0x4($a0)
/* 334858 E0020998 24820010 */  addiu     $v0, $a0, 0x10
/* 33485C E002099C AE420000 */  sw        $v0, 0x0($s2)
/* 334860 E00209A0 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 334864 E00209A4 AC820008 */  sw        $v0, 0x8($a0)
/* 334868 E00209A8 3C020900 */  lui       $v0, %hi(D_09002578_40F808)
/* 33486C E00209AC 24422578 */  addiu     $v0, $v0, %lo(D_09002578_40F808)
/* 334870 E00209B0 AC82000C */  sw        $v0, 0xC($a0)
/* 334874 E00209B4 24820018 */  addiu     $v0, $a0, 0x18
/* 334878 E00209B8 AE420000 */  sw        $v0, 0x0($s2)
/* 33487C E00209BC 24020040 */  addiu     $v0, $zero, 0x40
/* 334880 E00209C0 AC820014 */  sw        $v0, 0x14($a0)
/* 334884 E00209C4 2A620003 */  slti      $v0, $s3, 0x3
/* 334888 E00209C8 1440FFA1 */  bnez      $v0, .LE0020850
/* 33488C E00209CC AC870010 */   sw       $a3, 0x10($a0)
/* 334890 E00209D0 08008316 */  j         .LE0020C58
/* 334894 E00209D4 00000000 */   nop
.LE00209D8:
/* 334898 E00209D8 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 33489C E00209DC 3C06800A */  lui       $a2, %hi(gMainGfxPos)
/* 3348A0 E00209E0 24C6A66C */  addiu     $a2, $a2, %lo(gMainGfxPos)
/* 3348A4 E00209E4 8CC50000 */  lw        $a1, 0x0($a2)
/* 3348A8 E00209E8 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 3348AC E00209EC 00A0102D */  daddu     $v0, $a1, $zero
/* 3348B0 E00209F0 24A50008 */  addiu     $a1, $a1, 0x8
/* 3348B4 E00209F4 ACC50000 */  sw        $a1, 0x0($a2)
/* 3348B8 E00209F8 AC430000 */  sw        $v1, 0x0($v0)
/* 3348BC E00209FC 8FA90098 */  lw        $t1, 0x98($sp)
/* 3348C0 E0020A00 24030002 */  addiu     $v1, $zero, 0x2
/* 3348C4 E0020A04 AC490004 */  sw        $t1, 0x4($v0)
/* 3348C8 E0020A08 00151080 */  sll       $v0, $s5, 2
/* 3348CC E0020A0C 8E840038 */  lw        $a0, 0x38($s4)
/* 3348D0 E0020A10 3C07E002 */  lui       $a3, (0xE0020CA4 >> 16)
/* 3348D4 E0020A14 00E23821 */  addu      $a3, $a3, $v0
/* 3348D8 E0020A18 8CE70CA4 */  lw        $a3, (0xE0020CA4 & 0xFFFF)($a3)
/* 3348DC E0020A1C 3C08E002 */  lui       $t0, (0xE0020C90 >> 16)
/* 3348E0 E0020A20 01024021 */  addu      $t0, $t0, $v0
/* 3348E4 E0020A24 8D080C90 */  lw        $t0, (0xE0020C90 & 0xFFFF)($t0)
/* 3348E8 E0020A28 12A30016 */  beq       $s5, $v1, .LE0020A84
/* 3348EC E0020A2C 2AA20003 */   slti     $v0, $s5, 0x3
/* 3348F0 E0020A30 50400005 */  beql      $v0, $zero, .LE0020A48
/* 3348F4 E0020A34 24020003 */   addiu    $v0, $zero, 0x3
/* 3348F8 E0020A38 12A00009 */  beqz      $s5, .LE0020A60
/* 3348FC E0020A3C 24090010 */   addiu    $t1, $zero, 0x10
/* 334900 E0020A40 080082E2 */  j         .LE0020B88
/* 334904 E0020A44 00000000 */   nop
.LE0020A48:
/* 334908 E0020A48 12A2001E */  beq       $s5, $v0, .LE0020AC4
/* 33490C E0020A4C 24020004 */   addiu    $v0, $zero, 0x4
/* 334910 E0020A50 12A20046 */  beq       $s5, $v0, .LE0020B6C
/* 334914 E0020A54 24090020 */   addiu    $t1, $zero, 0x20
/* 334918 E0020A58 080082E2 */  j         .LE0020B88
/* 33491C E0020A5C 00000000 */   nop
.LE0020A60:
/* 334920 E0020A60 00041900 */  sll       $v1, $a0, 4
/* 334924 E0020A64 24020080 */  addiu     $v0, $zero, 0x80
/* 334928 E0020A68 0043B823 */  subu      $s7, $v0, $v1
/* 33492C E0020A6C 0000F02D */  daddu     $fp, $zero, $zero
/* 334930 E0020A70 3C03DC00 */  lui       $v1, (0xDC0000FF >> 16)
/* 334934 E0020A74 346300FF */  ori       $v1, $v1, (0xDC0000FF & 0xFFFF)
/* 334938 E0020A78 24A20008 */  addiu     $v0, $a1, 0x8
/* 33493C E0020A7C 080082AB */  j         .LE0020AAC
/* 334940 E0020A80 AFA9009C */   sw       $t1, 0x9C($sp)
.LE0020A84:
/* 334944 E0020A84 24090020 */  addiu     $t1, $zero, 0x20
/* 334948 E0020A88 AFA9009C */  sw        $t1, 0x9C($sp)
/* 33494C E0020A8C 24090030 */  addiu     $t1, $zero, 0x30
/* 334950 E0020A90 00041940 */  sll       $v1, $a0, 5
/* 334954 E0020A94 24020080 */  addiu     $v0, $zero, 0x80
/* 334958 E0020A98 0043B823 */  subu      $s7, $v0, $v1
/* 33495C E0020A9C 0000F02D */  daddu     $fp, $zero, $zero
/* 334960 E0020AA0 3C03DC00 */  lui       $v1, (0xDC0000FF >> 16)
/* 334964 E0020AA4 346300FF */  ori       $v1, $v1, (0xDC0000FF & 0xFFFF)
/* 334968 E0020AA8 24A20008 */  addiu     $v0, $a1, 0x8
.LE0020AAC:
/* 33496C E0020AAC AFA900A0 */  sw        $t1, 0xA0($sp)
/* 334970 E0020AB0 ACC20000 */  sw        $v0, 0x0($a2)
/* 334974 E0020AB4 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 334978 E0020AB8 ACA20000 */  sw        $v0, 0x0($a1)
/* 33497C E0020ABC 080082E2 */  j         .LE0020B88
/* 334980 E0020AC0 ACA30004 */   sw       $v1, 0x4($a1)
.LE0020AC4:
/* 334984 E0020AC4 24090020 */  addiu     $t1, $zero, 0x20
/* 334988 E0020AC8 00041940 */  sll       $v1, $a0, 5
/* 33498C E0020ACC 24020080 */  addiu     $v0, $zero, 0x80
/* 334990 E0020AD0 0043B823 */  subu      $s7, $v0, $v1
/* 334994 E0020AD4 0000F02D */  daddu     $fp, $zero, $zero
/* 334998 E0020AD8 3C039249 */  lui       $v1, (0x92492493 >> 16)
/* 33499C E0020ADC AFA9009C */  sw        $t1, 0x9C($sp)
/* 3349A0 E0020AE0 AFA900A0 */  sw        $t1, 0xA0($sp)
/* 3349A4 E0020AE4 8E82002C */  lw        $v0, 0x2C($s4)
/* 3349A8 E0020AE8 34632493 */  ori       $v1, $v1, (0x92492493 & 0xFFFF)
/* 3349AC E0020AEC 00022040 */  sll       $a0, $v0, 1
/* 3349B0 E0020AF0 00822021 */  addu      $a0, $a0, $v0
/* 3349B4 E0020AF4 24A20008 */  addiu     $v0, $a1, 0x8
/* 3349B8 E0020AF8 00830018 */  mult      $a0, $v1
/* 3349BC E0020AFC ACC20000 */  sw        $v0, 0x0($a2)
/* 3349C0 E0020B00 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 3349C4 E0020B04 00041FC3 */  sra       $v1, $a0, 31
/* 3349C8 E0020B08 ACA20000 */  sw        $v0, 0x0($a1)
/* 3349CC E0020B0C 00004810 */  mfhi      $t1
/* 3349D0 E0020B10 01241021 */  addu      $v0, $t1, $a0
/* 3349D4 E0020B14 00021083 */  sra       $v0, $v0, 2
/* 3349D8 E0020B18 00431823 */  subu      $v1, $v0, $v1
/* 3349DC E0020B1C 000310C0 */  sll       $v0, $v1, 3
/* 3349E0 E0020B20 00431023 */  subu      $v0, $v0, $v1
/* 3349E4 E0020B24 00821823 */  subu      $v1, $a0, $v0
/* 3349E8 E0020B28 3C02E002 */  lui       $v0, (0xE0020D94 >> 16)
/* 3349EC E0020B2C 00431021 */  addu      $v0, $v0, $v1
/* 3349F0 E0020B30 90420D94 */  lbu       $v0, (0xE0020D94 & 0xFFFF)($v0)
/* 3349F4 E0020B34 3C04E002 */  lui       $a0, (0xE0020D95 >> 16)
/* 3349F8 E0020B38 00832021 */  addu      $a0, $a0, $v1
/* 3349FC E0020B3C 90840D95 */  lbu       $a0, (0xE0020D95 & 0xFFFF)($a0)
/* 334A00 E0020B40 3C01E002 */  lui       $at, (0xE0020D96 >> 16)
/* 334A04 E0020B44 00230821 */  addu      $at, $at, $v1
/* 334A08 E0020B48 90230D96 */  lbu       $v1, (0xE0020D96 & 0xFFFF)($at)
/* 334A0C E0020B4C 00021600 */  sll       $v0, $v0, 24
/* 334A10 E0020B50 00042400 */  sll       $a0, $a0, 16
/* 334A14 E0020B54 00441025 */  or        $v0, $v0, $a0
/* 334A18 E0020B58 00031A00 */  sll       $v1, $v1, 8
/* 334A1C E0020B5C 00431025 */  or        $v0, $v0, $v1
/* 334A20 E0020B60 344200FF */  ori       $v0, $v0, 0xFF
/* 334A24 E0020B64 080082E2 */  j         .LE0020B88
/* 334A28 E0020B68 ACA20004 */   sw       $v0, 0x4($a1)
.LE0020B6C:
/* 334A2C E0020B6C AFA9009C */  sw        $t1, 0x9C($sp)
/* 334A30 E0020B70 24090008 */  addiu     $t1, $zero, 0x8
/* 334A34 E0020B74 00041940 */  sll       $v1, $a0, 5
/* 334A38 E0020B78 24020080 */  addiu     $v0, $zero, 0x80
/* 334A3C E0020B7C 0043B823 */  subu      $s7, $v0, $v1
/* 334A40 E0020B80 0000F02D */  daddu     $fp, $zero, $zero
/* 334A44 E0020B84 AFA900A0 */  sw        $t1, 0xA0($sp)
.LE0020B88:
/* 334A48 E0020B88 10E0000A */  beqz      $a3, .LE0020BB4
/* 334A4C E0020B8C 00000000 */   nop
/* 334A50 E0020B90 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* 334A54 E0020B94 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* 334A58 E0020B98 8C620000 */  lw        $v0, 0x0($v1)
/* 334A5C E0020B9C 0040202D */  daddu     $a0, $v0, $zero
/* 334A60 E0020BA0 24420008 */  addiu     $v0, $v0, 0x8
/* 334A64 E0020BA4 AC620000 */  sw        $v0, 0x0($v1)
/* 334A68 E0020BA8 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 334A6C E0020BAC AC820000 */  sw        $v0, 0x0($a0)
/* 334A70 E0020BB0 AC870004 */  sw        $a3, 0x4($a0)
.LE0020BB4:
/* 334A74 E0020BB4 3C07800A */  lui       $a3, %hi(gMainGfxPos)
/* 334A78 E0020BB8 24E7A66C */  addiu     $a3, $a3, %lo(gMainGfxPos)
/* 334A7C E0020BBC 00171080 */  sll       $v0, $s7, 2
/* 334A80 E0020BC0 30420FFF */  andi      $v0, $v0, 0xFFF
/* 334A84 E0020BC4 00021300 */  sll       $v0, $v0, 12
/* 334A88 E0020BC8 001E1880 */  sll       $v1, $fp, 2
/* 334A8C E0020BCC 30630FFF */  andi      $v1, $v1, 0xFFF
/* 334A90 E0020BD0 3C04F200 */  lui       $a0, (0xF2000000 >> 16)
/* 334A94 E0020BD4 00641825 */  or        $v1, $v1, $a0
/* 334A98 E0020BD8 8CE60000 */  lw        $a2, 0x0($a3)
/* 334A9C E0020BDC 00431025 */  or        $v0, $v0, $v1
/* 334AA0 E0020BE0 00C0282D */  daddu     $a1, $a2, $zero
/* 334AA4 E0020BE4 24C60008 */  addiu     $a2, $a2, 0x8
/* 334AA8 E0020BE8 ACE60000 */  sw        $a2, 0x0($a3)
/* 334AAC E0020BEC ACA20000 */  sw        $v0, 0x0($a1)
/* 334AB0 E0020BF0 8FA9009C */  lw        $t1, 0x9C($sp)
/* 334AB4 E0020BF4 02E91821 */  addu      $v1, $s7, $t1
/* 334AB8 E0020BF8 00031880 */  sll       $v1, $v1, 2
/* 334ABC E0020BFC 30630FFF */  andi      $v1, $v1, 0xFFF
/* 334AC0 E0020C00 8FA900A0 */  lw        $t1, 0xA0($sp)
/* 334AC4 E0020C04 00031B00 */  sll       $v1, $v1, 12
/* 334AC8 E0020C08 03C91021 */  addu      $v0, $fp, $t1
/* 334ACC E0020C0C 00021080 */  sll       $v0, $v0, 2
/* 334AD0 E0020C10 30420FFF */  andi      $v0, $v0, 0xFFF
/* 334AD4 E0020C14 00621825 */  or        $v1, $v1, $v0
/* 334AD8 E0020C18 11000006 */  beqz      $t0, .LE0020C34
/* 334ADC E0020C1C ACA30004 */   sw       $v1, 0x4($a1)
/* 334AE0 E0020C20 24C20008 */  addiu     $v0, $a2, 0x8
/* 334AE4 E0020C24 ACE20000 */  sw        $v0, 0x0($a3)
/* 334AE8 E0020C28 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 334AEC E0020C2C ACC20000 */  sw        $v0, 0x0($a2)
/* 334AF0 E0020C30 ACC80004 */  sw        $t0, 0x4($a2)
.LE0020C34:
/* 334AF4 E0020C34 3C04D838 */  lui       $a0, (0xD8380002 >> 16)
/* 334AF8 E0020C38 8CE20000 */  lw        $v0, 0x0($a3)
/* 334AFC E0020C3C 34840002 */  ori       $a0, $a0, (0xD8380002 & 0xFFFF)
/* 334B00 E0020C40 0040182D */  daddu     $v1, $v0, $zero
/* 334B04 E0020C44 24420008 */  addiu     $v0, $v0, 0x8
/* 334B08 E0020C48 ACE20000 */  sw        $v0, 0x0($a3)
/* 334B0C E0020C4C 24020040 */  addiu     $v0, $zero, 0x40
/* 334B10 E0020C50 AC640000 */  sw        $a0, 0x0($v1)
/* 334B14 E0020C54 AC620004 */  sw        $v0, 0x4($v1)
.LE0020C58:
/* 334B18 E0020C58 8FBF00CC */  lw        $ra, 0xCC($sp)
/* 334B1C E0020C5C 8FBE00C8 */  lw        $fp, 0xC8($sp)
/* 334B20 E0020C60 8FB700C4 */  lw        $s7, 0xC4($sp)
/* 334B24 E0020C64 8FB600C0 */  lw        $s6, 0xC0($sp)
/* 334B28 E0020C68 8FB500BC */  lw        $s5, 0xBC($sp)
/* 334B2C E0020C6C 8FB400B8 */  lw        $s4, 0xB8($sp)
/* 334B30 E0020C70 8FB300B4 */  lw        $s3, 0xB4($sp)
/* 334B34 E0020C74 8FB200B0 */  lw        $s2, 0xB0($sp)
/* 334B38 E0020C78 8FB100AC */  lw        $s1, 0xAC($sp)
/* 334B3C E0020C7C 8FB000A8 */  lw        $s0, 0xA8($sp)
/* 334B40 E0020C80 D7B600D8 */  ldc1      $f22, 0xD8($sp)
/* 334B44 E0020C84 D7B400D0 */  ldc1      $f20, 0xD0($sp)
/* 334B48 E0020C88 03E00008 */  jr        $ra
/* 334B4C E0020C8C 27BD00E0 */   addiu    $sp, $sp, 0xE0

### DECOMPILED C INSTRUCTIONS:

void emote_appendGfx(void* effect) {
    EmoteFXData* part = ((EffectInstance*)effect)->data.emote;
    s32 type = part->unk_00;
    s32 unk_38;
    Gfx* dlist;
    Gfx* dlist2;
    Mtx* matrix;
    s32 w;
    s32 h;
    s32 uls;
    s32 ult;
    s32 idx;
    Matrix4f sp18;
    Matrix4f sp58;
    s32 i;

    gDPPipeSync(gMainGfxPos++);
    gSPSegment(gMainGfxPos++, 0x09, VIRTUAL_TO_PHYSICAL(((EffectInstance*)effect)->graphics->data));

    if (type != 1) {
        shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
        shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
        shim_guMtxCatF(sp58, sp18, sp18);

        matrix = &gDisplayContext->matrixStack[gMatrixListPos];

        shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos++]);
        shim_guScaleF(sp58, 1.0f, 0.8f, 1.0f);
        shim_guMtxCatF(sp58, sp18, sp18);
        shim_guRotateF(sp58, part->unk_24, 0.0f, 0.0f, 1.0f);
        shim_guMtxCatF(sp58, sp18, sp18);
        shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
        gSPDisplayList(gMainGfxPos++, D_09002170_336DE0);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    } else {
        if (part->unk_38 == 0) {
            for (i = 0; i < 3; i++, part++) {
                shim_guTranslateF(sp18, part->unk_04, part->unk_08, part->unk_0C);
                shim_guRotateF(sp58, -gCameras[gCurrentCameraID].currentYaw, 0.0f, 1.0f, 0.0f);
                shim_guMtxCatF(sp58, sp18, sp18);
                shim_guRotateF(sp58, part->unk_24, 0.0f, 0.0f, 1.0f);
                shim_guMtxCatF(sp58, sp18, sp18);
                shim_guScaleF(sp58, part->unk_28, part->unk_28, 1.0f);
                shim_guMtxCatF(sp58, sp18, sp18);
                shim_guMtxF2L(sp18, &gDisplayContext->matrixStack[gMatrixListPos]);

                gDPSetPrimColor(gMainGfxPos++, 0, 0, 235, 28, 0, 255);
                gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
                gSPDisplayList(gMainGfxPos++, D_09002578_3371E8);
                gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
            }
        }

        return;
    }

    gSPMatrix(gMainGfxPos++, matrix, G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

    unk_38 = part->unk_38;
    dlist = D_E0020CA4[type];
    dlist2 = D_E0020C90[type];

    switch (type) {
        case 0:
            w = 16;
            h = 16;
            uls = 128 - unk_38 * 16;
            ult = 0;
            gDPSetPrimColor(gMainGfxPos++, 0, 0, 220, 0, 0, 255);
            break;
        case 2:
            w = 32;
            h = 48;
            uls = 128 - unk_38 * 32;
            ult = 0;
            gDPSetPrimColor(gMainGfxPos++, 0, 0, 220, 0, 0, 255);
            break;
        case 3:
            w = 32;
            h = 32;
            uls = 128 - unk_38 * 32;
            ult = 0;
            idx = (part->unk_2C * 3) % (ARRAY_COUNT(D_E0020D94) / 3);
            gDPSetPrimColor(gMainGfxPos++, 0, 0, D_E0020D94[idx], D_E0020D94[idx + 1], D_E0020D94[idx + 2], 255);
            break;
        case 4:
            w = 32;
            h = 8;
            uls = 128 - unk_38 * 32;
            ult = 0;
            break;
    }

    if (dlist != NULL) {
        gSPDisplayList(gMainGfxPos++, dlist);
    }

    gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE, uls * 4, ult * 4, (uls + w) * 4, (ult + h) * 4);

    if (dlist2 != NULL) {
        gSPDisplayList(gMainGfxPos++, dlist2);
    }

    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}