mirror of https://github.com/zeldaret/oot.git
132 lines
6.3 KiB
ArmAsm
132 lines
6.3 KiB
ArmAsm
glabel func_8003FBF4
|
|
/* AB6D94 8003FBF4 27BDFF80 */ addiu $sp, $sp, -0x80
|
|
/* AB6D98 8003FBF8 AFBF0054 */ sw $ra, 0x54($sp)
|
|
/* AB6D9C 8003FBFC AFB70050 */ sw $s7, 0x50($sp)
|
|
/* AB6DA0 8003FC00 AFB6004C */ sw $s6, 0x4c($sp)
|
|
/* AB6DA4 8003FC04 AFB50048 */ sw $s5, 0x48($sp)
|
|
/* AB6DA8 8003FC08 AFB40044 */ sw $s4, 0x44($sp)
|
|
/* AB6DAC 8003FC0C AFB30040 */ sw $s3, 0x40($sp)
|
|
/* AB6DB0 8003FC10 AFB2003C */ sw $s2, 0x3c($sp)
|
|
/* AB6DB4 8003FC14 AFB10038 */ sw $s1, 0x38($sp)
|
|
/* AB6DB8 8003FC18 AFB00034 */ sw $s0, 0x34($sp)
|
|
/* AB6DBC 8003FC1C F7B80028 */ sdc1 $f24, 0x28($sp)
|
|
/* AB6DC0 8003FC20 F7B60020 */ sdc1 $f22, 0x20($sp)
|
|
/* AB6DC4 8003FC24 F7B40018 */ sdc1 $f20, 0x18($sp)
|
|
/* AB6DC8 8003FC28 8C8E002C */ lw $t6, 0x2c($a0)
|
|
/* AB6DCC 8003FC2C 3413FFFF */ li $s3, 65535
|
|
/* AB6DD0 8003FC30 00808825 */ move $s1, $a0
|
|
/* AB6DD4 8003FC34 95C20000 */ lhu $v0, ($t6)
|
|
/* AB6DD8 8003FC38 00A0B825 */ move $s7, $a1
|
|
/* AB6DDC 8003FC3C C4940010 */ lwc1 $f20, 0x10($a0)
|
|
/* AB6DE0 8003FC40 16620003 */ bne $s3, $v0, .L8003FC50
|
|
/* AB6DE4 8003FC44 00027880 */ sll $t7, $v0, 2
|
|
/* AB6DE8 8003FC48 10000056 */ b .L8003FDA4
|
|
/* AB6DEC 8003FC4C 4600A006 */ mov.s $f0, $f20
|
|
.L8003FC50:
|
|
/* AB6DF0 8003FC50 8E280028 */ lw $t0, 0x28($s1)
|
|
/* AB6DF4 8003FC54 96250008 */ lhu $a1, 8($s1)
|
|
/* AB6DF8 8003FC58 3C018014 */ lui $at, %hi(D_80138FAC)
|
|
/* AB6DFC 8003FC5C 8D0413F8 */ lw $a0, 0x13f8($t0)
|
|
/* AB6E00 8003FC60 30A50007 */ andi $a1, $a1, 7
|
|
/* AB6E04 8003FC64 4480C000 */ mtc1 $zero, $f24
|
|
/* AB6E08 8003FC68 00052B40 */ sll $a1, $a1, 0xd
|
|
/* AB6E0C 8003FC6C C4368FAC */ lwc1 $f22, %lo(D_80138FAC)($at)
|
|
/* AB6E10 8003FC70 24160001 */ li $s6, 1
|
|
/* AB6E14 8003FC74 27B50070 */ addiu $s5, $sp, 0x70
|
|
/* AB6E18 8003FC78 8D1413F0 */ lw $s4, 0x13f0($t0)
|
|
/* AB6E1C 8003FC7C 008F8021 */ addu $s0, $a0, $t7
|
|
.L8003FC80:
|
|
/* AB6E20 8003FC80 86020000 */ lh $v0, ($s0)
|
|
/* AB6E24 8003FC84 32EA0006 */ andi $t2, $s7, 6
|
|
/* AB6E28 8003FC88 00029100 */ sll $s2, $v0, 4
|
|
/* AB6E2C 8003FC8C 02921821 */ addu $v1, $s4, $s2
|
|
/* AB6E30 8003FC90 94780002 */ lhu $t8, 2($v1)
|
|
/* AB6E34 8003FC94 0305C824 */ and $t9, $t8, $a1
|
|
/* AB6E38 8003FC98 13200006 */ beqz $t9, .L8003FCB4
|
|
/* AB6E3C 8003FC9C 00000000 */ nop
|
|
/* AB6E40 8003FCA0 96020002 */ lhu $v0, 2($s0)
|
|
/* AB6E44 8003FCA4 1262003E */ beq $s3, $v0, .L8003FDA0
|
|
/* AB6E48 8003FCA8 00024880 */ sll $t1, $v0, 2
|
|
/* AB6E4C 8003FCAC 1000FFF4 */ b .L8003FC80
|
|
/* AB6E50 8003FCB0 00898021 */ addu $s0, $a0, $t1
|
|
.L8003FCB4:
|
|
/* AB6E54 8003FCB4 51400014 */ beql $t2, $zero, .L8003FD08
|
|
/* AB6E58 8003FCB8 8E220014 */ lw $v0, 0x14($s1)
|
|
/* AB6E5C 8003FCBC 8E2B0020 */ lw $t3, 0x20($s1)
|
|
/* AB6E60 8003FCC0 316C0010 */ andi $t4, $t3, 0x10
|
|
/* AB6E64 8003FCC4 51800010 */ beql $t4, $zero, .L8003FD08
|
|
/* AB6E68 8003FCC8 8E220014 */ lw $v0, 0x14($s1)
|
|
/* AB6E6C 8003FCCC 846D000A */ lh $t5, 0xa($v1)
|
|
/* AB6E70 8003FCD0 448D2000 */ mtc1 $t5, $f4
|
|
/* AB6E74 8003FCD4 00000000 */ nop
|
|
/* AB6E78 8003FCD8 468021A0 */ cvt.s.w $f6, $f4
|
|
/* AB6E7C 8003FCDC 46163202 */ mul.s $f8, $f6, $f22
|
|
/* AB6E80 8003FCE0 4618403C */ c.lt.s $f8, $f24
|
|
/* AB6E84 8003FCE4 00000000 */ nop
|
|
/* AB6E88 8003FCE8 45020007 */ bc1fl .L8003FD08
|
|
/* AB6E8C 8003FCEC 8E220014 */ lw $v0, 0x14($s1)
|
|
/* AB6E90 8003FCF0 96020002 */ lhu $v0, 2($s0)
|
|
/* AB6E94 8003FCF4 1262002A */ beq $s3, $v0, .L8003FDA0
|
|
/* AB6E98 8003FCF8 00027080 */ sll $t6, $v0, 2
|
|
/* AB6E9C 8003FCFC 1000FFE0 */ b .L8003FC80
|
|
/* AB6EA0 8003FD00 008E8021 */ addu $s0, $a0, $t6
|
|
/* AB6EA4 8003FD04 8E220014 */ lw $v0, 0x14($s1)
|
|
.L8003FD08:
|
|
/* AB6EA8 8003FD08 8D0513F4 */ lw $a1, 0x13f4($t0)
|
|
/* AB6EAC 8003FD0C 02542021 */ addu $a0, $s2, $s4
|
|
/* AB6EB0 8003FD10 8C460000 */ lw $a2, ($v0)
|
|
/* AB6EB4 8003FD14 8C470008 */ lw $a3, 8($v0)
|
|
/* AB6EB8 8003FD18 AFB50010 */ sw $s5, 0x10($sp)
|
|
/* AB6EBC 8003FD1C C62A0024 */ lwc1 $f10, 0x24($s1)
|
|
/* AB6EC0 8003FD20 0C00E352 */ jal func_80038D48
|
|
/* AB6EC4 8003FD24 E7AA0014 */ swc1 $f10, 0x14($sp)
|
|
/* AB6EC8 8003FD28 54560013 */ bnel $v0, $s6, .L8003FD78
|
|
/* AB6ECC 8003FD2C 96020002 */ lhu $v0, 2($s0)
|
|
/* AB6ED0 8003FD30 8E2F0014 */ lw $t7, 0x14($s1)
|
|
/* AB6ED4 8003FD34 C7B00070 */ lwc1 $f16, 0x70($sp)
|
|
/* AB6ED8 8003FD38 C5F20004 */ lwc1 $f18, 4($t7)
|
|
/* AB6EDC 8003FD3C 4612803C */ c.lt.s $f16, $f18
|
|
/* AB6EE0 8003FD40 00000000 */ nop
|
|
/* AB6EE4 8003FD44 4502000C */ bc1fl .L8003FD78
|
|
/* AB6EE8 8003FD48 96020002 */ lhu $v0, 2($s0)
|
|
/* AB6EEC 8003FD4C 4610A03C */ c.lt.s $f20, $f16
|
|
/* AB6EF0 8003FD50 00000000 */ nop
|
|
/* AB6EF4 8003FD54 45020008 */ bc1fl .L8003FD78
|
|
/* AB6EF8 8003FD58 96020002 */ lhu $v0, 2($s0)
|
|
/* AB6EFC 8003FD5C 8E380028 */ lw $t8, 0x28($s1)
|
|
/* AB6F00 8003FD60 8E2A000C */ lw $t2, 0xc($s1)
|
|
/* AB6F04 8003FD64 46008506 */ mov.s $f20, $f16
|
|
/* AB6F08 8003FD68 8F1913F0 */ lw $t9, 0x13f0($t8)
|
|
/* AB6F0C 8003FD6C 03324821 */ addu $t1, $t9, $s2
|
|
/* AB6F10 8003FD70 AD490000 */ sw $t1, ($t2)
|
|
/* AB6F14 8003FD74 96020002 */ lhu $v0, 2($s0)
|
|
.L8003FD78:
|
|
/* AB6F18 8003FD78 5262000A */ beql $s3, $v0, .L8003FDA4
|
|
/* AB6F1C 8003FD7C 4600A006 */ mov.s $f0, $f20
|
|
/* AB6F20 8003FD80 8E280028 */ lw $t0, 0x28($s1)
|
|
/* AB6F24 8003FD84 96250008 */ lhu $a1, 8($s1)
|
|
/* AB6F28 8003FD88 00025880 */ sll $t3, $v0, 2
|
|
/* AB6F2C 8003FD8C 8D0413F8 */ lw $a0, 0x13f8($t0)
|
|
/* AB6F30 8003FD90 30A50007 */ andi $a1, $a1, 7
|
|
/* AB6F34 8003FD94 00052B40 */ sll $a1, $a1, 0xd
|
|
/* AB6F38 8003FD98 1000FFB9 */ b .L8003FC80
|
|
/* AB6F3C 8003FD9C 008B8021 */ addu $s0, $a0, $t3
|
|
.L8003FDA0:
|
|
/* AB6F40 8003FDA0 4600A006 */ mov.s $f0, $f20
|
|
.L8003FDA4:
|
|
/* AB6F44 8003FDA4 8FBF0054 */ lw $ra, 0x54($sp)
|
|
/* AB6F48 8003FDA8 D7B40018 */ ldc1 $f20, 0x18($sp)
|
|
/* AB6F4C 8003FDAC D7B60020 */ ldc1 $f22, 0x20($sp)
|
|
/* AB6F50 8003FDB0 D7B80028 */ ldc1 $f24, 0x28($sp)
|
|
/* AB6F54 8003FDB4 8FB00034 */ lw $s0, 0x34($sp)
|
|
/* AB6F58 8003FDB8 8FB10038 */ lw $s1, 0x38($sp)
|
|
/* AB6F5C 8003FDBC 8FB2003C */ lw $s2, 0x3c($sp)
|
|
/* AB6F60 8003FDC0 8FB30040 */ lw $s3, 0x40($sp)
|
|
/* AB6F64 8003FDC4 8FB40044 */ lw $s4, 0x44($sp)
|
|
/* AB6F68 8003FDC8 8FB50048 */ lw $s5, 0x48($sp)
|
|
/* AB6F6C 8003FDCC 8FB6004C */ lw $s6, 0x4c($sp)
|
|
/* AB6F70 8003FDD0 8FB70050 */ lw $s7, 0x50($sp)
|
|
/* AB6F74 8003FDD4 03E00008 */ jr $ra
|
|
/* AB6F78 8003FDD8 27BD0080 */ addiu $sp, $sp, 0x80
|
|
|