mirror of
https://github.com/HarbourMasters/SpaghettiKart
synced 2026-08-18 22:07:43 -04:00
8ab4557b39
* Split asm using autodecompiler * Placed libultra bss and linked more C
171 lines
8.3 KiB
ArmAsm
171 lines
8.3 KiB
ArmAsm
glabel func_80280D1C
|
|
/* 12435C 80280D1C 27BDFF98 */ addiu $sp, $sp, -0x68
|
|
/* 124360 80280D20 AFBF004C */ sw $ra, 0x4c($sp)
|
|
/* 124364 80280D24 AFB70048 */ sw $s7, 0x48($sp)
|
|
/* 124368 80280D28 AFB60044 */ sw $s6, 0x44($sp)
|
|
/* 12436C 80280D2C AFB50040 */ sw $s5, 0x40($sp)
|
|
/* 124370 80280D30 AFB4003C */ sw $s4, 0x3c($sp)
|
|
/* 124374 80280D34 AFB30038 */ sw $s3, 0x38($sp)
|
|
/* 124378 80280D38 AFB20034 */ sw $s2, 0x34($sp)
|
|
/* 12437C 80280D3C AFB10030 */ sw $s1, 0x30($sp)
|
|
/* 124380 80280D40 AFB0002C */ sw $s0, 0x2c($sp)
|
|
/* 124384 80280D44 F7B80020 */ sdc1 $f24, 0x20($sp)
|
|
/* 124388 80280D48 F7B60018 */ sdc1 $f22, 0x18($sp)
|
|
/* 12438C 80280D4C F7B40010 */ sdc1 $f20, 0x10($sp)
|
|
/* 124390 80280D50 8C8E0044 */ lw $t6, 0x44($a0)
|
|
/* 124394 80280D54 00809025 */ move $s2, $a0
|
|
/* 124398 80280D58 00008025 */ move $s0, $zero
|
|
/* 12439C 80280D5C 29C1001E */ slti $at, $t6, 0x1e
|
|
/* 1243A0 80280D60 10200034 */ beqz $at, .L80280E34
|
|
/* 1243A4 80280D64 00008825 */ move $s1, $zero
|
|
/* 1243A8 80280D68 3C0141F0 */ li $at, 0x41F00000 # 30.000000
|
|
/* 1243AC 80280D6C 4481C000 */ mtc1 $at, $f24
|
|
/* 1243B0 80280D70 3C014000 */ li $at, 0x40000000 # 2.000000
|
|
/* 1243B4 80280D74 4481B000 */ mtc1 $at, $f22
|
|
/* 1243B8 80280D78 3C014120 */ li $at, 0x41200000 # 10.000000
|
|
/* 1243BC 80280D7C 3C158028 */ lui $s5, %hi(D_80284E50) # $s5, 0x8028
|
|
/* 1243C0 80280D80 4481A000 */ mtc1 $at, $f20
|
|
/* 1243C4 80280D84 26B54E50 */ addiu $s5, %lo(D_80284E50) # addiu $s5, $s5, 0x4e50
|
|
/* 1243C8 80280D88 24170064 */ li $s7, 100
|
|
/* 1243CC 80280D8C 2416001E */ li $s6, 30
|
|
/* 1243D0 80280D90 27B40058 */ addiu $s4, $sp, 0x58
|
|
/* 1243D4 80280D94 2413000A */ li $s3, 10
|
|
.L80280D98:
|
|
/* 1243D8 80280D98 44914000 */ mtc1 $s1, $f8
|
|
/* 1243DC 80280D9C C6440010 */ lwc1 $f4, 0x10($s2)
|
|
/* 1243E0 80280DA0 02707823 */ subu $t7, $s3, $s0
|
|
/* 1243E4 80280DA4 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 1243E8 80280DA8 E7A40058 */ swc1 $f4, 0x58($sp)
|
|
/* 1243EC 80280DAC C6460014 */ lwc1 $f6, 0x14($s2)
|
|
/* 1243F0 80280DB0 448F2000 */ mtc1 $t7, $f4
|
|
/* 1243F4 80280DB4 02802025 */ move $a0, $s4
|
|
/* 1243F8 80280DB8 460A3401 */ sub.s $f16, $f6, $f10
|
|
/* 1243FC 80280DBC 46802220 */ cvt.s.w $f8, $f4
|
|
/* 124400 80280DC0 E7B0005C */ swc1 $f16, 0x5c($sp)
|
|
/* 124404 80280DC4 C6520018 */ lwc1 $f18, 0x18($s2)
|
|
/* 124408 80280DC8 E7B20060 */ swc1 $f18, 0x60($sp)
|
|
/* 12440C 80280DCC 8E490044 */ lw $t1, 0x44($s2)
|
|
/* 124410 80280DD0 46144183 */ div.s $f6, $f8, $f20
|
|
/* 124414 80280DD4 8E580048 */ lw $t8, 0x48($s2)
|
|
/* 124418 80280DD8 02C95023 */ subu $t2, $s6, $t1
|
|
/* 12441C 80280DDC 01570019 */ multu $t2, $s7
|
|
/* 124420 80280DE0 0018C880 */ sll $t9, $t8, 2
|
|
/* 124424 80280DE4 02B94021 */ addu $t0, $s5, $t9
|
|
/* 124428 80280DE8 8D060000 */ lw $a2, ($t0)
|
|
/* 12442C 80280DEC 00005812 */ mflo $t3
|
|
/* 124430 80280DF0 448B8000 */ mtc1 $t3, $f16
|
|
/* 124434 80280DF4 00000000 */ nop
|
|
/* 124438 80280DF8 468084A0 */ cvt.s.w $f18, $f16
|
|
/* 12443C 80280DFC 46163282 */ mul.s $f10, $f6, $f22
|
|
/* 124440 80280E00 46189103 */ div.s $f4, $f18, $f24
|
|
/* 124444 80280E04 44055000 */ mfc1 $a1, $f10
|
|
/* 124448 80280E08 4600220D */ trunc.w.s $f8, $f4
|
|
/* 12444C 80280E0C 44074000 */ mfc1 $a3, $f8
|
|
/* 124450 80280E10 00000000 */ nop
|
|
/* 124454 80280E14 00076C00 */ sll $t5, $a3, 0x10
|
|
/* 124458 80280E18 0C0A02D4 */ jal func_80280B50
|
|
/* 12445C 80280E1C 000D3C03 */ sra $a3, $t5, 0x10
|
|
/* 124460 80280E20 26100001 */ addiu $s0, $s0, 1
|
|
/* 124464 80280E24 1613FFDC */ bne $s0, $s3, .L80280D98
|
|
/* 124468 80280E28 26310002 */ addiu $s1, $s1, 2
|
|
/* 12446C 80280E2C 1000004C */ b .L80280F60
|
|
/* 124470 80280E30 8E480044 */ lw $t0, 0x44($s2)
|
|
.L80280E34:
|
|
/* 124474 80280E34 8E42002C */ lw $v0, 0x2c($s2)
|
|
/* 124478 80280E38 26440010 */ addiu $a0, $s2, 0x10
|
|
/* 12447C 80280E3C 28410005 */ slti $at, $v0, 5
|
|
/* 124480 80280E40 1020000F */ beqz $at, .L80280E80
|
|
/* 124484 80280E44 000248C0 */ sll $t1, $v0, 3
|
|
/* 124488 80280E48 3C014000 */ li $at, 0x40000000 # 2.000000
|
|
/* 12448C 80280E4C 4481B000 */ mtc1 $at, $f22
|
|
/* 124490 80280E50 C64A0038 */ lwc1 $f10, 0x38($s2)
|
|
/* 124494 80280E54 C6460034 */ lwc1 $f6, 0x34($s2)
|
|
/* 124498 80280E58 8E580040 */ lw $t8, 0x40($s2)
|
|
/* 12449C 80280E5C 46165402 */ mul.s $f16, $f10, $f22
|
|
/* 1244A0 80280E60 8E4F003C */ lw $t7, 0x3c($s2)
|
|
/* 1244A4 80280E64 0018C840 */ sll $t9, $t8, 1
|
|
/* 1244A8 80280E68 8E42002C */ lw $v0, 0x2c($s2)
|
|
/* 1244AC 80280E6C 01F91821 */ addu $v1, $t7, $t9
|
|
/* 1244B0 80280E70 AE43003C */ sw $v1, 0x3c($s2)
|
|
/* 1244B4 80280E74 46103480 */ add.s $f18, $f6, $f16
|
|
/* 1244B8 80280E78 10000020 */ b .L80280EFC
|
|
/* 1244BC 80280E7C E6520034 */ swc1 $f18, 0x34($s2)
|
|
.L80280E80:
|
|
/* 1244C0 80280E80 01224823 */ subu $t1, $t1, $v0
|
|
/* 1244C4 80280E84 252AFFDD */ addiu $t2, $t1, -0x23
|
|
/* 1244C8 80280E88 448A4000 */ mtc1 $t2, $f8
|
|
/* 1244CC 80280E8C 3C014120 */ li $at, 0x41200000 # 10.000000
|
|
/* 1244D0 80280E90 4481A000 */ mtc1 $at, $f20
|
|
/* 1244D4 80280E94 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 1244D8 80280E98 8E4C0040 */ lw $t4, 0x40($s2)
|
|
/* 1244DC 80280E9C 3C013F80 */ li $at, 0x3F800000 # 1.000000
|
|
/* 1244E0 80280EA0 44812000 */ mtc1 $at, $f4
|
|
/* 1244E4 80280EA4 448C4000 */ mtc1 $t4, $f8
|
|
/* 1244E8 80280EA8 8E4B003C */ lw $t3, 0x3c($s2)
|
|
/* 1244EC 80280EAC 46145183 */ div.s $f6, $f10, $f20
|
|
/* 1244F0 80280EB0 448B8000 */ mtc1 $t3, $f16
|
|
/* 1244F4 80280EB4 468042A0 */ cvt.s.w $f10, $f8
|
|
/* 1244F8 80280EB8 C6480034 */ lwc1 $f8, 0x34($s2)
|
|
/* 1244FC 80280EBC 468084A0 */ cvt.s.w $f18, $f16
|
|
/* 124500 80280EC0 46062000 */ add.s $f0, $f4, $f6
|
|
/* 124504 80280EC4 46005103 */ div.s $f4, $f10, $f0
|
|
/* 124508 80280EC8 C64A0038 */ lwc1 $f10, 0x38($s2)
|
|
/* 12450C 80280ECC 46049180 */ add.s $f6, $f18, $f4
|
|
/* 124510 80280ED0 46005483 */ div.s $f18, $f10, $f0
|
|
/* 124514 80280ED4 4600340D */ trunc.w.s $f16, $f6
|
|
/* 124518 80280ED8 44038000 */ mfc1 $v1, $f16
|
|
/* 12451C 80280EDC 00000000 */ nop
|
|
/* 124520 80280EE0 AE43003C */ sw $v1, 0x3c($s2)
|
|
/* 124524 80280EE4 46124100 */ add.s $f4, $f8, $f18
|
|
/* 124528 80280EE8 04610004 */ bgez $v1, .L80280EFC
|
|
/* 12452C 80280EEC E6440034 */ swc1 $f4, 0x34($s2)
|
|
/* 124530 80280EF0 AE40003C */ sw $zero, 0x3c($s2)
|
|
/* 124534 80280EF4 8E42002C */ lw $v0, 0x2c($s2)
|
|
/* 124538 80280EF8 00001825 */ move $v1, $zero
|
|
.L80280EFC:
|
|
/* 12453C 80280EFC 24580001 */ addiu $t8, $v0, 1
|
|
/* 124540 80280F00 18600008 */ blez $v1, .L80280F24
|
|
/* 124544 80280F04 AE58002C */ sw $t8, 0x2c($s2)
|
|
/* 124548 80280F08 C6400034 */ lwc1 $f0, 0x34($s2)
|
|
/* 12454C 80280F0C 44803000 */ mtc1 $zero, $f6
|
|
/* 124550 80280F10 00000000 */ nop
|
|
/* 124554 80280F14 4600303C */ c.lt.s $f6, $f0
|
|
/* 124558 80280F18 00000000 */ nop
|
|
/* 12455C 80280F1C 45030007 */ bc1tl .L80280F3C
|
|
/* 124560 80280F20 00033C00 */ sll $a3, $v1, 0x10
|
|
.L80280F24:
|
|
/* 124564 80280F24 8E4F002C */ lw $t7, 0x2c($s2)
|
|
/* 124568 80280F28 29E1001E */ slti $at, $t7, 0x1e
|
|
/* 12456C 80280F2C 5020000B */ beql $at, $zero, .L80280F5C
|
|
/* 124570 80280F30 AE400000 */ sw $zero, ($s2)
|
|
/* 124574 80280F34 C6400034 */ lwc1 $f0, 0x34($s2)
|
|
/* 124578 80280F38 00033C00 */ sll $a3, $v1, 0x10
|
|
.L80280F3C:
|
|
/* 12457C 80280F3C 0007CC03 */ sra $t9, $a3, 0x10
|
|
/* 124580 80280F40 44050000 */ mfc1 $a1, $f0
|
|
/* 124584 80280F44 03203825 */ move $a3, $t9
|
|
/* 124588 80280F48 0C0A02D4 */ jal func_80280B50
|
|
/* 12458C 80280F4C 8E460030 */ lw $a2, 0x30($s2)
|
|
/* 124590 80280F50 10000003 */ b .L80280F60
|
|
/* 124594 80280F54 8E480044 */ lw $t0, 0x44($s2)
|
|
/* 124598 80280F58 AE400000 */ sw $zero, ($s2)
|
|
.L80280F5C:
|
|
/* 12459C 80280F5C 8E480044 */ lw $t0, 0x44($s2)
|
|
.L80280F60:
|
|
/* 1245A0 80280F60 25090001 */ addiu $t1, $t0, 1
|
|
/* 1245A4 80280F64 AE490044 */ sw $t1, 0x44($s2)
|
|
/* 1245A8 80280F68 8FBF004C */ lw $ra, 0x4c($sp)
|
|
/* 1245AC 80280F6C 8FB70048 */ lw $s7, 0x48($sp)
|
|
/* 1245B0 80280F70 8FB60044 */ lw $s6, 0x44($sp)
|
|
/* 1245B4 80280F74 8FB50040 */ lw $s5, 0x40($sp)
|
|
/* 1245B8 80280F78 8FB4003C */ lw $s4, 0x3c($sp)
|
|
/* 1245BC 80280F7C 8FB30038 */ lw $s3, 0x38($sp)
|
|
/* 1245C0 80280F80 8FB20034 */ lw $s2, 0x34($sp)
|
|
/* 1245C4 80280F84 8FB10030 */ lw $s1, 0x30($sp)
|
|
/* 1245C8 80280F88 8FB0002C */ lw $s0, 0x2c($sp)
|
|
/* 1245CC 80280F8C D7B80020 */ ldc1 $f24, 0x20($sp)
|
|
/* 1245D0 80280F90 D7B60018 */ ldc1 $f22, 0x18($sp)
|
|
/* 1245D4 80280F94 D7B40010 */ ldc1 $f20, 0x10($sp)
|
|
/* 1245D8 80280F98 03E00008 */ jr $ra
|
|
/* 1245DC 80280F9C 27BD0068 */ addiu $sp, $sp, 0x68
|