mirror of https://github.com/zeldaret/oot.git
189 lines
8.7 KiB
ArmAsm
189 lines
8.7 KiB
ArmAsm
glabel func_800E0EB4
|
|
/* B58054 800E0EB4 27BDFF60 */ addiu $sp, $sp, -0xa0
|
|
/* B58058 800E0EB8 AFB70034 */ sw $s7, 0x34($sp)
|
|
/* B5805C 800E0EBC 3C178017 */ lui $s7, %hi(gAudioContext) # $s7, 0x8017
|
|
/* B58060 800E0EC0 26F7F180 */ addiu $s7, %lo(gAudioContext) # addiu $s7, $s7, -0xe80
|
|
/* B58064 800E0EC4 8EEE2834 */ lw $t6, 0x2834($s7)
|
|
/* B58068 800E0EC8 AFBF003C */ sw $ra, 0x3c($sp)
|
|
/* B5806C 800E0ECC AFBE0038 */ sw $fp, 0x38($sp)
|
|
/* B58070 800E0ED0 AFB60030 */ sw $s6, 0x30($sp)
|
|
/* B58074 800E0ED4 AFB5002C */ sw $s5, 0x2c($sp)
|
|
/* B58078 800E0ED8 AFB40028 */ sw $s4, 0x28($sp)
|
|
/* B5807C 800E0EDC AFB30024 */ sw $s3, 0x24($sp)
|
|
/* B58080 800E0EE0 AFB20020 */ sw $s2, 0x20($sp)
|
|
/* B58084 800E0EE4 AFB1001C */ sw $s1, 0x1c($sp)
|
|
/* B58088 800E0EE8 AFB00018 */ sw $s0, 0x18($sp)
|
|
/* B5808C 800E0EEC AFA500A4 */ sw $a1, 0xa4($sp)
|
|
/* B58090 800E0EF0 85CF0000 */ lh $t7, ($t6)
|
|
/* B58094 800E0EF4 00808825 */ move $s1, $a0
|
|
/* B58098 800E0EF8 8EF02838 */ lw $s0, 0x2838($s7)
|
|
/* B5809C 800E0EFC 24040002 */ li $a0, 2
|
|
/* B580A0 800E0F00 8FA600A4 */ lw $a2, 0xa4($sp)
|
|
/* B580A4 800E0F04 24050002 */ li $a1, 2
|
|
/* B580A8 800E0F08 0C037C1D */ jal func_800DF074
|
|
/* B580AC 800E0F0C AFAF0094 */ sw $t7, 0x94($sp)
|
|
/* B580B0 800E0F10 10400081 */ beqz $v0, .L800E1118
|
|
/* B580B4 800E0F14 AFA20078 */ sw $v0, 0x78($sp)
|
|
/* B580B8 800E0F18 8FB800A4 */ lw $t8, 0xa4($sp)
|
|
/* B580BC 800E0F1C 24010002 */ li $at, 2
|
|
/* B580C0 800E0F20 0000B025 */ move $s6, $zero
|
|
/* B580C4 800E0F24 0018C900 */ sll $t9, $t8, 4
|
|
/* B580C8 800E0F28 02191021 */ addu $v0, $s0, $t9
|
|
/* B580CC 800E0F2C 8C480014 */ lw $t0, 0x14($v0)
|
|
/* B580D0 800E0F30 241E007F */ li $fp, 127
|
|
/* B580D4 800E0F34 27B40078 */ addiu $s4, $sp, 0x78
|
|
/* B580D8 800E0F38 AFA80080 */ sw $t0, 0x80($sp)
|
|
/* B580DC 800E0F3C 80490018 */ lb $t1, 0x18($v0)
|
|
/* B580E0 800E0F40 312300FF */ andi $v1, $t1, 0xff
|
|
/* B580E4 800E0F44 10610004 */ beq $v1, $at, .L800E0F58
|
|
/* B580E8 800E0F48 A3A90084 */ sb $t1, 0x84($sp)
|
|
/* B580EC 800E0F4C 24010003 */ li $at, 3
|
|
/* B580F0 800E0F50 54610005 */ bnel $v1, $at, .L800E0F68
|
|
/* B580F4 800E0F54 AFA0007C */ sw $zero, 0x7c($sp)
|
|
.L800E0F58:
|
|
/* B580F8 800E0F58 8C4A0010 */ lw $t2, 0x10($v0)
|
|
/* B580FC 800E0F5C 10000002 */ b .L800E0F68
|
|
/* B58100 800E0F60 AFAA007C */ sw $t2, 0x7c($sp)
|
|
/* B58104 800E0F64 AFA0007C */ sw $zero, 0x7c($sp)
|
|
.L800E0F68:
|
|
/* B58108 800E0F68 12200007 */ beqz $s1, .L800E0F88
|
|
/* B5810C 800E0F6C 24010001 */ li $at, 1
|
|
/* B58110 800E0F70 16210005 */ bne $s1, $at, .L800E0F88
|
|
/* B58114 800E0F74 8FA2007C */ lw $v0, 0x7c($sp)
|
|
/* B58118 800E0F78 8FAB0078 */ lw $t3, 0x78($sp)
|
|
/* B5811C 800E0F7C AFA20078 */ sw $v0, 0x78($sp)
|
|
/* B58120 800E0F80 A3A00084 */ sb $zero, 0x84($sp)
|
|
/* B58124 800E0F84 AFAB007C */ sw $t3, 0x7c($sp)
|
|
.L800E0F88:
|
|
/* B58128 800E0F88 8FAC0094 */ lw $t4, 0x94($sp)
|
|
/* B5812C 800E0F8C 0000A825 */ move $s5, $zero
|
|
/* B58130 800E0F90 59800062 */ blezl $t4, .L800E111C
|
|
/* B58134 800E0F94 8FBF003C */ lw $ra, 0x3c($sp)
|
|
/* B58138 800E0F98 8EED2844 */ lw $t5, 0x2844($s7)
|
|
.L800E0F9C:
|
|
/* B5813C 800E0F9C 240100FF */ li $at, 255
|
|
/* B58140 800E0FA0 01B61021 */ addu $v0, $t5, $s6
|
|
/* B58144 800E0FA4 90500002 */ lbu $s0, 2($v0)
|
|
/* B58148 800E0FA8 90510003 */ lbu $s1, 3($v0)
|
|
/* B5814C 800E0FAC 16010003 */ bne $s0, $at, .L800E0FBC
|
|
/* B58150 800E0FB0 240100FF */ li $at, 255
|
|
/* B58154 800E0FB4 52210054 */ beql $s1, $at, .L800E1108
|
|
/* B58158 800E0FB8 8FA90094 */ lw $t1, 0x94($sp)
|
|
.L800E0FBC:
|
|
/* B5815C 800E0FBC 0C03862C */ jal func_800E18B0
|
|
/* B58160 800E0FC0 02A02025 */ move $a0, $s5
|
|
/* B58164 800E0FC4 1040004F */ beqz $v0, .L800E1104
|
|
/* B58168 800E0FC8 24040001 */ li $a0, 1
|
|
/* B5816C 800E0FCC 24050002 */ li $a1, 2
|
|
/* B58170 800E0FD0 0C037C1D */ jal func_800DF074
|
|
/* B58174 800E0FD4 02A03025 */ move $a2, $s5
|
|
/* B58178 800E0FD8 1040004A */ beqz $v0, .L800E1104
|
|
/* B5817C 800E0FDC 8FAE00A4 */ lw $t6, 0xa4($sp)
|
|
/* B58180 800E0FE0 160E0005 */ bne $s0, $t6, .L800E0FF8
|
|
/* B58184 800E0FE4 8FAF00A4 */ lw $t7, 0xa4($sp)
|
|
/* B58188 800E0FE8 00008825 */ move $s1, $zero
|
|
/* B5818C 800E0FEC 00009025 */ move $s2, $zero
|
|
/* B58190 800E0FF0 10000005 */ b .L800E1008
|
|
/* B58194 800E0FF4 00009825 */ move $s3, $zero
|
|
.L800E0FF8:
|
|
/* B58198 800E0FF8 162F0042 */ bne $s1, $t7, .L800E1104
|
|
/* B5819C 800E0FFC 00009025 */ move $s2, $zero
|
|
/* B581A0 800E1000 00008825 */ move $s1, $zero
|
|
/* B581A4 800E1004 00009825 */ move $s3, $zero
|
|
.L800E1008:
|
|
/* B581A8 800E1008 8EF82844 */ lw $t8, 0x2844($s7)
|
|
/* B581AC 800E100C 03161021 */ addu $v0, $t8, $s6
|
|
/* B581B0 800E1010 90590000 */ lbu $t9, ($v0)
|
|
/* B581B4 800E1014 1B20001B */ blez $t9, .L800E1084
|
|
/* B581B8 800E1018 02A02025 */ move $a0, $s5
|
|
.L800E101C:
|
|
/* B581BC 800E101C 0C039D26 */ jal Audio_GetInstrumentInner
|
|
/* B581C0 800E1020 02202825 */ move $a1, $s1
|
|
/* B581C4 800E1024 10400010 */ beqz $v0, .L800E1068
|
|
/* B581C8 800E1028 00408025 */ move $s0, $v0
|
|
/* B581CC 800E102C 90480001 */ lbu $t0, 1($v0)
|
|
/* B581D0 800E1030 02802025 */ move $a0, $s4
|
|
/* B581D4 800E1034 51000004 */ beql $t0, $zero, .L800E1048
|
|
/* B581D8 800E1038 92090002 */ lbu $t1, 2($s0)
|
|
/* B581DC 800E103C 0C038383 */ jal func_800E0E0C
|
|
/* B581E0 800E1040 8C450008 */ lw $a1, 8($v0)
|
|
/* B581E4 800E1044 92090002 */ lbu $t1, 2($s0)
|
|
.L800E1048:
|
|
/* B581E8 800E1048 02802025 */ move $a0, $s4
|
|
/* B581EC 800E104C 53C90004 */ beql $fp, $t1, .L800E1060
|
|
/* B581F0 800E1050 02802025 */ move $a0, $s4
|
|
/* B581F4 800E1054 0C038383 */ jal func_800E0E0C
|
|
/* B581F8 800E1058 8E050018 */ lw $a1, 0x18($s0)
|
|
/* B581FC 800E105C 02802025 */ move $a0, $s4
|
|
.L800E1060:
|
|
/* B58200 800E1060 0C038383 */ jal func_800E0E0C
|
|
/* B58204 800E1064 8E050010 */ lw $a1, 0x10($s0)
|
|
.L800E1068:
|
|
/* B58208 800E1068 8EEA2844 */ lw $t2, 0x2844($s7)
|
|
/* B5820C 800E106C 26310001 */ addiu $s1, $s1, 1
|
|
/* B58210 800E1070 01561021 */ addu $v0, $t2, $s6
|
|
/* B58214 800E1074 904B0000 */ lbu $t3, ($v0)
|
|
/* B58218 800E1078 022B082A */ slt $at, $s1, $t3
|
|
/* B5821C 800E107C 5420FFE7 */ bnezl $at, .L800E101C
|
|
/* B58220 800E1080 02A02025 */ move $a0, $s5
|
|
.L800E1084:
|
|
/* B58224 800E1084 904C0001 */ lbu $t4, 1($v0)
|
|
/* B58228 800E1088 1980000E */ blez $t4, .L800E10C4
|
|
/* B5822C 800E108C 02A02025 */ move $a0, $s5
|
|
.L800E1090:
|
|
/* B58230 800E1090 0C039D5B */ jal Audio_GetDrum
|
|
/* B58234 800E1094 02402825 */ move $a1, $s2
|
|
/* B58238 800E1098 10400003 */ beqz $v0, .L800E10A8
|
|
/* B5823C 800E109C 02802025 */ move $a0, $s4
|
|
/* B58240 800E10A0 0C038383 */ jal func_800E0E0C
|
|
/* B58244 800E10A4 8C450004 */ lw $a1, 4($v0)
|
|
.L800E10A8:
|
|
/* B58248 800E10A8 8EED2844 */ lw $t5, 0x2844($s7)
|
|
/* B5824C 800E10AC 26520001 */ addiu $s2, $s2, 1
|
|
/* B58250 800E10B0 01B61021 */ addu $v0, $t5, $s6
|
|
/* B58254 800E10B4 904E0001 */ lbu $t6, 1($v0)
|
|
/* B58258 800E10B8 024E082A */ slt $at, $s2, $t6
|
|
/* B5825C 800E10BC 5420FFF4 */ bnezl $at, .L800E1090
|
|
/* B58260 800E10C0 02A02025 */ move $a0, $s5
|
|
.L800E10C4:
|
|
/* B58264 800E10C4 944F0004 */ lhu $t7, 4($v0)
|
|
/* B58268 800E10C8 19E0000E */ blez $t7, .L800E1104
|
|
/* B5826C 800E10CC 02A02025 */ move $a0, $s5
|
|
.L800E10D0:
|
|
/* B58270 800E10D0 0C039D94 */ jal Audio_GetUnkInstrument
|
|
/* B58274 800E10D4 02602825 */ move $a1, $s3
|
|
/* B58278 800E10D8 10400003 */ beqz $v0, .L800E10E8
|
|
/* B5827C 800E10DC 02802025 */ move $a0, $s4
|
|
/* B58280 800E10E0 0C038383 */ jal func_800E0E0C
|
|
/* B58284 800E10E4 8C450000 */ lw $a1, ($v0)
|
|
.L800E10E8:
|
|
/* B58288 800E10E8 8EF82844 */ lw $t8, 0x2844($s7)
|
|
/* B5828C 800E10EC 26730001 */ addiu $s3, $s3, 1
|
|
/* B58290 800E10F0 0316C821 */ addu $t9, $t8, $s6
|
|
/* B58294 800E10F4 97280004 */ lhu $t0, 4($t9)
|
|
/* B58298 800E10F8 0268082A */ slt $at, $s3, $t0
|
|
/* B5829C 800E10FC 5420FFF4 */ bnezl $at, .L800E10D0
|
|
/* B582A0 800E1100 02A02025 */ move $a0, $s5
|
|
.L800E1104:
|
|
/* B582A4 800E1104 8FA90094 */ lw $t1, 0x94($sp)
|
|
.L800E1108:
|
|
/* B582A8 800E1108 26B50001 */ addiu $s5, $s5, 1
|
|
/* B582AC 800E110C 26D60014 */ addiu $s6, $s6, 0x14
|
|
/* B582B0 800E1110 56A9FFA2 */ bnel $s5, $t1, .L800E0F9C
|
|
/* B582B4 800E1114 8EED2844 */ lw $t5, 0x2844($s7)
|
|
.L800E1118:
|
|
/* B582B8 800E1118 8FBF003C */ lw $ra, 0x3c($sp)
|
|
.L800E111C:
|
|
/* B582BC 800E111C 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* B582C0 800E1120 8FB1001C */ lw $s1, 0x1c($sp)
|
|
/* B582C4 800E1124 8FB20020 */ lw $s2, 0x20($sp)
|
|
/* B582C8 800E1128 8FB30024 */ lw $s3, 0x24($sp)
|
|
/* B582CC 800E112C 8FB40028 */ lw $s4, 0x28($sp)
|
|
/* B582D0 800E1130 8FB5002C */ lw $s5, 0x2c($sp)
|
|
/* B582D4 800E1134 8FB60030 */ lw $s6, 0x30($sp)
|
|
/* B582D8 800E1138 8FB70034 */ lw $s7, 0x34($sp)
|
|
/* B582DC 800E113C 8FBE0038 */ lw $fp, 0x38($sp)
|
|
/* B582E0 800E1140 03E00008 */ jr $ra
|
|
/* B582E4 800E1144 27BD00A0 */ addiu $sp, $sp, 0xa0
|
|
|