Files
oot/asm/non_matchings/code/code_800E9340/func_800EAAE0.s
T
Tharo 741c140aef Split remaining unsplit asm files and migrate more rodata (#277)
* Split files

* Format rodata

* Some more code rodata migrated

* Some more actor rodata migrated

* Migrate rodata for ovl_Boss_Ganon

* Migrate rodata for code_800EC960

* Remove unused rodata

* x1b occurences all lowercase b
2020-07-19 21:08:50 -04:00

299 lines
14 KiB
ArmAsm

.late_rodata
glabel D_801496B0
.float 16129
.text
glabel func_800EAAE0
/* B61C80 800EAAE0 27BDFFC0 */ addiu $sp, $sp, -0x40
/* B61C84 800EAAE4 AFBF0014 */ sw $ra, 0x14($sp)
/* B61C88 800EAAE8 AFA50044 */ sw $a1, 0x44($sp)
/* B61C8C 800EAAEC 8C880050 */ lw $t0, 0x50($a0)
/* B61C90 800EAAF0 240100C0 */ li $at, 192
/* B61C94 800EAAF4 00803025 */ move $a2, $a0
/* B61C98 800EAAF8 8D0E004C */ lw $t6, 0x4c($t0)
/* B61C9C 800EAAFC 14A1000D */ bne $a1, $at, .L800EAB34
/* B61CA0 800EAB00 AFAE002C */ sw $t6, 0x2c($sp)
/* B61CA4 800EAB04 24C40054 */ addiu $a0, $a2, 0x54
/* B61CA8 800EAB08 0C03A765 */ jal func_800E9D94
/* B61CAC 800EAB0C AFA60040 */ sw $a2, 0x40($sp)
/* B61CB0 800EAB10 8FA60040 */ lw $a2, 0x40($sp)
/* B61CB4 800EAB14 90D90000 */ lbu $t9, ($a2)
/* B61CB8 800EAB18 A4C20008 */ sh $v0, 8($a2)
/* B61CBC 800EAB1C 2402FFFF */ li $v0, -1
/* B61CC0 800EAB20 372A0020 */ ori $t2, $t9, 0x20
/* B61CC4 800EAB24 314B00FD */ andi $t3, $t2, 0xfd
/* B61CC8 800EAB28 A0CA0000 */ sb $t2, ($a2)
/* B61CCC 800EAB2C 100000ED */ b .L800EAEE4
/* B61CD0 800EAB30 A0CB0000 */ sb $t3, ($a2)
.L800EAB34:
/* B61CD4 800EAB34 90CC0000 */ lbu $t4, ($a2)
/* B61CD8 800EAB38 24010001 */ li $at, 1
/* B61CDC 800EAB3C 318DFFDF */ andi $t5, $t4, 0xffdf
/* B61CE0 800EAB40 A0CD0000 */ sb $t5, ($a2)
/* B61CE4 800EAB44 8D0E0000 */ lw $t6, ($t0)
/* B61CE8 800EAB48 8FA50044 */ lw $a1, 0x44($sp)
/* B61CEC 800EAB4C 000E7980 */ sll $t7, $t6, 6
/* B61CF0 800EAB50 000FC7C2 */ srl $t8, $t7, 0x1f
/* B61CF4 800EAB54 17010053 */ bne $t8, $at, .L800EACA4
/* B61CF8 800EAB58 30A500C0 */ andi $a1, $a1, 0xc0
/* B61CFC 800EAB5C 8FA50044 */ lw $a1, 0x44($sp)
/* B61D00 800EAB60 24010040 */ li $at, 64
/* B61D04 800EAB64 30A500C0 */ andi $a1, $a1, 0xc0
/* B61D08 800EAB68 50A00008 */ beql $a1, $zero, .L800EAB8C
/* B61D0C 800EAB6C 24C40054 */ addiu $a0, $a2, 0x54
/* B61D10 800EAB70 10A1001C */ beq $a1, $at, .L800EABE4
/* B61D14 800EAB74 24010080 */ li $at, 128
/* B61D18 800EAB78 50A1002D */ beql $a1, $at, .L800EAC30
/* B61D1C 800EAB7C 84CE0014 */ lh $t6, 0x14($a2)
/* B61D20 800EAB80 10000037 */ b .L800EAC60
/* B61D24 800EAB84 8FA70034 */ lw $a3, 0x34($sp)
/* B61D28 800EAB88 24C40054 */ addiu $a0, $a2, 0x54
.L800EAB8C:
/* B61D2C 800EAB8C AFA4001C */ sw $a0, 0x1c($sp)
/* B61D30 800EAB90 AFA50018 */ sw $a1, 0x18($sp)
/* B61D34 800EAB94 AFA60040 */ sw $a2, 0x40($sp)
/* B61D38 800EAB98 0C03A765 */ jal func_800E9D94
/* B61D3C 800EAB9C AFA80030 */ sw $t0, 0x30($sp)
/* B61D40 800EABA0 8FA4001C */ lw $a0, 0x1c($sp)
/* B61D44 800EABA4 A7A2003A */ sh $v0, 0x3a($sp)
/* B61D48 800EABA8 8FA60040 */ lw $a2, 0x40($sp)
/* B61D4C 800EABAC 8C830000 */ lw $v1, ($a0)
/* B61D50 800EABB0 8FA50018 */ lw $a1, 0x18($sp)
/* B61D54 800EABB4 8FA80030 */ lw $t0, 0x30($sp)
/* B61D58 800EABB8 90670000 */ lbu $a3, ($v1)
/* B61D5C 800EABBC 24790001 */ addiu $t9, $v1, 1
/* B61D60 800EABC0 AC990000 */ sw $t9, ($a0)
/* B61D64 800EABC4 932A0000 */ lbu $t2, ($t9)
/* B61D68 800EABC8 03204825 */ move $t1, $t9
/* B61D6C 800EABCC A0CA0003 */ sb $t2, 3($a2)
/* B61D70 800EABD0 8C8B0000 */ lw $t3, ($a0)
/* B61D74 800EABD4 256C0001 */ addiu $t4, $t3, 1
/* B61D78 800EABD8 AC8C0000 */ sw $t4, ($a0)
/* B61D7C 800EABDC 10000020 */ b .L800EAC60
/* B61D80 800EABE0 A4C20014 */ sh $v0, 0x14($a2)
.L800EABE4:
/* B61D84 800EABE4 24C40054 */ addiu $a0, $a2, 0x54
/* B61D88 800EABE8 AFA4001C */ sw $a0, 0x1c($sp)
/* B61D8C 800EABEC AFA50018 */ sw $a1, 0x18($sp)
/* B61D90 800EABF0 AFA60040 */ sw $a2, 0x40($sp)
/* B61D94 800EABF4 0C03A765 */ jal func_800E9D94
/* B61D98 800EABF8 AFA80030 */ sw $t0, 0x30($sp)
/* B61D9C 800EABFC 8FA4001C */ lw $a0, 0x1c($sp)
/* B61DA0 800EAC00 A7A2003A */ sh $v0, 0x3a($sp)
/* B61DA4 800EAC04 8FA60040 */ lw $a2, 0x40($sp)
/* B61DA8 800EAC08 8C830000 */ lw $v1, ($a0)
/* B61DAC 800EAC0C 8FA50018 */ lw $a1, 0x18($sp)
/* B61DB0 800EAC10 8FA80030 */ lw $t0, 0x30($sp)
/* B61DB4 800EAC14 90670000 */ lbu $a3, ($v1)
/* B61DB8 800EAC18 246D0001 */ addiu $t5, $v1, 1
/* B61DBC 800EAC1C AC8D0000 */ sw $t5, ($a0)
/* B61DC0 800EAC20 A0C00003 */ sb $zero, 3($a2)
/* B61DC4 800EAC24 1000000E */ b .L800EAC60
/* B61DC8 800EAC28 A4C20014 */ sh $v0, 0x14($a2)
/* B61DCC 800EAC2C 84CE0014 */ lh $t6, 0x14($a2)
.L800EAC30:
/* B61DD0 800EAC30 24C40054 */ addiu $a0, $a2, 0x54
/* B61DD4 800EAC34 A7AE003A */ sh $t6, 0x3a($sp)
/* B61DD8 800EAC38 8C830000 */ lw $v1, ($a0)
/* B61DDC 800EAC3C 90670000 */ lbu $a3, ($v1)
/* B61DE0 800EAC40 246F0001 */ addiu $t7, $v1, 1
/* B61DE4 800EAC44 AC8F0000 */ sw $t7, ($a0)
/* B61DE8 800EAC48 91F90000 */ lbu $t9, ($t7)
/* B61DEC 800EAC4C 01E0C025 */ move $t8, $t7
/* B61DF0 800EAC50 A0D90003 */ sb $t9, 3($a2)
/* B61DF4 800EAC54 8C890000 */ lw $t1, ($a0)
/* B61DF8 800EAC58 252A0001 */ addiu $t2, $t1, 1
/* B61DFC 800EAC5C AC8A0000 */ sw $t2, ($a0)
.L800EAC60:
/* B61E00 800EAC60 28E10080 */ slti $at, $a3, 0x80
/* B61E04 800EAC64 50200004 */ beql $at, $zero, .L800EAC78
/* B61E08 800EAC68 2407007F */ li $a3, 127
/* B61E0C 800EAC6C 04E30003 */ bgezl $a3, .L800EAC7C
/* B61E10 800EAC70 44872000 */ mtc1 $a3, $f4
/* B61E14 800EAC74 2407007F */ li $a3, 127
.L800EAC78:
/* B61E18 800EAC78 44872000 */ mtc1 $a3, $f4
.L800EAC7C:
/* B61E1C 800EAC7C 3C018015 */ lui $at, %hi(D_801496B0)
/* B61E20 800EAC80 C42896B0 */ lwc1 $f8, %lo(D_801496B0)($at)
/* B61E24 800EAC84 46802020 */ cvt.s.w $f0, $f4
/* B61E28 800EAC88 46000182 */ mul.s $f6, $f0, $f0
/* B61E2C 800EAC8C 46083283 */ div.s $f10, $f6, $f8
/* B61E30 800EAC90 E4CA003C */ swc1 $f10, 0x3c($a2)
/* B61E34 800EAC94 8FAB0044 */ lw $t3, 0x44($sp)
/* B61E38 800EAC98 01656023 */ subu $t4, $t3, $a1
/* B61E3C 800EAC9C 1000001D */ b .L800EAD14
/* B61E40 800EACA0 AFAC0044 */ sw $t4, 0x44($sp)
.L800EACA4:
/* B61E44 800EACA4 10A00008 */ beqz $a1, .L800EACC8
/* B61E48 800EACA8 24010040 */ li $at, 64
/* B61E4C 800EACAC 50A10012 */ beql $a1, $at, .L800EACF8
/* B61E50 800EACB0 84CD0012 */ lh $t5, 0x12($a2)
/* B61E54 800EACB4 24010080 */ li $at, 128
/* B61E58 800EACB8 50A10012 */ beql $a1, $at, .L800EAD04
/* B61E5C 800EACBC 84CE0014 */ lh $t6, 0x14($a2)
/* B61E60 800EACC0 10000012 */ b .L800EAD0C
/* B61E64 800EACC4 8FAF0044 */ lw $t7, 0x44($sp)
.L800EACC8:
/* B61E68 800EACC8 24C40054 */ addiu $a0, $a2, 0x54
/* B61E6C 800EACCC AFA50018 */ sw $a1, 0x18($sp)
/* B61E70 800EACD0 AFA60040 */ sw $a2, 0x40($sp)
/* B61E74 800EACD4 0C03A765 */ jal func_800E9D94
/* B61E78 800EACD8 AFA80030 */ sw $t0, 0x30($sp)
/* B61E7C 800EACDC 8FA60040 */ lw $a2, 0x40($sp)
/* B61E80 800EACE0 8FA50018 */ lw $a1, 0x18($sp)
/* B61E84 800EACE4 8FA80030 */ lw $t0, 0x30($sp)
/* B61E88 800EACE8 A7A2003A */ sh $v0, 0x3a($sp)
/* B61E8C 800EACEC 10000006 */ b .L800EAD08
/* B61E90 800EACF0 A4C20014 */ sh $v0, 0x14($a2)
/* B61E94 800EACF4 84CD0012 */ lh $t5, 0x12($a2)
.L800EACF8:
/* B61E98 800EACF8 10000003 */ b .L800EAD08
/* B61E9C 800EACFC A7AD003A */ sh $t5, 0x3a($sp)
/* B61EA0 800EAD00 84CE0014 */ lh $t6, 0x14($a2)
.L800EAD04:
/* B61EA4 800EAD04 A7AE003A */ sh $t6, 0x3a($sp)
.L800EAD08:
/* B61EA8 800EAD08 8FAF0044 */ lw $t7, 0x44($sp)
.L800EAD0C:
/* B61EAC 800EAD0C 01E5C023 */ subu $t8, $t7, $a1
/* B61EB0 800EAD10 AFB80044 */ sw $t8, 0x44($sp)
.L800EAD14:
/* B61EB4 800EAD14 9103000D */ lbu $v1, 0xd($t0)
/* B61EB8 800EAD18 3C028017 */ lui $v0, %hi(D_80171AFC)
/* B61EBC 800EAD1C 5060002A */ beql $v1, $zero, .L800EADC8
/* B61EC0 800EAD20 C4D0003C */ lwc1 $f16, 0x3c($a2)
/* B61EC4 800EAD24 8C421AFC */ lw $v0, %lo(D_80171AFC)($v0)
/* B61EC8 800EAD28 C4CC003C */ lwc1 $f12, 0x3c($a2)
/* B61ECC 800EAD2C 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* B61ED0 800EAD30 0043001B */ divu $zero, $v0, $v1
/* B61ED4 800EAD34 0000C810 */ mfhi $t9
/* B61ED8 800EAD38 44998000 */ mtc1 $t9, $f16
/* B61EDC 800EAD3C 14600002 */ bnez $v1, .L800EAD48
/* B61EE0 800EAD40 00000000 */ nop
/* B61EE4 800EAD44 0007000D */ break 7
.L800EAD48:
/* B61EE8 800EAD48 468084A0 */ cvt.s.w $f18, $f16
/* B61EEC 800EAD4C 07210004 */ bgez $t9, .L800EAD60
/* B61EF0 800EAD50 00000000 */ nop
/* B61EF4 800EAD54 44812000 */ mtc1 $at, $f4
/* B61EF8 800EAD58 00000000 */ nop
/* B61EFC 800EAD5C 46049480 */ add.s $f18, $f18, $f4
.L800EAD60:
/* B61F00 800EAD60 46126182 */ mul.s $f6, $f12, $f18
/* B61F04 800EAD64 3C0142C8 */ li $at, 0x42C80000 # 0.000000
/* B61F08 800EAD68 44814000 */ mtc1 $at, $f8
/* B61F0C 800EAD6C 30498000 */ andi $t1, $v0, 0x8000
/* B61F10 800EAD70 11200002 */ beqz $t1, .L800EAD7C
/* B61F14 800EAD74 46083083 */ div.s $f2, $f6, $f8
/* B61F18 800EAD78 46001087 */ neg.s $f2, $f2
.L800EAD7C:
/* B61F1C 800EAD7C 46026000 */ add.s $f0, $f12, $f2
/* B61F20 800EAD80 44807000 */ mtc1 $zero, $f14
/* B61F24 800EAD84 00000000 */ nop
/* B61F28 800EAD88 460E003C */ c.lt.s $f0, $f14
/* B61F2C 800EAD8C E4C00038 */ swc1 $f0, 0x38($a2)
/* B61F30 800EAD90 45020004 */ bc1fl .L800EADA4
/* B61F34 800EAD94 3C013F80 */ lui $at, 0x3f80
/* B61F38 800EAD98 1000000C */ b .L800EADCC
/* B61F3C 800EAD9C E4CE0038 */ swc1 $f14, 0x38($a2)
/* B61F40 800EADA0 3C013F80 */ li $at, 0x3F800000 # 0.000000
.L800EADA4:
/* B61F44 800EADA4 44810000 */ mtc1 $at, $f0
/* B61F48 800EADA8 C4CA0038 */ lwc1 $f10, 0x38($a2)
/* B61F4C 800EADAC 460A003C */ c.lt.s $f0, $f10
/* B61F50 800EADB0 00000000 */ nop
/* B61F54 800EADB4 45020006 */ bc1fl .L800EADD0
/* B61F58 800EADB8 97A2003A */ lhu $v0, 0x3a($sp)
/* B61F5C 800EADBC 10000003 */ b .L800EADCC
/* B61F60 800EADC0 E4C00038 */ swc1 $f0, 0x38($a2)
/* B61F64 800EADC4 C4D0003C */ lwc1 $f16, 0x3c($a2)
.L800EADC8:
/* B61F68 800EADC8 E4D00038 */ swc1 $f16, 0x38($a2)
.L800EADCC:
/* B61F6C 800EADCC 97A2003A */ lhu $v0, 0x3a($sp)
.L800EADD0:
/* B61F70 800EADD0 90CA0003 */ lbu $t2, 3($a2)
/* B61F74 800EADD4 A4C20008 */ sh $v0, 8($a2)
/* B61F78 800EADD8 01420019 */ multu $t2, $v0
/* B61F7C 800EADDC 3C028017 */ lui $v0, %hi(D_80171AFC) # $v0, 0x8017
/* B61F80 800EADE0 00005812 */ mflo $t3
/* B61F84 800EADE4 000B6203 */ sra $t4, $t3, 8
/* B61F88 800EADE8 A4CC000A */ sh $t4, 0xa($a2)
/* B61F8C 800EADEC 910D000E */ lbu $t5, 0xe($t0)
/* B61F90 800EADF0 51A00021 */ beql $t5, $zero, .L800EAE78
/* B61F94 800EADF4 8FA9002C */ lw $t1, 0x2c($sp)
/* B61F98 800EADF8 8C421AFC */ lw $v0, %lo(D_80171AFC)($v0)
/* B61F9C 800EADFC 910E000D */ lbu $t6, 0xd($t0)
/* B61FA0 800EAE00 84C3000A */ lh $v1, 0xa($a2)
/* B61FA4 800EAE04 24010064 */ li $at, 100
/* B61FA8 800EAE08 004E001B */ divu $zero, $v0, $t6
/* B61FAC 800EAE0C 00007810 */ mfhi $t7
/* B61FB0 800EAE10 30584000 */ andi $t8, $v0, 0x4000
/* B61FB4 800EAE14 15C00002 */ bnez $t6, .L800EAE20
/* B61FB8 800EAE18 00000000 */ nop
/* B61FBC 800EAE1C 0007000D */ break 7
.L800EAE20:
/* B61FC0 800EAE20 006F0019 */ multu $v1, $t7
/* B61FC4 800EAE24 00002012 */ mflo $a0
/* B61FC8 800EAE28 00000000 */ nop
/* B61FCC 800EAE2C 00000000 */ nop
/* B61FD0 800EAE30 0081001B */ divu $zero, $a0, $at
/* B61FD4 800EAE34 00002012 */ mflo $a0
/* B61FD8 800EAE38 53000003 */ beql $t8, $zero, .L800EAE48
/* B61FDC 800EAE3C 0064C821 */ addu $t9, $v1, $a0
/* B61FE0 800EAE40 00042023 */ negu $a0, $a0
/* B61FE4 800EAE44 0064C821 */ addu $t9, $v1, $a0
.L800EAE48:
/* B61FE8 800EAE48 A4D9000A */ sh $t9, 0xa($a2)
/* B61FEC 800EAE4C 84C3000A */ lh $v1, 0xa($a2)
/* B61FF0 800EAE50 04630004 */ bgezl $v1, .L800EAE64
/* B61FF4 800EAE54 84C20008 */ lh $v0, 8($a2)
/* B61FF8 800EAE58 10000006 */ b .L800EAE74
/* B61FFC 800EAE5C A4C0000A */ sh $zero, 0xa($a2)
/* B62000 800EAE60 84C20008 */ lh $v0, 8($a2)
.L800EAE64:
/* B62004 800EAE64 0043082A */ slt $at, $v0, $v1
/* B62008 800EAE68 50200003 */ beql $at, $zero, .L800EAE78
/* B6200C 800EAE6C 8FA9002C */ lw $t1, 0x2c($sp)
/* B62010 800EAE70 A4C2000A */ sh $v0, 0xa($a2)
.L800EAE74:
/* B62014 800EAE74 8FA9002C */ lw $t1, 0x2c($sp)
.L800EAE78:
/* B62018 800EAE78 8D2A0000 */ lw $t2, ($t1)
/* B6201C 800EAE7C 000A6080 */ sll $t4, $t2, 2
/* B62020 800EAE80 05830006 */ bgezl $t4, .L800EAE9C
/* B62024 800EAE84 8D0F0000 */ lw $t7, ($t0)
/* B62028 800EAE88 910D0003 */ lbu $t5, 3($t0)
/* B6202C 800EAE8C 31AE0050 */ andi $t6, $t5, 0x50
/* B62030 800EAE90 55C00007 */ bnezl $t6, .L800EAEB0
/* B62034 800EAE94 90CA0000 */ lbu $t2, ($a2)
/* B62038 800EAE98 8D0F0000 */ lw $t7, ($t0)
.L800EAE9C:
/* B6203C 800EAE9C 8FAC002C */ lw $t4, 0x2c($sp)
/* B62040 800EAEA0 000FC8C0 */ sll $t9, $t7, 3
/* B62044 800EAEA4 07230007 */ bgezl $t9, .L800EAEC4
/* B62048 800EAEA8 8D8D00DC */ lw $t5, 0xdc($t4)
/* B6204C 800EAEAC 90CA0000 */ lbu $t2, ($a2)
.L800EAEB0:
/* B62050 800EAEB0 2402FFFF */ li $v0, -1
/* B62054 800EAEB4 354B0020 */ ori $t3, $t2, 0x20
/* B62058 800EAEB8 1000000A */ b .L800EAEE4
/* B6205C 800EAEBC A0CB0000 */ sb $t3, ($a2)
/* B62060 800EAEC0 8D8D00DC */ lw $t5, 0xdc($t4)
.L800EAEC4:
/* B62064 800EAEC4 8FA20044 */ lw $v0, 0x44($sp)
/* B62068 800EAEC8 11A00006 */ beqz $t5, .L800EAEE4
/* B6206C 800EAECC 00000000 */ nop
/* B62070 800EAED0 90CF0000 */ lbu $t7, ($a2)
/* B62074 800EAED4 2402FFFF */ li $v0, -1
/* B62078 800EAED8 35F80020 */ ori $t8, $t7, 0x20
/* B6207C 800EAEDC 10000001 */ b .L800EAEE4
/* B62080 800EAEE0 A0D80000 */ sb $t8, ($a2)
.L800EAEE4:
/* B62084 800EAEE4 8FBF0014 */ lw $ra, 0x14($sp)
/* B62088 800EAEE8 27BD0040 */ addiu $sp, $sp, 0x40
/* B6208C 800EAEEC 03E00008 */ jr $ra
/* B62090 800EAEF0 00000000 */ nop