mirror of https://github.com/zeldaret/oot.git
109 lines
5.1 KiB
ArmAsm
109 lines
5.1 KiB
ArmAsm
.late_rodata
|
|
glabel D_8014A578
|
|
.float 2500
|
|
|
|
.text
|
|
glabel func_800F32F0
|
|
/* B6A490 800F32F0 AFA40000 */ sw $a0, ($sp)
|
|
/* B6A494 800F32F4 308400FF */ andi $a0, $a0, 0xff
|
|
/* B6A498 800F32F8 AFA50004 */ sw $a1, 4($sp)
|
|
/* B6A49C 800F32FC 00047080 */ sll $t6, $a0, 2
|
|
/* B6A4A0 800F3300 3C0F8013 */ lui $t7, %hi(D_801333A8)
|
|
/* B6A4A4 800F3304 30A500FF */ andi $a1, $a1, 0xff
|
|
/* B6A4A8 800F3308 01EE7821 */ addu $t7, $t7, $t6
|
|
/* B6A4AC 800F330C 8DEF33A8 */ lw $t7, %lo(D_801333A8)($t7)
|
|
/* B6A4B0 800F3310 0005C080 */ sll $t8, $a1, 2
|
|
/* B6A4B4 800F3314 0305C023 */ subu $t8, $t8, $a1
|
|
/* B6A4B8 800F3318 0018C100 */ sll $t8, $t8, 4
|
|
/* B6A4BC 800F331C AFA60008 */ sw $a2, 8($sp)
|
|
/* B6A4C0 800F3320 01F83821 */ addu $a3, $t7, $t8
|
|
/* B6A4C4 800F3324 94F90026 */ lhu $t9, 0x26($a3)
|
|
/* B6A4C8 800F3328 30C600FF */ andi $a2, $a2, 0xff
|
|
/* B6A4CC 800F332C 00001025 */ move $v0, $zero
|
|
/* B6A4D0 800F3330 33281000 */ andi $t0, $t9, 0x1000
|
|
/* B6A4D4 800F3334 15000026 */ bnez $t0, .L800F33D0
|
|
/* B6A4D8 800F3338 00001825 */ move $v1, $zero
|
|
/* B6A4DC 800F333C 3C018015 */ lui $at, %hi(D_8014A578)
|
|
/* B6A4E0 800F3340 C422A578 */ lwc1 $f2, %lo(D_8014A578)($at)
|
|
/* B6A4E4 800F3344 C4E0001C */ lwc1 $f0, 0x1c($a3)
|
|
/* B6A4E8 800F3348 24020046 */ li $v0, 70
|
|
/* B6A4EC 800F334C 4602003C */ c.lt.s $f0, $f2
|
|
/* B6A4F0 800F3350 00000000 */ nop
|
|
/* B6A4F4 800F3354 4500001E */ bc1f .L800F33D0
|
|
/* B6A4F8 800F3358 00000000 */ nop
|
|
/* B6A4FC 800F335C 8CE90008 */ lw $t1, 8($a3)
|
|
/* B6A500 800F3360 44802000 */ mtc1 $zero, $f4
|
|
/* B6A504 800F3364 C5260000 */ lwc1 $f6, ($t1)
|
|
/* B6A508 800F3368 4606203C */ c.lt.s $f4, $f6
|
|
/* B6A50C 800F336C 00000000 */ nop
|
|
/* B6A510 800F3370 4502000D */ bc1fl .L800F33A8
|
|
/* B6A514 800F3374 46020103 */ div.s $f4, $f0, $f2
|
|
/* B6A518 800F3378 46020203 */ div.s $f8, $f0, $f2
|
|
/* B6A51C 800F337C 3C01428C */ li $at, 0x428C0000 # 0.000000
|
|
/* B6A520 800F3380 44815000 */ mtc1 $at, $f10
|
|
/* B6A524 800F3384 00000000 */ nop
|
|
/* B6A528 800F3388 460A4402 */ mul.s $f16, $f8, $f10
|
|
/* B6A52C 800F338C 4600848D */ trunc.w.s $f18, $f16
|
|
/* B6A530 800F3390 44029000 */ mfc1 $v0, $f18
|
|
/* B6A534 800F3394 00000000 */ nop
|
|
/* B6A538 800F3398 00021600 */ sll $v0, $v0, 0x18
|
|
/* B6A53C 800F339C 1000000C */ b .L800F33D0
|
|
/* B6A540 800F33A0 00021603 */ sra $v0, $v0, 0x18
|
|
/* B6A544 800F33A4 46020103 */ div.s $f4, $f0, $f2
|
|
.L800F33A8:
|
|
/* B6A548 800F33A8 3C0142B6 */ li $at, 0x42B60000 # 0.000000
|
|
/* B6A54C 800F33AC 44813000 */ mtc1 $at, $f6
|
|
/* B6A550 800F33B0 00000000 */ nop
|
|
/* B6A554 800F33B4 46062202 */ mul.s $f8, $f4, $f6
|
|
/* B6A558 800F33B8 4600428D */ trunc.w.s $f10, $f8
|
|
/* B6A55C 800F33BC 44025000 */ mfc1 $v0, $f10
|
|
/* B6A560 800F33C0 00000000 */ nop
|
|
/* B6A564 800F33C4 00021600 */ sll $v0, $v0, 0x18
|
|
/* B6A568 800F33C8 10000001 */ b .L800F33D0
|
|
/* B6A56C 800F33CC 00021603 */ sra $v0, $v0, 0x18
|
|
.L800F33D0:
|
|
/* B6A570 800F33D0 00066080 */ sll $t4, $a2, 2
|
|
/* B6A574 800F33D4 3C058017 */ lui $a1, %hi(gAudioContext+0x3828)
|
|
/* B6A578 800F33D8 00AC2821 */ addu $a1, $a1, $t4
|
|
/* B6A57C 800F33DC 8CA529A8 */ lw $a1, %lo(gAudioContext+0x3828)($a1)
|
|
/* B6A580 800F33E0 3C0D8017 */ lui $t5, %hi(gAudioContext+0x5AB0) # $t5, 0x8017
|
|
/* B6A584 800F33E4 25AD4C30 */ addiu $t5, %lo(gAudioContext+0x5AB0) # addiu $t5, $t5, 0x4c30
|
|
/* B6A588 800F33E8 11A50005 */ beq $t5, $a1, .L800F3400
|
|
/* B6A58C 800F33EC 3C098013 */ lui $t1, %hi(D_80130614) # $t1, 0x8013
|
|
/* B6A590 800F33F0 80A300C5 */ lb $v1, 0xc5($a1)
|
|
/* B6A594 800F33F4 04630003 */ bgezl $v1, .L800F3404
|
|
/* B6A598 800F33F8 8CEE0018 */ lw $t6, 0x18($a3)
|
|
/* B6A59C 800F33FC 00001825 */ move $v1, $zero
|
|
.L800F3400:
|
|
/* B6A5A0 800F3400 8CEE0018 */ lw $t6, 0x18($a3)
|
|
.L800F3404:
|
|
/* B6A5A4 800F3404 24010005 */ li $at, 5
|
|
/* B6A5A8 800F3408 3C0B8013 */ lui $t3, %hi(D_80130618) # $t3, 0x8013
|
|
/* B6A5AC 800F340C 81CF0000 */ lb $t7, ($t6)
|
|
/* B6A5B0 800F3410 3C0D8013 */ lui $t5, %hi(D_80130610) # $t5, 0x8013
|
|
/* B6A5B4 800F3414 01E2C021 */ addu $t8, $t7, $v0
|
|
/* B6A5B8 800F3418 14810006 */ bne $a0, $at, .L800F3434
|
|
/* B6A5BC 800F341C 03032821 */ addu $a1, $t8, $v1
|
|
/* B6A5C0 800F3420 94F90028 */ lhu $t9, 0x28($a3)
|
|
/* B6A5C4 800F3424 332801FF */ andi $t0, $t9, 0x1ff
|
|
/* B6A5C8 800F3428 29010002 */ slti $at, $t0, 2
|
|
/* B6A5CC 800F342C 54200008 */ bnezl $at, .L800F3450
|
|
/* B6A5D0 800F3430 28A10080 */ slti $at, $a1, 0x80
|
|
.L800F3434:
|
|
/* B6A5D4 800F3434 81290614 */ lb $t1, %lo(D_80130614)($t1)
|
|
/* B6A5D8 800F3438 816B0618 */ lb $t3, %lo(D_80130618)($t3)
|
|
/* B6A5DC 800F343C 81AD0610 */ lb $t5, %lo(D_80130610)($t5)
|
|
/* B6A5E0 800F3440 00A95021 */ addu $t2, $a1, $t1
|
|
/* B6A5E4 800F3444 014B6021 */ addu $t4, $t2, $t3
|
|
/* B6A5E8 800F3448 018D2821 */ addu $a1, $t4, $t5
|
|
/* B6A5EC 800F344C 28A10080 */ slti $at, $a1, 0x80
|
|
.L800F3450:
|
|
/* B6A5F0 800F3450 54200003 */ bnezl $at, .L800F3460
|
|
/* B6A5F4 800F3454 00051600 */ sll $v0, $a1, 0x18
|
|
/* B6A5F8 800F3458 2405007F */ li $a1, 127
|
|
/* B6A5FC 800F345C 00051600 */ sll $v0, $a1, 0x18
|
|
.L800F3460:
|
|
/* B6A600 800F3460 03E00008 */ jr $ra
|
|
/* B6A604 800F3464 00021603 */ sra $v0, $v0, 0x18
|
|
|