mirror of
https://github.com/n64decomp/mk64
synced 2026-08-19 21:32:17 -04:00
@@ -1,227 +0,0 @@
|
||||
glabel func_80097AE4
|
||||
/* 0986E4 80097AE4 27BDFFC0 */ addiu $sp, $sp, -0x40
|
||||
/* 0986E8 80097AE8 AFB30014 */ sw $s3, 0x14($sp)
|
||||
/* 0986EC 80097AEC 8FB30054 */ lw $s3, 0x54($sp)
|
||||
/* 0986F0 80097AF0 AFB20010 */ sw $s2, 0x10($sp)
|
||||
/* 0986F4 80097AF4 AFB00008 */ sw $s0, 8($sp)
|
||||
/* 0986F8 80097AF8 AFA50044 */ sw $a1, 0x44($sp)
|
||||
/* 0986FC 80097AFC 00057600 */ sll $t6, $a1, 0x18
|
||||
/* 098700 80097B00 2A610020 */ slti $at, $s3, 0x20
|
||||
/* 098704 80097B04 000E2E03 */ sra $a1, $t6, 0x18
|
||||
/* 098708 80097B08 00C08025 */ move $s0, $a2
|
||||
/* 09870C 80097B0C 00E09025 */ move $s2, $a3
|
||||
/* 098710 80097B10 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 098714 80097B14 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 098718 80097B18 AFB70024 */ sw $s7, 0x24($sp)
|
||||
/* 09871C 80097B1C AFB60020 */ sw $s6, 0x20($sp)
|
||||
/* 098720 80097B20 AFB5001C */ sw $s5, 0x1c($sp)
|
||||
/* 098724 80097B24 AFB40018 */ sw $s4, 0x18($sp)
|
||||
/* 098728 80097B28 14200003 */ bnez $at, .L80097B38
|
||||
/* 09872C 80097B2C AFB1000C */ sw $s1, 0xc($sp)
|
||||
/* 098730 80097B30 100000BD */ b .L80097E28
|
||||
/* 098734 80097B34 00801025 */ move $v0, $a0
|
||||
.L80097B38:
|
||||
/* 098738 80097B38 30A20007 */ andi $v0, $a1, 7
|
||||
/* 09873C 80097B3C 0002C540 */ sll $t8, $v0, 0x15
|
||||
/* 098740 80097B40 3C01FD00 */ lui $at, 0xfd00
|
||||
/* 098744 80097B44 0301A025 */ or $s4, $t8, $at
|
||||
/* 098748 80097B48 3C010010 */ lui $at, 0x10
|
||||
/* 09874C 80097B4C 0281C825 */ or $t9, $s4, $at
|
||||
/* 098750 80097B50 3C01F500 */ lui $at, 0xf500
|
||||
/* 098754 80097B54 03016825 */ or $t5, $t8, $at
|
||||
/* 098758 80097B58 3C010010 */ lui $at, 0x10
|
||||
/* 09875C 80097B5C 3734003F */ ori $s4, $t9, 0x3f
|
||||
/* 098760 80097B60 24190020 */ li $t9, 32
|
||||
/* 098764 80097B64 01A17825 */ or $t7, $t5, $at
|
||||
/* 098768 80097B68 03001025 */ move $v0, $t8
|
||||
/* 09876C 80097B6C 35F81200 */ ori $t8, $t7, 0x1200
|
||||
/* 098770 80097B70 03337023 */ subu $t6, $t9, $s3
|
||||
/* 098774 80097B74 340F8000 */ li $t7, 32768
|
||||
/* 098778 80097B78 01EE001A */ div $zero, $t7, $t6
|
||||
/* 09877C 80097B7C 0000A812 */ mflo $s5
|
||||
/* 098780 80097B80 03006825 */ move $t5, $t8
|
||||
/* 098784 80097B84 32B8FFFF */ andi $t8, $s5, 0xffff
|
||||
/* 098788 80097B88 0018CC00 */ sll $t9, $t8, 0x10
|
||||
/* 09878C 80097B8C 3C170701 */ lui $s7, (0x07014050 >> 16) # lui $s7, 0x701
|
||||
/* 098790 80097B90 AFB00034 */ sw $s0, 0x34($sp)
|
||||
/* 098794 80097B94 36F74050 */ ori $s7, (0x07014050 & 0xFFFF) # ori $s7, $s7, 0x4050
|
||||
/* 098798 80097B98 00003025 */ move $a2, $zero
|
||||
/* 09879C 80097B9C 15C00002 */ bnez $t6, .L80097BA8
|
||||
/* 0987A0 80097BA0 00000000 */ nop
|
||||
/* 0987A4 80097BA4 0007000D */ break 7
|
||||
.L80097BA8:
|
||||
/* 0987A8 80097BA8 2401FFFF */ li $at, -1
|
||||
/* 0987AC 80097BAC 15C10004 */ bne $t6, $at, .L80097BC0
|
||||
/* 0987B0 80097BB0 3C018000 */ lui $at, 0x8000
|
||||
/* 0987B4 80097BB4 15E10002 */ bne $t7, $at, .L80097BC0
|
||||
/* 0987B8 80097BB8 00000000 */ nop
|
||||
/* 0987BC 80097BBC 0006000D */ break 6
|
||||
.L80097BC0:
|
||||
/* 0987C0 80097BC0 372F0400 */ ori $t7, $t9, 0x400
|
||||
/* 0987C4 80097BC4 01E0A825 */ move $s5, $t7
|
||||
/* 0987C8 80097BC8 3C1FE700 */ lui $ra, 0xe700
|
||||
/* 0987CC 80097BCC 3C1EE600 */ lui $fp, 0xe600
|
||||
/* 0987D0 80097BD0 8FB60050 */ lw $s6, 0x50($sp)
|
||||
.L80097BD4:
|
||||
/* 0987D4 80097BD4 00801025 */ move $v0, $a0
|
||||
/* 0987D8 80097BD8 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0987DC 80097BDC 00801825 */ move $v1, $a0
|
||||
/* 0987E0 80097BE0 AC540000 */ sw $s4, ($v0)
|
||||
/* 0987E4 80097BE4 AC560004 */ sw $s6, 4($v0)
|
||||
/* 0987E8 80097BE8 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0987EC 80097BEC 00802825 */ move $a1, $a0
|
||||
/* 0987F0 80097BF0 00063880 */ sll $a3, $a2, 2
|
||||
/* 0987F4 80097BF4 30EE0FFF */ andi $t6, $a3, 0xfff
|
||||
/* 0987F8 80097BF8 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0987FC 80097BFC AC770004 */ sw $s7, 4($v1)
|
||||
/* 098800 80097C00 AC6D0000 */ sw $t5, ($v1)
|
||||
/* 098804 80097C04 3C01F400 */ lui $at, 0xf400
|
||||
/* 098808 80097C08 24D10020 */ addiu $s1, $a2, 0x20
|
||||
/* 09880C 80097C0C 00114080 */ sll $t0, $s1, 2
|
||||
/* 098810 80097C10 01C1C025 */ or $t8, $t6, $at
|
||||
/* 098814 80097C14 00804825 */ move $t1, $a0
|
||||
/* 098818 80097C18 3C010708 */ lui $at, 0x708
|
||||
/* 09881C 80097C1C 31190FFF */ andi $t9, $t0, 0xfff
|
||||
/* 098820 80097C20 ACA00004 */ sw $zero, 4($a1)
|
||||
/* 098824 80097C24 ACBE0000 */ sw $fp, ($a1)
|
||||
/* 098828 80097C28 03217825 */ or $t7, $t9, $at
|
||||
/* 09882C 80097C2C 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098830 80097C30 00801025 */ move $v0, $a0
|
||||
/* 098834 80097C34 AD2F0004 */ sw $t7, 4($t1)
|
||||
/* 098838 80097C38 AD380000 */ sw $t8, ($t1)
|
||||
/* 09883C 80097C3C 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098840 80097C40 01C03825 */ move $a3, $t6
|
||||
/* 098844 80097C44 3C0E0001 */ lui $t6, (0x00014050 >> 16) # lui $t6, 1
|
||||
/* 098848 80097C48 00801825 */ move $v1, $a0
|
||||
/* 09884C 80097C4C 35CE4050 */ ori $t6, (0x00014050 & 0xFFFF) # ori $t6, $t6, 0x4050
|
||||
/* 098850 80097C50 AC400004 */ sw $zero, 4($v0)
|
||||
/* 098854 80097C54 AC5F0000 */ sw $ra, ($v0)
|
||||
/* 098858 80097C58 3C01F200 */ lui $at, 0xf200
|
||||
/* 09885C 80097C5C 00E1C025 */ or $t8, $a3, $at
|
||||
/* 098860 80097C60 AC6E0004 */ sw $t6, 4($v1)
|
||||
/* 098864 80097C64 3C010008 */ lui $at, 8
|
||||
/* 098868 80097C68 AC6D0000 */ sw $t5, ($v1)
|
||||
/* 09886C 80097C6C 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098870 80097C70 03204025 */ move $t0, $t9
|
||||
/* 098874 80097C74 0321C825 */ or $t9, $t9, $at
|
||||
/* 098878 80097C78 00802825 */ move $a1, $a0
|
||||
/* 09887C 80097C7C 26030020 */ addiu $v1, $s0, 0x20
|
||||
/* 098880 80097C80 26490020 */ addiu $t1, $s2, 0x20
|
||||
/* 098884 80097C84 ACB80000 */ sw $t8, ($a1)
|
||||
/* 098888 80097C88 00095080 */ sll $t2, $t1, 2
|
||||
/* 09888C 80097C8C 00037080 */ sll $t6, $v1, 2
|
||||
/* 098890 80097C90 ACB90004 */ sw $t9, 4($a1)
|
||||
/* 098894 80097C94 31D80FFF */ andi $t8, $t6, 0xfff
|
||||
/* 098898 80097C98 314F0FFF */ andi $t7, $t2, 0xfff
|
||||
/* 09889C 80097C9C 01E05025 */ move $t2, $t7
|
||||
/* 0988A0 80097CA0 0018CB00 */ sll $t9, $t8, 0xc
|
||||
/* 0988A4 80097CA4 3C01E400 */ lui $at, 0xe400
|
||||
/* 0988A8 80097CA8 03217825 */ or $t7, $t9, $at
|
||||
/* 0988AC 80097CAC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0988B0 80097CB0 01EA7025 */ or $t6, $t7, $t2
|
||||
/* 0988B4 80097CB4 00801025 */ move $v0, $a0
|
||||
/* 0988B8 80097CB8 0213C821 */ addu $t9, $s0, $s3
|
||||
/* 0988BC 80097CBC 00125880 */ sll $t3, $s2, 2
|
||||
/* 0988C0 80097CC0 31780FFF */ andi $t8, $t3, 0xfff
|
||||
/* 0988C4 80097CC4 00197880 */ sll $t7, $t9, 2
|
||||
/* 0988C8 80097CC8 AC4E0000 */ sw $t6, ($v0)
|
||||
/* 0988CC 80097CCC 31EE0FFF */ andi $t6, $t7, 0xfff
|
||||
/* 0988D0 80097CD0 03005825 */ move $t3, $t8
|
||||
/* 0988D4 80097CD4 000EC300 */ sll $t8, $t6, 0xc
|
||||
/* 0988D8 80097CD8 030BC825 */ or $t9, $t8, $t3
|
||||
/* 0988DC 80097CDC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0988E0 80097CE0 00802825 */ move $a1, $a0
|
||||
/* 0988E4 80097CE4 AC590004 */ sw $t9, 4($v0)
|
||||
/* 0988E8 80097CE8 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0988EC 80097CEC 00803025 */ move $a2, $a0
|
||||
/* 0988F0 80097CF0 3C0FB300 */ lui $t7, 0xb300
|
||||
/* 0988F4 80097CF4 ACAF0000 */ sw $t7, ($a1)
|
||||
/* 0988F8 80097CF8 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0988FC 80097CFC ACA00004 */ sw $zero, 4($a1)
|
||||
/* 098900 80097D00 3C0EB200 */ lui $t6, 0xb200
|
||||
/* 098904 80097D04 00806025 */ move $t4, $a0
|
||||
/* 098908 80097D08 ACCE0000 */ sw $t6, ($a2)
|
||||
/* 09890C 80097D0C ACD50004 */ sw $s5, 4($a2)
|
||||
/* 098910 80097D10 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098914 80097D14 00801025 */ move $v0, $a0
|
||||
/* 098918 80097D18 AD960004 */ sw $s6, 4($t4)
|
||||
/* 09891C 80097D1C AD940000 */ sw $s4, ($t4)
|
||||
/* 098920 80097D20 00608025 */ move $s0, $v1
|
||||
/* 098924 80097D24 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098928 80097D28 00801825 */ move $v1, $a0
|
||||
/* 09892C 80097D2C AC570004 */ sw $s7, 4($v0)
|
||||
/* 098930 80097D30 AC4D0000 */ sw $t5, ($v0)
|
||||
/* 098934 80097D34 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098938 80097D38 3C01F408 */ lui $at, 0xf408
|
||||
/* 09893C 80097D3C 00E1C025 */ or $t8, $a3, $at
|
||||
/* 098940 80097D40 00803025 */ move $a2, $a0
|
||||
/* 098944 80097D44 3C010710 */ lui $at, 0x710
|
||||
/* 098948 80097D48 AC600004 */ sw $zero, 4($v1)
|
||||
/* 09894C 80097D4C AC7E0000 */ sw $fp, ($v1)
|
||||
/* 098950 80097D50 0101C825 */ or $t9, $t0, $at
|
||||
/* 098954 80097D54 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098958 80097D58 00801025 */ move $v0, $a0
|
||||
/* 09895C 80097D5C ACD90004 */ sw $t9, 4($a2)
|
||||
/* 098960 80097D60 ACD80000 */ sw $t8, ($a2)
|
||||
/* 098964 80097D64 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098968 80097D68 00801825 */ move $v1, $a0
|
||||
/* 09896C 80097D6C 3C0F0001 */ lui $t7, (0x00014050 >> 16) # lui $t7, 1
|
||||
/* 098970 80097D70 35EF4050 */ ori $t7, (0x00014050 & 0xFFFF) # ori $t7, $t7, 0x4050
|
||||
/* 098974 80097D74 AC400004 */ sw $zero, 4($v0)
|
||||
/* 098978 80097D78 AC5F0000 */ sw $ra, ($v0)
|
||||
/* 09897C 80097D7C 3C01F208 */ lui $at, 0xf208
|
||||
/* 098980 80097D80 00E17025 */ or $t6, $a3, $at
|
||||
/* 098984 80097D84 AC6F0004 */ sw $t7, 4($v1)
|
||||
/* 098988 80097D88 24840008 */ addiu $a0, $a0, 8
|
||||
/* 09898C 80097D8C 00802825 */ move $a1, $a0
|
||||
/* 098990 80097D90 3C010010 */ lui $at, 0x10
|
||||
/* 098994 80097D94 AC6D0000 */ sw $t5, ($v1)
|
||||
/* 098998 80097D98 0213C823 */ subu $t9, $s0, $s3
|
||||
/* 09899C 80097D9C ACAE0000 */ sw $t6, ($a1)
|
||||
/* 0989A0 80097DA0 0101C025 */ or $t8, $t0, $at
|
||||
/* 0989A4 80097DA4 272F0020 */ addiu $t7, $t9, 0x20
|
||||
/* 0989A8 80097DA8 ACB80004 */ sw $t8, 4($a1)
|
||||
/* 0989AC 80097DAC 000F7080 */ sll $t6, $t7, 2
|
||||
/* 0989B0 80097DB0 31D80FFF */ andi $t8, $t6, 0xfff
|
||||
/* 0989B4 80097DB4 0018CB00 */ sll $t9, $t8, 0xc
|
||||
/* 0989B8 80097DB8 3C01E400 */ lui $at, 0xe400
|
||||
/* 0989BC 80097DBC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0989C0 80097DC0 03217825 */ or $t7, $t9, $at
|
||||
/* 0989C4 80097DC4 01EA7025 */ or $t6, $t7, $t2
|
||||
/* 0989C8 80097DC8 00801025 */ move $v0, $a0
|
||||
/* 0989CC 80097DCC 0010C080 */ sll $t8, $s0, 2
|
||||
/* 0989D0 80097DD0 33190FFF */ andi $t9, $t8, 0xfff
|
||||
/* 0989D4 80097DD4 00197B00 */ sll $t7, $t9, 0xc
|
||||
/* 0989D8 80097DD8 AC4E0000 */ sw $t6, ($v0)
|
||||
/* 0989DC 80097DDC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0989E0 80097DE0 00801825 */ move $v1, $a0
|
||||
/* 0989E4 80097DE4 01EB7025 */ or $t6, $t7, $t3
|
||||
/* 0989E8 80097DE8 AC4E0004 */ sw $t6, 4($v0)
|
||||
/* 0989EC 80097DEC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0989F0 80097DF0 3C18B300 */ lui $t8, 0xb300
|
||||
/* 0989F4 80097DF4 AC780000 */ sw $t8, ($v1)
|
||||
/* 0989F8 80097DF8 00802825 */ move $a1, $a0
|
||||
/* 0989FC 80097DFC AC600004 */ sw $zero, 4($v1)
|
||||
/* 098A00 80097E00 3C19B200 */ lui $t9, 0xb200
|
||||
/* 098A04 80097E04 24010040 */ li $at, 64
|
||||
/* 098A08 80097E08 ACB90000 */ sw $t9, ($a1)
|
||||
/* 098A0C 80097E0C ACB50004 */ sw $s5, 4($a1)
|
||||
/* 098A10 80097E10 02203025 */ move $a2, $s1
|
||||
/* 098A14 80097E14 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098A18 80097E18 8FB00034 */ lw $s0, 0x34($sp)
|
||||
/* 098A1C 80097E1C 1621FF6D */ bne $s1, $at, .L80097BD4
|
||||
/* 098A20 80097E20 01209025 */ move $s2, $t1
|
||||
/* 098A24 80097E24 00801025 */ move $v0, $a0
|
||||
.L80097E28:
|
||||
/* 098A28 80097E28 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 098A2C 80097E2C 8FB00008 */ lw $s0, 8($sp)
|
||||
/* 098A30 80097E30 8FB1000C */ lw $s1, 0xc($sp)
|
||||
/* 098A34 80097E34 8FB20010 */ lw $s2, 0x10($sp)
|
||||
/* 098A38 80097E38 8FB30014 */ lw $s3, 0x14($sp)
|
||||
/* 098A3C 80097E3C 8FB40018 */ lw $s4, 0x18($sp)
|
||||
/* 098A40 80097E40 8FB5001C */ lw $s5, 0x1c($sp)
|
||||
/* 098A44 80097E44 8FB60020 */ lw $s6, 0x20($sp)
|
||||
/* 098A48 80097E48 8FB70024 */ lw $s7, 0x24($sp)
|
||||
/* 098A4C 80097E4C 8FBE0028 */ lw $fp, 0x28($sp)
|
||||
/* 098A50 80097E50 03E00008 */ jr $ra
|
||||
/* 098A54 80097E54 27BD0040 */ addiu $sp, $sp, 0x40
|
||||
@@ -1,467 +0,0 @@
|
||||
glabel func_80097E58
|
||||
/* 098A58 80097E58 27BDFF08 */ addiu $sp, $sp, -0xf8
|
||||
/* 098A5C 80097E5C 8FAE0124 */ lw $t6, 0x124($sp)
|
||||
/* 098A60 80097E60 AFBF002C */ sw $ra, 0x2c($sp)
|
||||
/* 098A64 80097E64 AFBE0028 */ sw $fp, 0x28($sp)
|
||||
/* 098A68 80097E68 29C10020 */ slti $at, $t6, 0x20
|
||||
/* 098A6C 80097E6C AFB70024 */ sw $s7, 0x24($sp)
|
||||
/* 098A70 80097E70 AFB60020 */ sw $s6, 0x20($sp)
|
||||
/* 098A74 80097E74 AFB5001C */ sw $s5, 0x1c($sp)
|
||||
/* 098A78 80097E78 AFB40018 */ sw $s4, 0x18($sp)
|
||||
/* 098A7C 80097E7C AFB30014 */ sw $s3, 0x14($sp)
|
||||
/* 098A80 80097E80 AFB20010 */ sw $s2, 0x10($sp)
|
||||
/* 098A84 80097E84 AFB1000C */ sw $s1, 0xc($sp)
|
||||
/* 098A88 80097E88 AFB00008 */ sw $s0, 8($sp)
|
||||
/* 098A8C 80097E8C AFA500FC */ sw $a1, 0xfc($sp)
|
||||
/* 098A90 80097E90 14200003 */ bnez $at, .L80097EA0
|
||||
/* 098A94 80097E94 AFA60100 */ sw $a2, 0x100($sp)
|
||||
/* 098A98 80097E98 100001A3 */ b .L80098528
|
||||
/* 098A9C 80097E9C 00801025 */ move $v0, $a0
|
||||
.L80097EA0:
|
||||
/* 098AA0 80097EA0 8FA3011C */ lw $v1, 0x11c($sp)
|
||||
/* 098AA4 80097EA4 8FA5010C */ lw $a1, 0x10c($sp)
|
||||
/* 098AA8 80097EA8 8FB40110 */ lw $s4, 0x110($sp)
|
||||
/* 098AAC 80097EAC 00034042 */ srl $t0, $v1, 1
|
||||
/* 098AB0 80097EB0 00687823 */ subu $t7, $v1, $t0
|
||||
/* 098AB4 80097EB4 00E5082B */ sltu $at, $a3, $a1
|
||||
/* 098AB8 80097EB8 AFAF0080 */ sw $t7, 0x80($sp)
|
||||
/* 098ABC 80097EBC AFAF00DC */ sw $t7, 0xdc($sp)
|
||||
/* 098AC0 80097EC0 00E06025 */ move $t4, $a3
|
||||
/* 098AC4 80097EC4 10200197 */ beqz $at, .L80098524
|
||||
/* 098AC8 80097EC8 AFB400EC */ sw $s4, 0xec($sp)
|
||||
.L80097ECC:
|
||||
/* 098ACC 80097ECC 8FA5010C */ lw $a1, 0x10c($sp)
|
||||
/* 098AD0 80097ED0 25990020 */ addiu $t9, $t4, 0x20
|
||||
/* 098AD4 80097ED4 8FAF0124 */ lw $t7, 0x124($sp)
|
||||
/* 098AD8 80097ED8 00B9082B */ sltu $at, $a1, $t9
|
||||
/* 098ADC 80097EDC 1020007C */ beqz $at, .L800980D0
|
||||
/* 098AE0 80097EE0 240E0020 */ li $t6, 32
|
||||
/* 098AE4 80097EE4 00AC1023 */ subu $v0, $a1, $t4
|
||||
/* 098AE8 80097EE8 1040018E */ beqz $v0, .L80098524
|
||||
/* 098AEC 80097EEC 00409025 */ move $s2, $v0
|
||||
/* 098AF0 80097EF0 83A900FF */ lb $t1, 0xff($sp)
|
||||
/* 098AF4 80097EF4 8FAE0124 */ lw $t6, 0x124($sp)
|
||||
/* 098AF8 80097EF8 240F0020 */ li $t7, 32
|
||||
/* 098AFC 80097EFC 31380007 */ andi $t8, $t1, 7
|
||||
/* 098B00 80097F00 0018CD40 */ sll $t9, $t8, 0x15
|
||||
/* 098B04 80097F04 3C01FD00 */ lui $at, 0xfd00
|
||||
/* 098B08 80097F08 01EE1823 */ subu $v1, $t7, $t6
|
||||
/* 098B0C 80097F0C 03217825 */ or $t7, $t9, $at
|
||||
/* 098B10 80097F10 03204825 */ move $t1, $t9
|
||||
/* 098B14 80097F14 8FB9011C */ lw $t9, 0x11c($sp)
|
||||
/* 098B18 80097F18 3C010010 */ lui $at, 0x10
|
||||
/* 098B1C 80097F1C 01E1C025 */ or $t8, $t7, $at
|
||||
/* 098B20 80097F20 AFAE0030 */ sw $t6, 0x30($sp)
|
||||
/* 098B24 80097F24 272FFFFF */ addiu $t7, $t9, -1
|
||||
/* 098B28 80097F28 31EE0FFF */ andi $t6, $t7, 0xfff
|
||||
/* 098B2C 80097F2C 030E9825 */ or $s3, $t8, $t6
|
||||
/* 098B30 80097F30 8FB800DC */ lw $t8, 0xdc($sp)
|
||||
/* 098B34 80097F34 8FAD0080 */ lw $t5, 0x80($sp)
|
||||
/* 098B38 80097F38 3C01F500 */ lui $at, 0xf500
|
||||
/* 098B3C 80097F3C 03030019 */ multu $t8, $v1
|
||||
/* 098B40 80097F40 01212825 */ or $a1, $t1, $at
|
||||
/* 098B44 80097F44 3C010010 */ lui $at, 0x10
|
||||
/* 098B48 80097F48 01C07825 */ move $t7, $t6
|
||||
/* 098B4C 80097F4C 00A17025 */ or $t6, $a1, $at
|
||||
/* 098B50 80097F50 01C02825 */ move $a1, $t6
|
||||
/* 098B54 80097F54 000DC140 */ sll $t8, $t5, 5
|
||||
/* 098B58 80097F58 00081080 */ sll $v0, $t0, 2
|
||||
/* 098B5C 80097F5C 00195880 */ sll $t3, $t9, 2
|
||||
/* 098B60 80097F60 03203825 */ move $a3, $t9
|
||||
/* 098B64 80097F64 0000A812 */ mflo $s5
|
||||
/* 098B68 80097F68 01003025 */ move $a2, $t0
|
||||
/* 098B6C 80097F6C 06A10003 */ bgez $s5, .L80097F7C
|
||||
/* 098B70 80097F70 00157943 */ sra $t7, $s5, 5
|
||||
/* 098B74 80097F74 26A1001F */ addiu $at, $s5, 0x1f
|
||||
/* 098B78 80097F78 00017943 */ sra $t7, $at, 5
|
||||
.L80097F7C:
|
||||
/* 098B7C 80097F7C 01A30019 */ multu $t5, $v1
|
||||
/* 098B80 80097F80 01E0A825 */ move $s5, $t7
|
||||
/* 098B84 80097F84 01007825 */ move $t7, $t0
|
||||
/* 098B88 80097F88 000F7540 */ sll $t6, $t7, 0x15
|
||||
/* 098B8C 80097F8C AFAE0060 */ sw $t6, 0x60($sp)
|
||||
/* 098B90 80097F90 00187A80 */ sll $t7, $t8, 0xa
|
||||
/* 098B94 80097F94 00007012 */ mflo $t6
|
||||
/* 098B98 80097F98 00000000 */ nop
|
||||
/* 098B9C 80097F9C 00000000 */ nop
|
||||
/* 098BA0 80097FA0 01EE001A */ div $zero, $t7, $t6
|
||||
/* 098BA4 80097FA4 15C00002 */ bnez $t6, .L80097FB0
|
||||
/* 098BA8 80097FA8 00000000 */ nop
|
||||
/* 098BAC 80097FAC 0007000D */ break 7
|
||||
.L80097FB0:
|
||||
/* 098BB0 80097FB0 2401FFFF */ li $at, -1
|
||||
/* 098BB4 80097FB4 15C10004 */ bne $t6, $at, .L80097FC8
|
||||
/* 098BB8 80097FB8 3C018000 */ lui $at, 0x8000
|
||||
/* 098BBC 80097FBC 15E10002 */ bne $t7, $at, .L80097FC8
|
||||
/* 098BC0 80097FC0 00000000 */ nop
|
||||
/* 098BC4 80097FC4 0006000D */ break 6
|
||||
.L80097FC8:
|
||||
/* 098BC8 80097FC8 00007812 */ mflo $t7
|
||||
/* 098BCC 80097FCC 000F7400 */ sll $t6, $t7, 0x10
|
||||
/* 098BD0 80097FD0 35D80400 */ ori $t8, $t6, 0x400
|
||||
/* 098BD4 80097FD4 304F0FFF */ andi $t7, $v0, 0xfff
|
||||
/* 098BD8 80097FD8 000F7300 */ sll $t6, $t7, 0xc
|
||||
/* 098BDC 80097FDC AFB8005C */ sw $t8, 0x5c($sp)
|
||||
/* 098BE0 80097FE0 31780FFF */ andi $t8, $t3, 0xfff
|
||||
/* 098BE4 80097FE4 3C01F200 */ lui $at, 0xf200
|
||||
/* 098BE8 80097FE8 01C1B025 */ or $s6, $t6, $at
|
||||
/* 098BEC 80097FEC 00187B00 */ sll $t7, $t8, 0xc
|
||||
/* 098BF0 80097FF0 01C01025 */ move $v0, $t6
|
||||
/* 098BF4 80097FF4 03287023 */ subu $t6, $t9, $t0
|
||||
/* 098BF8 80097FF8 000EC840 */ sll $t9, $t6, 1
|
||||
/* 098BFC 80097FFC 3C010700 */ lui $at, 0x700
|
||||
/* 098C00 80098000 01030019 */ multu $t0, $v1
|
||||
/* 098C04 80098004 01E1B825 */ or $s7, $t7, $at
|
||||
/* 098C08 80098008 27380009 */ addiu $t8, $t9, 9
|
||||
/* 098C0C 8009800C 01E05825 */ move $t3, $t7
|
||||
/* 098C10 80098010 001878C2 */ srl $t7, $t8, 3
|
||||
/* 098C14 80098014 31EE01FF */ andi $t6, $t7, 0x1ff
|
||||
/* 098C18 80098018 000ECA40 */ sll $t9, $t6, 9
|
||||
/* 098C1C 8009801C 00E8C023 */ subu $t8, $a3, $t0
|
||||
/* 098C20 80098020 00187840 */ sll $t7, $t8, 1
|
||||
/* 098C24 80098024 25EE0009 */ addiu $t6, $t7, 9
|
||||
/* 098C28 80098028 00B9F025 */ or $fp, $a1, $t9
|
||||
/* 098C2C 8009802C 000EC8C2 */ srl $t9, $t6, 3
|
||||
/* 098C30 80098030 333801FF */ andi $t8, $t9, 0x1ff
|
||||
/* 098C34 80098034 00187A40 */ sll $t7, $t8, 9
|
||||
/* 098C38 80098038 00AFF825 */ or $ra, $a1, $t7
|
||||
/* 098C3C 8009803C 00007812 */ mflo $t7
|
||||
/* 098C40 80098040 0008C940 */ sll $t9, $t0, 5
|
||||
/* 098C44 80098044 0019C280 */ sll $t8, $t9, 0xa
|
||||
/* 098C48 80098048 030F001A */ div $zero, $t8, $t7
|
||||
/* 098C4C 8009804C 3C01F400 */ lui $at, 0xf400
|
||||
/* 098C50 80098050 00417025 */ or $t6, $v0, $at
|
||||
/* 098C54 80098054 AFAE0040 */ sw $t6, 0x40($sp)
|
||||
/* 098C58 80098058 8FAE0030 */ lw $t6, 0x30($sp)
|
||||
/* 098C5C 8009805C 0000C812 */ mflo $t9
|
||||
/* 098C60 80098060 15E00002 */ bnez $t7, .L8009806C
|
||||
/* 098C64 80098064 00000000 */ nop
|
||||
/* 098C68 80098068 0007000D */ break 7
|
||||
.L8009806C:
|
||||
/* 098C6C 8009806C 2401FFFF */ li $at, -1
|
||||
/* 098C70 80098070 15E10004 */ bne $t7, $at, .L80098084
|
||||
/* 098C74 80098074 3C018000 */ lui $at, 0x8000
|
||||
/* 098C78 80098078 17010002 */ bne $t8, $at, .L80098084
|
||||
/* 098C7C 8009807C 00000000 */ nop
|
||||
/* 098C80 80098080 0006000D */ break 6
|
||||
.L80098084:
|
||||
/* 098C84 80098084 010E0019 */ multu $t0, $t6
|
||||
/* 098C88 80098088 0019C400 */ sll $t8, $t9, 0x10
|
||||
/* 098C8C 8009808C 370F0400 */ ori $t7, $t8, 0x400
|
||||
/* 098C90 80098090 AFAF003C */ sw $t7, 0x3c($sp)
|
||||
/* 098C94 80098094 0006C040 */ sll $t8, $a2, 1
|
||||
/* 098C98 80098098 270F0009 */ addiu $t7, $t8, 9
|
||||
/* 098C9C 8009809C 000F70C2 */ srl $t6, $t7, 3
|
||||
/* 098CA0 800980A0 00008812 */ mflo $s1
|
||||
/* 098CA4 800980A4 06210003 */ bgez $s1, .L800980B4
|
||||
/* 098CA8 800980A8 0011C943 */ sra $t9, $s1, 5
|
||||
/* 098CAC 800980AC 2621001F */ addiu $at, $s1, 0x1f
|
||||
/* 098CB0 800980B0 0001C943 */ sra $t9, $at, 5
|
||||
.L800980B4:
|
||||
/* 098CB4 800980B4 03208825 */ move $s1, $t9
|
||||
/* 098CB8 800980B8 31D901FF */ andi $t9, $t6, 0x1ff
|
||||
/* 098CBC 800980BC 0019C240 */ sll $t8, $t9, 9
|
||||
/* 098CC0 800980C0 3C010700 */ lui $at, 0x700
|
||||
/* 098CC4 800980C4 00418025 */ or $s0, $v0, $at
|
||||
/* 098CC8 800980C8 10000077 */ b .L800982A8
|
||||
/* 098CCC 800980CC 00B85025 */ or $t2, $a1, $t8
|
||||
.L800980D0:
|
||||
/* 098CD0 800980D0 83A900FF */ lb $t1, 0xff($sp)
|
||||
/* 098CD4 800980D4 01CF1823 */ subu $v1, $t6, $t7
|
||||
/* 098CD8 800980D8 3C01FD00 */ lui $at, 0xfd00
|
||||
/* 098CDC 800980DC 31390007 */ andi $t9, $t1, 7
|
||||
/* 098CE0 800980E0 0019C540 */ sll $t8, $t9, 0x15
|
||||
/* 098CE4 800980E4 03004825 */ move $t1, $t8
|
||||
/* 098CE8 800980E8 03017025 */ or $t6, $t8, $at
|
||||
/* 098CEC 800980EC 8FB8011C */ lw $t8, 0x11c($sp)
|
||||
/* 098CF0 800980F0 3C010010 */ lui $at, 0x10
|
||||
/* 098CF4 800980F4 01C1C825 */ or $t9, $t6, $at
|
||||
/* 098CF8 800980F8 AFAF0030 */ sw $t7, 0x30($sp)
|
||||
/* 098CFC 800980FC 270EFFFF */ addiu $t6, $t8, -1
|
||||
/* 098D00 80098100 31CF0FFF */ andi $t7, $t6, 0xfff
|
||||
/* 098D04 80098104 032F9825 */ or $s3, $t9, $t7
|
||||
/* 098D08 80098108 8FB900DC */ lw $t9, 0xdc($sp)
|
||||
/* 098D0C 8009810C 8FAD0080 */ lw $t5, 0x80($sp)
|
||||
/* 098D10 80098110 3C01F500 */ lui $at, 0xf500
|
||||
/* 098D14 80098114 03230019 */ multu $t9, $v1
|
||||
/* 098D18 80098118 01212825 */ or $a1, $t1, $at
|
||||
/* 098D1C 8009811C 3C010010 */ lui $at, 0x10
|
||||
/* 098D20 80098120 01E07025 */ move $t6, $t7
|
||||
/* 098D24 80098124 00A17825 */ or $t7, $a1, $at
|
||||
/* 098D28 80098128 01E02825 */ move $a1, $t7
|
||||
/* 098D2C 8009812C 000DC940 */ sll $t9, $t5, 5
|
||||
/* 098D30 80098130 00081080 */ sll $v0, $t0, 2
|
||||
/* 098D34 80098134 00185880 */ sll $t3, $t8, 2
|
||||
/* 098D38 80098138 03003825 */ move $a3, $t8
|
||||
/* 098D3C 8009813C 0000A812 */ mflo $s5
|
||||
/* 098D40 80098140 01003025 */ move $a2, $t0
|
||||
/* 098D44 80098144 24120020 */ li $s2, 32
|
||||
/* 098D48 80098148 01A30019 */ multu $t5, $v1
|
||||
/* 098D4C 8009814C 06A10003 */ bgez $s5, .L8009815C
|
||||
/* 098D50 80098150 00157143 */ sra $t6, $s5, 5
|
||||
/* 098D54 80098154 26A1001F */ addiu $at, $s5, 0x1f
|
||||
/* 098D58 80098158 00017143 */ sra $t6, $at, 5
|
||||
.L8009815C:
|
||||
/* 098D5C 8009815C 01C0A825 */ move $s5, $t6
|
||||
/* 098D60 80098160 01007025 */ move $t6, $t0
|
||||
/* 098D64 80098164 000E7D40 */ sll $t7, $t6, 0x15
|
||||
/* 098D68 80098168 AFAF0060 */ sw $t7, 0x60($sp)
|
||||
/* 098D6C 8009816C 00197280 */ sll $t6, $t9, 0xa
|
||||
/* 098D70 80098170 00007812 */ mflo $t7
|
||||
/* 098D74 80098174 00000000 */ nop
|
||||
/* 098D78 80098178 00000000 */ nop
|
||||
/* 098D7C 8009817C 01CF001A */ div $zero, $t6, $t7
|
||||
/* 098D80 80098180 15E00002 */ bnez $t7, .L8009818C
|
||||
/* 098D84 80098184 00000000 */ nop
|
||||
/* 098D88 80098188 0007000D */ break 7
|
||||
.L8009818C:
|
||||
/* 098D8C 8009818C 2401FFFF */ li $at, -1
|
||||
/* 098D90 80098190 15E10004 */ bne $t7, $at, .L800981A4
|
||||
/* 098D94 80098194 3C018000 */ lui $at, 0x8000
|
||||
/* 098D98 80098198 15C10002 */ bne $t6, $at, .L800981A4
|
||||
/* 098D9C 8009819C 00000000 */ nop
|
||||
/* 098DA0 800981A0 0006000D */ break 6
|
||||
.L800981A4:
|
||||
/* 098DA4 800981A4 00007012 */ mflo $t6
|
||||
/* 098DA8 800981A8 000E7C00 */ sll $t7, $t6, 0x10
|
||||
/* 098DAC 800981AC 35F90400 */ ori $t9, $t7, 0x400
|
||||
/* 098DB0 800981B0 304E0FFF */ andi $t6, $v0, 0xfff
|
||||
/* 098DB4 800981B4 000E7B00 */ sll $t7, $t6, 0xc
|
||||
/* 098DB8 800981B8 AFB9005C */ sw $t9, 0x5c($sp)
|
||||
/* 098DBC 800981BC 31790FFF */ andi $t9, $t3, 0xfff
|
||||
/* 098DC0 800981C0 3C01F200 */ lui $at, 0xf200
|
||||
/* 098DC4 800981C4 01E1B025 */ or $s6, $t7, $at
|
||||
/* 098DC8 800981C8 00197300 */ sll $t6, $t9, 0xc
|
||||
/* 098DCC 800981CC 01E01025 */ move $v0, $t7
|
||||
/* 098DD0 800981D0 03087823 */ subu $t7, $t8, $t0
|
||||
/* 098DD4 800981D4 000FC040 */ sll $t8, $t7, 1
|
||||
/* 098DD8 800981D8 3C010700 */ lui $at, 0x700
|
||||
/* 098DDC 800981DC 01030019 */ multu $t0, $v1
|
||||
/* 098DE0 800981E0 01C1B825 */ or $s7, $t6, $at
|
||||
/* 098DE4 800981E4 27190009 */ addiu $t9, $t8, 9
|
||||
/* 098DE8 800981E8 01C05825 */ move $t3, $t6
|
||||
/* 098DEC 800981EC 001970C2 */ srl $t6, $t9, 3
|
||||
/* 098DF0 800981F0 31CF01FF */ andi $t7, $t6, 0x1ff
|
||||
/* 098DF4 800981F4 000FC240 */ sll $t8, $t7, 9
|
||||
/* 098DF8 800981F8 00E8C823 */ subu $t9, $a3, $t0
|
||||
/* 098DFC 800981FC 00197040 */ sll $t6, $t9, 1
|
||||
/* 098E00 80098200 25CF0009 */ addiu $t7, $t6, 9
|
||||
/* 098E04 80098204 00B8F025 */ or $fp, $a1, $t8
|
||||
/* 098E08 80098208 000FC0C2 */ srl $t8, $t7, 3
|
||||
/* 098E0C 8009820C 331901FF */ andi $t9, $t8, 0x1ff
|
||||
/* 098E10 80098210 00197240 */ sll $t6, $t9, 9
|
||||
/* 098E14 80098214 00AEF825 */ or $ra, $a1, $t6
|
||||
/* 098E18 80098218 00007012 */ mflo $t6
|
||||
/* 098E1C 8009821C 0008C140 */ sll $t8, $t0, 5
|
||||
/* 098E20 80098220 0018CA80 */ sll $t9, $t8, 0xa
|
||||
/* 098E24 80098224 032E001A */ div $zero, $t9, $t6
|
||||
/* 098E28 80098228 3C01F400 */ lui $at, 0xf400
|
||||
/* 098E2C 8009822C 00417825 */ or $t7, $v0, $at
|
||||
/* 098E30 80098230 AFAF0040 */ sw $t7, 0x40($sp)
|
||||
/* 098E34 80098234 8FAF0030 */ lw $t7, 0x30($sp)
|
||||
/* 098E38 80098238 0000C012 */ mflo $t8
|
||||
/* 098E3C 8009823C 15C00002 */ bnez $t6, .L80098248
|
||||
/* 098E40 80098240 00000000 */ nop
|
||||
/* 098E44 80098244 0007000D */ break 7
|
||||
.L80098248:
|
||||
/* 098E48 80098248 2401FFFF */ li $at, -1
|
||||
/* 098E4C 8009824C 15C10004 */ bne $t6, $at, .L80098260
|
||||
/* 098E50 80098250 3C018000 */ lui $at, 0x8000
|
||||
/* 098E54 80098254 17210002 */ bne $t9, $at, .L80098260
|
||||
/* 098E58 80098258 00000000 */ nop
|
||||
/* 098E5C 8009825C 0006000D */ break 6
|
||||
.L80098260:
|
||||
/* 098E60 80098260 010F0019 */ multu $t0, $t7
|
||||
/* 098E64 80098264 0018CC00 */ sll $t9, $t8, 0x10
|
||||
/* 098E68 80098268 372E0400 */ ori $t6, $t9, 0x400
|
||||
/* 098E6C 8009826C AFAE003C */ sw $t6, 0x3c($sp)
|
||||
/* 098E70 80098270 0006C840 */ sll $t9, $a2, 1
|
||||
/* 098E74 80098274 272E0009 */ addiu $t6, $t9, 9
|
||||
/* 098E78 80098278 000E78C2 */ srl $t7, $t6, 3
|
||||
/* 098E7C 8009827C 00008812 */ mflo $s1
|
||||
/* 098E80 80098280 06210003 */ bgez $s1, .L80098290
|
||||
/* 098E84 80098284 0011C143 */ sra $t8, $s1, 5
|
||||
/* 098E88 80098288 2621001F */ addiu $at, $s1, 0x1f
|
||||
/* 098E8C 8009828C 0001C143 */ sra $t8, $at, 5
|
||||
.L80098290:
|
||||
/* 098E90 80098290 03008825 */ move $s1, $t8
|
||||
/* 098E94 80098294 31F801FF */ andi $t8, $t7, 0x1ff
|
||||
/* 098E98 80098298 0018CA40 */ sll $t9, $t8, 9
|
||||
/* 098E9C 8009829C 3C010700 */ lui $at, 0x700
|
||||
/* 098EA0 800982A0 00418025 */ or $s0, $v0, $at
|
||||
/* 098EA4 800982A4 00B95025 */ or $t2, $a1, $t9
|
||||
.L800982A8:
|
||||
/* 098EA8 800982A8 00801825 */ move $v1, $a0
|
||||
/* 098EAC 800982AC AC730000 */ sw $s3, ($v1)
|
||||
/* 098EB0 800982B0 8FAE0118 */ lw $t6, 0x118($sp)
|
||||
/* 098EB4 800982B4 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098EB8 800982B8 00802825 */ move $a1, $a0
|
||||
/* 098EBC 800982BC 3C0F0701 */ lui $t7, (0x07014050 >> 16) # lui $t7, 0x701
|
||||
/* 098EC0 800982C0 AC6E0004 */ sw $t6, 4($v1)
|
||||
/* 098EC4 800982C4 35EF4050 */ ori $t7, (0x07014050 & 0xFFFF) # ori $t7, $t7, 0x4050
|
||||
/* 098EC8 800982C8 ACAF0004 */ sw $t7, 4($a1)
|
||||
/* 098ECC 800982CC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098ED0 800982D0 00804825 */ move $t1, $a0
|
||||
/* 098ED4 800982D4 ACAA0000 */ sw $t2, ($a1)
|
||||
/* 098ED8 800982D8 000C3080 */ sll $a2, $t4, 2
|
||||
/* 098EDC 800982DC 30D90FFF */ andi $t9, $a2, 0xfff
|
||||
/* 098EE0 800982E0 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098EE4 800982E4 3C01F400 */ lui $at, 0xf400
|
||||
/* 098EE8 800982E8 01923821 */ addu $a3, $t4, $s2
|
||||
/* 098EEC 800982EC 00077880 */ sll $t7, $a3, 2
|
||||
/* 098EF0 800982F0 03217025 */ or $t6, $t9, $at
|
||||
/* 098EF4 800982F4 00801825 */ move $v1, $a0
|
||||
/* 098EF8 800982F8 3C18E600 */ lui $t8, 0xe600
|
||||
/* 098EFC 800982FC AD380000 */ sw $t8, ($t1)
|
||||
/* 098F00 80098300 31E70FFF */ andi $a3, $t7, 0xfff
|
||||
/* 098F04 80098304 03203025 */ move $a2, $t9
|
||||
/* 098F08 80098308 AD200004 */ sw $zero, 4($t1)
|
||||
/* 098F0C 8009830C AC6E0000 */ sw $t6, ($v1)
|
||||
/* 098F10 80098310 0207C825 */ or $t9, $s0, $a3
|
||||
/* 098F14 80098314 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098F18 80098318 00802825 */ move $a1, $a0
|
||||
/* 098F1C 8009831C AC790004 */ sw $t9, 4($v1)
|
||||
/* 098F20 80098320 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098F24 80098324 00806825 */ move $t5, $a0
|
||||
/* 098F28 80098328 3C0EE700 */ lui $t6, 0xe700
|
||||
/* 098F2C 8009832C ACAE0000 */ sw $t6, ($a1)
|
||||
/* 098F30 80098330 ACA00004 */ sw $zero, 4($a1)
|
||||
/* 098F34 80098334 3C0F0001 */ lui $t7, (0x00014050 >> 16) # lui $t7, 1
|
||||
/* 098F38 80098338 35EF4050 */ ori $t7, (0x00014050 & 0xFFFF) # ori $t7, $t7, 0x4050
|
||||
/* 098F3C 8009833C 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098F40 80098340 00801825 */ move $v1, $a0
|
||||
/* 098F44 80098344 ADAF0004 */ sw $t7, 4($t5)
|
||||
/* 098F48 80098348 ADAA0000 */ sw $t2, ($t5)
|
||||
/* 098F4C 8009834C 3C01F200 */ lui $at, 0xf200
|
||||
/* 098F50 80098350 00C1C025 */ or $t8, $a2, $at
|
||||
/* 098F54 80098354 0047C825 */ or $t9, $v0, $a3
|
||||
/* 098F58 80098358 AC790004 */ sw $t9, 4($v1)
|
||||
/* 098F5C 8009835C AC780000 */ sw $t8, ($v1)
|
||||
/* 098F60 80098360 8FAE0114 */ lw $t6, 0x114($sp)
|
||||
/* 098F64 80098364 02888021 */ addu $s0, $s4, $t0
|
||||
/* 098F68 80098368 0010C880 */ sll $t9, $s0, 2
|
||||
/* 098F6C 8009836C 01D24821 */ addu $t1, $t6, $s2
|
||||
/* 098F70 80098370 00097880 */ sll $t7, $t1, 2
|
||||
/* 098F74 80098374 31E90FFF */ andi $t1, $t7, 0xfff
|
||||
/* 098F78 80098378 332E0FFF */ andi $t6, $t9, 0xfff
|
||||
/* 098F7C 8009837C 000E7B00 */ sll $t7, $t6, 0xc
|
||||
/* 098F80 80098380 3C01E400 */ lui $at, 0xe400
|
||||
/* 098F84 80098384 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098F88 80098388 01E1C025 */ or $t8, $t7, $at
|
||||
/* 098F8C 8009838C 0309C825 */ or $t9, $t8, $t1
|
||||
/* 098F90 80098390 00802825 */ move $a1, $a0
|
||||
/* 098F94 80098394 ACB90000 */ sw $t9, ($a1)
|
||||
/* 098F98 80098398 8FAA0114 */ lw $t2, 0x114($sp)
|
||||
/* 098F9C 8009839C 0234C021 */ addu $t8, $s1, $s4
|
||||
/* 098FA0 800983A0 0018C880 */ sll $t9, $t8, 2
|
||||
/* 098FA4 800983A4 000A7080 */ sll $t6, $t2, 2
|
||||
/* 098FA8 800983A8 31CA0FFF */ andi $t2, $t6, 0xfff
|
||||
/* 098FAC 800983AC 332E0FFF */ andi $t6, $t9, 0xfff
|
||||
/* 098FB0 800983B0 000E7B00 */ sll $t7, $t6, 0xc
|
||||
/* 098FB4 800983B4 01EAC025 */ or $t8, $t7, $t2
|
||||
/* 098FB8 800983B8 ACB80004 */ sw $t8, 4($a1)
|
||||
/* 098FBC 800983BC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098FC0 800983C0 00801025 */ move $v0, $a0
|
||||
/* 098FC4 800983C4 000C7140 */ sll $t6, $t4, 5
|
||||
/* 098FC8 800983C8 31C5FFFF */ andi $a1, $t6, 0xffff
|
||||
/* 098FCC 800983CC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098FD0 800983D0 3C19B300 */ lui $t9, 0xb300
|
||||
/* 098FD4 800983D4 AC590000 */ sw $t9, ($v0)
|
||||
/* 098FD8 800983D8 00801825 */ move $v1, $a0
|
||||
/* 098FDC 800983DC AC450004 */ sw $a1, 4($v0)
|
||||
/* 098FE0 800983E0 3C18B200 */ lui $t8, 0xb200
|
||||
/* 098FE4 800983E4 AC780000 */ sw $t8, ($v1)
|
||||
/* 098FE8 800983E8 8FB9003C */ lw $t9, 0x3c($sp)
|
||||
/* 098FEC 800983EC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 098FF0 800983F0 00806825 */ move $t5, $a0
|
||||
/* 098FF4 800983F4 AC790004 */ sw $t9, 4($v1)
|
||||
/* 098FF8 800983F8 ADB30000 */ sw $s3, ($t5)
|
||||
/* 098FFC 800983FC 8FAE0118 */ lw $t6, 0x118($sp)
|
||||
/* 099000 80098400 24840008 */ addiu $a0, $a0, 8
|
||||
/* 099004 80098404 00801025 */ move $v0, $a0
|
||||
/* 099008 80098408 3C0F0701 */ lui $t7, (0x07014050 >> 16) # lui $t7, 0x701
|
||||
/* 09900C 8009840C ADAE0004 */ sw $t6, 4($t5)
|
||||
/* 099010 80098410 35EF4050 */ ori $t7, (0x07014050 & 0xFFFF) # ori $t7, $t7, 0x4050
|
||||
/* 099014 80098414 24840008 */ addiu $a0, $a0, 8
|
||||
/* 099018 80098418 00801825 */ move $v1, $a0
|
||||
/* 09901C 8009841C AC4F0004 */ sw $t7, 4($v0)
|
||||
/* 099020 80098420 AC5F0000 */ sw $ra, ($v0)
|
||||
/* 099024 80098424 3C18E600 */ lui $t8, 0xe600
|
||||
/* 099028 80098428 AC780000 */ sw $t8, ($v1)
|
||||
/* 09902C 8009842C AC600004 */ sw $zero, 4($v1)
|
||||
/* 099030 80098430 8FB90040 */ lw $t9, 0x40($sp)
|
||||
/* 099034 80098434 0200A025 */ move $s4, $s0
|
||||
/* 099038 80098438 24840008 */ addiu $a0, $a0, 8
|
||||
/* 09903C 8009843C 00808025 */ move $s0, $a0
|
||||
/* 099040 80098440 24840008 */ addiu $a0, $a0, 8
|
||||
/* 099044 80098444 02E77825 */ or $t7, $s7, $a3
|
||||
/* 099048 80098448 03267025 */ or $t6, $t9, $a2
|
||||
/* 09904C 8009844C AE0E0000 */ sw $t6, ($s0)
|
||||
/* 099050 80098450 AE0F0004 */ sw $t7, 4($s0)
|
||||
/* 099054 80098454 00801025 */ move $v0, $a0
|
||||
/* 099058 80098458 24840008 */ addiu $a0, $a0, 8
|
||||
/* 09905C 8009845C 3C18E700 */ lui $t8, 0xe700
|
||||
/* 099060 80098460 AC580000 */ sw $t8, ($v0)
|
||||
/* 099064 80098464 00801825 */ move $v1, $a0
|
||||
/* 099068 80098468 3C190001 */ lui $t9, (0x00014050 >> 16) # lui $t9, 1
|
||||
/* 09906C 8009846C 37394050 */ ori $t9, (0x00014050 & 0xFFFF) # ori $t9, $t9, 0x4050
|
||||
/* 099070 80098470 AC400004 */ sw $zero, 4($v0)
|
||||
/* 099074 80098474 AC790004 */ sw $t9, 4($v1)
|
||||
/* 099078 80098478 24840008 */ addiu $a0, $a0, 8
|
||||
/* 09907C 8009847C 00806825 */ move $t5, $a0
|
||||
/* 099080 80098480 AC7E0000 */ sw $fp, ($v1)
|
||||
/* 099084 80098484 02C67025 */ or $t6, $s6, $a2
|
||||
/* 099088 80098488 02B4C021 */ addu $t8, $s5, $s4
|
||||
/* 09908C 8009848C ADAE0000 */ sw $t6, ($t5)
|
||||
/* 099090 80098490 01677825 */ or $t7, $t3, $a3
|
||||
/* 099094 80098494 0018C880 */ sll $t9, $t8, 2
|
||||
/* 099098 80098498 ADAF0004 */ sw $t7, 4($t5)
|
||||
/* 09909C 8009849C 332E0FFF */ andi $t6, $t9, 0xfff
|
||||
/* 0990A0 800984A0 000E7B00 */ sll $t7, $t6, 0xc
|
||||
/* 0990A4 800984A4 01E1C025 */ or $t8, $t7, $at
|
||||
/* 0990A8 800984A8 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0990AC 800984AC 0309C825 */ or $t9, $t8, $t1
|
||||
/* 0990B0 800984B0 00147080 */ sll $t6, $s4, 2
|
||||
/* 0990B4 800984B4 31CF0FFF */ andi $t7, $t6, 0xfff
|
||||
/* 0990B8 800984B8 00801025 */ move $v0, $a0
|
||||
/* 0990BC 800984BC AC590000 */ sw $t9, ($v0)
|
||||
/* 0990C0 800984C0 000FC300 */ sll $t8, $t7, 0xc
|
||||
/* 0990C4 800984C4 030AC825 */ or $t9, $t8, $t2
|
||||
/* 0990C8 800984C8 AC590004 */ sw $t9, 4($v0)
|
||||
/* 0990CC 800984CC 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0990D0 800984D0 00801025 */ move $v0, $a0
|
||||
/* 0990D4 800984D4 3C0EB300 */ lui $t6, 0xb300
|
||||
/* 0990D8 800984D8 AC4E0000 */ sw $t6, ($v0)
|
||||
/* 0990DC 800984DC 8FAF0060 */ lw $t7, 0x60($sp)
|
||||
/* 0990E0 800984E0 24840008 */ addiu $a0, $a0, 8
|
||||
/* 0990E4 800984E4 00801825 */ move $v1, $a0
|
||||
/* 0990E8 800984E8 01E5C025 */ or $t8, $t7, $a1
|
||||
/* 0990EC 800984EC AC580004 */ sw $t8, 4($v0)
|
||||
/* 0990F0 800984F0 3C19B200 */ lui $t9, 0xb200
|
||||
/* 0990F4 800984F4 AC790000 */ sw $t9, ($v1)
|
||||
/* 0990F8 800984F8 8FAE005C */ lw $t6, 0x5c($sp)
|
||||
/* 0990FC 800984FC 258C0020 */ addiu $t4, $t4, 0x20
|
||||
/* 099100 80098500 24840008 */ addiu $a0, $a0, 8
|
||||
/* 099104 80098504 AC6E0004 */ sw $t6, 4($v1)
|
||||
/* 099108 80098508 8FB9010C */ lw $t9, 0x10c($sp)
|
||||
/* 09910C 8009850C 8FAF0114 */ lw $t7, 0x114($sp)
|
||||
/* 099110 80098510 8FB400EC */ lw $s4, 0xec($sp)
|
||||
/* 099114 80098514 0199082B */ sltu $at, $t4, $t9
|
||||
/* 099118 80098518 25F80020 */ addiu $t8, $t7, 0x20
|
||||
/* 09911C 8009851C 1420FE6B */ bnez $at, .L80097ECC
|
||||
/* 099120 80098520 AFB80114 */ sw $t8, 0x114($sp)
|
||||
.L80098524:
|
||||
/* 099124 80098524 00801025 */ move $v0, $a0
|
||||
.L80098528:
|
||||
/* 099128 80098528 8FBF002C */ lw $ra, 0x2c($sp)
|
||||
/* 09912C 8009852C 8FB00008 */ lw $s0, 8($sp)
|
||||
/* 099130 80098530 8FB1000C */ lw $s1, 0xc($sp)
|
||||
/* 099134 80098534 8FB20010 */ lw $s2, 0x10($sp)
|
||||
/* 099138 80098538 8FB30014 */ lw $s3, 0x14($sp)
|
||||
/* 09913C 8009853C 8FB40018 */ lw $s4, 0x18($sp)
|
||||
/* 099140 80098540 8FB5001C */ lw $s5, 0x1c($sp)
|
||||
/* 099144 80098544 8FB60020 */ lw $s6, 0x20($sp)
|
||||
/* 099148 80098548 8FB70024 */ lw $s7, 0x24($sp)
|
||||
/* 09914C 8009854C 8FBE0028 */ lw $fp, 0x28($sp)
|
||||
/* 099150 80098550 03E00008 */ jr $ra
|
||||
/* 099154 80098554 27BD00F8 */ addiu $sp, $sp, 0xf8
|
||||
+44
-52
@@ -3292,80 +3292,72 @@ Gfx *func_80097A14(Gfx *displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4,
|
||||
return displayListHead;
|
||||
}
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// https://decomp.me/scratch/EAuX4
|
||||
// I'm fairly certain I've got the GBI macros correct, don't know what the source of the diff is
|
||||
// While there may be register allocation issues, I suspect the instruction ordering issues are the actual problems
|
||||
Gfx *func_80097AE4(Gfx *displayListHead, s8 fmt, s32 arg2, s32 arg3, u8 *arg4, s32 arg5) {
|
||||
s32 var_a2;
|
||||
UNUSED s32 stackPadding0;
|
||||
Gfx *func_80097AE4(Gfx *displayListHead, s8 fmt, s32 arg2, s32 arg3, u8 *arg4, s32 width) {
|
||||
s32 i;
|
||||
s32 temp;
|
||||
s32 arg2Copy;
|
||||
s32 dsdx;
|
||||
|
||||
if (arg5 >= 0x20) return displayListHead;
|
||||
if (width >= 32) { return displayListHead; }
|
||||
|
||||
arg2Copy = arg2;
|
||||
dsdx = 0x8000 / (0x20 - arg5);
|
||||
for (var_a2 = 0; var_a2 < 0x40; var_a2 += 0x20) {
|
||||
gDPLoadTextureTile(displayListHead++, arg4, fmt, G_IM_SIZ_16b, 64, 0, 0, var_a2, 32, var_a2 + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, (arg2 + arg5) << 2, arg3 << 2, (arg2 + 0x20) << 2, (arg3 + 0x20) << 2, 0, 0, 0, dsdx, 1024);
|
||||
arg2 += 0x20;
|
||||
gDPLoadTextureTile(displayListHead++, arg4, fmt, G_IM_SIZ_16b, 64, 0, 32, var_a2, 64, var_a2 + 0x20, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, arg2 << 2, arg3 << 2, ((arg2 - arg5) + 0x20) << 2, (arg3 + 0x20) << 2, 0, 0, 0, dsdx, 1024);
|
||||
|
||||
for (i = 0; i < 64; i += 32) {
|
||||
temp = 0;
|
||||
dsdx = 0x8000 / (32 - width);
|
||||
gDPLoadTextureTile(displayListHead++, arg4, fmt, G_IM_SIZ_16b, 64, 64, temp, i, temp + 32, i + 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, (arg2 + width) << 2, arg3 << 2, (arg2 + 32) << 2, (arg3 + 32) << 2, 0, 0, 0, dsdx, 1024);
|
||||
|
||||
arg2 += 32;
|
||||
|
||||
gDPLoadTextureTile(displayListHead++, arg4, fmt, G_IM_SIZ_16b, 64, 64, temp + 32, i, temp + 64, i + 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, arg2 << 2, arg3 << 2, ((arg2 - width) + 32) << 2, (arg3 + 32) << 2, 0, 0, 0, dsdx, 1024);
|
||||
|
||||
arg2 = arg2Copy;
|
||||
arg3 += 0x20;
|
||||
arg3 += 32;
|
||||
}
|
||||
return displayListHead;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80097AE4.s")
|
||||
#endif
|
||||
|
||||
#ifdef NON_MATCHING
|
||||
// https://decomp.me/scratch/U4QaQ
|
||||
// I'm fairly certain I have the GBI macros correct, so the massive diff is probably
|
||||
// the result of somemath ordering issues.
|
||||
Gfx *func_80097E58(Gfx *displayListHead, s8 fmt, UNUSED s32 arg2, s32 arg3, UNUSED s32 arg4, s32 arg5, s32 arg6, s32 arg7, u8 *someTexture, u32 width, UNUSED s32 argA, u32 argB) {
|
||||
Gfx *func_80097E58(Gfx *displayListHead, s8 fmt, u32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6, s32 arg7, u8 *someTexture, u32 arg9, u32 argA, s32 width) {
|
||||
u32 ult;
|
||||
s32 spDC;
|
||||
s32 sp80;
|
||||
s32 temp_v1;
|
||||
s32 var_s1;
|
||||
s32 var_s2;
|
||||
s32 var_s5;
|
||||
u32 lrs;
|
||||
u32 temp;
|
||||
s32 arg6Copy;
|
||||
s32 temp_v1;
|
||||
s32 var_s2;
|
||||
s32 lrs;
|
||||
s32 spDC;
|
||||
s32 temp2 = 32;
|
||||
|
||||
if ((s32)width >= 0x20) return displayListHead;
|
||||
|
||||
lrs = width >> 1;
|
||||
spDC = sp80 = width - lrs;
|
||||
if (width >= 32) { return displayListHead; }
|
||||
|
||||
arg6Copy = arg6;
|
||||
for (ult = arg3; ult < (u32) arg5; ult += 0x20) {
|
||||
if ((u32) arg5 < (ult + 0x20)) { // Less than 0x20 left to reach target
|
||||
var_s2 = arg5 - ult; // Leftover amount to reach target
|
||||
if (var_s2 == 0) break; // Actually at target
|
||||
|
||||
lrs = arg9 / 2;
|
||||
spDC = arg9 - lrs;
|
||||
for (ult = arg3; ult < arg5; ult += 32) {
|
||||
temp = 0;
|
||||
if ((ult + temp2) > arg5) {
|
||||
var_s2 = arg5 - ult;
|
||||
if (!var_s2) {
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
var_s2 = 0x20; // Go the full 0x20 on this step
|
||||
var_s2 = temp2;
|
||||
}
|
||||
temp_v1 = 0x20 - argB;
|
||||
var_s1 = (lrs * argB) / 32;
|
||||
var_s5 = (spDC * temp_v1) / 32;
|
||||
|
||||
gDPLoadTextureTile(displayListHead++, someTexture, fmt, G_IM_SIZ_16b, width, 0, 0, ult, lrs, ult + var_s2, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, (arg6 + var_s1) << 2, arg7 << 2, (arg6 + lrs) << 2, (arg7 + var_s2) << 2, 0, 0, ult << 5, (s32)((lrs << 5) << 0xA) / (s32)(lrs * temp_v1), 1024);
|
||||
temp_v1 = ((32 * lrs) << 10) / (lrs * (32 - width));
|
||||
|
||||
gDPLoadTextureTile(displayListHead++, someTexture, fmt, G_IM_SIZ_16b, arg9, argA, temp, ult, temp + lrs, ult + var_s2, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, (arg6 + lrs * width / 32) << 2, arg7 << 2, (arg6 + lrs) << 2, (arg7 + var_s2) << 2, 0, 0, (ult << 5) & 0xFFFF, temp_v1, 1024);
|
||||
arg6 += lrs;
|
||||
gDPLoadTextureTile(displayListHead++, someTexture, fmt, G_IM_SIZ_16b, width, 0, lrs, ult, width, ult + var_s2, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, arg6 << 2, arg7 << 2, (arg6 + var_s5) << 2, (arg7 + var_s2) << 2, 0, lrs << 5, ult << 5, ((sp80 << 5) << 0xA) / (sp80 * temp_v1), 1024);
|
||||
temp_v1 = ((32 * spDC) << 10) / (spDC * (32 - width));
|
||||
gDPLoadTextureTile(displayListHead++, someTexture, fmt, G_IM_SIZ_16b, arg9, argA, temp + lrs, ult, temp + arg9, ult + var_s2, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 5, 5, G_TX_NOLOD, G_TX_NOLOD);
|
||||
gSPTextureRectangle(displayListHead++, arg6 << 2, arg7 << 2, (arg6 + spDC * (32 - width) / 32) << 2, (arg7 + var_s2) << 2, 0, (lrs << 5) & 0xFFFF, (ult << 5) & 0xFFFF, temp_v1, 1024);
|
||||
arg6 = arg6Copy;
|
||||
arg7 += 0x20;
|
||||
arg7 += temp2;
|
||||
}
|
||||
return displayListHead;
|
||||
}
|
||||
#else
|
||||
GLOBAL_ASM("asm/non_matchings/code_80091750/func_80097E58.s")
|
||||
#endif
|
||||
|
||||
Gfx *func_80098558(Gfx *displayListHead, u32 arg1, u32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 arg6, UNUSED s32 arg7, s32 arg8) {
|
||||
u32 var_a3;
|
||||
|
||||
+1
-1
@@ -162,7 +162,7 @@ Gfx *func_80096CD8(Gfx*, s32, s32, u32, u32);
|
||||
Gfx *func_80097274(Gfx *displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8, s32 arg9, u16 *argA, u32 argB, u32 argC, s32 argD);
|
||||
Gfx *func_80097A14(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
|
||||
Gfx *func_80097AE4(Gfx*, s8, s32, s32, u8*, s32);
|
||||
Gfx *func_80097E58(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, s32, u32);
|
||||
Gfx *func_80097E58(Gfx *displayListHead, s8 fmt, u32 arg2, u32 arg3, u32 arg4, u32 arg5, s32 arg6, s32 arg7, u8 *someTexture, u32 arg9, u32 argA, s32 width);
|
||||
Gfx *func_80098558(Gfx*, u32, u32, u32, u32, u32, u32, s32, s32);
|
||||
Gfx *func_800987D0(Gfx*, u32, u32, u32, u32, s32, s32, u8*, u32, s32);
|
||||
Gfx *draw_box_fill(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32);
|
||||
|
||||
Reference in New Issue
Block a user