papermario/ver/us/asm/nonmatchings/npc/appendGfx_npc.s
Ethan Roseman 647db26552
Mass function rename from Star Rod + a couple funcs (#298)
* .

* yaml update

* git subrepo pull --force tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "cd690f725d"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "cd690f725d"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* separate main bss syms

* renames and one match

* SR symbol rename

* fix symbol_addrs

* git subrepo pull tools/splat

subrepo:
  subdir:   "tools/splat"
  merged:   "5fa8aa24ca"
upstream:
  origin:   "https://github.com/ethteck/splat.git"
  branch:   "master"
  commit:   "5fa8aa24ca"
git-subrepo:
  version:  "0.4.3"
  origin:   "https://github.com/ingydotnet/git-subrepo"
  commit:   "2f68596"

* remove old artifacts
2021-06-30 11:27:12 +09:00

572 lines
27 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.section .rodata
glabel D_80098480
.double 0.7142857142857143
glabel D_80098488
.double 0.7142857142857143
glabel D_80098490
.double 0.7142857142857143
glabel D_80098498
.double 0.7142857142857143
glabel D_800984A0
.double 0.7142857142857143
glabel D_800984A8
.double 0.7142857142857143
.section .text
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, ($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, 0x3f80
/* 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, 0x3f80
/* 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, 0x3f80
/* 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, 0x3ff0
/* 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, ($s1)
/* 156D0 8003A2D0 3C024000 */ lui $v0, 0x4000
/* 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, 0x100
/* 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 func_802DE5C8
/* 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, 1
/* 15744 8003A344 AE22002C */ sw $v0, 0x2c($s1)
.L8003A348:
/* 15748 8003A348 8E220000 */ lw $v0, ($s1)
/* 1574C 8003A34C 3C030002 */ lui $v1, 2
/* 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, ($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, 0x3ff0
/* 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, ($s1)
/* 15920 8003A520 3C024000 */ lui $v0, 0x4000
/* 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, 0x100
/* 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, 0x4000
/* 15978 8003A578 34840001 */ ori $a0, $a0, 1
/* 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, ($s1)
/* 15994 8003A594 3C030008 */ lui $v1, 8
/* 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, 0x3ff0
/* 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, ($s1)
/* 15B58 8003A758 3C024000 */ lui $v0, 0x4000
/* 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, 0x100
/* 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, 0x4000
/* 15BB0 8003A7B0 34840001 */ ori $a0, $a0, 1
/* 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, 8($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