mirror of https://github.com/zeldaret/oot.git
233 lines
11 KiB
ArmAsm
233 lines
11 KiB
ArmAsm
glabel func_8007A0B4
|
|
/* AF1254 8007A0B4 27BDFFC8 */ addiu $sp, $sp, -0x38
|
|
/* AF1258 8007A0B8 10C000D0 */ beqz $a2, .L8007A3FC
|
|
/* AF125C 8007A0BC AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* AF1260 8007A0C0 84AE0000 */ lh $t6, ($a1)
|
|
/* AF1264 8007A0C4 84AF0002 */ lh $t7, 2($a1)
|
|
/* AF1268 8007A0C8 C4C80000 */ lwc1 $f8, ($a2)
|
|
/* AF126C 8007A0CC 448E2000 */ mtc1 $t6, $f4
|
|
/* AF1270 8007A0D0 448F5000 */ mtc1 $t7, $f10
|
|
/* AF1274 8007A0D4 84B80004 */ lh $t8, 4($a1)
|
|
/* AF1278 8007A0D8 468021A0 */ cvt.s.w $f6, $f4
|
|
/* AF127C 8007A0DC 84B9000A */ lh $t9, 0xa($a1)
|
|
/* AF1280 8007A0E0 46805120 */ cvt.s.w $f4, $f10
|
|
/* AF1284 8007A0E4 46083381 */ sub.s $f14, $f6, $f8
|
|
/* AF1288 8007A0E8 44984000 */ mtc1 $t8, $f8
|
|
/* AF128C 8007A0EC C4C60004 */ lwc1 $f6, 4($a2)
|
|
/* AF1290 8007A0F0 468042A0 */ cvt.s.w $f10, $f8
|
|
/* AF1294 8007A0F4 460E7202 */ mul.s $f8, $f14, $f14
|
|
/* AF1298 8007A0F8 46062401 */ sub.s $f16, $f4, $f6
|
|
/* AF129C 8007A0FC C4C40008 */ lwc1 $f4, 8($a2)
|
|
/* AF12A0 8007A100 44993000 */ mtc1 $t9, $f6
|
|
/* AF12A4 8007A104 46045481 */ sub.s $f18, $f10, $f4
|
|
/* AF12A8 8007A108 46108282 */ mul.s $f10, $f16, $f16
|
|
/* AF12AC 8007A10C 468030A0 */ cvt.s.w $f2, $f6
|
|
/* AF12B0 8007A110 46129182 */ mul.s $f6, $f18, $f18
|
|
/* AF12B4 8007A114 460A4100 */ add.s $f4, $f8, $f10
|
|
/* AF12B8 8007A118 46021202 */ mul.s $f8, $f2, $f2
|
|
/* AF12BC 8007A11C 46062300 */ add.s $f12, $f4, $f6
|
|
/* AF12C0 8007A120 4608603C */ c.lt.s $f12, $f8
|
|
/* AF12C4 8007A124 00000000 */ nop
|
|
/* AF12C8 8007A128 450200B5 */ bc1fl .L8007A400
|
|
/* AF12CC 8007A12C 8FBF0014 */ lw $ra, 0x14($sp)
|
|
/* AF12D0 8007A130 AFA5003C */ sw $a1, 0x3c($sp)
|
|
/* AF12D4 8007A134 E7A20024 */ swc1 $f2, 0x24($sp)
|
|
/* AF12D8 8007A138 E7AC0018 */ swc1 $f12, 0x18($sp)
|
|
/* AF12DC 8007A13C E7AE0034 */ swc1 $f14, 0x34($sp)
|
|
/* AF12E0 8007A140 E7B00030 */ swc1 $f16, 0x30($sp)
|
|
/* AF12E4 8007A144 0C01E821 */ jal Lights_MapperGetNextFreeSlot
|
|
/* AF12E8 8007A148 E7B2002C */ swc1 $f18, 0x2c($sp)
|
|
/* AF12EC 8007A14C 8FA5003C */ lw $a1, 0x3c($sp)
|
|
/* AF12F0 8007A150 C7A20024 */ lwc1 $f2, 0x24($sp)
|
|
/* AF12F4 8007A154 C7AC0018 */ lwc1 $f12, 0x18($sp)
|
|
/* AF12F8 8007A158 C7AE0034 */ lwc1 $f14, 0x34($sp)
|
|
/* AF12FC 8007A15C C7B00030 */ lwc1 $f16, 0x30($sp)
|
|
/* AF1300 8007A160 104000A6 */ beqz $v0, .L8007A3FC
|
|
/* AF1304 8007A164 C7B2002C */ lwc1 $f18, 0x2c($sp)
|
|
/* AF1308 8007A168 46006004 */ sqrt.s $f0, $f12
|
|
/* AF130C 8007A16C 90A80006 */ lbu $t0, 6($a1)
|
|
/* AF1310 8007A170 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* AF1314 8007A174 44815000 */ mtc1 $at, $f10
|
|
/* AF1318 8007A178 44883000 */ mtc1 $t0, $f6
|
|
/* AF131C 8007A17C 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* AF1320 8007A180 46803220 */ cvt.s.w $f8, $f6
|
|
/* AF1324 8007A184 46020083 */ div.s $f2, $f0, $f2
|
|
/* AF1328 8007A188 46021102 */ mul.s $f4, $f2, $f2
|
|
/* AF132C 8007A18C 05010004 */ bgez $t0, .L8007A1A0
|
|
/* AF1330 8007A190 46045081 */ sub.s $f2, $f10, $f4
|
|
/* AF1334 8007A194 44815000 */ mtc1 $at, $f10
|
|
/* AF1338 8007A198 00000000 */ nop
|
|
/* AF133C 8007A19C 460A4200 */ add.s $f8, $f8, $f10
|
|
.L8007A1A0:
|
|
/* AF1340 8007A1A0 46024102 */ mul.s $f4, $f8, $f2
|
|
/* AF1344 8007A1A4 24030001 */ li $v1, 1
|
|
/* AF1348 8007A1A8 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* AF134C 8007A1AC 4449F800 */ cfc1 $t1, $31
|
|
/* AF1350 8007A1B0 44C3F800 */ ctc1 $v1, $31
|
|
/* AF1354 8007A1B4 00000000 */ nop
|
|
/* AF1358 8007A1B8 460021A4 */ cvt.w.s $f6, $f4
|
|
/* AF135C 8007A1BC 4443F800 */ cfc1 $v1, $31
|
|
/* AF1360 8007A1C0 00000000 */ nop
|
|
/* AF1364 8007A1C4 30630078 */ andi $v1, $v1, 0x78
|
|
/* AF1368 8007A1C8 50600013 */ beql $v1, $zero, .L8007A218
|
|
/* AF136C 8007A1CC 44033000 */ mfc1 $v1, $f6
|
|
/* AF1370 8007A1D0 44813000 */ mtc1 $at, $f6
|
|
/* AF1374 8007A1D4 24030001 */ li $v1, 1
|
|
/* AF1378 8007A1D8 46062181 */ sub.s $f6, $f4, $f6
|
|
/* AF137C 8007A1DC 44C3F800 */ ctc1 $v1, $31
|
|
/* AF1380 8007A1E0 00000000 */ nop
|
|
/* AF1384 8007A1E4 460031A4 */ cvt.w.s $f6, $f6
|
|
/* AF1388 8007A1E8 4443F800 */ cfc1 $v1, $31
|
|
/* AF138C 8007A1EC 00000000 */ nop
|
|
/* AF1390 8007A1F0 30630078 */ andi $v1, $v1, 0x78
|
|
/* AF1394 8007A1F4 14600005 */ bnez $v1, .L8007A20C
|
|
/* AF1398 8007A1F8 00000000 */ nop
|
|
/* AF139C 8007A1FC 44033000 */ mfc1 $v1, $f6
|
|
/* AF13A0 8007A200 3C018000 */ li $at, 0x80000000 # 0.000000
|
|
/* AF13A4 8007A204 10000007 */ b .L8007A224
|
|
/* AF13A8 8007A208 00611825 */ or $v1, $v1, $at
|
|
.L8007A20C:
|
|
/* AF13AC 8007A20C 10000005 */ b .L8007A224
|
|
/* AF13B0 8007A210 2403FFFF */ li $v1, -1
|
|
/* AF13B4 8007A214 44033000 */ mfc1 $v1, $f6
|
|
.L8007A218:
|
|
/* AF13B8 8007A218 00000000 */ nop
|
|
/* AF13BC 8007A21C 0460FFFB */ bltz $v1, .L8007A20C
|
|
/* AF13C0 8007A220 00000000 */ nop
|
|
.L8007A224:
|
|
/* AF13C4 8007A224 A0430004 */ sb $v1, 4($v0)
|
|
/* AF13C8 8007A228 A0430000 */ sb $v1, ($v0)
|
|
/* AF13CC 8007A22C 90AA0007 */ lbu $t2, 7($a1)
|
|
/* AF13D0 8007A230 44C9F800 */ ctc1 $t1, $31
|
|
/* AF13D4 8007A234 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* AF13D8 8007A238 448A5000 */ mtc1 $t2, $f10
|
|
/* AF13DC 8007A23C 05410004 */ bgez $t2, .L8007A250
|
|
/* AF13E0 8007A240 46805220 */ cvt.s.w $f8, $f10
|
|
/* AF13E4 8007A244 44812000 */ mtc1 $at, $f4
|
|
/* AF13E8 8007A248 00000000 */ nop
|
|
/* AF13EC 8007A24C 46044200 */ add.s $f8, $f8, $f4
|
|
.L8007A250:
|
|
/* AF13F0 8007A250 46024182 */ mul.s $f6, $f8, $f2
|
|
/* AF13F4 8007A254 24030001 */ li $v1, 1
|
|
/* AF13F8 8007A258 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* AF13FC 8007A25C 444BF800 */ cfc1 $t3, $31
|
|
/* AF1400 8007A260 44C3F800 */ ctc1 $v1, $31
|
|
/* AF1404 8007A264 00000000 */ nop
|
|
/* AF1408 8007A268 460032A4 */ cvt.w.s $f10, $f6
|
|
/* AF140C 8007A26C 4443F800 */ cfc1 $v1, $31
|
|
/* AF1410 8007A270 00000000 */ nop
|
|
/* AF1414 8007A274 30630078 */ andi $v1, $v1, 0x78
|
|
/* AF1418 8007A278 50600013 */ beql $v1, $zero, .L8007A2C8
|
|
/* AF141C 8007A27C 44035000 */ mfc1 $v1, $f10
|
|
/* AF1420 8007A280 44815000 */ mtc1 $at, $f10
|
|
/* AF1424 8007A284 24030001 */ li $v1, 1
|
|
/* AF1428 8007A288 460A3281 */ sub.s $f10, $f6, $f10
|
|
/* AF142C 8007A28C 44C3F800 */ ctc1 $v1, $31
|
|
/* AF1430 8007A290 00000000 */ nop
|
|
/* AF1434 8007A294 460052A4 */ cvt.w.s $f10, $f10
|
|
/* AF1438 8007A298 4443F800 */ cfc1 $v1, $31
|
|
/* AF143C 8007A29C 00000000 */ nop
|
|
/* AF1440 8007A2A0 30630078 */ andi $v1, $v1, 0x78
|
|
/* AF1444 8007A2A4 14600005 */ bnez $v1, .L8007A2BC
|
|
/* AF1448 8007A2A8 00000000 */ nop
|
|
/* AF144C 8007A2AC 44035000 */ mfc1 $v1, $f10
|
|
/* AF1450 8007A2B0 3C018000 */ li $at, 0x80000000 # 0.000000
|
|
/* AF1454 8007A2B4 10000007 */ b .L8007A2D4
|
|
/* AF1458 8007A2B8 00611825 */ or $v1, $v1, $at
|
|
.L8007A2BC:
|
|
/* AF145C 8007A2BC 10000005 */ b .L8007A2D4
|
|
/* AF1460 8007A2C0 2403FFFF */ li $v1, -1
|
|
/* AF1464 8007A2C4 44035000 */ mfc1 $v1, $f10
|
|
.L8007A2C8:
|
|
/* AF1468 8007A2C8 00000000 */ nop
|
|
/* AF146C 8007A2CC 0460FFFB */ bltz $v1, .L8007A2BC
|
|
/* AF1470 8007A2D0 00000000 */ nop
|
|
.L8007A2D4:
|
|
/* AF1474 8007A2D4 A0430005 */ sb $v1, 5($v0)
|
|
/* AF1478 8007A2D8 A0430001 */ sb $v1, 1($v0)
|
|
/* AF147C 8007A2DC 90AC0008 */ lbu $t4, 8($a1)
|
|
/* AF1480 8007A2E0 44CBF800 */ ctc1 $t3, $31
|
|
/* AF1484 8007A2E4 3C014F80 */ li $at, 0x4F800000 # 0.000000
|
|
/* AF1488 8007A2E8 448C2000 */ mtc1 $t4, $f4
|
|
/* AF148C 8007A2EC 05810004 */ bgez $t4, .L8007A300
|
|
/* AF1490 8007A2F0 46802220 */ cvt.s.w $f8, $f4
|
|
/* AF1494 8007A2F4 44813000 */ mtc1 $at, $f6
|
|
/* AF1498 8007A2F8 00000000 */ nop
|
|
/* AF149C 8007A2FC 46064200 */ add.s $f8, $f8, $f6
|
|
.L8007A300:
|
|
/* AF14A0 8007A300 46024282 */ mul.s $f10, $f8, $f2
|
|
/* AF14A4 8007A304 24030001 */ li $v1, 1
|
|
/* AF14A8 8007A308 3C014F00 */ li $at, 0x4F000000 # 0.000000
|
|
/* AF14AC 8007A30C 444DF800 */ cfc1 $t5, $31
|
|
/* AF14B0 8007A310 44C3F800 */ ctc1 $v1, $31
|
|
/* AF14B4 8007A314 00000000 */ nop
|
|
/* AF14B8 8007A318 46005124 */ cvt.w.s $f4, $f10
|
|
/* AF14BC 8007A31C 4443F800 */ cfc1 $v1, $31
|
|
/* AF14C0 8007A320 00000000 */ nop
|
|
/* AF14C4 8007A324 30630078 */ andi $v1, $v1, 0x78
|
|
/* AF14C8 8007A328 50600013 */ beql $v1, $zero, .L8007A378
|
|
/* AF14CC 8007A32C 44032000 */ mfc1 $v1, $f4
|
|
/* AF14D0 8007A330 44812000 */ mtc1 $at, $f4
|
|
/* AF14D4 8007A334 24030001 */ li $v1, 1
|
|
/* AF14D8 8007A338 46045101 */ sub.s $f4, $f10, $f4
|
|
/* AF14DC 8007A33C 44C3F800 */ ctc1 $v1, $31
|
|
/* AF14E0 8007A340 00000000 */ nop
|
|
/* AF14E4 8007A344 46002124 */ cvt.w.s $f4, $f4
|
|
/* AF14E8 8007A348 4443F800 */ cfc1 $v1, $31
|
|
/* AF14EC 8007A34C 00000000 */ nop
|
|
/* AF14F0 8007A350 30630078 */ andi $v1, $v1, 0x78
|
|
/* AF14F4 8007A354 14600005 */ bnez $v1, .L8007A36C
|
|
/* AF14F8 8007A358 00000000 */ nop
|
|
/* AF14FC 8007A35C 44032000 */ mfc1 $v1, $f4
|
|
/* AF1500 8007A360 3C018000 */ li $at, 0x80000000 # 0.000000
|
|
/* AF1504 8007A364 10000007 */ b .L8007A384
|
|
/* AF1508 8007A368 00611825 */ or $v1, $v1, $at
|
|
.L8007A36C:
|
|
/* AF150C 8007A36C 10000005 */ b .L8007A384
|
|
/* AF1510 8007A370 2403FFFF */ li $v1, -1
|
|
/* AF1514 8007A374 44032000 */ mfc1 $v1, $f4
|
|
.L8007A378:
|
|
/* AF1518 8007A378 00000000 */ nop
|
|
/* AF151C 8007A37C 0460FFFB */ bltz $v1, .L8007A36C
|
|
/* AF1520 8007A380 00000000 */ nop
|
|
.L8007A384:
|
|
/* AF1524 8007A384 3C013F80 */ li $at, 0x3F800000 # 0.000000
|
|
/* AF1528 8007A388 44CDF800 */ ctc1 $t5, $31
|
|
/* AF152C 8007A38C 44813000 */ mtc1 $at, $f6
|
|
/* AF1530 8007A390 A0430006 */ sb $v1, 6($v0)
|
|
/* AF1534 8007A394 A0430002 */ sb $v1, 2($v0)
|
|
/* AF1538 8007A398 4606003C */ c.lt.s $f0, $f6
|
|
/* AF153C 8007A39C 3C0142F0 */ li $at, 0x42F00000 # 0.000000
|
|
/* AF1540 8007A3A0 45020006 */ bc1fl .L8007A3BC
|
|
/* AF1544 8007A3A4 44814000 */ mtc1 $at, $f8
|
|
/* AF1548 8007A3A8 3C0142F0 */ li $at, 0x42F00000 # 0.000000
|
|
/* AF154C 8007A3AC 44811000 */ mtc1 $at, $f2
|
|
/* AF1550 8007A3B0 10000004 */ b .L8007A3C4
|
|
/* AF1554 8007A3B4 00000000 */ nop
|
|
/* AF1558 8007A3B8 44814000 */ mtc1 $at, $f8
|
|
.L8007A3BC:
|
|
/* AF155C 8007A3BC 00000000 */ nop
|
|
/* AF1560 8007A3C0 46004083 */ div.s $f2, $f8, $f0
|
|
.L8007A3C4:
|
|
/* AF1564 8007A3C4 46027282 */ mul.s $f10, $f14, $f2
|
|
/* AF1568 8007A3C8 4600510D */ trunc.w.s $f4, $f10
|
|
/* AF156C 8007A3CC 46028182 */ mul.s $f6, $f16, $f2
|
|
/* AF1570 8007A3D0 00000000 */ nop
|
|
/* AF1574 8007A3D4 46029282 */ mul.s $f10, $f18, $f2
|
|
/* AF1578 8007A3D8 440F2000 */ mfc1 $t7, $f4
|
|
/* AF157C 8007A3DC 00000000 */ nop
|
|
/* AF1580 8007A3E0 A04F0008 */ sb $t7, 8($v0)
|
|
/* AF1584 8007A3E4 4600320D */ trunc.w.s $f8, $f6
|
|
/* AF1588 8007A3E8 4600510D */ trunc.w.s $f4, $f10
|
|
/* AF158C 8007A3EC 44194000 */ mfc1 $t9, $f8
|
|
/* AF1590 8007A3F0 44092000 */ mfc1 $t1, $f4
|
|
/* AF1594 8007A3F4 A0590009 */ sb $t9, 9($v0)
|
|
/* AF1598 8007A3F8 A049000A */ sb $t1, 0xa($v0)
|
|
.L8007A3FC:
|
|
/* AF159C 8007A3FC 8FBF0014 */ lw $ra, 0x14($sp)
|
|
.L8007A400:
|
|
/* AF15A0 8007A400 27BD0038 */ addiu $sp, $sp, 0x38
|
|
/* AF15A4 8007A404 03E00008 */ jr $ra
|
|
/* AF15A8 8007A408 00000000 */ nop
|
|
|