### RAW ASSEMBLY INSTRUCTIONS:

glabel whirlwind_appendGfx
/* 3D2F38 E00CE478 27BDFEE0 */  addiu     $sp, $sp, -0x120
/* 3D2F3C E00CE47C 0080502D */  daddu     $t2, $a0, $zero
/* 3D2F40 E00CE480 3C0BDB06 */  lui       $t3, (0xDB060024 >> 16)
/* 3D2F44 E00CE484 356B0024 */  ori       $t3, $t3, (0xDB060024 & 0xFFFF)
/* 3D2F48 E00CE488 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D2F4C E00CE48C AFB300D4 */  sw        $s3, 0xD4($sp)
/* 3D2F50 E00CE490 3C130001 */  lui       $s3, (0x11630 >> 16)
/* 3D2F54 E00CE494 36731630 */  ori       $s3, $s3, (0x11630 & 0xFFFF)
/* 3D2F58 E00CE498 AFB400D8 */  sw        $s4, 0xD8($sp)
/* 3D2F5C E00CE49C 0000A02D */  daddu     $s4, $zero, $zero
/* 3D2F60 E00CE4A0 AFBE00E8 */  sw        $fp, 0xE8($sp)
/* 3D2F64 E00CE4A4 241E0400 */  addiu     $fp, $zero, 0x400
/* 3D2F68 E00CE4A8 AFB700E4 */  sw        $s7, 0xE4($sp)
/* 3D2F6C E00CE4AC 24170100 */  addiu     $s7, $zero, 0x100
/* 3D2F70 E00CE4B0 AFB500DC */  sw        $s5, 0xDC($sp)
/* 3D2F74 E00CE4B4 0280A82D */  daddu     $s5, $s4, $zero
/* 3D2F78 E00CE4B8 AFB100CC */  sw        $s1, 0xCC($sp)
/* 3D2F7C E00CE4BC 3C11800A */  lui       $s1, %hi(gMainGfxPos)
/* 3D2F80 E00CE4C0 2631A66C */  addiu     $s1, $s1, %lo(gMainGfxPos)
/* 3D2F84 E00CE4C4 AFBF00EC */  sw        $ra, 0xEC($sp)
/* 3D2F88 E00CE4C8 AFB600E0 */  sw        $s6, 0xE0($sp)
/* 3D2F8C E00CE4CC AFB200D0 */  sw        $s2, 0xD0($sp)
/* 3D2F90 E00CE4D0 AFB000C8 */  sw        $s0, 0xC8($sp)
/* 3D2F94 E00CE4D4 F7BE0118 */  sdc1      $f30, 0x118($sp)
/* 3D2F98 E00CE4D8 F7BC0110 */  sdc1      $f28, 0x110($sp)
/* 3D2F9C E00CE4DC F7BA0108 */  sdc1      $f26, 0x108($sp)
/* 3D2FA0 E00CE4E0 F7B80100 */  sdc1      $f24, 0x100($sp)
/* 3D2FA4 E00CE4E4 F7B600F8 */  sdc1      $f22, 0xF8($sp)
/* 3D2FA8 E00CE4E8 F7B400F0 */  sdc1      $f20, 0xF0($sp)
/* 3D2FAC E00CE4EC 8E230000 */  lw        $v1, 0x0($s1)
/* 3D2FB0 E00CE4F0 44800000 */  mtc1      $zero, $f0
/* 3D2FB4 E00CE4F4 3C0142C8 */  lui       $at, (0x42C80000 >> 16)
/* 3D2FB8 E00CE4F8 4481B000 */  mtc1      $at, $f22
/* 3D2FBC E00CE4FC 8D56000C */  lw        $s6, 0xC($t2)
/* 3D2FC0 E00CE500 3C014080 */  lui       $at, (0x40800000 >> 16)
/* 3D2FC4 E00CE504 44812000 */  mtc1      $at, $f4
/* 3D2FC8 E00CE508 0060402D */  daddu     $t0, $v1, $zero
/* 3D2FCC E00CE50C 44050000 */  mfc1      $a1, $f0
/* 3D2FD0 E00CE510 24630008 */  addiu     $v1, $v1, 0x8
/* 3D2FD4 E00CE514 AE230000 */  sw        $v1, 0x0($s1)
/* 3D2FD8 E00CE518 8ECC0010 */  lw        $t4, 0x10($s6)
/* 3D2FDC E00CE51C 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 3D2FE0 E00CE520 AFAC00A0 */  sw        $t4, 0xA0($sp)
/* 3D2FE4 E00CE524 8EC90024 */  lw        $t1, 0x24($s6)
/* 3D2FE8 E00CE528 C6C60034 */  lwc1      $f6, 0x34($s6)
/* 3D2FEC E00CE52C 00A0302D */  daddu     $a2, $a1, $zero
/* 3D2FF0 E00CE530 E7A600B8 */  swc1      $f6, 0xB8($sp)
/* 3D2FF4 E00CE534 C6C0013C */  lwc1      $f0, 0x13C($s6)
/* 3D2FF8 E00CE538 C6C20140 */  lwc1      $f2, 0x140($s6)
/* 3D2FFC E00CE53C AD020000 */  sw        $v0, 0x0($t0)
/* 3D3000 E00CE540 24620008 */  addiu     $v0, $v1, 0x8
/* 3D3004 E00CE544 AD000004 */  sw        $zero, 0x4($t0)
/* 3D3008 E00CE548 3C088000 */  lui       $t0, (0x80000000 >> 16)
/* 3D300C E00CE54C AE220000 */  sw        $v0, 0x0($s1)
/* 3D3010 E00CE550 46040002 */  mul.s     $f0, $f0, $f4
/* 3D3014 E00CE554 00000000 */  nop
/* 3D3018 E00CE558 AC6B0000 */  sw        $t3, 0x0($v1)
/* 3D301C E00CE55C 8D420010 */  lw        $v0, 0x10($t2)
/* 3D3020 E00CE560 00094843 */  sra       $t1, $t1, 1
/* 3D3024 E00CE564 8C42001C */  lw        $v0, 0x1C($v0)
/* 3D3028 E00CE568 46041082 */  mul.s     $f2, $f2, $f4
/* 3D302C E00CE56C 00000000 */  nop
/* 3D3030 E00CE570 00481021 */  addu      $v0, $v0, $t0
/* 3D3034 E00CE574 AC620004 */  sw        $v0, 0x4($v1)
/* 3D3038 E00CE578 AFA900A4 */  sw        $t1, 0xA4($sp)
/* 3D303C E00CE57C 4600018D */  trunc.w.s $f6, $f0
/* 3D3040 E00CE580 E7A600B0 */  swc1      $f6, 0xB0($sp)
/* 3D3044 E00CE584 4600118D */  trunc.w.s $f6, $f2
/* 3D3048 E00CE588 E7A600B4 */  swc1      $f6, 0xB4($sp)
/* 3D304C E00CE58C 0C080108 */  jal       shim_guTranslateF
/* 3D3050 E00CE590 00A0382D */   daddu    $a3, $a1, $zero
/* 3D3054 E00CE594 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D3058 E00CE598 3C108007 */  lui       $s0, %hi(gMatrixListPos)
/* 3D305C E00CE59C 261041F0 */  addiu     $s0, $s0, %lo(gMatrixListPos)
/* 3D3060 E00CE5A0 3C12800A */  lui       $s2, %hi(gDisplayContext)
/* 3D3064 E00CE5A4 2652A674 */  addiu     $s2, $s2, %lo(gDisplayContext)
/* 3D3068 E00CE5A8 96050000 */  lhu       $a1, 0x0($s0)
/* 3D306C E00CE5AC 8E420000 */  lw        $v0, 0x0($s2)
/* 3D3070 E00CE5B0 00052980 */  sll       $a1, $a1, 6
/* 3D3074 E00CE5B4 00B32821 */  addu      $a1, $a1, $s3
/* 3D3078 E00CE5B8 0C080118 */  jal       shim_guMtxF2L
/* 3D307C E00CE5BC 00452821 */   addu     $a1, $v0, $a1
/* 3D3080 E00CE5C0 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 3D3084 E00CE5C4 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 3D3088 E00CE5C8 8E240000 */  lw        $a0, 0x0($s1)
/* 3D308C E00CE5CC 96020000 */  lhu       $v0, 0x0($s0)
/* 3D3090 E00CE5D0 0080282D */  daddu     $a1, $a0, $zero
/* 3D3094 E00CE5D4 24840008 */  addiu     $a0, $a0, 0x8
/* 3D3098 E00CE5D8 248C0010 */  addiu     $t4, $a0, 0x10
/* 3D309C E00CE5DC AFAC00AC */  sw        $t4, 0xAC($sp)
/* 3D30A0 E00CE5E0 AE240000 */  sw        $a0, 0x0($s1)
/* 3D30A4 E00CE5E4 ACA30000 */  sw        $v1, 0x0($a1)
/* 3D30A8 E00CE5E8 24430001 */  addiu     $v1, $v0, 0x1
/* 3D30AC E00CE5EC 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3D30B0 E00CE5F0 00021180 */  sll       $v0, $v0, 6
/* 3D30B4 E00CE5F4 A6030000 */  sh        $v1, 0x0($s0)
/* 3D30B8 E00CE5F8 8E430000 */  lw        $v1, 0x0($s2)
/* 3D30BC E00CE5FC 00531021 */  addu      $v0, $v0, $s3
/* 3D30C0 E00CE600 00621821 */  addu      $v1, $v1, $v0
/* 3D30C4 E00CE604 24820008 */  addiu     $v0, $a0, 0x8
/* 3D30C8 E00CE608 ACA30004 */  sw        $v1, 0x4($a1)
/* 3D30CC E00CE60C AE220000 */  sw        $v0, 0x0($s1)
/* 3D30D0 E00CE610 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3D30D4 E00CE614 AC820000 */  sw        $v0, 0x0($a0)
/* 3D30D8 E00CE618 3C020900 */  lui       $v0, %hi(D_09000400_415460)
/* 3D30DC E00CE61C 24420400 */  addiu     $v0, $v0, %lo(D_09000400_415460)
/* 3D30E0 E00CE620 AC820004 */  sw        $v0, 0x4($a0)
/* 3D30E4 E00CE624 3C02DE01 */  lui       $v0, (0xDE010000 >> 16)
/* 3D30E8 E00CE628 AC820008 */  sw        $v0, 0x8($a0)
/* 3D30EC E00CE62C 24820210 */  addiu     $v0, $a0, 0x210
/* 3D30F0 E00CE630 AC82000C */  sw        $v0, 0xC($a0)
/* 3D30F4 E00CE634 AE220000 */  sw        $v0, 0x0($s1)
/* 3D30F8 E00CE638 00141100 */  sll       $v0, $s4, 4
.LE00CE63C:
/* 3D30FC E00CE63C 4495A000 */  mtc1      $s5, $f20
/* 3D3100 E00CE640 00000000 */  nop
/* 3D3104 E00CE644 4680A520 */  cvt.s.w   $f20, $f20
/* 3D3108 E00CE648 8FAC00AC */  lw        $t4, 0xAC($sp)
/* 3D310C E00CE64C 4600A306 */  mov.s     $f12, $f20
/* 3D3110 E00CE650 0C080144 */  jal       shim_cos_deg
/* 3D3114 E00CE654 01828021 */   addu     $s0, $t4, $v0
/* 3D3118 E00CE658 46160002 */  mul.s     $f0, $f0, $f22
/* 3D311C E00CE65C 00000000 */  nop
/* 3D3120 E00CE660 4600A306 */  mov.s     $f12, $f20
/* 3D3124 E00CE664 26B50018 */  addiu     $s5, $s5, 0x18
/* 3D3128 E00CE668 A6000002 */  sh        $zero, 0x2($s0)
/* 3D312C E00CE66C 4600018D */  trunc.w.s $f6, $f0
/* 3D3130 E00CE670 44023000 */  mfc1      $v0, $f6
/* 3D3134 E00CE674 0C080140 */  jal       shim_sin_deg
/* 3D3138 E00CE678 A6020000 */   sh       $v0, 0x0($s0)
/* 3D313C E00CE67C 46160002 */  mul.s     $f0, $f0, $f22
/* 3D3140 E00CE680 00000000 */  nop
/* 3D3144 E00CE684 4600A306 */  mov.s     $f12, $f20
/* 3D3148 E00CE688 001411C0 */  sll       $v0, $s4, 7
/* 3D314C E00CE68C A6020008 */  sh        $v0, 0x8($s0)
/* 3D3150 E00CE690 A600000A */  sh        $zero, 0xA($s0)
/* 3D3154 E00CE694 4600018D */  trunc.w.s $f6, $f0
/* 3D3158 E00CE698 44023000 */  mfc1      $v0, $f6
/* 3D315C E00CE69C 0C080144 */  jal       shim_cos_deg
/* 3D3160 E00CE6A0 A6020004 */   sh       $v0, 0x4($s0)
/* 3D3164 E00CE6A4 46160002 */  mul.s     $f0, $f0, $f22
/* 3D3168 E00CE6A8 00000000 */  nop
/* 3D316C E00CE6AC 8FAC00AC */  lw        $t4, 0xAC($sp)
/* 3D3170 E00CE6B0 4600A306 */  mov.s     $f12, $f20
/* 3D3174 E00CE6B4 01978021 */  addu      $s0, $t4, $s7
/* 3D3178 E00CE6B8 26F70010 */  addiu     $s7, $s7, 0x10
/* 3D317C E00CE6BC A6000002 */  sh        $zero, 0x2($s0)
/* 3D3180 E00CE6C0 4600018D */  trunc.w.s $f6, $f0
/* 3D3184 E00CE6C4 44023000 */  mfc1      $v0, $f6
/* 3D3188 E00CE6C8 0C080140 */  jal       shim_sin_deg
/* 3D318C E00CE6CC A6020000 */   sh       $v0, 0x0($s0)
/* 3D3190 E00CE6D0 46160002 */  mul.s     $f0, $f0, $f22
/* 3D3194 E00CE6D4 00000000 */  nop
/* 3D3198 E00CE6D8 00141240 */  sll       $v0, $s4, 9
/* 3D319C E00CE6DC 26940001 */  addiu     $s4, $s4, 0x1
/* 3D31A0 E00CE6E0 A6020008 */  sh        $v0, 0x8($s0)
/* 3D31A4 E00CE6E4 A61E000A */  sh        $fp, 0xA($s0)
/* 3D31A8 E00CE6E8 4600018D */  trunc.w.s $f6, $f0
/* 3D31AC E00CE6EC 44023000 */  mfc1      $v0, $f6
/* 3D31B0 E00CE6F0 00000000 */  nop
/* 3D31B4 E00CE6F4 A6020004 */  sh        $v0, 0x4($s0)
/* 3D31B8 E00CE6F8 2A820010 */  slti      $v0, $s4, 0x10
/* 3D31BC E00CE6FC 1440FFCF */  bnez      $v0, .LE00CE63C
/* 3D31C0 E00CE700 00141100 */   sll      $v0, $s4, 4
/* 3D31C4 E00CE704 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* 3D31C8 E00CE708 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* 3D31CC E00CE70C 0040402D */  daddu     $t0, $v0, $zero
/* 3D31D0 E00CE710 8D030000 */  lw        $v1, 0x0($t0)
/* 3D31D4 E00CE714 0000A02D */  daddu     $s4, $zero, $zero
/* 3D31D8 E00CE718 24620008 */  addiu     $v0, $v1, 0x8
/* 3D31DC E00CE71C AFA200A8 */  sw        $v0, 0xA8($sp)
/* 3D31E0 E00CE720 3C02DE01 */  lui       $v0, (0xDE010000 >> 16)
/* 3D31E4 E00CE724 AC620000 */  sw        $v0, 0x0($v1)
/* 3D31E8 E00CE728 24620088 */  addiu     $v0, $v1, 0x88
/* 3D31EC E00CE72C AC620004 */  sw        $v0, 0x4($v1)
/* 3D31F0 E00CE730 8FAC00A8 */  lw        $t4, 0xA8($sp)
/* 3D31F4 E00CE734 3C090600 */  lui       $t1, (0x6000000 >> 16)
/* 3D31F8 E00CE738 AD0C0000 */  sw        $t4, 0x0($t0)
.LE00CE73C:
/* 3D31FC E00CE73C 26830010 */  addiu     $v1, $s4, 0x10
/* 3D3200 E00CE740 26840001 */  addiu     $a0, $s4, 0x1
/* 3D3204 E00CE744 00143040 */  sll       $a2, $s4, 1
/* 3D3208 E00CE748 26850011 */  addiu     $a1, $s4, 0x11
/* 3D320C E00CE74C 0080A02D */  daddu     $s4, $a0, $zero
/* 3D3210 E00CE750 00031840 */  sll       $v1, $v1, 1
/* 3D3214 E00CE754 306300FF */  andi      $v1, $v1, 0xFF
/* 3D3218 E00CE758 00031C00 */  sll       $v1, $v1, 16
/* 3D321C E00CE75C 00142040 */  sll       $a0, $s4, 1
/* 3D3220 E00CE760 308400FF */  andi      $a0, $a0, 0xFF
/* 3D3224 E00CE764 30C600FF */  andi      $a2, $a2, 0xFF
/* 3D3228 E00CE768 00052A40 */  sll       $a1, $a1, 9
/* 3D322C E00CE76C 8D020000 */  lw        $v0, 0x0($t0)
/* 3D3230 E00CE770 30A5FE00 */  andi      $a1, $a1, 0xFE00
/* 3D3234 E00CE774 0040382D */  daddu     $a3, $v0, $zero
/* 3D3238 E00CE778 24420008 */  addiu     $v0, $v0, 0x8
/* 3D323C E00CE77C AD020000 */  sw        $v0, 0x0($t0)
/* 3D3240 E00CE780 00041200 */  sll       $v0, $a0, 8
/* 3D3244 E00CE784 00621025 */  or        $v0, $v1, $v0
/* 3D3248 E00CE788 00461025 */  or        $v0, $v0, $a2
/* 3D324C E00CE78C 00491025 */  or        $v0, $v0, $t1
/* 3D3250 E00CE790 00651825 */  or        $v1, $v1, $a1
/* 3D3254 E00CE794 00641825 */  or        $v1, $v1, $a0
/* 3D3258 E00CE798 ACE20000 */  sw        $v0, 0x0($a3)
/* 3D325C E00CE79C 2A82000F */  slti      $v0, $s4, 0xF
/* 3D3260 E00CE7A0 1440FFE6 */  bnez      $v0, .LE00CE73C
/* 3D3264 E00CE7A4 ACE30004 */   sw       $v1, 0x4($a3)
/* 3D3268 E00CE7A8 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D326C E00CE7AC 3C100001 */  lui       $s0, (0x11630 >> 16)
/* 3D3270 E00CE7B0 36101630 */  ori       $s0, $s0, (0x11630 & 0xFFFF)
/* 3D3274 E00CE7B4 0000A02D */  daddu     $s4, $zero, $zero
/* 3D3278 E00CE7B8 27B30060 */  addiu     $s3, $sp, 0x60
/* 3D327C E00CE7BC 3C028007 */  lui       $v0, %hi(gMatrixListPos)
/* 3D3280 E00CE7C0 244241F0 */  addiu     $v0, $v0, %lo(gMatrixListPos)
/* 3D3284 E00CE7C4 0040B82D */  daddu     $s7, $v0, $zero
/* 3D3288 E00CE7C8 3C1E0001 */  lui       $fp, (0x11630 >> 16)
/* 3D328C E00CE7CC 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* 3D3290 E00CE7D0 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* 3D3294 E00CE7D4 0040A82D */  daddu     $s5, $v0, $zero
/* 3D3298 E00CE7D8 3C0CD838 */  lui       $t4, (0xD8380002 >> 16)
/* 3D329C E00CE7DC 358C0002 */  ori       $t4, $t4, (0xD8380002 & 0xFFFF)
/* 3D32A0 E00CE7E0 AFAC00C4 */  sw        $t4, 0xC4($sp)
/* 3D32A4 E00CE7E4 8EA20000 */  lw        $v0, 0x0($s5)
/* 3D32A8 E00CE7E8 4480F000 */  mtc1      $zero, $f30
/* 3D32AC E00CE7EC 3C013DCC */  lui       $at, (0x3DCCCCCD >> 16)
/* 3D32B0 E00CE7F0 3421CCCD */  ori       $at, $at, (0x3DCCCCCD & 0xFFFF)
/* 3D32B4 E00CE7F4 44810000 */  mtc1      $at, $f0
/* 3D32B8 E00CE7F8 0040182D */  daddu     $v1, $v0, $zero
/* 3D32BC E00CE7FC 44050000 */  mfc1      $a1, $f0
/* 3D32C0 E00CE800 24420008 */  addiu     $v0, $v0, 0x8
/* 3D32C4 E00CE804 AEA20000 */  sw        $v0, 0x0($s5)
/* 3D32C8 E00CE808 3C02DF00 */  lui       $v0, (0xDF000000 >> 16)
/* 3D32CC E00CE80C AC620000 */  sw        $v0, 0x0($v1)
/* 3D32D0 E00CE810 AC600004 */  sw        $zero, 0x4($v1)
/* 3D32D4 E00CE814 00A0302D */  daddu     $a2, $a1, $zero
/* 3D32D8 E00CE818 0C080110 */  jal       shim_guScaleF
/* 3D32DC E00CE81C 00A0382D */   daddu    $a3, $a1, $zero
/* 3D32E0 E00CE820 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D32E4 E00CE824 96E50000 */  lhu       $a1, 0x0($s7)
/* 3D32E8 E00CE828 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3D32EC E00CE82C 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3D32F0 E00CE830 00052980 */  sll       $a1, $a1, 6
/* 3D32F4 E00CE834 00B02821 */  addu      $a1, $a1, $s0
/* 3D32F8 E00CE838 0C080118 */  jal       shim_guMtxF2L
/* 3D32FC E00CE83C 00452821 */   addu     $a1, $v0, $a1
/* 3D3300 E00CE840 8EA20000 */  lw        $v0, 0x0($s5)
/* 3D3304 E00CE844 3C014120 */  lui       $at, (0x41200000 >> 16)
/* 3D3308 E00CE848 4481D000 */  mtc1      $at, $f26
/* 3D330C E00CE84C 0040202D */  daddu     $a0, $v0, $zero
/* 3D3310 E00CE850 24420008 */  addiu     $v0, $v0, 0x8
/* 3D3314 E00CE854 AFA200C0 */  sw        $v0, 0xC0($sp)
/* 3D3318 E00CE858 8FAC00C0 */  lw        $t4, 0xC0($sp)
/* 3D331C E00CE85C 24420008 */  addiu     $v0, $v0, 0x8
/* 3D3320 E00CE860 AFA200BC */  sw        $v0, 0xBC($sp)
/* 3D3324 E00CE864 AEAC0000 */  sw        $t4, 0x0($s5)
/* 3D3328 E00CE868 96E20000 */  lhu       $v0, 0x0($s7)
/* 3D332C E00CE86C 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 3D3330 E00CE870 AC830000 */  sw        $v1, 0x0($a0)
/* 3D3334 E00CE874 24430001 */  addiu     $v1, $v0, 0x1
/* 3D3338 E00CE878 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3D333C E00CE87C 00021180 */  sll       $v0, $v0, 6
/* 3D3340 E00CE880 A6E30000 */  sh        $v1, 0x0($s7)
/* 3D3344 E00CE884 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 3D3348 E00CE888 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 3D334C E00CE88C 00501021 */  addu      $v0, $v0, $s0
/* 3D3350 E00CE890 00621821 */  addu      $v1, $v1, $v0
/* 3D3354 E00CE894 AC830004 */  sw        $v1, 0x4($a0)
/* 3D3358 E00CE898 8FAC00BC */  lw        $t4, 0xBC($sp)
/* 3D335C E00CE89C 37DE1630 */  ori       $fp, $fp, (0x11630 & 0xFFFF)
/* 3D3360 E00CE8A0 AEAC0000 */  sw        $t4, 0x0($s5)
.LE00CE8A4:
/* 3D3364 E00CE8A4 00141080 */  sll       $v0, $s4, 2
/* 3D3368 E00CE8A8 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 3D336C E00CE8AC 44813000 */  mtc1      $at, $f6
/* 3D3370 E00CE8B0 02C29021 */  addu      $s2, $s6, $v0
/* 3D3374 E00CE8B4 E7A60010 */  swc1      $f6, 0x10($sp)
/* 3D3378 E00CE8B8 C6400038 */  lwc1      $f0, 0x38($s2)
/* 3D337C E00CE8BC 461A0002 */  mul.s     $f0, $f0, $f26
/* 3D3380 E00CE8C0 00000000 */  nop
/* 3D3384 E00CE8C4 E7A00014 */  swc1      $f0, 0x14($sp)
/* 3D3388 E00CE8C8 C6400058 */  lwc1      $f0, 0x58($s2)
/* 3D338C E00CE8CC 461A0002 */  mul.s     $f0, $f0, $f26
/* 3D3390 E00CE8D0 00000000 */  nop
/* 3D3394 E00CE8D4 E7A00018 */  swc1      $f0, 0x18($sp)
/* 3D3398 E00CE8D8 C6400078 */  lwc1      $f0, 0x78($s2)
/* 3D339C E00CE8DC 461A0002 */  mul.s     $f0, $f0, $f26
/* 3D33A0 E00CE8E0 00000000 */  nop
/* 3D33A4 E00CE8E4 4405F000 */  mfc1      $a1, $f30
/* 3D33A8 E00CE8E8 4406F000 */  mfc1      $a2, $f30
/* 3D33AC E00CE8EC E7A0001C */  swc1      $f0, 0x1C($sp)
/* 3D33B0 E00CE8F0 8E470118 */  lw        $a3, 0x118($s2)
/* 3D33B4 E00CE8F4 0C080180 */  jal       shim_guPositionF
/* 3D33B8 E00CE8F8 27A40020 */   addiu    $a0, $sp, 0x20
/* 3D33BC E00CE8FC 02940018 */  mult      $s4, $s4
/* 3D33C0 E00CE900 00006012 */  mflo      $t4
/* 3D33C4 E00CE904 C6C00138 */  lwc1      $f0, 0x138($s6)
/* 3D33C8 E00CE908 448CE000 */  mtc1      $t4, $f28
/* 3D33CC E00CE90C 00000000 */  nop
/* 3D33D0 E00CE910 4680E720 */  cvt.s.w   $f28, $f28
/* 3D33D4 E00CE914 461C0000 */  add.s     $f0, $f0, $f28
/* 3D33D8 E00CE918 3C06BCF5 */  lui       $a2, (0xBCF5C28F >> 16)
/* 3D33DC E00CE91C 34C6C28F */  ori       $a2, $a2, (0xBCF5C28F & 0xFFFF)
/* 3D33E0 E00CE920 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 3D33E4 E00CE924 44050000 */  mfc1      $a1, $f0
/* 3D33E8 E00CE928 3C013DCC */  lui       $at, (0x3DCCCCCD >> 16)
/* 3D33EC E00CE92C 3421CCCD */  ori       $at, $at, (0x3DCCCCCD & 0xFFFF)
/* 3D33F0 E00CE930 44810000 */  mtc1      $at, $f0
/* 3D33F4 E00CE934 0260202D */  daddu     $a0, $s3, $zero
/* 3D33F8 E00CE938 0C080104 */  jal       shim_guRotateF
/* 3D33FC E00CE93C E7A00010 */   swc1     $f0, 0x10($sp)
/* 3D3400 E00CE940 0260202D */  daddu     $a0, $s3, $zero
/* 3D3404 E00CE944 27A50020 */  addiu     $a1, $sp, 0x20
/* 3D3408 E00CE948 0C080114 */  jal       shim_guMtxCatF
/* 3D340C E00CE94C 00A0302D */   daddu    $a2, $a1, $zero
/* 3D3410 E00CE950 C6400098 */  lwc1      $f0, 0x98($s2)
/* 3D3414 E00CE954 8FAC00A0 */  lw        $t4, 0xA0($sp)
/* 3D3418 E00CE958 C7A600B8 */  lwc1      $f6, 0xB8($sp)
/* 3D341C E00CE95C 29820010 */  slti      $v0, $t4, 0x10
/* 3D3420 E00CE960 46060102 */  mul.s     $f4, $f0, $f6
/* 3D3424 E00CE964 00000000 */  nop
/* 3D3428 E00CE968 1040000C */  beqz      $v0, .LE00CE99C
/* 3D342C E00CE96C 2402007F */   addiu    $v0, $zero, 0x7F
/* 3D3430 E00CE970 8FAC00A4 */  lw        $t4, 0xA4($sp)
/* 3D3434 E00CE974 3C013CA3 */  lui       $at, (0x3CA3D70A >> 16)
/* 3D3438 E00CE978 3421D70A */  ori       $at, $at, (0x3CA3D70A & 0xFFFF)
/* 3D343C E00CE97C 44811000 */  mtc1      $at, $f2
/* 3D3440 E00CE980 004C1023 */  subu      $v0, $v0, $t4
/* 3D3444 E00CE984 44820000 */  mtc1      $v0, $f0
/* 3D3448 E00CE988 00000000 */  nop
/* 3D344C E00CE98C 46800020 */  cvt.s.w   $f0, $f0
/* 3D3450 E00CE990 46020002 */  mul.s     $f0, $f0, $f2
/* 3D3454 E00CE994 00000000 */  nop
/* 3D3458 E00CE998 46002100 */  add.s     $f4, $f4, $f0
.LE00CE99C:
/* 3D345C E00CE99C 0260202D */  daddu     $a0, $s3, $zero
/* 3D3460 E00CE9A0 44052000 */  mfc1      $a1, $f4
/* 3D3464 E00CE9A4 8FA600B8 */  lw        $a2, 0xB8($sp)
/* 3D3468 E00CE9A8 0C080110 */  jal       shim_guScaleF
/* 3D346C E00CE9AC 00A0382D */   daddu    $a3, $a1, $zero
/* 3D3470 E00CE9B0 0260202D */  daddu     $a0, $s3, $zero
/* 3D3474 E00CE9B4 27A50020 */  addiu     $a1, $sp, 0x20
/* 3D3478 E00CE9B8 0C080114 */  jal       shim_guMtxCatF
/* 3D347C E00CE9BC 00A0302D */   daddu    $a2, $a1, $zero
/* 3D3480 E00CE9C0 C65400F8 */  lwc1      $f20, 0xF8($s2)
/* 3D3484 E00CE9C4 461AA502 */  mul.s     $f20, $f20, $f26
/* 3D3488 E00CE9C8 00000000 */  nop
/* 3D348C E00CE9CC C65600B8 */  lwc1      $f22, 0xB8($s2)
/* 3D3490 E00CE9D0 0C080140 */  jal       shim_sin_deg
/* 3D3494 E00CE9D4 4600B306 */   mov.s    $f12, $f22
/* 3D3498 E00CE9D8 4600A602 */  mul.s     $f24, $f20, $f0
/* 3D349C E00CE9DC 00000000 */  nop
/* 3D34A0 E00CE9E0 0C080144 */  jal       shim_cos_deg
/* 3D34A4 E00CE9E4 4600B306 */   mov.s    $f12, $f22
/* 3D34A8 E00CE9E8 4600A502 */  mul.s     $f20, $f20, $f0
/* 3D34AC E00CE9EC 00000000 */  nop
/* 3D34B0 E00CE9F0 4406F000 */  mfc1      $a2, $f30
/* 3D34B4 E00CE9F4 4407A000 */  mfc1      $a3, $f20
/* 3D34B8 E00CE9F8 4405C000 */  mfc1      $a1, $f24
/* 3D34BC E00CE9FC 0C080108 */  jal       shim_guTranslateF
/* 3D34C0 E00CEA00 0260202D */   daddu    $a0, $s3, $zero
/* 3D34C4 E00CEA04 0260202D */  daddu     $a0, $s3, $zero
/* 3D34C8 E00CEA08 27A50020 */  addiu     $a1, $sp, 0x20
/* 3D34CC E00CEA0C 0C080114 */  jal       shim_guMtxCatF
/* 3D34D0 E00CEA10 00A0302D */   daddu    $a2, $a1, $zero
/* 3D34D4 E00CEA14 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D34D8 E00CEA18 96E50000 */  lhu       $a1, 0x0($s7)
/* 3D34DC E00CEA1C 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3D34E0 E00CEA20 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3D34E4 E00CEA24 00052980 */  sll       $a1, $a1, 6
/* 3D34E8 E00CEA28 00BE2821 */  addu      $a1, $a1, $fp
/* 3D34EC E00CEA2C 0C080118 */  jal       shim_guMtxF2L
/* 3D34F0 E00CEA30 00452821 */   addu     $a1, $v0, $a1
/* 3D34F4 E00CEA34 3C050101 */  lui       $a1, (0x1010020 >> 16)
/* 3D34F8 E00CEA38 34A50020 */  ori       $a1, $a1, (0x1010020 & 0xFFFF)
/* 3D34FC E00CEA3C 8EA80000 */  lw        $t0, 0x0($s5)
/* 3D3500 E00CEA40 96E70000 */  lhu       $a3, 0x0($s7)
/* 3D3504 E00CEA44 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 3D3508 E00CEA48 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 3D350C E00CEA4C 0100202D */  daddu     $a0, $t0, $zero
/* 3D3510 E00CEA50 25080008 */  addiu     $t0, $t0, 0x8
/* 3D3514 E00CEA54 3C0CDA38 */  lui       $t4, (0xDA380000 >> 16)
/* 3D3518 E00CEA58 30E2FFFF */  andi      $v0, $a3, 0xFFFF
/* 3D351C E00CEA5C 00021180 */  sll       $v0, $v0, 6
/* 3D3520 E00CEA60 005E1021 */  addu      $v0, $v0, $fp
/* 3D3524 E00CEA64 00621821 */  addu      $v1, $v1, $v0
/* 3D3528 E00CEA68 AC8C0000 */  sw        $t4, 0x0($a0)
/* 3D352C E00CEA6C AC830004 */  sw        $v1, 0x4($a0)
/* 3D3530 E00CEA70 AD050000 */  sw        $a1, 0x0($t0)
/* 3D3534 E00CEA74 8FAC00AC */  lw        $t4, 0xAC($sp)
/* 3D3538 E00CEA78 26910001 */  addiu     $s1, $s4, 0x1
/* 3D353C E00CEA7C AD0C0004 */  sw        $t4, 0x4($t0)
/* 3D3540 E00CEA80 8FAC00C4 */  lw        $t4, 0xC4($sp)
/* 3D3544 E00CEA84 00118080 */  sll       $s0, $s1, 2
/* 3D3548 E00CEA88 AD0C0008 */  sw        $t4, 0x8($t0)
/* 3D354C E00CEA8C 240C0040 */  addiu     $t4, $zero, 0x40
/* 3D3550 E00CEA90 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 3D3554 E00CEA94 44813000 */  mtc1      $at, $f6
/* 3D3558 E00CEA98 02D08021 */  addu      $s0, $s6, $s0
/* 3D355C E00CEA9C AD0C000C */  sw        $t4, 0xC($t0)
/* 3D3560 E00CEAA0 E7A60010 */  swc1      $f6, 0x10($sp)
/* 3D3564 E00CEAA4 C6000038 */  lwc1      $f0, 0x38($s0)
/* 3D3568 E00CEAA8 461A0002 */  mul.s     $f0, $f0, $f26
/* 3D356C E00CEAAC 00000000 */  nop
/* 3D3570 E00CEAB0 E7A00014 */  swc1      $f0, 0x14($sp)
/* 3D3574 E00CEAB4 C6000058 */  lwc1      $f0, 0x58($s0)
/* 3D3578 E00CEAB8 461A0002 */  mul.s     $f0, $f0, $f26
/* 3D357C E00CEABC 00000000 */  nop
/* 3D3580 E00CEAC0 4406F000 */  mfc1      $a2, $f30
/* 3D3584 E00CEAC4 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D3588 E00CEAC8 24E70001 */  addiu     $a3, $a3, 0x1
/* 3D358C E00CEACC E7A00018 */  swc1      $f0, 0x18($sp)
/* 3D3590 E00CEAD0 C6000078 */  lwc1      $f0, 0x78($s0)
/* 3D3594 E00CEAD4 4405F000 */  mfc1      $a1, $f30
/* 3D3598 E00CEAD8 461A0002 */  mul.s     $f0, $f0, $f26
/* 3D359C E00CEADC 00000000 */  nop
/* 3D35A0 E00CEAE0 25020008 */  addiu     $v0, $t0, 0x8
/* 3D35A4 E00CEAE4 AEA80000 */  sw        $t0, 0x0($s5)
/* 3D35A8 E00CEAE8 A6E70000 */  sh        $a3, 0x0($s7)
/* 3D35AC E00CEAEC AEA20000 */  sw        $v0, 0x0($s5)
/* 3D35B0 E00CEAF0 E7A0001C */  swc1      $f0, 0x1C($sp)
/* 3D35B4 E00CEAF4 8E070118 */  lw        $a3, 0x118($s0)
/* 3D35B8 E00CEAF8 25080010 */  addiu     $t0, $t0, 0x10
/* 3D35BC E00CEAFC 0C080180 */  jal       shim_guPositionF
/* 3D35C0 E00CEB00 AEA80000 */   sw       $t0, 0x0($s5)
/* 3D35C4 E00CEB04 C6C00138 */  lwc1      $f0, 0x138($s6)
/* 3D35C8 E00CEB08 461C0000 */  add.s     $f0, $f0, $f28
/* 3D35CC E00CEB0C 3C063CF5 */  lui       $a2, (0x3CF5C28F >> 16)
/* 3D35D0 E00CEB10 34C6C28F */  ori       $a2, $a2, (0x3CF5C28F & 0xFFFF)
/* 3D35D4 E00CEB14 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 3D35D8 E00CEB18 44050000 */  mfc1      $a1, $f0
/* 3D35DC E00CEB1C 0260202D */  daddu     $a0, $s3, $zero
/* 3D35E0 E00CEB20 0C080104 */  jal       shim_guRotateF
/* 3D35E4 E00CEB24 E7BE0010 */   swc1     $f30, 0x10($sp)
/* 3D35E8 E00CEB28 0260202D */  daddu     $a0, $s3, $zero
/* 3D35EC E00CEB2C 27A50020 */  addiu     $a1, $sp, 0x20
/* 3D35F0 E00CEB30 0C080114 */  jal       shim_guMtxCatF
/* 3D35F4 E00CEB34 00A0302D */   daddu    $a2, $a1, $zero
/* 3D35F8 E00CEB38 C6000098 */  lwc1      $f0, 0x98($s0)
/* 3D35FC E00CEB3C C7A600B8 */  lwc1      $f6, 0xB8($sp)
/* 3D3600 E00CEB40 46060002 */  mul.s     $f0, $f0, $f6
/* 3D3604 E00CEB44 00000000 */  nop
/* 3D3608 E00CEB48 0260202D */  daddu     $a0, $s3, $zero
/* 3D360C E00CEB4C 44050000 */  mfc1      $a1, $f0
/* 3D3610 E00CEB50 44063000 */  mfc1      $a2, $f6
/* 3D3614 E00CEB54 0C080110 */  jal       shim_guScaleF
/* 3D3618 E00CEB58 00A0382D */   daddu    $a3, $a1, $zero
/* 3D361C E00CEB5C 0260202D */  daddu     $a0, $s3, $zero
/* 3D3620 E00CEB60 27A50020 */  addiu     $a1, $sp, 0x20
/* 3D3624 E00CEB64 0C080114 */  jal       shim_guMtxCatF
/* 3D3628 E00CEB68 00A0302D */   daddu    $a2, $a1, $zero
/* 3D362C E00CEB6C C65400F8 */  lwc1      $f20, 0xF8($s2)
/* 3D3630 E00CEB70 461AA502 */  mul.s     $f20, $f20, $f26
/* 3D3634 E00CEB74 00000000 */  nop
/* 3D3638 E00CEB78 0C080140 */  jal       shim_sin_deg
/* 3D363C E00CEB7C C64C00B8 */   lwc1     $f12, 0xB8($s2)
/* 3D3640 E00CEB80 4600A582 */  mul.s     $f22, $f20, $f0
/* 3D3644 E00CEB84 00000000 */  nop
/* 3D3648 E00CEB88 0C080144 */  jal       shim_cos_deg
/* 3D364C E00CEB8C C64C00B8 */   lwc1     $f12, 0xB8($s2)
/* 3D3650 E00CEB90 4600A502 */  mul.s     $f20, $f20, $f0
/* 3D3654 E00CEB94 00000000 */  nop
/* 3D3658 E00CEB98 4406F000 */  mfc1      $a2, $f30
/* 3D365C E00CEB9C 4407A000 */  mfc1      $a3, $f20
/* 3D3660 E00CEBA0 4405B000 */  mfc1      $a1, $f22
/* 3D3664 E00CEBA4 0C080108 */  jal       shim_guTranslateF
/* 3D3668 E00CEBA8 0260202D */   daddu    $a0, $s3, $zero
/* 3D366C E00CEBAC 0260202D */  daddu     $a0, $s3, $zero
/* 3D3670 E00CEBB0 27A50020 */  addiu     $a1, $sp, 0x20
/* 3D3674 E00CEBB4 0C080114 */  jal       shim_guMtxCatF
/* 3D3678 E00CEBB8 00A0302D */   daddu    $a2, $a1, $zero
/* 3D367C E00CEBBC 27A40020 */  addiu     $a0, $sp, 0x20
/* 3D3680 E00CEBC0 96E50000 */  lhu       $a1, 0x0($s7)
/* 3D3684 E00CEBC4 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3D3688 E00CEBC8 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3D368C E00CEBCC 00052980 */  sll       $a1, $a1, 6
/* 3D3690 E00CEBD0 00BE2821 */  addu      $a1, $a1, $fp
/* 3D3694 E00CEBD4 0C080118 */  jal       shim_guMtxF2L
/* 3D3698 E00CEBD8 00452821 */   addu     $a1, $v0, $a1
/* 3D369C E00CEBDC 3C080101 */  lui       $t0, (0x1010040 >> 16)
/* 3D36A0 E00CEBE0 35080040 */  ori       $t0, $t0, (0x1010040 & 0xFFFF)
/* 3D36A4 E00CEBE4 3C090100 */  lui       $t1, (0x100007C >> 16)
/* 3D36A8 E00CEBE8 3529007C */  ori       $t1, $t1, (0x100007C & 0xFFFF)
/* 3D36AC E00CEBEC 00142900 */  sll       $a1, $s4, 4
/* 3D36B0 E00CEBF0 8EA40000 */  lw        $a0, 0x0($s5)
/* 3D36B4 E00CEBF4 96E30000 */  lhu       $v1, 0x0($s7)
/* 3D36B8 E00CEBF8 0080382D */  daddu     $a3, $a0, $zero
/* 3D36BC E00CEBFC 24840008 */  addiu     $a0, $a0, 0x8
/* 3D36C0 E00CEC00 3C0CDA38 */  lui       $t4, (0xDA380000 >> 16)
/* 3D36C4 E00CEC04 24620001 */  addiu     $v0, $v1, 0x1
/* 3D36C8 E00CEC08 3063FFFF */  andi      $v1, $v1, 0xFFFF
/* 3D36CC E00CEC0C 00031980 */  sll       $v1, $v1, 6
/* 3D36D0 E00CEC10 AEA40000 */  sw        $a0, 0x0($s5)
/* 3D36D4 E00CEC14 ACEC0000 */  sw        $t4, 0x0($a3)
/* 3D36D8 E00CEC18 A6E20000 */  sh        $v0, 0x0($s7)
/* 3D36DC E00CEC1C 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3D36E0 E00CEC20 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3D36E4 E00CEC24 007E1821 */  addu      $v1, $v1, $fp
/* 3D36E8 E00CEC28 00431021 */  addu      $v0, $v0, $v1
/* 3D36EC E00CEC2C ACE20004 */  sw        $v0, 0x4($a3)
/* 3D36F0 E00CEC30 24820008 */  addiu     $v0, $a0, 0x8
/* 3D36F4 E00CEC34 AEA20000 */  sw        $v0, 0x0($s5)
/* 3D36F8 E00CEC38 AC880000 */  sw        $t0, 0x0($a0)
/* 3D36FC E00CEC3C 8FAC00AC */  lw        $t4, 0xAC($sp)
/* 3D3700 E00CEC40 001430C0 */  sll       $a2, $s4, 3
/* 3D3704 E00CEC44 25820100 */  addiu     $v0, $t4, 0x100
/* 3D3708 E00CEC48 AC820004 */  sw        $v0, 0x4($a0)
/* 3D370C E00CEC4C 24820010 */  addiu     $v0, $a0, 0x10
/* 3D3710 E00CEC50 AEA20000 */  sw        $v0, 0x0($s5)
/* 3D3714 E00CEC54 8FAC00C4 */  lw        $t4, 0xC4($sp)
/* 3D3718 E00CEC58 24820018 */  addiu     $v0, $a0, 0x18
/* 3D371C E00CEC5C AC8C0008 */  sw        $t4, 0x8($a0)
/* 3D3720 E00CEC60 240C0040 */  addiu     $t4, $zero, 0x40
/* 3D3724 E00CEC64 AC8C000C */  sw        $t4, 0xC($a0)
/* 3D3728 E00CEC68 AEA20000 */  sw        $v0, 0x0($s5)
/* 3D372C E00CEC6C 8FAC00B0 */  lw        $t4, 0xB0($sp)
/* 3D3730 E00CEC70 0220A02D */  daddu     $s4, $s1, $zero
/* 3D3734 E00CEC74 01852821 */  addu      $a1, $t4, $a1
/* 3D3738 E00CEC78 30A20FFF */  andi      $v0, $a1, 0xFFF
/* 3D373C E00CEC7C 00021300 */  sll       $v0, $v0, 12
/* 3D3740 E00CEC80 3C0CF200 */  lui       $t4, (0xF2000000 >> 16)
/* 3D3744 E00CEC84 004C1025 */  or        $v0, $v0, $t4
/* 3D3748 E00CEC88 24A5003F */  addiu     $a1, $a1, 0x3F
/* 3D374C E00CEC8C 00052880 */  sll       $a1, $a1, 2
/* 3D3750 E00CEC90 30A50FFF */  andi      $a1, $a1, 0xFFF
/* 3D3754 E00CEC94 00052B00 */  sll       $a1, $a1, 12
/* 3D3758 E00CEC98 34A5007C */  ori       $a1, $a1, 0x7C
/* 3D375C E00CEC9C AC820010 */  sw        $v0, 0x10($a0)
/* 3D3760 E00CECA0 24820020 */  addiu     $v0, $a0, 0x20
/* 3D3764 E00CECA4 AC850014 */  sw        $a1, 0x14($a0)
/* 3D3768 E00CECA8 AEA20000 */  sw        $v0, 0x0($s5)
/* 3D376C E00CECAC 8FAC00B4 */  lw        $t4, 0xB4($sp)
/* 3D3770 E00CECB0 3C0ADE00 */  lui       $t2, (0xDE000000 >> 16)
/* 3D3774 E00CECB4 01863021 */  addu      $a2, $t4, $a2
/* 3D3778 E00CECB8 30C20FFF */  andi      $v0, $a2, 0xFFF
/* 3D377C E00CECBC 00021300 */  sll       $v0, $v0, 12
/* 3D3780 E00CECC0 3C0CF200 */  lui       $t4, (0xF2000000 >> 16)
/* 3D3784 E00CECC4 004C1025 */  or        $v0, $v0, $t4
/* 3D3788 E00CECC8 24C6003F */  addiu     $a2, $a2, 0x3F
/* 3D378C E00CECCC 00063080 */  sll       $a2, $a2, 2
/* 3D3790 E00CECD0 30C60FFF */  andi      $a2, $a2, 0xFFF
/* 3D3794 E00CECD4 00063300 */  sll       $a2, $a2, 12
/* 3D3798 E00CECD8 00C93025 */  or        $a2, $a2, $t1
/* 3D379C E00CECDC AC820018 */  sw        $v0, 0x18($a0)
/* 3D37A0 E00CECE0 24820028 */  addiu     $v0, $a0, 0x28
/* 3D37A4 E00CECE4 AC86001C */  sw        $a2, 0x1C($a0)
/* 3D37A8 E00CECE8 AEA20000 */  sw        $v0, 0x0($s5)
/* 3D37AC E00CECEC AC8A0020 */  sw        $t2, 0x20($a0)
/* 3D37B0 E00CECF0 8FAC00A8 */  lw        $t4, 0xA8($sp)
/* 3D37B4 E00CECF4 2A820007 */  slti      $v0, $s4, 0x7
/* 3D37B8 E00CECF8 1440FEEA */  bnez      $v0, .LE00CE8A4
/* 3D37BC E00CECFC AC8C0024 */   sw       $t4, 0x24($a0)
/* 3D37C0 E00CED00 3C05D9FF */  lui       $a1, (0xD9FFF9FF >> 16)
/* 3D37C4 E00CED04 34A5F9FF */  ori       $a1, $a1, (0xD9FFF9FF & 0xFFFF)
/* 3D37C8 E00CED08 3C09D838 */  lui       $t1, (0xD8380002 >> 16)
/* 3D37CC E00CED0C 3C07800A */  lui       $a3, %hi(gMainGfxPos)
/* 3D37D0 E00CED10 24E7A66C */  addiu     $a3, $a3, %lo(gMainGfxPos)
/* 3D37D4 E00CED14 35290002 */  ori       $t1, $t1, (0xD8380002 & 0xFFFF)
/* 3D37D8 E00CED18 8CE40000 */  lw        $a0, 0x0($a3)
/* 3D37DC E00CED1C 3C02DF00 */  lui       $v0, (0xDF000000 >> 16)
/* 3D37E0 E00CED20 0080182D */  daddu     $v1, $a0, $zero
/* 3D37E4 E00CED24 24840008 */  addiu     $a0, $a0, 0x8
/* 3D37E8 E00CED28 ACE40000 */  sw        $a0, 0x0($a3)
/* 3D37EC E00CED2C AC620000 */  sw        $v0, 0x0($v1)
/* 3D37F0 E00CED30 AC600004 */  sw        $zero, 0x4($v1)
/* 3D37F4 E00CED34 8FAC00C0 */  lw        $t4, 0xC0($sp)
/* 3D37F8 E00CED38 3C02DE01 */  lui       $v0, (0xDE010000 >> 16)
/* 3D37FC E00CED3C AD820000 */  sw        $v0, 0x0($t4)
/* 3D3800 E00CED40 24820008 */  addiu     $v0, $a0, 0x8
/* 3D3804 E00CED44 AD840004 */  sw        $a0, 0x4($t4)
/* 3D3808 E00CED48 ACE20000 */  sw        $v0, 0x0($a3)
/* 3D380C E00CED4C 24820010 */  addiu     $v0, $a0, 0x10
/* 3D3810 E00CED50 AC850000 */  sw        $a1, 0x0($a0)
/* 3D3814 E00CED54 AC800004 */  sw        $zero, 0x4($a0)
/* 3D3818 E00CED58 ACE20000 */  sw        $v0, 0x0($a3)
/* 3D381C E00CED5C 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 3D3820 E00CED60 AC820008 */  sw        $v0, 0x8($a0)
/* 3D3824 E00CED64 92C2001B */  lbu       $v0, 0x1B($s6)
/* 3D3828 E00CED68 92C5001F */  lbu       $a1, 0x1F($s6)
/* 3D382C E00CED6C 92C60023 */  lbu       $a2, 0x23($s6)
/* 3D3830 E00CED70 24830018 */  addiu     $v1, $a0, 0x18
/* 3D3834 E00CED74 ACE30000 */  sw        $v1, 0x0($a3)
/* 3D3838 E00CED78 3C03FB00 */  lui       $v1, (0xFB000000 >> 16)
/* 3D383C E00CED7C AC830010 */  sw        $v1, 0x10($a0)
/* 3D3840 E00CED80 8FAC00A4 */  lw        $t4, 0xA4($sp)
/* 3D3844 E00CED84 00021600 */  sll       $v0, $v0, 24
/* 3D3848 E00CED88 00052C00 */  sll       $a1, $a1, 16
/* 3D384C E00CED8C 00451025 */  or        $v0, $v0, $a1
/* 3D3850 E00CED90 00063200 */  sll       $a2, $a2, 8
/* 3D3854 E00CED94 00461025 */  or        $v0, $v0, $a2
/* 3D3858 E00CED98 318300FF */  andi      $v1, $t4, 0xFF
/* 3D385C E00CED9C 00431025 */  or        $v0, $v0, $v1
/* 3D3860 E00CEDA0 AC82000C */  sw        $v0, 0xC($a0)
/* 3D3864 E00CEDA4 92C3002B */  lbu       $v1, 0x2B($s6)
/* 3D3868 E00CEDA8 92C6002F */  lbu       $a2, 0x2F($s6)
/* 3D386C E00CEDAC 92C80033 */  lbu       $t0, 0x33($s6)
/* 3D3870 E00CEDB0 24820020 */  addiu     $v0, $a0, 0x20
/* 3D3874 E00CEDB4 ACE20000 */  sw        $v0, 0x0($a3)
/* 3D3878 E00CEDB8 24820028 */  addiu     $v0, $a0, 0x28
/* 3D387C E00CEDBC AC8A0018 */  sw        $t2, 0x18($a0)
/* 3D3880 E00CEDC0 8FAC00BC */  lw        $t4, 0xBC($sp)
/* 3D3884 E00CEDC4 24050040 */  addiu     $a1, $zero, 0x40
/* 3D3888 E00CEDC8 AC8C001C */  sw        $t4, 0x1C($a0)
/* 3D388C E00CEDCC ACE20000 */  sw        $v0, 0x0($a3)
/* 3D3890 E00CEDD0 24820030 */  addiu     $v0, $a0, 0x30
/* 3D3894 E00CEDD4 00031E00 */  sll       $v1, $v1, 24
/* 3D3898 E00CEDD8 00063400 */  sll       $a2, $a2, 16
/* 3D389C E00CEDDC 00661825 */  or        $v1, $v1, $a2
/* 3D38A0 E00CEDE0 00084200 */  sll       $t0, $t0, 8
/* 3D38A4 E00CEDE4 00681825 */  or        $v1, $v1, $t0
/* 3D38A8 E00CEDE8 34630020 */  ori       $v1, $v1, 0x20
/* 3D38AC E00CEDEC AC890020 */  sw        $t1, 0x20($a0)
/* 3D38B0 E00CEDF0 AC850024 */  sw        $a1, 0x24($a0)
/* 3D38B4 E00CEDF4 ACE20000 */  sw        $v0, 0x0($a3)
/* 3D38B8 E00CEDF8 AC890028 */  sw        $t1, 0x28($a0)
/* 3D38BC E00CEDFC AC85002C */  sw        $a1, 0x2C($a0)
/* 3D38C0 E00CEE00 AC830014 */  sw        $v1, 0x14($a0)
/* 3D38C4 E00CEE04 8FBF00EC */  lw        $ra, 0xEC($sp)
/* 3D38C8 E00CEE08 8FBE00E8 */  lw        $fp, 0xE8($sp)
/* 3D38CC E00CEE0C 8FB700E4 */  lw        $s7, 0xE4($sp)
/* 3D38D0 E00CEE10 8FB600E0 */  lw        $s6, 0xE0($sp)
/* 3D38D4 E00CEE14 8FB500DC */  lw        $s5, 0xDC($sp)
/* 3D38D8 E00CEE18 8FB400D8 */  lw        $s4, 0xD8($sp)
/* 3D38DC E00CEE1C 8FB300D4 */  lw        $s3, 0xD4($sp)
/* 3D38E0 E00CEE20 8FB200D0 */  lw        $s2, 0xD0($sp)
/* 3D38E4 E00CEE24 8FB100CC */  lw        $s1, 0xCC($sp)
/* 3D38E8 E00CEE28 8FB000C8 */  lw        $s0, 0xC8($sp)
/* 3D38EC E00CEE2C D7BE0118 */  ldc1      $f30, 0x118($sp)
/* 3D38F0 E00CEE30 D7BC0110 */  ldc1      $f28, 0x110($sp)
/* 3D38F4 E00CEE34 D7BA0108 */  ldc1      $f26, 0x108($sp)
/* 3D38F8 E00CEE38 D7B80100 */  ldc1      $f24, 0x100($sp)
/* 3D38FC E00CEE3C D7B600F8 */  ldc1      $f22, 0xF8($sp)
/* 3D3900 E00CEE40 D7B400F0 */  ldc1      $f20, 0xF0($sp)
/* 3D3904 E00CEE44 03E00008 */  jr        $ra
/* 3D3908 E00CEE48 27BD0120 */   addiu    $sp, $sp, 0x120
/* 3D390C E00CEE4C 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void whirlwind_appendGfx(void* effect) {
    Matrix4f sp20;
    Matrix4f sp60;
    s32 spA0;
    s32 primAlpha;
    Gfx* triangleDisplayList;
    Vtx* vertexBuffer;
    s32 spB0;
    s32 spB4;
    f32 spB8;
    Gfx* whirlwindMainDisplayList;
    Gfx* savedPos;
    f32 temp_f20_2;
    f32 temp_f20_3;
    f32 var_f4;
    f32 f22;
    s32 i;
    EffectInstance* eff = (EffectInstance*)effect;
    WhirlwindFXData* data = eff->data.whirlwind;

    spA0 = data->unk_10;
    primAlpha = data->primAlpha >> 1;
    spB8 = data->unk_34;
    spB0 = data->unk_13C * 4.0f;
    spB4 = data->unk_140 * 4.0f;
    gDPPipeSync(gMainGfxPos++);
    gSPSegment(gMainGfxPos++, 0x09, OS_K0_TO_PHYSICAL(eff->graphics->data));

    shim_guTranslateF(sp20, 0.0f, 0.0f, 0.0f);
    shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);

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

    // Reserve 0x208 bytes (65 commands) for a vertex buffer (2x16 Vtx + space for the current command)
    gSPBranchList(gMainGfxPos, &gMainGfxPos[65]);
    vertexBuffer = (Vtx*)(gMainGfxPos + 1);

    // set the current position we're writing gfx commands to past the vertex buffer
    gMainGfxPos = &gMainGfxPos[65];

    // fill the vertex buffer; 2 sets of 16 verticies
    for (i = 0; i <= (360 / 24); i++) {
        Vtx* vtx = &vertexBuffer[i];
        vtx->v.ob[0] = shim_cos_deg(i * (360 / 15)) * 100.0f;
        vtx->v.ob[1] = 0;
        vtx->v.ob[2] = shim_sin_deg(i * (360 / 15)) * 100.0f;
        vtx->v.tc[0] = i * 128;
        vtx->v.tc[1] = 0;

        vtx = &vertexBuffer[i + (360 / 24 + 1)];
        vtx->v.ob[0] = shim_cos_deg(i * (360 / 15)) * 100.0f;
        vtx->v.ob[1] = 0;
        vtx->v.ob[2] = shim_sin_deg(i * (360 / 15)) * 100.0f;
        vtx->v.tc[0] = i * 512;
        vtx->v.tc[1] = 1024;
    }

    // Reserve 0x88 bytes (17 commands, including this one) for a separate dynamically generated display list
    gSPBranchList(gMainGfxPos, &gMainGfxPos[17]);

    // Get a reference to the dynamically generated display list
    triangleDisplayList = ++gMainGfxPos;

    // Generate display list
    for (i = 0; i < 15; i++) {
        gSP2Triangles(gMainGfxPos++, i + 0x10, i + 1, i, 0, i + 0x10, i + 0x11, i + 1, 0);
    }

    // This marks the end of our dynamically generated display list, return control back to the main display list
    gSPEndDisplayList(gMainGfxPos++);

    shim_guScaleF(sp20, 0.1f, 0.1f, 0.1f);
    shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);

    // Save position to later insert a branch around the commands that follow this
    savedPos = gMainGfxPos++;

    // Save position of main display list
    whirlwindMainDisplayList = gMainGfxPos;

    // Generate main display list
    for(i = 0; i < (MAX_WHIRLWIND_SEGMENTS - 1); i++) {
        shim_guPositionF(sp20, 0.0f, 0.0f, data->unk_118[i], 1.0f, data->unk_38[i] * 10.0f, data->unk_58[i] * 10.0f, data->unk_78[i] * 10.0f);
        shim_guRotateF(sp60, data->unk_138 + i * i, -0.03f, 1.0f, 0.1f);
        shim_guMtxCatF(sp60, sp20, sp20);
        var_f4 = data->unk_98[i] * spB8;
        if (spA0 < 0x10) {
            var_f4 += (127 - primAlpha) * 0.02f;
        }
        shim_guScaleF(sp60, var_f4, spB8, var_f4);
        shim_guMtxCatF(sp60, sp20, sp20);
        temp_f20_2 = data->unk_F8[i] * 10.0f;
        f22 = data->unk_B8[i];
        shim_guTranslateF(sp60, temp_f20_2 * shim_sin_deg(f22), 0.0f, temp_f20_2 * shim_cos_deg(f22));
        shim_guMtxCatF(sp60, sp20, sp20);
        shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gSPVertex(gMainGfxPos++, vertexBuffer, 16, 0);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);

        shim_guPositionF(sp20, 0.0f, 0.0f, data->unk_118[i + 1], 1.0f, data->unk_38[i + 1] * 10.0f, data->unk_58[i + 1] * 10.0f, data->unk_78[i + 1] * 10.0f);
        shim_guRotateF(sp60, data->unk_138 + i * i, 0.03f, 1.0f, 0.0f);
        shim_guMtxCatF(sp60, sp20, sp20);
        shim_guScaleF(sp60, data->unk_98[i + 1] * spB8, spB8, data->unk_98[i + 1] * spB8);
        shim_guMtxCatF(sp60, sp20, sp20);
        temp_f20_3 = data->unk_F8[i] * 10.0f;
        shim_guTranslateF(sp60, temp_f20_3 * shim_sin_deg(data->unk_B8[i]), 0.0f, temp_f20_3 * shim_cos_deg(data->unk_B8[i]));
        shim_guMtxCatF(sp60, sp20, sp20);
        shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);
        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gSPVertex(gMainGfxPos++, &vertexBuffer[16], 16, 16);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);

        gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE, spB0 + i * 16, 0, (spB0 + i * 16 + 63) << 2, 31 << 2);
        gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE + 1, spB4 + i * 8, 0, (spB4 + i * 8 + 63) << 2, 31 << 2);

        // Call the display list to create triangles from the verticies
        gSPDisplayList(gMainGfxPos++, triangleDisplayList);
    }

    gSPEndDisplayList(gMainGfxPos++);

    // Now that the length of our display list is known, insert a branch at the previously saved location
    gSPBranchList(savedPos, gMainGfxPos);
    gSPClearGeometryMode(gMainGfxPos++, G_CULL_BOTH);
    gDPSetPrimColor(gMainGfxPos++, 0, 0, data->primR, data->primG, data->primB, primAlpha);
    gDPSetEnvColor(gMainGfxPos++, data->envR, data->envG, data->envB, 32);

    // Call the main display list
    gSPDisplayList(gMainGfxPos++, whirlwindMainDisplayList);
    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel load_partner_actor
/* 193454 80264B74 27BDFFB0 */  addiu     $sp, $sp, -0x50
/* 193458 80264B78 AFB30024 */  sw        $s3, 0x24($sp)
/* 19345C 80264B7C 3C138011 */  lui       $s3, %hi(gPlayerData)
/* 193460 80264B80 2673F290 */  addiu     $s3, $s3, %lo(gPlayerData)
/* 193464 80264B84 AFBF0034 */  sw        $ra, 0x34($sp)
/* 193468 80264B88 AFB60030 */  sw        $s6, 0x30($sp)
/* 19346C 80264B8C AFB5002C */  sw        $s5, 0x2C($sp)
/* 193470 80264B90 AFB40028 */  sw        $s4, 0x28($sp)
/* 193474 80264B94 AFB20020 */  sw        $s2, 0x20($sp)
/* 193478 80264B98 AFB1001C */  sw        $s1, 0x1C($sp)
/* 19347C 80264B9C AFB00018 */  sw        $s0, 0x18($sp)
/* 193480 80264BA0 F7B80048 */  sdc1      $f24, 0x48($sp)
/* 193484 80264BA4 F7B60040 */  sdc1      $f22, 0x40($sp)
/* 193488 80264BA8 F7B40038 */  sdc1      $f20, 0x38($sp)
/* 19348C 80264BAC 82640012 */  lb        $a0, 0x12($s3)
/* 193490 80264BB0 3C12800E */  lui       $s2, %hi(gBattleStatus)
/* 193494 80264BB4 2652C070 */  addiu     $s2, $s2, %lo(gBattleStatus)
/* 193498 80264BB8 108001ED */  beqz      $a0, .L80265370
/* 19349C 80264BBC AE4000DC */   sw       $zero, 0xDC($s2)
/* 1934A0 80264BC0 3C038028 */  lui       $v1, %hi(D_80283F10)
/* 1934A4 80264BC4 24633F10 */  addiu     $v1, $v1, %lo(D_80283F10)
/* 1934A8 80264BC8 00041080 */  sll       $v0, $a0, 2
/* 1934AC 80264BCC 00441021 */  addu      $v0, $v0, $a0
/* 1934B0 80264BD0 00021080 */  sll       $v0, $v0, 2
/* 1934B4 80264BD4 00438021 */  addu      $s0, $v0, $v1
/* 1934B8 80264BD8 8E14000C */  lw        $s4, 0xC($s0)
/* 1934BC 80264BDC 16800003 */  bnez      $s4, .L80264BEC
/* 1934C0 80264BE0 00000000 */   nop
.L80264BE4:
/* 1934C4 80264BE4 080992F9 */  j         .L80264BE4
/* 1934C8 80264BE8 00000000 */   nop
.L80264BEC:
/* 1934CC 80264BEC 8E040000 */  lw        $a0, 0x0($s0)
/* 1934D0 80264BF0 8E060004 */  lw        $a2, 0x4($s0)
/* 1934D4 80264BF4 8E050008 */  lw        $a1, 0x8($s0)
/* 1934D8 80264BF8 0C017D24 */  jal       nuPiReadRom
/* 1934DC 80264BFC 00C43023 */   subu     $a2, $a2, $a0
/* 1934E0 80264C00 3C04800E */  lui       $a0, %hi(gBattleStatus)
/* 1934E4 80264C04 2484C070 */  addiu     $a0, $a0, %lo(gBattleStatus)
/* 1934E8 80264C08 8C820004 */  lw        $v0, 0x4($a0)
/* 1934EC 80264C0C 30420040 */  andi      $v0, $v0, 0x40
/* 1934F0 80264C10 14400007 */  bnez      $v0, .L80264C30
/* 1934F4 80264C14 00000000 */   nop
/* 1934F8 80264C18 3C028007 */  lui       $v0, %hi(gGameStatusPtr)
/* 1934FC 80264C1C 8C42419C */  lw        $v0, %lo(gGameStatusPtr)($v0)
/* 193500 80264C20 904200AA */  lbu       $v0, 0xAA($v0)
/* 193504 80264C24 30420002 */  andi      $v0, $v0, 0x2
/* 193508 80264C28 1040000B */  beqz      $v0, .L80264C58
/* 19350C 80264C2C 00000000 */   nop
.L80264C30:
/* 193510 80264C30 C6180010 */  lwc1      $f24, 0x10($s0)
/* 193514 80264C34 4680C620 */  cvt.s.w   $f24, $f24
/* 193518 80264C38 3C030010 */  lui       $v1, (0x100000 >> 16)
/* 19351C 80264C3C 3C01C2BE */  lui       $at, (0xC2BE0000 >> 16)
/* 193520 80264C40 4481A000 */  mtc1      $at, $f20
/* 193524 80264C44 8C820000 */  lw        $v0, 0x0($a0)
/* 193528 80264C48 4480B000 */  mtc1      $zero, $f22
/* 19352C 80264C4C 00431025 */  or        $v0, $v0, $v1
/* 193530 80264C50 0809931C */  j         .L80264C70
/* 193534 80264C54 AC820000 */   sw       $v0, 0x0($a0)
.L80264C58:
/* 193538 80264C58 C6180010 */  lwc1      $f24, 0x10($s0)
/* 19353C 80264C5C 4680C620 */  cvt.s.w   $f24, $f24
/* 193540 80264C60 3C01C302 */  lui       $at, (0xC3020000 >> 16)
/* 193544 80264C64 4481A000 */  mtc1      $at, $f20
/* 193548 80264C68 3C01C120 */  lui       $at, (0xC1200000 >> 16)
/* 19354C 80264C6C 4481B000 */  mtc1      $at, $f22
.L80264C70:
/* 193550 80264C70 86960008 */  lh        $s6, 0x8($s4)
/* 193554 80264C74 0C00AB39 */  jal       heap_malloc
/* 193558 80264C78 24040444 */   addiu    $a0, $zero, 0x444
/* 19355C 80264C7C 0040882D */  daddu     $s1, $v0, $zero
/* 193560 80264C80 16200003 */  bnez      $s1, .L80264C90
/* 193564 80264C84 AE4200DC */   sw       $v0, 0xDC($s2)
.L80264C88:
/* 193568 80264C88 08099322 */  j         .L80264C88
/* 19356C 80264C8C 00000000 */   nop
.L80264C90:
/* 193570 80264C90 82620012 */  lb        $v0, 0x12($s3)
/* 193574 80264C94 000210C0 */  sll       $v0, $v0, 3
/* 193578 80264C98 02621021 */  addu      $v0, $s3, $v0
/* 19357C 80264C9C 90420015 */  lbu       $v0, 0x15($v0)
/* 193580 80264CA0 A2820006 */  sb        $v0, 0x6($s4)
/* 193584 80264CA4 92430093 */  lbu       $v1, 0x93($s2)
/* 193588 80264CA8 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 19358C 80264CAC 44811000 */  mtc1      $at, $f2
/* 193590 80264CB0 24620001 */  addiu     $v0, $v1, 0x1
/* 193594 80264CB4 A2420093 */  sb        $v0, 0x93($s2)
/* 193598 80264CB8 A2230134 */  sb        $v1, 0x134($s1)
/* 19359C 80264CBC A2200135 */  sb        $zero, 0x135($s1)
/* 1935A0 80264CC0 AE340008 */  sw        $s4, 0x8($s1)
/* 1935A4 80264CC4 92820005 */  lbu       $v0, 0x5($s4)
/* 1935A8 80264CC8 A2220136 */  sb        $v0, 0x136($s1)
/* 1935AC 80264CCC 8E820000 */  lw        $v0, 0x0($s4)
/* 1935B0 80264CD0 E6340144 */  swc1      $f20, 0x144($s1)
/* 1935B4 80264CD4 E6340138 */  swc1      $f20, 0x138($s1)
/* 1935B8 80264CD8 E6380148 */  swc1      $f24, 0x148($s1)
/* 1935BC 80264CDC E638013C */  swc1      $f24, 0x13C($s1)
/* 1935C0 80264CE0 E636014C */  swc1      $f22, 0x14C($s1)
/* 1935C4 80264CE4 E6360140 */  swc1      $f22, 0x140($s1)
/* 1935C8 80264CE8 A6200150 */  sh        $zero, 0x150($s1)
/* 1935CC 80264CEC A6200152 */  sh        $zero, 0x152($s1)
/* 1935D0 80264CF0 A6200154 */  sh        $zero, 0x154($s1)
/* 1935D4 80264CF4 AE220000 */  sw        $v0, 0x0($s1)
/* 1935D8 80264CF8 92820007 */  lbu       $v0, 0x7($s4)
/* 1935DC 80264CFC A23601F3 */  sb        $s6, 0x1F3($s1)
/* 1935E0 80264D00 AE2001C0 */  sw        $zero, 0x1C0($s1)
/* 1935E4 80264D04 A22201B8 */  sb        $v0, 0x1B8($s1)
/* 1935E8 80264D08 8E820010 */  lw        $v0, 0x10($s4)
/* 1935EC 80264D0C AE2001C8 */  sw        $zero, 0x1C8($s1)
/* 1935F0 80264D10 AE2001CC */  sw        $zero, 0x1CC($s1)
/* 1935F4 80264D14 AE2001D0 */  sw        $zero, 0x1D0($s1)
/* 1935F8 80264D18 AE2001D4 */  sw        $zero, 0x1D4($s1)
/* 1935FC 80264D1C AE2001D8 */  sw        $zero, 0x1D8($s1)
/* 193600 80264D20 AE2001DC */  sw        $zero, 0x1DC($s1)
/* 193604 80264D24 AE2201C4 */  sw        $v0, 0x1C4($s1)
/* 193608 80264D28 A22001F1 */  sb        $zero, 0x1F1($s1)
/* 19360C 80264D2C 4600A006 */  mov.s     $f0, $f20
/* 193610 80264D30 A22001F2 */  sb        $zero, 0x1F2($s1)
/* 193614 80264D34 AE20018C */  sw        $zero, 0x18C($s1)
/* 193618 80264D38 AE20015C */  sw        $zero, 0x15C($s1)
/* 19361C 80264D3C AE200160 */  sw        $zero, 0x160($s1)
/* 193620 80264D40 AE200164 */  sw        $zero, 0x164($s1)
/* 193624 80264D44 A6200168 */  sh        $zero, 0x168($s1)
/* 193628 80264D48 A620016A */  sh        $zero, 0x16A($s1)
/* 19362C 80264D4C A620016C */  sh        $zero, 0x16C($s1)
/* 193630 80264D50 E6220170 */  swc1      $f2, 0x170($s1)
/* 193634 80264D54 E6220174 */  swc1      $f2, 0x174($s1)
/* 193638 80264D58 E6220178 */  swc1      $f2, 0x178($s1)
/* 19363C 80264D5C E622017C */  swc1      $f2, 0x17C($s1)
/* 193640 80264D60 E6220180 */  swc1      $f2, 0x180($s1)
/* 193644 80264D64 E6220184 */  swc1      $f2, 0x184($s1)
/* 193648 80264D68 A220019A */  sb        $zero, 0x19A($s1)
/* 19364C 80264D6C 92820020 */  lbu       $v0, 0x20($s4)
/* 193650 80264D70 4600B106 */  mov.s     $f4, $f22
/* 193654 80264D74 A2220190 */  sb        $v0, 0x190($s1)
/* 193658 80264D78 4600018D */  trunc.w.s $f6, $f0
/* 19365C 80264D7C 44023000 */  mfc1      $v0, $f6
/* 193660 80264D80 92830021 */  lbu       $v1, 0x21($s4)
/* 193664 80264D84 4600C006 */  mov.s     $f0, $f24
/* 193668 80264D88 A6220156 */  sh        $v0, 0x156($s1)
/* 19366C 80264D8C 4600018D */  trunc.w.s $f6, $f0
/* 193670 80264D90 44023000 */  mfc1      $v0, $f6
/* 193674 80264D94 00000000 */  nop
/* 193678 80264D98 A6220158 */  sh        $v0, 0x158($s1)
/* 19367C 80264D9C 4600218D */  trunc.w.s $f6, $f4
/* 193680 80264DA0 44023000 */  mfc1      $v0, $f6
/* 193684 80264DA4 00000000 */  nop
/* 193688 80264DA8 A622015A */  sh        $v0, 0x15A($s1)
/* 19368C 80264DAC 2402000D */  addiu     $v0, $zero, 0xD
/* 193690 80264DB0 E6220188 */  swc1      $f2, 0x188($s1)
/* 193694 80264DB4 AE200200 */  sw        $zero, 0x200($s1)
/* 193698 80264DB8 A2200204 */  sb        $zero, 0x204($s1)
/* 19369C 80264DBC A2200205 */  sb        $zero, 0x205($s1)
/* 1936A0 80264DC0 A2200194 */  sb        $zero, 0x194($s1)
/* 1936A4 80264DC4 A2200195 */  sb        $zero, 0x195($s1)
/* 1936A8 80264DC8 A2200196 */  sb        $zero, 0x196($s1)
/* 1936AC 80264DCC A2200197 */  sb        $zero, 0x197($s1)
/* 1936B0 80264DD0 A2230191 */  sb        $v1, 0x191($s1)
/* 1936B4 80264DD4 A6220434 */  sh        $v0, 0x434($s1)
/* 1936B8 80264DD8 24020100 */  addiu     $v0, $zero, 0x100
/* 1936BC 80264DDC A6220192 */  sh        $v0, 0x192($s1)
/* 1936C0 80264DE0 8E820014 */  lw        $v0, 0x14($s4)
/* 1936C4 80264DE4 92230136 */  lbu       $v1, 0x136($s1)
/* 1936C8 80264DE8 A2200210 */  sb        $zero, 0x210($s1)
/* 1936CC 80264DEC A2200211 */  sb        $zero, 0x211($s1)
/* 1936D0 80264DF0 A2200212 */  sb        $zero, 0x212($s1)
/* 1936D4 80264DF4 A2200213 */  sb        $zero, 0x213($s1)
/* 1936D8 80264DF8 A2200214 */  sb        $zero, 0x214($s1)
/* 1936DC 80264DFC A2200215 */  sb        $zero, 0x215($s1)
/* 1936E0 80264E00 A2200216 */  sb        $zero, 0x216($s1)
/* 1936E4 80264E04 A2200217 */  sb        $zero, 0x217($s1)
/* 1936E8 80264E08 A2200218 */  sb        $zero, 0x218($s1)
/* 1936EC 80264E0C A2200219 */  sb        $zero, 0x219($s1)
/* 1936F0 80264E10 A2200220 */  sb        $zero, 0x220($s1)
/* 1936F4 80264E14 A620021E */  sh        $zero, 0x21E($s1)
/* 1936F8 80264E18 A220021D */  sb        $zero, 0x21D($s1)
/* 1936FC 80264E1C A2200221 */  sb        $zero, 0x221($s1)
/* 193700 80264E20 A2200222 */  sb        $zero, 0x222($s1)
/* 193704 80264E24 A2200223 */  sb        $zero, 0x223($s1)
/* 193708 80264E28 A2200224 */  sb        $zero, 0x224($s1)
/* 19370C 80264E2C A220021C */  sb        $zero, 0x21C($s1)
/* 193710 80264E30 AE22020C */  sw        $v0, 0x20C($s1)
/* 193714 80264E34 000310C0 */  sll       $v0, $v1, 3
/* 193718 80264E38 00431023 */  subu      $v0, $v0, $v1
/* 19371C 80264E3C 00021080 */  sll       $v0, $v0, 2
/* 193720 80264E40 3C018028 */  lui       $at, %hi(bActorSoundTable)
/* 193724 80264E44 00220821 */  addu      $at, $at, $v0
/* 193728 80264E48 8C221468 */  lw        $v0, %lo(bActorSoundTable)($at)
/* 19372C 80264E4C AE22019C */  sw        $v0, 0x19C($s1)
/* 193730 80264E50 000310C0 */  sll       $v0, $v1, 3
/* 193734 80264E54 00431023 */  subu      $v0, $v0, $v1
/* 193738 80264E58 00021080 */  sll       $v0, $v0, 2
/* 19373C 80264E5C 3C018028 */  lui       $at, %hi(bActorSoundTable + 0x4)
/* 193740 80264E60 00220821 */  addu      $at, $at, $v0
/* 193744 80264E64 8C22146C */  lw        $v0, %lo(bActorSoundTable + 0x4)($at)
/* 193748 80264E68 AE2201A0 */  sw        $v0, 0x1A0($s1)
/* 19374C 80264E6C 000310C0 */  sll       $v0, $v1, 3
/* 193750 80264E70 00431023 */  subu      $v0, $v0, $v1
/* 193754 80264E74 00021080 */  sll       $v0, $v0, 2
/* 193758 80264E78 3C018028 */  lui       $at, %hi(bActorSoundTable + 0x8)
/* 19375C 80264E7C 00220821 */  addu      $at, $at, $v0
/* 193760 80264E80 8C221470 */  lw        $v0, %lo(bActorSoundTable + 0x8)($at)
/* 193764 80264E84 AE2201A4 */  sw        $v0, 0x1A4($s1)
/* 193768 80264E88 000310C0 */  sll       $v0, $v1, 3
/* 19376C 80264E8C 00431023 */  subu      $v0, $v0, $v1
/* 193770 80264E90 00021080 */  sll       $v0, $v0, 2
/* 193774 80264E94 3C018028 */  lui       $at, %hi(bActorSoundTable + 0xC)
/* 193778 80264E98 00220821 */  addu      $at, $at, $v0
/* 19377C 80264E9C 8C221474 */  lw        $v0, %lo(bActorSoundTable + 0xC)($at)
/* 193780 80264EA0 AE2201A8 */  sw        $v0, 0x1A8($s1)
/* 193784 80264EA4 000310C0 */  sll       $v0, $v1, 3
/* 193788 80264EA8 00431023 */  subu      $v0, $v0, $v1
/* 19378C 80264EAC 00021080 */  sll       $v0, $v0, 2
/* 193790 80264EB0 3C018028 */  lui       $at, %hi(bActorSoundTable + 0x10)
/* 193794 80264EB4 00220821 */  addu      $at, $at, $v0
/* 193798 80264EB8 8C221478 */  lw        $v0, %lo(bActorSoundTable + 0x10)($at)
/* 19379C 80264EBC AE2201AC */  sw        $v0, 0x1AC($s1)
/* 1937A0 80264EC0 000310C0 */  sll       $v0, $v1, 3
/* 1937A4 80264EC4 00431023 */  subu      $v0, $v0, $v1
/* 1937A8 80264EC8 00021080 */  sll       $v0, $v0, 2
/* 1937AC 80264ECC 3C018028 */  lui       $at, %hi(bActorSoundTable + 0x14)
/* 1937B0 80264ED0 00220821 */  addu      $at, $at, $v0
/* 1937B4 80264ED4 8C22147C */  lw        $v0, %lo(bActorSoundTable + 0x14)($at)
/* 1937B8 80264ED8 AE2201B0 */  sw        $v0, 0x1B0($s1)
/* 1937BC 80264EDC 000310C0 */  sll       $v0, $v1, 3
/* 1937C0 80264EE0 00431023 */  subu      $v0, $v0, $v1
/* 1937C4 80264EE4 00021080 */  sll       $v0, $v0, 2
/* 1937C8 80264EE8 3C018028 */  lui       $at, %hi(bActorSoundTable + 0x18)
/* 1937CC 80264EEC 00220821 */  addu      $at, $at, $v0
/* 1937D0 80264EF0 94221480 */  lhu       $v0, %lo(bActorSoundTable + 0x18)($at)
/* 1937D4 80264EF4 24040001 */  addiu     $a0, $zero, 0x1
/* 1937D8 80264EF8 A62201B4 */  sh        $v0, 0x1B4($s1)
/* 1937DC 80264EFC 000310C0 */  sll       $v0, $v1, 3
/* 1937E0 80264F00 00431023 */  subu      $v0, $v0, $v1
/* 1937E4 80264F04 00021080 */  sll       $v0, $v0, 2
/* 1937E8 80264F08 3C018028 */  lui       $at, %hi(bActorSoundTable + 0x1A)
/* 1937EC 80264F0C 00220821 */  addu      $at, $at, $v0
/* 1937F0 80264F10 94221482 */  lhu       $v0, %lo(bActorSoundTable + 0x1A)($at)
/* 1937F4 80264F14 26230004 */  addiu     $v1, $s1, 0x4
/* 1937F8 80264F18 A62201B6 */  sh        $v0, 0x1B6($s1)
.L80264F1C:
/* 1937FC 80264F1C AC600438 */  sw        $zero, 0x438($v1)
/* 193800 80264F20 2484FFFF */  addiu     $a0, $a0, -0x1
/* 193804 80264F24 0481FFFD */  bgez      $a0, .L80264F1C
/* 193808 80264F28 2463FFFC */   addiu    $v1, $v1, -0x4
/* 19380C 80264F2C 0C00AB39 */  jal       heap_malloc
/* 193810 80264F30 240400C4 */   addiu    $a0, $zero, 0xC4
/* 193814 80264F34 0040802D */  daddu     $s0, $v0, $zero
/* 193818 80264F38 16000003 */  bnez      $s0, .L80264F48
/* 19381C 80264F3C AE3001F4 */   sw       $s0, 0x1F4($s1)
.L80264F40:
/* 193820 80264F40 080993D0 */  j         .L80264F40
/* 193824 80264F44 00000000 */   nop
.L80264F48:
/* 193828 80264F48 1AC000E7 */  blez      $s6, .L802652E8
/* 19382C 80264F4C 0000982D */   daddu    $s3, $zero, $zero
/* 193830 80264F50 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 193834 80264F54 4481A000 */  mtc1      $at, $f20
/* 193838 80264F58 3C128028 */  lui       $s2, %hi(bActorSoundTable)
/* 19383C 80264F5C 26521468 */  addiu     $s2, $s2, %lo(bActorSoundTable)
/* 193840 80264F60 0260A82D */  daddu     $s5, $s3, $zero
.L80264F64:
/* 193844 80264F64 8E83000C */  lw        $v1, 0xC($s4)
/* 193848 80264F68 AE0000C0 */  sw        $zero, 0xC0($s0)
/* 19384C 80264F6C 00751821 */  addu      $v1, $v1, $s5
/* 193850 80264F70 AE030008 */  sw        $v1, 0x8($s0)
/* 193854 80264F74 8C620000 */  lw        $v0, 0x0($v1)
/* 193858 80264F78 AE000004 */  sw        $zero, 0x4($s0)
/* 19385C 80264F7C 34420004 */  ori       $v0, $v0, 0x4
/* 193860 80264F80 AE020000 */  sw        $v0, 0x0($s0)
/* 193864 80264F84 90620005 */  lbu       $v0, 0x5($v1)
/* 193868 80264F88 00021600 */  sll       $v0, $v0, 24
/* 19386C 80264F8C 00021603 */  sra       $v0, $v0, 24
/* 193870 80264F90 A6020014 */  sh        $v0, 0x14($s0)
/* 193874 80264F94 00021400 */  sll       $v0, $v0, 16
/* 193878 80264F98 00021403 */  sra       $v0, $v0, 16
/* 19387C 80264F9C 44820000 */  mtc1      $v0, $f0
/* 193880 80264FA0 00000000 */  nop
/* 193884 80264FA4 46800020 */  cvt.s.w   $f0, $f0
/* 193888 80264FA8 E6000020 */  swc1      $f0, 0x20($s0)
/* 19388C 80264FAC 90620006 */  lbu       $v0, 0x6($v1)
/* 193890 80264FB0 00021600 */  sll       $v0, $v0, 24
/* 193894 80264FB4 00021603 */  sra       $v0, $v0, 24
/* 193898 80264FB8 A6020016 */  sh        $v0, 0x16($s0)
/* 19389C 80264FBC 00021400 */  sll       $v0, $v0, 16
/* 1938A0 80264FC0 00021403 */  sra       $v0, $v0, 16
/* 1938A4 80264FC4 44820000 */  mtc1      $v0, $f0
/* 1938A8 80264FC8 00000000 */  nop
/* 1938AC 80264FCC 46800020 */  cvt.s.w   $f0, $f0
/* 1938B0 80264FD0 E6000024 */  swc1      $f0, 0x24($s0)
/* 1938B4 80264FD4 90620007 */  lbu       $v0, 0x7($v1)
/* 1938B8 80264FD8 A600001A */  sh        $zero, 0x1A($s0)
/* 1938BC 80264FDC A600001C */  sh        $zero, 0x1C($s0)
/* 1938C0 80264FE0 A600001E */  sh        $zero, 0x1E($s0)
/* 1938C4 80264FE4 AE00002C */  sw        $zero, 0x2C($s0)
/* 1938C8 80264FE8 AE000030 */  sw        $zero, 0x30($s0)
/* 1938CC 80264FEC AE000034 */  sw        $zero, 0x34($s0)
/* 1938D0 80264FF0 00021600 */  sll       $v0, $v0, 24
/* 1938D4 80264FF4 00021603 */  sra       $v0, $v0, 24
/* 1938D8 80264FF8 A6020018 */  sh        $v0, 0x18($s0)
/* 1938DC 80264FFC 00021400 */  sll       $v0, $v0, 16
/* 1938E0 80265000 00021403 */  sra       $v0, $v0, 16
/* 1938E4 80265004 44820000 */  mtc1      $v0, $f0
/* 1938E8 80265008 00000000 */  nop
/* 1938EC 8026500C 46800020 */  cvt.s.w   $f0, $f0
/* 1938F0 80265010 E6000028 */  swc1      $f0, 0x28($s0)
/* 1938F4 80265014 8C620010 */  lw        $v0, 0x10($v1)
/* 1938F8 80265018 AE020078 */  sw        $v0, 0x78($s0)
/* 1938FC 8026501C 8C62000C */  lw        $v0, 0xC($v1)
/* 193900 80265020 AE020094 */  sw        $v0, 0x94($s0)
/* 193904 80265024 8C620014 */  lw        $v0, 0x14($v1)
/* 193908 80265028 AE02007C */  sw        $v0, 0x7C($s0)
/* 19390C 8026502C 8C620018 */  lw        $v0, 0x18($v1)
/* 193910 80265030 AE020080 */  sw        $v0, 0x80($s0)
/* 193914 80265034 9462000A */  lhu       $v0, 0xA($v1)
/* 193918 80265038 A6020098 */  sh        $v0, 0x98($s0)
/* 19391C 8026503C 92220191 */  lbu       $v0, 0x191($s1)
/* 193920 80265040 A2020073 */  sb        $v0, 0x73($s0)
/* 193924 80265044 92220190 */  lbu       $v0, 0x190($s1)
/* 193928 80265048 A2020072 */  sb        $v0, 0x72($s0)
/* 19392C 8026504C AE000064 */  sw        $zero, 0x64($s0)
/* 193930 80265050 90620008 */  lbu       $v0, 0x8($v1)
/* 193934 80265054 00021600 */  sll       $v0, $v0, 24
/* 193938 80265058 00021603 */  sra       $v0, $v0, 24
/* 19393C 8026505C A602006C */  sh        $v0, 0x6C($s0)
/* 193940 80265060 90630009 */  lbu       $v1, 0x9($v1)
/* 193944 80265064 24020001 */  addiu     $v0, $zero, 0x1
/* 193948 80265068 A6000070 */  sh        $zero, 0x70($s0)
/* 19394C 8026506C A6000044 */  sh        $zero, 0x44($s0)
/* 193950 80265070 A6000046 */  sh        $zero, 0x46($s0)
/* 193954 80265074 A6000048 */  sh        $zero, 0x48($s0)
/* 193958 80265078 AE000038 */  sw        $zero, 0x38($s0)
/* 19395C 8026507C AE00003C */  sw        $zero, 0x3C($s0)
/* 193960 80265080 AE000040 */  sw        $zero, 0x40($s0)
/* 193964 80265084 E614004C */  swc1      $f20, 0x4C($s0)
/* 193968 80265088 E6140050 */  swc1      $f20, 0x50($s0)
/* 19396C 8026508C E6140054 */  swc1      $f20, 0x54($s0)
/* 193970 80265090 A2020074 */  sb        $v0, 0x74($s0)
/* 193974 80265094 A6000068 */  sh        $zero, 0x68($s0)
/* 193978 80265098 A600006A */  sh        $zero, 0x6A($s0)
/* 19397C 8026509C 00031E00 */  sll       $v1, $v1, 24
/* 193980 802650A0 00031E03 */  sra       $v1, $v1, 24
/* 193984 802650A4 A603006E */  sh        $v1, 0x6E($s0)
/* 193988 802650A8 92230136 */  lbu       $v1, 0x136($s1)
/* 19398C 802650AC 000310C0 */  sll       $v0, $v1, 3
/* 193990 802650B0 00431023 */  subu      $v0, $v0, $v1
/* 193994 802650B4 00021080 */  sll       $v0, $v0, 2
/* 193998 802650B8 00521021 */  addu      $v0, $v0, $s2
/* 19399C 802650BC 8C420000 */  lw        $v0, 0x0($v0)
/* 1939A0 802650C0 AE0200A4 */  sw        $v0, 0xA4($s0)
/* 1939A4 802650C4 92230136 */  lbu       $v1, 0x136($s1)
/* 1939A8 802650C8 000310C0 */  sll       $v0, $v1, 3
/* 1939AC 802650CC 00431023 */  subu      $v0, $v0, $v1
/* 1939B0 802650D0 00021080 */  sll       $v0, $v0, 2
/* 1939B4 802650D4 00521021 */  addu      $v0, $v0, $s2
/* 1939B8 802650D8 8C420004 */  lw        $v0, 0x4($v0)
/* 1939BC 802650DC AE0200A8 */  sw        $v0, 0xA8($s0)
/* 1939C0 802650E0 92230136 */  lbu       $v1, 0x136($s1)
/* 1939C4 802650E4 000310C0 */  sll       $v0, $v1, 3
/* 1939C8 802650E8 00431023 */  subu      $v0, $v0, $v1
/* 1939CC 802650EC 00021080 */  sll       $v0, $v0, 2
/* 1939D0 802650F0 00521021 */  addu      $v0, $v0, $s2
/* 1939D4 802650F4 8C420008 */  lw        $v0, 0x8($v0)
/* 1939D8 802650F8 AE0200AC */  sw        $v0, 0xAC($s0)
/* 1939DC 802650FC 92230136 */  lbu       $v1, 0x136($s1)
/* 1939E0 80265100 000310C0 */  sll       $v0, $v1, 3
/* 1939E4 80265104 00431023 */  subu      $v0, $v0, $v1
/* 1939E8 80265108 00021080 */  sll       $v0, $v0, 2
/* 1939EC 8026510C 00521021 */  addu      $v0, $v0, $s2
/* 1939F0 80265110 8C42000C */  lw        $v0, 0xC($v0)
/* 1939F4 80265114 AE0200B0 */  sw        $v0, 0xB0($s0)
/* 1939F8 80265118 92230136 */  lbu       $v1, 0x136($s1)
/* 1939FC 8026511C 000310C0 */  sll       $v0, $v1, 3
/* 193A00 80265120 00431023 */  subu      $v0, $v0, $v1
/* 193A04 80265124 00021080 */  sll       $v0, $v0, 2
/* 193A08 80265128 00521021 */  addu      $v0, $v0, $s2
/* 193A0C 8026512C 8C420010 */  lw        $v0, 0x10($v0)
/* 193A10 80265130 AE0200B4 */  sw        $v0, 0xB4($s0)
/* 193A14 80265134 92230136 */  lbu       $v1, 0x136($s1)
/* 193A18 80265138 000310C0 */  sll       $v0, $v1, 3
/* 193A1C 8026513C 00431023 */  subu      $v0, $v0, $v1
/* 193A20 80265140 00021080 */  sll       $v0, $v0, 2
/* 193A24 80265144 00521021 */  addu      $v0, $v0, $s2
/* 193A28 80265148 8C420014 */  lw        $v0, 0x14($v0)
/* 193A2C 8026514C AE0200B8 */  sw        $v0, 0xB8($s0)
/* 193A30 80265150 92230136 */  lbu       $v1, 0x136($s1)
/* 193A34 80265154 000310C0 */  sll       $v0, $v1, 3
/* 193A38 80265158 00431023 */  subu      $v0, $v0, $v1
/* 193A3C 8026515C 00021080 */  sll       $v0, $v0, 2
/* 193A40 80265160 00521021 */  addu      $v0, $v0, $s2
/* 193A44 80265164 94420018 */  lhu       $v0, 0x18($v0)
/* 193A48 80265168 A60200BC */  sh        $v0, 0xBC($s0)
/* 193A4C 8026516C 92230136 */  lbu       $v1, 0x136($s1)
/* 193A50 80265170 000310C0 */  sll       $v0, $v1, 3
/* 193A54 80265174 00431023 */  subu      $v0, $v0, $v1
/* 193A58 80265178 00021080 */  sll       $v0, $v0, 2
/* 193A5C 8026517C 00521021 */  addu      $v0, $v0, $s2
/* 193A60 80265180 9442001A */  lhu       $v0, 0x1A($v0)
/* 193A64 80265184 8E030094 */  lw        $v1, 0x94($s0)
/* 193A68 80265188 10600030 */  beqz      $v1, .L8026524C
/* 193A6C 8026518C A60200BE */   sh       $v0, 0xBE($s0)
/* 193A70 80265190 0C00AB39 */  jal       heap_malloc
/* 193A74 80265194 240408E8 */   addiu    $a0, $zero, 0x8E8
/* 193A78 80265198 0040202D */  daddu     $a0, $v0, $zero
/* 193A7C 8026519C 14800003 */  bnez      $a0, .L802651AC
/* 193A80 802651A0 AE0200C0 */   sw       $v0, 0xC0($s0)
.L802651A4:
/* 193A84 802651A4 08099469 */  j         .L802651A4
/* 193A88 802651A8 00000000 */   nop
.L802651AC:
/* 193A8C 802651AC 0000282D */  daddu     $a1, $zero, $zero
/* 193A90 802651B0 0080182D */  daddu     $v1, $a0, $zero
/* 193A94 802651B4 A08006C0 */  sb        $zero, 0x6C0($a0)
/* 193A98 802651B8 A0800750 */  sb        $zero, 0x750($a0)
/* 193A9C 802651BC A0800764 */  sb        $zero, 0x764($a0)
/* 193AA0 802651C0 A0800768 */  sb        $zero, 0x768($a0)
/* 193AA4 802651C4 A08007D8 */  sb        $zero, 0x7D8($a0)
/* 193AA8 802651C8 A08007D9 */  sb        $zero, 0x7D9($a0)
.L802651CC:
/* 193AAC 802651CC C6200144 */  lwc1      $f0, 0x144($s1)
/* 193AB0 802651D0 4600018D */  trunc.w.s $f6, $f0
/* 193AB4 802651D4 44023000 */  mfc1      $v0, $f6
/* 193AB8 802651D8 00000000 */  nop
/* 193ABC 802651DC A46207FC */  sh        $v0, 0x7FC($v1)
/* 193AC0 802651E0 C6200148 */  lwc1      $f0, 0x148($s1)
/* 193AC4 802651E4 4600018D */  trunc.w.s $f6, $f0
/* 193AC8 802651E8 44023000 */  mfc1      $v0, $f6
/* 193ACC 802651EC 00000000 */  nop
/* 193AD0 802651F0 A462081C */  sh        $v0, 0x81C($v1)
/* 193AD4 802651F4 C620014C */  lwc1      $f0, 0x14C($s1)
/* 193AD8 802651F8 24A50001 */  addiu     $a1, $a1, 0x1
/* 193ADC 802651FC 4600018D */  trunc.w.s $f6, $f0
/* 193AE0 80265200 44023000 */  mfc1      $v0, $f6
/* 193AE4 80265204 00000000 */  nop
/* 193AE8 80265208 A462083C */  sh        $v0, 0x83C($v1)
/* 193AEC 8026520C 28A20010 */  slti      $v0, $a1, 0x10
/* 193AF0 80265210 1440FFEE */  bnez      $v0, .L802651CC
/* 193AF4 80265214 24630002 */   addiu    $v1, $v1, 0x2
/* 193AF8 80265218 0000282D */  daddu     $a1, $zero, $zero
/* 193AFC 8026521C 0080182D */  daddu     $v1, $a0, $zero
/* 193B00 80265220 24020003 */  addiu     $v0, $zero, 0x3
/* 193B04 80265224 A08207DA */  sb        $v0, 0x7DA($a0)
/* 193B08 80265228 A08007DB */  sb        $zero, 0x7DB($a0)
/* 193B0C 8026522C A08008AC */  sb        $zero, 0x8AC($a0)
.L80265230:
/* 193B10 80265230 AC6008B0 */  sw        $zero, 0x8B0($v1)
/* 193B14 80265234 00851021 */  addu      $v0, $a0, $a1
/* 193B18 80265238 24A50001 */  addiu     $a1, $a1, 0x1
/* 193B1C 8026523C A04008B8 */  sb        $zero, 0x8B8($v0)
/* 193B20 80265240 28A20002 */  slti      $v0, $a1, 0x2
/* 193B24 80265244 1440FFFA */  bnez      $v0, .L80265230
/* 193B28 80265248 24630004 */   addiu    $v1, $v1, 0x4
.L8026524C:
/* 193B2C 8026524C 8E020000 */  lw        $v0, 0x0($s0)
/* 193B30 80265250 04400007 */  bltz      $v0, .L80265270
/* 193B34 80265254 00000000 */   nop
/* 193B38 80265258 0C00AB39 */  jal       heap_malloc
/* 193B3C 8026525C 2404008C */   addiu    $a0, $zero, 0x8C
/* 193B40 80265260 14400003 */  bnez      $v0, .L80265270
/* 193B44 80265264 AE020010 */   sw       $v0, 0x10($s0)
.L80265268:
/* 193B48 80265268 0809949A */  j         .L80265268
/* 193B4C 8026526C 00000000 */   nop
.L80265270:
/* 193B50 80265270 8E040094 */  lw        $a0, 0x94($s0)
/* 193B54 80265274 2402FFFF */  addiu     $v0, $zero, -0x1
/* 193B58 80265278 E6140090 */  swc1      $f20, 0x90($s0)
/* 193B5C 8026527C AE000088 */  sw        $zero, 0x88($s0)
/* 193B60 80265280 10800009 */  beqz      $a0, .L802652A8
/* 193B64 80265284 AE020084 */   sw       $v0, 0x84($s0)
/* 193B68 80265288 0C09973A */  jal       get_npc_anim_for_status
/* 193B6C 8026528C 24050001 */   addiu    $a1, $zero, 0x1
/* 193B70 80265290 3C048000 */  lui       $a0, (0x80000000 >> 16)
/* 193B74 80265294 00442025 */  or        $a0, $v0, $a0
/* 193B78 80265298 0000282D */  daddu     $a1, $zero, $zero
/* 193B7C 8026529C 0C0B783B */  jal       spr_load_npc_sprite
/* 193B80 802652A0 AE020088 */   sw       $v0, 0x88($s0)
/* 193B84 802652A4 AE020084 */  sw        $v0, 0x84($s0)
.L802652A8:
/* 193B88 802652A8 26620001 */  addiu     $v0, $s3, 0x1
/* 193B8C 802652AC 0056102A */  slt       $v0, $v0, $s6
/* 193B90 802652B0 50400009 */  beql      $v0, $zero, .L802652D8
/* 193B94 802652B4 AE00000C */   sw       $zero, 0xC($s0)
/* 193B98 802652B8 0C00AB39 */  jal       heap_malloc
/* 193B9C 802652BC 240400C4 */   addiu    $a0, $zero, 0xC4
/* 193BA0 802652C0 AE02000C */  sw        $v0, 0xC($s0)
/* 193BA4 802652C4 0040802D */  daddu     $s0, $v0, $zero
/* 193BA8 802652C8 56000003 */  bnel      $s0, $zero, .L802652D8
/* 193BAC 802652CC AE00000C */   sw       $zero, 0xC($s0)
.L802652D0:
/* 193BB0 802652D0 080994B4 */  j         .L802652D0
/* 193BB4 802652D4 00000000 */   nop
.L802652D8:
/* 193BB8 802652D8 26730001 */  addiu     $s3, $s3, 0x1
/* 193BBC 802652DC 0276102A */  slt       $v0, $s3, $s6
/* 193BC0 802652E0 1440FF20 */  bnez      $v0, .L80264F64
/* 193BC4 802652E4 26B50024 */   addiu    $s5, $s5, 0x24
.L802652E8:
/* 193BC8 802652E8 8E250144 */  lw        $a1, 0x144($s1)
/* 193BCC 802652EC 8E260148 */  lw        $a2, 0x148($s1)
/* 193BD0 802652F0 8E27014C */  lw        $a3, 0x14C($s1)
/* 193BD4 802652F4 0C044898 */  jal       create_shadow_type
/* 193BD8 802652F8 0000202D */   daddu    $a0, $zero, $zero
/* 193BDC 802652FC AE22042C */  sw        $v0, 0x42C($s1)
/* 193BE0 80265300 92220190 */  lbu       $v0, 0x190($s1)
/* 193BE4 80265304 3C014038 */  lui       $at, (0x40380000 >> 16)
/* 193BE8 80265308 44811800 */  mtc1      $at, $f3
/* 193BEC 8026530C 44801000 */  mtc1      $zero, $f2
/* 193BF0 80265310 44820000 */  mtc1      $v0, $f0
/* 193BF4 80265314 00000000 */  nop
/* 193BF8 80265318 46800021 */  cvt.d.w   $f0, $f0
/* 193BFC 8026531C 46220003 */  div.d     $f0, $f0, $f2
/* 193C00 80265320 46200020 */  cvt.s.d   $f0, $f0
/* 193C04 80265324 0C011D82 */  jal       create_status_icon_set
/* 193C08 80265328 E6200430 */   swc1     $f0, 0x430($s1)
/* 193C0C 8026532C 3C05C30E */  lui       $a1, (0xC30E0000 >> 16)
/* 193C10 80265330 3C064208 */  lui       $a2, (0x42080000 >> 16)
/* 193C14 80265334 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 193C18 80265338 0000202D */  daddu     $a0, $zero, $zero
/* 193C1C 8026533C A6220436 */  sh        $v0, 0x436($s1)
/* 193C20 80265340 0C01C43C */  jal       fx_disable_x
/* 193C24 80265344 AFA00010 */   sw       $zero, 0x10($sp)
/* 193C28 80265348 2405000A */  addiu     $a1, $zero, 0xA
/* 193C2C 8026534C 8E2401C4 */  lw        $a0, 0x1C4($s1)
/* 193C30 80265350 0000302D */  daddu     $a2, $zero, $zero
/* 193C34 80265354 AE220440 */  sw        $v0, 0x440($s1)
/* 193C38 80265358 0C0B0CF8 */  jal       start_script
/* 193C3C 8026535C AE200228 */   sw       $zero, 0x228($s1)
/* 193C40 80265360 8C430144 */  lw        $v1, 0x144($v0)
/* 193C44 80265364 AE2301E4 */  sw        $v1, 0x1E4($s1)
/* 193C48 80265368 24030100 */  addiu     $v1, $zero, 0x100
/* 193C4C 8026536C AC430148 */  sw        $v1, 0x148($v0)
.L80265370:
/* 193C50 80265370 8FBF0034 */  lw        $ra, 0x34($sp)
/* 193C54 80265374 8FB60030 */  lw        $s6, 0x30($sp)
/* 193C58 80265378 8FB5002C */  lw        $s5, 0x2C($sp)
/* 193C5C 8026537C 8FB40028 */  lw        $s4, 0x28($sp)
/* 193C60 80265380 8FB30024 */  lw        $s3, 0x24($sp)
/* 193C64 80265384 8FB20020 */  lw        $s2, 0x20($sp)
/* 193C68 80265388 8FB1001C */  lw        $s1, 0x1C($sp)
/* 193C6C 8026538C 8FB00018 */  lw        $s0, 0x18($sp)
/* 193C70 80265390 D7B80048 */  ldc1      $f24, 0x48($sp)
/* 193C74 80265394 D7B60040 */  ldc1      $f22, 0x40($sp)
/* 193C78 80265398 D7B40038 */  ldc1      $f20, 0x38($sp)
/* 193C7C 8026539C 03E00008 */  jr        $ra
/* 193C80 802653A0 27BD0050 */   addiu    $sp, $sp, 0x50

### DECOMPILED C INSTRUCTIONS:

void load_partner_actor(void) {
    PlayerData* playerData = &gPlayerData;
    BattleStatus* battleStatus = &gBattleStatus;
    Actor* partnerActor;
    ActorBlueprint* actorBP;
    Evt* takeTurnScript;
    s32 partCount;
    s32 currentPartner;
    PartnerDMAData* partnerData;
    f32 x;
    f32 y;
    f32 z;
    ActorPart* part;
    s32 i;
    s32 i2;

    currentPartner = playerData->currentPartner;
    battleStatus->partnerActor = NULL;

    if (currentPartner != PARTNER_NONE) {
        partnerData = &bPartnerDmaTable[currentPartner];
        actorBP = partnerData->ActorBlueprint;

        ASSERT(actorBP != NULL);

        nuPiReadRom(partnerData->dmaStart, partnerData->dmaDest, partnerData->dmaEnd - partnerData->dmaStart);
        if ((gBattleStatus.flags2 & BS_FLAGS2_PEACH_BATTLE) || (gGameStatusPtr->demoFlags & 2)) {
            x = -95.0f;
            y = partnerData->y;
            z = 0.0f;
            gBattleStatus.flags1 |= BS_FLAGS1_PLAYER_IN_BACK;
        } else {
            x = -130.0f;
            y = partnerData->y;
            z = -10.0f;
        }
        partCount = actorBP->partCount;
        battleStatus->partnerActor = heap_malloc(sizeof(*partnerActor));
        partnerActor = battleStatus->partnerActor;

        ASSERT(partnerActor != NULL);

        actorBP->level = playerData->partners[playerData->currentPartner].level;
        partnerActor->unk_134 = battleStatus->unk_93++;
        partnerActor->footStepCounter = 0;
        partnerActor->actorBlueprint = actorBP;
        partnerActor->actorType = actorBP->type;
        partnerActor->flags = actorBP->flags;
        partnerActor->homePos.x = partnerActor->currentPos.x = x;
        partnerActor->homePos.y = partnerActor->currentPos.y = y;
        partnerActor->homePos.z = partnerActor->currentPos.z = z;
        partnerActor->headOffset.x = 0;
        partnerActor->headOffset.y = 0;
        partnerActor->headOffset.z = 0;
        partnerActor->currentHP = actorBP->maxHP;
        partnerActor->numParts = partCount;
        partnerActor->idleSource = NULL;
        partnerActor->takeTurnSource = actorBP->initScript;
        partnerActor->handleEventSource = NULL;
        partnerActor->handlePhaseSource = NULL;
        partnerActor->idleScript = NULL;
        partnerActor->takeTurnScript = NULL;
        partnerActor->handleEventScript = NULL;
        partnerActor->handlePhaseScript = NULL;
        partnerActor->turnPriority = 0;
        partnerActor->enemyIndex = 0;
        partnerActor->yaw = 0.0f;
        partnerActor->rotation.x = 0.0f;
        partnerActor->rotation.y = 0.0f;
        partnerActor->rotation.z = 0.0f;
        partnerActor->rotationPivotOffset.x = 0;
        partnerActor->rotationPivotOffset.y = 0;
        partnerActor->rotationPivotOffset.z = 0;
        partnerActor->scale.x = 1.0f;
        partnerActor->scale.y = 1.0f;
        partnerActor->scale.z = 1.0f;
        partnerActor->scaleModifier.x = 1.0f;
        partnerActor->scaleModifier.y = 1.0f;
        partnerActor->scaleModifier.z = 1.0f;
        partnerActor->verticalRenderOffset = 0;
        partnerActor->size.x = actorBP->size.x;
        partnerActor->size.y = actorBP->size.y;
        partnerActor->healthBarPos.x = partnerActor->homePos.x;
        partnerActor->healthBarPos.y = partnerActor->homePos.y;
        partnerActor->healthBarPos.z = partnerActor->homePos.z;
        partnerActor->scalingFactor = 1.0f;
        partnerActor->attackResultEffect = NULL;
        partnerActor->actionRatingCombo = 0;
        partnerActor->actionRatingTime = 0;
        partnerActor->statusIconOffset.x = 0;
        partnerActor->statusIconOffset.y = 0;
        partnerActor->statusTextOffset.x = 0;
        partnerActor->statusTextOffset.y = 0;
        partnerActor->renderMode = RENDER_MODE_ALPHATEST;
        partnerActor->actorID = ACTOR_PARTNER;
        partnerActor->statusTable = actorBP->statusTable;
        partnerActor->debuff = 0;
        partnerActor->debuffDuration = 0;
        partnerActor->staticStatus = 0;
        partnerActor->staticDuration = 0;
        partnerActor->stoneStatus = 0;
        partnerActor->stoneDuration = 0;
        partnerActor->koStatus = 0;
        partnerActor->koDuration = 0;
        partnerActor->transparentStatus = 0;
        partnerActor->transparentDuration = 0;
        partnerActor->isGlowing = 0;
        partnerActor->unk_21E = 0;
        partnerActor->disableDismissTimer = 0;
        partnerActor->attackBoost = 0;
        partnerActor->defenseBoost = 0;
        partnerActor->chillOutAmount = 0;
        partnerActor->chillOutTurns = 0;
        partnerActor->statusAfflicted = 0;
        partnerActor->actorTypeData1[0] = bActorSoundTable[partnerActor->actorType].walk[0];
        partnerActor->actorTypeData1[1] = bActorSoundTable[partnerActor->actorType].walk[1];
        partnerActor->actorTypeData1[2] = bActorSoundTable[partnerActor->actorType].fly[0];
        partnerActor->actorTypeData1[3] = bActorSoundTable[partnerActor->actorType].fly[1];
        partnerActor->actorTypeData1[4] = bActorSoundTable[partnerActor->actorType].jump;
        partnerActor->actorTypeData1[5] = bActorSoundTable[partnerActor->actorType].hurt;
        partnerActor->actorTypeData1b[0] = bActorSoundTable[partnerActor->actorType].delay[0];
        partnerActor->actorTypeData1b[1] = bActorSoundTable[partnerActor->actorType].delay[1];

        for (i2 = 0; i2 < ARRAY_COUNT(partnerActor->loopingSoundID); i2++) {
            partnerActor->loopingSoundID[i2] = 0;
        }

        part = heap_malloc(sizeof(*part));
        partnerActor->partsTable = part;

        ASSERT(part != NULL);

        for (i = 0; i < partCount; i++) {
            ActorPartBlueprint* ActorPartBlueprint = &actorBP->partsData[i];
            part->decorationTable = NULL;
            part->staticData = ActorPartBlueprint;

            part->flags = ActorPartBlueprint->flags | ACTOR_PART_FLAG_4;
            part->targetFlags = 0;

            part->partOffsetFloat.x = part->partOffset.x = ActorPartBlueprint->posOffset.x;
            part->partOffsetFloat.y = part->partOffset.y = ActorPartBlueprint->posOffset.y;
            part->partOffsetFloat.z = part->partOffset.z = ActorPartBlueprint->posOffset.z;

            part->visualOffset.x = 0;
            part->visualOffset.y = 0;
            part->visualOffset.z = 0;
            part->absolutePosition.x = 0.0f;
            part->absolutePosition.y = 0.0f;
            part->absolutePosition.z = 0.0f;
            part->defenseTable = ActorPartBlueprint->defenseTable;
            part->idleAnimations = ActorPartBlueprint->idleAnimations;
            part->eventFlags = ActorPartBlueprint->eventFlags;
            part->elementalImmunities = ActorPartBlueprint->elementImmunityFlags;
            part->opacity = ActorPartBlueprint->opacity;
            part->size.y = partnerActor->size.y;
            part->size.x = partnerActor->size.x;
            part->yaw = 0.0f;
            part->targetOffset.x = ActorPartBlueprint->targetOffset.x;
            part->targetOffset.y = ActorPartBlueprint->targetOffset.y;
            part->unk_70 = 0;
            part->rotationPivotOffset.x = 0;
            part->rotationPivotOffset.y = 0;
            part->rotationPivotOffset.z = 0;
            part->rotation.x = 0.0f;
            part->rotation.y = 0.0f;
            part->rotation.z = 0.0f;
            part->scale.x = 1.0f;
            part->scale.y = 1.0f;
            part->scale.z = 1.0f;
            part->verticalStretch = 1;
            part->palAnimPosOffset[0] = 0;
            part->palAnimPosOffset[1] = 0;
            part->partTypeData[0] = bActorSoundTable[partnerActor->actorType].walk[0];
            part->partTypeData[1] = bActorSoundTable[partnerActor->actorType].walk[1];
            part->partTypeData[2] = bActorSoundTable[partnerActor->actorType].fly[0];
            part->partTypeData[3] = bActorSoundTable[partnerActor->actorType].fly[1];
            part->partTypeData[4] = bActorSoundTable[partnerActor->actorType].jump;
            part->partTypeData[5] = bActorSoundTable[partnerActor->actorType].hurt;
            part->actorTypeData2b[0] = bActorSoundTable[partnerActor->actorType].delay[0];
            part->actorTypeData2b[1] = bActorSoundTable[partnerActor->actorType].delay[1];

            if (part->idleAnimations != NULL) {
                DecorationTable* decorationTable;
                s32 j;

                part->decorationTable  = heap_malloc(sizeof(*decorationTable));
                decorationTable = part->decorationTable;

                ASSERT(decorationTable != NULL);

                decorationTable->paletteAdjustment = PAL_ADJUST_NONE;
                decorationTable->unk_750 = 0;
                decorationTable->unk_764 = 0;
                decorationTable->unk_768 = 0;
                decorationTable->unk_7D8 = 0;
                decorationTable->unk_7D9 = 0;

                for (j = 0; j < ARRAY_COUNT(decorationTable->posX); j++) {
                    decorationTable->posX[j] = partnerActor->currentPos.x;
                    decorationTable->posY[j] = partnerActor->currentPos.y;
                    decorationTable->posZ[j] = partnerActor->currentPos.z;
                }

                decorationTable->unk_7DA = 3;
                decorationTable->unk_7DB = 0;
                decorationTable->effectType = 0;

                for (j = 0; j < ARRAY_COUNT(decorationTable->effect); j++) {
                    decorationTable->effect[j] = NULL;
                    decorationTable->type[j] = 0;
                }
            }

            if (part->flags >= 0) {
                part->movement = heap_malloc(sizeof(*part->movement));
                ASSERT(part->movement != NULL);
            }

            part->animationRate = 1.0f;
            part->currentAnimation = 0;
            part->spriteInstanceID = -1;

            if (part->idleAnimations != NULL) {
                part->currentAnimation = get_npc_anim_for_status(part->idleAnimations, 1);
                part->spriteInstanceID = spr_load_npc_sprite(part->currentAnimation | SPRITE_ID_TAIL_ALLOCATE, NULL);
            }

            if (i + 1 >= partCount) {
                part->nextPart = NULL;
                continue;
            }

            part->nextPart = heap_malloc(sizeof(*part->nextPart));
            part = part->nextPart;
            if (part == NULL) {
                PANIC();
            }

            part->nextPart = NULL;
        }

        partnerActor->shadow.id = create_shadow_type(0, partnerActor->currentPos.x, partnerActor->currentPos.y, partnerActor->currentPos.z);
        partnerActor->shadowScale = partnerActor->size.x / 24.0;
        partnerActor->hudElementDataIndex = create_status_icon_set();
        partnerActor->disableEffect = fx_disable_x(0, -142.0f, 34.0f, 1.0f, 0);
        partnerActor->icePillarEffect = NULL;

        takeTurnScript = start_script(partnerActor->takeTurnSource, EVT_PRIORITY_A, 0);
        partnerActor->takeTurnScriptID = takeTurnScript->id;
        takeTurnScript->owner1.actorID = ACTOR_PARTNER;
    }
}