En_Attack_Niw, En_Insect, z_skin_matrix, and z_skelanime matched (#493)

* Darkmeiro decompilation

Bg_Gnd_Darkmeiro decompiled, matched, and documented.

* give this a shot

* fix conflict

* one more try

* could be useful

* whoops

* ZAP2 stuff

* ZAP why

* ZAP again

* marginal improvement

* matched functions. Also fixed a serious lack of static

* format

* more static

* fixing a function prototype

* skelanime OK

* forgot .s

* skin matrix matched

* format
This commit is contained in:
petrie911
2020-11-23 20:34:32 -06:00
committed by GitHub
parent 89f89ac5ea
commit 3aa76152c5
61 changed files with 209 additions and 1264 deletions
@@ -1,285 +0,0 @@
glabel func_800A29BC
/* B19B5C 800A29BC 00047100 */ sll $t6, $a0, 4
/* B19B60 800A29C0 3C0B8016 */ lui $t3, %hi(gSegments) # $t3, 0x8016
/* B19B64 800A29C4 000E7F02 */ srl $t7, $t6, 0x1c
/* B19B68 800A29C8 256B6FA8 */ addiu $t3, %lo(gSegments) # addiu $t3, $t3, 0x6fa8
/* B19B6C 800A29CC 000FC080 */ sll $t8, $t7, 2
/* B19B70 800A29D0 0178C821 */ addu $t9, $t3, $t8
/* B19B74 800A29D4 8F2E0000 */ lw $t6, ($t9)
/* B19B78 800A29D8 3C0C00FF */ lui $t4, (0x00FFFFFF >> 16) # lui $t4, 0xff
/* B19B7C 800A29DC 358CFFFF */ ori $t4, (0x00FFFFFF & 0xFFFF) # ori $t4, $t4, 0xffff
/* B19B80 800A29E0 008C7824 */ and $t7, $a0, $t4
/* B19B84 800A29E4 3C0D8000 */ lui $t5, 0x8000
/* B19B88 800A29E8 01CFC021 */ addu $t8, $t6, $t7
/* B19B8C 800A29EC 030D1021 */ addu $v0, $t8, $t5
/* B19B90 800A29F0 8C480008 */ lw $t0, 8($v0)
/* B19B94 800A29F4 8C4A0004 */ lw $t2, 4($v0)
/* B19B98 800A29F8 84430002 */ lh $v1, 2($v0)
/* B19B9C 800A29FC 0008C900 */ sll $t9, $t0, 4
/* B19BA0 800A2A00 00197702 */ srl $t6, $t9, 0x1c
/* B19BA4 800A2A04 000E7880 */ sll $t7, $t6, 2
/* B19BA8 800A2A08 016FC021 */ addu $t8, $t3, $t7
/* B19BAC 800A2A0C 8F190000 */ lw $t9, ($t8)
/* B19BB0 800A2A10 010C7024 */ and $t6, $t0, $t4
/* B19BB4 800A2A14 000AC100 */ sll $t8, $t2, 4
/* B19BB8 800A2A18 032E7821 */ addu $t7, $t9, $t6
/* B19BBC 800A2A1C 0018CF02 */ srl $t9, $t8, 0x1c
/* B19BC0 800A2A20 01ED3821 */ addu $a3, $t7, $t5
/* B19BC4 800A2A24 00197080 */ sll $t6, $t9, 2
/* B19BC8 800A2A28 016E7821 */ addu $t7, $t3, $t6
/* B19BCC 800A2A2C 8DF80000 */ lw $t8, ($t7)
/* B19BD0 800A2A30 84EF0000 */ lh $t7, ($a3)
/* B19BD4 800A2A34 014CC824 */ and $t9, $t2, $t4
/* B19BD8 800A2A38 03197021 */ addu $t6, $t8, $t9
/* B19BDC 800A2A3C 00AF082A */ slt $at, $a1, $t7
/* B19BE0 800A2A40 10200009 */ beqz $at, .L800A2A68
/* B19BE4 800A2A44 01CD4821 */ addu $t1, $t6, $t5
/* B19BE8 800A2A48 84EE0002 */ lh $t6, 2($a3)
/* B19BEC 800A2A4C 0005C040 */ sll $t8, $a1, 1
/* B19BF0 800A2A50 0309C821 */ addu $t9, $t8, $t1
/* B19BF4 800A2A54 000E7840 */ sll $t7, $t6, 1
/* B19BF8 800A2A58 032FC021 */ addu $t8, $t9, $t7
/* B19BFC 800A2A5C 870E0000 */ lh $t6, ($t8)
/* B19C00 800A2A60 10000006 */ b .L800A2A7C
/* B19C04 800A2A64 A4CE0000 */ sh $t6, ($a2)
.L800A2A68:
/* B19C08 800A2A68 84F90002 */ lh $t9, 2($a3)
/* B19C0C 800A2A6C 00197840 */ sll $t7, $t9, 1
/* B19C10 800A2A70 012FC021 */ addu $t8, $t1, $t7
/* B19C14 800A2A74 870E0000 */ lh $t6, ($t8)
/* B19C18 800A2A78 A4CE0000 */ sh $t6, ($a2)
.L800A2A7C:
/* B19C1C 800A2A7C 84F90004 */ lh $t9, 4($a3)
/* B19C20 800A2A80 24020001 */ li $v0, 1
/* B19C24 800A2A84 30640001 */ andi $a0, $v1, 1
/* B19C28 800A2A88 00B9082A */ slt $at, $a1, $t9
/* B19C2C 800A2A8C 5020000A */ beql $at, $zero, .L800A2AB8
/* B19C30 800A2A90 84F80006 */ lh $t8, 6($a3)
/* B19C34 800A2A94 84EE0006 */ lh $t6, 6($a3)
/* B19C38 800A2A98 00057840 */ sll $t7, $a1, 1
/* B19C3C 800A2A9C 01E9C021 */ addu $t8, $t7, $t1
/* B19C40 800A2AA0 000EC840 */ sll $t9, $t6, 1
/* B19C44 800A2AA4 03197821 */ addu $t7, $t8, $t9
/* B19C48 800A2AA8 85EE0000 */ lh $t6, ($t7)
/* B19C4C 800A2AAC 10000006 */ b .L800A2AC8
/* B19C50 800A2AB0 A4CE0002 */ sh $t6, 2($a2)
/* B19C54 800A2AB4 84F80006 */ lh $t8, 6($a3)
.L800A2AB8:
/* B19C58 800A2AB8 0018C840 */ sll $t9, $t8, 1
/* B19C5C 800A2ABC 01397821 */ addu $t7, $t1, $t9
/* B19C60 800A2AC0 85EE0000 */ lh $t6, ($t7)
/* B19C64 800A2AC4 A4CE0002 */ sh $t6, 2($a2)
.L800A2AC8:
/* B19C68 800A2AC8 84F80008 */ lh $t8, 8($a3)
/* B19C6C 800A2ACC 00B8082A */ slt $at, $a1, $t8
/* B19C70 800A2AD0 5020000A */ beql $at, $zero, .L800A2AFC
/* B19C74 800A2AD4 84EF000A */ lh $t7, 0xa($a3)
/* B19C78 800A2AD8 84EE000A */ lh $t6, 0xa($a3)
/* B19C7C 800A2ADC 0005C840 */ sll $t9, $a1, 1
/* B19C80 800A2AE0 03297821 */ addu $t7, $t9, $t1
/* B19C84 800A2AE4 000EC040 */ sll $t8, $t6, 1
/* B19C88 800A2AE8 01F8C821 */ addu $t9, $t7, $t8
/* B19C8C 800A2AEC 872E0000 */ lh $t6, ($t9)
/* B19C90 800A2AF0 10000006 */ b .L800A2B0C
/* B19C94 800A2AF4 A4CE0004 */ sh $t6, 4($a2)
/* B19C98 800A2AF8 84EF000A */ lh $t7, 0xa($a3)
.L800A2AFC:
/* B19C9C 800A2AFC 000FC040 */ sll $t8, $t7, 1
/* B19CA0 800A2B00 0138C821 */ addu $t9, $t1, $t8
/* B19CA4 800A2B04 872E0000 */ lh $t6, ($t9)
/* B19CA8 800A2B08 A4CE0004 */ sh $t6, 4($a2)
.L800A2B0C:
/* B19CAC 800A2B0C 24C60006 */ addiu $a2, $a2, 6
/* B19CB0 800A2B10 186000A8 */ blez $v1, .L800A2DB4
/* B19CB4 800A2B14 24E7000C */ addiu $a3, $a3, 0xc
/* B19CB8 800A2B18 5080003A */ beql $a0, $zero, .L800A2C04
/* B19CBC 800A2B1C 84F80000 */ lh $t8, ($a3)
/* B19CC0 800A2B20 84EF0000 */ lh $t7, ($a3)
/* B19CC4 800A2B24 24020002 */ li $v0, 2
/* B19CC8 800A2B28 00AF082A */ slt $at, $a1, $t7
/* B19CCC 800A2B2C 5020000A */ beql $at, $zero, .L800A2B58
/* B19CD0 800A2B30 84F90002 */ lh $t9, 2($a3)
/* B19CD4 800A2B34 84EE0002 */ lh $t6, 2($a3)
/* B19CD8 800A2B38 0005C040 */ sll $t8, $a1, 1
/* B19CDC 800A2B3C 0309C821 */ addu $t9, $t8, $t1
/* B19CE0 800A2B40 000E7840 */ sll $t7, $t6, 1
/* B19CE4 800A2B44 032FC021 */ addu $t8, $t9, $t7
/* B19CE8 800A2B48 870E0000 */ lh $t6, ($t8)
/* B19CEC 800A2B4C 10000006 */ b .L800A2B68
/* B19CF0 800A2B50 A4CE0000 */ sh $t6, ($a2)
/* B19CF4 800A2B54 84F90002 */ lh $t9, 2($a3)
.L800A2B58:
/* B19CF8 800A2B58 00197840 */ sll $t7, $t9, 1
/* B19CFC 800A2B5C 012FC021 */ addu $t8, $t1, $t7
/* B19D00 800A2B60 870E0000 */ lh $t6, ($t8)
/* B19D04 800A2B64 A4CE0000 */ sh $t6, ($a2)
.L800A2B68:
/* B19D08 800A2B68 84F90004 */ lh $t9, 4($a3)
/* B19D0C 800A2B6C 00B9082A */ slt $at, $a1, $t9
/* B19D10 800A2B70 5020000A */ beql $at, $zero, .L800A2B9C
/* B19D14 800A2B74 84F80006 */ lh $t8, 6($a3)
/* B19D18 800A2B78 84EE0006 */ lh $t6, 6($a3)
/* B19D1C 800A2B7C 00057840 */ sll $t7, $a1, 1
/* B19D20 800A2B80 01E9C021 */ addu $t8, $t7, $t1
/* B19D24 800A2B84 000EC840 */ sll $t9, $t6, 1
/* B19D28 800A2B88 03197821 */ addu $t7, $t8, $t9
/* B19D2C 800A2B8C 85EE0000 */ lh $t6, ($t7)
/* B19D30 800A2B90 10000006 */ b .L800A2BAC
/* B19D34 800A2B94 A4CE0002 */ sh $t6, 2($a2)
/* B19D38 800A2B98 84F80006 */ lh $t8, 6($a3)
.L800A2B9C:
/* B19D3C 800A2B9C 0018C840 */ sll $t9, $t8, 1
/* B19D40 800A2BA0 01397821 */ addu $t7, $t1, $t9
/* B19D44 800A2BA4 85EE0000 */ lh $t6, ($t7)
/* B19D48 800A2BA8 A4CE0002 */ sh $t6, 2($a2)
.L800A2BAC:
/* B19D4C 800A2BAC 84F80008 */ lh $t8, 8($a3)
/* B19D50 800A2BB0 00B8082A */ slt $at, $a1, $t8
/* B19D54 800A2BB4 5020000A */ beql $at, $zero, .L800A2BE0
/* B19D58 800A2BB8 84EF000A */ lh $t7, 0xa($a3)
/* B19D5C 800A2BBC 84EE000A */ lh $t6, 0xa($a3)
/* B19D60 800A2BC0 0005C840 */ sll $t9, $a1, 1
/* B19D64 800A2BC4 03297821 */ addu $t7, $t9, $t1
/* B19D68 800A2BC8 000EC040 */ sll $t8, $t6, 1
/* B19D6C 800A2BCC 01F8C821 */ addu $t9, $t7, $t8
/* B19D70 800A2BD0 872E0000 */ lh $t6, ($t9)
/* B19D74 800A2BD4 10000006 */ b .L800A2BF0
/* B19D78 800A2BD8 A4CE0004 */ sh $t6, 4($a2)
/* B19D7C 800A2BDC 84EF000A */ lh $t7, 0xa($a3)
.L800A2BE0:
/* B19D80 800A2BE0 000FC040 */ sll $t8, $t7, 1
/* B19D84 800A2BE4 0138C821 */ addu $t9, $t1, $t8
/* B19D88 800A2BE8 872E0000 */ lh $t6, ($t9)
/* B19D8C 800A2BEC A4CE0004 */ sh $t6, 4($a2)
.L800A2BF0:
/* B19D90 800A2BF0 246F0001 */ addiu $t7, $v1, 1
/* B19D94 800A2BF4 24E7000C */ addiu $a3, $a3, 0xc
/* B19D98 800A2BF8 11E2006E */ beq $t7, $v0, .L800A2DB4
/* B19D9C 800A2BFC 24C60006 */ addiu $a2, $a2, 6
.L800A2C00:
/* B19DA0 800A2C00 84F80000 */ lh $t8, ($a3)
.L800A2C04:
/* B19DA4 800A2C04 24420002 */ addiu $v0, $v0, 2
/* B19DA8 800A2C08 00B8082A */ slt $at, $a1, $t8
/* B19DAC 800A2C0C 5020000A */ beql $at, $zero, .L800A2C38
/* B19DB0 800A2C10 84EE0002 */ lh $t6, 2($a3)
/* B19DB4 800A2C14 84EF0002 */ lh $t7, 2($a3)
/* B19DB8 800A2C18 0005C840 */ sll $t9, $a1, 1
/* B19DBC 800A2C1C 03297021 */ addu $t6, $t9, $t1
/* B19DC0 800A2C20 000FC040 */ sll $t8, $t7, 1
/* B19DC4 800A2C24 01D8C821 */ addu $t9, $t6, $t8
/* B19DC8 800A2C28 872F0000 */ lh $t7, ($t9)
/* B19DCC 800A2C2C 10000006 */ b .L800A2C48
/* B19DD0 800A2C30 A4CF0000 */ sh $t7, ($a2)
/* B19DD4 800A2C34 84EE0002 */ lh $t6, 2($a3)
.L800A2C38:
/* B19DD8 800A2C38 000EC040 */ sll $t8, $t6, 1
/* B19DDC 800A2C3C 0138C821 */ addu $t9, $t1, $t8
/* B19DE0 800A2C40 872F0000 */ lh $t7, ($t9)
/* B19DE4 800A2C44 A4CF0000 */ sh $t7, ($a2)
.L800A2C48:
/* B19DE8 800A2C48 84EE0004 */ lh $t6, 4($a3)
/* B19DEC 800A2C4C 00AE082A */ slt $at, $a1, $t6
/* B19DF0 800A2C50 5020000A */ beql $at, $zero, .L800A2C7C
/* B19DF4 800A2C54 84F90006 */ lh $t9, 6($a3)
/* B19DF8 800A2C58 84EF0006 */ lh $t7, 6($a3)
/* B19DFC 800A2C5C 0005C040 */ sll $t8, $a1, 1
/* B19E00 800A2C60 0309C821 */ addu $t9, $t8, $t1
/* B19E04 800A2C64 000F7040 */ sll $t6, $t7, 1
/* B19E08 800A2C68 032EC021 */ addu $t8, $t9, $t6
/* B19E0C 800A2C6C 870F0000 */ lh $t7, ($t8)
/* B19E10 800A2C70 10000006 */ b .L800A2C8C
/* B19E14 800A2C74 A4CF0002 */ sh $t7, 2($a2)
/* B19E18 800A2C78 84F90006 */ lh $t9, 6($a3)
.L800A2C7C:
/* B19E1C 800A2C7C 00197040 */ sll $t6, $t9, 1
/* B19E20 800A2C80 012EC021 */ addu $t8, $t1, $t6
/* B19E24 800A2C84 870F0000 */ lh $t7, ($t8)
/* B19E28 800A2C88 A4CF0002 */ sh $t7, 2($a2)
.L800A2C8C:
/* B19E2C 800A2C8C 84F90008 */ lh $t9, 8($a3)
/* B19E30 800A2C90 00B9082A */ slt $at, $a1, $t9
/* B19E34 800A2C94 5020000A */ beql $at, $zero, .L800A2CC0
/* B19E38 800A2C98 84F8000A */ lh $t8, 0xa($a3)
/* B19E3C 800A2C9C 84EF000A */ lh $t7, 0xa($a3)
/* B19E40 800A2CA0 00057040 */ sll $t6, $a1, 1
/* B19E44 800A2CA4 01C9C021 */ addu $t8, $t6, $t1
/* B19E48 800A2CA8 000FC840 */ sll $t9, $t7, 1
/* B19E4C 800A2CAC 03197021 */ addu $t6, $t8, $t9
/* B19E50 800A2CB0 85CF0000 */ lh $t7, ($t6)
/* B19E54 800A2CB4 10000006 */ b .L800A2CD0
/* B19E58 800A2CB8 A4CF0004 */ sh $t7, 4($a2)
/* B19E5C 800A2CBC 84F8000A */ lh $t8, 0xa($a3)
.L800A2CC0:
/* B19E60 800A2CC0 0018C840 */ sll $t9, $t8, 1
/* B19E64 800A2CC4 01397021 */ addu $t6, $t1, $t9
/* B19E68 800A2CC8 85CF0000 */ lh $t7, ($t6)
/* B19E6C 800A2CCC A4CF0004 */ sh $t7, 4($a2)
.L800A2CD0:
/* B19E70 800A2CD0 84F8000C */ lh $t8, 0xc($a3)
/* B19E74 800A2CD4 24E7000C */ addiu $a3, $a3, 0xc
/* B19E78 800A2CD8 24C60006 */ addiu $a2, $a2, 6
/* B19E7C 800A2CDC 00B8082A */ slt $at, $a1, $t8
/* B19E80 800A2CE0 5020000A */ beql $at, $zero, .L800A2D0C
/* B19E84 800A2CE4 84EE0002 */ lh $t6, 2($a3)
/* B19E88 800A2CE8 84EF0002 */ lh $t7, 2($a3)
/* B19E8C 800A2CEC 0005C840 */ sll $t9, $a1, 1
/* B19E90 800A2CF0 03297021 */ addu $t6, $t9, $t1
/* B19E94 800A2CF4 000FC040 */ sll $t8, $t7, 1
/* B19E98 800A2CF8 01D8C821 */ addu $t9, $t6, $t8
/* B19E9C 800A2CFC 872F0000 */ lh $t7, ($t9)
/* B19EA0 800A2D00 10000006 */ b .L800A2D1C
/* B19EA4 800A2D04 A4CF0000 */ sh $t7, ($a2)
/* B19EA8 800A2D08 84EE0002 */ lh $t6, 2($a3)
.L800A2D0C:
/* B19EAC 800A2D0C 000EC040 */ sll $t8, $t6, 1
/* B19EB0 800A2D10 0138C821 */ addu $t9, $t1, $t8
/* B19EB4 800A2D14 872F0000 */ lh $t7, ($t9)
/* B19EB8 800A2D18 A4CF0000 */ sh $t7, ($a2)
.L800A2D1C:
/* B19EBC 800A2D1C 84EE0004 */ lh $t6, 4($a3)
/* B19EC0 800A2D20 00AE082A */ slt $at, $a1, $t6
/* B19EC4 800A2D24 5020000A */ beql $at, $zero, .L800A2D50
/* B19EC8 800A2D28 84F90006 */ lh $t9, 6($a3)
/* B19ECC 800A2D2C 84EF0006 */ lh $t7, 6($a3)
/* B19ED0 800A2D30 0005C040 */ sll $t8, $a1, 1
/* B19ED4 800A2D34 0309C821 */ addu $t9, $t8, $t1
/* B19ED8 800A2D38 000F7040 */ sll $t6, $t7, 1
/* B19EDC 800A2D3C 032EC021 */ addu $t8, $t9, $t6
/* B19EE0 800A2D40 870F0000 */ lh $t7, ($t8)
/* B19EE4 800A2D44 10000006 */ b .L800A2D60
/* B19EE8 800A2D48 A4CF0002 */ sh $t7, 2($a2)
/* B19EEC 800A2D4C 84F90006 */ lh $t9, 6($a3)
.L800A2D50:
/* B19EF0 800A2D50 00197040 */ sll $t6, $t9, 1
/* B19EF4 800A2D54 012EC021 */ addu $t8, $t1, $t6
/* B19EF8 800A2D58 870F0000 */ lh $t7, ($t8)
/* B19EFC 800A2D5C A4CF0002 */ sh $t7, 2($a2)
.L800A2D60:
/* B19F00 800A2D60 84F90008 */ lh $t9, 8($a3)
/* B19F04 800A2D64 00B9082A */ slt $at, $a1, $t9
/* B19F08 800A2D68 5020000A */ beql $at, $zero, .L800A2D94
/* B19F0C 800A2D6C 84F8000A */ lh $t8, 0xa($a3)
/* B19F10 800A2D70 84EF000A */ lh $t7, 0xa($a3)
/* B19F14 800A2D74 00057040 */ sll $t6, $a1, 1
/* B19F18 800A2D78 01C9C021 */ addu $t8, $t6, $t1
/* B19F1C 800A2D7C 000FC840 */ sll $t9, $t7, 1
/* B19F20 800A2D80 03197021 */ addu $t6, $t8, $t9
/* B19F24 800A2D84 85CF0000 */ lh $t7, ($t6)
/* B19F28 800A2D88 10000006 */ b .L800A2DA4
/* B19F2C 800A2D8C A4CF0004 */ sh $t7, 4($a2)
/* B19F30 800A2D90 84F8000A */ lh $t8, 0xa($a3)
.L800A2D94:
/* B19F34 800A2D94 0018C840 */ sll $t9, $t8, 1
/* B19F38 800A2D98 01397021 */ addu $t6, $t1, $t9
/* B19F3C 800A2D9C 85CF0000 */ lh $t7, ($t6)
/* B19F40 800A2DA0 A4CF0004 */ sh $t7, 4($a2)
.L800A2DA4:
/* B19F44 800A2DA4 24780001 */ addiu $t8, $v1, 1
/* B19F48 800A2DA8 24E7000C */ addiu $a3, $a3, 0xc
/* B19F4C 800A2DAC 1702FF94 */ bne $t8, $v0, .L800A2C00
/* B19F50 800A2DB0 24C60006 */ addiu $a2, $a2, 6
.L800A2DB4:
/* B19F54 800A2DB4 03E00008 */ jr $ra
/* B19F58 800A2DB8 00601025 */ move $v0, $v1
@@ -1,207 +0,0 @@
.rdata
glabel D_801407D0
.asciz "\x1b[43;30m"
.balign 4
glabel D_801407DC
.asciz "Skin_Matrix_InverseMatrix():\n"
# EUC-JP: | Inverse matrix cannot be created
.balign 4
glabel D_8014080C
.asciz "\x1b[m"
.balign 4
.late_rodata
glabel D_80140844
.float 0.0005
.text
glabel SkinMatrix_Invert
/* B1E580 800A73E0 27BDFF48 */ addiu $sp, $sp, -0xb8
/* B1E584 800A73E4 AFB40028 */ sw $s4, 0x28($sp)
/* B1E588 800A73E8 AFB30024 */ sw $s3, 0x24($sp)
/* B1E58C 800A73EC 00A09825 */ move $s3, $a1
/* B1E590 800A73F0 27B40078 */ addiu $s4, $sp, 0x78
/* B1E594 800A73F4 AFBF002C */ sw $ra, 0x2c($sp)
/* B1E598 800A73F8 AFB20020 */ sw $s2, 0x20($sp)
/* B1E59C 800A73FC AFB1001C */ sw $s1, 0x1c($sp)
/* B1E5A0 800A7400 AFB00018 */ sw $s0, 0x18($sp)
/* B1E5A4 800A7404 0C029CD7 */ jal SkinMatrix_MtxFCopy
/* B1E5A8 800A7408 02802825 */ move $a1, $s4
/* B1E5AC 800A740C 0C029CC3 */ jal SkinMatrix_Clear
/* B1E5B0 800A7410 02602025 */ move $a0, $s3
/* B1E5B4 800A7414 3C018014 */ lui $at, %hi(D_80140844)
/* B1E5B8 800A7418 C42C0844 */ lwc1 $f12, %lo(D_80140844)($at)
/* B1E5BC 800A741C 00008025 */ move $s0, $zero
/* B1E5C0 800A7420 240C0004 */ li $t4, 4
/* B1E5C4 800A7424 2A010004 */ slti $at, $s0, 4
.L800A7428:
/* B1E5C8 800A7428 10200016 */ beqz $at, .L800A7484
/* B1E5CC 800A742C 02004825 */ move $t1, $s0
/* B1E5D0 800A7430 00107100 */ sll $t6, $s0, 4
/* B1E5D4 800A7434 028E5821 */ addu $t3, $s4, $t6
/* B1E5D8 800A7438 00107880 */ sll $t7, $s0, 2
/* B1E5DC 800A743C 016FC021 */ addu $t8, $t3, $t7
/* B1E5E0 800A7440 C7000000 */ lwc1 $f0, ($t8)
/* B1E5E4 800A7444 46000005 */ abs.s $f0, $f0
/* B1E5E8 800A7448 460C003C */ c.lt.s $f0, $f12
/* B1E5EC 800A744C 00000000 */ nop
/* B1E5F0 800A7450 4500000C */ bc1f .L800A7484
/* B1E5F4 800A7454 00000000 */ nop
/* B1E5F8 800A7458 25290001 */ addiu $t1, $t1, 1
.L800A745C:
/* B1E5FC 800A745C 29210004 */ slti $at, $t1, 4
/* B1E600 800A7460 10200008 */ beqz $at, .L800A7484
/* B1E604 800A7464 0009C880 */ sll $t9, $t1, 2
/* B1E608 800A7468 01797021 */ addu $t6, $t3, $t9
/* B1E60C 800A746C C5C00000 */ lwc1 $f0, ($t6)
/* B1E610 800A7470 46000005 */ abs.s $f0, $f0
/* B1E614 800A7474 460C003C */ c.lt.s $f0, $f12
/* B1E618 800A7478 00000000 */ nop
/* B1E61C 800A747C 4503FFF7 */ bc1tl .L800A745C
/* B1E620 800A7480 25290001 */ addiu $t1, $t1, 1
.L800A7484:
/* B1E624 800A7484 152C000C */ bne $t1, $t4, .L800A74B8
/* B1E628 800A7488 00107900 */ sll $t7, $s0, 4
/* B1E62C 800A748C 3C048014 */ lui $a0, %hi(D_801407D0) # $a0, 0x8014
/* B1E630 800A7490 0C00084C */ jal osSyncPrintf
/* B1E634 800A7494 248407D0 */ addiu $a0, %lo(D_801407D0) # addiu $a0, $a0, 0x7d0
/* B1E638 800A7498 3C048014 */ lui $a0, %hi(D_801407DC) # $a0, 0x8014
/* B1E63C 800A749C 0C00084C */ jal osSyncPrintf
/* B1E640 800A74A0 248407DC */ addiu $a0, %lo(D_801407DC) # addiu $a0, $a0, 0x7dc
/* B1E644 800A74A4 3C048014 */ lui $a0, %hi(D_8014080C) # $a0, 0x8014
/* B1E648 800A74A8 0C00084C */ jal osSyncPrintf
/* B1E64C 800A74AC 2484080C */ addiu $a0, %lo(D_8014080C) # addiu $a0, $a0, 0x80c
/* B1E650 800A74B0 10000074 */ b .L800A7684
/* B1E654 800A74B4 24020002 */ li $v0, 2
.L800A74B8:
/* B1E658 800A74B8 00106880 */ sll $t5, $s0, 2
/* B1E65C 800A74BC 028F5821 */ addu $t3, $s4, $t7
/* B1E660 800A74C0 016D9021 */ addu $s2, $t3, $t5
/* B1E664 800A74C4 028D2021 */ addu $a0, $s4, $t5
/* B1E668 800A74C8 026D2821 */ addu $a1, $s3, $t5
/* B1E66C 800A74CC 1130001E */ beq $t1, $s0, .L800A7548
/* B1E670 800A74D0 0260F825 */ move $ra, $s3
/* B1E674 800A74D4 00094080 */ sll $t0, $t1, 2
/* B1E678 800A74D8 27B80078 */ addiu $t8, $sp, 0x78
/* B1E67C 800A74DC 01181021 */ addu $v0, $t0, $t8
/* B1E680 800A74E0 01B81821 */ addu $v1, $t5, $t8
/* B1E684 800A74E4 02683021 */ addu $a2, $s3, $t0
/* B1E688 800A74E8 00005025 */ move $t2, $zero
/* B1E68C 800A74EC 026D3821 */ addu $a3, $s3, $t5
.L800A74F0:
/* B1E690 800A74F0 C4640000 */ lwc1 $f4, ($v1)
/* B1E694 800A74F4 C4400000 */ lwc1 $f0, ($v0)
/* B1E698 800A74F8 254A0002 */ addiu $t2, $t2, 2
/* B1E69C 800A74FC E4440000 */ swc1 $f4, ($v0)
/* B1E6A0 800A7500 E4600000 */ swc1 $f0, ($v1)
/* B1E6A4 800A7504 C4E60000 */ lwc1 $f6, ($a3)
/* B1E6A8 800A7508 C4C20000 */ lwc1 $f2, ($a2)
/* B1E6AC 800A750C 24420020 */ addiu $v0, $v0, 0x20
/* B1E6B0 800A7510 E4C60000 */ swc1 $f6, ($a2)
/* B1E6B4 800A7514 E4E20000 */ swc1 $f2, ($a3)
/* B1E6B8 800A7518 C4680010 */ lwc1 $f8, 0x10($v1)
/* B1E6BC 800A751C C440FFF0 */ lwc1 $f0, -0x10($v0)
/* B1E6C0 800A7520 24630020 */ addiu $v1, $v1, 0x20
/* B1E6C4 800A7524 E448FFF0 */ swc1 $f8, -0x10($v0)
/* B1E6C8 800A7528 E460FFF0 */ swc1 $f0, -0x10($v1)
/* B1E6CC 800A752C C4EA0010 */ lwc1 $f10, 0x10($a3)
/* B1E6D0 800A7530 C4C20010 */ lwc1 $f2, 0x10($a2)
/* B1E6D4 800A7534 24C60020 */ addiu $a2, $a2, 0x20
/* B1E6D8 800A7538 E4CAFFF0 */ swc1 $f10, -0x10($a2)
/* B1E6DC 800A753C 24E70020 */ addiu $a3, $a3, 0x20
/* B1E6E0 800A7540 154CFFEB */ bne $t2, $t4, .L800A74F0
/* B1E6E4 800A7544 E4E2FFF0 */ swc1 $f2, -0x10($a3)
.L800A7548:
/* B1E6E8 800A7548 C6400000 */ lwc1 $f0, ($s2)
/* B1E6EC 800A754C C4900000 */ lwc1 $f16, ($a0)
/* B1E6F0 800A7550 00004825 */ move $t1, $zero
/* B1E6F4 800A7554 46008483 */ div.s $f18, $f16, $f0
/* B1E6F8 800A7558 E4920000 */ swc1 $f18, ($a0)
/* B1E6FC 800A755C C4A40000 */ lwc1 $f4, ($a1)
/* B1E700 800A7560 46002183 */ div.s $f6, $f4, $f0
/* B1E704 800A7564 E4A60000 */ swc1 $f6, ($a1)
/* B1E708 800A7568 C4880010 */ lwc1 $f8, 0x10($a0)
/* B1E70C 800A756C 46004283 */ div.s $f10, $f8, $f0
/* B1E710 800A7570 E48A0010 */ swc1 $f10, 0x10($a0)
/* B1E714 800A7574 C4B00010 */ lwc1 $f16, 0x10($a1)
/* B1E718 800A7578 46008483 */ div.s $f18, $f16, $f0
/* B1E71C 800A757C E4B20010 */ swc1 $f18, 0x10($a1)
/* B1E720 800A7580 C4840020 */ lwc1 $f4, 0x20($a0)
/* B1E724 800A7584 46002183 */ div.s $f6, $f4, $f0
/* B1E728 800A7588 E4860020 */ swc1 $f6, 0x20($a0)
/* B1E72C 800A758C C4A80020 */ lwc1 $f8, 0x20($a1)
/* B1E730 800A7590 46004283 */ div.s $f10, $f8, $f0
/* B1E734 800A7594 E4AA0020 */ swc1 $f10, 0x20($a1)
/* B1E738 800A7598 C4900030 */ lwc1 $f16, 0x30($a0)
/* B1E73C 800A759C 46008483 */ div.s $f18, $f16, $f0
/* B1E740 800A75A0 E4920030 */ swc1 $f18, 0x30($a0)
/* B1E744 800A75A4 C4A40030 */ lwc1 $f4, 0x30($a1)
/* B1E748 800A75A8 46002183 */ div.s $f6, $f4, $f0
/* B1E74C 800A75AC E4A60030 */ swc1 $f6, 0x30($a1)
.L800A75B0:
/* B1E750 800A75B0 1130002D */ beq $t1, $s0, .L800A7668
/* B1E754 800A75B4 00094080 */ sll $t0, $t1, 2
/* B1E758 800A75B8 0168C821 */ addu $t9, $t3, $t0
/* B1E75C 800A75BC C7200000 */ lwc1 $f0, ($t9)
/* B1E760 800A75C0 C48A0000 */ lwc1 $f10, ($a0)
/* B1E764 800A75C4 02881021 */ addu $v0, $s4, $t0
/* B1E768 800A75C8 C4480000 */ lwc1 $f8, ($v0)
/* B1E76C 800A75CC 46005402 */ mul.s $f16, $f10, $f0
/* B1E770 800A75D0 03E81821 */ addu $v1, $ra, $t0
/* B1E774 800A75D4 46104481 */ sub.s $f18, $f8, $f16
/* B1E778 800A75D8 E4520000 */ swc1 $f18, ($v0)
/* B1E77C 800A75DC C4A60000 */ lwc1 $f6, ($a1)
/* B1E780 800A75E0 C4640000 */ lwc1 $f4, ($v1)
/* B1E784 800A75E4 46003282 */ mul.s $f10, $f6, $f0
/* B1E788 800A75E8 460A2201 */ sub.s $f8, $f4, $f10
/* B1E78C 800A75EC E4680000 */ swc1 $f8, ($v1)
/* B1E790 800A75F0 C4920010 */ lwc1 $f18, 0x10($a0)
/* B1E794 800A75F4 C4500010 */ lwc1 $f16, 0x10($v0)
/* B1E798 800A75F8 46009182 */ mul.s $f6, $f18, $f0
/* B1E79C 800A75FC 46068101 */ sub.s $f4, $f16, $f6
/* B1E7A0 800A7600 E4440010 */ swc1 $f4, 0x10($v0)
/* B1E7A4 800A7604 C4A80010 */ lwc1 $f8, 0x10($a1)
/* B1E7A8 800A7608 C46A0010 */ lwc1 $f10, 0x10($v1)
/* B1E7AC 800A760C 46004482 */ mul.s $f18, $f8, $f0
/* B1E7B0 800A7610 46125401 */ sub.s $f16, $f10, $f18
/* B1E7B4 800A7614 E4700010 */ swc1 $f16, 0x10($v1)
/* B1E7B8 800A7618 C4840020 */ lwc1 $f4, 0x20($a0)
/* B1E7BC 800A761C C4460020 */ lwc1 $f6, 0x20($v0)
/* B1E7C0 800A7620 46002202 */ mul.s $f8, $f4, $f0
/* B1E7C4 800A7624 46083281 */ sub.s $f10, $f6, $f8
/* B1E7C8 800A7628 E44A0020 */ swc1 $f10, 0x20($v0)
/* B1E7CC 800A762C C4B00020 */ lwc1 $f16, 0x20($a1)
/* B1E7D0 800A7630 C4720020 */ lwc1 $f18, 0x20($v1)
/* B1E7D4 800A7634 46008102 */ mul.s $f4, $f16, $f0
/* B1E7D8 800A7638 46049181 */ sub.s $f6, $f18, $f4
/* B1E7DC 800A763C E4660020 */ swc1 $f6, 0x20($v1)
/* B1E7E0 800A7640 C48A0030 */ lwc1 $f10, 0x30($a0)
/* B1E7E4 800A7644 C4480030 */ lwc1 $f8, 0x30($v0)
/* B1E7E8 800A7648 46005402 */ mul.s $f16, $f10, $f0
/* B1E7EC 800A764C 46104481 */ sub.s $f18, $f8, $f16
/* B1E7F0 800A7650 E4520030 */ swc1 $f18, 0x30($v0)
/* B1E7F4 800A7654 C4A60030 */ lwc1 $f6, 0x30($a1)
/* B1E7F8 800A7658 C4640030 */ lwc1 $f4, 0x30($v1)
/* B1E7FC 800A765C 46003282 */ mul.s $f10, $f6, $f0
/* B1E800 800A7660 460A2201 */ sub.s $f8, $f4, $f10
/* B1E804 800A7664 E4680030 */ swc1 $f8, 0x30($v1)
.L800A7668:
/* B1E808 800A7668 25290001 */ addiu $t1, $t1, 1
/* B1E80C 800A766C 152CFFD0 */ bne $t1, $t4, .L800A75B0
/* B1E810 800A7670 00000000 */ nop
/* B1E814 800A7674 26100001 */ addiu $s0, $s0, 1
/* B1E818 800A7678 560CFF6B */ bnel $s0, $t4, .L800A7428
/* B1E81C 800A767C 2A010004 */ slti $at, $s0, 4
/* B1E820 800A7680 00001025 */ move $v0, $zero
.L800A7684:
/* B1E824 800A7684 8FBF002C */ lw $ra, 0x2c($sp)
/* B1E828 800A7688 8FB00018 */ lw $s0, 0x18($sp)
/* B1E82C 800A768C 8FB1001C */ lw $s1, 0x1c($sp)
/* B1E830 800A7690 8FB20020 */ lw $s2, 0x20($sp)
/* B1E834 800A7694 8FB30024 */ lw $s3, 0x24($sp)
/* B1E838 800A7698 8FB40028 */ lw $s4, 0x28($sp)
/* B1E83C 800A769C 03E00008 */ jr $ra
/* B1E840 800A76A0 27BD00B8 */ addiu $sp, $sp, 0xb8
@@ -1,94 +0,0 @@
glabel func_800A7EC0
/* B1F060 800A7EC0 27BDFF98 */ addiu $sp, $sp, -0x68
/* B1F064 800A7EC4 F7B40010 */ sdc1 $f20, 0x10($sp)
/* B1F068 800A7EC8 4486A000 */ mtc1 $a2, $f20
/* B1F06C 800A7ECC F7B60018 */ sdc1 $f22, 0x18($sp)
/* B1F070 800A7ED0 4487B000 */ mtc1 $a3, $f22
/* B1F074 800A7ED4 00803025 */ move $a2, $a0
/* B1F078 800A7ED8 AFBF0024 */ sw $ra, 0x24($sp)
/* B1F07C 800A7EDC AFA40068 */ sw $a0, 0x68($sp)
/* B1F080 800A7EE0 AFA5006C */ sw $a1, 0x6c($sp)
/* B1F084 800A7EE4 87A4006E */ lh $a0, 0x6e($sp)
/* B1F088 800A7EE8 0C01DE1C */ jal Math_Sins
/* B1F08C 800A7EEC AFA60068 */ sw $a2, 0x68($sp)
/* B1F090 800A7EF0 87A4006E */ lh $a0, 0x6e($sp)
/* B1F094 800A7EF4 0C01DE0D */ jal Math_Coss
/* B1F098 800A7EF8 E7A00064 */ swc1 $f0, 0x64($sp)
/* B1F09C 800A7EFC 4616A302 */ mul.s $f12, $f20, $f22
/* B1F0A0 800A7F00 C7A40078 */ lwc1 $f4, 0x78($sp)
/* B1F0A4 800A7F04 3C013F80 */ li $at, 0x3F800000 # 0.000000
/* B1F0A8 800A7F08 44814000 */ mtc1 $at, $f8
/* B1F0AC 800A7F0C 4604B182 */ mul.s $f6, $f22, $f4
/* B1F0B0 800A7F10 8FA60068 */ lw $a2, 0x68($sp)
/* B1F0B4 800A7F14 C7B20064 */ lwc1 $f18, 0x64($sp)
/* B1F0B8 800A7F18 4604A382 */ mul.s $f14, $f20, $f4
/* B1F0BC 800A7F1C E7AC0050 */ swc1 $f12, 0x50($sp)
/* B1F0C0 800A7F20 4614A082 */ mul.s $f2, $f20, $f20
/* B1F0C4 800A7F24 E7A6004C */ swc1 $f6, 0x4c($sp)
/* B1F0C8 800A7F28 E7AE0048 */ swc1 $f14, 0x48($sp)
/* B1F0CC 800A7F2C 46024281 */ sub.s $f10, $f8, $f2
/* B1F0D0 800A7F30 44814000 */ mtc1 $at, $f8
/* B1F0D4 800A7F34 46005182 */ mul.s $f6, $f10, $f0
/* B1F0D8 800A7F38 46004401 */ sub.s $f16, $f8, $f0
/* B1F0DC 800A7F3C 46023100 */ add.s $f4, $f6, $f2
/* B1F0E0 800A7F40 E4C40000 */ swc1 $f4, ($a2)
/* B1F0E4 800A7F44 C7AA0078 */ lwc1 $f10, 0x78($sp)
/* B1F0E8 800A7F48 46125182 */ mul.s $f6, $f10, $f18
/* B1F0EC 800A7F4C 00000000 */ nop
/* B1F0F0 800A7F50 460C8102 */ mul.s $f4, $f16, $f12
/* B1F0F4 800A7F54 44806000 */ mtc1 $zero, $f12
/* B1F0F8 800A7F58 4612B282 */ mul.s $f10, $f22, $f18
/* B1F0FC 800A7F5C E7A60038 */ swc1 $f6, 0x38($sp)
/* B1F100 800A7F60 46062200 */ add.s $f8, $f4, $f6
/* B1F104 800A7F64 460E8102 */ mul.s $f4, $f16, $f14
/* B1F108 800A7F68 E4C80004 */ swc1 $f8, 4($a2)
/* B1F10C 800A7F6C E7AA0034 */ swc1 $f10, 0x34($sp)
/* B1F110 800A7F70 C7A60034 */ lwc1 $f6, 0x34($sp)
/* B1F114 800A7F74 E4CC000C */ swc1 $f12, 0xc($a2)
/* B1F118 800A7F78 46062201 */ sub.s $f8, $f4, $f6
/* B1F11C 800A7F7C E4C80008 */ swc1 $f8, 8($a2)
/* B1F120 800A7F80 C7AA0050 */ lwc1 $f10, 0x50($sp)
/* B1F124 800A7F84 C7A60038 */ lwc1 $f6, 0x38($sp)
/* B1F128 800A7F88 460A8102 */ mul.s $f4, $f16, $f10
/* B1F12C 800A7F8C 44815000 */ mtc1 $at, $f10
/* B1F130 800A7F90 4616B082 */ mul.s $f2, $f22, $f22
/* B1F134 800A7F94 46062201 */ sub.s $f8, $f4, $f6
/* B1F138 800A7F98 46025101 */ sub.s $f4, $f10, $f2
/* B1F13C 800A7F9C E4C80010 */ swc1 $f8, 0x10($a2)
/* B1F140 800A7FA0 46002182 */ mul.s $f6, $f4, $f0
/* B1F144 800A7FA4 46023200 */ add.s $f8, $f6, $f2
/* B1F148 800A7FA8 E4C80014 */ swc1 $f8, 0x14($a2)
/* B1F14C 800A7FAC C7AA004C */ lwc1 $f10, 0x4c($sp)
/* B1F150 800A7FB0 460A8102 */ mul.s $f4, $f16, $f10
/* B1F154 800A7FB4 E7A4002C */ swc1 $f4, 0x2c($sp)
/* B1F158 800A7FB8 4612A382 */ mul.s $f14, $f20, $f18
/* B1F15C 800A7FBC C7A6002C */ lwc1 $f6, 0x2c($sp)
/* B1F160 800A7FC0 E4CC001C */ swc1 $f12, 0x1c($a2)
/* B1F164 800A7FC4 460E3200 */ add.s $f8, $f6, $f14
/* B1F168 800A7FC8 E4C80018 */ swc1 $f8, 0x18($a2)
/* B1F16C 800A7FCC C7AA0048 */ lwc1 $f10, 0x48($sp)
/* B1F170 800A7FD0 C7A60034 */ lwc1 $f6, 0x34($sp)
/* B1F174 800A7FD4 460A8102 */ mul.s $f4, $f16, $f10
/* B1F178 800A7FD8 44818000 */ mtc1 $at, $f16
/* B1F17C 800A7FDC 46062200 */ add.s $f8, $f4, $f6
/* B1F180 800A7FE0 E4C80020 */ swc1 $f8, 0x20($a2)
/* B1F184 800A7FE4 C7B20078 */ lwc1 $f18, 0x78($sp)
/* B1F188 800A7FE8 C7AA002C */ lwc1 $f10, 0x2c($sp)
/* B1F18C 800A7FEC E4CC002C */ swc1 $f12, 0x2c($a2)
/* B1F190 800A7FF0 46129082 */ mul.s $f2, $f18, $f18
/* B1F194 800A7FF4 460E5101 */ sub.s $f4, $f10, $f14
/* B1F198 800A7FF8 E4CC0030 */ swc1 $f12, 0x30($a2)
/* B1F19C 800A7FFC E4CC0034 */ swc1 $f12, 0x34($a2)
/* B1F1A0 800A8000 E4CC0038 */ swc1 $f12, 0x38($a2)
/* B1F1A4 800A8004 E4C40024 */ swc1 $f4, 0x24($a2)
/* B1F1A8 800A8008 E4D0003C */ swc1 $f16, 0x3c($a2)
/* B1F1AC 800A800C 46028181 */ sub.s $f6, $f16, $f2
/* B1F1B0 800A8010 46003202 */ mul.s $f8, $f6, $f0
/* B1F1B4 800A8014 46024280 */ add.s $f10, $f8, $f2
/* B1F1B8 800A8018 E4CA0028 */ swc1 $f10, 0x28($a2)
/* B1F1BC 800A801C 8FBF0024 */ lw $ra, 0x24($sp)
/* B1F1C0 800A8020 D7B60018 */ ldc1 $f22, 0x18($sp)
/* B1F1C4 800A8024 D7B40010 */ ldc1 $f20, 0x10($sp)
/* B1F1C8 800A8028 03E00008 */ jr $ra
/* B1F1CC 800A802C 27BD0068 */ addiu $sp, $sp, 0x68