mirror of https://github.com/zeldaret/oot.git
113 lines
5.2 KiB
ArmAsm
113 lines
5.2 KiB
ArmAsm
glabel func_800FA240
|
|
/* B713E0 800FA240 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* B713E4 800FA244 AFA40018 */ sw $a0, 0x18($sp)
|
|
/* B713E8 800FA248 93AE001B */ lbu $t6, 0x1b($sp)
|
|
/* B713EC 800FA24C 3C098017 */ lui $t1, %hi(D_8016E750)
|
|
/* B713F0 800FA250 2529E750 */ addiu $t1, %lo(D_8016E750) # addiu $t1, $t1, -0x18b0
|
|
/* B713F4 800FA254 000E7880 */ sll $t7, $t6, 2
|
|
/* B713F8 800FA258 01EE7821 */ addu $t7, $t7, $t6
|
|
/* B713FC 800FA25C 000F7880 */ sll $t7, $t7, 2
|
|
/* B71400 800FA260 01EE7823 */ subu $t7, $t7, $t6
|
|
/* B71404 800FA264 000F78C0 */ sll $t7, $t7, 3
|
|
/* B71408 800FA268 01EE7821 */ addu $t7, $t7, $t6
|
|
/* B7140C 800FA26C AFA5001C */ sw $a1, 0x1c($sp)
|
|
/* B71410 800FA270 000F7880 */ sll $t7, $t7, 2
|
|
/* B71414 800FA274 30A500FF */ andi $a1, $a1, 0xff
|
|
/* B71418 800FA278 AFA70024 */ sw $a3, 0x24($sp)
|
|
/* B7141C 800FA27C 012F1821 */ addu $v1, $t1, $t7
|
|
/* B71420 800FA280 30E700FF */ andi $a3, $a3, 0xff
|
|
/* B71424 800FA284 0065C821 */ addu $t9, $v1, $a1
|
|
/* B71428 800FA288 30D8007F */ andi $t8, $a2, 0x7f
|
|
/* B7142C 800FA28C AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* B71430 800FA290 AFA60020 */ sw $a2, 0x20($sp)
|
|
/* B71434 800FA294 A338000E */ sb $t8, 0xe($t9)
|
|
/* B71438 800FA298 10E0000E */ beqz $a3, .L800FA2D4
|
|
/* B7143C 800FA29C 00E04025 */ move $t0, $a3
|
|
/* B71440 800FA2A0 93AA001B */ lbu $t2, 0x1b($sp)
|
|
/* B71444 800FA2A4 240C0001 */ li $t4, 1
|
|
/* B71448 800FA2A8 000A5880 */ sll $t3, $t2, 2
|
|
/* B7144C 800FA2AC 016A5821 */ addu $t3, $t3, $t2
|
|
/* B71450 800FA2B0 000B5880 */ sll $t3, $t3, 2
|
|
/* B71454 800FA2B4 016A5823 */ subu $t3, $t3, $t2
|
|
/* B71458 800FA2B8 000B58C0 */ sll $t3, $t3, 3
|
|
/* B7145C 800FA2BC 016A5821 */ addu $t3, $t3, $t2
|
|
/* B71460 800FA2C0 000B5880 */ sll $t3, $t3, 2
|
|
/* B71464 800FA2C4 012B1021 */ addu $v0, $t1, $t3
|
|
/* B71468 800FA2C8 A04C0013 */ sb $t4, 0x13($v0)
|
|
/* B7146C 800FA2CC 1000003F */ b .L800FA3CC
|
|
/* B71470 800FA2D0 A0470012 */ sb $a3, 0x12($v0)
|
|
.L800FA2D4:
|
|
/* B71474 800FA2D4 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* B71478 800FA2D8 44810000 */ mtc1 $at, $f0
|
|
/* B7147C 800FA2DC 3C0142FE */ li $at, 0x42FE0000 # 0.000000
|
|
/* B71480 800FA2E0 44811000 */ mtc1 $at, $f2
|
|
/* B71484 800FA2E4 00001025 */ move $v0, $zero
|
|
/* B71488 800FA2E8 00626821 */ addu $t5, $v1, $v0
|
|
.L800FA2EC:
|
|
/* B7148C 800FA2EC 91AE000E */ lbu $t6, 0xe($t5)
|
|
/* B71490 800FA2F0 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* B71494 800FA2F4 448E2000 */ mtc1 $t6, $f4
|
|
/* B71498 800FA2F8 05C10004 */ bgez $t6, .L800FA30C
|
|
/* B7149C 800FA2FC 468021A0 */ cvt.s.w $f6, $f4
|
|
/* B714A0 800FA300 44814000 */ mtc1 $at, $f8
|
|
/* B714A4 800FA304 00000000 */ nop
|
|
/* B714A8 800FA308 46083180 */ add.s $f6, $f6, $f8
|
|
.L800FA30C:
|
|
/* B714AC 800FA30C 46023283 */ div.s $f10, $f6, $f2
|
|
/* B714B0 800FA310 24420001 */ addiu $v0, $v0, 1
|
|
/* B714B4 800FA314 304200FF */ andi $v0, $v0, 0xff
|
|
/* B714B8 800FA318 28410004 */ slti $at, $v0, 4
|
|
/* B714BC 800FA31C 460A0002 */ mul.s $f0, $f0, $f10
|
|
/* B714C0 800FA320 5420FFF2 */ bnezl $at, .L800FA2EC
|
|
/* B714C4 800FA324 00626821 */ addu $t5, $v1, $v0
|
|
/* B714C8 800FA328 46020402 */ mul.s $f16, $f0, $f2
|
|
/* B714CC 800FA32C 240D0001 */ li $t5, 1
|
|
/* B714D0 800FA330 93AF001B */ lbu $t7, 0x1b($sp)
|
|
/* B714D4 800FA334 3C014000 */ lui $at, 0x4000
|
|
/* B714D8 800FA338 00085400 */ sll $t2, $t0, 0x10
|
|
/* B714DC 800FA33C 000FC600 */ sll $t8, $t7, 0x18
|
|
/* B714E0 800FA340 0301C825 */ or $t9, $t8, $at
|
|
/* B714E4 800FA344 444CF800 */ cfc1 $t4, $31
|
|
/* B714E8 800FA348 44CDF800 */ ctc1 $t5, $31
|
|
/* B714EC 800FA34C 032A5825 */ or $t3, $t9, $t2
|
|
/* B714F0 800FA350 460084A4 */ cvt.w.s $f18, $f16
|
|
/* B714F4 800FA354 444DF800 */ cfc1 $t5, $31
|
|
/* B714F8 800FA358 00000000 */ nop
|
|
/* B714FC 800FA35C 31AD0078 */ andi $t5, $t5, 0x78
|
|
/* B71500 800FA360 11A00012 */ beqz $t5, .L800FA3AC
|
|
/* B71504 800FA364 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* B71508 800FA368 44819000 */ mtc1 $at, $f18
|
|
/* B7150C 800FA36C 240D0001 */ li $t5, 1
|
|
/* B71510 800FA370 46128481 */ sub.s $f18, $f16, $f18
|
|
/* B71514 800FA374 44CDF800 */ ctc1 $t5, $31
|
|
/* B71518 800FA378 00000000 */ nop
|
|
/* B7151C 800FA37C 460094A4 */ cvt.w.s $f18, $f18
|
|
/* B71520 800FA380 444DF800 */ cfc1 $t5, $31
|
|
/* B71524 800FA384 00000000 */ nop
|
|
/* B71528 800FA388 31AD0078 */ andi $t5, $t5, 0x78
|
|
/* B7152C 800FA38C 15A00005 */ bnez $t5, .L800FA3A4
|
|
/* B71530 800FA390 00000000 */ nop
|
|
/* B71534 800FA394 440D9000 */ mfc1 $t5, $f18
|
|
/* B71538 800FA398 3C018000 */ lui $at, 0x8000
|
|
/* B7153C 800FA39C 10000007 */ b .L800FA3BC
|
|
/* B71540 800FA3A0 01A16825 */ or $t5, $t5, $at
|
|
.L800FA3A4:
|
|
/* B71544 800FA3A4 10000005 */ b .L800FA3BC
|
|
/* B71548 800FA3A8 240DFFFF */ li $t5, -1
|
|
.L800FA3AC:
|
|
/* B7154C 800FA3AC 440D9000 */ mfc1 $t5, $f18
|
|
/* B71550 800FA3B0 00000000 */ nop
|
|
/* B71554 800FA3B4 05A0FFFB */ bltz $t5, .L800FA3A4
|
|
/* B71558 800FA3B8 00000000 */ nop
|
|
.L800FA3BC:
|
|
/* B7155C 800FA3BC 44CCF800 */ ctc1 $t4, $31
|
|
/* B71560 800FA3C0 31AE00FF */ andi $t6, $t5, 0xff
|
|
/* B71564 800FA3C4 0C03E53F */ jal func_800F94FC
|
|
/* B71568 800FA3C8 016E2025 */ or $a0, $t3, $t6
|
|
.L800FA3CC:
|
|
/* B7156C 800FA3CC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* B71570 800FA3D0 27BD0018 */ addiu $sp, $sp, 0x18
|
|
/* B71574 800FA3D4 03E00008 */ jr $ra
|
|
/* B71578 800FA3D8 00000000 */ nop
|
|
|