papermario/asm/nonmatchings/code_163400/func_80243908.s
Ethan Roseman 84f211a2ae First pass
2020-10-14 22:56:47 -04:00

136 lines
6.8 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_80243908
/* 164168 80243908 00C0482D */ daddu $t1, $a2, $zero
/* 16416C 8024390C 3C028016 */ lui $v0, %hi(D_80159D50)
/* 164170 80243910 24429D50 */ addiu $v0, $v0, %lo(D_80159D50)
/* 164174 80243914 00042140 */ sll $a0, $a0, 5
/* 164178 80243918 00824021 */ addu $t0, $a0, $v0
/* 16417C 8024391C 81050003 */ lb $a1, 3($t0)
/* 164180 80243920 9106001C */ lbu $a2, 0x1c($t0)
/* 164184 80243924 3C013D80 */ lui $at, 0x3d80
/* 164188 80243928 44810000 */ mtc1 $at, $f0
/* 16418C 8024392C 00052940 */ sll $a1, $a1, 5
/* 164190 80243930 00A22821 */ addu $a1, $a1, $v0
/* 164194 80243934 44861000 */ mtc1 $a2, $f2
/* 164198 80243938 00000000 */ nop
/* 16419C 8024393C 468010A0 */ cvt.s.w $f2, $f2
/* 1641A0 80243940 28C60010 */ slti $a2, $a2, 0x10
/* 1641A4 80243944 94A20010 */ lhu $v0, 0x10($a1)
/* 1641A8 80243948 46001102 */ mul.s $f4, $f2, $f0
/* 1641AC 8024394C 00000000 */ nop
/* 1641B0 80243950 00021400 */ sll $v0, $v0, 0x10
/* 1641B4 80243954 00022403 */ sra $a0, $v0, 0x10
/* 1641B8 80243958 000217C2 */ srl $v0, $v0, 0x1f
/* 1641BC 8024395C 00822021 */ addu $a0, $a0, $v0
/* 1641C0 80243960 95020010 */ lhu $v0, 0x10($t0)
/* 1641C4 80243964 00042043 */ sra $a0, $a0, 1
/* 1641C8 80243968 00021400 */ sll $v0, $v0, 0x10
/* 1641CC 8024396C 00021C03 */ sra $v1, $v0, 0x10
/* 1641D0 80243970 000217C2 */ srl $v0, $v0, 0x1f
/* 1641D4 80243974 00621821 */ addu $v1, $v1, $v0
/* 1641D8 80243978 00031843 */ sra $v1, $v1, 1
/* 1641DC 8024397C 94A20012 */ lhu $v0, 0x12($a1)
/* 1641E0 80243980 00832823 */ subu $a1, $a0, $v1
/* 1641E4 80243984 95030012 */ lhu $v1, 0x12($t0)
/* 1641E8 80243988 00021400 */ sll $v0, $v0, 0x10
/* 1641EC 8024398C 00022403 */ sra $a0, $v0, 0x10
/* 1641F0 80243990 000217C2 */ srl $v0, $v0, 0x1f
/* 1641F4 80243994 00822021 */ addu $a0, $a0, $v0
/* 1641F8 80243998 00042043 */ sra $a0, $a0, 1
/* 1641FC 8024399C 00031C00 */ sll $v1, $v1, 0x10
/* 164200 802439A0 00031403 */ sra $v0, $v1, 0x10
/* 164204 802439A4 00031FC2 */ srl $v1, $v1, 0x1f
/* 164208 802439A8 00431021 */ addu $v0, $v0, $v1
/* 16420C 802439AC 00021043 */ sra $v0, $v0, 1
/* 164210 802439B0 00822023 */ subu $a0, $a0, $v0
/* 164214 802439B4 10C0002C */ beqz $a2, .L80243A68
/* 164218 802439B8 2484FFDE */ addiu $a0, $a0, -0x22
/* 16421C 802439BC 8503000C */ lh $v1, 0xc($t0)
/* 164220 802439C0 00A31023 */ subu $v0, $a1, $v1
/* 164224 802439C4 44820000 */ mtc1 $v0, $f0
/* 164228 802439C8 00000000 */ nop
/* 16422C 802439CC 46800020 */ cvt.s.w $f0, $f0
/* 164230 802439D0 46040002 */ mul.s $f0, $f0, $f4
/* 164234 802439D4 00000000 */ nop
/* 164238 802439D8 44831000 */ mtc1 $v1, $f2
/* 16423C 802439DC 00000000 */ nop
/* 164240 802439E0 468010A0 */ cvt.s.w $f2, $f2
/* 164244 802439E4 46020000 */ add.s $f0, $f0, $f2
/* 164248 802439E8 00031823 */ negu $v1, $v1
/* 16424C 802439EC 44831000 */ mtc1 $v1, $f2
/* 164250 802439F0 00000000 */ nop
/* 164254 802439F4 468010A0 */ cvt.s.w $f2, $f2
/* 164258 802439F8 46001080 */ add.s $f2, $f2, $f0
/* 16425C 802439FC C5200000 */ lwc1 $f0, ($t1)
/* 164260 80243A00 46800020 */ cvt.s.w $f0, $f0
/* 164264 80243A04 46020000 */ add.s $f0, $f0, $f2
/* 164268 80243A08 4600018D */ trunc.w.s $f6, $f0
/* 16426C 80243A0C E5260000 */ swc1 $f6, ($t1)
/* 164270 80243A10 8503000E */ lh $v1, 0xe($t0)
/* 164274 80243A14 00831023 */ subu $v0, $a0, $v1
/* 164278 80243A18 44820000 */ mtc1 $v0, $f0
/* 16427C 80243A1C 00000000 */ nop
/* 164280 80243A20 46800020 */ cvt.s.w $f0, $f0
/* 164284 80243A24 46040002 */ mul.s $f0, $f0, $f4
/* 164288 80243A28 00000000 */ nop
/* 16428C 80243A2C 44831000 */ mtc1 $v1, $f2
/* 164290 80243A30 00000000 */ nop
/* 164294 80243A34 468010A0 */ cvt.s.w $f2, $f2
/* 164298 80243A38 46020000 */ add.s $f0, $f0, $f2
/* 16429C 80243A3C 00031823 */ negu $v1, $v1
/* 1642A0 80243A40 44831000 */ mtc1 $v1, $f2
/* 1642A4 80243A44 00000000 */ nop
/* 1642A8 80243A48 468010A0 */ cvt.s.w $f2, $f2
/* 1642AC 80243A4C 46001080 */ add.s $f2, $f2, $f0
/* 1642B0 80243A50 C4E00000 */ lwc1 $f0, ($a3)
/* 1642B4 80243A54 46800020 */ cvt.s.w $f0, $f0
/* 1642B8 80243A58 46020000 */ add.s $f0, $f0, $f2
/* 1642BC 80243A5C 4600018D */ trunc.w.s $f6, $f0
/* 1642C0 80243A60 03E00008 */ jr $ra
/* 1642C4 80243A64 E4E60000 */ swc1 $f6, ($a3)
.L80243A68:
/* 1642C8 80243A68 8502000C */ lh $v0, 0xc($t0)
/* 1642CC 80243A6C 00A21823 */ subu $v1, $a1, $v0
/* 1642D0 80243A70 44832000 */ mtc1 $v1, $f4
/* 1642D4 80243A74 00000000 */ nop
/* 1642D8 80243A78 46802120 */ cvt.s.w $f4, $f4
/* 1642DC 80243A7C 44820000 */ mtc1 $v0, $f0
/* 1642E0 80243A80 00000000 */ nop
/* 1642E4 80243A84 46800020 */ cvt.s.w $f0, $f0
/* 1642E8 80243A88 46002100 */ add.s $f4, $f4, $f0
/* 1642EC 80243A8C 00021023 */ negu $v0, $v0
/* 1642F0 80243A90 44821000 */ mtc1 $v0, $f2
/* 1642F4 80243A94 00000000 */ nop
/* 1642F8 80243A98 468010A0 */ cvt.s.w $f2, $f2
/* 1642FC 80243A9C 46041080 */ add.s $f2, $f2, $f4
/* 164300 80243AA0 C5200000 */ lwc1 $f0, ($t1)
/* 164304 80243AA4 46800020 */ cvt.s.w $f0, $f0
/* 164308 80243AA8 46020000 */ add.s $f0, $f0, $f2
/* 16430C 80243AAC 4600018D */ trunc.w.s $f6, $f0
/* 164310 80243AB0 E5260000 */ swc1 $f6, ($t1)
/* 164314 80243AB4 8502000E */ lh $v0, 0xe($t0)
/* 164318 80243AB8 00821823 */ subu $v1, $a0, $v0
/* 16431C 80243ABC 44832000 */ mtc1 $v1, $f4
/* 164320 80243AC0 00000000 */ nop
/* 164324 80243AC4 46802120 */ cvt.s.w $f4, $f4
/* 164328 80243AC8 44820000 */ mtc1 $v0, $f0
/* 16432C 80243ACC 00000000 */ nop
/* 164330 80243AD0 46800020 */ cvt.s.w $f0, $f0
/* 164334 80243AD4 46002100 */ add.s $f4, $f4, $f0
/* 164338 80243AD8 00021023 */ negu $v0, $v0
/* 16433C 80243ADC 44821000 */ mtc1 $v0, $f2
/* 164340 80243AE0 00000000 */ nop
/* 164344 80243AE4 468010A0 */ cvt.s.w $f2, $f2
/* 164348 80243AE8 46041080 */ add.s $f2, $f2, $f4
/* 16434C 80243AEC C4E00000 */ lwc1 $f0, ($a3)
/* 164350 80243AF0 46800020 */ cvt.s.w $f0, $f0
/* 164354 80243AF4 46020000 */ add.s $f0, $f0, $f2
/* 164358 80243AF8 4600018D */ trunc.w.s $f6, $f0
/* 16435C 80243AFC E4E60000 */ swc1 $f6, ($a3)
/* 164360 80243B00 91020000 */ lbu $v0, ($t0)
/* 164364 80243B04 304200F7 */ andi $v0, $v0, 0xf7
/* 164368 80243B08 03E00008 */ jr $ra
/* 16436C 80243B0C A1020000 */ sb $v0, ($t0)