Files
SpaghettiKart/asm/non_matchings/memory/func_802ABB04.s
T
CoderStig 8ab4557b39 Split asm using autodecompiler (#49)
* Split asm using autodecompiler

* Placed libultra bss and linked more C
2021-11-05 05:17:09 -06:00

138 lines
6.5 KiB
ArmAsm

glabel func_802ABB04
/* 115114 802ABB04 30CEFFFF */ andi $t6, $a2, 0xffff
/* 115118 802ABB08 000E7880 */ sll $t7, $t6, 2
/* 11511C 802ABB0C 01EE7823 */ subu $t7, $t7, $t6
/* 115120 802ABB10 3C188016 */ lui $t8, %hi(D_8015F580) # $t8, 0x8016
/* 115124 802ABB14 8F18F580 */ lw $t8, %lo(D_8015F580)($t8)
/* 115128 802ABB18 27BDFF88 */ addiu $sp, $sp, -0x78
/* 11512C 802ABB1C 000F7880 */ sll $t7, $t7, 2
/* 115130 802ABB20 01EE7823 */ subu $t7, $t7, $t6
/* 115134 802ABB24 000F7880 */ sll $t7, $t7, 2
/* 115138 802ABB28 F7B60010 */ sdc1 $f22, 0x10($sp)
/* 11513C 802ABB2C F7B40008 */ sdc1 $f20, 8($sp)
/* 115140 802ABB30 AFA60080 */ sw $a2, 0x80($sp)
/* 115144 802ABB34 01F81021 */ addu $v0, $t7, $t8
/* 115148 802ABB38 8C450014 */ lw $a1, 0x14($v0)
/* 11514C 802ABB3C 8C440010 */ lw $a0, 0x10($v0)
/* 115150 802ABB40 24030001 */ li $v1, 1
/* 115154 802ABB44 84A90000 */ lh $t1, ($a1)
/* 115158 802ABB48 84990000 */ lh $t9, ($a0)
/* 11515C 802ABB4C 84880004 */ lh $t0, 4($a0)
/* 115160 802ABB50 44894000 */ mtc1 $t1, $f8
/* 115164 802ABB54 44992000 */ mtc1 $t9, $f4
/* 115168 802ABB58 44883000 */ mtc1 $t0, $f6
/* 11516C 802ABB5C 468042A0 */ cvt.s.w $f10, $f8
/* 115170 802ABB60 46802420 */ cvt.s.w $f16, $f4
/* 115174 802ABB64 E7AA0060 */ swc1 $f10, 0x60($sp)
/* 115178 802ABB68 84AA0004 */ lh $t2, 4($a1)
/* 11517C 802ABB6C 448A2000 */ mtc1 $t2, $f4
/* 115180 802ABB70 468034A0 */ cvt.s.w $f18, $f6
/* 115184 802ABB74 468021A0 */ cvt.s.w $f6, $f4
/* 115188 802ABB78 460E9501 */ sub.s $f20, $f18, $f14
/* 11518C 802ABB7C E7A60058 */ swc1 $f6, 0x58($sp)
/* 115190 802ABB80 8C470018 */ lw $a3, 0x18($v0)
/* 115194 802ABB84 460C8581 */ sub.s $f22, $f16, $f12
/* 115198 802ABB88 84EB0000 */ lh $t3, ($a3)
/* 11519C 802ABB8C 448B4000 */ mtc1 $t3, $f8
/* 1151A0 802ABB90 00000000 */ nop
/* 1151A4 802ABB94 468042A0 */ cvt.s.w $f10, $f8
/* 1151A8 802ABB98 C7A80060 */ lwc1 $f8, 0x60($sp)
/* 1151AC 802ABB9C E7AA006C */ swc1 $f10, 0x6c($sp)
/* 1151B0 802ABBA0 84EC0004 */ lh $t4, 4($a3)
/* 1151B4 802ABBA4 460C4281 */ sub.s $f10, $f8, $f12
/* 1151B8 802ABBA8 448C2000 */ mtc1 $t4, $f4
/* 1151BC 802ABBAC 460AA002 */ mul.s $f0, $f20, $f10
/* 1151C0 802ABBB0 E7AA0028 */ swc1 $f10, 0x28($sp)
/* 1151C4 802ABBB4 468021A0 */ cvt.s.w $f6, $f4
/* 1151C8 802ABBB8 C7A40058 */ lwc1 $f4, 0x58($sp)
/* 1151CC 802ABBBC E7A60064 */ swc1 $f6, 0x64($sp)
/* 1151D0 802ABBC0 460E2181 */ sub.s $f6, $f4, $f14
/* 1151D4 802ABBC4 4606B082 */ mul.s $f2, $f22, $f6
/* 1151D8 802ABBC8 E7A60020 */ swc1 $f6, 0x20($sp)
/* 1151DC 802ABBCC 46020201 */ sub.s $f8, $f0, $f2
/* 1151E0 802ABBD0 46001032 */ c.eq.s $f2, $f0
/* 1151E4 802ABBD4 E7A8001C */ swc1 $f8, 0x1c($sp)
/* 1151E8 802ABBD8 C7A4001C */ lwc1 $f4, 0x1c($sp)
/* 1151EC 802ABBDC C7A8006C */ lwc1 $f8, 0x6c($sp)
/* 1151F0 802ABBE0 45000014 */ bc1f .L802ABC34
/* 1151F4 802ABBE4 E7A4003C */ swc1 $f4, 0x3c($sp)
/* 1151F8 802ABBE8 460C4001 */ sub.s $f0, $f8, $f12
/* 1151FC 802ABBEC C7A40064 */ lwc1 $f4, 0x64($sp)
/* 115200 802ABBF0 460E2081 */ sub.s $f2, $f4, $f14
/* 115204 802ABBF4 46003202 */ mul.s $f8, $f6, $f0
/* 115208 802ABBF8 00000000 */ nop
/* 11520C 802ABBFC 46025102 */ mul.s $f4, $f10, $f2
/* 115210 802ABC00 46044181 */ sub.s $f6, $f8, $f4
/* 115214 802ABC04 46161282 */ mul.s $f10, $f2, $f22
/* 115218 802ABC08 00000000 */ nop
/* 11521C 802ABC0C 46140202 */ mul.s $f8, $f0, $f20
/* 115220 802ABC10 46085101 */ sub.s $f4, $f10, $f8
/* 115224 802ABC14 44804000 */ mtc1 $zero, $f8
/* 115228 802ABC18 46043282 */ mul.s $f10, $f6, $f4
/* 11522C 802ABC1C 4608503C */ c.lt.s $f10, $f8
/* 115230 802ABC20 00000000 */ nop
/* 115234 802ABC24 45000035 */ bc1f .L802ABCFC
/* 115238 802ABC28 00000000 */ nop
/* 11523C 802ABC2C 10000033 */ b .L802ABCFC
/* 115240 802ABC30 00001825 */ move $v1, $zero
.L802ABC34:
/* 115244 802ABC34 C7A60064 */ lwc1 $f6, 0x64($sp)
/* 115248 802ABC38 C7AA006C */ lwc1 $f10, 0x6c($sp)
/* 11524C 802ABC3C C7A40028 */ lwc1 $f4, 0x28($sp)
/* 115250 802ABC40 460E3081 */ sub.s $f2, $f6, $f14
/* 115254 802ABC44 C7A80020 */ lwc1 $f8, 0x20($sp)
/* 115258 802ABC48 460C5001 */ sub.s $f0, $f10, $f12
/* 11525C 802ABC4C 46022482 */ mul.s $f18, $f4, $f2
/* 115260 802ABC50 00000000 */ nop
/* 115264 802ABC54 46004402 */ mul.s $f16, $f8, $f0
/* 115268 802ABC58 46109032 */ c.eq.s $f18, $f16
/* 11526C 802ABC5C 00000000 */ nop
/* 115270 802ABC60 4500000D */ bc1f .L802ABC98
/* 115274 802ABC64 00000000 */ nop
/* 115278 802ABC68 46161182 */ mul.s $f6, $f2, $f22
/* 11527C 802ABC6C C7A8003C */ lwc1 $f8, 0x3c($sp)
/* 115280 802ABC70 46140102 */ mul.s $f4, $f0, $f20
/* 115284 802ABC74 46043281 */ sub.s $f10, $f6, $f4
/* 115288 802ABC78 44802000 */ mtc1 $zero, $f4
/* 11528C 802ABC7C 460A4182 */ mul.s $f6, $f8, $f10
/* 115290 802ABC80 4604303C */ c.lt.s $f6, $f4
/* 115294 802ABC84 00000000 */ nop
/* 115298 802ABC88 4502001D */ bc1fl .L802ABD00
/* 11529C 802ABC8C D7B40008 */ ldc1 $f20, 8($sp)
/* 1152A0 802ABC90 1000001A */ b .L802ABCFC
/* 1152A4 802ABC94 00001825 */ move $v1, $zero
.L802ABC98:
/* 1152A8 802ABC98 46128301 */ sub.s $f12, $f16, $f18
/* 1152AC 802ABC9C C7A8001C */ lwc1 $f8, 0x1c($sp)
/* 1152B0 802ABCA0 44803000 */ mtc1 $zero, $f6
/* 1152B4 802ABCA4 460C4282 */ mul.s $f10, $f8, $f12
/* 1152B8 802ABCA8 4606503C */ c.lt.s $f10, $f6
/* 1152BC 802ABCAC 00000000 */ nop
/* 1152C0 802ABCB0 45000003 */ bc1f .L802ABCC0
/* 1152C4 802ABCB4 00000000 */ nop
/* 1152C8 802ABCB8 10000010 */ b .L802ABCFC
/* 1152CC 802ABCBC 00001825 */ move $v1, $zero
.L802ABCC0:
/* 1152D0 802ABCC0 46140402 */ mul.s $f16, $f0, $f20
/* 1152D4 802ABCC4 00000000 */ nop
/* 1152D8 802ABCC8 46161382 */ mul.s $f14, $f2, $f22
/* 1152DC 802ABCCC 460E8032 */ c.eq.s $f16, $f14
/* 1152E0 802ABCD0 00000000 */ nop
/* 1152E4 802ABCD4 45010009 */ bc1t .L802ABCFC
/* 1152E8 802ABCD8 00000000 */ nop
/* 1152EC 802ABCDC 46107101 */ sub.s $f4, $f14, $f16
/* 1152F0 802ABCE0 44805000 */ mtc1 $zero, $f10
/* 1152F4 802ABCE4 46046202 */ mul.s $f8, $f12, $f4
/* 1152F8 802ABCE8 460A403C */ c.lt.s $f8, $f10
/* 1152FC 802ABCEC 00000000 */ nop
/* 115300 802ABCF0 45020003 */ bc1fl .L802ABD00
/* 115304 802ABCF4 D7B40008 */ ldc1 $f20, 8($sp)
/* 115308 802ABCF8 00001825 */ move $v1, $zero
.L802ABCFC:
/* 11530C 802ABCFC D7B40008 */ ldc1 $f20, 8($sp)
.L802ABD00:
/* 115310 802ABD00 D7B60010 */ ldc1 $f22, 0x10($sp)
/* 115314 802ABD04 27BD0078 */ addiu $sp, $sp, 0x78
/* 115318 802ABD08 03E00008 */ jr $ra
/* 11531C 802ABD0C 00601025 */ move $v0, $v1