papermario/asm/nonmatchings/world/area_mac/machi/func_802404B0.s

130 lines
6.6 KiB
ArmAsm
Raw Normal View History

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_802404B0
/* 7E7850 802404B0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 7E7854 802404B4 AFB10014 */ sw $s1, 0x14($sp)
/* 7E7858 802404B8 0080882D */ daddu $s1, $a0, $zero
/* 7E785C 802404BC AFB00010 */ sw $s0, 0x10($sp)
/* 7E7860 802404C0 00A0802D */ daddu $s0, $a1, $zero
/* 7E7864 802404C4 AFBF0018 */ sw $ra, 0x18($sp)
/* 7E7868 802404C8 0C00EABB */ jal get_npc_unsafe
/* 7E786C 802404CC 24040037 */ addiu $a0, $zero, 0x37
/* 7E7870 802404D0 12000002 */ beqz $s0, .L802404DC
/* 7E7874 802404D4 0040202D */ daddu $a0, $v0, $zero
/* 7E7878 802404D8 AE200070 */ sw $zero, 0x70($s1)
.L802404DC:
/* 7E787C 802404DC 8E230070 */ lw $v1, 0x70($s1)
/* 7E7880 802404E0 10600005 */ beqz $v1, .L802404F8
/* 7E7884 802404E4 24020001 */ addiu $v0, $zero, 1
/* 7E7888 802404E8 1062003C */ beq $v1, $v0, .L802405DC
/* 7E788C 802404EC 0000102D */ daddu $v0, $zero, $zero
/* 7E7890 802404F0 0809019E */ j .L80240678
/* 7E7894 802404F4 00000000 */ nop
.L802404F8:
/* 7E7898 802404F8 C4800038 */ lwc1 $f0, 0x38($a0)
/* 7E789C 802404FC 3C0143FA */ lui $at, 0x43fa
/* 7E78A0 80240500 44814000 */ mtc1 $at, $f8
/* 7E78A4 80240504 00000000 */ nop
/* 7E78A8 80240508 46080000 */ add.s $f0, $f0, $f8
/* 7E78AC 8024050C C482003C */ lwc1 $f2, 0x3c($a0)
/* 7E78B0 80240510 E4800060 */ swc1 $f0, 0x60($a0)
/* 7E78B4 80240514 3C0142F0 */ lui $at, 0x42f0
/* 7E78B8 80240518 44810000 */ mtc1 $at, $f0
/* 7E78BC 8024051C C4860038 */ lwc1 $f6, 0x38($a0)
/* 7E78C0 80240520 46001080 */ add.s $f2, $f2, $f0
/* 7E78C4 80240524 C4800040 */ lwc1 $f0, 0x40($a0)
/* 7E78C8 80240528 24020014 */ addiu $v0, $zero, 0x14
/* 7E78CC 8024052C A482008E */ sh $v0, 0x8e($a0)
/* 7E78D0 80240530 46080001 */ sub.s $f0, $f0, $f8
/* 7E78D4 80240534 C4840060 */ lwc1 $f4, 0x60($a0)
/* 7E78D8 80240538 8483008E */ lh $v1, 0x8e($a0)
/* 7E78DC 8024053C 46062101 */ sub.s $f4, $f4, $f6
/* 7E78E0 80240540 E4800068 */ swc1 $f0, 0x68($a0)
/* 7E78E4 80240544 C480003C */ lwc1 $f0, 0x3c($a0)
/* 7E78E8 80240548 24020064 */ addiu $v0, $zero, 0x64
/* 7E78EC 8024054C E4820064 */ swc1 $f2, 0x64($a0)
/* 7E78F0 80240550 46001081 */ sub.s $f2, $f2, $f0
/* 7E78F4 80240554 3C0141A0 */ lui $at, 0x41a0
/* 7E78F8 80240558 44813000 */ mtc1 $at, $f6
/* 7E78FC 8024055C 44830000 */ mtc1 $v1, $f0
/* 7E7900 80240560 00000000 */ nop
/* 7E7904 80240564 46800020 */ cvt.s.w $f0, $f0
/* 7E7908 80240568 46001083 */ div.s $f2, $f2, $f0
/* 7E790C 8024056C C4800068 */ lwc1 $f0, 0x68($a0)
/* 7E7910 80240570 0060282D */ daddu $a1, $v1, $zero
/* 7E7914 80240574 A482008E */ sh $v0, 0x8e($a0)
/* 7E7918 80240578 E4820064 */ swc1 $f2, 0x64($a0)
/* 7E791C 8024057C C4820040 */ lwc1 $f2, 0x40($a0)
/* 7E7920 80240580 46062103 */ div.s $f4, $f4, $f6
/* 7E7924 80240584 E4840060 */ swc1 $f4, 0x60($a0)
/* 7E7928 80240588 46020001 */ sub.s $f0, $f0, $f2
/* 7E792C 8024058C 46002086 */ mov.s $f2, $f4
/* 7E7930 80240590 3C014120 */ lui $at, 0x4120
/* 7E7934 80240594 44812000 */ mtc1 $at, $f4
/* 7E7938 80240598 44853000 */ mtc1 $a1, $f6
/* 7E793C 8024059C 00000000 */ nop
/* 7E7940 802405A0 468031A0 */ cvt.s.w $f6, $f6
/* 7E7944 802405A4 46041083 */ div.s $f2, $f2, $f4
/* 7E7948 802405A8 E4820060 */ swc1 $f2, 0x60($a0)
/* 7E794C 802405AC 46060003 */ div.s $f0, $f0, $f6
/* 7E7950 802405B0 E4800068 */ swc1 $f0, 0x68($a0)
/* 7E7954 802405B4 C4800064 */ lwc1 $f0, 0x64($a0)
/* 7E7958 802405B8 C4820068 */ lwc1 $f2, 0x68($a0)
/* 7E795C 802405BC 46040003 */ div.s $f0, $f0, $f4
/* 7E7960 802405C0 46041083 */ div.s $f2, $f2, $f4
/* 7E7964 802405C4 E4800064 */ swc1 $f0, 0x64($a0)
/* 7E7968 802405C8 0C00EB49 */ jal enable_npc_blur
/* 7E796C 802405CC E4820068 */ swc1 $f2, 0x68($a0)
/* 7E7970 802405D0 24020001 */ addiu $v0, $zero, 1
/* 7E7974 802405D4 0809019D */ j .L80240674
/* 7E7978 802405D8 AE220070 */ sw $v0, 0x70($s1)
.L802405DC:
/* 7E797C 802405DC C4840060 */ lwc1 $f4, 0x60($a0)
/* 7E7980 802405E0 3C018024 */ lui $at, 0x8024
/* 7E7984 802405E4 D42A3960 */ ldc1 $f10, 0x3960($at)
/* 7E7988 802405E8 46002121 */ cvt.d.s $f4, $f4
/* 7E798C 802405EC 462A2102 */ mul.d $f4, $f4, $f10
/* 7E7990 802405F0 00000000 */ nop
/* 7E7994 802405F4 C4820064 */ lwc1 $f2, 0x64($a0)
/* 7E7998 802405F8 460010A1 */ cvt.d.s $f2, $f2
/* 7E799C 802405FC 462A1082 */ mul.d $f2, $f2, $f10
/* 7E79A0 80240600 00000000 */ nop
/* 7E79A4 80240604 24020001 */ addiu $v0, $zero, 1
/* 7E79A8 80240608 C48E0038 */ lwc1 $f14, 0x38($a0)
/* 7E79AC 8024060C C4800060 */ lwc1 $f0, 0x60($a0)
/* 7E79B0 80240610 C48C003C */ lwc1 $f12, 0x3c($a0)
/* 7E79B4 80240614 9483008E */ lhu $v1, 0x8e($a0)
/* 7E79B8 80240618 C4880040 */ lwc1 $f8, 0x40($a0)
/* 7E79BC 8024061C C4860068 */ lwc1 $f6, 0x68($a0)
/* 7E79C0 80240620 46007380 */ add.s $f14, $f14, $f0
/* 7E79C4 80240624 2463FFFF */ addiu $v1, $v1, -1
/* 7E79C8 80240628 C4800064 */ lwc1 $f0, 0x64($a0)
/* 7E79CC 8024062C 46064200 */ add.s $f8, $f8, $f6
/* 7E79D0 80240630 A483008E */ sh $v1, 0x8e($a0)
/* 7E79D4 80240634 00031C00 */ sll $v1, $v1, 0x10
/* 7E79D8 80240638 46006300 */ add.s $f12, $f12, $f0
/* 7E79DC 8024063C 46003006 */ mov.s $f0, $f6
/* 7E79E0 80240640 46000021 */ cvt.d.s $f0, $f0
/* 7E79E4 80240644 462A0002 */ mul.d $f0, $f0, $f10
/* 7E79E8 80240648 00000000 */ nop
/* 7E79EC 8024064C E48E0038 */ swc1 $f14, 0x38($a0)
/* 7E79F0 80240650 E4880040 */ swc1 $f8, 0x40($a0)
/* 7E79F4 80240654 E48C003C */ swc1 $f12, 0x3c($a0)
/* 7E79F8 80240658 46202120 */ cvt.s.d $f4, $f4
/* 7E79FC 8024065C 462010A0 */ cvt.s.d $f2, $f2
/* 7E7A00 80240660 E4840060 */ swc1 $f4, 0x60($a0)
/* 7E7A04 80240664 E4820064 */ swc1 $f2, 0x64($a0)
/* 7E7A08 80240668 46200020 */ cvt.s.d $f0, $f0
/* 7E7A0C 8024066C 10600002 */ beqz $v1, .L80240678
/* 7E7A10 80240670 E4800068 */ swc1 $f0, 0x68($a0)
.L80240674:
/* 7E7A14 80240674 0000102D */ daddu $v0, $zero, $zero
.L80240678:
/* 7E7A18 80240678 8FBF0018 */ lw $ra, 0x18($sp)
/* 7E7A1C 8024067C 8FB10014 */ lw $s1, 0x14($sp)
/* 7E7A20 80240680 8FB00010 */ lw $s0, 0x10($sp)
/* 7E7A24 80240684 03E00008 */ jr $ra
/* 7E7A28 80240688 27BD0020 */ addiu $sp, $sp, 0x20
/* 7E7A2C 8024068C 00000000 */ nop