### RAW ASSEMBLY INSTRUCTIONS:

glabel hieroglyphs_appendGfx
/* 3DC528 E00E2218 27BDFF18 */  addiu     $sp, $sp, -0xE8
/* 3DC52C E00E221C 0080302D */  daddu     $a2, $a0, $zero
/* 3DC530 E00E2220 3C07DB06 */  lui       $a3, (0xDB060024 >> 16)
/* 3DC534 E00E2224 34E70024 */  ori       $a3, $a3, (0xDB060024 & 0xFFFF)
/* 3DC538 E00E2228 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DC53C E00E222C AFB300BC */  sw        $s3, 0xBC($sp)
/* 3DC540 E00E2230 3C130001 */  lui       $s3, (0x11630 >> 16)
/* 3DC544 E00E2234 3C028007 */  lui       $v0, %hi(gMatrixListPos)
/* 3DC548 E00E2238 244241F0 */  addiu     $v0, $v0, %lo(gMatrixListPos)
/* 3DC54C E00E223C AFB700CC */  sw        $s7, 0xCC($sp)
/* 3DC550 E00E2240 0040B82D */  daddu     $s7, $v0, $zero
/* 3DC554 E00E2244 3C0F0001 */  lui       $t7, (0x11630 >> 16)
/* 3DC558 E00E2248 35EF1630 */  ori       $t7, $t7, (0x11630 & 0xFFFF)
/* 3DC55C E00E224C 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* 3DC560 E00E2250 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* 3DC564 E00E2254 AFB600C8 */  sw        $s6, 0xC8($sp)
/* 3DC568 E00E2258 0040B02D */  daddu     $s6, $v0, $zero
/* 3DC56C E00E225C AFBF00D4 */  sw        $ra, 0xD4($sp)
/* 3DC570 E00E2260 AFBE00D0 */  sw        $fp, 0xD0($sp)
/* 3DC574 E00E2264 AFB500C4 */  sw        $s5, 0xC4($sp)
/* 3DC578 E00E2268 AFB400C0 */  sw        $s4, 0xC0($sp)
/* 3DC57C E00E226C AFB200B8 */  sw        $s2, 0xB8($sp)
/* 3DC580 E00E2270 AFB100B4 */  sw        $s1, 0xB4($sp)
/* 3DC584 E00E2274 AFB000B0 */  sw        $s0, 0xB0($sp)
/* 3DC588 E00E2278 F7B600E0 */  sdc1      $f22, 0xE0($sp)
/* 3DC58C E00E227C F7B400D8 */  sdc1      $f20, 0xD8($sp)
/* 3DC590 E00E2280 AFAF00A8 */  sw        $t7, 0xA8($sp)
/* 3DC594 E00E2284 8EC50000 */  lw        $a1, 0x0($s6)
/* 3DC598 E00E2288 8CD5000C */  lw        $s5, 0xC($a2)
/* 3DC59C E00E228C 00A0182D */  daddu     $v1, $a1, $zero
/* 3DC5A0 E00E2290 24A50008 */  addiu     $a1, $a1, 0x8
/* 3DC5A4 E00E2294 AEC50000 */  sw        $a1, 0x0($s6)
/* 3DC5A8 E00E2298 8EAF0014 */  lw        $t7, 0x14($s5)
/* 3DC5AC E00E229C 36731630 */  ori       $s3, $s3, (0x11630 & 0xFFFF)
/* 3DC5B0 E00E22A0 AFAF00A0 */  sw        $t7, 0xA0($sp)
/* 3DC5B4 E00E22A4 8EB10024 */  lw        $s1, 0x24($s5)
/* 3DC5B8 E00E22A8 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 3DC5BC E00E22AC AC620000 */  sw        $v0, 0x0($v1)
/* 3DC5C0 E00E22B0 AC600004 */  sw        $zero, 0x4($v1)
/* 3DC5C4 E00E22B4 ACA70000 */  sw        $a3, 0x0($a1)
/* 3DC5C8 E00E22B8 8CC30010 */  lw        $v1, 0x10($a2)
/* 3DC5CC E00E22BC 24A20008 */  addiu     $v0, $a1, 0x8
/* 3DC5D0 E00E22C0 AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC5D4 E00E22C4 8C62001C */  lw        $v0, 0x1C($v1)
/* 3DC5D8 E00E22C8 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* 3DC5DC E00E22CC 00431021 */  addu      $v0, $v0, $v1
/* 3DC5E0 E00E22D0 3C03800B */  lui       $v1, %hi(gCameras)
/* 3DC5E4 E00E22D4 24631D80 */  addiu     $v1, $v1, %lo(gCameras)
/* 3DC5E8 E00E22D8 ACA20004 */  sw        $v0, 0x4($a1)
/* 3DC5EC E00E22DC 8EA50004 */  lw        $a1, 0x4($s5)
/* 3DC5F0 E00E22E0 8EA60008 */  lw        $a2, 0x8($s5)
/* 3DC5F4 E00E22E4 3C028007 */  lui       $v0, %hi(gCurrentCameraID)
/* 3DC5F8 E00E22E8 8C427410 */  lw        $v0, %lo(gCurrentCameraID)($v0)
/* 3DC5FC E00E22EC 8EA7000C */  lw        $a3, 0xC($s5)
/* 3DC600 E00E22F0 00028080 */  sll       $s0, $v0, 2
/* 3DC604 E00E22F4 02028021 */  addu      $s0, $s0, $v0
/* 3DC608 E00E22F8 00108080 */  sll       $s0, $s0, 2
/* 3DC60C E00E22FC 02028023 */  subu      $s0, $s0, $v0
/* 3DC610 E00E2300 001010C0 */  sll       $v0, $s0, 3
/* 3DC614 E00E2304 02028021 */  addu      $s0, $s0, $v0
/* 3DC618 E00E2308 001080C0 */  sll       $s0, $s0, 3
/* 3DC61C E00E230C 0C080108 */  jal       shim_guTranslateF
/* 3DC620 E00E2310 02038021 */   addu     $s0, $s0, $v1
/* 3DC624 E00E2314 27B20060 */  addiu     $s2, $sp, 0x60
/* 3DC628 E00E2318 8EA50038 */  lw        $a1, 0x38($s5)
/* 3DC62C E00E231C 0240202D */  daddu     $a0, $s2, $zero
/* 3DC630 E00E2320 00A0302D */  daddu     $a2, $a1, $zero
/* 3DC634 E00E2324 0C080110 */  jal       shim_guScaleF
/* 3DC638 E00E2328 00A0382D */   daddu    $a3, $a1, $zero
/* 3DC63C E00E232C 0240202D */  daddu     $a0, $s2, $zero
/* 3DC640 E00E2330 27A50020 */  addiu     $a1, $sp, 0x20
/* 3DC644 E00E2334 0C080114 */  jal       shim_guMtxCatF
/* 3DC648 E00E2338 00A0302D */   daddu    $a2, $a1, $zero
/* 3DC64C E00E233C 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DC650 E00E2340 96E50000 */  lhu       $a1, 0x0($s7)
/* 3DC654 E00E2344 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3DC658 E00E2348 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3DC65C E00E234C 00052980 */  sll       $a1, $a1, 6
/* 3DC660 E00E2350 00B32821 */  addu      $a1, $a1, $s3
/* 3DC664 E00E2354 0C080118 */  jal       shim_guMtxF2L
/* 3DC668 E00E2358 00452821 */   addu     $a1, $v0, $a1
/* 3DC66C E00E235C 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 3DC670 E00E2360 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 3DC674 E00E2364 3C0ADA38 */  lui       $t2, (0xDA380001 >> 16)
/* 3DC678 E00E2368 354A0001 */  ori       $t2, $t2, (0xDA380001 & 0xFFFF)
/* 3DC67C E00E236C 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DC680 E00E2370 323100FF */  andi      $s1, $s1, 0xFF
/* 3DC684 E00E2374 8EC80000 */  lw        $t0, 0x0($s6)
/* 3DC688 E00E2378 3C0541A0 */  lui       $a1, (0x41A00000 >> 16)
/* 3DC68C E00E237C 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 3DC690 E00E2380 4481B000 */  mtc1      $at, $f22
/* 3DC694 E00E2384 4480A000 */  mtc1      $zero, $f20
/* 3DC698 E00E2388 96E20000 */  lhu       $v0, 0x0($s7)
/* 3DC69C E00E238C 0100482D */  daddu     $t1, $t0, $zero
/* 3DC6A0 E00E2390 25080008 */  addiu     $t0, $t0, 0x8
/* 3DC6A4 E00E2394 AEC80000 */  sw        $t0, 0x0($s6)
/* 3DC6A8 E00E2398 AD230000 */  sw        $v1, 0x0($t1)
/* 3DC6AC E00E239C 24430001 */  addiu     $v1, $v0, 0x1
/* 3DC6B0 E00E23A0 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3DC6B4 E00E23A4 00021180 */  sll       $v0, $v0, 6
/* 3DC6B8 E00E23A8 4406B000 */  mfc1      $a2, $f22
/* 3DC6BC E00E23AC 00531021 */  addu      $v0, $v0, $s3
/* 3DC6C0 E00E23B0 A6E30000 */  sh        $v1, 0x0($s7)
/* 3DC6C4 E00E23B4 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 3DC6C8 E00E23B8 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 3DC6CC E00E23BC 4407A000 */  mfc1      $a3, $f20
/* 3DC6D0 E00E23C0 00621821 */  addu      $v1, $v1, $v0
/* 3DC6D4 E00E23C4 25020008 */  addiu     $v0, $t0, 0x8
/* 3DC6D8 E00E23C8 AD230004 */  sw        $v1, 0x4($t1)
/* 3DC6DC E00E23CC AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC6E0 E00E23D0 25020010 */  addiu     $v0, $t0, 0x10
/* 3DC6E4 E00E23D4 AD0A0000 */  sw        $t2, 0x0($t0)
/* 3DC6E8 E00E23D8 AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC6EC E00E23DC 8E030204 */  lw        $v1, 0x204($s0)
/* 3DC6F0 E00E23E0 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 3DC6F4 E00E23E4 AD020008 */  sw        $v0, 0x8($t0)
/* 3DC6F8 E00E23E8 AD030004 */  sw        $v1, 0x4($t0)
/* 3DC6FC E00E23EC 92A2001B */  lbu       $v0, 0x1B($s5)
/* 3DC700 E00E23F0 92A9001F */  lbu       $t1, 0x1F($s5)
/* 3DC704 E00E23F4 92AA0023 */  lbu       $t2, 0x23($s5)
/* 3DC708 E00E23F8 25030018 */  addiu     $v1, $t0, 0x18
/* 3DC70C E00E23FC AEC30000 */  sw        $v1, 0x0($s6)
/* 3DC710 E00E2400 3C03FB00 */  lui       $v1, (0xFB000000 >> 16)
/* 3DC714 E00E2404 AD030010 */  sw        $v1, 0x10($t0)
/* 3DC718 E00E2408 00021600 */  sll       $v0, $v0, 24
/* 3DC71C E00E240C 00094C00 */  sll       $t1, $t1, 16
/* 3DC720 E00E2410 00491025 */  or        $v0, $v0, $t1
/* 3DC724 E00E2414 000A5200 */  sll       $t2, $t2, 8
/* 3DC728 E00E2418 004A1025 */  or        $v0, $v0, $t2
/* 3DC72C E00E241C 00511025 */  or        $v0, $v0, $s1
/* 3DC730 E00E2420 AD02000C */  sw        $v0, 0xC($t0)
/* 3DC734 E00E2424 92A3002B */  lbu       $v1, 0x2B($s5)
/* 3DC738 E00E2428 92A9002F */  lbu       $t1, 0x2F($s5)
/* 3DC73C E00E242C 92AA0033 */  lbu       $t2, 0x33($s5)
/* 3DC740 E00E2430 92AB0037 */  lbu       $t3, 0x37($s5)
/* 3DC744 E00E2434 25020020 */  addiu     $v0, $t0, 0x20
/* 3DC748 E00E2438 AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC74C E00E243C 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3DC750 E00E2440 AD020018 */  sw        $v0, 0x18($t0)
/* 3DC754 E00E2444 25020030 */  addiu     $v0, $t0, 0x30
/* 3DC758 E00E2448 AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC75C E00E244C 00031E00 */  sll       $v1, $v1, 24
/* 3DC760 E00E2450 00094C00 */  sll       $t1, $t1, 16
/* 3DC764 E00E2454 00691825 */  or        $v1, $v1, $t1
/* 3DC768 E00E2458 000A5200 */  sll       $t2, $t2, 8
/* 3DC76C E00E245C 006A1825 */  or        $v1, $v1, $t2
/* 3DC770 E00E2460 006B1825 */  or        $v1, $v1, $t3
/* 3DC774 E00E2464 AD030014 */  sw        $v1, 0x14($t0)
/* 3DC778 E00E2468 3C09E00E */  lui       $t1, (0xE00E29F0 >> 16)
/* 3DC77C E00E246C 8D2929F0 */  lw        $t1, (0xE00E29F0 & 0xFFFF)($t1)
/* 3DC780 E00E2470 3C02DE01 */  lui       $v0, (0xDE010000 >> 16)
/* 3DC784 E00E2474 AD020020 */  sw        $v0, 0x20($t0)
/* 3DC788 E00E2478 250201C0 */  addiu     $v0, $t0, 0x1C0
/* 3DC78C E00E247C AD020024 */  sw        $v0, 0x24($t0)
/* 3DC790 E00E2480 8FAF00A0 */  lw        $t7, 0xA0($sp)
/* 3DC794 E00E2484 3C03F200 */  lui       $v1, (0xF2000000 >> 16)
/* 3DC798 E00E2488 000F80C0 */  sll       $s0, $t7, 3
/* 3DC79C E00E248C 32020FFF */  andi      $v0, $s0, 0xFFF
/* 3DC7A0 E00E2490 00021300 */  sll       $v0, $v0, 12
/* 3DC7A4 E00E2494 00431025 */  or        $v0, $v0, $v1
/* 3DC7A8 E00E2498 AD020028 */  sw        $v0, 0x28($t0)
/* 3DC7AC E00E249C 0200102D */  daddu     $v0, $s0, $zero
/* 3DC7B0 E00E24A0 244201FC */  addiu     $v0, $v0, 0x1FC
/* 3DC7B4 E00E24A4 30420FFF */  andi      $v0, $v0, 0xFFF
/* 3DC7B8 E00E24A8 00021300 */  sll       $v0, $v0, 12
/* 3DC7BC E00E24AC 3442007C */  ori       $v0, $v0, 0x7C
/* 3DC7C0 E00E24B0 AD02002C */  sw        $v0, 0x2C($t0)
/* 3DC7C4 E00E24B4 AD09001C */  sw        $t1, 0x1C($t0)
/* 3DC7C8 E00E24B8 25080028 */  addiu     $t0, $t0, 0x28
/* 3DC7CC E00E24BC E7B40010 */  swc1      $f20, 0x10($sp)
/* 3DC7D0 E00E24C0 0C080104 */  jal       shim_guRotateF
/* 3DC7D4 E00E24C4 AFA800A4 */   sw       $t0, 0xA4($sp)
/* 3DC7D8 E00E24C8 3C01E00E */  lui       $at, (0xE00E2A30 >> 16)
/* 3DC7DC E00E24CC D4202A30 */  ldc1      $f0, (0xE00E2A30 & 0xFFFF)($at)
/* 3DC7E0 E00E24D0 44906000 */  mtc1      $s0, $f12
/* 3DC7E4 E00E24D4 00000000 */  nop
/* 3DC7E8 E00E24D8 46806321 */  cvt.d.w   $f12, $f12
/* 3DC7EC E00E24DC 46206300 */  add.d     $f12, $f12, $f0
/* 3DC7F0 E00E24E0 0000A02D */  daddu     $s4, $zero, $zero
/* 3DC7F4 E00E24E4 0C080140 */  jal       shim_sin_deg
/* 3DC7F8 E00E24E8 46206320 */   cvt.s.d  $f12, $f12
/* 3DC7FC E00E24EC 3C01C1F0 */  lui       $at, (0xC1F00000 >> 16)
/* 3DC800 E00E24F0 44811000 */  mtc1      $at, $f2
/* 3DC804 E00E24F4 3C1E0900 */  lui       $fp, %hi(D_090010A8_40E338)
/* 3DC808 E00E24F8 27DE10A8 */  addiu     $fp, $fp, %lo(D_090010A8_40E338)
/* 3DC80C E00E24FC 46020002 */  mul.s     $f0, $f0, $f2
/* 3DC810 E00E2500 00000000 */  nop
/* 3DC814 E00E2504 24110002 */  addiu     $s1, $zero, 0x2
/* 3DC818 E00E2508 4405A000 */  mfc1      $a1, $f20
/* 3DC81C E00E250C 4407A000 */  mfc1      $a3, $f20
/* 3DC820 E00E2510 3C0140C0 */  lui       $at, (0x40C00000 >> 16)
/* 3DC824 E00E2514 44812000 */  mtc1      $at, $f4
/* 3DC828 E00E2518 44060000 */  mfc1      $a2, $f0
/* 3DC82C E00E251C 0240202D */  daddu     $a0, $s2, $zero
/* 3DC830 E00E2520 E7B60010 */  swc1      $f22, 0x10($sp)
/* 3DC834 E00E2524 E7B40018 */  swc1      $f20, 0x18($sp)
/* 3DC838 E00E2528 E7B4001C */  swc1      $f20, 0x1C($sp)
/* 3DC83C E00E252C 0C080180 */  jal       shim_guPositionF
/* 3DC840 E00E2530 E7A40014 */   swc1     $f4, 0x14($sp)
/* 3DC844 E00E2534 0240202D */  daddu     $a0, $s2, $zero
/* 3DC848 E00E2538 27A50020 */  addiu     $a1, $sp, 0x20
/* 3DC84C E00E253C 0C080114 */  jal       shim_guMtxCatF
/* 3DC850 E00E2540 00A0302D */   daddu    $a2, $a1, $zero
/* 3DC854 E00E2544 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DC858 E00E2548 96E50000 */  lhu       $a1, 0x0($s7)
/* 3DC85C E00E254C 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3DC860 E00E2550 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3DC864 E00E2554 00052980 */  sll       $a1, $a1, 6
/* 3DC868 E00E2558 00B32821 */  addu      $a1, $a1, $s3
/* 3DC86C E00E255C 0C080118 */  jal       shim_guMtxF2L
/* 3DC870 E00E2560 00452821 */   addu     $a1, $v0, $a1
/* 3DC874 E00E2564 8EC20000 */  lw        $v0, 0x0($s6)
/* 3DC878 E00E2568 0280802D */  daddu     $s0, $s4, $zero
/* 3DC87C E00E256C 0040202D */  daddu     $a0, $v0, $zero
/* 3DC880 E00E2570 24420008 */  addiu     $v0, $v0, 0x8
/* 3DC884 E00E2574 AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC888 E00E2578 96E20000 */  lhu       $v0, 0x0($s7)
/* 3DC88C E00E257C 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 3DC890 E00E2580 AC830000 */  sw        $v1, 0x0($a0)
/* 3DC894 E00E2584 24430001 */  addiu     $v1, $v0, 0x1
/* 3DC898 E00E2588 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3DC89C E00E258C 00021180 */  sll       $v0, $v0, 6
/* 3DC8A0 E00E2590 A6E30000 */  sh        $v1, 0x0($s7)
/* 3DC8A4 E00E2594 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 3DC8A8 E00E2598 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 3DC8AC E00E259C 00531021 */  addu      $v0, $v0, $s3
/* 3DC8B0 E00E25A0 00621821 */  addu      $v1, $v1, $v0
/* 3DC8B4 E00E25A4 AC830004 */  sw        $v1, 0x4($a0)
.LE00E25A8:
/* 3DC8B8 E00E25A8 8FAF00A0 */  lw        $t7, 0xA0($sp)
/* 3DC8BC E00E25AC 000F10C0 */  sll       $v0, $t7, 3
/* 3DC8C0 E00E25B0 02021021 */  addu      $v0, $s0, $v0
/* 3DC8C4 E00E25B4 44826000 */  mtc1      $v0, $f12
/* 3DC8C8 E00E25B8 00000000 */  nop
/* 3DC8CC E00E25BC 46806320 */  cvt.s.w   $f12, $f12
/* 3DC8D0 E00E25C0 0C080140 */  jal       shim_sin_deg
/* 3DC8D4 E00E25C4 26100030 */   addiu    $s0, $s0, 0x30
/* 3DC8D8 E00E25C8 44941000 */  mtc1      $s4, $f2
/* 3DC8DC E00E25CC 00000000 */  nop
/* 3DC8E0 E00E25D0 468010A0 */  cvt.s.w   $f2, $f2
/* 3DC8E4 E00E25D4 3C01E00E */  lui       $at, (0xE00E2A38 >> 16)
/* 3DC8E8 E00E25D8 D4242A38 */  ldc1      $f4, (0xE00E2A38 & 0xFFFF)($at)
/* 3DC8EC E00E25DC 460010A1 */  cvt.d.s   $f2, $f2
/* 3DC8F0 E00E25E0 46241082 */  mul.d     $f2, $f2, $f4
/* 3DC8F4 E00E25E4 00000000 */  nop
/* 3DC8F8 E00E25E8 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DC8FC E00E25EC 3C0141F0 */  lui       $at, (0x41F00000 >> 16)
/* 3DC900 E00E25F0 44812000 */  mtc1      $at, $f4
/* 3DC904 E00E25F4 00000000 */  nop
/* 3DC908 E00E25F8 46040002 */  mul.s     $f0, $f0, $f4
/* 3DC90C E00E25FC 00000000 */  nop
/* 3DC910 E00E2600 4405A000 */  mfc1      $a1, $f20
/* 3DC914 E00E2604 3C0740C0 */  lui       $a3, (0x40C00000 >> 16)
/* 3DC918 E00E2608 26940001 */  addiu     $s4, $s4, 0x1
/* 3DC91C E00E260C E7B40018 */  swc1      $f20, 0x18($sp)
/* 3DC920 E00E2610 44060000 */  mfc1      $a2, $f0
/* 3DC924 E00E2614 3C013FF0 */  lui       $at, (0x3FF00000 >> 16)
/* 3DC928 E00E2618 44810800 */  mtc1      $at, $f1
/* 3DC92C E00E261C 44800000 */  mtc1      $zero, $f0
/* 3DC930 E00E2620 3C014100 */  lui       $at, (0x41000000 >> 16)
/* 3DC934 E00E2624 44812000 */  mtc1      $at, $f4
/* 3DC938 E00E2628 46201080 */  add.d     $f2, $f2, $f0
/* 3DC93C E00E262C E7B4001C */  swc1      $f20, 0x1C($sp)
/* 3DC940 E00E2630 E7A40014 */  swc1      $f4, 0x14($sp)
/* 3DC944 E00E2634 462010A0 */  cvt.s.d   $f2, $f2
/* 3DC948 E00E2638 0C080180 */  jal       shim_guPositionF
/* 3DC94C E00E263C E7A20010 */   swc1     $f2, 0x10($sp)
/* 3DC950 E00E2640 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DC954 E00E2644 96E50000 */  lhu       $a1, 0x0($s7)
/* 3DC958 E00E2648 3C02800A */  lui       $v0, %hi(gDisplayContext)
/* 3DC95C E00E264C 8C42A674 */  lw        $v0, %lo(gDisplayContext)($v0)
/* 3DC960 E00E2650 8FAF00A8 */  lw        $t7, 0xA8($sp)
/* 3DC964 E00E2654 00052980 */  sll       $a1, $a1, 6
/* 3DC968 E00E2658 00AF2821 */  addu      $a1, $a1, $t7
/* 3DC96C E00E265C 0C080118 */  jal       shim_guMtxF2L
/* 3DC970 E00E2660 00452821 */   addu     $a1, $v0, $a1
/* 3DC974 E00E2664 3C02DA38 */  lui       $v0, (0xDA380001 >> 16)
/* 3DC978 E00E2668 34420001 */  ori       $v0, $v0, (0xDA380001 & 0xFFFF)
/* 3DC97C E00E266C 3C080100 */  lui       $t0, (0x1002000 >> 16)
/* 3DC980 E00E2670 35082000 */  ori       $t0, $t0, (0x1002000 & 0xFFFF)
/* 3DC984 E00E2674 3226007F */  andi      $a2, $s1, 0x7F
/* 3DC988 E00E2678 26310002 */  addiu     $s1, $s1, 0x2
/* 3DC98C E00E267C 00063040 */  sll       $a2, $a2, 1
/* 3DC990 E00E2680 00C83025 */  or        $a2, $a2, $t0
/* 3DC994 E00E2684 8EC40000 */  lw        $a0, 0x0($s6)
/* 3DC998 E00E2688 96E50000 */  lhu       $a1, 0x0($s7)
/* 3DC99C E00E268C 3C03800A */  lui       $v1, %hi(gDisplayContext)
/* 3DC9A0 E00E2690 8C63A674 */  lw        $v1, %lo(gDisplayContext)($v1)
/* 3DC9A4 E00E2694 0080382D */  daddu     $a3, $a0, $zero
/* 3DC9A8 E00E2698 24840008 */  addiu     $a0, $a0, 0x8
/* 3DC9AC E00E269C ACE20000 */  sw        $v0, 0x0($a3)
/* 3DC9B0 E00E26A0 30A2FFFF */  andi      $v0, $a1, 0xFFFF
/* 3DC9B4 E00E26A4 00021180 */  sll       $v0, $v0, 6
/* 3DC9B8 E00E26A8 8FAF00A8 */  lw        $t7, 0xA8($sp)
/* 3DC9BC E00E26AC 24A50001 */  addiu     $a1, $a1, 0x1
/* 3DC9C0 E00E26B0 004F1021 */  addu      $v0, $v0, $t7
/* 3DC9C4 E00E26B4 00621821 */  addu      $v1, $v1, $v0
/* 3DC9C8 E00E26B8 ACE30004 */  sw        $v1, 0x4($a3)
/* 3DC9CC E00E26BC AC9E0004 */  sw        $fp, 0x4($a0)
/* 3DC9D0 E00E26C0 27DE0020 */  addiu     $fp, $fp, 0x20
/* 3DC9D4 E00E26C4 24820008 */  addiu     $v0, $a0, 0x8
/* 3DC9D8 E00E26C8 AEC40000 */  sw        $a0, 0x0($s6)
/* 3DC9DC E00E26CC A6E50000 */  sh        $a1, 0x0($s7)
/* 3DC9E0 E00E26D0 AEC20000 */  sw        $v0, 0x0($s6)
/* 3DC9E4 E00E26D4 2A820010 */  slti      $v0, $s4, 0x10
/* 3DC9E8 E00E26D8 1440FFB3 */  bnez      $v0, .LE00E25A8
/* 3DC9EC E00E26DC AC860000 */   sw       $a2, 0x0($a0)
/* 3DC9F0 E00E26E0 0000A02D */  daddu     $s4, $zero, $zero
/* 3DC9F4 E00E26E4 3C0B800A */  lui       $t3, %hi(gMainGfxPos)
/* 3DC9F8 E00E26E8 256BA66C */  addiu     $t3, $t3, %lo(gMainGfxPos)
/* 3DC9FC E00E26EC 3C0A0600 */  lui       $t2, (0x6000000 >> 16)
/* 3DCA00 E00E26F0 24090001 */  addiu     $t1, $zero, 0x1
/* 3DCA04 E00E26F4 3C0E0606 */  lui       $t6, (0x6060402 >> 16)
/* 3DCA08 E00E26F8 35CE0402 */  ori       $t6, $t6, (0x6060402 & 0xFFFF)
/* 3DCA0C E00E26FC 3C0D0002 */  lui       $t5, (0x20406 >> 16)
/* 3DCA10 E00E2700 35AD0406 */  ori       $t5, $t5, (0x20406 & 0xFFFF)
/* 3DCA14 E00E2704 3C0C0006 */  lui       $t4, (0x60804 >> 16)
/* 3DCA18 E00E2708 358C0804 */  ori       $t4, $t4, (0x60804 & 0xFFFF)
/* 3DCA1C E00E270C 24070004 */  addiu     $a3, $zero, 0x4
/* 3DCA20 E00E2710 24060002 */  addiu     $a2, $zero, 0x2
/* 3DCA24 E00E2714 24080006 */  addiu     $t0, $zero, 0x6
.LE00E2718:
/* 3DCA28 E00E2718 8D640000 */  lw        $a0, 0x0($t3)
/* 3DCA2C E00E271C 00142840 */  sll       $a1, $s4, 1
/* 3DCA30 E00E2720 24820008 */  addiu     $v0, $a0, 0x8
/* 3DCA34 E00E2724 14A00004 */  bnez      $a1, .LE00E2738
/* 3DCA38 E00E2728 AD620000 */   sw       $v0, 0x0($t3)
/* 3DCA3C E00E272C 00141440 */  sll       $v0, $s4, 17
/* 3DCA40 E00E2730 080389D8 */  j         .LE00E2760
/* 3DCA44 E00E2734 34420402 */   ori      $v0, $v0, 0x402
.LE00E2738:
/* 3DCA48 E00E2738 14A90003 */  bne       $a1, $t1, .LE00E2748
/* 3DCA4C E00E273C 30C200FF */   andi     $v0, $a2, 0xFF
/* 3DCA50 E00E2740 080389DA */  j         .LE00E2768
/* 3DCA54 E00E2744 AC8E0000 */   sw       $t6, 0x0($a0)
.LE00E2748:
/* 3DCA58 E00E2748 00021400 */  sll       $v0, $v0, 16
/* 3DCA5C E00E274C 00141A80 */  sll       $v1, $s4, 10
/* 3DCA60 E00E2750 3063FC00 */  andi      $v1, $v1, 0xFC00
/* 3DCA64 E00E2754 00431025 */  or        $v0, $v0, $v1
/* 3DCA68 E00E2758 30E300FF */  andi      $v1, $a3, 0xFF
/* 3DCA6C E00E275C 00431025 */  or        $v0, $v0, $v1
.LE00E2760:
/* 3DCA70 E00E2760 004A1025 */  or        $v0, $v0, $t2
/* 3DCA74 E00E2764 AC820000 */  sw        $v0, 0x0($a0)
.LE00E2768:
/* 3DCA78 E00E2768 14A00003 */  bnez      $a1, .LE00E2778
/* 3DCA7C E00E276C 00000000 */   nop
/* 3DCA80 E00E2770 080389E9 */  j         .LE00E27A4
/* 3DCA84 E00E2774 AC8D0004 */   sw       $t5, 0x4($a0)
.LE00E2778:
/* 3DCA88 E00E2778 14A90003 */  bne       $a1, $t1, .LE00E2788
/* 3DCA8C E00E277C 310200FF */   andi     $v0, $t0, 0xFF
/* 3DCA90 E00E2780 080389E9 */  j         .LE00E27A4
/* 3DCA94 E00E2784 AC8C0004 */   sw       $t4, 0x4($a0)
.LE00E2788:
/* 3DCA98 E00E2788 00021400 */  sll       $v0, $v0, 16
/* 3DCA9C E00E278C 30C300FF */  andi      $v1, $a2, 0xFF
/* 3DCAA0 E00E2790 00031A00 */  sll       $v1, $v1, 8
/* 3DCAA4 E00E2794 00431025 */  or        $v0, $v0, $v1
/* 3DCAA8 E00E2798 30E300FF */  andi      $v1, $a3, 0xFF
/* 3DCAAC E00E279C 00431025 */  or        $v0, $v0, $v1
/* 3DCAB0 E00E27A0 AC820004 */  sw        $v0, 0x4($a0)
.LE00E27A4:
/* 3DCAB4 E00E27A4 24E70004 */  addiu     $a3, $a3, 0x4
/* 3DCAB8 E00E27A8 24C60004 */  addiu     $a2, $a2, 0x4
/* 3DCABC E00E27AC 26940001 */  addiu     $s4, $s4, 0x1
/* 3DCAC0 E00E27B0 2A82000F */  slti      $v0, $s4, 0xF
/* 3DCAC4 E00E27B4 1440FFD8 */  bnez      $v0, .LE00E2718
/* 3DCAC8 E00E27B8 25080004 */   addiu    $t0, $t0, 0x4
/* 3DCACC E00E27BC 3C03D838 */  lui       $v1, (0xD8380002 >> 16)
/* 3DCAD0 E00E27C0 34630002 */  ori       $v1, $v1, (0xD8380002 & 0xFFFF)
/* 3DCAD4 E00E27C4 0000A02D */  daddu     $s4, $zero, $zero
/* 3DCAD8 E00E27C8 3C1E800A */  lui       $fp, %hi(gDisplayContext)
/* 3DCADC E00E27CC 27DEA674 */  addiu     $fp, $fp, %lo(gDisplayContext)
/* 3DCAE0 E00E27D0 3C178007 */  lui       $s7, %hi(gMatrixListPos)
/* 3DCAE4 E00E27D4 26F741F0 */  addiu     $s7, $s7, %lo(gMatrixListPos)
/* 3DCAE8 E00E27D8 3C160001 */  lui       $s6, (0x11630 >> 16)
/* 3DCAEC E00E27DC 36D61630 */  ori       $s6, $s6, (0x11630 & 0xFFFF)
/* 3DCAF0 E00E27E0 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* 3DCAF4 E00E27E4 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* 3DCAF8 E00E27E8 0040902D */  daddu     $s2, $v0, $zero
/* 3DCAFC E00E27EC 2413FEE6 */  addiu     $s3, $zero, -0x11A
/* 3DCB00 E00E27F0 8FB000A0 */  lw        $s0, 0xA0($sp)
/* 3DCB04 E00E27F4 8E420000 */  lw        $v0, 0x0($s2)
/* 3DCB08 E00E27F8 4480A000 */  mtc1      $zero, $f20
/* 3DCB0C E00E27FC 0040202D */  daddu     $a0, $v0, $zero
/* 3DCB10 E00E2800 24420008 */  addiu     $v0, $v0, 0x8
/* 3DCB14 E00E2804 AE420000 */  sw        $v0, 0x0($s2)
/* 3DCB18 E00E2808 AC830000 */  sw        $v1, 0x0($a0)
/* 3DCB1C E00E280C 24030040 */  addiu     $v1, $zero, 0x40
/* 3DCB20 E00E2810 AC830004 */  sw        $v1, 0x4($a0)
/* 3DCB24 E00E2814 24430008 */  addiu     $v1, $v0, 0x8
/* 3DCB28 E00E2818 AE430000 */  sw        $v1, 0x0($s2)
/* 3DCB2C E00E281C 3C03DF00 */  lui       $v1, (0xDF000000 >> 16)
/* 3DCB30 E00E2820 AC430000 */  sw        $v1, 0x0($v0)
/* 3DCB34 E00E2824 AC400004 */  sw        $zero, 0x4($v0)
.LE00E2828:
/* 3DCB38 E00E2828 3C027878 */  lui       $v0, (0x78787879 >> 16)
/* 3DCB3C E00E282C 34427879 */  ori       $v0, $v0, (0x78787879 & 0xFFFF)
/* 3DCB40 E00E2830 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DCB44 E00E2834 44933000 */  mtc1      $s3, $f6
/* 3DCB48 E00E2838 00000000 */  nop
/* 3DCB4C E00E283C 468031A0 */  cvt.s.w   $f6, $f6
/* 3DCB50 E00E2840 26730024 */  addiu     $s3, $s3, 0x24
/* 3DCB54 E00E2844 26940001 */  addiu     $s4, $s4, 0x1
/* 3DCB58 E00E2848 02020018 */  mult      $s0, $v0
/* 3DCB5C E00E284C 44073000 */  mfc1      $a3, $f6
/* 3DCB60 E00E2850 4405A000 */  mfc1      $a1, $f20
/* 3DCB64 E00E2854 4406A000 */  mfc1      $a2, $f20
/* 3DCB68 E00E2858 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 3DCB6C E00E285C 44810000 */  mtc1      $at, $f0
/* 3DCB70 E00E2860 001017C3 */  sra       $v0, $s0, 31
/* 3DCB74 E00E2864 E7B40014 */  swc1      $f20, 0x14($sp)
/* 3DCB78 E00E2868 E7B40018 */  swc1      $f20, 0x18($sp)
/* 3DCB7C E00E286C E7B4001C */  swc1      $f20, 0x1C($sp)
/* 3DCB80 E00E2870 E7A00010 */  swc1      $f0, 0x10($sp)
/* 3DCB84 E00E2874 00007810 */  mfhi      $t7
/* 3DCB88 E00E2878 000F18C3 */  sra       $v1, $t7, 3
/* 3DCB8C E00E287C 00628823 */  subu      $s1, $v1, $v0
/* 3DCB90 E00E2880 00111100 */  sll       $v0, $s1, 4
/* 3DCB94 E00E2884 00511021 */  addu      $v0, $v0, $s1
/* 3DCB98 E00E2888 0C080180 */  jal       shim_guPositionF
/* 3DCB9C E00E288C 02028823 */   subu     $s1, $s0, $v0
/* 3DCBA0 E00E2890 27A40020 */  addiu     $a0, $sp, 0x20
/* 3DCBA4 E00E2894 26100004 */  addiu     $s0, $s0, 0x4
/* 3DCBA8 E00E2898 96E50000 */  lhu       $a1, 0x0($s7)
/* 3DCBAC E00E289C 8FC20000 */  lw        $v0, 0x0($fp)
/* 3DCBB0 E00E28A0 00052980 */  sll       $a1, $a1, 6
/* 3DCBB4 E00E28A4 00B62821 */  addu      $a1, $a1, $s6
/* 3DCBB8 E00E28A8 0C080118 */  jal       shim_guMtxF2L
/* 3DCBBC E00E28AC 00452821 */   addu     $a1, $v0, $a1
/* 3DCBC0 E00E28B0 3C09D838 */  lui       $t1, (0xD8380002 >> 16)
/* 3DCBC4 E00E28B4 35290002 */  ori       $t1, $t1, (0xD8380002 & 0xFFFF)
/* 3DCBC8 E00E28B8 8E440000 */  lw        $a0, 0x0($s2)
/* 3DCBCC E00E28BC 3C03DA38 */  lui       $v1, (0xDA380000 >> 16)
/* 3DCBD0 E00E28C0 0080282D */  daddu     $a1, $a0, $zero
/* 3DCBD4 E00E28C4 24840008 */  addiu     $a0, $a0, 0x8
/* 3DCBD8 E00E28C8 AE440000 */  sw        $a0, 0x0($s2)
/* 3DCBDC E00E28CC 96E20000 */  lhu       $v0, 0x0($s7)
/* 3DCBE0 E00E28D0 24080040 */  addiu     $t0, $zero, 0x40
/* 3DCBE4 E00E28D4 ACA30000 */  sw        $v1, 0x0($a1)
/* 3DCBE8 E00E28D8 24430001 */  addiu     $v1, $v0, 0x1
/* 3DCBEC E00E28DC 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3DCBF0 E00E28E0 00021180 */  sll       $v0, $v0, 6
/* 3DCBF4 E00E28E4 A6E30000 */  sh        $v1, 0x0($s7)
/* 3DCBF8 E00E28E8 8FC30000 */  lw        $v1, 0x0($fp)
/* 3DCBFC E00E28EC 00561021 */  addu      $v0, $v0, $s6
/* 3DCC00 E00E28F0 00621821 */  addu      $v1, $v1, $v0
/* 3DCC04 E00E28F4 24820008 */  addiu     $v0, $a0, 0x8
/* 3DCC08 E00E28F8 ACA30004 */  sw        $v1, 0x4($a1)
/* 3DCC0C E00E28FC AE420000 */  sw        $v0, 0x0($s2)
/* 3DCC10 E00E2900 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 3DCC14 E00E2904 AC820000 */  sw        $v0, 0x0($a0)
/* 3DCC18 E00E2908 3C03E00E */  lui       $v1, (0xE00E29F4 >> 16)
/* 3DCC1C E00E290C 00711821 */  addu      $v1, $v1, $s1
/* 3DCC20 E00E2910 906329F4 */  lbu       $v1, (0xE00E29F4 & 0xFFFF)($v1)
/* 3DCC24 E00E2914 3C05E00E */  lui       $a1, (0xE00E2A08 >> 16)
/* 3DCC28 E00E2918 00B12821 */  addu      $a1, $a1, $s1
/* 3DCC2C E00E291C 90A52A08 */  lbu       $a1, (0xE00E2A08 & 0xFFFF)($a1)
/* 3DCC30 E00E2920 3C06E00E */  lui       $a2, (0xE00E2A1C >> 16)
/* 3DCC34 E00E2924 00D13021 */  addu      $a2, $a2, $s1
/* 3DCC38 E00E2928 90C62A1C */  lbu       $a2, (0xE00E2A1C & 0xFFFF)($a2)
/* 3DCC3C E00E292C 92A70027 */  lbu       $a3, 0x27($s5)
/* 3DCC40 E00E2930 24820010 */  addiu     $v0, $a0, 0x10
/* 3DCC44 E00E2934 AE420000 */  sw        $v0, 0x0($s2)
/* 3DCC48 E00E2938 3C02FB00 */  lui       $v0, (0xFB000000 >> 16)
/* 3DCC4C E00E293C AC820008 */  sw        $v0, 0x8($a0)
/* 3DCC50 E00E2940 2402FF00 */  addiu     $v0, $zero, -0x100
/* 3DCC54 E00E2944 AC82000C */  sw        $v0, 0xC($a0)
/* 3DCC58 E00E2948 24820018 */  addiu     $v0, $a0, 0x18
/* 3DCC5C E00E294C AE420000 */  sw        $v0, 0x0($s2)
/* 3DCC60 E00E2950 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3DCC64 E00E2954 AC820010 */  sw        $v0, 0x10($a0)
/* 3DCC68 E00E2958 24820020 */  addiu     $v0, $a0, 0x20
/* 3DCC6C E00E295C 8FAF00A4 */  lw        $t7, 0xA4($sp)
/* 3DCC70 E00E2960 00031E00 */  sll       $v1, $v1, 24
/* 3DCC74 E00E2964 00052C00 */  sll       $a1, $a1, 16
/* 3DCC78 E00E2968 00651825 */  or        $v1, $v1, $a1
/* 3DCC7C E00E296C 00063200 */  sll       $a2, $a2, 8
/* 3DCC80 E00E2970 00661825 */  or        $v1, $v1, $a2
/* 3DCC84 E00E2974 00671825 */  or        $v1, $v1, $a3
/* 3DCC88 E00E2978 AC8F0014 */  sw        $t7, 0x14($a0)
/* 3DCC8C E00E297C AE420000 */  sw        $v0, 0x0($s2)
/* 3DCC90 E00E2980 2A820002 */  slti      $v0, $s4, 0x2
/* 3DCC94 E00E2984 AC890018 */  sw        $t1, 0x18($a0)
/* 3DCC98 E00E2988 AC88001C */  sw        $t0, 0x1C($a0)
/* 3DCC9C E00E298C 1440FFA6 */  bnez      $v0, .LE00E2828
/* 3DCCA0 E00E2990 AC830004 */   sw       $v1, 0x4($a0)
/* 3DCCA4 E00E2994 3C02800A */  lui       $v0, %hi(gMainGfxPos)
/* 3DCCA8 E00E2998 2442A66C */  addiu     $v0, $v0, %lo(gMainGfxPos)
/* 3DCCAC E00E299C 8C430000 */  lw        $v1, 0x0($v0)
/* 3DCCB0 E00E29A0 0060202D */  daddu     $a0, $v1, $zero
/* 3DCCB4 E00E29A4 24630008 */  addiu     $v1, $v1, 0x8
/* 3DCCB8 E00E29A8 AC430000 */  sw        $v1, 0x0($v0)
/* 3DCCBC E00E29AC AC890000 */  sw        $t1, 0x0($a0)
/* 3DCCC0 E00E29B0 AC880004 */  sw        $t0, 0x4($a0)
/* 3DCCC4 E00E29B4 8FBF00D4 */  lw        $ra, 0xD4($sp)
/* 3DCCC8 E00E29B8 8FBE00D0 */  lw        $fp, 0xD0($sp)
/* 3DCCCC E00E29BC 8FB700CC */  lw        $s7, 0xCC($sp)
/* 3DCCD0 E00E29C0 8FB600C8 */  lw        $s6, 0xC8($sp)
/* 3DCCD4 E00E29C4 8FB500C4 */  lw        $s5, 0xC4($sp)
/* 3DCCD8 E00E29C8 8FB400C0 */  lw        $s4, 0xC0($sp)
/* 3DCCDC E00E29CC 8FB300BC */  lw        $s3, 0xBC($sp)
/* 3DCCE0 E00E29D0 8FB200B8 */  lw        $s2, 0xB8($sp)
/* 3DCCE4 E00E29D4 8FB100B4 */  lw        $s1, 0xB4($sp)
/* 3DCCE8 E00E29D8 8FB000B0 */  lw        $s0, 0xB0($sp)
/* 3DCCEC E00E29DC D7B600E0 */  ldc1      $f22, 0xE0($sp)
/* 3DCCF0 E00E29E0 D7B400D8 */  ldc1      $f20, 0xD8($sp)
/* 3DCCF4 E00E29E4 03E00008 */  jr        $ra
/* 3DCCF8 E00E29E8 27BD00E8 */   addiu    $sp, $sp, 0xE8
/* 3DCCFC E00E29EC 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void hieroglyphs_appendGfx(void* effect) {
    HieroglyphsFXData* data = ((EffectInstance*)effect)->data.hieroglyphs;
    Camera* camera = &gCameras[gCurrentCameraID];
    s32 lifeTime = data->lifeTime;
    s32 unk_24 = data->unk_24;
    Gfx* savedGfxPos;
    Matrix4f sp20;
    Matrix4f sp60;
    s32 i;

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

    shim_guTranslateF(sp20, data->pos.x, data->pos.y, data->pos.z);
    shim_guScaleF(sp60, data->unk_38, data->unk_38, data->unk_38);
    shim_guMtxCatF(sp60, sp20, sp20);
    shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);

    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
    gSPMatrix(gMainGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gDPSetPrimColor(gMainGfxPos++, 0, 0, data->unk_18, data->unk_1C, data->unk_20, unk_24);
    gDPSetEnvColor(gMainGfxPos++, data->unk_28, data->unk_2C, data->unk_30, data->unk_34);
    gSPDisplayList(gMainGfxPos++, D_E00E29F0[0]);
    gSPBranchList(gMainGfxPos, gMainGfxPos + 52);

    savedGfxPos = gMainGfxPos + 1;

    gDPSetTileSize(savedGfxPos, G_TX_RENDERTILE,
        (lifeTime * 2      ) * 4, 0,
        (lifeTime * 2 + 127) * 4, 31 * 4);
    gMainGfxPos += 2;

    shim_guRotateF(sp20, 20.0f, 1.0f, 0.0f, 0.0f);
    shim_guPositionF(sp60, 0.0f, shim_sin_deg(lifeTime * 8 + 78.75) * -30.0f, 0.0f, 1.0f, 6.0f, 0.0f, 0.0f);
    shim_guMtxCatF(sp60, sp20, sp20);
    shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);

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

    for (i = 0; i < 16; i++) {
        f32 angle = i * 48 + lifeTime * 8;

        shim_guPositionF(sp20, 0.0f, shim_sin_deg(angle) * 30.0f, 6.0f, (f32) i * 0.01 + 1.0, 8.0f, 0.0f, 0.0f);
        shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);

        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gSPVertex(gMainGfxPos++, &D_090010A8_3DDDF8[i * 2], 2, i * 2);
    }

    for (i = 0; i < 15; i++) {
        s32 i2 = i * 2;
        gSP2Triangles(gMainGfxPos++,
            i2    , i2 + 2, i2 + 1, i2,
            i2 + 1, i2 + 2, i2 + 3, i2);
    }

    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    gSPEndDisplayList(gMainGfxPos++);

    for (i = 0; i < 2; i++) {
        s32 idx = (lifeTime + i * 4) % 17;

        shim_guPositionF(sp20, 0.0f, 0.0f, -0x11A + i * 0x24, 1.0f, 0.0f, 0.0f, 0.0f);
        shim_guMtxF2L(sp20, &gDisplayContext->matrixStack[gMatrixListPos]);

        gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_MUL | G_MTX_MODELVIEW);
        gDPSetPrimColor(gMainGfxPos++, 0, 0, D_E00E29F4[idx], D_E00E2A08[idx], D_E00E2A1C[idx], data->unk_24);
        gDPSetEnvColor(gMainGfxPos++, 255, 255, 255, 0);
        gSPDisplayList(gMainGfxPos++, savedGfxPos);
        gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
    }

    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel fright_jar_appendGfx
/* 3C13EC E00C221C 27BDFF40 */  addiu     $sp, $sp, -0xC0
/* 3C13F0 E00C2220 0080302D */  daddu     $a2, $a0, $zero
/* 3C13F4 E00C2224 3C07DB06 */  lui       $a3, (0xDB060024 >> 16)
/* 3C13F8 E00C2228 34E70024 */  ori       $a3, $a3, (0xDB060024 & 0xFFFF)
/* 3C13FC E00C222C 27A40010 */  addiu     $a0, $sp, 0x10
/* 3C1400 E00C2230 AFB300A4 */  sw        $s3, 0xA4($sp)
/* 3C1404 E00C2234 3C130001 */  lui       $s3, (0x11630 >> 16)
/* 3C1408 E00C2238 AFB400A8 */  sw        $s4, 0xA8($sp)
/* 3C140C E00C223C 3C14800A */  lui       $s4, %hi(gMainGfxPos)
/* 3C1410 E00C2240 2694A66C */  addiu     $s4, $s4, %lo(gMainGfxPos)
/* 3C1414 E00C2244 AFBF00B8 */  sw        $ra, 0xB8($sp)
/* 3C1418 E00C2248 AFB700B4 */  sw        $s7, 0xB4($sp)
/* 3C141C E00C224C AFB600B0 */  sw        $s6, 0xB0($sp)
/* 3C1420 E00C2250 AFB500AC */  sw        $s5, 0xAC($sp)
/* 3C1424 E00C2254 AFB200A0 */  sw        $s2, 0xA0($sp)
/* 3C1428 E00C2258 AFB1009C */  sw        $s1, 0x9C($sp)
/* 3C142C E00C225C AFB00098 */  sw        $s0, 0x98($sp)
/* 3C1430 E00C2260 8E850000 */  lw        $a1, 0x0($s4)
/* 3C1434 E00C2264 8CD6000C */  lw        $s6, 0xC($a2)
/* 3C1438 E00C2268 00A0182D */  daddu     $v1, $a1, $zero
/* 3C143C E00C226C 24A50008 */  addiu     $a1, $a1, 0x8
/* 3C1440 E00C2270 AE850000 */  sw        $a1, 0x0($s4)
/* 3C1444 E00C2274 8ED50014 */  lw        $s5, 0x14($s6)
/* 3C1448 E00C2278 8ED70024 */  lw        $s7, 0x24($s6)
/* 3C144C E00C227C 3C02E700 */  lui       $v0, (0xE7000000 >> 16)
/* 3C1450 E00C2280 AFB70090 */  sw        $s7, 0x90($sp)
/* 3C1454 E00C2284 AC620000 */  sw        $v0, 0x0($v1)
/* 3C1458 E00C2288 AC600004 */  sw        $zero, 0x4($v1)
/* 3C145C E00C228C ACA70000 */  sw        $a3, 0x0($a1)
/* 3C1460 E00C2290 8CC30010 */  lw        $v1, 0x10($a2)
/* 3C1464 E00C2294 24A20008 */  addiu     $v0, $a1, 0x8
/* 3C1468 E00C2298 AE820000 */  sw        $v0, 0x0($s4)
/* 3C146C E00C229C 8C62001C */  lw        $v0, 0x1C($v1)
/* 3C1470 E00C22A0 3C038000 */  lui       $v1, (0x80000000 >> 16)
/* 3C1474 E00C22A4 00431021 */  addu      $v0, $v0, $v1
/* 3C1478 E00C22A8 3C03800B */  lui       $v1, %hi(gCameras)
/* 3C147C E00C22AC 24631D80 */  addiu     $v1, $v1, %lo(gCameras)
/* 3C1480 E00C22B0 ACA20004 */  sw        $v0, 0x4($a1)
/* 3C1484 E00C22B4 8EC50004 */  lw        $a1, 0x4($s6)
/* 3C1488 E00C22B8 8EC60008 */  lw        $a2, 0x8($s6)
/* 3C148C E00C22BC 3C028007 */  lui       $v0, %hi(gCurrentCameraID)
/* 3C1490 E00C22C0 8C427410 */  lw        $v0, %lo(gCurrentCameraID)($v0)
/* 3C1494 E00C22C4 8EC7000C */  lw        $a3, 0xC($s6)
/* 3C1498 E00C22C8 00028080 */  sll       $s0, $v0, 2
/* 3C149C E00C22CC 02028021 */  addu      $s0, $s0, $v0
/* 3C14A0 E00C22D0 00108080 */  sll       $s0, $s0, 2
/* 3C14A4 E00C22D4 02028023 */  subu      $s0, $s0, $v0
/* 3C14A8 E00C22D8 001010C0 */  sll       $v0, $s0, 3
/* 3C14AC E00C22DC 02028021 */  addu      $s0, $s0, $v0
/* 3C14B0 E00C22E0 001080C0 */  sll       $s0, $s0, 3
/* 3C14B4 E00C22E4 0C080108 */  jal       shim_guTranslateF
/* 3C14B8 E00C22E8 02038021 */   addu     $s0, $s0, $v1
/* 3C14BC E00C22EC C6C00028 */  lwc1      $f0, 0x28($s6)
/* 3C14C0 E00C22F0 36731630 */  ori       $s3, $s3, (0x11630 & 0xFFFF)
/* 3C14C4 E00C22F4 44060000 */  mfc1      $a2, $f0
/* 3C14C8 E00C22F8 27B10050 */  addiu     $s1, $sp, 0x50
/* 3C14CC E00C22FC 44867000 */  mtc1      $a2, $f14
/* 3C14D0 E00C2300 0220202D */  daddu     $a0, $s1, $zero
/* 3C14D4 E00C2304 46007387 */  neg.s     $f14, $f14
/* 3C14D8 E00C2308 44057000 */  mfc1      $a1, $f14
/* 3C14DC E00C230C 0C080110 */  jal       shim_guScaleF
/* 3C14E0 E00C2310 00C0382D */   daddu    $a3, $a2, $zero
/* 3C14E4 E00C2314 0220202D */  daddu     $a0, $s1, $zero
/* 3C14E8 E00C2318 27A50010 */  addiu     $a1, $sp, 0x10
/* 3C14EC E00C231C 0C080114 */  jal       shim_guMtxCatF
/* 3C14F0 E00C2320 00A0302D */   daddu    $a2, $a1, $zero
/* 3C14F4 E00C2324 27A40010 */  addiu     $a0, $sp, 0x10
/* 3C14F8 E00C2328 3C118007 */  lui       $s1, %hi(gMatrixListPos)
/* 3C14FC E00C232C 263141F0 */  addiu     $s1, $s1, %lo(gMatrixListPos)
/* 3C1500 E00C2330 3C12800A */  lui       $s2, %hi(gDisplayContext)
/* 3C1504 E00C2334 2652A674 */  addiu     $s2, $s2, %lo(gDisplayContext)
/* 3C1508 E00C2338 96250000 */  lhu       $a1, 0x0($s1)
/* 3C150C E00C233C 8E420000 */  lw        $v0, 0x0($s2)
/* 3C1510 E00C2340 00052980 */  sll       $a1, $a1, 6
/* 3C1514 E00C2344 00B32821 */  addu      $a1, $a1, $s3
/* 3C1518 E00C2348 0C080118 */  jal       shim_guMtxF2L
/* 3C151C E00C234C 00452821 */   addu     $a1, $v0, $a1
/* 3C1520 E00C2350 3C03DA38 */  lui       $v1, (0xDA380002 >> 16)
/* 3C1524 E00C2354 34630002 */  ori       $v1, $v1, (0xDA380002 & 0xFFFF)
/* 3C1528 E00C2358 3C05DA38 */  lui       $a1, (0xDA380001 >> 16)
/* 3C152C E00C235C 34A50001 */  ori       $a1, $a1, (0xDA380001 & 0xFFFF)
/* 3C1530 E00C2360 24020036 */  addiu     $v0, $zero, 0x36
/* 3C1534 E00C2364 00553823 */  subu      $a3, $v0, $s5
/* 3C1538 E00C2368 8E860000 */  lw        $a2, 0x0($s4)
/* 3C153C E00C236C 96220000 */  lhu       $v0, 0x0($s1)
/* 3C1540 E00C2370 00C0202D */  daddu     $a0, $a2, $zero
/* 3C1544 E00C2374 24C60008 */  addiu     $a2, $a2, 0x8
/* 3C1548 E00C2378 AE860000 */  sw        $a2, 0x0($s4)
/* 3C154C E00C237C AC830000 */  sw        $v1, 0x0($a0)
/* 3C1550 E00C2380 24430001 */  addiu     $v1, $v0, 0x1
/* 3C1554 E00C2384 3042FFFF */  andi      $v0, $v0, 0xFFFF
/* 3C1558 E00C2388 00021180 */  sll       $v0, $v0, 6
/* 3C155C E00C238C A6230000 */  sh        $v1, 0x0($s1)
/* 3C1560 E00C2390 8E430000 */  lw        $v1, 0x0($s2)
/* 3C1564 E00C2394 00531021 */  addu      $v0, $v0, $s3
/* 3C1568 E00C2398 00621821 */  addu      $v1, $v1, $v0
/* 3C156C E00C239C 24C20008 */  addiu     $v0, $a2, 0x8
/* 3C1570 E00C23A0 AC830004 */  sw        $v1, 0x4($a0)
/* 3C1574 E00C23A4 AE820000 */  sw        $v0, 0x0($s4)
/* 3C1578 E00C23A8 24C20010 */  addiu     $v0, $a2, 0x10
/* 3C157C E00C23AC ACC50000 */  sw        $a1, 0x0($a2)
/* 3C1580 E00C23B0 AE820000 */  sw        $v0, 0x0($s4)
/* 3C1584 E00C23B4 8E030204 */  lw        $v1, 0x204($s0)
/* 3C1588 E00C23B8 3C02DE00 */  lui       $v0, (0xDE000000 >> 16)
/* 3C158C E00C23BC ACC20008 */  sw        $v0, 0x8($a2)
/* 3C1590 E00C23C0 3C020901 */  lui       $v0, %hi(D_09008BE0_3F4A40)
/* 3C1594 E00C23C4 24428BE0 */  addiu     $v0, $v0, %lo(D_09008BE0_3F4A40)
/* 3C1598 E00C23C8 ACC2000C */  sw        $v0, 0xC($a2)
/* 3C159C E00C23CC 04E10002 */  bgez      $a3, .LE00C23D8
/* 3C15A0 E00C23D0 ACC30004 */   sw       $v1, 0x4($a2)
/* 3C15A4 E00C23D4 0000382D */  daddu     $a3, $zero, $zero
.LE00C23D8:
/* 3C15A8 E00C23D8 3C030101 */  lui       $v1, (0x101602C >> 16)
/* 3C15AC E00C23DC 3463602C */  ori       $v1, $v1, (0x101602C & 0xFFFF)
/* 3C15B0 E00C23E0 02A0202D */  daddu     $a0, $s5, $zero
/* 3C15B4 E00C23E4 24C20018 */  addiu     $v0, $a2, 0x18
/* 3C15B8 E00C23E8 AE820000 */  sw        $v0, 0x0($s4)
/* 3C15BC E00C23EC ACC30010 */  sw        $v1, 0x10($a2)
/* 3C15C0 E00C23F0 3C030900 */  lui       $v1, %hi(D_09004040_4112D0)
/* 3C15C4 E00C23F4 24634040 */  addiu     $v1, $v1, %lo(D_09004040_4112D0)
/* 3C15C8 E00C23F8 00071040 */  sll       $v0, $a3, 1
/* 3C15CC E00C23FC 00471021 */  addu      $v0, $v0, $a3
/* 3C15D0 E00C2400 00021080 */  sll       $v0, $v0, 2
/* 3C15D4 E00C2404 00471023 */  subu      $v0, $v0, $a3
/* 3C15D8 E00C2408 00021140 */  sll       $v0, $v0, 5
/* 3C15DC E00C240C 00431021 */  addu      $v0, $v0, $v1
/* 3C15E0 E00C2410 06A10002 */  bgez      $s5, .LE00C241C
/* 3C15E4 E00C2414 ACC20014 */   sw       $v0, 0x14($a2)
/* 3C15E8 E00C2418 26A4000F */  addiu     $a0, $s5, 0xF
.LE00C241C:
/* 3C15EC E00C241C 0000602D */  daddu     $t4, $zero, $zero
/* 3C15F0 E00C2420 0280482D */  daddu     $t1, $s4, $zero
/* 3C15F4 E00C2424 3C148000 */  lui       $s4, (0x80000000 >> 16)
/* 3C15F8 E00C2428 3C12FD48 */  lui       $s2, (0xFD48003F >> 16)
/* 3C15FC E00C242C 3652003F */  ori       $s2, $s2, (0xFD48003F & 0xFFFF)
/* 3C1600 E00C2430 3C110709 */  lui       $s1, (0x709FA7E >> 16)
/* 3C1604 E00C2434 3631FA7E */  ori       $s1, $s1, (0x709FA7E & 0xFFFF)
/* 3C1608 E00C2438 3C19E600 */  lui       $t9, (0xE6000000 >> 16)
/* 3C160C E00C243C 3C18F400 */  lui       $t8, (0xF4000000 >> 16)
/* 3C1610 E00C2440 3C10070F */  lui       $s0, (0x70FE000 >> 16)
/* 3C1614 E00C2444 3610E000 */  ori       $s0, $s0, (0x70FE000 & 0xFFFF)
/* 3C1618 E00C2448 3C13E700 */  lui       $s3, (0xE7000000 >> 16)
/* 3C161C E00C244C 3C0FF200 */  lui       $t7, (0xF2000000 >> 16)
/* 3C1620 E00C2450 0180702D */  daddu     $t6, $t4, $zero
/* 3C1624 E00C2454 0180682D */  daddu     $t5, $t4, $zero
/* 3C1628 E00C2458 00041103 */  sra       $v0, $a0, 4
/* 3C162C E00C245C 00021100 */  sll       $v0, $v0, 4
/* 3C1630 E00C2460 02A21023 */  subu      $v0, $s5, $v0
/* 3C1634 E00C2464 3C03E00C */  lui       $v1, %hi(D_E00C2990)
/* 3C1638 E00C2468 24632990 */  addiu     $v1, $v1, %lo(D_E00C2990)
/* 3C163C E00C246C 00431021 */  addu      $v0, $v0, $v1
/* 3C1640 E00C2470 3C01437F */  lui       $at, (0x437F0000 >> 16)
/* 3C1644 E00C2474 44816000 */  mtc1      $at, $f12
/* 3C1648 E00C2478 3C014F00 */  lui       $at, (0x4F000000 >> 16)
/* 3C164C E00C247C 44813000 */  mtc1      $at, $f6
/* 3C1650 E00C2480 3C014300 */  lui       $at, (0x43000000 >> 16)
/* 3C1654 E00C2484 44815000 */  mtc1      $at, $f10
/* 3C1658 E00C2488 3C014080 */  lui       $at, (0x40800000 >> 16)
/* 3C165C E00C248C 44814000 */  mtc1      $at, $f8
/* 3C1660 E00C2490 90430000 */  lbu       $v1, 0x0($v0)
/* 3C1664 E00C2494 24C20020 */  addiu     $v0, $a2, 0x20
/* 3C1668 E00C2498 AD220000 */  sw        $v0, 0x0($t1)
/* 3C166C E00C249C 3C02FB00 */  lui       $v0, (0xFB000000 >> 16)
/* 3C1670 E00C24A0 ACC20018 */  sw        $v0, 0x18($a2)
/* 3C1674 E00C24A4 ACC3001C */  sw        $v1, 0x1C($a2)
.LE00C24A8:
/* 3C1678 E00C24A8 29820005 */  slti      $v0, $t4, 0x5
/* 3C167C E00C24AC 14400002 */  bnez      $v0, .LE00C24B8
/* 3C1680 E00C24B0 000D5880 */   sll      $t3, $t5, 2
/* 3C1684 E00C24B4 25CB0004 */  addiu     $t3, $t6, 0x4
.LE00C24B8:
/* 3C1688 E00C24B8 3C013DCC */  lui       $at, (0x3DCCCCCD >> 16)
/* 3C168C E00C24BC 3421CCCD */  ori       $at, $at, (0x3DCCCCCD & 0xFFFF)
/* 3C1690 E00C24C0 44811000 */  mtc1      $at, $f2
/* 3C1694 E00C24C4 448C0000 */  mtc1      $t4, $f0
/* 3C1698 E00C24C8 00000000 */  nop
/* 3C169C E00C24CC 46800020 */  cvt.s.w   $f0, $f0
/* 3C16A0 E00C24D0 46020102 */  mul.s     $f4, $f0, $f2
/* 3C16A4 E00C24D4 00000000 */  nop
/* 3C16A8 E00C24D8 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 3C16AC E00C24DC 44811000 */  mtc1      $at, $f2
/* 3C16B0 E00C24E0 00000000 */  nop
/* 3C16B4 E00C24E4 46041081 */  sub.s     $f2, $f2, $f4
/* 3C16B8 E00C24E8 C7A00090 */  lwc1      $f0, 0x90($sp)
/* 3C16BC E00C24EC 46800020 */  cvt.s.w   $f0, $f0
/* 3C16C0 E00C24F0 46020002 */  mul.s     $f0, $f0, $f2
/* 3C16C4 E00C24F4 00000000 */  nop
/* 3C16C8 E00C24F8 46000000 */  add.s     $f0, $f0, $f0
/* 3C16CC E00C24FC 4600603C */  c.lt.s    $f12, $f0
/* 3C16D0 E00C2500 00000000 */  nop
/* 3C16D4 E00C2504 45030001 */  bc1tl     .LE00C250C
/* 3C16D8 E00C2508 46006006 */   mov.s    $f0, $f12
.LE00C250C:
/* 3C16DC E00C250C 8D220000 */  lw        $v0, 0x0($t1)
/* 3C16E0 E00C2510 4600303E */  c.le.s    $f6, $f0
/* 3C16E4 E00C2514 0040182D */  daddu     $v1, $v0, $zero
/* 3C16E8 E00C2518 24420008 */  addiu     $v0, $v0, 0x8
/* 3C16EC E00C251C AD220000 */  sw        $v0, 0x0($t1)
/* 3C16F0 E00C2520 3C02FA00 */  lui       $v0, (0xFA000000 >> 16)
/* 3C16F4 E00C2524 246A0004 */  addiu     $t2, $v1, 0x4
/* 3C16F8 E00C2528 AC620000 */  sw        $v0, 0x0($v1)
/* 3C16FC E00C252C 92C4001B */  lbu       $a0, 0x1B($s6)
/* 3C1700 E00C2530 92C3001F */  lbu       $v1, 0x1F($s6)
/* 3C1704 E00C2534 92C20023 */  lbu       $v0, 0x23($s6)
/* 3C1708 E00C2538 00042600 */  sll       $a0, $a0, 24
/* 3C170C E00C253C 00031C00 */  sll       $v1, $v1, 16
/* 3C1710 E00C2540 00832025 */  or        $a0, $a0, $v1
/* 3C1714 E00C2544 00021200 */  sll       $v0, $v0, 8
/* 3C1718 E00C2548 45010005 */  bc1t      .LE00C2560
/* 3C171C E00C254C 00822025 */   or       $a0, $a0, $v0
/* 3C1720 E00C2550 4600038D */  trunc.w.s $f14, $f0
/* 3C1724 E00C2554 44027000 */  mfc1      $v0, $f14
/* 3C1728 E00C2558 0803095E */  j         .LE00C2578
/* 3C172C E00C255C 3C05F548 */   lui      $a1, (0xF5481000 >> 16)
.LE00C2560:
/* 3C1730 E00C2560 46060001 */  sub.s     $f0, $f0, $f6
/* 3C1734 E00C2564 4600038D */  trunc.w.s $f14, $f0
/* 3C1738 E00C2568 44027000 */  mfc1      $v0, $f14
/* 3C173C E00C256C 00000000 */  nop
/* 3C1740 E00C2570 00541025 */  or        $v0, $v0, $s4
/* 3C1744 E00C2574 3C05F548 */  lui       $a1, (0xF5481000 >> 16)
.LE00C2578:
/* 3C1748 E00C2578 34A51000 */  ori       $a1, $a1, (0xF5481000 & 0xFFFF)
/* 3C174C E00C257C 3C07F540 */  lui       $a3, (0xF5401000 >> 16)
/* 3C1750 E00C2580 34E71000 */  ori       $a3, $a3, (0xF5401000 & 0xFFFF)
/* 3C1754 E00C2584 3C060009 */  lui       $a2, (0x9FA7E >> 16)
/* 3C1758 E00C2588 34C6FA7E */  ori       $a2, $a2, (0x9FA7E & 0xFFFF)
/* 3C175C E00C258C 3C08001F */  lui       $t0, (0x1FC000 >> 16)
/* 3C1760 E00C2590 3508C000 */  ori       $t0, $t0, (0x1FC000 & 0xFFFF)
/* 3C1764 E00C2594 304200FF */  andi      $v0, $v0, 0xFF
/* 3C1768 E00C2598 8D230000 */  lw        $v1, 0x0($t1)
/* 3C176C E00C259C 00821025 */  or        $v0, $a0, $v0
/* 3C1770 E00C25A0 AD420000 */  sw        $v0, 0x0($t2)
/* 3C1774 E00C25A4 3C020900 */  lui       $v0, %hi(D_09002020_40F2B0)
/* 3C1778 E00C25A8 24422020 */  addiu     $v0, $v0, %lo(D_09002020_40F2B0)
/* 3C177C E00C25AC 460A2002 */  mul.s     $f0, $f4, $f10
/* 3C1780 E00C25B0 00000000 */  nop
/* 3C1784 E00C25B4 0060202D */  daddu     $a0, $v1, $zero
/* 3C1788 E00C25B8 24630008 */  addiu     $v1, $v1, 0x8
/* 3C178C E00C25BC AD230000 */  sw        $v1, 0x0($t1)
/* 3C1790 E00C25C0 AC820004 */  sw        $v0, 0x4($a0)
/* 3C1794 E00C25C4 24620008 */  addiu     $v0, $v1, 0x8
/* 3C1798 E00C25C8 AC920000 */  sw        $s2, 0x0($a0)
/* 3C179C E00C25CC AD220000 */  sw        $v0, 0x0($t1)
/* 3C17A0 E00C25D0 24620010 */  addiu     $v0, $v1, 0x10
/* 3C17A4 E00C25D4 AC650000 */  sw        $a1, 0x0($v1)
/* 3C17A8 E00C25D8 AC710004 */  sw        $s1, 0x4($v1)
/* 3C17AC E00C25DC AD220000 */  sw        $v0, 0x0($t1)
/* 3C17B0 E00C25E0 24620018 */  addiu     $v0, $v1, 0x18
/* 3C17B4 E00C25E4 000B2880 */  sll       $a1, $t3, 2
/* 3C17B8 E00C25E8 30A50FFF */  andi      $a1, $a1, 0xFFF
/* 3C17BC E00C25EC AC790008 */  sw        $t9, 0x8($v1)
/* 3C17C0 E00C25F0 AC60000C */  sw        $zero, 0xC($v1)
/* 3C17C4 E00C25F4 AD220000 */  sw        $v0, 0x0($t1)
/* 3C17C8 E00C25F8 00B81025 */  or        $v0, $a1, $t8
/* 3C17CC E00C25FC 2564000F */  addiu     $a0, $t3, 0xF
/* 3C17D0 E00C2600 00042080 */  sll       $a0, $a0, 2
/* 3C17D4 E00C2604 30840FFF */  andi      $a0, $a0, 0xFFF
/* 3C17D8 E00C2608 AC620010 */  sw        $v0, 0x10($v1)
/* 3C17DC E00C260C 00901025 */  or        $v0, $a0, $s0
/* 3C17E0 E00C2610 AC620014 */  sw        $v0, 0x14($v1)
/* 3C17E4 E00C2614 24620020 */  addiu     $v0, $v1, 0x20
/* 3C17E8 E00C2618 AD220000 */  sw        $v0, 0x0($t1)
/* 3C17EC E00C261C 24620028 */  addiu     $v0, $v1, 0x28
/* 3C17F0 E00C2620 AC730018 */  sw        $s3, 0x18($v1)
/* 3C17F4 E00C2624 AC60001C */  sw        $zero, 0x1C($v1)
/* 3C17F8 E00C2628 AD220000 */  sw        $v0, 0x0($t1)
/* 3C17FC E00C262C 24620030 */  addiu     $v0, $v1, 0x30
/* 3C1800 E00C2630 00AF2825 */  or        $a1, $a1, $t7
/* 3C1804 E00C2634 00882025 */  or        $a0, $a0, $t0
/* 3C1808 E00C2638 AC670020 */  sw        $a3, 0x20($v1)
/* 3C180C E00C263C AC660024 */  sw        $a2, 0x24($v1)
/* 3C1810 E00C2640 AD220000 */  sw        $v0, 0x0($t1)
/* 3C1814 E00C2644 AC650028 */  sw        $a1, 0x28($v1)
/* 3C1818 E00C2648 46080002 */  mul.s     $f0, $f0, $f8
/* 3C181C E00C264C 00000000 */  nop
/* 3C1820 E00C2650 AC64002C */  sw        $a0, 0x2C($v1)
/* 3C1824 E00C2654 24630038 */  addiu     $v1, $v1, 0x38
/* 3C1828 E00C2658 0040502D */  daddu     $t2, $v0, $zero
/* 3C182C E00C265C 4600303E */  c.le.s    $f6, $f0
/* 3C1830 E00C2660 00000000 */  nop
/* 3C1834 E00C2664 45010005 */  bc1t      .LE00C267C
/* 3C1838 E00C2668 AD230000 */   sw       $v1, 0x0($t1)
/* 3C183C E00C266C 4600038D */  trunc.w.s $f14, $f0
/* 3C1840 E00C2670 44027000 */  mfc1      $v0, $f14
/* 3C1844 E00C2674 080309A5 */  j         .LE00C2694
/* 3C1848 E00C2678 3C04007D */   lui      $a0, (0x7D07D0 >> 16)
.LE00C267C:
/* 3C184C E00C267C 46060001 */  sub.s     $f0, $f0, $f6
/* 3C1850 E00C2680 4600038D */  trunc.w.s $f14, $f0
/* 3C1854 E00C2684 44027000 */  mfc1      $v0, $f14
/* 3C1858 E00C2688 00000000 */  nop
/* 3C185C E00C268C 00541025 */  or        $v0, $v0, $s4
/* 3C1860 E00C2690 3C04007D */  lui       $a0, (0x7D07D0 >> 16)
.LE00C2694:
/* 3C1864 E00C2694 348407D0 */  ori       $a0, $a0, (0x7D07D0 & 0xFFFF)
/* 3C1868 E00C2698 3C05F548 */  lui       $a1, (0xF5481080 >> 16)
/* 3C186C E00C269C 34A51080 */  ori       $a1, $a1, (0xF5481080 & 0xFFFF)
/* 3C1870 E00C26A0 3C07F540 */  lui       $a3, (0xF5401080 >> 16)
/* 3C1874 E00C26A4 34E71080 */  ori       $a3, $a3, (0xF5401080 & 0xFFFF)
/* 3C1878 E00C26A8 3C060119 */  lui       $a2, (0x119FA7E >> 16)
/* 3C187C E00C26AC 34C6FA7E */  ori       $a2, $a2, (0x119FA7E & 0xFFFF)
/* 3C1880 E00C26B0 3C08011F */  lui       $t0, (0x11FC000 >> 16)
/* 3C1884 E00C26B4 3508C000 */  ori       $t0, $t0, (0x11FC000 & 0xFFFF)
/* 3C1888 E00C26B8 30420FFF */  andi      $v0, $v0, 0xFFF
/* 3C188C E00C26BC 8D230000 */  lw        $v1, 0x0($t1)
/* 3C1890 E00C26C0 004F1025 */  or        $v0, $v0, $t7
/* 3C1894 E00C26C4 AD420000 */  sw        $v0, 0x0($t2)
/* 3C1898 E00C26C8 3C020900 */  lui       $v0, %hi(D_09000000_415060)
/* 3C189C E00C26CC 24420000 */  addiu     $v0, $v0, %lo(D_09000000_415060)
/* 3C18A0 E00C26D0 460A2002 */  mul.s     $f0, $f4, $f10
/* 3C18A4 E00C26D4 00000000 */  nop
/* 3C18A8 E00C26D8 AD440004 */  sw        $a0, 0x4($t2)
/* 3C18AC E00C26DC 0060202D */  daddu     $a0, $v1, $zero
/* 3C18B0 E00C26E0 24630008 */  addiu     $v1, $v1, 0x8
/* 3C18B4 E00C26E4 AD230000 */  sw        $v1, 0x0($t1)
/* 3C18B8 E00C26E8 AC820004 */  sw        $v0, 0x4($a0)
/* 3C18BC E00C26EC 24620008 */  addiu     $v0, $v1, 0x8
/* 3C18C0 E00C26F0 AC920000 */  sw        $s2, 0x0($a0)
/* 3C18C4 E00C26F4 AD220000 */  sw        $v0, 0x0($t1)
/* 3C18C8 E00C26F8 24620010 */  addiu     $v0, $v1, 0x10
/* 3C18CC E00C26FC AC650000 */  sw        $a1, 0x0($v1)
/* 3C18D0 E00C2700 AC710004 */  sw        $s1, 0x4($v1)
/* 3C18D4 E00C2704 AD220000 */  sw        $v0, 0x0($t1)
/* 3C18D8 E00C2708 24620018 */  addiu     $v0, $v1, 0x18
/* 3C18DC E00C270C 000B2880 */  sll       $a1, $t3, 2
/* 3C18E0 E00C2710 30A50FFF */  andi      $a1, $a1, 0xFFF
/* 3C18E4 E00C2714 AC790008 */  sw        $t9, 0x8($v1)
/* 3C18E8 E00C2718 AC60000C */  sw        $zero, 0xC($v1)
/* 3C18EC E00C271C AD220000 */  sw        $v0, 0x0($t1)
/* 3C18F0 E00C2720 00B81025 */  or        $v0, $a1, $t8
/* 3C18F4 E00C2724 2564000F */  addiu     $a0, $t3, 0xF
/* 3C18F8 E00C2728 00042080 */  sll       $a0, $a0, 2
/* 3C18FC E00C272C 30840FFF */  andi      $a0, $a0, 0xFFF
/* 3C1900 E00C2730 AC620010 */  sw        $v0, 0x10($v1)
/* 3C1904 E00C2734 00901025 */  or        $v0, $a0, $s0
/* 3C1908 E00C2738 AC620014 */  sw        $v0, 0x14($v1)
/* 3C190C E00C273C 24620020 */  addiu     $v0, $v1, 0x20
/* 3C1910 E00C2740 AD220000 */  sw        $v0, 0x0($t1)
/* 3C1914 E00C2744 24620028 */  addiu     $v0, $v1, 0x28
/* 3C1918 E00C2748 AC730018 */  sw        $s3, 0x18($v1)
/* 3C191C E00C274C AC60001C */  sw        $zero, 0x1C($v1)
/* 3C1920 E00C2750 AD220000 */  sw        $v0, 0x0($t1)
/* 3C1924 E00C2754 24620030 */  addiu     $v0, $v1, 0x30
/* 3C1928 E00C2758 00AF2825 */  or        $a1, $a1, $t7
/* 3C192C E00C275C 00882025 */  or        $a0, $a0, $t0
/* 3C1930 E00C2760 AC670020 */  sw        $a3, 0x20($v1)
/* 3C1934 E00C2764 AC660024 */  sw        $a2, 0x24($v1)
/* 3C1938 E00C2768 AD220000 */  sw        $v0, 0x0($t1)
/* 3C193C E00C276C AC650028 */  sw        $a1, 0x28($v1)
/* 3C1940 E00C2770 46080002 */  mul.s     $f0, $f0, $f8
/* 3C1944 E00C2774 00000000 */  nop
/* 3C1948 E00C2778 AC64002C */  sw        $a0, 0x2C($v1)
/* 3C194C E00C277C 24630038 */  addiu     $v1, $v1, 0x38
/* 3C1950 E00C2780 0040202D */  daddu     $a0, $v0, $zero
/* 3C1954 E00C2784 4600303E */  c.le.s    $f6, $f0
/* 3C1958 E00C2788 00000000 */  nop
/* 3C195C E00C278C 45010005 */  bc1t      .LE00C27A4
/* 3C1960 E00C2790 AD230000 */   sw       $v1, 0x0($t1)
/* 3C1964 E00C2794 4600038D */  trunc.w.s $f14, $f0
/* 3C1968 E00C2798 44037000 */  mfc1      $v1, $f14
/* 3C196C E00C279C 080309EF */  j         .LE00C27BC
/* 3C1970 E00C27A0 3C02017D */   lui      $v0, (0x17D07D0 >> 16)
.LE00C27A4:
/* 3C1974 E00C27A4 46060001 */  sub.s     $f0, $f0, $f6
/* 3C1978 E00C27A8 4600038D */  trunc.w.s $f14, $f0
/* 3C197C E00C27AC 44037000 */  mfc1      $v1, $f14
/* 3C1980 E00C27B0 00000000 */  nop
/* 3C1984 E00C27B4 00741825 */  or        $v1, $v1, $s4
/* 3C1988 E00C27B8 3C02017D */  lui       $v0, (0x17D07D0 >> 16)
.LE00C27BC:
/* 3C198C E00C27BC 344207D0 */  ori       $v0, $v0, (0x17D07D0 & 0xFFFF)
/* 3C1990 E00C27C0 30630FFF */  andi      $v1, $v1, 0xFFF
/* 3C1994 E00C27C4 006F1825 */  or        $v1, $v1, $t7
/* 3C1998 E00C27C8 AC820004 */  sw        $v0, 0x4($a0)
/* 3C199C E00C27CC 2D82000A */  sltiu     $v0, $t4, 0xA
/* 3C19A0 E00C27D0 1040004B */  beqz      $v0, .LE00C2900
/* 3C19A4 E00C27D4 AC830000 */   sw       $v1, 0x0($a0)
/* 3C19A8 E00C27D8 000C1080 */  sll       $v0, $t4, 2
/* 3C19AC E00C27DC 3C01E00C */  lui       $at, (0xE00C29A8 >> 16)
/* 3C19B0 E00C27E0 00220821 */  addu      $at, $at, $v0
/* 3C19B4 E00C27E4 8C2229A8 */  lw        $v0, (0xE00C29A8 & 0xFFFF)($at)
/* 3C19B8 E00C27E8 00400008 */  jr        $v0
/* 3C19BC E00C27EC 00000000 */   nop
/* 3C19C0 E00C27F0 3C040600 */  lui       $a0, (0x6000204 >> 16)
/* 3C19C4 E00C27F4 8D220000 */  lw        $v0, 0x0($t1)
/* 3C19C8 E00C27F8 34840204 */  ori       $a0, $a0, (0x6000204 & 0xFFFF)
/* 3C19CC E00C27FC 0040182D */  daddu     $v1, $v0, $zero
/* 3C19D0 E00C2800 24420008 */  addiu     $v0, $v0, 0x8
/* 3C19D4 E00C2804 AD220000 */  sw        $v0, 0x0($t1)
/* 3C19D8 E00C2808 24020406 */  addiu     $v0, $zero, 0x406
/* 3C19DC E00C280C AC640000 */  sw        $a0, 0x0($v1)
/* 3C19E0 E00C2810 08030A40 */  j         .LE00C2900
/* 3C19E4 E00C2814 AC620004 */   sw       $v0, 0x4($v1)
/* 3C19E8 E00C2818 3C050602 */  lui       $a1, (0x602080A >> 16)
/* 3C19EC E00C281C 34A5080A */  ori       $a1, $a1, (0x602080A & 0xFFFF)
/* 3C19F0 E00C2820 3C040002 */  lui       $a0, (0x20A04 >> 16)
/* 3C19F4 E00C2824 8D220000 */  lw        $v0, 0x0($t1)
/* 3C19F8 E00C2828 08030A3B */  j         .LE00C28EC
/* 3C19FC E00C282C 34840A04 */   ori      $a0, $a0, (0x20A04 & 0xFFFF)
/* 3C1A00 E00C2830 3C050608 */  lui       $a1, (0x6080C0E >> 16)
/* 3C1A04 E00C2834 34A50C0E */  ori       $a1, $a1, (0x6080C0E & 0xFFFF)
/* 3C1A08 E00C2838 3C040008 */  lui       $a0, (0x80E0A >> 16)
/* 3C1A0C E00C283C 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1A10 E00C2840 08030A3B */  j         .LE00C28EC
/* 3C1A14 E00C2844 34840E0A */   ori      $a0, $a0, (0x80E0A & 0xFFFF)
/* 3C1A18 E00C2848 3C05060C */  lui       $a1, (0x60C1012 >> 16)
/* 3C1A1C E00C284C 34A51012 */  ori       $a1, $a1, (0x60C1012 & 0xFFFF)
/* 3C1A20 E00C2850 3C04000C */  lui       $a0, (0xC120E >> 16)
/* 3C1A24 E00C2854 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1A28 E00C2858 08030A3B */  j         .LE00C28EC
/* 3C1A2C E00C285C 3484120E */   ori      $a0, $a0, (0xC120E & 0xFFFF)
/* 3C1A30 E00C2860 3C050610 */  lui       $a1, (0x6101416 >> 16)
/* 3C1A34 E00C2864 34A51416 */  ori       $a1, $a1, (0x6101416 & 0xFFFF)
/* 3C1A38 E00C2868 3C040010 */  lui       $a0, (0x101612 >> 16)
/* 3C1A3C E00C286C 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1A40 E00C2870 08030A3B */  j         .LE00C28EC
/* 3C1A44 E00C2874 34841612 */   ori      $a0, $a0, (0x101612 & 0xFFFF)
/* 3C1A48 E00C2878 3C050614 */  lui       $a1, (0x614181A >> 16)
/* 3C1A4C E00C287C 34A5181A */  ori       $a1, $a1, (0x614181A & 0xFFFF)
/* 3C1A50 E00C2880 3C040014 */  lui       $a0, (0x141A16 >> 16)
/* 3C1A54 E00C2884 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1A58 E00C2888 08030A3B */  j         .LE00C28EC
/* 3C1A5C E00C288C 34841A16 */   ori      $a0, $a0, (0x141A16 & 0xFFFF)
/* 3C1A60 E00C2890 3C050618 */  lui       $a1, (0x6181C1E >> 16)
/* 3C1A64 E00C2894 34A51C1E */  ori       $a1, $a1, (0x6181C1E & 0xFFFF)
/* 3C1A68 E00C2898 3C040018 */  lui       $a0, (0x181E1A >> 16)
/* 3C1A6C E00C289C 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1A70 E00C28A0 08030A3B */  j         .LE00C28EC
/* 3C1A74 E00C28A4 34841E1A */   ori      $a0, $a0, (0x181E1A & 0xFFFF)
/* 3C1A78 E00C28A8 3C05061C */  lui       $a1, (0x61C2022 >> 16)
/* 3C1A7C E00C28AC 34A52022 */  ori       $a1, $a1, (0x61C2022 & 0xFFFF)
/* 3C1A80 E00C28B0 3C04001C */  lui       $a0, (0x1C221E >> 16)
/* 3C1A84 E00C28B4 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1A88 E00C28B8 08030A3B */  j         .LE00C28EC
/* 3C1A8C E00C28BC 3484221E */   ori      $a0, $a0, (0x1C221E & 0xFFFF)
/* 3C1A90 E00C28C0 3C050620 */  lui       $a1, (0x6202426 >> 16)
/* 3C1A94 E00C28C4 34A52426 */  ori       $a1, $a1, (0x6202426 & 0xFFFF)
/* 3C1A98 E00C28C8 3C040020 */  lui       $a0, (0x202622 >> 16)
/* 3C1A9C E00C28CC 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1AA0 E00C28D0 08030A3B */  j         .LE00C28EC
/* 3C1AA4 E00C28D4 34842622 */   ori      $a0, $a0, (0x202622 & 0xFFFF)
/* 3C1AA8 E00C28D8 3C050624 */  lui       $a1, (0x624282A >> 16)
/* 3C1AAC E00C28DC 34A5282A */  ori       $a1, $a1, (0x624282A & 0xFFFF)
/* 3C1AB0 E00C28E0 3C040024 */  lui       $a0, (0x242A26 >> 16)
/* 3C1AB4 E00C28E4 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1AB8 E00C28E8 34842A26 */  ori       $a0, $a0, (0x242A26 & 0xFFFF)
.LE00C28EC:
/* 3C1ABC E00C28EC 0040182D */  daddu     $v1, $v0, $zero
/* 3C1AC0 E00C28F0 24420008 */  addiu     $v0, $v0, 0x8
/* 3C1AC4 E00C28F4 AD220000 */  sw        $v0, 0x0($t1)
/* 3C1AC8 E00C28F8 AC650000 */  sw        $a1, 0x0($v1)
/* 3C1ACC E00C28FC AC640004 */  sw        $a0, 0x4($v1)
.LE00C2900:
/* 3C1AD0 E00C2900 25CE000C */  addiu     $t6, $t6, 0xC
/* 3C1AD4 E00C2904 25AD0003 */  addiu     $t5, $t5, 0x3
/* 3C1AD8 E00C2908 8D220000 */  lw        $v0, 0x0($t1)
/* 3C1ADC E00C290C 258C0001 */  addiu     $t4, $t4, 0x1
/* 3C1AE0 E00C2910 0040182D */  daddu     $v1, $v0, $zero
/* 3C1AE4 E00C2914 24420008 */  addiu     $v0, $v0, 0x8
/* 3C1AE8 E00C2918 AD220000 */  sw        $v0, 0x0($t1)
/* 3C1AEC E00C291C 2982000A */  slti      $v0, $t4, 0xA
/* 3C1AF0 E00C2920 AC730000 */  sw        $s3, 0x0($v1)
/* 3C1AF4 E00C2924 1440FEE0 */  bnez      $v0, .LE00C24A8
/* 3C1AF8 E00C2928 AC600004 */   sw       $zero, 0x4($v1)
/* 3C1AFC E00C292C 3C05D838 */  lui       $a1, (0xD8380002 >> 16)
/* 3C1B00 E00C2930 3C03800A */  lui       $v1, %hi(gMainGfxPos)
/* 3C1B04 E00C2934 2463A66C */  addiu     $v1, $v1, %lo(gMainGfxPos)
/* 3C1B08 E00C2938 8C620000 */  lw        $v0, 0x0($v1)
/* 3C1B0C E00C293C 34A50002 */  ori       $a1, $a1, (0xD8380002 & 0xFFFF)
/* 3C1B10 E00C2940 0040202D */  daddu     $a0, $v0, $zero
/* 3C1B14 E00C2944 24420008 */  addiu     $v0, $v0, 0x8
/* 3C1B18 E00C2948 AC620000 */  sw        $v0, 0x0($v1)
/* 3C1B1C E00C294C 24020040 */  addiu     $v0, $zero, 0x40
/* 3C1B20 E00C2950 AC850000 */  sw        $a1, 0x0($a0)
/* 3C1B24 E00C2954 AC820004 */  sw        $v0, 0x4($a0)
/* 3C1B28 E00C2958 8FBF00B8 */  lw        $ra, 0xB8($sp)
/* 3C1B2C E00C295C 8FB700B4 */  lw        $s7, 0xB4($sp)
/* 3C1B30 E00C2960 8FB600B0 */  lw        $s6, 0xB0($sp)
/* 3C1B34 E00C2964 8FB500AC */  lw        $s5, 0xAC($sp)
/* 3C1B38 E00C2968 8FB400A8 */  lw        $s4, 0xA8($sp)
/* 3C1B3C E00C296C 8FB300A4 */  lw        $s3, 0xA4($sp)
/* 3C1B40 E00C2970 8FB200A0 */  lw        $s2, 0xA0($sp)
/* 3C1B44 E00C2974 8FB1009C */  lw        $s1, 0x9C($sp)
/* 3C1B48 E00C2978 8FB00098 */  lw        $s0, 0x98($sp)
/* 3C1B4C E00C297C 03E00008 */  jr        $ra
/* 3C1B50 E00C2980 27BD00C0 */   addiu    $sp, $sp, 0xC0
/* 3C1B54 E00C2984 00000000 */  nop
/* 3C1B58 E00C2988 00000000 */  nop
/* 3C1B5C E00C298C 00000000 */  nop

### DECOMPILED C INSTRUCTIONS:

void fright_jar_appendGfx(void* effect) {
    FrightJarFXData* data = ((EffectInstance*)effect)->data.frightJar;
    Camera* camera = &gCameras[gCurrentCameraID];
    s32 unk_14 = data->unk_14;
    s32 unk_24 = data->unk_24;
    u32 alpha;
    s32 idx;
    Matrix4f sp10;
    Matrix4f sp50;
    s32 i;

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

    shim_guTranslateF(sp10, data->unk_04, data->unk_08, data->unk_0C);
    shim_guScaleF(sp50, -data->unk_28, data->unk_28, data->unk_28);
    shim_guMtxCatF(sp50, sp10, sp10);
    shim_guMtxF2L(sp10, &gDisplayContext->matrixStack[gMatrixListPos]);

    gSPMatrix(gMainGfxPos++, &gDisplayContext->matrixStack[gMatrixListPos++], G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
    gSPMatrix(gMainGfxPos++, camera->unkMatrix, G_MTX_NOPUSH | G_MTX_MUL | G_MTX_MODELVIEW);
    gSPDisplayList(gMainGfxPos++, D_09008BE0_3CA780);

    idx = 54 - unk_14;
    if (idx < 0) {
        idx = 0;
    }

    gSPVertex(gMainGfxPos++, &D_09004040_3C5BE0[idx], 22, 0);

    alpha = D_E00C2990[unk_14 % 16];
    gDPSetEnvColor(gMainGfxPos++, 0, 0, 0, alpha);

    for (i = 0; i < 10; i++) {
        s32 temp1;
        f32 temp2;
        f32 temp3;

        if (i < 5) {
            temp1 = i * 12;
        } else {
            temp1 = i * 12 + 4;
        }

        temp2 = i * 0.1f;
        temp3 = unk_24 * (1.0f - temp2) * 2.0f;

        if (temp3 > 255.0f) {
            temp3 = 255.0f;
        }

        gDPSetPrimColor(gMainGfxPos++, 0, 0, data->unk_18, data->unk_1C, data->unk_20, temp3);
        gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 64, &D_09002020_3C3BC0);
        gDPSetTile(gMainGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 8, 0, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
        gDPLoadSync(gMainGfxPos++);
        gDPLoadTile(gMainGfxPos++, G_TX_LOADTILE, 0, temp1 * 4, 254, (temp1 + 15) * 4);
        gDPPipeSync(gMainGfxPos++);
        gDPSetTile(gMainGfxPos++, G_IM_FMT_CI, G_IM_SIZ_4b, 8, 0, G_TX_RENDERTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
        gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE, 0, temp1 * 4, 508, (temp1 + 15) * 4);
        gDPSetTileSize(gMainGfxPos++, G_TX_RENDERTILE, 0, temp2 * 128.0f * 4.0f, 2000, 2000);
        gDPSetTextureImage(gMainGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 64, &D_09000000_3C1BA0);
        gDPSetTile(gMainGfxPos++, G_IM_FMT_CI, G_IM_SIZ_8b, 8, 0x80, G_TX_LOADTILE, 0, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
        gDPLoadSync(gMainGfxPos++);
        gDPLoadTile(gMainGfxPos++, G_TX_LOADTILE, 0, temp1 * 4, 254, (temp1 + 15) * 4);
        gDPPipeSync(gMainGfxPos++);
        gDPSetTile(gMainGfxPos++, G_IM_FMT_CI, G_IM_SIZ_4b, 8, 0x80, 1, 1, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14, G_TX_NOMIRROR | G_TX_CLAMP, 7, 14);
        gDPSetTileSize(gMainGfxPos++, 1, 0, temp1 * 4, 508, (temp1 + 15) * 4);
        gDPSetTileSize(gMainGfxPos++, 1, 0, temp2 * 128.0f * 4.0f, 2000, 2000);

        switch (i) {
            case 0:
                gSP2Triangles(gMainGfxPos++, 0, 1, 2, 0, 0, 2, 3, 0);
                break;
            case 1:
                gSP2Triangles(gMainGfxPos++, 1, 4, 5, 0, 1, 5, 2, 0);
                break;
            case 2:
                gSP2Triangles(gMainGfxPos++, 4, 6, 7, 0, 4, 7, 5, 0);
                break;
            case 3:
                gSP2Triangles(gMainGfxPos++, 6, 8, 9, 0, 6, 9, 7, 0);
                break;
            case 4:
                gSP2Triangles(gMainGfxPos++, 8, 10, 11, 0, 8, 11, 9, 0);
                break;
            case 5:
                gSP2Triangles(gMainGfxPos++, 10, 12, 13, 0, 10, 13, 11, 0);
                break;
            case 6:
                gSP2Triangles(gMainGfxPos++, 12, 14, 15, 0, 12, 15, 13, 0);
                break;
            case 7:
                gSP2Triangles(gMainGfxPos++, 14, 16, 17, 0, 14, 17, 15, 0);
                break;
            case 8:
                gSP2Triangles(gMainGfxPos++, 16, 18, 19, 0, 16, 19, 17, 0);
                break;
            case 9:
                gSP2Triangles(gMainGfxPos++, 18, 20, 21, 0, 18, 21, 19, 0);
                break;
        }

        gDPPipeSync(gMainGfxPos++);
    }

    gSPPopMatrix(gMainGfxPos++, G_MTX_MODELVIEW);
}


### RAW ASSEMBLY INSTRUCTIONS:

glabel appendGfx_npc
/* 153D0 80039FD0 27BDFF48 */  addiu     $sp, $sp, -0xB8
/* 153D4 80039FD4 AFB1009C */  sw        $s1, 0x9C($sp)
/* 153D8 80039FD8 AFBF00A0 */  sw        $ra, 0xA0($sp)
/* 153DC 80039FDC AFB00098 */  sw        $s0, 0x98($sp)
/* 153E0 80039FE0 F7B600B0 */  sdc1      $f22, 0xB0($sp)
/* 153E4 80039FE4 F7B400A8 */  sdc1      $f20, 0xA8($sp)
/* 153E8 80039FE8 0C00E769 */  jal       npc_get_render_yaw
/* 153EC 80039FEC 0080882D */   daddu    $s1, $a0, $zero
/* 153F0 80039FF0 27A40018 */  addiu     $a0, $sp, 0x18
/* 153F4 80039FF4 822200AB */  lb        $v0, 0xAB($s1)
/* 153F8 80039FF8 C624003C */  lwc1      $f4, 0x3C($s1)
/* 153FC 80039FFC 44821000 */  mtc1      $v0, $f2
/* 15400 8003A000 00000000 */  nop
/* 15404 8003A004 468010A0 */  cvt.s.w   $f2, $f2
/* 15408 8003A008 46022100 */  add.s     $f4, $f4, $f2
/* 1540C 8003A00C 8E250038 */  lw        $a1, 0x38($s1)
/* 15410 8003A010 8E270040 */  lw        $a3, 0x40($s1)
/* 15414 8003A014 44062000 */  mfc1      $a2, $f4
/* 15418 8003A018 0C019E40 */  jal       guTranslateF
/* 1541C 8003A01C 46000586 */   mov.s    $f22, $f0
/* 15420 8003A020 8E220000 */  lw        $v0, 0x0($s1)
/* 15424 8003A024 30420080 */  andi      $v0, $v0, 0x80
/* 15428 8003A028 10400007 */  beqz      $v0, .L8003A048
/* 1542C 8003A02C 27B00058 */   addiu    $s0, $sp, 0x58
/* 15430 8003A030 0C00E11E */  jal       mtx_ident_mirror_y
/* 15434 8003A034 0200202D */   daddu    $a0, $s0, $zero
/* 15438 8003A038 0200202D */  daddu     $a0, $s0, $zero
/* 1543C 8003A03C 27A50018 */  addiu     $a1, $sp, 0x18
/* 15440 8003A040 0C019D80 */  jal       guMtxCatF
/* 15444 8003A044 00A0302D */   daddu    $a2, $a1, $zero
.L8003A048:
/* 15448 8003A048 C6200050 */  lwc1      $f0, 0x50($s1)
/* 1544C 8003A04C 4480A000 */  mtc1      $zero, $f20
/* 15450 8003A050 00000000 */  nop
/* 15454 8003A054 46140032 */  c.eq.s    $f0, $f20
/* 15458 8003A058 00000000 */  nop
/* 1545C 8003A05C 4501000A */  bc1t      .L8003A088
/* 15460 8003A060 27B00058 */   addiu    $s0, $sp, 0x58
/* 15464 8003A064 4405A000 */  mfc1      $a1, $f20
/* 15468 8003A068 44060000 */  mfc1      $a2, $f0
/* 1546C 8003A06C 4407A000 */  mfc1      $a3, $f20
/* 15470 8003A070 0C019E40 */  jal       guTranslateF
/* 15474 8003A074 0200202D */   daddu    $a0, $s0, $zero
/* 15478 8003A078 0200202D */  daddu     $a0, $s0, $zero
/* 1547C 8003A07C 27A50018 */  addiu     $a1, $sp, 0x18
/* 15480 8003A080 0C019D80 */  jal       guMtxCatF
/* 15484 8003A084 00A0302D */   daddu    $a2, $a1, $zero
.L8003A088:
/* 15488 8003A088 C6200048 */  lwc1      $f0, 0x48($s1)
/* 1548C 8003A08C 46140032 */  c.eq.s    $f0, $f20
/* 15490 8003A090 00000000 */  nop
/* 15494 8003A094 4501000B */  bc1t      .L8003A0C4
/* 15498 8003A098 27B00058 */   addiu    $s0, $sp, 0x58
/* 1549C 8003A09C E7B40010 */  swc1      $f20, 0x10($sp)
/* 154A0 8003A0A0 8E250048 */  lw        $a1, 0x48($s1)
/* 154A4 8003A0A4 4406A000 */  mfc1      $a2, $f20
/* 154A8 8003A0A8 3C073F80 */  lui       $a3, (0x3F800000 >> 16)
/* 154AC 8003A0AC 0C019EC8 */  jal       guRotateF
/* 154B0 8003A0B0 0200202D */   daddu    $a0, $s0, $zero
/* 154B4 8003A0B4 0200202D */  daddu     $a0, $s0, $zero
/* 154B8 8003A0B8 27A50018 */  addiu     $a1, $sp, 0x18
/* 154BC 8003A0BC 0C019D80 */  jal       guMtxCatF
/* 154C0 8003A0C0 00A0302D */   daddu    $a2, $a1, $zero
.L8003A0C4:
/* 154C4 8003A0C4 C6200044 */  lwc1      $f0, 0x44($s1)
/* 154C8 8003A0C8 46140032 */  c.eq.s    $f0, $f20
/* 154CC 8003A0CC 00000000 */  nop
/* 154D0 8003A0D0 4501000B */  bc1t      .L8003A100
/* 154D4 8003A0D4 27B00058 */   addiu    $s0, $sp, 0x58
/* 154D8 8003A0D8 E7B40010 */  swc1      $f20, 0x10($sp)
/* 154DC 8003A0DC 8E250044 */  lw        $a1, 0x44($s1)
/* 154E0 8003A0E0 3C063F80 */  lui       $a2, (0x3F800000 >> 16)
/* 154E4 8003A0E4 4407A000 */  mfc1      $a3, $f20
/* 154E8 8003A0E8 0C019EC8 */  jal       guRotateF
/* 154EC 8003A0EC 0200202D */   daddu    $a0, $s0, $zero
/* 154F0 8003A0F0 0200202D */  daddu     $a0, $s0, $zero
/* 154F4 8003A0F4 27A50018 */  addiu     $a1, $sp, 0x18
/* 154F8 8003A0F8 0C019D80 */  jal       guMtxCatF
/* 154FC 8003A0FC 00A0302D */   daddu    $a2, $a1, $zero
.L8003A100:
/* 15500 8003A100 C620004C */  lwc1      $f0, 0x4C($s1)
/* 15504 8003A104 46140032 */  c.eq.s    $f0, $f20
/* 15508 8003A108 00000000 */  nop
/* 1550C 8003A10C 4501000E */  bc1t      .L8003A148
/* 15510 8003A110 27B00058 */   addiu    $s0, $sp, 0x58
/* 15514 8003A114 4406A000 */  mfc1      $a2, $f20
/* 15518 8003A118 4407A000 */  mfc1      $a3, $f20
/* 1551C 8003A11C 3C013F80 */  lui       $at, (0x3F800000 >> 16)
/* 15520 8003A120 44810000 */  mtc1      $at, $f0
/* 15524 8003A124 00000000 */  nop
/* 15528 8003A128 E7A00010 */  swc1      $f0, 0x10($sp)
/* 1552C 8003A12C 8E25004C */  lw        $a1, 0x4C($s1)
/* 15530 8003A130 0C019EC8 */  jal       guRotateF
/* 15534 8003A134 0200202D */   daddu    $a0, $s0, $zero
/* 15538 8003A138 0200202D */  daddu     $a0, $s0, $zero
/* 1553C 8003A13C 27A50018 */  addiu     $a1, $sp, 0x18
/* 15540 8003A140 0C019D80 */  jal       guMtxCatF
/* 15544 8003A144 00A0302D */   daddu    $a2, $a1, $zero
.L8003A148:
/* 15548 8003A148 C6200050 */  lwc1      $f0, 0x50($s1)
/* 1554C 8003A14C 46140032 */  c.eq.s    $f0, $f20
/* 15550 8003A150 00000000 */  nop
/* 15554 8003A154 4501000B */  bc1t      .L8003A184
/* 15558 8003A158 27B00058 */   addiu    $s0, $sp, 0x58
/* 1555C 8003A15C 46000007 */  neg.s     $f0, $f0
/* 15560 8003A160 4405A000 */  mfc1      $a1, $f20
/* 15564 8003A164 4407A000 */  mfc1      $a3, $f20
/* 15568 8003A168 44060000 */  mfc1      $a2, $f0
/* 1556C 8003A16C 0C019E40 */  jal       guTranslateF
/* 15570 8003A170 0200202D */   daddu    $a0, $s0, $zero
/* 15574 8003A174 0200202D */  daddu     $a0, $s0, $zero
/* 15578 8003A178 27A50018 */  addiu     $a1, $sp, 0x18
/* 1557C 8003A17C 0C019D80 */  jal       guMtxCatF
/* 15580 8003A180 00A0302D */   daddu    $a2, $a1, $zero
.L8003A184:
/* 15584 8003A184 C6220318 */  lwc1      $f2, 0x318($s1)
/* 15588 8003A188 46141032 */  c.eq.s    $f2, $f20
/* 1558C 8003A18C 00000000 */  nop
/* 15590 8003A190 45000006 */  bc1f      .L8003A1AC
/* 15594 8003A194 00000000 */   nop
/* 15598 8003A198 C620031C */  lwc1      $f0, 0x31C($s1)
/* 1559C 8003A19C 46140032 */  c.eq.s    $f0, $f20
/* 155A0 8003A1A0 00000000 */  nop
/* 155A4 8003A1A4 4501000A */  bc1t      .L8003A1D0
/* 155A8 8003A1A8 00000000 */   nop
.L8003A1AC:
/* 155AC 8003A1AC 44051000 */  mfc1      $a1, $f2
/* 155B0 8003A1B0 8E26031C */  lw        $a2, 0x31C($s1)
/* 155B4 8003A1B4 4407A000 */  mfc1      $a3, $f20
/* 155B8 8003A1B8 0C019E40 */  jal       guTranslateF
/* 155BC 8003A1BC 27A40018 */   addiu    $a0, $sp, 0x18
/* 155C0 8003A1C0 27A40058 */  addiu     $a0, $sp, 0x58
/* 155C4 8003A1C4 27A50018 */  addiu     $a1, $sp, 0x18
/* 155C8 8003A1C8 0C019D80 */  jal       guMtxCatF
/* 155CC 8003A1CC 00A0302D */   daddu    $a2, $a1, $zero
.L8003A1D0:
/* 155D0 8003A1D0 C6200054 */  lwc1      $f0, 0x54($s1)
/* 155D4 8003A1D4 3C01800A */  lui       $at, %hi(D_80098480)
/* 155D8 8003A1D8 D4268480 */  ldc1      $f6, %lo(D_80098480)($at)
/* 155DC 8003A1DC 46000021 */  cvt.d.s   $f0, $f0
/* 155E0 8003A1E0 46260002 */  mul.d     $f0, $f0, $f6
/* 155E4 8003A1E4 00000000 */  nop
/* 155E8 8003A1E8 3C013FF0 */  lui       $at, (0x3FF00000 >> 16)
/* 155EC 8003A1EC 44812800 */  mtc1      $at, $f5
/* 155F0 8003A1F0 44802000 */  mtc1      $zero, $f4
/* 155F4 8003A1F4 00000000 */  nop
/* 155F8 8003A1F8 46240032 */  c.eq.d    $f0, $f4
/* 155FC 8003A1FC 00000000 */  nop
/* 15600 8003A200 45000014 */  bc1f      .L8003A254
/* 15604 8003A204 00000000 */   nop
/* 15608 8003A208 C6200058 */  lwc1      $f0, 0x58($s1)
/* 1560C 8003A20C C6220320 */  lwc1      $f2, 0x320($s1)
/* 15610 8003A210 46020002 */  mul.s     $f0, $f0, $f2
/* 15614 8003A214 00000000 */  nop
/* 15618 8003A218 46000021 */  cvt.d.s   $f0, $f0
/* 1561C 8003A21C 46260002 */  mul.d     $f0, $f0, $f6
/* 15620 8003A220 00000000 */  nop
/* 15624 8003A224 46240032 */  c.eq.d    $f0, $f4
/* 15628 8003A228 00000000 */  nop
/* 1562C 8003A22C 45000009 */  bc1f      .L8003A254
/* 15630 8003A230 00000000 */   nop
/* 15634 8003A234 C620005C */  lwc1      $f0, 0x5C($s1)
/* 15638 8003A238 46000021 */  cvt.d.s   $f0, $f0
/* 1563C 8003A23C 46260002 */  mul.d     $f0, $f0, $f6
/* 15640 8003A240 00000000 */  nop
/* 15644 8003A244 46240032 */  c.eq.d    $f0, $f4
/* 15648 8003A248 00000000 */  nop
/* 1564C 8003A24C 4501001F */  bc1t      .L8003A2CC
/* 15650 8003A250 00000000 */   nop
.L8003A254:
/* 15654 8003A254 C6260054 */  lwc1      $f6, 0x54($s1)
/* 15658 8003A258 3C01800A */  lui       $at, %hi(D_80098488)
/* 1565C 8003A25C D4288488 */  ldc1      $f8, %lo(D_80098488)($at)
/* 15660 8003A260 460031A1 */  cvt.d.s   $f6, $f6
/* 15664 8003A264 46283182 */  mul.d     $f6, $f6, $f8
/* 15668 8003A268 00000000 */  nop
/* 1566C 8003A26C C622005C */  lwc1      $f2, 0x5C($s1)
/* 15670 8003A270 460010A1 */  cvt.d.s   $f2, $f2
/* 15674 8003A274 46281082 */  mul.d     $f2, $f2, $f8
/* 15678 8003A278 00000000 */  nop
/* 1567C 8003A27C C6200058 */  lwc1      $f0, 0x58($s1)
/* 15680 8003A280 C6240320 */  lwc1      $f4, 0x320($s1)
/* 15684 8003A284 46040002 */  mul.s     $f0, $f0, $f4
/* 15688 8003A288 00000000 */  nop
/* 1568C 8003A28C 46000021 */  cvt.d.s   $f0, $f0
/* 15690 8003A290 46280002 */  mul.d     $f0, $f0, $f8
/* 15694 8003A294 00000000 */  nop
/* 15698 8003A298 27B00058 */  addiu     $s0, $sp, 0x58
/* 1569C 8003A29C 462031A0 */  cvt.s.d   $f6, $f6
/* 156A0 8003A2A0 462010A0 */  cvt.s.d   $f2, $f2
/* 156A4 8003A2A4 44053000 */  mfc1      $a1, $f6
/* 156A8 8003A2A8 44071000 */  mfc1      $a3, $f2
/* 156AC 8003A2AC 46200020 */  cvt.s.d   $f0, $f0
/* 156B0 8003A2B0 44060000 */  mfc1      $a2, $f0
/* 156B4 8003A2B4 0C019DF0 */  jal       guScaleF
/* 156B8 8003A2B8 0200202D */   daddu    $a0, $s0, $zero
/* 156BC 8003A2BC 0200202D */  daddu     $a0, $s0, $zero
/* 156C0 8003A2C0 27A50018 */  addiu     $a1, $sp, 0x18
/* 156C4 8003A2C4 0C019D80 */  jal       guMtxCatF
/* 156C8 8003A2C8 00A0302D */   daddu    $a2, $a1, $zero
.L8003A2CC:
/* 156CC 8003A2CC 8E230000 */  lw        $v1, 0x0($s1)
/* 156D0 8003A2D0 3C024000 */  lui       $v0, (0x40000000 >> 16)
/* 156D4 8003A2D4 00621024 */  and       $v0, $v1, $v0
/* 156D8 8003A2D8 14400014 */  bnez      $v0, .L8003A32C
/* 156DC 8003A2DC 0220202D */   daddu    $a0, $s1, $zero
/* 156E0 8003A2E0 3C020100 */  lui       $v0, (0x1000000 >> 16)
/* 156E4 8003A2E4 00621024 */  and       $v0, $v1, $v0
/* 156E8 8003A2E8 14400017 */  bnez      $v0, .L8003A348
/* 156EC 8003A2EC 00000000 */   nop
/* 156F0 8003A2F0 8E220028 */  lw        $v0, 0x28($s1)
/* 156F4 8003A2F4 10400014 */  beqz      $v0, .L8003A348
/* 156F8 8003A2F8 00000000 */   nop
/* 156FC 8003A2FC 8E220024 */  lw        $v0, 0x24($s1)
/* 15700 8003A300 04400011 */  bltz      $v0, .L8003A348
/* 15704 8003A304 00000000 */   nop
/* 15708 8003A308 4600B28D */  trunc.w.s $f10, $f22
/* 1570C 8003A30C 44055000 */  mfc1      $a1, $f10
/* 15710 8003A310 0C00ED1F */  jal       npc_draw_with_palswap
/* 15714 8003A314 27A60018 */   addiu    $a2, $sp, 0x18
/* 15718 8003A318 8E240024 */  lw        $a0, 0x24($s1)
/* 1571C 8003A31C 0C0B7972 */  jal       spr_get_notify_value
/* 15720 8003A320 00000000 */   nop
/* 15724 8003A324 0800E8D2 */  j         .L8003A348
/* 15728 8003A328 AE22002C */   sw       $v0, 0x2C($s1)
.L8003A32C:
/* 1572C 8003A32C 4600B28D */  trunc.w.s $f10, $f22
/* 15730 8003A330 44055000 */  mfc1      $a1, $f10
/* 15734 8003A334 0C00ED1F */  jal       npc_draw_with_palswap
/* 15738 8003A338 27A60018 */   addiu    $a2, $sp, 0x18
/* 1573C 8003A33C 0C0B77B1 */  jal       func_802DDEC4
/* 15740 8003A340 24040001 */   addiu    $a0, $zero, 0x1
/* 15744 8003A344 AE22002C */  sw        $v0, 0x2C($s1)
.L8003A348:
/* 15748 8003A348 8E220000 */  lw        $v0, 0x0($s1)
/* 1574C 8003A34C 3C030002 */  lui       $v1, (0x20000 >> 16)
/* 15750 8003A350 00431024 */  and       $v0, $v0, $v1
/* 15754 8003A354 1040008E */  beqz      $v0, .L8003A590
/* 15758 8003A358 00000000 */   nop
/* 1575C 8003A35C 822200AB */  lb        $v0, 0xAB($s1)
/* 15760 8003A360 C622003C */  lwc1      $f2, 0x3C($s1)
/* 15764 8003A364 44820000 */  mtc1      $v0, $f0
/* 15768 8003A368 00000000 */  nop
/* 1576C 8003A36C 46800020 */  cvt.s.w   $f0, $f0
/* 15770 8003A370 46001080 */  add.s     $f2, $f2, $f0
/* 15774 8003A374 C6200040 */  lwc1      $f0, 0x40($s1)
/* 15778 8003A378 8E250038 */  lw        $a1, 0x38($s1)
/* 1577C 8003A37C 46000007 */  neg.s     $f0, $f0
/* 15780 8003A380 44070000 */  mfc1      $a3, $f0
/* 15784 8003A384 44061000 */  mfc1      $a2, $f2
/* 15788 8003A388 0C019E40 */  jal       guTranslateF
/* 1578C 8003A38C 27A40018 */   addiu    $a0, $sp, 0x18
/* 15790 8003A390 8E220000 */  lw        $v0, 0x0($s1)
/* 15794 8003A394 30420080 */  andi      $v0, $v0, 0x80
/* 15798 8003A398 10400007 */  beqz      $v0, .L8003A3B8
/* 1579C 8003A39C 27B00058 */   addiu    $s0, $sp, 0x58
/* 157A0 8003A3A0 0C00E11E */  jal       mtx_ident_mirror_y
/* 157A4 8003A3A4 0200202D */   daddu    $a0, $s0, $zero
/* 157A8 8003A3A8 0200202D */  daddu     $a0, $s0, $zero
/* 157AC 8003A3AC 27A50018 */  addiu     $a1, $sp, 0x18
/* 157B0 8003A3B0 0C019D80 */  jal       guMtxCatF
/* 157B4 8003A3B4 00A0302D */   daddu    $a2, $a1, $zero
.L8003A3B8:
/* 157B8 8003A3B8 C6200048 */  lwc1      $f0, 0x48($s1)
/* 157BC 8003A3BC 44801000 */  mtc1      $zero, $f2
/* 157C0 8003A3C0 00000000 */  nop
/* 157C4 8003A3C4 46020032 */  c.eq.s    $f0, $f2
/* 157C8 8003A3C8 00000000 */  nop
/* 157CC 8003A3CC 4500000B */  bc1f      .L8003A3FC
/* 157D0 8003A3D0 27B00058 */   addiu    $s0, $sp, 0x58
/* 157D4 8003A3D4 C6200044 */  lwc1      $f0, 0x44($s1)
/* 157D8 8003A3D8 46020032 */  c.eq.s    $f0, $f2
/* 157DC 8003A3DC 00000000 */  nop
/* 157E0 8003A3E0 45000006 */  bc1f      .L8003A3FC
/* 157E4 8003A3E4 00000000 */   nop
/* 157E8 8003A3E8 C620004C */  lwc1      $f0, 0x4C($s1)
/* 157EC 8003A3EC 46020032 */  c.eq.s    $f0, $f2
/* 157F0 8003A3F0 00000000 */  nop
/* 157F4 8003A3F4 4501000A */  bc1t      .L8003A420
/* 157F8 8003A3F8 00000000 */   nop
.L8003A3FC:
/* 157FC 8003A3FC 8E250044 */  lw        $a1, 0x44($s1)
/* 15800 8003A400 8E260048 */  lw        $a2, 0x48($s1)
/* 15804 8003A404 8E27004C */  lw        $a3, 0x4C($s1)
/* 15808 8003A408 0C0190B4 */  jal       guRotateRPYF
/* 1580C 8003A40C 0200202D */   daddu    $a0, $s0, $zero
/* 15810 8003A410 0200202D */  daddu     $a0, $s0, $zero
/* 15814 8003A414 27A50018 */  addiu     $a1, $sp, 0x18
/* 15818 8003A418 0C019D80 */  jal       guMtxCatF
/* 1581C 8003A41C 00A0302D */   daddu    $a2, $a1, $zero
.L8003A420:
/* 15820 8003A420 C6200054 */  lwc1      $f0, 0x54($s1)
/* 15824 8003A424 3C01800A */  lui       $at, %hi(D_80098490)
/* 15828 8003A428 D4268490 */  ldc1      $f6, %lo(D_80098490)($at)
/* 1582C 8003A42C 46000021 */  cvt.d.s   $f0, $f0
/* 15830 8003A430 46260002 */  mul.d     $f0, $f0, $f6
/* 15834 8003A434 00000000 */  nop
/* 15838 8003A438 3C013FF0 */  lui       $at, (0x3FF00000 >> 16)
/* 1583C 8003A43C 44812800 */  mtc1      $at, $f5
/* 15840 8003A440 44802000 */  mtc1      $zero, $f4
/* 15844 8003A444 00000000 */  nop
/* 15848 8003A448 46240032 */  c.eq.d    $f0, $f4
/* 1584C 8003A44C 00000000 */  nop
/* 15850 8003A450 45000014 */  bc1f      .L8003A4A4
/* 15854 8003A454 00000000 */   nop
/* 15858 8003A458 C6200058 */  lwc1      $f0, 0x58($s1)
/* 1585C 8003A45C C6220320 */  lwc1      $f2, 0x320($s1)
/* 15860 8003A460 46020002 */  mul.s     $f0, $f0, $f2
/* 15864 8003A464 00000000 */  nop
/* 15868 8003A468 46000021 */  cvt.d.s   $f0, $f0
/* 1586C 8003A46C 46260002 */  mul.d     $f0, $f0, $f6
/* 15870 8003A470 00000000 */  nop
/* 15874 8003A474 46240032 */  c.eq.d    $f0, $f4
/* 15878 8003A478 00000000 */  nop
/* 1587C 8003A47C 45000009 */  bc1f      .L8003A4A4
/* 15880 8003A480 00000000 */   nop
/* 15884 8003A484 C620005C */  lwc1      $f0, 0x5C($s1)
/* 15888 8003A488 46000021 */  cvt.d.s   $f0, $f0
/* 1588C 8003A48C 46260002 */  mul.d     $f0, $f0, $f6
/* 15890 8003A490 00000000 */  nop
/* 15894 8003A494 46240032 */  c.eq.d    $f0, $f4
/* 15898 8003A498 00000000 */  nop
/* 1589C 8003A49C 4501001F */  bc1t      .L8003A51C
/* 158A0 8003A4A0 00000000 */   nop
.L8003A4A4:
/* 158A4 8003A4A4 C6260054 */  lwc1      $f6, 0x54($s1)
/* 158A8 8003A4A8 3C01800A */  lui       $at, %hi(D_80098498)
/* 158AC 8003A4AC D4288498 */  ldc1      $f8, %lo(D_80098498)($at)
/* 158B0 8003A4B0 460031A1 */  cvt.d.s   $f6, $f6
/* 158B4 8003A4B4 46283182 */  mul.d     $f6, $f6, $f8
/* 158B8 8003A4B8 00000000 */  nop
/* 158BC 8003A4BC C624005C */  lwc1      $f4, 0x5C($s1)
/* 158C0 8003A4C0 46002121 */  cvt.d.s   $f4, $f4
/* 158C4 8003A4C4 46282102 */  mul.d     $f4, $f4, $f8
/* 158C8 8003A4C8 00000000 */  nop
/* 158CC 8003A4CC C6200058 */  lwc1      $f0, 0x58($s1)
/* 158D0 8003A4D0 C6220320 */  lwc1      $f2, 0x320($s1)
/* 158D4 8003A4D4 46020002 */  mul.s     $f0, $f0, $f2
/* 158D8 8003A4D8 00000000 */  nop
/* 158DC 8003A4DC 46000021 */  cvt.d.s   $f0, $f0
/* 158E0 8003A4E0 46280002 */  mul.d     $f0, $f0, $f8
/* 158E4 8003A4E4 00000000 */  nop
/* 158E8 8003A4E8 27B00058 */  addiu     $s0, $sp, 0x58
/* 158EC 8003A4EC 462031A0 */  cvt.s.d   $f6, $f6
/* 158F0 8003A4F0 46202120 */  cvt.s.d   $f4, $f4
/* 158F4 8003A4F4 44053000 */  mfc1      $a1, $f6
/* 158F8 8003A4F8 44072000 */  mfc1      $a3, $f4
/* 158FC 8003A4FC 46200020 */  cvt.s.d   $f0, $f0
/* 15900 8003A500 44060000 */  mfc1      $a2, $f0
/* 15904 8003A504 0C019DF0 */  jal       guScaleF
/* 15908 8003A508 0200202D */   daddu    $a0, $s0, $zero
/* 1590C 8003A50C 0200202D */  daddu     $a0, $s0, $zero
/* 15910 8003A510 27A50018 */  addiu     $a1, $sp, 0x18
/* 15914 8003A514 0C019D80 */  jal       guMtxCatF
/* 15918 8003A518 00A0302D */   daddu    $a2, $a1, $zero
.L8003A51C:
/* 1591C 8003A51C 8E230000 */  lw        $v1, 0x0($s1)
/* 15920 8003A520 3C024000 */  lui       $v0, (0x40000000 >> 16)
/* 15924 8003A524 00621024 */  and       $v0, $v1, $v0
/* 15928 8003A528 14400011 */  bnez      $v0, .L8003A570
/* 1592C 8003A52C 27A20018 */   addiu    $v0, $sp, 0x18
/* 15930 8003A530 3C020100 */  lui       $v0, (0x1000000 >> 16)
/* 15934 8003A534 00621024 */  and       $v0, $v1, $v0
/* 15938 8003A538 14400015 */  bnez      $v0, .L8003A590
/* 1593C 8003A53C 00000000 */   nop
/* 15940 8003A540 8E220028 */  lw        $v0, 0x28($s1)
/* 15944 8003A544 10400012 */  beqz      $v0, .L8003A590
/* 15948 8003A548 0000302D */   daddu    $a2, $zero, $zero
/* 1594C 8003A54C 4600B28D */  trunc.w.s $f10, $f22
/* 15950 8003A550 44055000 */  mfc1      $a1, $f10
/* 15954 8003A554 27A20018 */  addiu     $v0, $sp, 0x18
/* 15958 8003A558 AFA20010 */  sw        $v0, 0x10($sp)
/* 1595C 8003A55C 8E240024 */  lw        $a0, 0x24($s1)
/* 15960 8003A560 0C0B78F6 */  jal       spr_draw_npc_sprite
/* 15964 8003A564 00C0382D */   daddu    $a3, $a2, $zero
/* 15968 8003A568 0800E964 */  j         .L8003A590
/* 1596C 8003A56C 00000000 */   nop
.L8003A570:
/* 15970 8003A570 AFA20010 */  sw        $v0, 0x10($sp)
/* 15974 8003A574 3C044000 */  lui       $a0, (0x40000001 >> 16)
/* 15978 8003A578 34840001 */  ori       $a0, $a0, (0x40000001 & 0xFFFF)
/* 1597C 8003A57C 4600B28D */  trunc.w.s $f10, $f22
/* 15980 8003A580 44055000 */  mfc1      $a1, $f10
/* 15984 8003A584 0000302D */  daddu     $a2, $zero, $zero
/* 15988 8003A588 0C0B7710 */  jal       spr_draw_player_sprite
/* 1598C 8003A58C 00C0382D */   daddu    $a3, $a2, $zero
.L8003A590:
/* 15990 8003A590 8E220000 */  lw        $v0, 0x0($s1)
/* 15994 8003A594 3C030008 */  lui       $v1, (0x80000 >> 16)
/* 15998 8003A598 00431024 */  and       $v0, $v0, $v1
/* 1599C 8003A59C 1040008A */  beqz      $v0, .L8003A7C8
/* 159A0 8003A5A0 00000000 */   nop
/* 159A4 8003A5A4 822200AB */  lb        $v0, 0xAB($s1)
/* 159A8 8003A5A8 C622003C */  lwc1      $f2, 0x3C($s1)
/* 159AC 8003A5AC 44820000 */  mtc1      $v0, $f0
/* 159B0 8003A5B0 00000000 */  nop
/* 159B4 8003A5B4 46800020 */  cvt.s.w   $f0, $f0
/* 159B8 8003A5B8 46001080 */  add.s     $f2, $f2, $f0
/* 159BC 8003A5BC 8E250038 */  lw        $a1, 0x38($s1)
/* 159C0 8003A5C0 8E270040 */  lw        $a3, 0x40($s1)
/* 159C4 8003A5C4 46001087 */  neg.s     $f2, $f2
/* 159C8 8003A5C8 44061000 */  mfc1      $a2, $f2
/* 159CC 8003A5CC 0C019E40 */  jal       guTranslateF
/* 159D0 8003A5D0 27A40018 */   addiu    $a0, $sp, 0x18
/* 159D4 8003A5D4 27B00058 */  addiu     $s0, $sp, 0x58
/* 159D8 8003A5D8 0C00E11E */  jal       mtx_ident_mirror_y
/* 159DC 8003A5DC 0200202D */   daddu    $a0, $s0, $zero
/* 159E0 8003A5E0 0200202D */  daddu     $a0, $s0, $zero
/* 159E4 8003A5E4 27A50018 */  addiu     $a1, $sp, 0x18
/* 159E8 8003A5E8 0C019D80 */  jal       guMtxCatF
/* 159EC 8003A5EC 00A0302D */   daddu    $a2, $a1, $zero
/* 159F0 8003A5F0 C6200048 */  lwc1      $f0, 0x48($s1)
/* 159F4 8003A5F4 44801000 */  mtc1      $zero, $f2
/* 159F8 8003A5F8 00000000 */  nop
/* 159FC 8003A5FC 46020032 */  c.eq.s    $f0, $f2
/* 15A00 8003A600 00000000 */  nop
/* 15A04 8003A604 4500000B */  bc1f      .L8003A634
/* 15A08 8003A608 27B00058 */   addiu    $s0, $sp, 0x58
/* 15A0C 8003A60C C6200044 */  lwc1      $f0, 0x44($s1)
/* 15A10 8003A610 46020032 */  c.eq.s    $f0, $f2
/* 15A14 8003A614 00000000 */  nop
/* 15A18 8003A618 45000006 */  bc1f      .L8003A634
/* 15A1C 8003A61C 00000000 */   nop
/* 15A20 8003A620 C620004C */  lwc1      $f0, 0x4C($s1)
/* 15A24 8003A624 46020032 */  c.eq.s    $f0, $f2
/* 15A28 8003A628 00000000 */  nop
/* 15A2C 8003A62C 4501000A */  bc1t      .L8003A658
/* 15A30 8003A630 00000000 */   nop
.L8003A634:
/* 15A34 8003A634 8E250044 */  lw        $a1, 0x44($s1)
/* 15A38 8003A638 8E260048 */  lw        $a2, 0x48($s1)
/* 15A3C 8003A63C 8E27004C */  lw        $a3, 0x4C($s1)
/* 15A40 8003A640 0C0190B4 */  jal       guRotateRPYF
/* 15A44 8003A644 0200202D */   daddu    $a0, $s0, $zero
/* 15A48 8003A648 0200202D */  daddu     $a0, $s0, $zero
/* 15A4C 8003A64C 27A50018 */  addiu     $a1, $sp, 0x18
/* 15A50 8003A650 0C019D80 */  jal       guMtxCatF
/* 15A54 8003A654 00A0302D */   daddu    $a2, $a1, $zero
.L8003A658:
/* 15A58 8003A658 C6200054 */  lwc1      $f0, 0x54($s1)
/* 15A5C 8003A65C 3C01800A */  lui       $at, %hi(D_800984A0)
/* 15A60 8003A660 D42684A0 */  ldc1      $f6, %lo(D_800984A0)($at)
/* 15A64 8003A664 46000021 */  cvt.d.s   $f0, $f0
/* 15A68 8003A668 46260002 */  mul.d     $f0, $f0, $f6
/* 15A6C 8003A66C 00000000 */  nop
/* 15A70 8003A670 3C013FF0 */  lui       $at, (0x3FF00000 >> 16)
/* 15A74 8003A674 44812800 */  mtc1      $at, $f5
/* 15A78 8003A678 44802000 */  mtc1      $zero, $f4
/* 15A7C 8003A67C 00000000 */  nop
/* 15A80 8003A680 46240032 */  c.eq.d    $f0, $f4
/* 15A84 8003A684 00000000 */  nop
/* 15A88 8003A688 45000014 */  bc1f      .L8003A6DC
/* 15A8C 8003A68C 00000000 */   nop
/* 15A90 8003A690 C6200058 */  lwc1      $f0, 0x58($s1)
/* 15A94 8003A694 C6220320 */  lwc1      $f2, 0x320($s1)
/* 15A98 8003A698 46020002 */  mul.s     $f0, $f0, $f2
/* 15A9C 8003A69C 00000000 */  nop
/* 15AA0 8003A6A0 46000021 */  cvt.d.s   $f0, $f0
/* 15AA4 8003A6A4 46260002 */  mul.d     $f0, $f0, $f6
/* 15AA8 8003A6A8 00000000 */  nop
/* 15AAC 8003A6AC 46240032 */  c.eq.d    $f0, $f4
/* 15AB0 8003A6B0 00000000 */  nop
/* 15AB4 8003A6B4 45000009 */  bc1f      .L8003A6DC
/* 15AB8 8003A6B8 00000000 */   nop
/* 15ABC 8003A6BC C620005C */  lwc1      $f0, 0x5C($s1)
/* 15AC0 8003A6C0 46000021 */  cvt.d.s   $f0, $f0
/* 15AC4 8003A6C4 46260002 */  mul.d     $f0, $f0, $f6
/* 15AC8 8003A6C8 00000000 */  nop
/* 15ACC 8003A6CC 46240032 */  c.eq.d    $f0, $f4
/* 15AD0 8003A6D0 00000000 */  nop
/* 15AD4 8003A6D4 4501001F */  bc1t      .L8003A754
/* 15AD8 8003A6D8 00000000 */   nop
.L8003A6DC:
/* 15ADC 8003A6DC C6260054 */  lwc1      $f6, 0x54($s1)
/* 15AE0 8003A6E0 3C01800A */  lui       $at, %hi(D_800984A8)
/* 15AE4 8003A6E4 D42884A8 */  ldc1      $f8, %lo(D_800984A8)($at)
/* 15AE8 8003A6E8 460031A1 */  cvt.d.s   $f6, $f6
/* 15AEC 8003A6EC 46283182 */  mul.d     $f6, $f6, $f8
/* 15AF0 8003A6F0 00000000 */  nop
/* 15AF4 8003A6F4 C624005C */  lwc1      $f4, 0x5C($s1)
/* 15AF8 8003A6F8 46002121 */  cvt.d.s   $f4, $f4
/* 15AFC 8003A6FC 46282102 */  mul.d     $f4, $f4, $f8
/* 15B00 8003A700 00000000 */  nop
/* 15B04 8003A704 C6200058 */  lwc1      $f0, 0x58($s1)
/* 15B08 8003A708 C6220320 */  lwc1      $f2, 0x320($s1)
/* 15B0C 8003A70C 46020002 */  mul.s     $f0, $f0, $f2
/* 15B10 8003A710 00000000 */  nop
/* 15B14 8003A714 46000021 */  cvt.d.s   $f0, $f0
/* 15B18 8003A718 46280002 */  mul.d     $f0, $f0, $f8
/* 15B1C 8003A71C 00000000 */  nop
/* 15B20 8003A720 27B00058 */  addiu     $s0, $sp, 0x58
/* 15B24 8003A724 462031A0 */  cvt.s.d   $f6, $f6
/* 15B28 8003A728 46202120 */  cvt.s.d   $f4, $f4
/* 15B2C 8003A72C 44053000 */  mfc1      $a1, $f6
/* 15B30 8003A730 44072000 */  mfc1      $a3, $f4
/* 15B34 8003A734 46200020 */  cvt.s.d   $f0, $f0
/* 15B38 8003A738 44060000 */  mfc1      $a2, $f0
/* 15B3C 8003A73C 0C019DF0 */  jal       guScaleF
/* 15B40 8003A740 0200202D */   daddu    $a0, $s0, $zero
/* 15B44 8003A744 0200202D */  daddu     $a0, $s0, $zero
/* 15B48 8003A748 27A50018 */  addiu     $a1, $sp, 0x18
/* 15B4C 8003A74C 0C019D80 */  jal       guMtxCatF
/* 15B50 8003A750 00A0302D */   daddu    $a2, $a1, $zero
.L8003A754:
/* 15B54 8003A754 8E230000 */  lw        $v1, 0x0($s1)
/* 15B58 8003A758 3C024000 */  lui       $v0, (0x40000000 >> 16)
/* 15B5C 8003A75C 00621024 */  and       $v0, $v1, $v0
/* 15B60 8003A760 14400011 */  bnez      $v0, .L8003A7A8
/* 15B64 8003A764 27A20018 */   addiu    $v0, $sp, 0x18
/* 15B68 8003A768 3C020100 */  lui       $v0, (0x1000000 >> 16)
/* 15B6C 8003A76C 00621024 */  and       $v0, $v1, $v0
/* 15B70 8003A770 14400015 */  bnez      $v0, .L8003A7C8
/* 15B74 8003A774 00000000 */   nop
/* 15B78 8003A778 8E220028 */  lw        $v0, 0x28($s1)
/* 15B7C 8003A77C 10400012 */  beqz      $v0, .L8003A7C8
/* 15B80 8003A780 0000302D */   daddu    $a2, $zero, $zero
/* 15B84 8003A784 4600B28D */  trunc.w.s $f10, $f22
/* 15B88 8003A788 44055000 */  mfc1      $a1, $f10
/* 15B8C 8003A78C 27A20018 */  addiu     $v0, $sp, 0x18
/* 15B90 8003A790 AFA20010 */  sw        $v0, 0x10($sp)
/* 15B94 8003A794 8E240024 */  lw        $a0, 0x24($s1)
/* 15B98 8003A798 0C0B78F6 */  jal       spr_draw_npc_sprite
/* 15B9C 8003A79C 00C0382D */   daddu    $a3, $a2, $zero
/* 15BA0 8003A7A0 0800E9F2 */  j         .L8003A7C8
/* 15BA4 8003A7A4 00000000 */   nop
.L8003A7A8:
/* 15BA8 8003A7A8 AFA20010 */  sw        $v0, 0x10($sp)
/* 15BAC 8003A7AC 3C044000 */  lui       $a0, (0x40000001 >> 16)
/* 15BB0 8003A7B0 34840001 */  ori       $a0, $a0, (0x40000001 & 0xFFFF)
/* 15BB4 8003A7B4 4600B28D */  trunc.w.s $f10, $f22
/* 15BB8 8003A7B8 44055000 */  mfc1      $a1, $f10
/* 15BBC 8003A7BC 0000302D */  daddu     $a2, $zero, $zero
/* 15BC0 8003A7C0 0C0B7710 */  jal       spr_draw_player_sprite
/* 15BC4 8003A7C4 00C0382D */   daddu    $a3, $a2, $zero
.L8003A7C8:
/* 15BC8 8003A7C8 8E220008 */  lw        $v0, 0x8($s1)
/* 15BCC 8003A7CC 0040F809 */  jalr      $v0
/* 15BD0 8003A7D0 0220202D */   daddu    $a0, $s1, $zero
/* 15BD4 8003A7D4 8FBF00A0 */  lw        $ra, 0xA0($sp)
/* 15BD8 8003A7D8 8FB1009C */  lw        $s1, 0x9C($sp)
/* 15BDC 8003A7DC 8FB00098 */  lw        $s0, 0x98($sp)
/* 15BE0 8003A7E0 D7B600B0 */  ldc1      $f22, 0xB0($sp)
/* 15BE4 8003A7E4 D7B400A8 */  ldc1      $f20, 0xA8($sp)
/* 15BE8 8003A7E8 03E00008 */  jr        $ra
/* 15BEC 8003A7EC 27BD00B8 */   addiu    $sp, $sp, 0xB8

### DECOMPILED C INSTRUCTIONS:

void appendGfx_npc(void* data) {
    Npc* npc = data;
    Matrix4f mtx1, mtx2;
    f32 renderYaw = npc_get_render_yaw(npc);

    guTranslateF(mtx1, npc->pos.x, npc->pos.y + npc->verticalRenderOffset, npc->pos.z);
    if (npc->flags & NPC_FLAG_UPSIDE_DOWN) {
        mtx_ident_mirror_y(mtx2);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if (npc->rotationPivotOffsetY != 0.0f) {
        guTranslateF(mtx2, 0.0f, npc->rotationPivotOffsetY, 0.0f);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if (npc->rotation.y != 0.0f) {
        guRotateF(mtx2, npc->rotation.y, 0.0f, 1.0f, 0.0f);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if (npc->rotation.x != 0.0f) {
        guRotateF(mtx2, npc->rotation.x, 1.0f, 0.0f, 0.0f);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if (npc->rotation.z != 0.0f) {
        guRotateF(mtx2, npc->rotation.z, 0.0f, 0.0f, 1.0f);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if (npc->rotationPivotOffsetY != 0.0f) {
        guTranslateF(mtx2, 0.0f, -npc->rotationPivotOffsetY, 0.0f);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if ((npc->screenSpaceOffset2D[0] != 0.0f) || (npc->screenSpaceOffset2D[1] != 0.0f)) {
        guTranslateF(mtx1, npc->screenSpaceOffset2D[0], npc->screenSpaceOffset2D[1], 0.0f);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if ((npc->scale.x * SPRITE_WORLD_SCALE_D != 1.0f) || ((npc->scale.y * npc->verticalStretch) * SPRITE_WORLD_SCALE_D != 1.0f)
        || (npc->scale.z * SPRITE_WORLD_SCALE_D != 1.0f)) {
        guScaleF(mtx2, npc->scale.x * SPRITE_WORLD_SCALE_D, (npc->scale.y * npc->verticalStretch) * SPRITE_WORLD_SCALE_D,
                 npc->scale.z * SPRITE_WORLD_SCALE_D);
        guMtxCatF(mtx2, mtx1, mtx1);
    }

    if (!(npc->flags & NPC_FLAG_NO_ANIMS_LOADED)) {
        if (!(npc->flags & NPC_FLAG_HAS_NO_SPRITE) && (npc->currentAnim != 0) && (npc->spriteInstanceID >= 0)) {
            npc_draw_with_palswap(npc, renderYaw, mtx1);
            npc->animNotifyValue = spr_get_notify_value(npc->spriteInstanceID);
        }
    } else {
        npc_draw_with_palswap(npc, renderYaw, mtx1);
        npc->animNotifyValue = func_802DDEC4(PLAYER_SPRITE_AUX1);
    }

    if (npc->flags & NPC_FLAG_REFLECT_WALL) {
        guTranslateF(mtx1, npc->pos.x, npc->pos.y + npc->verticalRenderOffset, -npc->pos.z);
        if (npc->flags & NPC_FLAG_UPSIDE_DOWN) {
            mtx_ident_mirror_y(mtx2);
            guMtxCatF(mtx2, mtx1, mtx1);
        }
        if ((npc->rotation.y != 0.0f) || (npc->rotation.x != 0.0f) || (npc->rotation.z != 0.0f)) {
            guRotateRPYF(mtx2, npc->rotation.x, npc->rotation.y, npc->rotation.z);
            guMtxCatF(mtx2, mtx1, mtx1);
        }

        if ((npc->scale.x * SPRITE_WORLD_SCALE_D != 1.0f) || ((npc->scale.y * npc->verticalStretch) * SPRITE_WORLD_SCALE_D != 1.0f)
            || (npc->scale.z * SPRITE_WORLD_SCALE_D != 1.0f))
        {
            do {
                guScaleF(mtx2, npc->scale.x * SPRITE_WORLD_SCALE_D,
                               (npc->scale.y * npc->verticalStretch) * SPRITE_WORLD_SCALE_D,
                               npc->scale.z * SPRITE_WORLD_SCALE_D);
            } while (0); // required to match (macro?)
            guMtxCatF(mtx2, mtx1, mtx1);

        }

        if (!(npc->flags & NPC_FLAG_NO_ANIMS_LOADED)) {
            if (!(npc->flags & NPC_FLAG_HAS_NO_SPRITE) && (npc->currentAnim != 0)) {
                spr_draw_npc_sprite(npc->spriteInstanceID, renderYaw, 0, 0, mtx1);
            }
        } else {
            spr_draw_player_sprite(PLAYER_SPRITE_AUX1 | DRAW_SPRITE_OVERRIDE_YAW, renderYaw, 0, 0, mtx1);
        }
    }

    if (npc->flags & NPC_FLAG_REFLECT_FLOOR) {
        guTranslateF(mtx1, npc->pos.x, -(npc->pos.y + npc->verticalRenderOffset), npc->pos.z);
        mtx_ident_mirror_y(mtx2);
        guMtxCatF(mtx2, mtx1, mtx1);

        if (npc->rotation.y != 0.0f || npc->rotation.x != 0.0f || npc->rotation.z != 0.0f) {
            guRotateRPYF(mtx2, npc->rotation.x, npc->rotation.y, npc->rotation.z);
            guMtxCatF(mtx2, mtx1, mtx1);
        }

        if ((npc->scale.x * SPRITE_WORLD_SCALE_D != 1.0f) || ((npc->scale.y * npc->verticalStretch) * SPRITE_WORLD_SCALE_D != 1.0f)
            || (npc->scale.z * SPRITE_WORLD_SCALE_D != 1.0f))
        {
            do {
                guScaleF(mtx2, npc->scale.x * SPRITE_WORLD_SCALE_D,
                               (npc->scale.y * npc->verticalStretch) * SPRITE_WORLD_SCALE_D,
                               npc->scale.z * SPRITE_WORLD_SCALE_D);
            } while (0); // required to match (macro?)

            guMtxCatF(mtx2, mtx1, mtx1);
        }
        if (!(npc->flags & NPC_FLAG_NO_ANIMS_LOADED)) {
            if (!(npc->flags & NPC_FLAG_HAS_NO_SPRITE) && (npc->currentAnim != 0)) {
                spr_draw_npc_sprite(npc->spriteInstanceID, renderYaw, 0, 0, mtx1);
            }
        } else {
            spr_draw_player_sprite(PLAYER_SPRITE_AUX1 | DRAW_SPRITE_OVERRIDE_YAW, renderYaw, 0, 0, mtx1);
        }
    }
    npc->onRender(npc);
}