papermario/asm/nonmatchings/code_25f00_len_940/func_8004AB00.s
Ethan Roseman 0286743ae5 asm update
2020-12-10 16:11:43 +09:00

189 lines
10 KiB
ArmAsm

.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
glabel func_8004AB00
/* 25F00 8004AB00 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 25F04 8004AB04 AFB00030 */ sw $s0, 0x30($sp)
/* 25F08 8004AB08 3C10800E */ lui $s0, %hi(D_800D9248)
/* 25F0C 8004AB0C 26109248 */ addiu $s0, $s0, %lo(D_800D9248)
/* 25F10 8004AB10 0200202D */ daddu $a0, $s0, $zero
/* 25F14 8004AB14 3C05801B */ lui $a1, %hi(D_801AA000)
/* 25F18 8004AB18 24A5A000 */ addiu $a1, $a1, %lo(D_801AA000)
/* 25F1C 8004AB1C 3C060005 */ lui $a2, 5
/* 25F20 8004AB20 24020001 */ addiu $v0, $zero, 1
/* 25F24 8004AB24 AFBF003C */ sw $ra, 0x3c($sp)
/* 25F28 8004AB28 AFB20038 */ sw $s2, 0x38($sp)
/* 25F2C 8004AB2C AFB10034 */ sw $s1, 0x34($sp)
/* 25F30 8004AB30 3C018008 */ lui $at, %hi(D_80078180)
/* 25F34 8004AB34 A0228180 */ sb $v0, %lo(D_80078180)($at)
/* 25F38 8004AB38 3C018008 */ lui $at, %hi(D_80078170)
/* 25F3C 8004AB3C A0208170 */ sb $zero, %lo(D_80078170)($at)
/* 25F40 8004AB40 0C015FC8 */ jal func_80057F20
/* 25F44 8004AB44 34C66000 */ ori $a2, $a2, 0x6000
/* 25F48 8004AB48 24047D00 */ addiu $a0, $zero, 0x7d00
/* 25F4C 8004AB4C 24020018 */ addiu $v0, $zero, 0x18
/* 25F50 8004AB50 AFA20018 */ sw $v0, 0x18($sp)
/* 25F54 8004AB54 24020004 */ addiu $v0, $zero, 4
/* 25F58 8004AB58 0C018558 */ jal osAiSetFrequency
/* 25F5C 8004AB5C AFA2001C */ sw $v0, 0x1c($sp)
/* 25F60 8004AB60 3C03800E */ lui $v1, %hi(D_800DAAB8)
/* 25F64 8004AB64 8C63AAB8 */ lw $v1, %lo(D_800DAAB8)($v1)
/* 25F68 8004AB68 00620018 */ mult $v1, $v0
/* 25F6C 8004AB6C 00001812 */ mflo $v1
/* 25F70 8004AB70 2464003B */ addiu $a0, $v1, 0x3b
/* 25F74 8004AB74 3C038888 */ lui $v1, 0x8888
/* 25F78 8004AB78 34638889 */ ori $v1, $v1, 0x8889
/* 25F7C 8004AB7C 00830019 */ multu $a0, $v1
/* 25F80 8004AB80 0000882D */ daddu $s1, $zero, $zero
/* 25F84 8004AB84 3C12800A */ lui $s2, %hi(D_800A3510)
/* 25F88 8004AB88 26523510 */ addiu $s2, $s2, %lo(D_800A3510)
/* 25F8C 8004AB8C AFA20020 */ sw $v0, 0x20($sp)
/* 25F90 8004AB90 00001810 */ mfhi $v1
/* 25F94 8004AB94 3C02B216 */ lui $v0, 0xb216
/* 25F98 8004AB98 344242C9 */ ori $v0, $v0, 0x42c9
/* 25F9C 8004AB9C 00031942 */ srl $v1, $v1, 5
/* 25FA0 8004ABA0 00620019 */ multu $v1, $v0
/* 25FA4 8004ABA4 A3A00024 */ sb $zero, 0x24($sp)
/* 25FA8 8004ABA8 AFB0002C */ sw $s0, 0x2c($sp)
/* 25FAC 8004ABAC 3C028005 */ lui $v0, %hi(nuAuDmaNew)
/* 25FB0 8004ABB0 2442B224 */ addiu $v0, $v0, %lo(nuAuDmaNew)
/* 25FB4 8004ABB4 AFA20028 */ sw $v0, 0x28($sp)
/* 25FB8 8004ABB8 00001810 */ mfhi $v1
/* 25FBC 8004ABBC 000319C2 */ srl $v1, $v1, 7
/* 25FC0 8004ABC0 24630001 */ addiu $v1, $v1, 1
/* 25FC4 8004ABC4 00031040 */ sll $v0, $v1, 1
/* 25FC8 8004ABC8 00431021 */ addu $v0, $v0, $v1
/* 25FCC 8004ABCC 000210C0 */ sll $v0, $v0, 3
/* 25FD0 8004ABD0 00431023 */ subu $v0, $v0, $v1
/* 25FD4 8004ABD4 000210C0 */ sll $v0, $v0, 3
/* 25FD8 8004ABD8 3C01800A */ lui $at, %hi(D_800A3634)
/* 25FDC 8004ABDC AC223634 */ sw $v0, %lo(D_800A3634)($at)
/* 25FE0 8004ABE0 2442FF48 */ addiu $v0, $v0, -0xb8
/* 25FE4 8004ABE4 3C01800A */ lui $at, %hi(D_800A3638)
/* 25FE8 8004ABE8 AC223638 */ sw $v0, %lo(D_800A3638)($at)
.L8004ABEC:
/* 25FEC 8004ABEC 24050001 */ addiu $a1, $zero, 1
/* 25FF0 8004ABF0 24064000 */ addiu $a2, $zero, 0x4000
/* 25FF4 8004ABF4 8FA4002C */ lw $a0, 0x2c($sp)
/* 25FF8 8004ABF8 0C015FE4 */ jal alHeapAlloc
/* 25FFC 8004ABFC 02258821 */ addu $s1, $s1, $a1
/* 26000 8004AC00 AE420000 */ sw $v0, ($s2)
/* 26004 8004AC04 2E220003 */ sltiu $v0, $s1, 3
/* 26008 8004AC08 1440FFF8 */ bnez $v0, .L8004ABEC
/* 2600C 8004AC0C 26520004 */ addiu $s2, $s2, 4
/* 26010 8004AC10 0000882D */ daddu $s1, $zero, $zero
/* 26014 8004AC14 24090002 */ addiu $t1, $zero, 2
/* 26018 8004AC18 3C08800E */ lui $t0, %hi(D_800D9780)
/* 2601C 8004AC1C 25089780 */ addiu $t0, $t0, %lo(D_800D9780)
/* 26020 8004AC20 24070100 */ addiu $a3, $zero, 0x100
/* 26024 8004AC24 3C068007 */ lui $a2, %hi(D_800731A0)
/* 26028 8004AC28 24C631A0 */ addiu $a2, $a2, %lo(D_800731A0)
/* 2602C 8004AC2C 3C058009 */ lui $a1, %hi(D_80097A80)
/* 26030 8004AC30 24A57A80 */ addiu $a1, $a1, %lo(D_80097A80)
/* 26034 8004AC34 24040800 */ addiu $a0, $zero, 0x800
/* 26038 8004AC38 3C03800A */ lui $v1, %hi(D_800A3520)
/* 2603C 8004AC3C 24633520 */ addiu $v1, $v1, %lo(D_800A3520)
.L8004AC40:
/* 26040 8004AC40 AC600000 */ sw $zero, ($v1)
/* 26044 8004AC44 AC600054 */ sw $zero, 0x54($v1)
/* 26048 8004AC48 AC690010 */ sw $t1, 0x10($v1)
/* 2604C 8004AC4C AC680018 */ sw $t0, 0x18($v1)
/* 26050 8004AC50 AC67001C */ sw $a3, 0x1c($v1)
/* 26054 8004AC54 AC660020 */ sw $a2, 0x20($v1)
/* 26058 8004AC58 AC650028 */ sw $a1, 0x28($v1)
/* 2605C 8004AC5C AC64002C */ sw $a0, 0x2c($v1)
/* 26060 8004AC60 AC600030 */ sw $zero, 0x30($v1)
/* 26064 8004AC64 AC600034 */ sw $zero, 0x34($v1)
/* 26068 8004AC68 AC600038 */ sw $zero, 0x38($v1)
/* 2606C 8004AC6C AC60003C */ sw $zero, 0x3c($v1)
/* 26070 8004AC70 AC600048 */ sw $zero, 0x48($v1)
/* 26074 8004AC74 AC60004C */ sw $zero, 0x4c($v1)
/* 26078 8004AC78 26310001 */ addiu $s1, $s1, 1
/* 2607C 8004AC7C 2E220003 */ sltiu $v0, $s1, 3
/* 26080 8004AC80 1440FFEF */ bnez $v0, .L8004AC40
/* 26084 8004AC84 24630058 */ addiu $v1, $v1, 0x58
/* 26088 8004AC88 0000882D */ daddu $s1, $zero, $zero
/* 2608C 8004AC8C 3C10800A */ lui $s0, %hi(D_800A3628)
/* 26090 8004AC90 26103628 */ addiu $s0, $s0, %lo(D_800A3628)
.L8004AC94:
/* 26094 8004AC94 24050001 */ addiu $a1, $zero, 1
/* 26098 8004AC98 02258821 */ addu $s1, $s1, $a1
/* 2609C 8004AC9C 3C06800A */ lui $a2, %hi(D_800A3634)
/* 260A0 8004ACA0 8CC63634 */ lw $a2, %lo(D_800A3634)($a2)
/* 260A4 8004ACA4 8FA4002C */ lw $a0, 0x2c($sp)
/* 260A8 8004ACA8 0C015FE4 */ jal alHeapAlloc
/* 260AC 8004ACAC 00063080 */ sll $a2, $a2, 2
/* 260B0 8004ACB0 AE020000 */ sw $v0, ($s0)
/* 260B4 8004ACB4 2E220003 */ sltiu $v0, $s1, 3
/* 260B8 8004ACB8 1440FFF6 */ bnez $v0, .L8004AC94
/* 260BC 8004ACBC 26100004 */ addiu $s0, $s0, 4
/* 260C0 8004ACC0 0000882D */ daddu $s1, $zero, $zero
/* 260C4 8004ACC4 3C02800A */ lui $v0, %hi(nuAuDmaBuf)
/* 260C8 8004ACC8 24423BE0 */ addiu $v0, $v0, %lo(nuAuDmaBuf)
/* 260CC 8004ACCC 0040802D */ daddu $s0, $v0, $zero
/* 260D0 8004ACD0 26120014 */ addiu $s2, $s0, 0x14
/* 260D4 8004ACD4 AE000004 */ sw $zero, 4($s0)
/* 260D8 8004ACD8 AE000000 */ sw $zero, ($s0)
.L8004ACDC:
/* 260DC 8004ACDC 0240202D */ daddu $a0, $s2, $zero
/* 260E0 8004ACE0 0C012CFB */ jal alLink
/* 260E4 8004ACE4 0200282D */ daddu $a1, $s0, $zero
/* 260E8 8004ACE8 24050001 */ addiu $a1, $zero, 1
/* 260EC 8004ACEC 24060500 */ addiu $a2, $zero, 0x500
/* 260F0 8004ACF0 26520014 */ addiu $s2, $s2, 0x14
/* 260F4 8004ACF4 8FA4002C */ lw $a0, 0x2c($sp)
/* 260F8 8004ACF8 0C015FE4 */ jal alHeapAlloc
/* 260FC 8004ACFC 02258821 */ addu $s1, $s1, $a1
/* 26100 8004AD00 AE020010 */ sw $v0, 0x10($s0)
/* 26104 8004AD04 2E220031 */ sltiu $v0, $s1, 0x31
/* 26108 8004AD08 1440FFF4 */ bnez $v0, .L8004ACDC
/* 2610C 8004AD0C 26100014 */ addiu $s0, $s0, 0x14
/* 26110 8004AD10 24050001 */ addiu $a1, $zero, 1
/* 26114 8004AD14 8FA4002C */ lw $a0, 0x2c($sp)
/* 26118 8004AD18 0C015FE4 */ jal alHeapAlloc
/* 2611C 8004AD1C 24060500 */ addiu $a2, $zero, 0x500
/* 26120 8004AD20 3C04800A */ lui $a0, %hi(D_800A3640)
/* 26124 8004AD24 24843640 */ addiu $a0, $a0, %lo(D_800A3640)
/* 26128 8004AD28 3C05800A */ lui $a1, %hi(D_800A3658)
/* 2612C 8004AD2C 24A53658 */ addiu $a1, $a1, %lo(D_800A3658)
/* 26130 8004AD30 00111880 */ sll $v1, $s1, 2
/* 26134 8004AD34 00711821 */ addu $v1, $v1, $s1
/* 26138 8004AD38 00031880 */ sll $v1, $v1, 2
/* 2613C 8004AD3C 3C01800A */ lui $at, %hi(D_800A3BF0)
/* 26140 8004AD40 00230821 */ addu $at, $at, $v1
/* 26144 8004AD44 AC223BF0 */ sw $v0, %lo(D_800A3BF0)($at)
/* 26148 8004AD48 0C019560 */ jal osCreateMesgQueue
/* 2614C 8004AD4C 24060032 */ addiu $a2, $zero, 0x32
/* 26150 8004AD50 3C04800C */ lui $a0, %hi(D_800B91A0)
/* 26154 8004AD54 248491A0 */ addiu $a0, $a0, %lo(D_800B91A0)
/* 26158 8004AD58 3C028005 */ lui $v0, %hi(D_8004B328)
/* 2615C 8004AD5C 2442B328 */ addiu $v0, $v0, %lo(D_8004B328)
/* 26160 8004AD60 3C018008 */ lui $at, %hi(nuAuPreNMIFunc)
/* 26164 8004AD64 AC228174 */ sw $v0, %lo(nuAuPreNMIFunc)($at)
/* 26168 8004AD68 0C015894 */ jal func_80056250
/* 2616C 8004AD6C 27A50018 */ addiu $a1, $sp, 0x18
/* 26170 8004AD70 8FA40020 */ lw $a0, 0x20($sp)
/* 26174 8004AD74 0C014B97 */ jal func_80052E5C
/* 26178 8004AD78 00000000 */ nop
/* 2617C 8004AD7C 3C10800A */ lui $s0, %hi(D_800A0F58)
/* 26180 8004AD80 26100F58 */ addiu $s0, $s0, %lo(D_800A0F58)
/* 26184 8004AD84 0200202D */ daddu $a0, $s0, $zero
/* 26188 8004AD88 24050003 */ addiu $a1, $zero, 3
/* 2618C 8004AD8C 3C068005 */ lui $a2, %hi(D_8004AE08)
/* 26190 8004AD90 24C6AE08 */ addiu $a2, $a2, %lo(D_8004AE08)
/* 26194 8004AD94 3C02800A */ lui $v0, %hi(D_800A3510)
/* 26198 8004AD98 24423510 */ addiu $v0, $v0, %lo(D_800A3510)
/* 2619C 8004AD9C AFA20010 */ sw $v0, 0x10($sp)
/* 261A0 8004ADA0 24020046 */ addiu $v0, $zero, 0x46
/* 261A4 8004ADA4 0000382D */ daddu $a3, $zero, $zero
/* 261A8 8004ADA8 0C019798 */ jal osCreateThread
/* 261AC 8004ADAC AFA20014 */ sw $v0, 0x14($sp)
/* 261B0 8004ADB0 0C019808 */ jal osStartThread
/* 261B4 8004ADB4 0200202D */ daddu $a0, $s0, $zero
/* 261B8 8004ADB8 8FBF003C */ lw $ra, 0x3c($sp)
/* 261BC 8004ADBC 8FB20038 */ lw $s2, 0x38($sp)
/* 261C0 8004ADC0 8FB10034 */ lw $s1, 0x34($sp)
/* 261C4 8004ADC4 8FB00030 */ lw $s0, 0x30($sp)
/* 261C8 8004ADC8 03E00008 */ jr $ra
/* 261CC 8004ADCC 27BD0040 */ addiu $sp, $sp, 0x40