mirror of
https://github.com/pmret/papermario.git
synced 2024-11-19 01:12:28 +01:00
213 lines
10 KiB
ArmAsm
213 lines
10 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
glabel func_8002F970
|
||
|
/* AD70 8002F970 27BDFFB8 */ addiu $sp, $sp, -0x48
|
||
|
/* AD74 8002F974 AFB00010 */ sw $s0, 0x10($sp)
|
||
|
/* AD78 8002F978 0080802D */ daddu $s0, $a0, $zero
|
||
|
/* AD7C 8002F97C AFBF0014 */ sw $ra, 0x14($sp)
|
||
|
/* AD80 8002F980 F7BE0040 */ sdc1 $f30, 0x40($sp)
|
||
|
/* AD84 8002F984 F7BC0038 */ sdc1 $f28, 0x38($sp)
|
||
|
/* AD88 8002F988 F7BA0030 */ sdc1 $f26, 0x30($sp)
|
||
|
/* AD8C 8002F98C F7B80028 */ sdc1 $f24, 0x28($sp)
|
||
|
/* AD90 8002F990 F7B60020 */ sdc1 $f22, 0x20($sp)
|
||
|
/* AD94 8002F994 F7B40018 */ sdc1 $f20, 0x18($sp)
|
||
|
/* AD98 8002F998 86020006 */ lh $v0, 6($s0)
|
||
|
/* AD9C 8002F99C 3C038011 */ lui $v1, %hi(D_8010F188)
|
||
|
/* ADA0 8002F9A0 2463F188 */ addiu $v1, $v1, %lo(D_8010F188)
|
||
|
/* ADA4 8002F9A4 14400004 */ bnez $v0, .L8002F9B8
|
||
|
/* ADA8 8002F9A8 00000000 */ nop
|
||
|
/* ADAC 8002F9AC 86020008 */ lh $v0, 8($s0)
|
||
|
/* ADB0 8002F9B0 1040000F */ beqz $v0, .L8002F9F0
|
||
|
/* ADB4 8002F9B4 00000000 */ nop
|
||
|
.L8002F9B8:
|
||
|
/* ADB8 8002F9B8 C6000054 */ lwc1 $f0, 0x54($s0)
|
||
|
/* ADBC 8002F9BC C6020058 */ lwc1 $f2, 0x58($s0)
|
||
|
/* ADC0 8002F9C0 C604005C */ lwc1 $f4, 0x5c($s0)
|
||
|
/* ADC4 8002F9C4 24020064 */ addiu $v0, $zero, 0x64
|
||
|
/* ADC8 8002F9C8 A6000006 */ sh $zero, 6($s0)
|
||
|
/* ADCC 8002F9CC A6000008 */ sh $zero, 8($s0)
|
||
|
/* ADD0 8002F9D0 A600001C */ sh $zero, 0x1c($s0)
|
||
|
/* ADD4 8002F9D4 A602001E */ sh $v0, 0x1e($s0)
|
||
|
/* ADD8 8002F9D8 A6020020 */ sh $v0, 0x20($s0)
|
||
|
/* ADDC 8002F9DC A6000022 */ sh $zero, 0x22($s0)
|
||
|
/* ADE0 8002F9E0 A6000024 */ sh $zero, 0x24($s0)
|
||
|
/* ADE4 8002F9E4 E6000048 */ swc1 $f0, 0x48($s0)
|
||
|
/* ADE8 8002F9E8 E602004C */ swc1 $f2, 0x4c($s0)
|
||
|
/* ADEC 8002F9EC E6040050 */ swc1 $f4, 0x50($s0)
|
||
|
.L8002F9F0:
|
||
|
/* ADF0 8002F9F0 8C620000 */ lw $v0, ($v1)
|
||
|
/* ADF4 8002F9F4 30420006 */ andi $v0, $v0, 6
|
||
|
/* ADF8 8002F9F8 14400007 */ bnez $v0, .L8002FA18
|
||
|
/* ADFC 8002F9FC 00000000 */ nop
|
||
|
/* AE00 8002FA00 C460002C */ lwc1 $f0, 0x2c($v1)
|
||
|
/* AE04 8002FA04 3C014270 */ lui $at, 0x4270
|
||
|
/* AE08 8002FA08 44811000 */ mtc1 $at, $f2
|
||
|
/* AE0C 8002FA0C 00000000 */ nop
|
||
|
/* AE10 8002FA10 46020000 */ add.s $f0, $f0, $f2
|
||
|
/* AE14 8002FA14 E6000058 */ swc1 $f0, 0x58($s0)
|
||
|
.L8002FA18:
|
||
|
/* AE18 8002FA18 C4600028 */ lwc1 $f0, 0x28($v1)
|
||
|
/* AE1C 8002FA1C 3C0143C8 */ lui $at, 0x43c8
|
||
|
/* AE20 8002FA20 44811000 */ mtc1 $at, $f2
|
||
|
/* AE24 8002FA24 E6000054 */ swc1 $f0, 0x54($s0)
|
||
|
/* AE28 8002FA28 C4600030 */ lwc1 $f0, 0x30($v1)
|
||
|
/* AE2C 8002FA2C 46020000 */ add.s $f0, $f0, $f2
|
||
|
/* AE30 8002FA30 8602001C */ lh $v0, 0x1c($s0)
|
||
|
/* AE34 8002FA34 14400062 */ bnez $v0, .L8002FBC0
|
||
|
/* AE38 8002FA38 E600005C */ swc1 $f0, 0x5c($s0)
|
||
|
/* AE3C 8002FA3C 86030020 */ lh $v1, 0x20($s0)
|
||
|
/* AE40 8002FA40 24022710 */ addiu $v0, $zero, 0x2710
|
||
|
/* AE44 8002FA44 14600002 */ bnez $v1, .L8002FA50
|
||
|
/* AE48 8002FA48 0043001A */ div $zero, $v0, $v1
|
||
|
/* AE4C 8002FA4C 0007000D */ break 7
|
||
|
.L8002FA50:
|
||
|
/* AE50 8002FA50 2401FFFF */ addiu $at, $zero, -1
|
||
|
/* AE54 8002FA54 14610004 */ bne $v1, $at, .L8002FA68
|
||
|
/* AE58 8002FA58 3C018000 */ lui $at, 0x8000
|
||
|
/* AE5C 8002FA5C 14410002 */ bne $v0, $at, .L8002FA68
|
||
|
/* AE60 8002FA60 00000000 */ nop
|
||
|
/* AE64 8002FA64 0006000D */ break 6
|
||
|
.L8002FA68:
|
||
|
/* AE68 8002FA68 00002012 */ mflo $a0
|
||
|
/* AE6C 8002FA6C C6000054 */ lwc1 $f0, 0x54($s0)
|
||
|
/* AE70 8002FA70 C6020058 */ lwc1 $f2, 0x58($s0)
|
||
|
/* AE74 8002FA74 C604005C */ lwc1 $f4, 0x5c($s0)
|
||
|
/* AE78 8002FA78 86020024 */ lh $v0, 0x24($s0)
|
||
|
/* AE7C 8002FA7C 8603001E */ lh $v1, 0x1e($s0)
|
||
|
/* AE80 8002FA80 E6000048 */ swc1 $f0, 0x48($s0)
|
||
|
/* AE84 8002FA84 44820000 */ mtc1 $v0, $f0
|
||
|
/* AE88 8002FA88 00000000 */ nop
|
||
|
/* AE8C 8002FA8C 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* AE90 8002FA90 86020022 */ lh $v0, 0x22($s0)
|
||
|
/* AE94 8002FA94 E602004C */ swc1 $f2, 0x4c($s0)
|
||
|
/* AE98 8002FA98 E6040050 */ swc1 $f4, 0x50($s0)
|
||
|
/* AE9C 8002FA9C E6000084 */ swc1 $f0, 0x84($s0)
|
||
|
/* AEA0 8002FAA0 44820000 */ mtc1 $v0, $f0
|
||
|
/* AEA4 8002FAA4 00000000 */ nop
|
||
|
/* AEA8 8002FAA8 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* AEAC 8002FAAC E6000074 */ swc1 $f0, 0x74($s0)
|
||
|
/* AEB0 8002FAB0 44830000 */ mtc1 $v1, $f0
|
||
|
/* AEB4 8002FAB4 00000000 */ nop
|
||
|
/* AEB8 8002FAB8 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* AEBC 8002FABC 04810002 */ bgez $a0, .L8002FAC8
|
||
|
/* AEC0 8002FAC0 E6000078 */ swc1 $f0, 0x78($s0)
|
||
|
/* AEC4 8002FAC4 24840003 */ addiu $a0, $a0, 3
|
||
|
.L8002FAC8:
|
||
|
/* AEC8 8002FAC8 C6020074 */ lwc1 $f2, 0x74($s0)
|
||
|
/* AECC 8002FACC 3C0140C9 */ lui $at, 0x40c9
|
||
|
/* AED0 8002FAD0 34210FD0 */ ori $at, $at, 0xfd0
|
||
|
/* AED4 8002FAD4 4481A000 */ mtc1 $at, $f20
|
||
|
/* AED8 8002FAD8 00041083 */ sra $v0, $a0, 2
|
||
|
/* AEDC 8002FADC 46141082 */ mul.s $f2, $f2, $f20
|
||
|
/* AEE0 8002FAE0 00000000 */ nop
|
||
|
/* AEE4 8002FAE4 4480F000 */ mtc1 $zero, $f30
|
||
|
/* AEE8 8002FAE8 3C0143B4 */ lui $at, 0x43b4
|
||
|
/* AEEC 8002FAEC 4481B000 */ mtc1 $at, $f22
|
||
|
/* AEF0 8002FAF0 44820000 */ mtc1 $v0, $f0
|
||
|
/* AEF4 8002FAF4 00000000 */ nop
|
||
|
/* AEF8 8002FAF8 46800020 */ cvt.s.w $f0, $f0
|
||
|
/* AEFC 8002FAFC E6000018 */ swc1 $f0, 0x18($s0)
|
||
|
/* AF00 8002FB00 46161683 */ div.s $f26, $f2, $f22
|
||
|
/* AF04 8002FB04 0C00A84B */ jal func_8002A12C
|
||
|
/* AF08 8002FB08 4600D306 */ mov.s $f12, $f26
|
||
|
/* AF0C 8002FB0C 46000706 */ mov.s $f28, $f0
|
||
|
/* AF10 8002FB10 0C00A864 */ jal func_8002A190
|
||
|
/* AF14 8002FB14 4600D306 */ mov.s $f12, $f26
|
||
|
/* AF18 8002FB18 461E0202 */ mul.s $f8, $f0, $f30
|
||
|
/* AF1C 8002FB1C 00000000 */ nop
|
||
|
/* AF20 8002FB20 4600F087 */ neg.s $f2, $f30
|
||
|
/* AF24 8002FB24 4602E082 */ mul.s $f2, $f28, $f2
|
||
|
/* AF28 8002FB28 00000000 */ nop
|
||
|
/* AF2C 8002FB2C C6180078 */ lwc1 $f24, 0x78($s0)
|
||
|
/* AF30 8002FB30 461CC102 */ mul.s $f4, $f24, $f28
|
||
|
/* AF34 8002FB34 00000000 */ nop
|
||
|
/* AF38 8002FB38 4600C182 */ mul.s $f6, $f24, $f0
|
||
|
/* AF3C 8002FB3C 00000000 */ nop
|
||
|
/* AF40 8002FB40 C6000084 */ lwc1 $f0, 0x84($s0)
|
||
|
/* AF44 8002FB44 46140002 */ mul.s $f0, $f0, $f20
|
||
|
/* AF48 8002FB48 00000000 */ nop
|
||
|
/* AF4C 8002FB4C 4600F286 */ mov.s $f10, $f30
|
||
|
/* AF50 8002FB50 46005506 */ mov.s $f20, $f10
|
||
|
/* AF54 8002FB54 46044780 */ add.s $f30, $f8, $f4
|
||
|
/* AF58 8002FB58 46061600 */ add.s $f24, $f2, $f6
|
||
|
/* AF5C 8002FB5C 46160683 */ div.s $f26, $f0, $f22
|
||
|
/* AF60 8002FB60 0C00A84B */ jal func_8002A12C
|
||
|
/* AF64 8002FB64 4600D306 */ mov.s $f12, $f26
|
||
|
/* AF68 8002FB68 46000706 */ mov.s $f28, $f0
|
||
|
/* AF6C 8002FB6C 0C00A864 */ jal func_8002A190
|
||
|
/* AF70 8002FB70 4600D306 */ mov.s $f12, $f26
|
||
|
/* AF74 8002FB74 46140182 */ mul.s $f6, $f0, $f20
|
||
|
/* AF78 8002FB78 00000000 */ nop
|
||
|
/* AF7C 8002FB7C 4614E102 */ mul.s $f4, $f28, $f20
|
||
|
/* AF80 8002FB80 00000000 */ nop
|
||
|
/* AF84 8002FB84 461CC082 */ mul.s $f2, $f24, $f28
|
||
|
/* AF88 8002FB88 00000000 */ nop
|
||
|
/* AF8C 8002FB8C 4600C002 */ mul.s $f0, $f24, $f0
|
||
|
/* AF90 8002FB90 00000000 */ nop
|
||
|
/* AF94 8002FB94 46023281 */ sub.s $f10, $f6, $f2
|
||
|
/* AF98 8002FB98 46002100 */ add.s $f4, $f4, $f0
|
||
|
/* AF9C 8002FB9C C600004C */ lwc1 $f0, 0x4c($s0)
|
||
|
/* AFA0 8002FBA0 461E0000 */ add.s $f0, $f0, $f30
|
||
|
/* AFA4 8002FBA4 C6060048 */ lwc1 $f6, 0x48($s0)
|
||
|
/* AFA8 8002FBA8 460A3180 */ add.s $f6, $f6, $f10
|
||
|
/* AFAC 8002FBAC C6020050 */ lwc1 $f2, 0x50($s0)
|
||
|
/* AFB0 8002FBB0 46041080 */ add.s $f2, $f2, $f4
|
||
|
/* AFB4 8002FBB4 E6000040 */ swc1 $f0, 0x40($s0)
|
||
|
/* AFB8 8002FBB8 E606003C */ swc1 $f6, 0x3c($s0)
|
||
|
/* AFBC 8002FBBC E6020044 */ swc1 $f2, 0x44($s0)
|
||
|
.L8002FBC0:
|
||
|
/* AFC0 8002FBC0 C60C003C */ lwc1 $f12, 0x3c($s0)
|
||
|
/* AFC4 8002FBC4 C60E0044 */ lwc1 $f14, 0x44($s0)
|
||
|
/* AFC8 8002FBC8 8E060048 */ lw $a2, 0x48($s0)
|
||
|
/* AFCC 8002FBCC 0C00A710 */ jal func_80029C40
|
||
|
/* AFD0 8002FBD0 8E070050 */ lw $a3, 0x50($s0)
|
||
|
/* AFD4 8002FBD4 C6040048 */ lwc1 $f4, 0x48($s0)
|
||
|
/* AFD8 8002FBD8 4480B000 */ mtc1 $zero, $f22
|
||
|
/* AFDC 8002FBDC C602003C */ lwc1 $f2, 0x3c($s0)
|
||
|
/* AFE0 8002FBE0 E600006C */ swc1 $f0, 0x6c($s0)
|
||
|
/* AFE4 8002FBE4 46022501 */ sub.s $f20, $f4, $f2
|
||
|
/* AFE8 8002FBE8 C6040050 */ lwc1 $f4, 0x50($s0)
|
||
|
/* AFEC 8002FBEC C6020044 */ lwc1 $f2, 0x44($s0)
|
||
|
/* AFF0 8002FBF0 4600B306 */ mov.s $f12, $f22
|
||
|
/* AFF4 8002FBF4 46022601 */ sub.s $f24, $f4, $f2
|
||
|
/* AFF8 8002FBF8 C604004C */ lwc1 $f4, 0x4c($s0)
|
||
|
/* AFFC 8002FBFC C6020040 */ lwc1 $f2, 0x40($s0)
|
||
|
/* B000 8002FC00 4406A000 */ mfc1 $a2, $f20
|
||
|
/* B004 8002FC04 46022781 */ sub.s $f30, $f4, $f2
|
||
|
/* B008 8002FC08 4407C000 */ mfc1 $a3, $f24
|
||
|
/* B00C 8002FC0C 0C00A710 */ jal func_80029C40
|
||
|
/* B010 8002FC10 4600B386 */ mov.s $f14, $f22
|
||
|
/* B014 8002FC14 4614A102 */ mul.s $f4, $f20, $f20
|
||
|
/* B018 8002FC18 00000000 */ nop
|
||
|
/* B01C 8002FC1C 4618C082 */ mul.s $f2, $f24, $f24
|
||
|
/* B020 8002FC20 00000000 */ nop
|
||
|
/* B024 8002FC24 46022300 */ add.s $f12, $f4, $f2
|
||
|
/* B028 8002FC28 46000007 */ neg.s $f0, $f0
|
||
|
/* B02C 8002FC2C E6000090 */ swc1 $f0, 0x90($s0)
|
||
|
/* B030 8002FC30 46006004 */ sqrt.s $f0, $f12
|
||
|
/* B034 8002FC34 46000032 */ c.eq.s $f0, $f0
|
||
|
/* B038 8002FC38 00000000 */ nop
|
||
|
/* B03C 8002FC3C 45030004 */ bc1tl .L8002FC50
|
||
|
/* B040 8002FC40 4600B306 */ mov.s $f12, $f22
|
||
|
/* B044 8002FC44 0C0187B0 */ jal func_80061EC0
|
||
|
/* B048 8002FC48 00000000 */ nop
|
||
|
/* B04C 8002FC4C 4600B306 */ mov.s $f12, $f22
|
||
|
.L8002FC50:
|
||
|
/* B050 8002FC50 46000007 */ neg.s $f0, $f0
|
||
|
/* B054 8002FC54 4406F000 */ mfc1 $a2, $f30
|
||
|
/* B058 8002FC58 44070000 */ mfc1 $a3, $f0
|
||
|
/* B05C 8002FC5C 0C00A710 */ jal func_80029C40
|
||
|
/* B060 8002FC60 46006386 */ mov.s $f14, $f12
|
||
|
/* B064 8002FC64 E6000094 */ swc1 $f0, 0x94($s0)
|
||
|
/* B068 8002FC68 8FBF0014 */ lw $ra, 0x14($sp)
|
||
|
/* B06C 8002FC6C 8FB00010 */ lw $s0, 0x10($sp)
|
||
|
/* B070 8002FC70 D7BE0040 */ ldc1 $f30, 0x40($sp)
|
||
|
/* B074 8002FC74 D7BC0038 */ ldc1 $f28, 0x38($sp)
|
||
|
/* B078 8002FC78 D7BA0030 */ ldc1 $f26, 0x30($sp)
|
||
|
/* B07C 8002FC7C D7B80028 */ ldc1 $f24, 0x28($sp)
|
||
|
/* B080 8002FC80 D7B60020 */ ldc1 $f22, 0x20($sp)
|
||
|
/* B084 8002FC84 D7B40018 */ ldc1 $f20, 0x18($sp)
|
||
|
/* B088 8002FC88 03E00008 */ jr $ra
|
||
|
/* B08C 8002FC8C 27BD0048 */ addiu $sp, $sp, 0x48
|