mirror of https://github.com/zeldaret/oot.git
184 lines
9.0 KiB
ArmAsm
184 lines
9.0 KiB
ArmAsm
glabel func_800E1618
|
|
/* B587B8 800E1618 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* B587BC 800E161C AFB20020 */ sw $s2, 0x20($sp)
|
|
/* B587C0 800E1620 3C128017 */ lui $s2, %hi(gAudioContext) # $s2, 0x8017
|
|
/* B587C4 800E1624 2652F180 */ addiu $s2, %lo(gAudioContext) # addiu $s2, $s2, -0xe80
|
|
/* B587C8 800E1628 8E582894 */ lw $t8, 0x2894($s2)
|
|
/* B587CC 800E162C 86482848 */ lh $t0, 0x2848($s2)
|
|
/* B587D0 800E1630 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* B587D4 800E1634 0018C980 */ sll $t9, $t8, 6
|
|
/* B587D8 800E1638 03280019 */ multu $t9, $t0
|
|
/* B587DC 800E163C 8E4E2874 */ lw $t6, 0x2874($s2)
|
|
/* B587E0 800E1640 3C148017 */ lui $s4, %hi(D_80171B40) # $s4, 0x8017
|
|
/* B587E4 800E1644 26941B40 */ addiu $s4, %lo(D_80171B40) # addiu $s4, $s4, 0x1b40
|
|
/* B587E8 800E1648 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* B587EC 800E164C AFA40030 */ sw $a0, 0x30($sp)
|
|
/* B587F0 800E1650 AFB30024 */ sw $s3, 0x24($sp)
|
|
/* B587F4 800E1654 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* B587F8 800E1658 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* B587FC 800E165C 02802025 */ move $a0, $s4
|
|
/* B58800 800E1660 00002812 */ mflo $a1
|
|
/* B58804 800E1664 AE4E288C */ sw $t6, 0x288c($s2)
|
|
/* B58808 800E1668 0C0378F7 */ jal func_800DE3DC
|
|
/* B5880C 800E166C 00000000 */ nop
|
|
/* B58810 800E1670 8E492894 */ lw $t1, 0x2894($s2)
|
|
/* B58814 800E1674 864B2848 */ lh $t3, 0x2848($s2)
|
|
/* B58818 800E1678 AE42261C */ sw $v0, 0x261c($s2)
|
|
/* B5881C 800E167C 00095080 */ sll $t2, $t1, 2
|
|
/* B58820 800E1680 01495023 */ subu $t2, $t2, $t1
|
|
/* B58824 800E1684 014B0019 */ multu $t2, $t3
|
|
/* B58828 800E1688 00008825 */ move $s1, $zero
|
|
/* B5882C 800E168C 00009812 */ mflo $s3
|
|
/* B58830 800E1690 5A60001C */ blezl $s3, .L800E1704
|
|
/* B58834 800E1694 8E442620 */ lw $a0, 0x2620($s2)
|
|
.L800E1698:
|
|
/* B58838 800E1698 8E4C2620 */ lw $t4, 0x2620($s2)
|
|
/* B5883C 800E169C 8E4E261C */ lw $t6, 0x261c($s2)
|
|
/* B58840 800E16A0 02802025 */ move $a0, $s4
|
|
/* B58844 800E16A4 000C6900 */ sll $t5, $t4, 4
|
|
/* B58848 800E16A8 8E45288C */ lw $a1, 0x288c($s2)
|
|
/* B5884C 800E16AC 0C0378AC */ jal func_800DE2B0
|
|
/* B58850 800E16B0 01AE8021 */ addu $s0, $t5, $t6
|
|
/* B58854 800E16B4 14400003 */ bnez $v0, .L800E16C4
|
|
/* B58858 800E16B8 AE020000 */ sw $v0, ($s0)
|
|
/* B5885C 800E16BC 10000010 */ b .L800E1700
|
|
/* B58860 800E16C0 00008825 */ move $s1, $zero
|
|
.L800E16C4:
|
|
/* B58864 800E16C4 8E040000 */ lw $a0, ($s0)
|
|
/* B58868 800E16C8 0C03788E */ jal func_800DE238
|
|
/* B5886C 800E16CC 8E45288C */ lw $a1, 0x288c($s2)
|
|
/* B58870 800E16D0 8E4F288C */ lw $t7, 0x288c($s2)
|
|
/* B58874 800E16D4 AE000004 */ sw $zero, 4($s0)
|
|
/* B58878 800E16D8 A6000008 */ sh $zero, 8($s0)
|
|
/* B5887C 800E16DC A200000C */ sb $zero, 0xc($s0)
|
|
/* B58880 800E16E0 A200000E */ sb $zero, 0xe($s0)
|
|
/* B58884 800E16E4 A60F000A */ sh $t7, 0xa($s0)
|
|
/* B58888 800E16E8 8E582620 */ lw $t8, 0x2620($s2)
|
|
/* B5888C 800E16EC 26310001 */ addiu $s1, $s1, 1
|
|
/* B58890 800E16F0 27190001 */ addiu $t9, $t8, 1
|
|
/* B58894 800E16F4 1633FFE8 */ bne $s1, $s3, .L800E1698
|
|
/* B58898 800E16F8 AE592620 */ sw $t9, 0x2620($s2)
|
|
/* B5889C 800E16FC 00008825 */ move $s1, $zero
|
|
.L800E1700:
|
|
/* B588A0 800E1700 8E442620 */ lw $a0, 0x2620($s2)
|
|
.L800E1704:
|
|
/* B588A4 800E1704 3C028017 */ lui $v0, %hi(gAudioContext) # $v0, 0x8017
|
|
/* B588A8 800E1708 2442F180 */ addiu $v0, %lo(gAudioContext) # addiu $v0, $v0, -0xe80
|
|
/* B588AC 800E170C 1080000C */ beqz $a0, .L800E1740
|
|
/* B588B0 800E1710 00001825 */ move $v1, $zero
|
|
/* B588B4 800E1714 A051262C */ sb $s1, 0x262c($v0)
|
|
.L800E1718:
|
|
/* B588B8 800E1718 8E48261C */ lw $t0, 0x261c($s2)
|
|
/* B588BC 800E171C 24420001 */ addiu $v0, $v0, 1
|
|
/* B588C0 800E1720 01034821 */ addu $t1, $t0, $v1
|
|
/* B588C4 800E1724 A131000D */ sb $s1, 0xd($t1)
|
|
/* B588C8 800E1728 8E442620 */ lw $a0, 0x2620($s2)
|
|
/* B588CC 800E172C 26310001 */ addiu $s1, $s1, 1
|
|
/* B588D0 800E1730 24630010 */ addiu $v1, $v1, 0x10
|
|
/* B588D4 800E1734 0224082B */ sltu $at, $s1, $a0
|
|
/* B588D8 800E1738 5420FFF7 */ bnezl $at, .L800E1718
|
|
/* B588DC 800E173C A051262C */ sb $s1, 0x262c($v0)
|
|
.L800E1740:
|
|
/* B588E0 800E1740 28810100 */ slti $at, $a0, 0x100
|
|
/* B588E4 800E1744 10200009 */ beqz $at, .L800E176C
|
|
/* B588E8 800E1748 00808825 */ move $s1, $a0
|
|
/* B588EC 800E174C 3C038017 */ lui $v1, %hi(D_8016F280) # $v1, 0x8017
|
|
/* B588F0 800E1750 2463F280 */ addiu $v1, %lo(D_8016F280) # addiu $v1, $v1, -0xd80
|
|
/* B588F4 800E1754 02511021 */ addu $v0, $s2, $s1
|
|
.L800E1758:
|
|
/* B588F8 800E1758 24420001 */ addiu $v0, $v0, 1
|
|
/* B588FC 800E175C 0043082B */ sltu $at, $v0, $v1
|
|
/* B58900 800E1760 1420FFFD */ bnez $at, .L800E1758
|
|
/* B58904 800E1764 A040262B */ sb $zero, 0x262b($v0)
|
|
/* B58908 800E1768 8E442620 */ lw $a0, 0x2620($s2)
|
|
.L800E176C:
|
|
/* B5890C 800E176C 8E4B2894 */ lw $t3, 0x2894($s2)
|
|
/* B58910 800E1770 8E4A2878 */ lw $t2, 0x2878($s2)
|
|
/* B58914 800E1774 A240282C */ sb $zero, 0x282c($s2)
|
|
/* B58918 800E1778 A244282E */ sb $a0, 0x282e($s2)
|
|
/* B5891C 800E177C AE442624 */ sw $a0, 0x2624($s2)
|
|
/* B58920 800E1780 00008825 */ move $s1, $zero
|
|
/* B58924 800E1784 1960001D */ blez $t3, .L800E17FC
|
|
/* B58928 800E1788 AE4A288C */ sw $t2, 0x288c($s2)
|
|
.L800E178C:
|
|
/* B5892C 800E178C 8E4C2620 */ lw $t4, 0x2620($s2)
|
|
/* B58930 800E1790 8E4E261C */ lw $t6, 0x261c($s2)
|
|
/* B58934 800E1794 02802025 */ move $a0, $s4
|
|
/* B58938 800E1798 000C6900 */ sll $t5, $t4, 4
|
|
/* B5893C 800E179C 8E45288C */ lw $a1, 0x288c($s2)
|
|
/* B58940 800E17A0 0C0378AC */ jal func_800DE2B0
|
|
/* B58944 800E17A4 01AE8021 */ addu $s0, $t5, $t6
|
|
/* B58948 800E17A8 14400003 */ bnez $v0, .L800E17B8
|
|
/* B5894C 800E17AC AE020000 */ sw $v0, ($s0)
|
|
/* B58950 800E17B0 10000012 */ b .L800E17FC
|
|
/* B58954 800E17B4 8E442620 */ lw $a0, 0x2620($s2)
|
|
.L800E17B8:
|
|
/* B58958 800E17B8 8E040000 */ lw $a0, ($s0)
|
|
/* B5895C 800E17BC 0C03788E */ jal func_800DE238
|
|
/* B58960 800E17C0 8E45288C */ lw $a1, 0x288c($s2)
|
|
/* B58964 800E17C4 8E4F288C */ lw $t7, 0x288c($s2)
|
|
/* B58968 800E17C8 AE000004 */ sw $zero, 4($s0)
|
|
/* B5896C 800E17CC A6000008 */ sh $zero, 8($s0)
|
|
/* B58970 800E17D0 A200000C */ sb $zero, 0xc($s0)
|
|
/* B58974 800E17D4 A200000E */ sb $zero, 0xe($s0)
|
|
/* B58978 800E17D8 A60F000A */ sh $t7, 0xa($s0)
|
|
/* B5897C 800E17DC 8E482894 */ lw $t0, 0x2894($s2)
|
|
/* B58980 800E17E0 8E582620 */ lw $t8, 0x2620($s2)
|
|
/* B58984 800E17E4 26310001 */ addiu $s1, $s1, 1
|
|
/* B58988 800E17E8 0228082A */ slt $at, $s1, $t0
|
|
/* B5898C 800E17EC 27190001 */ addiu $t9, $t8, 1
|
|
/* B58990 800E17F0 1420FFE6 */ bnez $at, .L800E178C
|
|
/* B58994 800E17F4 AE592620 */ sw $t9, 0x2620($s2)
|
|
/* B58998 800E17F8 03202025 */ move $a0, $t9
|
|
.L800E17FC:
|
|
/* B5899C 800E17FC 8E512624 */ lw $s1, 0x2624($s2)
|
|
/* B589A0 800E1800 0224082B */ sltu $at, $s1, $a0
|
|
/* B589A4 800E1804 10200012 */ beqz $at, .L800E1850
|
|
/* B589A8 800E1808 00111900 */ sll $v1, $s1, 4
|
|
/* B589AC 800E180C 02511021 */ addu $v0, $s2, $s1
|
|
/* B589B0 800E1810 8E492624 */ lw $t1, 0x2624($s2)
|
|
.L800E1814:
|
|
/* B589B4 800E1814 00095023 */ negu $t2, $t1
|
|
/* B589B8 800E1818 004A5821 */ addu $t3, $v0, $t2
|
|
/* B589BC 800E181C A171272C */ sb $s1, 0x272c($t3)
|
|
/* B589C0 800E1820 8E4E261C */ lw $t6, 0x261c($s2)
|
|
/* B589C4 800E1824 8E4C2624 */ lw $t4, 0x2624($s2)
|
|
/* B589C8 800E1828 24420001 */ addiu $v0, $v0, 1
|
|
/* B589CC 800E182C 01C37821 */ addu $t7, $t6, $v1
|
|
/* B589D0 800E1830 022C6823 */ subu $t5, $s1, $t4
|
|
/* B589D4 800E1834 A1ED000D */ sb $t5, 0xd($t7)
|
|
/* B589D8 800E1838 8E442620 */ lw $a0, 0x2620($s2)
|
|
/* B589DC 800E183C 26310001 */ addiu $s1, $s1, 1
|
|
/* B589E0 800E1840 24630010 */ addiu $v1, $v1, 0x10
|
|
/* B589E4 800E1844 0224082B */ sltu $at, $s1, $a0
|
|
/* B589E8 800E1848 5420FFF2 */ bnezl $at, .L800E1814
|
|
/* B589EC 800E184C 8E492624 */ lw $t1, 0x2624($s2)
|
|
.L800E1850:
|
|
/* B589F0 800E1850 28810100 */ slti $at, $a0, 0x100
|
|
/* B589F4 800E1854 1020000A */ beqz $at, .L800E1880
|
|
/* B589F8 800E1858 00808825 */ move $s1, $a0
|
|
/* B589FC 800E185C 3C038017 */ lui $v1, %hi(D_8016F280) # $v1, 0x8017
|
|
/* B58A00 800E1860 2463F280 */ addiu $v1, %lo(D_8016F280) # addiu $v1, $v1, -0xd80
|
|
/* B58A04 800E1864 02511021 */ addu $v0, $s2, $s1
|
|
.L800E1868:
|
|
/* B58A08 800E1868 8E582624 */ lw $t8, 0x2624($s2)
|
|
/* B58A0C 800E186C 24420001 */ addiu $v0, $v0, 1
|
|
/* B58A10 800E1870 0043082B */ sltu $at, $v0, $v1
|
|
/* B58A14 800E1874 1420FFFC */ bnez $at, .L800E1868
|
|
/* B58A18 800E1878 A058272B */ sb $t8, 0x272b($v0)
|
|
/* B58A1C 800E187C 8E442620 */ lw $a0, 0x2620($s2)
|
|
.L800E1880:
|
|
/* B58A20 800E1880 8E592624 */ lw $t9, 0x2624($s2)
|
|
/* B58A24 800E1884 8FBF002C */ lw $ra, 0x2c($sp)
|
|
/* B58A28 800E1888 A240282D */ sb $zero, 0x282d($s2)
|
|
/* B58A2C 800E188C 00994023 */ subu $t0, $a0, $t9
|
|
/* B58A30 800E1890 A248282F */ sb $t0, 0x282f($s2)
|
|
/* B58A34 800E1894 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* B58A38 800E1898 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* B58A3C 800E189C 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* B58A40 800E18A0 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* B58A44 800E18A4 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* B58A48 800E18A8 03E00008 */ jr $ra
|
|
/* B58A4C 800E18AC 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|