mirror of https://github.com/zeldaret/oot.git
101 lines
4.9 KiB
ArmAsm
101 lines
4.9 KiB
ArmAsm
glabel func_800DD9F4
|
|
/* B54B94 800DD9F4 27BDFFE0 */ addiu $sp, $sp, -0x20
|
|
/* B54B98 800DD9F8 AFBF001C */ sw $ra, 0x1c($sp)
|
|
/* B54B9C 800DD9FC AFB00018 */ sw $s0, 0x18($sp)
|
|
/* B54BA0 800DDA00 AFA7002C */ sw $a3, 0x2c($sp)
|
|
/* B54BA4 800DDA04 8CAE0000 */ lw $t6, ($a1)
|
|
/* B54BA8 800DDA08 00808025 */ move $s0, $a0
|
|
/* B54BAC 800DDA0C 90A80006 */ lbu $t0, 6($a1)
|
|
/* B54BB0 800DDA10 000E7AC0 */ sll $t7, $t6, 0xb
|
|
/* B54BB4 800DDA14 000FC782 */ srl $t8, $t7, 0x1e
|
|
/* B54BB8 800DDA18 13000014 */ beqz $t8, .L800DDA6C
|
|
/* B54BBC 800DDA1C 8CC30008 */ lw $v1, 8($a2)
|
|
/* B54BC0 800DDA20 00073040 */ sll $a2, $a3, 1
|
|
/* B54BC4 800DDA24 24C6000F */ addiu $a2, $a2, 0xf
|
|
/* B54BC8 800DDA28 3C078013 */ lui $a3, %hi(gWaveSamples+0x20) # $a3, 0x8013
|
|
/* B54BCC 800DDA2C 02002025 */ move $a0, $s0
|
|
/* B54BD0 800DDA30 2401FFF0 */ li $at, -16
|
|
/* B54BD4 800DDA34 00C13024 */ and $a2, $a2, $at
|
|
/* B54BD8 800DDA38 26100008 */ addiu $s0, $s0, 8
|
|
/* B54BDC 800DDA3C 8CE7F0B0 */ lw $a3, %lo(gWaveSamples+0x20)($a3)
|
|
/* B54BE0 800DDA40 0C036F44 */ jal func_800DBD10
|
|
/* B54BE4 800DDA44 24050580 */ li $a1, 1408
|
|
/* B54BE8 800DDA48 3C038013 */ lui $v1, %hi(gWaveSamples) # $v1, 0x8013
|
|
/* B54BEC 800DDA4C 8FA9002C */ lw $t1, 0x2c($sp)
|
|
/* B54BF0 800DDA50 2463F090 */ addiu $v1, %lo(gWaveSamples) # addiu $v1, $v1, -0xf70
|
|
/* B54BF4 800DDA54 8C790020 */ lw $t9, 0x20($v1)
|
|
/* B54BF8 800DDA58 00095080 */ sll $t2, $t1, 2
|
|
/* B54BFC 800DDA5C 02001025 */ move $v0, $s0
|
|
/* B54C00 800DDA60 032A5821 */ addu $t3, $t9, $t2
|
|
/* B54C04 800DDA64 1000003A */ b .L800DDB50
|
|
/* B54C08 800DDA68 AC6B0020 */ sw $t3, 0x20($v1)
|
|
.L800DDA6C:
|
|
/* B54C0C 800DDA6C 3C0C1408 */ lui $t4, (0x14080580 >> 16) # lui $t4, 0x1408
|
|
/* B54C10 800DDA70 358C0580 */ ori $t4, (0x14080580 & 0xFFFF) # ori $t4, $t4, 0x580
|
|
/* B54C14 800DDA74 02001025 */ move $v0, $s0
|
|
/* B54C18 800DDA78 AC4C0000 */ sw $t4, ($v0)
|
|
/* B54C1C 800DDA7C 8CAD0010 */ lw $t5, 0x10($a1)
|
|
/* B54C20 800DDA80 26100008 */ addiu $s0, $s0, 8
|
|
/* B54C24 800DDA84 11000018 */ beqz $t0, .L800DDAE8
|
|
/* B54C28 800DDA88 AC4D0004 */ sw $t5, 4($v0)
|
|
/* B54C2C 800DDA8C 3C028013 */ lui $v0, %hi(D_801304C0) # $v0, 0x8013
|
|
/* B54C30 800DDA90 244204C0 */ addiu $v0, %lo(D_801304C0) # addiu $v0, $v0, 0x4c0
|
|
/* B54C34 800DDA94 00087083 */ sra $t6, $t0, 2
|
|
/* B54C38 800DDA98 004E7821 */ addu $t7, $v0, $t6
|
|
/* B54C3C 800DDA9C 91F80000 */ lbu $t8, ($t7)
|
|
/* B54C40 800DDAA0 31190003 */ andi $t9, $t0, 3
|
|
/* B54C44 800DDAA4 00595021 */ addu $t2, $v0, $t9
|
|
/* B54C48 800DDAA8 00780019 */ multu $v1, $t8
|
|
/* B54C4C 800DDAAC 914B0000 */ lbu $t3, ($t2)
|
|
/* B54C50 800DDAB0 00004812 */ mflo $t1
|
|
/* B54C54 800DDAB4 00000000 */ nop
|
|
/* B54C58 800DDAB8 00000000 */ nop
|
|
/* B54C5C 800DDABC 012B001A */ div $zero, $t1, $t3
|
|
/* B54C60 800DDAC0 00001812 */ mflo $v1
|
|
/* B54C64 800DDAC4 15600002 */ bnez $t3, .L800DDAD0
|
|
/* B54C68 800DDAC8 00000000 */ nop
|
|
/* B54C6C 800DDACC 0007000D */ break 7
|
|
.L800DDAD0:
|
|
/* B54C70 800DDAD0 2401FFFF */ li $at, -1
|
|
/* B54C74 800DDAD4 15610004 */ bne $t3, $at, .L800DDAE8
|
|
/* B54C78 800DDAD8 3C018000 */ lui $at, 0x8000
|
|
/* B54C7C 800DDADC 15210002 */ bne $t1, $at, .L800DDAE8
|
|
/* B54C80 800DDAE0 00000000 */ nop
|
|
/* B54C84 800DDAE4 0006000D */ break 6
|
|
.L800DDAE8:
|
|
/* B54C88 800DDAE8 8FAD002C */ lw $t5, 0x2c($sp)
|
|
/* B54C8C 800DDAEC 3063003F */ andi $v1, $v1, 0x3f
|
|
/* B54C90 800DDAF0 240C0040 */ li $t4, 64
|
|
/* B54C94 800DDAF4 01831023 */ subu $v0, $t4, $v1
|
|
/* B54C98 800DDAF8 004D082A */ slt $at, $v0, $t5
|
|
/* B54C9C 800DDAFC 10200012 */ beqz $at, .L800DDB48
|
|
/* B54CA0 800DDB00 01A22023 */ subu $a0, $t5, $v0
|
|
/* B54CA4 800DDB04 2484003F */ addiu $a0, $a0, 0x3f
|
|
/* B54CA8 800DDB08 04810002 */ bgez $a0, .L800DDB14
|
|
/* B54CAC 800DDB0C 00800821 */ addu $at, $a0, $zero
|
|
/* B54CB0 800DDB10 2481003F */ addiu $at, $a0, 0x3f
|
|
.L800DDB14:
|
|
/* B54CB4 800DDB14 00012183 */ sra $a0, $at, 6
|
|
/* B54CB8 800DDB18 1080000B */ beqz $a0, .L800DDB48
|
|
/* B54CBC 800DDB1C 02001025 */ move $v0, $s0
|
|
/* B54CC0 800DDB20 308E00FF */ andi $t6, $a0, 0xff
|
|
/* B54CC4 800DDB24 000E7C00 */ sll $t7, $t6, 0x10
|
|
/* B54CC8 800DDB28 3C010900 */ lui $at, 0x900
|
|
/* B54CCC 800DDB2C 01E1C025 */ or $t8, $t7, $at
|
|
/* B54CD0 800DDB30 3C0A0600 */ lui $t2, (0x06000080 >> 16) # lui $t2, 0x600
|
|
/* B54CD4 800DDB34 354A0080 */ ori $t2, (0x06000080 & 0xFFFF) # ori $t2, $t2, 0x80
|
|
/* B54CD8 800DDB38 37190580 */ ori $t9, $t8, 0x580
|
|
/* B54CDC 800DDB3C AC590000 */ sw $t9, ($v0)
|
|
/* B54CE0 800DDB40 AC4A0004 */ sw $t2, 4($v0)
|
|
/* B54CE4 800DDB44 26100008 */ addiu $s0, $s0, 8
|
|
.L800DDB48:
|
|
/* B54CE8 800DDB48 ACC30008 */ sw $v1, 8($a2)
|
|
/* B54CEC 800DDB4C 02001025 */ move $v0, $s0
|
|
.L800DDB50:
|
|
/* B54CF0 800DDB50 8FBF001C */ lw $ra, 0x1c($sp)
|
|
/* B54CF4 800DDB54 8FB00018 */ lw $s0, 0x18($sp)
|
|
/* B54CF8 800DDB58 27BD0020 */ addiu $sp, $sp, 0x20
|
|
/* B54CFC 800DDB5C 03E00008 */ jr $ra
|
|
/* B54D00 800DDB60 00000000 */ nop
|
|
|