### RAW ASSEMBLY INSTRUCTIONS:

glabel appendGfx_animator
/* B5BD4 8011F4D4 27BDFFA8 */  addiu     $sp, $sp, -0x58
/* B5BD8 8011F4D8 AFB00050 */  sw        $s0, 0x50($sp)
/* B5BDC 8011F4DC 0080802D */  daddu     $s0, $a0, $zero
/* B5BE0 8011F4E0 AFBF0054 */  sw        $ra, 0x54($sp)
/* B5BE4 8011F4E4 8E0200D8 */  lw        $v0, 0xD8($s0)
/* B5BE8 8011F4E8 10400013 */  beqz      $v0, .L8011F538
/* B5BEC 8011F4EC 3C020001 */   lui      $v0, (0x11630 >> 16)
/* B5BF0 8011F4F0 3C04800A */  lui       $a0, %hi(gMainGfxPos)
/* B5BF4 8011F4F4 2484A66C */  addiu     $a0, $a0, %lo(gMainGfxPos)
/* B5BF8 8011F4F8 8C830000 */  lw        $v1, 0x0($a0)
/* B5BFC 8011F4FC 3C028015 */  lui       $v0, %hi(gAnimVtxSegment)
/* B5C00 8011F500 8C423A60 */  lw        $v0, %lo(gAnimVtxSegment)($v0)
/* B5C04 8011F504 0060282D */  daddu     $a1, $v1, $zero
/* B5C08 8011F508 24630008 */  addiu     $v1, $v1, 0x8
/* B5C0C 8011F50C 00021080 */  sll       $v0, $v0, 2
/* B5C10 8011F510 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* B5C14 8011F514 AC830000 */  sw        $v1, 0x0($a0)
/* B5C18 8011F518 3C03DB06 */  lui       $v1, (0xDB060000 >> 16)
/* B5C1C 8011F51C 00431025 */  or        $v0, $v0, $v1
/* B5C20 8011F520 ACA20000 */  sw        $v0, 0x0($a1)
/* B5C24 8011F524 8E0200D8 */  lw        $v0, 0xD8($s0)
/* B5C28 8011F528 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* B5C2C 8011F52C 00431021 */  addu      $v0, $v0, $v1
/* B5C30 8011F530 ACA20004 */  sw        $v0, 0x4($a1)
/* B5C34 8011F534 3C020001 */  lui       $v0, (0x11630 >> 16)
.L8011F538:
/* B5C38 8011F538 34421630 */  ori       $v0, $v0, (0x11630 & 0xFFFF)
/* B5C3C 8011F53C 26050098 */  addiu     $a1, $s0, 0x98
/* B5C40 8011F540 260600D8 */  addiu     $a2, $s0, 0xD8
/* B5C44 8011F544 3C038007 */  lui       $v1, %hi(gMatrixListPos)
/* B5C48 8011F548 946341F0 */  lhu       $v1, %lo(gMatrixListPos)($v1)
/* B5C4C 8011F54C 3C04800A */  lui       $a0, %hi(gDisplayContext)
/* B5C50 8011F550 8C84A674 */  lw        $a0, %lo(gDisplayContext)($a0)
/* B5C54 8011F554 00031980 */  sll       $v1, $v1, 6
/* B5C58 8011F558 00832021 */  addu      $a0, $a0, $v1
/* B5C5C 8011F55C 00822021 */  addu      $a0, $a0, $v0
.L8011F560:
/* B5C60 8011F560 8CAA0000 */  lw        $t2, 0x0($a1)
/* B5C64 8011F564 8CAB0004 */  lw        $t3, 0x4($a1)
/* B5C68 8011F568 8CAC0008 */  lw        $t4, 0x8($a1)
/* B5C6C 8011F56C 8CAD000C */  lw        $t5, 0xC($a1)
/* B5C70 8011F570 AC8A0000 */  sw        $t2, 0x0($a0)
/* B5C74 8011F574 AC8B0004 */  sw        $t3, 0x4($a0)
/* B5C78 8011F578 AC8C0008 */  sw        $t4, 0x8($a0)
/* B5C7C 8011F57C AC8D000C */  sw        $t5, 0xC($a0)
/* B5C80 8011F580 24A50010 */  addiu     $a1, $a1, 0x10
/* B5C84 8011F584 14A6FFF6 */  bne       $a1, $a2, .L8011F560
/* B5C88 8011F588 24840010 */   addiu    $a0, $a0, 0x10
/* B5C8C 8011F58C 3C07DA38 */  lui       $a3, (0xDA380002 >> 16)
/* B5C90 8011F590 34E70002 */  ori       $a3, $a3, (0xDA380002 & 0xFFFF)
/* B5C94 8011F594 3C080001 */  lui       $t0, (0x11630 >> 16)
/* B5C98 8011F598 3C05800A */  lui       $a1, %hi(gMainGfxPos)
/* B5C9C 8011F59C 24A5A66C */  addiu     $a1, $a1, %lo(gMainGfxPos)
/* B5CA0 8011F5A0 35081630 */  ori       $t0, $t0, (0x11630 & 0xFFFF)
/* B5CA4 8011F5A4 3C048007 */  lui       $a0, %hi(gMatrixListPos)
/* B5CA8 8011F5A8 248441F0 */  addiu     $a0, $a0, %lo(gMatrixListPos)
/* B5CAC 8011F5AC 8CA20000 */  lw        $v0, 0x0($a1)
/* B5CB0 8011F5B0 94830000 */  lhu       $v1, 0x0($a0)
/* B5CB4 8011F5B4 0040302D */  daddu     $a2, $v0, $zero
/* B5CB8 8011F5B8 24420008 */  addiu     $v0, $v0, 0x8
/* B5CBC 8011F5BC ACA20000 */  sw        $v0, 0x0($a1)
/* B5CC0 8011F5C0 24620001 */  addiu     $v0, $v1, 0x1
/* B5CC4 8011F5C4 3063FFFF */  andi      $v1, $v1, 0xFFFF
/* B5CC8 8011F5C8 00031980 */  sll       $v1, $v1, 6
/* B5CCC 8011F5CC 00681821 */  addu      $v1, $v1, $t0
/* B5CD0 8011F5D0 ACC70000 */  sw        $a3, 0x0($a2)
/* B5CD4 8011F5D4 A4820000 */  sh        $v0, 0x0($a0)
/* B5CD8 8011F5D8 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* B5CDC 8011F5DC 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* B5CE0 8011F5E0 3C048015 */  lui       $a0, %hi(gAnimModelFogEnabled)
/* B5CE4 8011F5E4 8C843A44 */  lw        $a0, %lo(gAnimModelFogEnabled)($a0)
/* B5CE8 8011F5E8 00431021 */  addu      $v0, $v0, $v1
/* B5CEC 8011F5EC 0004202B */  sltu      $a0, $zero, $a0
/* B5CF0 8011F5F0 10800006 */  beqz      $a0, .L8011F60C
/* B5CF4 8011F5F4 ACC20004 */   sw       $v0, 0x4($a2)
/* B5CF8 8011F5F8 24020001 */  addiu     $v0, $zero, 0x1
/* B5CFC 8011F5FC 10820063 */  beq       $a0, $v0, .L8011F78C
/* B5D00 8011F600 27A40010 */   addiu    $a0, $sp, 0x10
/* B5D04 8011F604 08047E80 */  j         .L8011FA00
/* B5D08 8011F608 00000000 */   nop
.L8011F60C:
/* B5D0C 8011F60C 92020004 */  lbu       $v0, 0x4($s0)
/* B5D10 8011F610 2442FFFF */  addiu     $v0, $v0, -0x1
/* B5D14 8011F614 00021600 */  sll       $v0, $v0, 24
/* B5D18 8011F618 00021E03 */  sra       $v1, $v0, 24
/* B5D1C 8011F61C 2C620026 */  sltiu     $v0, $v1, 0x26
/* B5D20 8011F620 104000F6 */  beqz      $v0, .L8011F9FC
/* B5D24 8011F624 00031080 */   sll      $v0, $v1, 2
/* B5D28 8011F628 3C018015 */  lui       $at, %hi(jtbl_8014FEE0)
/* B5D2C 8011F62C 00220821 */  addu      $at, $at, $v0
/* B5D30 8011F630 8C22FEE0 */  lw        $v0, %lo(jtbl_8014FEE0)($at)
/* B5D34 8011F634 00400008 */  jr        $v0
/* B5D38 8011F638 00000000 */   nop
glabel .L8011F63C
/* B5D3C 8011F63C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5D40 8011F640 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5D44 8011F644 8C620000 */  lw        $v0, 0x0($v1)
/* B5D48 8011F648 0040202D */  daddu     $a0, $v0, $zero
/* B5D4C 8011F64C 24420008 */  addiu     $v0, $v0, 0x8
/* B5D50 8011F650 AC620000 */  sw        $v0, 0x0($v1)
/* B5D54 8011F654 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5D58 8011F658 AC820000 */  sw        $v0, 0x0($a0)
/* B5D5C 8011F65C 3C028015 */  lui       $v0, %hi(D_8014B7F8)
/* B5D60 8011F660 2442B7F8 */  addiu     $v0, $v0, %lo(D_8014B7F8)
/* B5D64 8011F664 08047E7F */  j         .L8011F9FC
/* B5D68 8011F668 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F66C
/* B5D6C 8011F66C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5D70 8011F670 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5D74 8011F674 8C620000 */  lw        $v0, 0x0($v1)
/* B5D78 8011F678 0040202D */  daddu     $a0, $v0, $zero
/* B5D7C 8011F67C 24420008 */  addiu     $v0, $v0, 0x8
/* B5D80 8011F680 AC620000 */  sw        $v0, 0x0($v1)
/* B5D84 8011F684 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5D88 8011F688 AC820000 */  sw        $v0, 0x0($a0)
/* B5D8C 8011F68C 3C028015 */  lui       $v0, %hi(D_8014B820)
/* B5D90 8011F690 2442B820 */  addiu     $v0, $v0, %lo(D_8014B820)
/* B5D94 8011F694 08047E7F */  j         .L8011F9FC
/* B5D98 8011F698 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F69C
/* B5D9C 8011F69C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5DA0 8011F6A0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5DA4 8011F6A4 8C620000 */  lw        $v0, 0x0($v1)
/* B5DA8 8011F6A8 0040202D */  daddu     $a0, $v0, $zero
/* B5DAC 8011F6AC 24420008 */  addiu     $v0, $v0, 0x8
/* B5DB0 8011F6B0 AC620000 */  sw        $v0, 0x0($v1)
/* B5DB4 8011F6B4 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5DB8 8011F6B8 AC820000 */  sw        $v0, 0x0($a0)
/* B5DBC 8011F6BC 3C028015 */  lui       $v0, %hi(D_8014B848)
/* B5DC0 8011F6C0 2442B848 */  addiu     $v0, $v0, %lo(D_8014B848)
/* B5DC4 8011F6C4 08047E7F */  j         .L8011F9FC
/* B5DC8 8011F6C8 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F6CC
/* B5DCC 8011F6CC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5DD0 8011F6D0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5DD4 8011F6D4 8C620000 */  lw        $v0, 0x0($v1)
/* B5DD8 8011F6D8 0040202D */  daddu     $a0, $v0, $zero
/* B5DDC 8011F6DC 24420008 */  addiu     $v0, $v0, 0x8
/* B5DE0 8011F6E0 AC620000 */  sw        $v0, 0x0($v1)
/* B5DE4 8011F6E4 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5DE8 8011F6E8 AC820000 */  sw        $v0, 0x0($a0)
/* B5DEC 8011F6EC 3C028015 */  lui       $v0, %hi(D_8014B870)
/* B5DF0 8011F6F0 2442B870 */  addiu     $v0, $v0, %lo(D_8014B870)
/* B5DF4 8011F6F4 08047E7F */  j         .L8011F9FC
/* B5DF8 8011F6F8 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F6FC
/* B5DFC 8011F6FC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5E00 8011F700 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5E04 8011F704 8C620000 */  lw        $v0, 0x0($v1)
/* B5E08 8011F708 0040202D */  daddu     $a0, $v0, $zero
/* B5E0C 8011F70C 24420008 */  addiu     $v0, $v0, 0x8
/* B5E10 8011F710 AC620000 */  sw        $v0, 0x0($v1)
/* B5E14 8011F714 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5E18 8011F718 AC820000 */  sw        $v0, 0x0($a0)
/* B5E1C 8011F71C 3C028015 */  lui       $v0, %hi(D_8014B898)
/* B5E20 8011F720 2442B898 */  addiu     $v0, $v0, %lo(D_8014B898)
/* B5E24 8011F724 08047E7F */  j         .L8011F9FC
/* B5E28 8011F728 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F72C
/* B5E2C 8011F72C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5E30 8011F730 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5E34 8011F734 8C620000 */  lw        $v0, 0x0($v1)
/* B5E38 8011F738 0040202D */  daddu     $a0, $v0, $zero
/* B5E3C 8011F73C 24420008 */  addiu     $v0, $v0, 0x8
/* B5E40 8011F740 AC620000 */  sw        $v0, 0x0($v1)
/* B5E44 8011F744 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5E48 8011F748 AC820000 */  sw        $v0, 0x0($a0)
/* B5E4C 8011F74C 3C028015 */  lui       $v0, %hi(D_8014B8C0)
/* B5E50 8011F750 2442B8C0 */  addiu     $v0, $v0, %lo(D_8014B8C0)
/* B5E54 8011F754 08047E7F */  j         .L8011F9FC
/* B5E58 8011F758 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F75C
/* B5E5C 8011F75C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5E60 8011F760 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5E64 8011F764 8C620000 */  lw        $v0, 0x0($v1)
/* B5E68 8011F768 0040202D */  daddu     $a0, $v0, $zero
/* B5E6C 8011F76C 24420008 */  addiu     $v0, $v0, 0x8
/* B5E70 8011F770 AC620000 */  sw        $v0, 0x0($v1)
/* B5E74 8011F774 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5E78 8011F778 AC820000 */  sw        $v0, 0x0($a0)
/* B5E7C 8011F77C 3C028015 */  lui       $v0, %hi(D_8014B8E8)
/* B5E80 8011F780 2442B8E8 */  addiu     $v0, $v0, %lo(D_8014B8E8)
/* B5E84 8011F784 08047E7F */  j         .L8011F9FC
/* B5E88 8011F788 AC820004 */   sw       $v0, 0x4($a0)
.L8011F78C:
/* B5E8C 8011F78C 92020004 */  lbu       $v0, 0x4($s0)
/* B5E90 8011F790 2442FFFF */  addiu     $v0, $v0, -0x1
/* B5E94 8011F794 00021600 */  sll       $v0, $v0, 24
/* B5E98 8011F798 00021E03 */  sra       $v1, $v0, 24
/* B5E9C 8011F79C 2C620026 */  sltiu     $v0, $v1, 0x26
/* B5EA0 8011F7A0 10400059 */  beqz      $v0, .L8011F908
/* B5EA4 8011F7A4 00031080 */   sll      $v0, $v1, 2
/* B5EA8 8011F7A8 3C018015 */  lui       $at, %hi(jtbl_8014FF78)
/* B5EAC 8011F7AC 00220821 */  addu      $at, $at, $v0
/* B5EB0 8011F7B0 8C22FF78 */  lw        $v0, %lo(jtbl_8014FF78)($at)
/* B5EB4 8011F7B4 00400008 */  jr        $v0
/* B5EB8 8011F7B8 00000000 */   nop
glabel .L8011F7BC
/* B5EBC 8011F7BC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5EC0 8011F7C0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5EC4 8011F7C4 8C620000 */  lw        $v0, 0x0($v1)
/* B5EC8 8011F7C8 0040202D */  daddu     $a0, $v0, $zero
/* B5ECC 8011F7CC 24420008 */  addiu     $v0, $v0, 0x8
/* B5ED0 8011F7D0 AC620000 */  sw        $v0, 0x0($v1)
/* B5ED4 8011F7D4 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5ED8 8011F7D8 AC820000 */  sw        $v0, 0x0($a0)
/* B5EDC 8011F7DC 3C028015 */  lui       $v0, %hi(D_8014BE78)
/* B5EE0 8011F7E0 2442BE78 */  addiu     $v0, $v0, %lo(D_8014BE78)
/* B5EE4 8011F7E4 08047E42 */  j         .L8011F908
/* B5EE8 8011F7E8 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F7EC
/* B5EEC 8011F7EC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5EF0 8011F7F0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5EF4 8011F7F4 8C620000 */  lw        $v0, 0x0($v1)
/* B5EF8 8011F7F8 0040202D */  daddu     $a0, $v0, $zero
/* B5EFC 8011F7FC 24420008 */  addiu     $v0, $v0, 0x8
/* B5F00 8011F800 AC620000 */  sw        $v0, 0x0($v1)
/* B5F04 8011F804 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5F08 8011F808 AC820000 */  sw        $v0, 0x0($a0)
/* B5F0C 8011F80C 3C028015 */  lui       $v0, %hi(D_8014BEA0)
/* B5F10 8011F810 2442BEA0 */  addiu     $v0, $v0, %lo(D_8014BEA0)
/* B5F14 8011F814 08047E42 */  j         .L8011F908
/* B5F18 8011F818 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F81C
/* B5F1C 8011F81C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5F20 8011F820 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5F24 8011F824 8C620000 */  lw        $v0, 0x0($v1)
/* B5F28 8011F828 0040202D */  daddu     $a0, $v0, $zero
/* B5F2C 8011F82C 24420008 */  addiu     $v0, $v0, 0x8
/* B5F30 8011F830 AC620000 */  sw        $v0, 0x0($v1)
/* B5F34 8011F834 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5F38 8011F838 AC820000 */  sw        $v0, 0x0($a0)
/* B5F3C 8011F83C 3C028015 */  lui       $v0, %hi(D_8014BEC8)
/* B5F40 8011F840 2442BEC8 */  addiu     $v0, $v0, %lo(D_8014BEC8)
/* B5F44 8011F844 08047E42 */  j         .L8011F908
/* B5F48 8011F848 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F84C
/* B5F4C 8011F84C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5F50 8011F850 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5F54 8011F854 8C620000 */  lw        $v0, 0x0($v1)
/* B5F58 8011F858 0040202D */  daddu     $a0, $v0, $zero
/* B5F5C 8011F85C 24420008 */  addiu     $v0, $v0, 0x8
/* B5F60 8011F860 AC620000 */  sw        $v0, 0x0($v1)
/* B5F64 8011F864 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5F68 8011F868 AC820000 */  sw        $v0, 0x0($a0)
/* B5F6C 8011F86C 3C028015 */  lui       $v0, %hi(D_8014BEF0)
/* B5F70 8011F870 2442BEF0 */  addiu     $v0, $v0, %lo(D_8014BEF0)
/* B5F74 8011F874 08047E42 */  j         .L8011F908
/* B5F78 8011F878 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F87C
/* B5F7C 8011F87C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5F80 8011F880 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5F84 8011F884 8C620000 */  lw        $v0, 0x0($v1)
/* B5F88 8011F888 0040202D */  daddu     $a0, $v0, $zero
/* B5F8C 8011F88C 24420008 */  addiu     $v0, $v0, 0x8
/* B5F90 8011F890 AC620000 */  sw        $v0, 0x0($v1)
/* B5F94 8011F894 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5F98 8011F898 AC820000 */  sw        $v0, 0x0($a0)
/* B5F9C 8011F89C 3C028015 */  lui       $v0, %hi(D_8014BF18)
/* B5FA0 8011F8A0 2442BF18 */  addiu     $v0, $v0, %lo(D_8014BF18)
/* B5FA4 8011F8A4 08047E42 */  j         .L8011F908
/* B5FA8 8011F8A8 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F8AC
/* B5FAC 8011F8AC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5FB0 8011F8B0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5FB4 8011F8B4 8C620000 */  lw        $v0, 0x0($v1)
/* B5FB8 8011F8B8 0040202D */  daddu     $a0, $v0, $zero
/* B5FBC 8011F8BC 24420008 */  addiu     $v0, $v0, 0x8
/* B5FC0 8011F8C0 AC620000 */  sw        $v0, 0x0($v1)
/* B5FC4 8011F8C4 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5FC8 8011F8C8 AC820000 */  sw        $v0, 0x0($a0)
/* B5FCC 8011F8CC 3C028015 */  lui       $v0, %hi(D_8014BF40)
/* B5FD0 8011F8D0 2442BF40 */  addiu     $v0, $v0, %lo(D_8014BF40)
/* B5FD4 8011F8D4 08047E42 */  j         .L8011F908
/* B5FD8 8011F8D8 AC820004 */   sw       $v0, 0x4($a0)
glabel .L8011F8DC
/* B5FDC 8011F8DC 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B5FE0 8011F8E0 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B5FE4 8011F8E4 8C620000 */  lw        $v0, 0x0($v1)
/* B5FE8 8011F8E8 0040202D */  daddu     $a0, $v0, $zero
/* B5FEC 8011F8EC 24420008 */  addiu     $v0, $v0, 0x8
/* B5FF0 8011F8F0 AC620000 */  sw        $v0, 0x0($v1)
/* B5FF4 8011F8F4 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* B5FF8 8011F8F8 AC820000 */  sw        $v0, 0x0($a0)
/* B5FFC 8011F8FC 3C028015 */  lui       $v0, %hi(D_8014BF68)
/* B6000 8011F900 2442BF68 */  addiu     $v0, $v0, %lo(D_8014BF68)
/* B6004 8011F904 AC820004 */  sw        $v0, 0x4($a0)
glabel .L8011F908
/* B6008 8011F908 3C070001 */  lui       $a3, (0x1F400 >> 16)
/* B600C 8011F90C 3C028015 */  lui       $v0, %hi(gAnimModelFogEnd)
/* B6010 8011F910 8C423A5C */  lw        $v0, %lo(gAnimModelFogEnd)($v0)
/* B6014 8011F914 3C038015 */  lui       $v1, %hi(gAnimModelFogStart)
/* B6018 8011F918 8C633A58 */  lw        $v1, %lo(gAnimModelFogStart)($v1)
/* B601C 8011F91C 34E7F400 */  ori       $a3, $a3, (0x1F400 & 0xFFFF)
/* B6020 8011F920 00431023 */  subu      $v0, $v0, $v1
/* B6024 8011F924 14400002 */  bnez      $v0, .L8011F930
/* B6028 8011F928 00E2001A */   div      $zero, $a3, $v0
/* B602C 8011F92C 0007000D */  break     7
.L8011F930:
/* B6030 8011F930 2401FFFF */  addiu     $at, $zero, -0x1
/* B6034 8011F934 14410004 */  bne       $v0, $at, .L8011F948
/* B6038 8011F938 3C018000 */   lui      $at, (0x80000000 >> 16)
/* B603C 8011F93C 14E10002 */  bne       $a3, $at, .L8011F948
/* B6040 8011F940 00000000 */   nop
/* B6044 8011F944 0006000D */  break     6
.L8011F948:
/* B6048 8011F948 00003812 */  mflo      $a3
/* B604C 8011F94C 240501F4 */  addiu     $a1, $zero, 0x1F4
/* B6050 8011F950 00A32823 */  subu      $a1, $a1, $v1
/* B6054 8011F954 00052A00 */  sll       $a1, $a1, 8
/* B6058 8011F958 14400002 */  bnez      $v0, .L8011F964
/* B605C 8011F95C 00A2001A */   div      $zero, $a1, $v0
/* B6060 8011F960 0007000D */  break     7
.L8011F964:
/* B6064 8011F964 2401FFFF */  addiu     $at, $zero, -0x1
/* B6068 8011F968 14410004 */  bne       $v0, $at, .L8011F97C
/* B606C 8011F96C 3C018000 */   lui      $at, (0x80000000 >> 16)
/* B6070 8011F970 14A10002 */  bne       $a1, $at, .L8011F97C
/* B6074 8011F974 00000000 */   nop
/* B6078 8011F978 0006000D */  break     6
.L8011F97C:
/* B607C 8011F97C 00002812 */  mflo      $a1
/* B6080 8011F980 3C08800A */  lui       $t0, %hi(gMainGfxPos)
/* B6084 8011F984 2508A66C */  addiu     $t0, $t0, %lo(gMainGfxPos)
/* B6088 8011F988 8D060000 */  lw        $a2, 0x0($t0)
/* B608C 8011F98C 00C0482D */  daddu     $t1, $a2, $zero
/* B6090 8011F990 24C60008 */  addiu     $a2, $a2, 0x8
/* B6094 8011F994 3C02F800 */  lui       $v0, (0xF8000000 >> 16)
/* B6098 8011F998 AD060000 */  sw        $a2, 0x0($t0)
/* B609C 8011F99C AD220000 */  sw        $v0, 0x0($t1)
/* B60A0 8011F9A0 3C028015 */  lui       $v0, %hi(D_80153A4B)
/* B60A4 8011F9A4 90423A4B */  lbu       $v0, %lo(D_80153A4B)($v0)
/* B60A8 8011F9A8 3C038015 */  lui       $v1, %hi(D_80153A4F)
/* B60AC 8011F9AC 90633A4F */  lbu       $v1, %lo(D_80153A4F)($v1)
/* B60B0 8011F9B0 3C048015 */  lui       $a0, %hi(D_80153A53)
/* B60B4 8011F9B4 90843A53 */  lbu       $a0, %lo(D_80153A53)($a0)
/* B60B8 8011F9B8 00021600 */  sll       $v0, $v0, 24
/* B60BC 8011F9BC 00031C00 */  sll       $v1, $v1, 16
/* B60C0 8011F9C0 00431025 */  or        $v0, $v0, $v1
/* B60C4 8011F9C4 00042200 */  sll       $a0, $a0, 8
/* B60C8 8011F9C8 3C038015 */  lui       $v1, %hi(D_80153A57)
/* B60CC 8011F9CC 90633A57 */  lbu       $v1, %lo(D_80153A57)($v1)
/* B60D0 8011F9D0 00441025 */  or        $v0, $v0, $a0
/* B60D4 8011F9D4 00431025 */  or        $v0, $v0, $v1
/* B60D8 8011F9D8 AD220004 */  sw        $v0, 0x4($t1)
/* B60DC 8011F9DC 24C20008 */  addiu     $v0, $a2, 0x8
/* B60E0 8011F9E0 AD020000 */  sw        $v0, 0x0($t0)
/* B60E4 8011F9E4 3C02DB08 */  lui       $v0, (0xDB080000 >> 16)
/* B60E8 8011F9E8 ACC20000 */  sw        $v0, 0x0($a2)
/* B60EC 8011F9EC 00073C00 */  sll       $a3, $a3, 16
/* B60F0 8011F9F0 30A5FFFF */  andi      $a1, $a1, 0xFFFF
/* B60F4 8011F9F4 00E53825 */  or        $a3, $a3, $a1
/* B60F8 8011F9F8 ACC70004 */  sw        $a3, 0x4($a2)
glabel .L8011F9FC
/* B60FC 8011F9FC 27A40010 */  addiu     $a0, $sp, 0x10
.L8011FA00:
/* B6100 8011FA00 0C019D60 */  jal       guMtxL2F
/* B6104 8011FA04 26050098 */   addiu    $a1, $s0, 0x98
/* B6108 8011FA08 0200202D */  daddu     $a0, $s0, $zero
/* B610C 8011FA0C 8C850010 */  lw        $a1, 0x10($a0)
/* B6110 8011FA10 0C047E95 */  jal       appendGfx_animator_node
/* B6114 8011FA14 27A60010 */   addiu    $a2, $sp, 0x10
/* B6118 8011FA18 3C05D838 */  lui       $a1, (0xD8380002 >> 16)
/* B611C 8011FA1C 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* B6120 8011FA20 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* B6124 8011FA24 8C620000 */  lw        $v0, 0x0($v1)
/* B6128 8011FA28 34A50002 */  ori       $a1, $a1, (0xD8380002 & 0xFFFF)
/* B612C 8011FA2C 0040202D */  daddu     $a0, $v0, $zero
/* B6130 8011FA30 24420008 */  addiu     $v0, $v0, 0x8
/* B6134 8011FA34 AC620000 */  sw        $v0, 0x0($v1)
/* B6138 8011FA38 24020040 */  addiu     $v0, $zero, 0x40
/* B613C 8011FA3C AC850000 */  sw        $a1, 0x0($a0)
/* B6140 8011FA40 AC820004 */  sw        $v0, 0x4($a0)
/* B6144 8011FA44 8FBF0054 */  lw        $ra, 0x54($sp)
/* B6148 8011FA48 8FB00050 */  lw        $s0, 0x50($sp)
/* B614C 8011FA4C 03E00008 */  jr        $ra
/* B6150 8011FA50 27BD0058 */   addiu    $sp, $sp, 0x58

### DECOMPILED C INSTRUCTIONS:

void appendGfx_animator(ModelAnimator* animator) {
    Matrix4f sp10;

    if (animator->baseAddr != NULL) {
        gSPSegment(gMainGfxPos++, gAnimVtxSegment, VIRTUAL_TO_PHYSICAL(animator->baseAddr));
    }

    gDisplayContext->matrixStack[gMatrixListPos] = animator->mtx;
    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);

    //TODO find better match
    switch (gAnimModelFogEnabled != 0) {
        case FALSE:
            switch (animator->renderMode) {
                case RENDER_MODE_SURFACE_OPA:
                    gSPDisplayList(gMainGfxPos++, D_8014B7F8);
                    break;
                case RENDER_MODE_DECAL_OPA:
                    gSPDisplayList(gMainGfxPos++, D_8014B820);
                    break;
                case RENDER_MODE_INTERSECTING_OPA:
                    gSPDisplayList(gMainGfxPos++, D_8014B848);
                    break;
                case RENDER_MODE_ALPHATEST:
                    gSPDisplayList(gMainGfxPos++, D_8014B870);
                    break;
                case RENDER_MODE_SURFACE_XLU_LAYER1:
                    gSPDisplayList(gMainGfxPos++, D_8014B898);
                    break;
                case RENDER_MODE_DECAL_XLU:
                    gSPDisplayList(gMainGfxPos++, D_8014B8C0);
                    break;
                case RENDER_MODE_INTERSECTING_XLU:
                    gSPDisplayList(gMainGfxPos++, D_8014B8E8);
                    break;
            }
            break;
        case TRUE:
            switch (animator->renderMode) {
                case RENDER_MODE_SURFACE_OPA:
                    gSPDisplayList(gMainGfxPos++, D_8014BE78);
                    break;
                case RENDER_MODE_DECAL_OPA:
                    gSPDisplayList(gMainGfxPos++, D_8014BEA0);
                    break;
                case RENDER_MODE_INTERSECTING_OPA:
                    gSPDisplayList(gMainGfxPos++, D_8014BEC8);
                    break;
                case RENDER_MODE_ALPHATEST:
                    gSPDisplayList(gMainGfxPos++, D_8014BEF0);
                    break;
                case RENDER_MODE_SURFACE_XLU_LAYER1:
                    gSPDisplayList(gMainGfxPos++, D_8014BF18);
                    break;
                case RENDER_MODE_DECAL_XLU:
                    gSPDisplayList(gMainGfxPos++, D_8014BF40);
                    break;
                case RENDER_MODE_INTERSECTING_XLU:
                    gSPDisplayList(gMainGfxPos++, D_8014BF68);
                    break;
            }

            gDPSetFogColor(gMainGfxPos++, gAnimModelFogR, gAnimModelFogG, gAnimModelFogB, gAnimModelFogA);
            gSPFogPosition(gMainGfxPos++, gAnimModelFogStart, gAnimModelFogEnd);
            break;
    }

    guMtxL2F(sp10, &animator->mtx);
    appendGfx_animator_node(animator, animator->rootNode, sp10);
    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel update_camera_mode_1
/* A690 8002F290 27BDFF90 */  addiu     $sp, $sp, -0x70
/* A694 8002F294 AFB10034 */  sw        $s1, 0x34($sp)
/* A698 8002F298 0080882D */  daddu     $s1, $a0, $zero
/* A69C 8002F29C AFBF0038 */  sw        $ra, 0x38($sp)
/* A6A0 8002F2A0 AFB00030 */  sw        $s0, 0x30($sp)
/* A6A4 8002F2A4 F7BE0068 */  sdc1      $f30, 0x68($sp)
/* A6A8 8002F2A8 F7BC0060 */  sdc1      $f28, 0x60($sp)
/* A6AC 8002F2AC F7BA0058 */  sdc1      $f26, 0x58($sp)
/* A6B0 8002F2B0 F7B80050 */  sdc1      $f24, 0x50($sp)
/* A6B4 8002F2B4 F7B60048 */  sdc1      $f22, 0x48($sp)
/* A6B8 8002F2B8 F7B40040 */  sdc1      $f20, 0x40($sp)
/* A6BC 8002F2BC 86220006 */  lh        $v0, 0x6($s1)
/* A6C0 8002F2C0 10400089 */  beqz      $v0, .L8002F4E8
/* A6C4 8002F2C4 00000000 */   nop
/* A6C8 8002F2C8 C63E0054 */  lwc1      $f30, 0x54($s1)
/* A6CC 8002F2CC C63C005C */  lwc1      $f28, 0x5C($s1)
/* A6D0 8002F2D0 C6380060 */  lwc1      $f24, 0x60($s1)
/* A6D4 8002F2D4 C6360068 */  lwc1      $f22, 0x68($s1)
/* A6D8 8002F2D8 8622001C */  lh        $v0, 0x1C($s1)
/* A6DC 8002F2DC 86230020 */  lh        $v1, 0x20($s1)
/* A6E0 8002F2E0 3C10800A */  lui       $s0, %hi(D_8009A5EC)
/* A6E4 8002F2E4 2610A5EC */  addiu     $s0, $s0, %lo(D_8009A5EC)
/* A6E8 8002F2E8 A6200006 */  sh        $zero, 0x6($s1)
/* A6EC 8002F2EC 4600F306 */  mov.s     $f12, $f30
/* A6F0 8002F2F0 4600E386 */  mov.s     $f14, $f28
/* A6F4 8002F2F4 44820000 */  mtc1      $v0, $f0
/* A6F8 8002F2F8 00000000 */  nop
/* A6FC 8002F2FC 46800020 */  cvt.s.w   $f0, $f0
/* A700 8002F300 00031040 */  sll       $v0, $v1, 1
/* A704 8002F304 00431021 */  addu      $v0, $v0, $v1
/* A708 8002F308 000210C0 */  sll       $v0, $v0, 3
/* A70C 8002F30C 00431021 */  addu      $v0, $v0, $v1
/* A710 8002F310 00021080 */  sll       $v0, $v0, 2
/* A714 8002F314 E6200074 */  swc1      $f0, 0x74($s1)
/* A718 8002F318 44820000 */  mtc1      $v0, $f0
/* A71C 8002F31C 00000000 */  nop
/* A720 8002F320 46800020 */  cvt.s.w   $f0, $f0
/* A724 8002F324 4406C000 */  mfc1      $a2, $f24
/* A728 8002F328 4407B000 */  mfc1      $a3, $f22
/* A72C 8002F32C C6020000 */  lwc1      $f2, 0x0($s0)
/* A730 8002F330 86230022 */  lh        $v1, 0x22($s1)
/* A734 8002F334 46020003 */  div.s     $f0, $f0, $f2
/* A738 8002F338 00031080 */  sll       $v0, $v1, 2
/* A73C 8002F33C 00431021 */  addu      $v0, $v0, $v1
/* A740 8002F340 00021080 */  sll       $v0, $v0, 2
/* A744 8002F344 E6200078 */  swc1      $f0, 0x78($s1)
/* A748 8002F348 44820000 */  mtc1      $v0, $f0
/* A74C 8002F34C 00000000 */  nop
/* A750 8002F350 46800020 */  cvt.s.w   $f0, $f0
/* A754 8002F354 46020003 */  div.s     $f0, $f0, $f2
/* A758 8002F358 0C00A720 */  jal       atan2
/* A75C 8002F35C E620007C */   swc1     $f0, 0x7C($s1)
/* A760 8002F360 46000506 */  mov.s     $f20, $f0
/* A764 8002F364 4600F306 */  mov.s     $f12, $f30
/* A768 8002F368 4406C000 */  mfc1      $a2, $f24
/* A76C 8002F36C 4407B000 */  mfc1      $a3, $f22
/* A770 8002F370 0C00A7B5 */  jal       dist2D
/* A774 8002F374 4600E386 */   mov.s    $f14, $f28
/* A778 8002F378 8623001E */  lh        $v1, 0x1E($s1)
/* A77C 8002F37C C6040000 */  lwc1      $f4, 0x0($s0)
/* A780 8002F380 00031040 */  sll       $v0, $v1, 1
/* A784 8002F384 00431021 */  addu      $v0, $v0, $v1
/* A788 8002F388 000210C0 */  sll       $v0, $v0, 3
/* A78C 8002F38C 00431021 */  addu      $v0, $v0, $v1
/* A790 8002F390 00021080 */  sll       $v0, $v0, 2
/* A794 8002F394 44821000 */  mtc1      $v0, $f2
/* A798 8002F398 00000000 */  nop
/* A79C 8002F39C 468010A0 */  cvt.s.w   $f2, $f2
/* A7A0 8002F3A0 46041083 */  div.s     $f2, $f2, $f4
/* A7A4 8002F3A4 4602003C */  c.lt.s    $f0, $f2
/* A7A8 8002F3A8 00000000 */  nop
/* A7AC 8002F3AC 45020004 */  bc1fl     .L8002F3C0
/* A7B0 8002F3B0 E6340084 */   swc1     $f20, 0x84($s1)
/* A7B4 8002F3B4 C6340084 */  lwc1      $f20, 0x84($s1)
/* A7B8 8002F3B8 0800BCF1 */  j         .L8002F3C4
/* A7BC 8002F3BC AFA00010 */   sw       $zero, 0x10($sp)
.L8002F3C0:
/* A7C0 8002F3C0 AFA00010 */  sw        $zero, 0x10($sp)
.L8002F3C4:
/* A7C4 8002F3C4 C6220074 */  lwc1      $f2, 0x74($s1)
/* A7C8 8002F3C8 C6280054 */  lwc1      $f8, 0x54($s1)
/* A7CC 8002F3CC 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* A7D0 8002F3D0 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
/* A7D4 8002F3D4 44815000 */  mtc1      $at, $f10
/* A7D8 8002F3D8 C6200058 */  lwc1      $f0, 0x58($s1)
/* A7DC 8002F3DC C624007C */  lwc1      $f4, 0x7C($s1)
/* A7E0 8002F3E0 460A1082 */  mul.s     $f2, $f2, $f10
/* A7E4 8002F3E4 00000000 */  nop
/* A7E8 8002F3E8 C626005C */  lwc1      $f6, 0x5C($s1)
/* A7EC 8002F3EC 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* A7F0 8002F3F0 4481B000 */  mtc1      $at, $f22
/* A7F4 8002F3F4 E6340088 */  swc1      $f20, 0x88($s1)
/* A7F8 8002F3F8 46040000 */  add.s     $f0, $f0, $f4
/* A7FC 8002F3FC E6280048 */  swc1      $f8, 0x48($s1)
/* A800 8002F400 E6260050 */  swc1      $f6, 0x50($s1)
/* A804 8002F404 E620004C */  swc1      $f0, 0x4C($s1)
/* A808 8002F408 46161603 */  div.s     $f24, $f2, $f22
/* A80C 8002F40C 0C00A85B */  jal       sin_rad
/* A810 8002F410 4600C306 */   mov.s    $f12, $f24
/* A814 8002F414 46000686 */  mov.s     $f26, $f0
/* A818 8002F418 0C00A874 */  jal       cos_rad
/* A81C 8002F41C 4600C306 */   mov.s    $f12, $f24
/* A820 8002F420 C7B00010 */  lwc1      $f16, 0x10($sp)
/* A824 8002F424 46000206 */  mov.s     $f8, $f0
/* A828 8002F428 46104182 */  mul.s     $f6, $f8, $f16
/* A82C 8002F42C 00000000 */  nop
/* A830 8002F430 C63C0078 */  lwc1      $f28, 0x78($s1)
/* A834 8002F434 461AE082 */  mul.s     $f2, $f28, $f26
/* A838 8002F438 00000000 */  nop
/* A83C 8002F43C 46008007 */  neg.s     $f0, $f16
/* A840 8002F440 4600D002 */  mul.s     $f0, $f26, $f0
/* A844 8002F444 00000000 */  nop
/* A848 8002F448 4608E102 */  mul.s     $f4, $f28, $f8
/* A84C 8002F44C 00000000 */  nop
/* A850 8002F450 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* A854 8002F454 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
/* A858 8002F458 44815000 */  mtc1      $at, $f10
/* A85C 8002F45C 00000000 */  nop
/* A860 8002F460 460AA282 */  mul.s     $f10, $f20, $f10
/* A864 8002F464 00000000 */  nop
/* A868 8002F468 46008606 */  mov.s     $f24, $f16
/* A86C 8002F46C 4600C786 */  mov.s     $f30, $f24
/* A870 8002F470 46023180 */  add.s     $f6, $f6, $f2
/* A874 8002F474 46165603 */  div.s     $f24, $f10, $f22
/* A878 8002F478 4600C306 */  mov.s     $f12, $f24
/* A87C 8002F47C 46040700 */  add.s     $f28, $f0, $f4
/* A880 8002F480 0C00A85B */  jal       sin_rad
/* A884 8002F484 E7A60010 */   swc1     $f6, 0x10($sp)
/* A888 8002F488 46000686 */  mov.s     $f26, $f0
/* A88C 8002F48C 0C00A874 */  jal       cos_rad
/* A890 8002F490 4600C306 */   mov.s    $f12, $f24
/* A894 8002F494 46000206 */  mov.s     $f8, $f0
/* A898 8002F498 461E4182 */  mul.s     $f6, $f8, $f30
/* A89C 8002F49C 00000000 */  nop
/* A8A0 8002F4A0 461AE082 */  mul.s     $f2, $f28, $f26
/* A8A4 8002F4A4 00000000 */  nop
/* A8A8 8002F4A8 461ED102 */  mul.s     $f4, $f26, $f30
/* A8AC 8002F4AC 00000000 */  nop
/* A8B0 8002F4B0 4608E002 */  mul.s     $f0, $f28, $f8
/* A8B4 8002F4B4 00000000 */  nop
/* A8B8 8002F4B8 46023601 */  sub.s     $f24, $f6, $f2
/* A8BC 8002F4BC C7B00010 */  lwc1      $f16, 0x10($sp)
/* A8C0 8002F4C0 46002580 */  add.s     $f22, $f4, $f0
/* A8C4 8002F4C4 C620004C */  lwc1      $f0, 0x4C($s1)
/* A8C8 8002F4C8 46100000 */  add.s     $f0, $f0, $f16
/* A8CC 8002F4CC C6240048 */  lwc1      $f4, 0x48($s1)
/* A8D0 8002F4D0 46182100 */  add.s     $f4, $f4, $f24
/* A8D4 8002F4D4 C6220050 */  lwc1      $f2, 0x50($s1)
/* A8D8 8002F4D8 46161080 */  add.s     $f2, $f2, $f22
/* A8DC 8002F4DC E6200040 */  swc1      $f0, 0x40($s1)
/* A8E0 8002F4E0 E624003C */  swc1      $f4, 0x3C($s1)
/* A8E4 8002F4E4 E6220044 */  swc1      $f2, 0x44($s1)
.L8002F4E8:
/* A8E8 8002F4E8 C62A0054 */  lwc1      $f10, 0x54($s1)
/* A8EC 8002F4EC 3C10800A */  lui       $s0, %hi(D_8009A5EC)
/* A8F0 8002F4F0 2610A5EC */  addiu     $s0, $s0, %lo(D_8009A5EC)
/* A8F4 8002F4F4 E7AA0028 */  swc1      $f10, 0x28($sp)
/* A8F8 8002F4F8 C632005C */  lwc1      $f18, 0x5C($s1)
/* A8FC 8002F4FC C63E0054 */  lwc1      $f30, 0x54($s1)
/* A900 8002F500 C6380060 */  lwc1      $f24, 0x60($s1)
/* A904 8002F504 C6360068 */  lwc1      $f22, 0x68($s1)
/* A908 8002F508 86230022 */  lh        $v1, 0x22($s1)
/* A90C 8002F50C C6260058 */  lwc1      $f6, 0x58($s1)
/* A910 8002F510 C60A0000 */  lwc1      $f10, 0x0($s0)
/* A914 8002F514 C6280048 */  lwc1      $f8, 0x48($s1)
/* A918 8002F518 46009706 */  mov.s     $f28, $f18
/* A91C 8002F51C 00031080 */  sll       $v0, $v1, 2
/* A920 8002F520 00431021 */  addu      $v0, $v0, $v1
/* A924 8002F524 00021080 */  sll       $v0, $v0, 2
/* A928 8002F528 44828000 */  mtc1      $v0, $f16
/* A92C 8002F52C 00000000 */  nop
/* A930 8002F530 46808420 */  cvt.s.w   $f16, $f16
/* A934 8002F534 460A8283 */  div.s     $f10, $f16, $f10
/* A938 8002F538 4600F306 */  mov.s     $f12, $f30
/* A93C 8002F53C E62A007C */  swc1      $f10, 0x7C($s1)
/* A940 8002F540 C7B00028 */  lwc1      $f16, 0x28($sp)
/* A944 8002F544 4600E386 */  mov.s     $f14, $f28
/* A948 8002F548 46088401 */  sub.s     $f16, $f16, $f8
/* A94C 8002F54C 4406C000 */  mfc1      $a2, $f24
/* A950 8002F550 4407B000 */  mfc1      $a3, $f22
/* A954 8002F554 460A3180 */  add.s     $f6, $f6, $f10
/* A958 8002F558 E7B00028 */  swc1      $f16, 0x28($sp)
/* A95C 8002F55C C6200050 */  lwc1      $f0, 0x50($s1)
/* A960 8002F560 8622001C */  lh        $v0, 0x1C($s1)
/* A964 8002F564 46009481 */  sub.s     $f18, $f18, $f0
/* A968 8002F568 44820000 */  mtc1      $v0, $f0
/* A96C 8002F56C 00000000 */  nop
/* A970 8002F570 46800020 */  cvt.s.w   $f0, $f0
/* A974 8002F574 E6200074 */  swc1      $f0, 0x74($s1)
/* A978 8002F578 3C013F00 */  lui       $at, (0x3F000000 >> 16)
/* A97C 8002F57C 44810000 */  mtc1      $at, $f0
/* A980 8002F580 86230020 */  lh        $v1, 0x20($s1)
/* A984 8002F584 46008282 */  mul.s     $f10, $f16, $f0
/* A988 8002F588 00000000 */  nop
/* A98C 8002F58C C622004C */  lwc1      $f2, 0x4C($s1)
/* A990 8002F590 00031040 */  sll       $v0, $v1, 1
/* A994 8002F594 00431021 */  addu      $v0, $v0, $v1
/* A998 8002F598 000210C0 */  sll       $v0, $v0, 3
/* A99C 8002F59C 46023181 */  sub.s     $f6, $f6, $f2
/* A9A0 8002F5A0 00431021 */  addu      $v0, $v0, $v1
/* A9A4 8002F5A4 00021080 */  sll       $v0, $v0, 2
/* A9A8 8002F5A8 46009482 */  mul.s     $f18, $f18, $f0
/* A9AC 8002F5AC 00000000 */  nop
/* A9B0 8002F5B0 3C014120 */  lui       $at, (0x41200000 >> 16)
/* A9B4 8002F5B4 44810000 */  mtc1      $at, $f0
/* A9B8 8002F5B8 44822000 */  mtc1      $v0, $f4
/* A9BC 8002F5BC 00000000 */  nop
/* A9C0 8002F5C0 46802120 */  cvt.s.w   $f4, $f4
/* A9C4 8002F5C4 46003183 */  div.s     $f6, $f6, $f0
/* A9C8 8002F5C8 46001006 */  mov.s     $f0, $f2
/* A9CC 8002F5CC 46060000 */  add.s     $f0, $f0, $f6
/* A9D0 8002F5D0 C6100000 */  lwc1      $f16, 0x0($s0)
/* A9D4 8002F5D4 C6220050 */  lwc1      $f2, 0x50($s1)
/* A9D8 8002F5D8 460A4200 */  add.s     $f8, $f8, $f10
/* A9DC 8002F5DC 46102103 */  div.s     $f4, $f4, $f16
/* A9E0 8002F5E0 E6240078 */  swc1      $f4, 0x78($s1)
/* A9E4 8002F5E4 46121080 */  add.s     $f2, $f2, $f18
/* A9E8 8002F5E8 E620004C */  swc1      $f0, 0x4C($s1)
/* A9EC 8002F5EC E6280048 */  swc1      $f8, 0x48($s1)
/* A9F0 8002F5F0 0C00A720 */  jal       atan2
/* A9F4 8002F5F4 E6220050 */   swc1     $f2, 0x50($s1)
/* A9F8 8002F5F8 46000506 */  mov.s     $f20, $f0
/* A9FC 8002F5FC 4600F306 */  mov.s     $f12, $f30
/* AA00 8002F600 4406C000 */  mfc1      $a2, $f24
/* AA04 8002F604 4407B000 */  mfc1      $a3, $f22
/* AA08 8002F608 0C00A7B5 */  jal       dist2D
/* AA0C 8002F60C 4600E386 */   mov.s    $f14, $f28
/* AA10 8002F610 8623001E */  lh        $v1, 0x1E($s1)
/* AA14 8002F614 C6040000 */  lwc1      $f4, 0x0($s0)
/* AA18 8002F618 00031040 */  sll       $v0, $v1, 1
/* AA1C 8002F61C 00431021 */  addu      $v0, $v0, $v1
/* AA20 8002F620 000210C0 */  sll       $v0, $v0, 3
/* AA24 8002F624 00431021 */  addu      $v0, $v0, $v1
/* AA28 8002F628 00021080 */  sll       $v0, $v0, 2
/* AA2C 8002F62C 44821000 */  mtc1      $v0, $f2
/* AA30 8002F630 00000000 */  nop
/* AA34 8002F634 468010A0 */  cvt.s.w   $f2, $f2
/* AA38 8002F638 46041083 */  div.s     $f2, $f2, $f4
/* AA3C 8002F63C 4602003C */  c.lt.s    $f0, $f2
/* AA40 8002F640 00000000 */  nop
/* AA44 8002F644 45020002 */  bc1fl     .L8002F650
/* AA48 8002F648 E6340084 */   swc1     $f20, 0x84($s1)
/* AA4C 8002F64C C6340084 */  lwc1      $f20, 0x84($s1)
.L8002F650:
/* AA50 8002F650 C62E0088 */  lwc1      $f14, 0x88($s1)
/* AA54 8002F654 0C00A70A */  jal       get_clamped_angle_diff
/* AA58 8002F658 4600A306 */   mov.s    $f12, $f20
/* AA5C 8002F65C C6240074 */  lwc1      $f4, 0x74($s1)
/* AA60 8002F660 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* AA64 8002F664 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
/* AA68 8002F668 44815000 */  mtc1      $at, $f10
/* AA6C 8002F66C 3C014120 */  lui       $at, (0x41200000 >> 16)
/* AA70 8002F670 44811000 */  mtc1      $at, $f2
/* AA74 8002F674 460A2102 */  mul.s     $f4, $f4, $f10
/* AA78 8002F678 00000000 */  nop
/* AA7C 8002F67C 46020003 */  div.s     $f0, $f0, $f2
/* AA80 8002F680 C6220088 */  lwc1      $f2, 0x88($s1)
/* AA84 8002F684 3C0143B4 */  lui       $at, (0x43B40000 >> 16)
/* AA88 8002F688 4481B000 */  mtc1      $at, $f22
/* AA8C 8002F68C 46001081 */  sub.s     $f2, $f2, $f0
/* AA90 8002F690 AFA00010 */  sw        $zero, 0x10($sp)
/* AA94 8002F694 46001506 */  mov.s     $f20, $f2
/* AA98 8002F698 E6340088 */  swc1      $f20, 0x88($s1)
/* AA9C 8002F69C 46162603 */  div.s     $f24, $f4, $f22
/* AAA0 8002F6A0 0C00A85B */  jal       sin_rad
/* AAA4 8002F6A4 4600C306 */   mov.s    $f12, $f24
/* AAA8 8002F6A8 46000686 */  mov.s     $f26, $f0
/* AAAC 8002F6AC 0C00A874 */  jal       cos_rad
/* AAB0 8002F6B0 4600C306 */   mov.s    $f12, $f24
/* AAB4 8002F6B4 C7B00010 */  lwc1      $f16, 0x10($sp)
/* AAB8 8002F6B8 46000206 */  mov.s     $f8, $f0
/* AABC 8002F6BC 46104182 */  mul.s     $f6, $f8, $f16
/* AAC0 8002F6C0 00000000 */  nop
/* AAC4 8002F6C4 C63C0078 */  lwc1      $f28, 0x78($s1)
/* AAC8 8002F6C8 461AE082 */  mul.s     $f2, $f28, $f26
/* AACC 8002F6CC 00000000 */  nop
/* AAD0 8002F6D0 46008007 */  neg.s     $f0, $f16
/* AAD4 8002F6D4 4600D002 */  mul.s     $f0, $f26, $f0
/* AAD8 8002F6D8 00000000 */  nop
/* AADC 8002F6DC 4608E102 */  mul.s     $f4, $f28, $f8
/* AAE0 8002F6E0 00000000 */  nop
/* AAE4 8002F6E4 3C0140C9 */  lui       $at, (0x40C90FD0 >> 16)
/* AAE8 8002F6E8 34210FD0 */  ori       $at, $at, (0x40C90FD0 & 0xFFFF)
/* AAEC 8002F6EC 44815000 */  mtc1      $at, $f10
/* AAF0 8002F6F0 00000000 */  nop
/* AAF4 8002F6F4 460AA282 */  mul.s     $f10, $f20, $f10
/* AAF8 8002F6F8 00000000 */  nop
/* AAFC 8002F6FC 46008606 */  mov.s     $f24, $f16
/* AB00 8002F700 4600C786 */  mov.s     $f30, $f24
/* AB04 8002F704 46023180 */  add.s     $f6, $f6, $f2
/* AB08 8002F708 46165603 */  div.s     $f24, $f10, $f22
/* AB0C 8002F70C 4600C306 */  mov.s     $f12, $f24
/* AB10 8002F710 46040700 */  add.s     $f28, $f0, $f4
/* AB14 8002F714 0C00A85B */  jal       sin_rad
/* AB18 8002F718 E7A60010 */   swc1     $f6, 0x10($sp)
/* AB1C 8002F71C 46000686 */  mov.s     $f26, $f0
/* AB20 8002F720 0C00A874 */  jal       cos_rad
/* AB24 8002F724 4600C306 */   mov.s    $f12, $f24
/* AB28 8002F728 46000206 */  mov.s     $f8, $f0
/* AB2C 8002F72C 461E4102 */  mul.s     $f4, $f8, $f30
/* AB30 8002F730 00000000 */  nop
/* AB34 8002F734 461AE002 */  mul.s     $f0, $f28, $f26
/* AB38 8002F738 00000000 */  nop
/* AB3C 8002F73C 461ED182 */  mul.s     $f6, $f26, $f30
/* AB40 8002F740 00000000 */  nop
/* AB44 8002F744 4608E082 */  mul.s     $f2, $f28, $f8
/* AB48 8002F748 00000000 */  nop
/* AB4C 8002F74C 46002601 */  sub.s     $f24, $f4, $f0
/* AB50 8002F750 C7B00010 */  lwc1      $f16, 0x10($sp)
/* AB54 8002F754 46023580 */  add.s     $f22, $f6, $f2
/* AB58 8002F758 C622004C */  lwc1      $f2, 0x4C($s1)
/* AB5C 8002F75C 46101080 */  add.s     $f2, $f2, $f16
/* AB60 8002F760 C6200048 */  lwc1      $f0, 0x48($s1)
/* AB64 8002F764 8E260048 */  lw        $a2, 0x48($s1)
/* AB68 8002F768 46180000 */  add.s     $f0, $f0, $f24
/* AB6C 8002F76C C62E0050 */  lwc1      $f14, 0x50($s1)
/* AB70 8002F770 8E270050 */  lw        $a3, 0x50($s1)
/* AB74 8002F774 46167380 */  add.s     $f14, $f14, $f22
/* AB78 8002F778 E6220040 */  swc1      $f2, 0x40($s1)
/* AB7C 8002F77C E620003C */  swc1      $f0, 0x3C($s1)
/* AB80 8002F780 46000306 */  mov.s     $f12, $f0
/* AB84 8002F784 0C00A720 */  jal       atan2
/* AB88 8002F788 E62E0044 */   swc1     $f14, 0x44($s1)
/* AB8C 8002F78C C6240048 */  lwc1      $f4, 0x48($s1)
/* AB90 8002F790 C622003C */  lwc1      $f2, 0x3C($s1)
/* AB94 8002F794 4480A000 */  mtc1      $zero, $f20
/* AB98 8002F798 46022781 */  sub.s     $f30, $f4, $f2
/* AB9C 8002F79C C6240050 */  lwc1      $f4, 0x50($s1)
/* ABA0 8002F7A0 C6220044 */  lwc1      $f2, 0x44($s1)
/* ABA4 8002F7A4 4600A306 */  mov.s     $f12, $f20
/* ABA8 8002F7A8 46022701 */  sub.s     $f28, $f4, $f2
/* ABAC 8002F7AC C624004C */  lwc1      $f4, 0x4C($s1)
/* ABB0 8002F7B0 C6220040 */  lwc1      $f2, 0x40($s1)
/* ABB4 8002F7B4 4406F000 */  mfc1      $a2, $f30
/* ABB8 8002F7B8 46022101 */  sub.s     $f4, $f4, $f2
/* ABBC 8002F7BC 4407E000 */  mfc1      $a3, $f28
/* ABC0 8002F7C0 4600A386 */  mov.s     $f14, $f20
/* ABC4 8002F7C4 E7A40010 */  swc1      $f4, 0x10($sp)
/* ABC8 8002F7C8 0C00A720 */  jal       atan2
/* ABCC 8002F7CC E620006C */   swc1     $f0, 0x6C($s1)
/* ABD0 8002F7D0 461EF102 */  mul.s     $f4, $f30, $f30
/* ABD4 8002F7D4 00000000 */  nop
/* ABD8 8002F7D8 461CE082 */  mul.s     $f2, $f28, $f28
/* ABDC 8002F7DC 00000000 */  nop
/* ABE0 8002F7E0 46022300 */  add.s     $f12, $f4, $f2
/* ABE4 8002F7E4 46000007 */  neg.s     $f0, $f0
/* ABE8 8002F7E8 E6200090 */  swc1      $f0, 0x90($s1)
/* ABEC 8002F7EC 46006004 */  sqrt.s    $f0, $f12
/* ABF0 8002F7F0 46000032 */  c.eq.s    $f0, $f0
/* ABF4 8002F7F4 00000000 */  nop
/* ABF8 8002F7F8 45030004 */  bc1tl     .L8002F80C
/* ABFC 8002F7FC 4600A306 */   mov.s    $f12, $f20
/* AC00 8002F800 0C0187BC */  jal       sqrtf
/* AC04 8002F804 00000000 */   nop
/* AC08 8002F808 4600A306 */  mov.s     $f12, $f20
.L8002F80C:
/* AC0C 8002F80C 46000007 */  neg.s     $f0, $f0
/* AC10 8002F810 8FA60010 */  lw        $a2, 0x10($sp)
/* AC14 8002F814 44070000 */  mfc1      $a3, $f0
/* AC18 8002F818 0C00A720 */  jal       atan2
/* AC1C 8002F81C 46006386 */   mov.s    $f14, $f12
/* AC20 8002F820 E6200094 */  swc1      $f0, 0x94($s1)
/* AC24 8002F824 8FBF0038 */  lw        $ra, 0x38($sp)
/* AC28 8002F828 8FB10034 */  lw        $s1, 0x34($sp)
/* AC2C 8002F82C 8FB00030 */  lw        $s0, 0x30($sp)
/* AC30 8002F830 D7BE0068 */  ldc1      $f30, 0x68($sp)
/* AC34 8002F834 D7BC0060 */  ldc1      $f28, 0x60($sp)
/* AC38 8002F838 D7BA0058 */  ldc1      $f26, 0x58($sp)
/* AC3C 8002F83C D7B80050 */  ldc1      $f24, 0x50($sp)
/* AC40 8002F840 D7B60048 */  ldc1      $f22, 0x48($sp)
/* AC44 8002F844 D7B40040 */  ldc1      $f20, 0x40($sp)
/* AC48 8002F848 03E00008 */  jr        $ra
/* AC4C 8002F84C 27BD0070 */   addiu    $sp, $sp, 0x70

### DECOMPILED C INSTRUCTIONS:

void update_camera_mode_1(Camera* camera) {
    f32 sinBoom, cosBoom;
    f32 f20;
    f32 boomYaw;
    f32 deltaX, deltaY, deltaZ;
    f32 deltaX2, deltaY2, deltaZ2;
    f32 x3, y3, z3;
    f32 x2, y2, z2;
    f32 new_var2;
    f32 tmp1;

    if (camera->needsInit) {
        camera->needsInit = FALSE;

        deltaX = camera->lookAt_obj_target.x;
        deltaZ2 = camera->lookAt_obj_target.z;

        deltaX2 = camera->targetPos.x;
        deltaZ = camera->targetPos.z;

        camera->currentBoomYaw = camera->auxPitch;
        camera->currentBoomLength = camera->lookAt_dist * 100 / D_8009A5EC;
        camera->currentYOffset = camera->auxBoomPitch * 20 / D_8009A5EC;

        f20 = atan2(deltaX, deltaZ2, deltaX2, deltaZ);
        if ((dist2D(deltaX, deltaZ2, deltaX2, deltaZ) < camera->auxBoomLength * 100 / D_8009A5EC)) {
            f20 = camera->trueRotation.x;
            camera->trueRotation.x = f20;
        } else {
            camera->trueRotation.x = f20;
        }
        camera->trueRotation.y = f20;

        camera->lookAt_obj.x = camera->lookAt_obj_target.x;
        camera->lookAt_obj.y = camera->lookAt_obj_target.y + camera->currentYOffset;
        camera->lookAt_obj.z = camera->lookAt_obj_target.z;

        boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
        sinBoom = sin_rad(boomYaw);

        deltaX = 0.0f;
        deltaY = 0.0f;
        new_var2 = -deltaY;
        cosBoom = cos_rad(boomYaw);
        boomYaw = new_var2;
        deltaZ = camera->currentBoomLength;

        deltaX2 = deltaX;
        deltaY2 = new_var2;
        deltaZ2 = deltaZ;

        deltaX = deltaX2;
        deltaY = cosBoom * -deltaY2 + deltaZ2 * sinBoom;
        deltaZ = sinBoom * deltaY2 + deltaZ2 * cosBoom;

        boomYaw = DEG_TO_RAD(f20);
        deltaZ2 = deltaZ;
        sinBoom = sin_rad(boomYaw);
        cosBoom = cos_rad(boomYaw);

        deltaX2 = cosBoom * deltaX - deltaZ * sinBoom;
        deltaY2 = deltaY;
        deltaZ = sinBoom * deltaX + deltaZ * cosBoom;

        camera->lookAt_eye.x = camera->lookAt_obj.x + deltaX2;
        camera->lookAt_eye.y = camera->lookAt_obj.y + deltaY2;
        camera->lookAt_eye.z = camera->lookAt_obj.z + deltaZ;
    }
    tmp1 = camera->lookAt_obj_target.y;

    x3 = camera->lookAt_obj_target.x;
    y3 = tmp1;
    z3 = camera->lookAt_obj_target.z;

    camera->currentBoomYaw = camera->auxPitch;
    camera->currentBoomLength = camera->lookAt_dist * 100 / D_8009A5EC;
    camera->currentYOffset = camera->auxBoomPitch * 20 / D_8009A5EC;

    y3 += camera->currentYOffset;

    x3 -= camera->lookAt_obj.x;
    y3 -= camera->lookAt_obj.y;
    z3 -= camera->lookAt_obj.z;

    deltaX = camera->lookAt_obj_target.x;
    deltaY = camera->lookAt_obj_target.y;
    deltaZ2 = camera->lookAt_obj_target.z;

    deltaX2 = camera->targetPos.x;
    deltaY2 = camera->targetPos.y;
    deltaZ = camera->targetPos.z;

    camera->lookAt_obj.x += x3 * 0.5f;
    camera->lookAt_obj.y += y3 / 10.0f;
    camera->lookAt_obj.z += z3 * 0.5f;

    f20 = atan2(deltaX, deltaZ2, deltaX2, deltaZ);
    if ((dist2D(deltaX, deltaZ2, deltaX2, deltaZ) < camera->auxBoomLength * 100 / D_8009A5EC)) {
        f20 = camera->trueRotation.x;
    } else {
        camera->trueRotation.x = f20;
    }
    camera->trueRotation.y -= get_clamped_angle_diff(f20, camera->trueRotation.y) / 10.0f;
    f20 = camera->trueRotation.y;

    boomYaw = DEG_TO_RAD(camera->currentBoomYaw);
    sinBoom = sin_rad(boomYaw);
    cosBoom = cos_rad(boomYaw);

    deltaX = 0.0f;
    deltaY = 0.0f;
    deltaZ = camera->currentBoomLength;

    deltaX2 = deltaX;
    deltaY2 = -deltaY;
    deltaZ2 = deltaZ;

    deltaX = deltaX2;
    deltaY = -deltaY2;
    deltaY = (cosBoom * deltaY) + (deltaZ2 * sinBoom);
    deltaZ = sinBoom * deltaY2 + deltaZ2 * cosBoom;
    deltaY2 = deltaY;

    boomYaw = DEG_TO_RAD((f20));
    deltaZ2 = deltaZ;
    sinBoom = sin_rad(boomYaw);
    cosBoom = cos_rad(boomYaw);

    deltaX2 = cosBoom * deltaX - deltaZ * sinBoom;
    deltaZ = sinBoom * deltaX + deltaZ * cosBoom;

    camera->lookAt_eye.x = camera->lookAt_obj.x + deltaX2;
    camera->lookAt_eye.y = camera->lookAt_obj.y + deltaY2;
    camera->lookAt_eye.z = camera->lookAt_obj.z + deltaZ;

    camera->currentYaw = atan2(camera->lookAt_eye.x, camera->lookAt_eye.z, camera->lookAt_obj.x, camera->lookAt_obj.z);

    deltaX = camera->lookAt_obj.x - camera->lookAt_eye.x;
    deltaY = camera->lookAt_obj.y - camera->lookAt_eye.y;
    deltaZ2 = camera->lookAt_obj.z - camera->lookAt_eye.z;

    camera->currentBlendedYawNegated = -atan2(0.0f, 0.0f, deltaX, deltaZ2);
    camera->currentPitch = atan2(0.0f, 0.0f, deltaY, -sqrtf((deltaX * deltaX) + (deltaZ2 * deltaZ2)));
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel au_pull_fx
/* 34710 80059310 27BDFF98 */  addiu     $sp, $sp, -0x68
/* 34714 80059314 AFB00030 */  sw        $s0, 0x30($sp)
/* 34718 80059318 00A0802D */  daddu     $s0, $a1, $zero
/* 3471C 8005931C AFB10034 */  sw        $s1, 0x34($sp)
/* 34720 80059320 00C0882D */  daddu     $s1, $a2, $zero
/* 34724 80059324 AFB60048 */  sw        $s6, 0x48($sp)
/* 34728 80059328 24F60170 */  addiu     $s6, $a3, 0x170
/* 3472C 8005932C 32220FFF */  andi      $v0, $s1, 0xFFF
/* 34730 80059330 3C030617 */  lui       $v1, (0x6170000 >> 16)
/* 34734 80059334 00431025 */  or        $v0, $v0, $v1
/* 34738 80059338 AFBF0054 */  sw        $ra, 0x54($sp)
/* 3473C 8005933C AFBE0050 */  sw        $fp, 0x50($sp)
/* 34740 80059340 AFB7004C */  sw        $s7, 0x4C($sp)
/* 34744 80059344 AFB50044 */  sw        $s5, 0x44($sp)
/* 34748 80059348 AFB40040 */  sw        $s4, 0x40($sp)
/* 3474C 8005934C AFB3003C */  sw        $s3, 0x3C($sp)
/* 34750 80059350 AFB20038 */  sw        $s2, 0x38($sp)
/* 34754 80059354 F7B60060 */  sdc1      $f22, 0x60($sp)
/* 34758 80059358 F7B40058 */  sdc1      $f20, 0x58($sp)
/* 3475C 8005935C AFA40068 */  sw        $a0, 0x68($sp)
/* 34760 80059360 A7A70026 */  sh        $a3, 0x26($sp)
/* 34764 80059364 A7A0001E */  sh        $zero, 0x1E($sp)
/* 34768 80059368 AE020000 */  sw        $v0, 0x0($s0)
/* 3476C 8005936C 8FA80068 */  lw        $t0, 0x68($sp)
/* 34770 80059370 26120008 */  addiu     $s2, $s0, 0x8
/* 34774 80059374 8D040004 */  lw        $a0, 0x4($t0)
/* 34778 80059378 0C0187A4 */  jal       osVirtualToPhysical
/* 3477C 8005937C 24F302E0 */   addiu    $s3, $a3, 0x2E0
/* 34780 80059380 0240202D */  daddu     $a0, $s2, $zero
/* 34784 80059384 3C0300FF */  lui       $v1, (0xFFFFFF >> 16)
/* 34788 80059388 3463FFFF */  ori       $v1, $v1, (0xFFFFFF & 0xFFFF)
/* 3478C 8005938C AE020004 */  sw        $v0, 0x4($s0)
/* 34790 80059390 00111400 */  sll       $v0, $s1, 16
/* 34794 80059394 00021403 */  sra       $v0, $v0, 16
/* 34798 80059398 00431024 */  and       $v0, $v0, $v1
/* 3479C 8005939C 3C030200 */  lui       $v1, (0x2000000 >> 16)
/* 347A0 800593A0 00431025 */  or        $v0, $v0, $v1
/* 347A4 800593A4 AC820000 */  sw        $v0, 0x0($a0)
/* 347A8 800593A8 24020170 */  addiu     $v0, $zero, 0x170
/* 347AC 800593AC AC820004 */  sw        $v0, 0x4($a0)
/* 347B0 800593B0 8FA80068 */  lw        $t0, 0x68($sp)
/* 347B4 800593B4 0000A02D */  daddu     $s4, $zero, $zero
/* 347B8 800593B8 91020010 */  lbu       $v0, 0x10($t0)
/* 347BC 800593BC 26520008 */  addiu     $s2, $s2, 0x8
/* 347C0 800593C0 1040011D */  beqz      $v0, .L80059838
/* 347C4 800593C4 A7B10028 */   sh       $s1, 0x28($sp)
/* 347C8 800593C8 00131400 */  sll       $v0, $s3, 16
/* 347CC 800593CC 3C014700 */  lui       $at, (0x47000000 >> 16)
/* 347D0 800593D0 4481B000 */  mtc1      $at, $f22
/* 347D4 800593D4 00021403 */  sra       $v0, $v0, 16
/* 347D8 800593D8 AFA2002C */  sw        $v0, 0x2C($sp)
.L800593DC:
/* 347DC 800593DC 97A8001E */  lhu       $t0, 0x1E($sp)
/* 347E0 800593E0 00081400 */  sll       $v0, $t0, 16
/* 347E4 800593E4 00021403 */  sra       $v0, $v0, 16
/* 347E8 800593E8 00021840 */  sll       $v1, $v0, 1
/* 347EC 800593EC 00621821 */  addu      $v1, $v1, $v0
/* 347F0 800593F0 8FA80068 */  lw        $t0, 0x68($sp)
/* 347F4 800593F4 00031900 */  sll       $v1, $v1, 4
/* 347F8 800593F8 8D02000C */  lw        $v0, 0xC($t0)
/* 347FC 800593FC 8D040004 */  lw        $a0, 0x4($t0)
/* 34800 80059400 00439821 */  addu      $s3, $v0, $v1
/* 34804 80059404 8E620000 */  lw        $v0, 0x0($s3)
/* 34808 80059408 8D030000 */  lw        $v1, 0x0($t0)
/* 3480C 8005940C 00021040 */  sll       $v0, $v0, 1
/* 34810 80059410 0082B823 */  subu      $s7, $a0, $v0
/* 34814 80059414 02E3102B */  sltu      $v0, $s7, $v1
/* 34818 80059418 10400004 */  beqz      $v0, .L8005942C
/* 3481C 8005941C 00000000 */   nop
/* 34820 80059420 8D020008 */  lw        $v0, 0x8($t0)
/* 34824 80059424 00021040 */  sll       $v0, $v0, 1
/* 34828 80059428 02E2B821 */  addu      $s7, $s7, $v0
.L8005942C:
/* 3482C 8005942C 8E620004 */  lw        $v0, 0x4($s3)
/* 34830 80059430 00021040 */  sll       $v0, $v0, 1
/* 34834 80059434 0082F023 */  subu      $fp, $a0, $v0
/* 34838 80059438 03C3102B */  sltu      $v0, $fp, $v1
/* 3483C 8005943C 10400005 */  beqz      $v0, .L80059454
/* 34840 80059440 00000000 */   nop
/* 34844 80059444 8FA80068 */  lw        $t0, 0x68($sp)
/* 34848 80059448 8D020008 */  lw        $v0, 0x8($t0)
/* 3484C 8005944C 00021040 */  sll       $v0, $v0, 1
/* 34850 80059450 03C2F021 */  addu      $fp, $fp, $v0
.L80059454:
/* 34854 80059454 16F40005 */  bne       $s7, $s4, .L8005946C
/* 34858 80059458 0240802D */   daddu    $s0, $s2, $zero
/* 3485C 8005945C 02C0102D */  daddu     $v0, $s6, $zero
/* 34860 80059460 97B60026 */  lhu       $s6, 0x26($sp)
/* 34864 80059464 08016524 */  j         .L80059490
/* 34868 80059468 A7A20026 */   sh       $v0, 0x26($sp)
.L8005946C:
/* 3486C 8005946C 26520008 */  addiu     $s2, $s2, 0x8
/* 34870 80059470 02E0202D */  daddu     $a0, $s7, $zero
/* 34874 80059474 97A80026 */  lhu       $t0, 0x26($sp)
/* 34878 80059478 3C030417 */  lui       $v1, (0x4170000 >> 16)
/* 3487C 8005947C 31020FFF */  andi      $v0, $t0, 0xFFF
/* 34880 80059480 00431025 */  or        $v0, $v0, $v1
/* 34884 80059484 0C0187A4 */  jal       osVirtualToPhysical
/* 34888 80059488 AE020000 */   sw       $v0, 0x0($s0)
/* 3488C 8005948C AE020004 */  sw        $v0, 0x4($s0)
.L80059490:
/* 34890 80059490 8E620028 */  lw        $v0, 0x28($s3)
/* 34894 80059494 10400068 */  beqz      $v0, .L80059638
/* 34898 80059498 0260202D */   daddu    $a0, $s3, $zero
/* 3489C 8005949C 8E700004 */  lw        $s0, 0x4($s3)
/* 348A0 800594A0 8E620000 */  lw        $v0, 0x0($s3)
/* 348A4 800594A4 240500B8 */  addiu     $a1, $zero, 0xB8
/* 348A8 800594A8 0C0166F5 */  jal       func_80059BD4
/* 348AC 800594AC 02028023 */   subu     $s0, $s0, $v0
/* 348B0 800594B0 44901000 */  mtc1      $s0, $f2
/* 348B4 800594B4 00000000 */  nop
/* 348B8 800594B8 468010A0 */  cvt.s.w   $f2, $f2
/* 348BC 800594BC 46020103 */  div.s     $f4, $f0, $f2
/* 348C0 800594C0 46162002 */  mul.s     $f0, $f4, $f22
/* 348C4 800594C4 00000000 */  nop
/* 348C8 800594C8 4600018D */  trunc.w.s $f6, $f0
/* 348CC 800594CC 44023000 */  mfc1      $v0, $f6
/* 348D0 800594D0 3C013800 */  lui       $at, (0x38000000 >> 16)
/* 348D4 800594D4 44810000 */  mtc1      $at, $f0
/* 348D8 800594D8 44822000 */  mtc1      $v0, $f4
/* 348DC 800594DC 00000000 */  nop
/* 348E0 800594E0 46802120 */  cvt.s.w   $f4, $f4
/* 348E4 800594E4 46002102 */  mul.s     $f4, $f4, $f0
/* 348E8 800594E8 00000000 */  nop
/* 348EC 800594EC 3C013FF0 */  lui       $at, (0x3FF00000 >> 16)
/* 348F0 800594F0 44811800 */  mtc1      $at, $f3
/* 348F4 800594F4 44801000 */  mtc1      $zero, $f2
/* 348F8 800594F8 46002021 */  cvt.d.s   $f0, $f4
/* 348FC 800594FC 46201081 */  sub.d     $f2, $f2, $f0
/* 34900 80059500 3C014338 */  lui       $at, (0x43380000 >> 16)
/* 34904 80059504 44812000 */  mtc1      $at, $f4
/* 34908 80059508 46201520 */  cvt.s.d   $f20, $f2
/* 3490C 8005950C 4604A102 */  mul.s     $f4, $f20, $f4
/* 34910 80059510 00000000 */  nop
/* 34914 80059514 8E620028 */  lw        $v0, 0x28($s3)
/* 34918 80059518 C4400008 */  lwc1      $f0, 0x8($v0)
/* 3491C 8005951C 46040000 */  add.s     $f0, $f0, $f4
/* 34920 80059520 4600018D */  trunc.w.s $f6, $f0
/* 34924 80059524 44143000 */  mfc1      $s4, $f6
/* 34928 80059528 00000000 */  nop
/* 3492C 8005952C 44941000 */  mtc1      $s4, $f2
/* 34930 80059530 00000000 */  nop
/* 34934 80059534 468010A0 */  cvt.s.w   $f2, $f2
/* 34938 80059538 46020001 */  sub.s     $f0, $f0, $f2
/* 3493C 8005953C E4400008 */  swc1      $f0, 0x8($v0)
/* 34940 80059540 8E630018 */  lw        $v1, 0x18($s3)
/* 34944 80059544 8E620004 */  lw        $v0, 0x4($s3)
/* 34948 80059548 8FA80068 */  lw        $t0, 0x68($sp)
/* 3494C 8005954C 00621823 */  subu      $v1, $v1, $v0
/* 34950 80059550 8D020004 */  lw        $v0, 0x4($t0)
/* 34954 80059554 00031840 */  sll       $v1, $v1, 1
/* 34958 80059558 00432821 */  addu      $a1, $v0, $v1
/* 3495C 8005955C 30A20007 */  andi      $v0, $a1, 0x7
/* 34960 80059560 00021843 */  sra       $v1, $v0, 1
/* 34964 80059564 0003A840 */  sll       $s5, $v1, 1
/* 34968 80059568 8D020000 */  lw        $v0, 0x0($t0)
/* 3496C 8005956C 00B52823 */  subu      $a1, $a1, $s5
/* 34970 80059570 00A2102B */  sltu      $v0, $a1, $v0
/* 34974 80059574 10400004 */  beqz      $v0, .L80059588
/* 34978 80059578 00000000 */   nop
/* 3497C 8005957C 8D020008 */  lw        $v0, 0x8($t0)
/* 34980 80059580 00021040 */  sll       $v0, $v0, 1
/* 34984 80059584 00A22821 */  addu      $a1, $a1, $v0
.L80059588:
/* 34988 80059588 8FA40068 */  lw        $a0, 0x68($sp)
/* 3498C 8005958C 8FA6002C */  lw        $a2, 0x2C($sp)
/* 34990 80059590 02833821 */  addu      $a3, $s4, $v1
/* 34994 80059594 0C0166AE */  jal       _saveBuffer
/* 34998 80059598 AFB20010 */   sw       $s2, 0x10($sp)
/* 3499C 8005959C 0040902D */  daddu     $s2, $v0, $zero
/* 349A0 800595A0 4616A002 */  mul.s     $f0, $f20, $f22
/* 349A4 800595A4 00000000 */  nop
/* 349A8 800595A8 00168C00 */  sll       $s1, $s6, 16
/* 349AC 800595AC 8E630028 */  lw        $v1, 0x28($s3)
/* 349B0 800595B0 8C640000 */  lw        $a0, 0x0($v1)
/* 349B4 800595B4 4600018D */  trunc.w.s $f6, $f0
/* 349B8 800595B8 44103000 */  mfc1      $s0, $f6
/* 349BC 800595BC 0C0187A4 */  jal       osVirtualToPhysical
/* 349C0 800595C0 00118E03 */   sra      $s1, $s1, 24
/* 349C4 800595C4 3C0300FF */  lui       $v1, (0xFFFFFF >> 16)
/* 349C8 800595C8 3463FFFF */  ori       $v1, $v1, (0xFFFFFF & 0xFFFF)
/* 349CC 800595CC 0240202D */  daddu     $a0, $s2, $zero
/* 349D0 800595D0 00431024 */  and       $v0, $v0, $v1
/* 349D4 800595D4 3C030500 */  lui       $v1, (0x5000000 >> 16)
/* 349D8 800595D8 00431025 */  or        $v0, $v0, $v1
/* 349DC 800595DC 3210FFFF */  andi      $s0, $s0, 0xFFFF
/* 349E0 800595E0 00108380 */  sll       $s0, $s0, 14
/* 349E4 800595E4 32310003 */  andi      $s1, $s1, 0x3
/* 349E8 800595E8 AC820000 */  sw        $v0, 0x0($a0)
/* 349EC 800595EC 8E620028 */  lw        $v0, 0x28($s3)
/* 349F0 800595F0 8FA8002C */  lw        $t0, 0x2C($sp)
/* 349F4 800595F4 8C43000C */  lw        $v1, 0xC($v0)
/* 349F8 800595F8 01151021 */  addu      $v0, $t0, $s5
/* 349FC 800595FC 30420FFF */  andi      $v0, $v0, 0xFFF
/* 34A00 80059600 00021080 */  sll       $v0, $v0, 2
/* 34A04 80059604 00031F80 */  sll       $v1, $v1, 30
/* 34A08 80059608 00701825 */  or        $v1, $v1, $s0
/* 34A0C 8005960C 00621825 */  or        $v1, $v1, $v0
/* 34A10 80059610 00711825 */  or        $v1, $v1, $s1
/* 34A14 80059614 AC830004 */  sw        $v1, 0x4($a0)
/* 34A18 80059618 8E620028 */  lw        $v0, 0x28($s3)
/* 34A1C 8005961C AC40000C */  sw        $zero, 0xC($v0)
/* 34A20 80059620 8E620018 */  lw        $v0, 0x18($s3)
/* 34A24 80059624 26520008 */  addiu     $s2, $s2, 0x8
/* 34A28 80059628 2442FF48 */  addiu     $v0, $v0, -0xB8
/* 34A2C 8005962C 00541021 */  addu      $v0, $v0, $s4
/* 34A30 80059630 08016597 */  j         .L8005965C
/* 34A34 80059634 AE620018 */   sw       $v0, 0x18($s3)
.L80059638:
/* 34A38 80059638 0240802D */  daddu     $s0, $s2, $zero
/* 34A3C 8005963C 26520008 */  addiu     $s2, $s2, 0x8
/* 34A40 80059640 03C0202D */  daddu     $a0, $fp, $zero
/* 34A44 80059644 32C20FFF */  andi      $v0, $s6, 0xFFF
/* 34A48 80059648 3C030417 */  lui       $v1, (0x4170000 >> 16)
/* 34A4C 8005964C 00431025 */  or        $v0, $v0, $v1
/* 34A50 80059650 0C0187A4 */  jal       osVirtualToPhysical
/* 34A54 80059654 AE020000 */   sw       $v0, 0x0($s0)
/* 34A58 80059658 AE020004 */  sw        $v0, 0x4($s0)
.L8005965C:
/* 34A5C 8005965C 86620008 */  lh        $v0, 0x8($s3)
/* 34A60 80059660 10400018 */  beqz      $v0, .L800596C4
/* 34A64 80059664 0240282D */   daddu    $a1, $s2, $zero
/* 34A68 80059668 32C4FFFF */  andi      $a0, $s6, 0xFFFF
/* 34A6C 8005966C 97A80026 */  lhu       $t0, 0x26($sp)
/* 34A70 80059670 96630008 */  lhu       $v1, 0x8($s3)
/* 34A74 80059674 00081400 */  sll       $v0, $t0, 16
/* 34A78 80059678 00441025 */  or        $v0, $v0, $a0
/* 34A7C 8005967C 3C080C00 */  lui       $t0, (0xC000000 >> 16)
/* 34A80 80059680 00681825 */  or        $v1, $v1, $t0
/* 34A84 80059684 ACA20004 */  sw        $v0, 0x4($a1)
/* 34A88 80059688 ACA30000 */  sw        $v1, 0x0($a1)
/* 34A8C 8005968C 8E620028 */  lw        $v0, 0x28($s3)
/* 34A90 80059690 1440000C */  bnez      $v0, .L800596C4
/* 34A94 80059694 26520008 */   addiu    $s2, $s2, 0x8
/* 34A98 80059698 8E620020 */  lw        $v0, 0x20($s3)
/* 34A9C 8005969C 14400009 */  bnez      $v0, .L800596C4
/* 34AA0 800596A0 0240802D */   daddu    $s0, $s2, $zero
/* 34AA4 800596A4 26520008 */  addiu     $s2, $s2, 0x8
/* 34AA8 800596A8 03C0202D */  daddu     $a0, $fp, $zero
/* 34AAC 800596AC 32C20FFF */  andi      $v0, $s6, 0xFFF
/* 34AB0 800596B0 3C080617 */  lui       $t0, (0x6170000 >> 16)
/* 34AB4 800596B4 00481025 */  or        $v0, $v0, $t0
/* 34AB8 800596B8 0C0187A4 */  jal       osVirtualToPhysical
/* 34ABC 800596BC AE020000 */   sw       $v0, 0x0($s0)
/* 34AC0 800596C0 AE020004 */  sw        $v0, 0x4($s0)
.L800596C4:
/* 34AC4 800596C4 8662000A */  lh        $v0, 0xA($s3)
/* 34AC8 800596C8 10400014 */  beqz      $v0, .L8005971C
/* 34ACC 800596CC 0240302D */   daddu    $a2, $s2, $zero
/* 34AD0 800596D0 26520008 */  addiu     $s2, $s2, 0x8
/* 34AD4 800596D4 0240802D */  daddu     $s0, $s2, $zero
/* 34AD8 800596D8 26520008 */  addiu     $s2, $s2, 0x8
/* 34ADC 800596DC 00161400 */  sll       $v0, $s6, 16
/* 34AE0 800596E0 3C080C00 */  lui       $t0, (0xC000000 >> 16)
/* 34AE4 800596E4 97A50026 */  lhu       $a1, 0x26($sp)
/* 34AE8 800596E8 9663000A */  lhu       $v1, 0xA($s3)
/* 34AEC 800596EC 00451025 */  or        $v0, $v0, $a1
/* 34AF0 800596F0 00681825 */  or        $v1, $v1, $t0
/* 34AF4 800596F4 ACC20004 */  sw        $v0, 0x4($a2)
/* 34AF8 800596F8 ACC30000 */  sw        $v1, 0x0($a2)
/* 34AFC 800596FC 97A80026 */  lhu       $t0, 0x26($sp)
/* 34B00 80059700 02E0202D */  daddu     $a0, $s7, $zero
/* 34B04 80059704 31020FFF */  andi      $v0, $t0, 0xFFF
/* 34B08 80059708 3C080617 */  lui       $t0, (0x6170000 >> 16)
/* 34B0C 8005970C 00481025 */  or        $v0, $v0, $t0
/* 34B10 80059710 0C0187A4 */  jal       osVirtualToPhysical
/* 34B14 80059714 AE020000 */   sw       $v0, 0x0($s0)
/* 34B18 80059718 AE020004 */  sw        $v0, 0x4($s0)
.L8005971C:
/* 34B1C 8005971C 8E620020 */  lw        $v0, 0x20($s3)
/* 34B20 80059720 10400020 */  beqz      $v0, .L800597A4
/* 34B24 80059724 3C020B00 */   lui      $v0, (0xB000020 >> 16)
/* 34B28 80059728 34420020 */  ori       $v0, $v0, (0xB000020 & 0xFFFF)
/* 34B2C 8005972C 0240882D */  daddu     $s1, $s2, $zero
/* 34B30 80059730 00168400 */  sll       $s0, $s6, 16
/* 34B34 80059734 AE220000 */  sw        $v0, 0x0($s1)
/* 34B38 80059738 8E640020 */  lw        $a0, 0x20($s3)
/* 34B3C 8005973C 00108603 */  sra       $s0, $s0, 24
/* 34B40 80059740 0C0187A4 */  jal       osVirtualToPhysical
/* 34B44 80059744 24840008 */   addiu    $a0, $a0, 0x8
/* 34B48 80059748 26520008 */  addiu     $s2, $s2, 0x8
/* 34B4C 8005974C AE220004 */  sw        $v0, 0x4($s1)
/* 34B50 80059750 0240882D */  daddu     $s1, $s2, $zero
/* 34B54 80059754 8E620020 */  lw        $v0, 0x20($s3)
/* 34B58 80059758 3C030E00 */  lui       $v1, (0xE000000 >> 16)
/* 34B5C 8005975C 9044002F */  lbu       $a0, 0x2F($v0)
/* 34B60 80059760 94420002 */  lhu       $v0, 0x2($v0)
/* 34B64 80059764 00042400 */  sll       $a0, $a0, 16
/* 34B68 80059768 00431025 */  or        $v0, $v0, $v1
/* 34B6C 8005976C 00822025 */  or        $a0, $a0, $v0
/* 34B70 80059770 AE240000 */  sw        $a0, 0x0($s1)
/* 34B74 80059774 8E620020 */  lw        $v0, 0x20($s3)
/* 34B78 80059778 8C440028 */  lw        $a0, 0x28($v0)
/* 34B7C 8005977C 0C0187A4 */  jal       osVirtualToPhysical
/* 34B80 80059780 00108600 */   sll      $s0, $s0, 24
/* 34B84 80059784 3C0300FF */  lui       $v1, (0xFFFFFF >> 16)
/* 34B88 80059788 3463FFFF */  ori       $v1, $v1, (0xFFFFFF & 0xFFFF)
/* 34B8C 8005978C 00431024 */  and       $v0, $v0, $v1
/* 34B90 80059790 02028025 */  or        $s0, $s0, $v0
/* 34B94 80059794 AE300004 */  sw        $s0, 0x4($s1)
/* 34B98 80059798 8E620020 */  lw        $v0, 0x20($s3)
/* 34B9C 8005979C 26520008 */  addiu     $s2, $s2, 0x8
/* 34BA0 800597A0 AC40002C */  sw        $zero, 0x2C($v0)
.L800597A4:
/* 34BA4 800597A4 8E620028 */  lw        $v0, 0x28($s3)
/* 34BA8 800597A8 14400009 */  bnez      $v0, .L800597D0
/* 34BAC 800597AC 0240802D */   daddu    $s0, $s2, $zero
/* 34BB0 800597B0 26520008 */  addiu     $s2, $s2, 0x8
/* 34BB4 800597B4 03C0202D */  daddu     $a0, $fp, $zero
/* 34BB8 800597B8 32C20FFF */  andi      $v0, $s6, 0xFFF
/* 34BBC 800597BC 3C080617 */  lui       $t0, (0x6170000 >> 16)
/* 34BC0 800597C0 00481025 */  or        $v0, $v0, $t0
/* 34BC4 800597C4 0C0187A4 */  jal       osVirtualToPhysical
/* 34BC8 800597C8 AE020000 */   sw       $v0, 0x0($s0)
/* 34BCC 800597CC AE020004 */  sw        $v0, 0x4($s0)
.L800597D0:
/* 34BD0 800597D0 8662000C */  lh        $v0, 0xC($s3)
/* 34BD4 800597D4 1040000A */  beqz      $v0, .L80059800
/* 34BD8 800597D8 0240282D */   daddu    $a1, $s2, $zero
/* 34BDC 800597DC 26520008 */  addiu     $s2, $s2, 0x8
/* 34BE0 800597E0 00161400 */  sll       $v0, $s6, 16
/* 34BE4 800597E4 3C080C00 */  lui       $t0, (0xC000000 >> 16)
/* 34BE8 800597E8 97A40028 */  lhu       $a0, 0x28($sp)
/* 34BEC 800597EC 9663000C */  lhu       $v1, 0xC($s3)
/* 34BF0 800597F0 00441025 */  or        $v0, $v0, $a0
/* 34BF4 800597F4 00681825 */  or        $v1, $v1, $t0
/* 34BF8 800597F8 ACA20004 */  sw        $v0, 0x4($a1)
/* 34BFC 800597FC ACA30000 */  sw        $v1, 0x0($a1)
.L80059800:
/* 34C00 80059800 97A8001E */  lhu       $t0, 0x1E($sp)
/* 34C04 80059804 25030001 */  addiu     $v1, $t0, 0x1
/* 34C08 80059808 A7A3001E */  sh        $v1, 0x1E($sp)
/* 34C0C 8005980C 00031C00 */  sll       $v1, $v1, 16
/* 34C10 80059810 8FA80068 */  lw        $t0, 0x68($sp)
/* 34C14 80059814 8E620004 */  lw        $v0, 0x4($s3)
/* 34C18 80059818 8D040004 */  lw        $a0, 0x4($t0)
/* 34C1C 8005981C 00021040 */  sll       $v0, $v0, 1
/* 34C20 80059820 0082A021 */  addu      $s4, $a0, $v0
/* 34C24 80059824 91020010 */  lbu       $v0, 0x10($t0)
/* 34C28 80059828 00031C03 */  sra       $v1, $v1, 16
/* 34C2C 8005982C 0062182A */  slt       $v1, $v1, $v0
/* 34C30 80059830 1460FEEA */  bnez      $v1, .L800593DC
/* 34C34 80059834 00000000 */   nop
.L80059838:
/* 34C38 80059838 8FA80068 */  lw        $t0, 0x68($sp)
/* 34C3C 8005983C 8D030004 */  lw        $v1, 0x4($t0)
/* 34C40 80059840 8D020008 */  lw        $v0, 0x8($t0)
/* 34C44 80059844 8D040000 */  lw        $a0, 0x0($t0)
/* 34C48 80059848 24630170 */  addiu     $v1, $v1, 0x170
/* 34C4C 8005984C 00021040 */  sll       $v0, $v0, 1
/* 34C50 80059850 00821021 */  addu      $v0, $a0, $v0
/* 34C54 80059854 AD030004 */  sw        $v1, 0x4($t0)
/* 34C58 80059858 0062182B */  sltu      $v1, $v1, $v0
/* 34C5C 8005985C 50600001 */  beql      $v1, $zero, .L80059864
/* 34C60 80059860 AD040004 */   sw       $a0, 0x4($t0)
.L80059864:
/* 34C64 80059864 0240102D */  daddu     $v0, $s2, $zero
/* 34C68 80059868 8FBF0054 */  lw        $ra, 0x54($sp)
/* 34C6C 8005986C 8FBE0050 */  lw        $fp, 0x50($sp)
/* 34C70 80059870 8FB7004C */  lw        $s7, 0x4C($sp)
/* 34C74 80059874 8FB60048 */  lw        $s6, 0x48($sp)
/* 34C78 80059878 8FB50044 */  lw        $s5, 0x44($sp)
/* 34C7C 8005987C 8FB40040 */  lw        $s4, 0x40($sp)
/* 34C80 80059880 8FB3003C */  lw        $s3, 0x3C($sp)
/* 34C84 80059884 8FB20038 */  lw        $s2, 0x38($sp)
/* 34C88 80059888 8FB10034 */  lw        $s1, 0x34($sp)
/* 34C8C 8005988C 8FB00030 */  lw        $s0, 0x30($sp)
/* 34C90 80059890 D7B60060 */  ldc1      $f22, 0x60($sp)
/* 34C94 80059894 D7B40058 */  ldc1      $f20, 0x58($sp)
/* 34C98 80059898 03E00008 */  jr        $ra
/* 34C9C 8005989C 27BD0068 */   addiu    $sp, $sp, 0x68

### DECOMPILED C INSTRUCTIONS:

Acmd* au_pull_fx(AuFX* fx, Acmd* ptr, s16 outputBuf, s16 arg3) {
    Acmd* cmdBufPos = ptr;
    s16 delayIdx;

    s16* inPtr;
    s16* outPtr;

    s16 buff1 = arg3 + N_AL_TEMP_0;
    s16 buff2 = arg3 + N_AL_TEMP_1;
    s16 rbuff = arg3 + N_AL_TEMP_2;
    s16* prevOutPtr = 0;
    s16 outputBufCopy = outputBuf;

    n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, outputBuf, osVirtualToPhysical(fx->input));
    aClearBuffer(cmdBufPos++, outputBuf, FIXED_SAMPLE<<1);

    for (delayIdx = 0; delayIdx < fx->delayCount; delayIdx++) {
        AuDelay* delay = &fx->delays[delayIdx];
        f32 fUnityPitch = UNITY_PITCH;

        inPtr = &fx->input[-delay->input];
        if (inPtr < fx->base) {
            inPtr += fx->length;
        }
        outPtr = &fx->input[-delay->output];
        if (outPtr < fx->base) {
            outPtr += fx->length;
        }
        if (inPtr == prevOutPtr) {
            SWAP16(buff1, buff2);
        } else {
            n_aLoadBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff1, osVirtualToPhysical(inPtr));
        }
        if (delay->resampler_28) {
            // modified _n_loadOutputBuffer
            s32 ratio;
            s32 length, count;
            f32 delta, fratio, fincount;
            s32 ramAlign;
            s16 tmp;
            s16* rsOutPtr;

            length = delay->output - delay->input;
            delta = func_80059BD4(delay, AUDIO_SAMPLES);
            delta /= length;
            delta = (s32)(delta * fUnityPitch);
            delta = delta / UNITY_PITCH;
            fratio = 1.0 - delta;
            fincount = delay->resampler_28->delta + (fratio * AUDIO_SAMPLES);
            count = (s32) fincount;
            delay->resampler_28->delta = fincount - count;

            rsOutPtr = &fx->input[-(delay->output - delay->rsdelta)];
            ramAlign = ((s32) rsOutPtr & 7) >> 1;

            rsOutPtr -= ramAlign;
            if (rsOutPtr < fx->base) {
                rsOutPtr += fx->length;
            }

            cmdBufPos = _saveBuffer(fx, rsOutPtr, rbuff, count + ramAlign, cmdBufPos);
            ratio = fratio * fUnityPitch;

            tmp = buff2 >> 8;
            n_aResample(cmdBufPos++, osVirtualToPhysical(delay->resampler_28->state),
                delay->resampler_28->first, ratio, rbuff + (ramAlign<<1), tmp);

            delay->resampler_28->first = 0;
            delay->rsdelta += count - AUDIO_SAMPLES;
        } else {
            n_aLoadBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff2, osVirtualToPhysical(outPtr));
        }
        if (delay->ffcoef) {
            aMix(cmdBufPos++, 0, (u16)delay->ffcoef, buff1, buff2);

            if (delay->resampler_28 == NULL && delay->lowpass_20 == NULL) {
                n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff2, osVirtualToPhysical(outPtr));
            }
        }
        if (delay->fbcoef) {
            aMix(cmdBufPos++, 0, (u16)delay->fbcoef, buff2, buff1);
            n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff1, osVirtualToPhysical(inPtr));
        }
        if (delay->lowpass_20 != NULL) {
            // modified _n_filterBuffer
            s16 tmp = buff2 >> 8;
            n_aLoadADPCM(cmdBufPos++, 32, osVirtualToPhysical(delay->lowpass_20->fccoef));
            n_aPoleFilter(cmdBufPos++, delay->lowpass_20->first, delay->lowpass_20->fgain, tmp, osVirtualToPhysical(delay->lowpass_20->fstate));
            delay->lowpass_20->first = 0;
        }
        if (!delay->resampler_28) {
            n_aSaveBuffer(cmdBufPos++, FIXED_SAMPLE<<1, buff2, osVirtualToPhysical(outPtr));
        }
        if (delay->gain) {
            aMix(cmdBufPos++, 0, (u16)delay->gain, buff2, outputBufCopy);
        }
        prevOutPtr = &fx->input[delay->output];
    }

    fx->input += AUDIO_SAMPLES;
    if (fx->input >= &fx->base[fx->length]) {
        fx->input = fx->base;
    }
    return cmdBufPos;
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel appendGfx_intro_logos
/* F7A4 800343A4 27BDFFE8 */  addiu     $sp, $sp, -0x18
/* F7A8 800343A8 3C05E200 */  lui       $a1, (0xE200001C >> 16)
/* F7AC 800343AC 34A5001C */  ori       $a1, $a1, (0xE200001C & 0xFFFF)
/* F7B0 800343B0 3C08FCFF */  lui       $t0, (0xFCFFFFFF >> 16)
/* F7B4 800343B4 3508FFFF */  ori       $t0, $t0, (0xFCFFFFFF & 0xFFFF)
/* F7B8 800343B8 3C07FFFC */  lui       $a3, (0xFFFCF87C >> 16)
/* F7BC 800343BC 34E7F87C */  ori       $a3, $a3, (0xFFFCF87C & 0xFFFF)
/* F7C0 800343C0 3C09E300 */  lui       $t1, (0xE3000A01 >> 16)
/* F7C4 800343C4 35290A01 */  ori       $t1, $t1, (0xE3000A01 & 0xFFFF)
/* F7C8 800343C8 3C0AE739 */  lui       $t2, (0xE739E739 >> 16)
/* F7CC 800343CC 354AE739 */  ori       $t2, $t2, (0xE739E739 & 0xFFFF)
/* F7D0 800343D0 3C0BF64F */  lui       $t3, (0xF64FC3BC >> 16)
/* F7D4 800343D4 3C04800A */  lui       $a0, %hi(gMainGfxPos)
/* F7D8 800343D8 2484A66C */  addiu     $a0, $a0, %lo(gMainGfxPos)
/* F7DC 800343DC 356BC3BC */  ori       $t3, $t3, (0xF64FC3BC & 0xFFFF)
/* F7E0 800343E0 AFB50014 */  sw        $s5, 0x14($sp)
/* F7E4 800343E4 AFB40010 */  sw        $s4, 0x10($sp)
/* F7E8 800343E8 AFB3000C */  sw        $s3, 0xC($sp)
/* F7EC 800343EC AFB20008 */  sw        $s2, 0x8($sp)
/* F7F0 800343F0 AFB10004 */  sw        $s1, 0x4($sp)
/* F7F4 800343F4 AFB00000 */  sw        $s0, 0x0($sp)
/* F7F8 800343F8 8C820000 */  lw        $v0, 0x0($a0)
/* F7FC 800343FC 3C06E700 */  lui       $a2, (0xE7000000 >> 16)
/* F800 80034400 0040182D */  daddu     $v1, $v0, $zero
/* F804 80034404 24420008 */  addiu     $v0, $v0, 0x8
/* F808 80034408 AC820000 */  sw        $v0, 0x0($a0)
/* F80C 8003440C AC660000 */  sw        $a2, 0x0($v1)
/* F810 80034410 AC600004 */  sw        $zero, 0x4($v1)
/* F814 80034414 24430008 */  addiu     $v1, $v0, 0x8
/* F818 80034418 AC830000 */  sw        $v1, 0x0($a0)
/* F81C 8003441C 24430010 */  addiu     $v1, $v0, 0x10
/* F820 80034420 AC450000 */  sw        $a1, 0x0($v0)
/* F824 80034424 AC400004 */  sw        $zero, 0x4($v0)
/* F828 80034428 AC830000 */  sw        $v1, 0x0($a0)
/* F82C 8003442C 24430018 */  addiu     $v1, $v0, 0x18
/* F830 80034430 AC480008 */  sw        $t0, 0x8($v0)
/* F834 80034434 AC47000C */  sw        $a3, 0xC($v0)
/* F838 80034438 AC830000 */  sw        $v1, 0x0($a0)
/* F83C 8003443C 3C030030 */  lui       $v1, (0x300000 >> 16)
/* F840 80034440 AC430014 */  sw        $v1, 0x14($v0)
/* F844 80034444 24430020 */  addiu     $v1, $v0, 0x20
/* F848 80034448 AC490010 */  sw        $t1, 0x10($v0)
/* F84C 8003444C AC830000 */  sw        $v1, 0x0($a0)
/* F850 80034450 3C03F700 */  lui       $v1, (0xF7000000 >> 16)
/* F854 80034454 AC430018 */  sw        $v1, 0x18($v0)
/* F858 80034458 24430028 */  addiu     $v1, $v0, 0x28
/* F85C 8003445C AC4A001C */  sw        $t2, 0x1C($v0)
/* F860 80034460 AC830000 */  sw        $v1, 0x0($a0)
/* F864 80034464 3C058007 */  lui       $a1, %hi(gGameStatusPtr)
/* F868 80034468 8CA5419C */  lw        $a1, %lo(gGameStatusPtr)($a1)
/* F86C 8003446C 24430030 */  addiu     $v1, $v0, 0x30
/* F870 80034470 AC4B0020 */  sw        $t3, 0x20($v0)
/* F874 80034474 AC400024 */  sw        $zero, 0x24($v0)
/* F878 80034478 AC830000 */  sw        $v1, 0x0($a0)
/* F87C 8003447C AC460028 */  sw        $a2, 0x28($v0)
/* F880 80034480 AC40002C */  sw        $zero, 0x2C($v0)
/* F884 80034484 80A300AC */  lb        $v1, 0xAC($a1)
/* F888 80034488 2C62000A */  sltiu     $v0, $v1, 0xA
/* F88C 8003448C 10400124 */  beqz      $v0, .L80034920
/* F890 80034490 00031080 */   sll      $v0, $v1, 2
/* F894 80034494 3C01800A */  lui       $at, %hi(jtbl_800982C0)
/* F898 80034498 00220821 */  addu      $at, $at, $v0
/* F89C 8003449C 8C2282C0 */  lw        $v0, %lo(jtbl_800982C0)($at)
/* F8A0 800344A0 00400008 */  jr        $v0
/* F8A4 800344A4 00000000 */   nop
glabel .L800344A8
/* F8A8 800344A8 0000502D */  daddu     $t2, $zero, $zero
/* F8AC 800344AC 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* F8B0 800344B0 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* F8B4 800344B4 0040482D */  daddu     $t1, $v0, $zero
/* F8B8 800344B8 3C19FD10 */  lui       $t9, (0xFD10007F >> 16)
/* F8BC 800344BC 3739007F */  ori       $t9, $t9, (0xFD10007F & 0xFFFF)
/* F8C0 800344C0 3C15800A */  lui       $s5, %hi(gLogosImage1)
/* F8C4 800344C4 26B50918 */  addiu     $s5, $s5, %lo(gLogosImage1)
/* F8C8 800344C8 3C0DF510 */  lui       $t5, (0xF5104000 >> 16)
/* F8CC 800344CC 35AD4000 */  ori       $t5, $t5, (0xF5104000 & 0xFFFF)
/* F8D0 800344D0 3C140700 */  lui       $s4, (0x7000000 >> 16)
/* F8D4 800344D4 3C13E600 */  lui       $s3, (0xE6000000 >> 16)
/* F8D8 800344D8 3C12F400 */  lui       $s2, (0xF4000000 >> 16)
/* F8DC 800344DC 3C18071F */  lui       $t8, (0x71FC03C >> 16)
/* F8E0 800344E0 3718C03C */  ori       $t8, $t8, (0x71FC03C & 0xFFFF)
/* F8E4 800344E4 3C0EE700 */  lui       $t6, (0xE7000000 >> 16)
/* F8E8 800344E8 3C11F200 */  lui       $s1, (0xF2000000 >> 16)
/* F8EC 800344EC 3C0F001F */  lui       $t7, (0x1FC03C >> 16)
/* F8F0 800344F0 35EFC03C */  ori       $t7, $t7, (0x1FC03C & 0xFFFF)
/* F8F4 800344F4 3C10E438 */  lui       $s0, (0xE4380000 >> 16)
/* F8F8 800344F8 240C0100 */  addiu     $t4, $zero, 0x100
/* F8FC 800344FC 8D220000 */  lw        $v0, 0x0($t1)
/* F900 80034500 240B0140 */  addiu     $t3, $zero, 0x140
/* F904 80034504 0040182D */  daddu     $v1, $v0, $zero
/* F908 80034508 24420008 */  addiu     $v0, $v0, 0x8
/* F90C 8003450C AD220000 */  sw        $v0, 0x0($t1)
/* F910 80034510 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* F914 80034514 AC620000 */  sw        $v0, 0x0($v1)
/* F918 80034518 3C028007 */  lui       $v0, %hi(D_80077908)
/* F91C 8003451C 24427908 */  addiu     $v0, $v0, %lo(D_80077908)
/* F920 80034520 AC620004 */  sw        $v0, 0x4($v1)
.L80034524:
/* F924 80034524 3C080400 */  lui       $t0, (0x4000400 >> 16)
/* F928 80034528 35080400 */  ori       $t0, $t0, (0x4000400 & 0xFFFF)
/* F92C 8003452C 31870FFF */  andi      $a3, $t4, 0xFFF
/* F930 80034530 258C0040 */  addiu     $t4, $t4, 0x40
/* F934 80034534 31660FFF */  andi      $a2, $t3, 0xFFF
/* F938 80034538 256B0040 */  addiu     $t3, $t3, 0x40
/* F93C 8003453C 000A2B00 */  sll       $a1, $t2, 12
/* F940 80034540 254A0001 */  addiu     $t2, $t2, 0x1
/* F944 80034544 00D03025 */  or        $a2, $a2, $s0
/* F948 80034548 8D230000 */  lw        $v1, 0x0($t1)
/* F94C 8003454C 8EA20000 */  lw        $v0, 0x0($s5)
/* F950 80034550 0060202D */  daddu     $a0, $v1, $zero
/* F954 80034554 24630008 */  addiu     $v1, $v1, 0x8
/* F958 80034558 00451021 */  addu      $v0, $v0, $a1
/* F95C 8003455C AD230000 */  sw        $v1, 0x0($t1)
/* F960 80034560 AC820004 */  sw        $v0, 0x4($a0)
/* F964 80034564 24620008 */  addiu     $v0, $v1, 0x8
/* F968 80034568 AC990000 */  sw        $t9, 0x0($a0)
/* F96C 8003456C AD220000 */  sw        $v0, 0x0($t1)
/* F970 80034570 24620010 */  addiu     $v0, $v1, 0x10
/* F974 80034574 AC6D0000 */  sw        $t5, 0x0($v1)
/* F978 80034578 AC740004 */  sw        $s4, 0x4($v1)
/* F97C 8003457C AD220000 */  sw        $v0, 0x0($t1)
/* F980 80034580 24620018 */  addiu     $v0, $v1, 0x18
/* F984 80034584 AC730008 */  sw        $s3, 0x8($v1)
/* F988 80034588 AC60000C */  sw        $zero, 0xC($v1)
/* F98C 8003458C AD220000 */  sw        $v0, 0x0($t1)
/* F990 80034590 24620020 */  addiu     $v0, $v1, 0x20
/* F994 80034594 AC720010 */  sw        $s2, 0x10($v1)
/* F998 80034598 AC780014 */  sw        $t8, 0x14($v1)
/* F99C 8003459C AD220000 */  sw        $v0, 0x0($t1)
/* F9A0 800345A0 24620028 */  addiu     $v0, $v1, 0x28
/* F9A4 800345A4 AC6E0018 */  sw        $t6, 0x18($v1)
/* F9A8 800345A8 AC60001C */  sw        $zero, 0x1C($v1)
/* F9AC 800345AC AD220000 */  sw        $v0, 0x0($t1)
/* F9B0 800345B0 24620030 */  addiu     $v0, $v1, 0x30
/* F9B4 800345B4 AC6D0020 */  sw        $t5, 0x20($v1)
/* F9B8 800345B8 AC600024 */  sw        $zero, 0x24($v1)
/* F9BC 800345BC AD220000 */  sw        $v0, 0x0($t1)
/* F9C0 800345C0 24620038 */  addiu     $v0, $v1, 0x38
/* F9C4 800345C4 AC710028 */  sw        $s1, 0x28($v1)
/* F9C8 800345C8 AC6F002C */  sw        $t7, 0x2C($v1)
/* F9CC 800345CC AD220000 */  sw        $v0, 0x0($t1)
/* F9D0 800345D0 3C020018 */  lui       $v0, (0x180000 >> 16)
/* F9D4 800345D4 00E23825 */  or        $a3, $a3, $v0
/* F9D8 800345D8 24620040 */  addiu     $v0, $v1, 0x40
/* F9DC 800345DC AC660030 */  sw        $a2, 0x30($v1)
/* F9E0 800345E0 AC670034 */  sw        $a3, 0x34($v1)
/* F9E4 800345E4 AD220000 */  sw        $v0, 0x0($t1)
/* F9E8 800345E8 3C02E100 */  lui       $v0, (0xE1000000 >> 16)
/* F9EC 800345EC AC620038 */  sw        $v0, 0x38($v1)
/* F9F0 800345F0 24620048 */  addiu     $v0, $v1, 0x48
/* F9F4 800345F4 AC60003C */  sw        $zero, 0x3C($v1)
/* F9F8 800345F8 AD220000 */  sw        $v0, 0x0($t1)
/* F9FC 800345FC 3C02F100 */  lui       $v0, (0xF1000000 >> 16)
/* FA00 80034600 AC620040 */  sw        $v0, 0x40($v1)
/* FA04 80034604 24620050 */  addiu     $v0, $v1, 0x50
/* FA08 80034608 AC680044 */  sw        $t0, 0x44($v1)
/* FA0C 8003460C AD220000 */  sw        $v0, 0x0($t1)
/* FA10 80034610 29420007 */  slti      $v0, $t2, 0x7
/* FA14 80034614 AC6E0048 */  sw        $t6, 0x48($v1)
/* FA18 80034618 1440FFC2 */  bnez      $v0, .L80034524
/* FA1C 8003461C AC60004C */   sw       $zero, 0x4C($v1)
/* FA20 80034620 0800D248 */  j         .L80034920
/* FA24 80034624 00000000 */   nop
glabel .L80034628
/* FA28 80034628 0000502D */  daddu     $t2, $zero, $zero
/* FA2C 8003462C 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* FA30 80034630 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* FA34 80034634 0040482D */  daddu     $t1, $v0, $zero
/* FA38 80034638 3C19FD10 */  lui       $t9, (0xFD1000FF >> 16)
/* FA3C 8003463C 373900FF */  ori       $t9, $t9, (0xFD1000FF & 0xFFFF)
/* FA40 80034640 3C15800A */  lui       $s5, %hi(gLogosImage2)
/* FA44 80034644 26B5091C */  addiu     $s5, $s5, %lo(gLogosImage2)
/* FA48 80034648 3C0DF510 */  lui       $t5, (0xF5108000 >> 16)
/* FA4C 8003464C 35AD8000 */  ori       $t5, $t5, (0xF5108000 & 0xFFFF)
/* FA50 80034650 3C140700 */  lui       $s4, (0x7000000 >> 16)
/* FA54 80034654 3C13E600 */  lui       $s3, (0xE6000000 >> 16)
/* FA58 80034658 3C12F400 */  lui       $s2, (0xF4000000 >> 16)
/* FA5C 8003465C 3C18073F */  lui       $t8, (0x73FC01C >> 16)
/* FA60 80034660 3718C01C */  ori       $t8, $t8, (0x73FC01C & 0xFFFF)
/* FA64 80034664 3C0EE700 */  lui       $t6, (0xE7000000 >> 16)
/* FA68 80034668 3C11F200 */  lui       $s1, (0xF2000000 >> 16)
/* FA6C 8003466C 3C0F003F */  lui       $t7, (0x3FC01C >> 16)
/* FA70 80034670 35EFC01C */  ori       $t7, $t7, (0x3FC01C & 0xFFFF)
/* FA74 80034674 3C10E448 */  lui       $s0, (0xE4480000 >> 16)
/* FA78 80034678 240C0164 */  addiu     $t4, $zero, 0x164
/* FA7C 8003467C 8D220000 */  lw        $v0, 0x0($t1)
/* FA80 80034680 240B0184 */  addiu     $t3, $zero, 0x184
/* FA84 80034684 0040182D */  daddu     $v1, $v0, $zero
/* FA88 80034688 24420008 */  addiu     $v0, $v0, 0x8
/* FA8C 8003468C AD220000 */  sw        $v0, 0x0($t1)
/* FA90 80034690 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* FA94 80034694 AC620000 */  sw        $v0, 0x0($v1)
/* FA98 80034698 3C028007 */  lui       $v0, %hi(D_80077908)
/* FA9C 8003469C 24427908 */  addiu     $v0, $v0, %lo(D_80077908)
/* FAA0 800346A0 AC620004 */  sw        $v0, 0x4($v1)
.L800346A4:
/* FAA4 800346A4 3C080400 */  lui       $t0, (0x4000400 >> 16)
/* FAA8 800346A8 35080400 */  ori       $t0, $t0, (0x4000400 & 0xFFFF)
/* FAAC 800346AC 31870FFF */  andi      $a3, $t4, 0xFFF
/* FAB0 800346B0 258C0020 */  addiu     $t4, $t4, 0x20
/* FAB4 800346B4 31660FFF */  andi      $a2, $t3, 0xFFF
/* FAB8 800346B8 256B0020 */  addiu     $t3, $t3, 0x20
/* FABC 800346BC 000A2B00 */  sll       $a1, $t2, 12
/* FAC0 800346C0 254A0001 */  addiu     $t2, $t2, 0x1
/* FAC4 800346C4 00D03025 */  or        $a2, $a2, $s0
/* FAC8 800346C8 8D230000 */  lw        $v1, 0x0($t1)
/* FACC 800346CC 8EA20000 */  lw        $v0, 0x0($s5)
/* FAD0 800346D0 0060202D */  daddu     $a0, $v1, $zero
/* FAD4 800346D4 24630008 */  addiu     $v1, $v1, 0x8
/* FAD8 800346D8 00451021 */  addu      $v0, $v0, $a1
/* FADC 800346DC AD230000 */  sw        $v1, 0x0($t1)
/* FAE0 800346E0 AC820004 */  sw        $v0, 0x4($a0)
/* FAE4 800346E4 24620008 */  addiu     $v0, $v1, 0x8
/* FAE8 800346E8 AC990000 */  sw        $t9, 0x0($a0)
/* FAEC 800346EC AD220000 */  sw        $v0, 0x0($t1)
/* FAF0 800346F0 24620010 */  addiu     $v0, $v1, 0x10
/* FAF4 800346F4 AC6D0000 */  sw        $t5, 0x0($v1)
/* FAF8 800346F8 AC740004 */  sw        $s4, 0x4($v1)
/* FAFC 800346FC AD220000 */  sw        $v0, 0x0($t1)
/* FB00 80034700 24620018 */  addiu     $v0, $v1, 0x18
/* FB04 80034704 AC730008 */  sw        $s3, 0x8($v1)
/* FB08 80034708 AC60000C */  sw        $zero, 0xC($v1)
/* FB0C 8003470C AD220000 */  sw        $v0, 0x0($t1)
/* FB10 80034710 24620020 */  addiu     $v0, $v1, 0x20
/* FB14 80034714 AC720010 */  sw        $s2, 0x10($v1)
/* FB18 80034718 AC780014 */  sw        $t8, 0x14($v1)
/* FB1C 8003471C AD220000 */  sw        $v0, 0x0($t1)
/* FB20 80034720 24620028 */  addiu     $v0, $v1, 0x28
/* FB24 80034724 AC6E0018 */  sw        $t6, 0x18($v1)
/* FB28 80034728 AC60001C */  sw        $zero, 0x1C($v1)
/* FB2C 8003472C AD220000 */  sw        $v0, 0x0($t1)
/* FB30 80034730 24620030 */  addiu     $v0, $v1, 0x30
/* FB34 80034734 AC6D0020 */  sw        $t5, 0x20($v1)
/* FB38 80034738 AC600024 */  sw        $zero, 0x24($v1)
/* FB3C 8003473C AD220000 */  sw        $v0, 0x0($t1)
/* FB40 80034740 24620038 */  addiu     $v0, $v1, 0x38
/* FB44 80034744 AC710028 */  sw        $s1, 0x28($v1)
/* FB48 80034748 AC6F002C */  sw        $t7, 0x2C($v1)
/* FB4C 8003474C AD220000 */  sw        $v0, 0x0($t1)
/* FB50 80034750 3C020008 */  lui       $v0, (0x80000 >> 16)
/* FB54 80034754 00E23825 */  or        $a3, $a3, $v0
/* FB58 80034758 24620040 */  addiu     $v0, $v1, 0x40
/* FB5C 8003475C AC660030 */  sw        $a2, 0x30($v1)
/* FB60 80034760 AC670034 */  sw        $a3, 0x34($v1)
/* FB64 80034764 AD220000 */  sw        $v0, 0x0($t1)
/* FB68 80034768 3C02E100 */  lui       $v0, (0xE1000000 >> 16)
/* FB6C 8003476C AC620038 */  sw        $v0, 0x38($v1)
/* FB70 80034770 24620048 */  addiu     $v0, $v1, 0x48
/* FB74 80034774 AC60003C */  sw        $zero, 0x3C($v1)
/* FB78 80034778 AD220000 */  sw        $v0, 0x0($t1)
/* FB7C 8003477C 3C02F100 */  lui       $v0, (0xF1000000 >> 16)
/* FB80 80034780 AC620040 */  sw        $v0, 0x40($v1)
/* FB84 80034784 24620050 */  addiu     $v0, $v1, 0x50
/* FB88 80034788 AC680044 */  sw        $t0, 0x44($v1)
/* FB8C 8003478C AD220000 */  sw        $v0, 0x0($t1)
/* FB90 80034790 29420006 */  slti      $v0, $t2, 0x6
/* FB94 80034794 AC6E0048 */  sw        $t6, 0x48($v1)
/* FB98 80034798 1440FFC2 */  bnez      $v0, .L800346A4
/* FB9C 8003479C AC60004C */   sw       $zero, 0x4C($v1)
/* FBA0 800347A0 0800D248 */  j         .L80034920
/* FBA4 800347A4 00000000 */   nop
glabel .L800347A8
/* FBA8 800347A8 0000502D */  daddu     $t2, $zero, $zero
/* FBAC 800347AC 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* FBB0 800347B0 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* FBB4 800347B4 0040482D */  daddu     $t1, $v0, $zero
/* FBB8 800347B8 3C19FD10 */  lui       $t9, (0xFD1000FF >> 16)
/* FBBC 800347BC 373900FF */  ori       $t9, $t9, (0xFD1000FF & 0xFFFF)
/* FBC0 800347C0 3C15800A */  lui       $s5, %hi(gLogosImage3)
/* FBC4 800347C4 26B50914 */  addiu     $s5, $s5, %lo(gLogosImage3)
/* FBC8 800347C8 3C0DF510 */  lui       $t5, (0xF5108000 >> 16)
/* FBCC 800347CC 35AD8000 */  ori       $t5, $t5, (0xF5108000 & 0xFFFF)
/* FBD0 800347D0 3C140700 */  lui       $s4, (0x7000000 >> 16)
/* FBD4 800347D4 3C13E600 */  lui       $s3, (0xE6000000 >> 16)
/* FBD8 800347D8 3C12F400 */  lui       $s2, (0xF4000000 >> 16)
/* FBDC 800347DC 3C18073F */  lui       $t8, (0x73FC01C >> 16)
/* FBE0 800347E0 3718C01C */  ori       $t8, $t8, (0x73FC01C & 0xFFFF)
/* FBE4 800347E4 3C0EE700 */  lui       $t6, (0xE7000000 >> 16)
/* FBE8 800347E8 3C11F200 */  lui       $s1, (0xF2000000 >> 16)
/* FBEC 800347EC 3C0F003F */  lui       $t7, (0x3FC01C >> 16)
/* FBF0 800347F0 35EFC01C */  ori       $t7, $t7, (0x3FC01C & 0xFFFF)
/* FBF4 800347F4 3C10E448 */  lui       $s0, (0xE4480000 >> 16)
/* FBF8 800347F8 240C00EC */  addiu     $t4, $zero, 0xEC
/* FBFC 800347FC 8D220000 */  lw        $v0, 0x0($t1)
/* FC00 80034800 240B010C */  addiu     $t3, $zero, 0x10C
/* FC04 80034804 0040182D */  daddu     $v1, $v0, $zero
/* FC08 80034808 24420008 */  addiu     $v0, $v0, 0x8
/* FC0C 8003480C AD220000 */  sw        $v0, 0x0($t1)
/* FC10 80034810 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* FC14 80034814 AC620000 */  sw        $v0, 0x0($v1)
/* FC18 80034818 3C028007 */  lui       $v0, %hi(D_80077908)
/* FC1C 8003481C 24427908 */  addiu     $v0, $v0, %lo(D_80077908)
/* FC20 80034820 AC620004 */  sw        $v0, 0x4($v1)
.L80034824:
/* FC24 80034824 3C080400 */  lui       $t0, (0x4000400 >> 16)
/* FC28 80034828 35080400 */  ori       $t0, $t0, (0x4000400 & 0xFFFF)
/* FC2C 8003482C 31870FFF */  andi      $a3, $t4, 0xFFF
/* FC30 80034830 258C0020 */  addiu     $t4, $t4, 0x20
/* FC34 80034834 31660FFF */  andi      $a2, $t3, 0xFFF
/* FC38 80034838 256B0020 */  addiu     $t3, $t3, 0x20
/* FC3C 8003483C 000A2B00 */  sll       $a1, $t2, 12
/* FC40 80034840 254A0001 */  addiu     $t2, $t2, 0x1
/* FC44 80034844 00D03025 */  or        $a2, $a2, $s0
/* FC48 80034848 8D230000 */  lw        $v1, 0x0($t1)
/* FC4C 8003484C 8EA20000 */  lw        $v0, 0x0($s5)
/* FC50 80034850 0060202D */  daddu     $a0, $v1, $zero
/* FC54 80034854 24630008 */  addiu     $v1, $v1, 0x8
/* FC58 80034858 00451021 */  addu      $v0, $v0, $a1
/* FC5C 8003485C AD230000 */  sw        $v1, 0x0($t1)
/* FC60 80034860 AC820004 */  sw        $v0, 0x4($a0)
/* FC64 80034864 24620008 */  addiu     $v0, $v1, 0x8
/* FC68 80034868 AC990000 */  sw        $t9, 0x0($a0)
/* FC6C 8003486C AD220000 */  sw        $v0, 0x0($t1)
/* FC70 80034870 24620010 */  addiu     $v0, $v1, 0x10
/* FC74 80034874 AC6D0000 */  sw        $t5, 0x0($v1)
/* FC78 80034878 AC740004 */  sw        $s4, 0x4($v1)
/* FC7C 8003487C AD220000 */  sw        $v0, 0x0($t1)
/* FC80 80034880 24620018 */  addiu     $v0, $v1, 0x18
/* FC84 80034884 AC730008 */  sw        $s3, 0x8($v1)
/* FC88 80034888 AC60000C */  sw        $zero, 0xC($v1)
/* FC8C 8003488C AD220000 */  sw        $v0, 0x0($t1)
/* FC90 80034890 24620020 */  addiu     $v0, $v1, 0x20
/* FC94 80034894 AC720010 */  sw        $s2, 0x10($v1)
/* FC98 80034898 AC780014 */  sw        $t8, 0x14($v1)
/* FC9C 8003489C AD220000 */  sw        $v0, 0x0($t1)
/* FCA0 800348A0 24620028 */  addiu     $v0, $v1, 0x28
/* FCA4 800348A4 AC6E0018 */  sw        $t6, 0x18($v1)
/* FCA8 800348A8 AC60001C */  sw        $zero, 0x1C($v1)
/* FCAC 800348AC AD220000 */  sw        $v0, 0x0($t1)
/* FCB0 800348B0 24620030 */  addiu     $v0, $v1, 0x30
/* FCB4 800348B4 AC6D0020 */  sw        $t5, 0x20($v1)
/* FCB8 800348B8 AC600024 */  sw        $zero, 0x24($v1)
/* FCBC 800348BC AD220000 */  sw        $v0, 0x0($t1)
/* FCC0 800348C0 24620038 */  addiu     $v0, $v1, 0x38
/* FCC4 800348C4 AC710028 */  sw        $s1, 0x28($v1)
/* FCC8 800348C8 AC6F002C */  sw        $t7, 0x2C($v1)
/* FCCC 800348CC AD220000 */  sw        $v0, 0x0($t1)
/* FCD0 800348D0 3C020008 */  lui       $v0, (0x80000 >> 16)
/* FCD4 800348D4 00E23825 */  or        $a3, $a3, $v0
/* FCD8 800348D8 24620040 */  addiu     $v0, $v1, 0x40
/* FCDC 800348DC AC660030 */  sw        $a2, 0x30($v1)
/* FCE0 800348E0 AC670034 */  sw        $a3, 0x34($v1)
/* FCE4 800348E4 AD220000 */  sw        $v0, 0x0($t1)
/* FCE8 800348E8 3C02E100 */  lui       $v0, (0xE1000000 >> 16)
/* FCEC 800348EC AC620038 */  sw        $v0, 0x38($v1)
/* FCF0 800348F0 24620048 */  addiu     $v0, $v1, 0x48
/* FCF4 800348F4 AC60003C */  sw        $zero, 0x3C($v1)
/* FCF8 800348F8 AD220000 */  sw        $v0, 0x0($t1)
/* FCFC 800348FC 3C02F100 */  lui       $v0, (0xF1000000 >> 16)
/* FD00 80034900 AC620040 */  sw        $v0, 0x40($v1)
/* FD04 80034904 24620050 */  addiu     $v0, $v1, 0x50
/* FD08 80034908 AC680044 */  sw        $t0, 0x44($v1)
/* FD0C 8003490C AD220000 */  sw        $v0, 0x0($t1)
/* FD10 80034910 2942000E */  slti      $v0, $t2, 0xE
/* FD14 80034914 AC6E0048 */  sw        $t6, 0x48($v1)
/* FD18 80034918 1440FFC2 */  bnez      $v0, .L80034824
/* FD1C 8003491C AC60004C */   sw       $zero, 0x4C($v1)
.L80034920:
/* FD20 80034920 8FB50014 */  lw        $s5, 0x14($sp)
/* FD24 80034924 8FB40010 */  lw        $s4, 0x10($sp)
/* FD28 80034928 8FB3000C */  lw        $s3, 0xC($sp)
/* FD2C 8003492C 8FB20008 */  lw        $s2, 0x8($sp)
/* FD30 80034930 8FB10004 */  lw        $s1, 0x4($sp)
/* FD34 80034934 8FB00000 */  lw        $s0, 0x0($sp)
/* FD38 80034938 03E00008 */  jr        $ra
/* FD3C 8003493C 27BD0018 */   addiu    $sp, $sp, 0x18

### DECOMPILED C INSTRUCTIONS:

void appendGfx_intro_logos(void) {
    s32 i;

    gDPPipeSync(gMainGfxPos++);
    gDPSetRenderMode(gMainGfxPos++, G_RM_NOOP, G_RM_NOOP2);
    gDPSetCombineMode(gMainGfxPos++, G_CC_DECALRGB, G_CC_DECALRGB);
    gDPSetCycleType(gMainGfxPos++, G_CYC_FILL);
    gDPSetFillColor(gMainGfxPos++, PACK_FILL_COLOR(224, 224, 224, 1));
    gDPFillRectangle(gMainGfxPos++, 0, 0, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1);
    gDPPipeSync(gMainGfxPos++);

    switch (gGameStatusPtr->introState) {
        case INTRO_STATE_0:
        case INTRO_STATE_1:
        case INTRO_STATE_2:
            gSPDisplayList(gMainGfxPos++, D_80077908);
            for (i = 0; i < 7; i++) {
                gDPLoadTextureTile(gMainGfxPos++, gLogosImage1 + i * 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 128, 112,
                                   0, 0, 127, 15, 0,
                                   G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
                gSPTextureRectangle(gMainGfxPos++, 96 * 4, (64 + i * 16) * 4, 224 * 4, (80 + i * 16) * 4, G_TX_RENDERTILE, 0, 0, 1024, 1024);
                gDPPipeSync(gMainGfxPos++);
            }
            break;
        case INTRO_STATE_3:
        case INTRO_STATE_4:
        case INTRO_STATE_5:
#if VERSION_JP
            break;
        case INTRO_STATE_6:
        case INTRO_STATE_7:
        case INTRO_STATE_8:
        case INTRO_STATE_9:
#endif
            gSPDisplayList(gMainGfxPos++, D_80077908);
            for (i = 0; i < 6; i++) {
                gDPLoadTextureTile(gMainGfxPos++, gLogosImage2 + i * 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 256, 48,
                                   0, 0, 255, 7, 0,
                                   G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
                gSPTextureRectangle(
                        gMainGfxPos++,
                        32 * 4, (LOGO_1_Y + i * 8) * 4,
                        288 * 4, (LOGO_1_Y + 8 + i * 8) * 4,
                        G_TX_RENDERTILE, 0, 0, 1024, 1024);
                gDPPipeSync(gMainGfxPos++);
            }
#if !VERSION_JP
            break;
        case INTRO_STATE_6:
        case INTRO_STATE_7:
        case INTRO_STATE_8:
        case INTRO_STATE_9:
            gSPDisplayList(gMainGfxPos++, D_80077908);
#endif
            for (i = 0; i < 14; i++) {
                gDPLoadTextureTile(gMainGfxPos++, gLogosImage3 + i * 0x1000, G_IM_FMT_RGBA, G_IM_SIZ_16b, 256, 112,
                                   0, 0, 255, 7, 0,
                                   G_TX_WRAP, G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
                gSPTextureRectangle(gMainGfxPos++,
                                    32 * 4, (LOGO_2_Y + i * 8) * 4,
                                    288 * 4, (LOGO_2_Y + 8 + i * 8) * 4,
                                    G_TX_RENDERTILE, 0, 0, 1024, 1024);
                gDPPipeSync(gMainGfxPos++);
            }
            break;
    }
}