donut-decomp/asm/libnw4r_ef/ef_disc.s

463 lines
21 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global Emission__Q34nw4r2ef15EmitterFormDiscFPQ34nw4r2ef7EmitterPQ34nw4r2ef15ParticleManageriUlPfUsfPCQ34nw4r4math5MTX34
Emission__Q34nw4r2ef15EmitterFormDiscFPQ34nw4r2ef7EmitterPQ34nw4r2ef15ParticleManageriUlPfUsfPCQ34nw4r4math5MTX34:
/* 800B5240 000B1080 94 21 FE 60 */ stwu r1, -0x1a0(r1)
/* 800B5244 000B1084 7C 08 02 A6 */ mflr r0
/* 800B5248 000B1088 90 01 01 A4 */ stw r0, 0x1a4(r1)
/* 800B524C 000B108C 39 61 00 B0 */ addi r11, r1, 0xb0
/* 800B5250 000B1090 DB E1 01 90 */ stfd f31, 0x190(r1)
/* 800B5254 000B1094 F3 E1 01 98 */ psq_st f31, 0x198(r1), 0, qr0
/* 800B5258 000B1098 DB C1 01 80 */ stfd f30, 0x180(r1)
/* 800B525C 000B109C F3 C1 01 88 */ psq_st f30, 0x188(r1), 0, qr0
/* 800B5260 000B10A0 DB A1 01 70 */ stfd f29, 0x170(r1)
/* 800B5264 000B10A4 F3 A1 01 78 */ psq_st f29, 0x178(r1), 0, qr0
/* 800B5268 000B10A8 DB 81 01 60 */ stfd f28, 0x160(r1)
/* 800B526C 000B10AC F3 81 01 68 */ psq_st f28, 0x168(r1), 0, qr0
/* 800B5270 000B10B0 DB 61 01 50 */ stfd f27, 0x150(r1)
/* 800B5274 000B10B4 F3 61 01 58 */ psq_st f27, 0x158(r1), 0, qr0
/* 800B5278 000B10B8 DB 41 01 40 */ stfd f26, 0x140(r1)
/* 800B527C 000B10BC F3 41 01 48 */ psq_st f26, 0x148(r1), 0, qr0
/* 800B5280 000B10C0 DB 21 01 30 */ stfd f25, 0x130(r1)
/* 800B5284 000B10C4 F3 21 01 38 */ psq_st f25, 0x138(r1), 0, qr0
/* 800B5288 000B10C8 DB 01 01 20 */ stfd f24, 0x120(r1)
/* 800B528C 000B10CC F3 01 01 28 */ psq_st f24, 0x128(r1), 0, qr0
/* 800B5290 000B10D0 DA E1 01 10 */ stfd f23, 0x110(r1)
/* 800B5294 000B10D4 F2 E1 01 18 */ psq_st f23, 0x118(r1), 0, qr0
/* 800B5298 000B10D8 DA C1 01 00 */ stfd f22, 0x100(r1)
/* 800B529C 000B10DC F2 C1 01 08 */ psq_st f22, 0x108(r1), 0, qr0
/* 800B52A0 000B10E0 DA A1 00 F0 */ stfd f21, 0xf0(r1)
/* 800B52A4 000B10E4 F2 A1 00 F8 */ psq_st f21, 0xf8(r1), 0, qr0
/* 800B52A8 000B10E8 DA 81 00 E0 */ stfd f20, 0xe0(r1)
/* 800B52AC 000B10EC F2 81 00 E8 */ psq_st f20, 0xe8(r1), 0, qr0
/* 800B52B0 000B10F0 DA 61 00 D0 */ stfd f19, 0xd0(r1)
/* 800B52B4 000B10F4 F2 61 00 D8 */ psq_st f19, 0xd8(r1), 0, qr0
/* 800B52B8 000B10F8 DA 41 00 C0 */ stfd f18, 0xc0(r1)
/* 800B52BC 000B10FC F2 41 00 C8 */ psq_st f18, 0xc8(r1), 0, qr0
/* 800B52C0 000B1100 DA 21 00 B0 */ stfd f17, 0xb0(r1)
/* 800B52C4 000B1104 F2 21 00 B8 */ psq_st f17, 0xb8(r1), 0, qr0
/* 800B52C8 000B1108 4B F5 20 59 */ bl lbl_80007320
/* 800B52CC 000B110C FE 40 08 90 */ fmr f18, f1
/* 800B52D0 000B1110 2C 06 00 01 */ cmpwi r6, 0x1
/* 800B52D4 000B1114 3C 00 43 30 */ lis r0, 0x4330
/* 800B52D8 000B1118 90 01 00 68 */ stw r0, 0x68(r1)
/* 800B52DC 000B111C 7C 74 1B 78 */ mr r20, r3
/* 800B52E0 000B1120 7C 95 23 78 */ mr r21, r4
/* 800B52E4 000B1124 90 01 00 70 */ stw r0, 0x70(r1)
/* 800B52E8 000B1128 7C B6 2B 78 */ mr r22, r5
/* 800B52EC 000B112C 7C D7 33 78 */ mr r23, r6
/* 800B52F0 000B1130 7C FB 3B 78 */ mr r27, r7
/* 800B52F4 000B1134 7D 18 43 78 */ mr r24, r8
/* 800B52F8 000B1138 7D 39 4B 78 */ mr r25, r9
/* 800B52FC 000B113C 7D 5A 53 78 */ mr r26, r10
/* 800B5300 000B1140 41 80 03 E4 */ blt lbl_800B56E4
/* 800B5304 000B1144 C3 28 00 00 */ lfs f25, 0x0(r8)
/* 800B5308 000B1148 C0 02 8C 08 */ lfs f0, "@7752_8055EB88"@sda21(r2)
/* 800B530C 000B114C FC 20 CA 10 */ fabs f1, f25
/* 800B5310 000B1150 FC 20 08 18 */ frsp f1, f1
/* 800B5314 000B1154 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800B5318 000B1158 40 81 00 08 */ ble lbl_800B5320
/* 800B531C 000B115C 48 00 00 08 */ b lbl_800B5324
.global lbl_800B5320
lbl_800B5320:
/* 800B5320 000B1160 FF 20 00 90 */ fmr f25, f0
.global lbl_800B5324
lbl_800B5324:
/* 800B5324 000B1164 54 E0 01 8D */ rlwinm. r0, r7, 0, 6, 6
/* 800B5328 000B1168 41 82 00 0C */ beq lbl_800B5334
/* 800B532C 000B116C FE E0 C8 90 */ fmr f23, f25
/* 800B5330 000B1170 48 00 00 24 */ b lbl_800B5354
.global lbl_800B5334
lbl_800B5334:
/* 800B5334 000B1174 C2 E8 00 10 */ lfs f23, 0x10(r8)
/* 800B5338 000B1178 C0 02 8C 08 */ lfs f0, "@7752_8055EB88"@sda21(r2)
/* 800B533C 000B117C FC 20 BA 10 */ fabs f1, f23
/* 800B5340 000B1180 FC 20 08 18 */ frsp f1, f1
/* 800B5344 000B1184 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800B5348 000B1188 40 81 00 08 */ ble lbl_800B5350
/* 800B534C 000B118C 48 00 00 08 */ b lbl_800B5354
.global lbl_800B5350
lbl_800B5350:
/* 800B5350 000B1190 FE E0 00 90 */ fmr f23, f0
.global lbl_800B5354
lbl_800B5354:
/* 800B5354 000B1194 C2 C2 8C 0C */ lfs f22, "@7753_8055EB8C"@sda21(r2)
/* 800B5358 000B1198 54 E0 03 5B */ rlwinm. r0, r7, 0, 13, 13
/* 800B535C 000B119C FE A0 B0 90 */ fmr f21, f22
/* 800B5360 000B11A0 41 82 00 0C */ beq lbl_800B536C
/* 800B5364 000B11A4 C2 88 00 08 */ lfs f20, 0x8(r8)
/* 800B5368 000B11A8 48 00 00 4C */ b lbl_800B53B4
.global lbl_800B536C
lbl_800B536C:
/* 800B536C 000B11AC 3C 60 00 03 */ lis r3, 0x3
/* 800B5370 000B11B0 80 A4 00 EC */ lwz r5, 0xec(r4)
/* 800B5374 000B11B4 38 03 43 FD */ addi r0, r3, 0x43fd
/* 800B5378 000B11B8 C8 82 8C 40 */ lfd f4, "@7770_8055EBC0"@sda21(r2)
/* 800B537C 000B11BC 7C 65 01 D6 */ mullw r3, r5, r0
/* 800B5380 000B11C0 C0 42 8C 10 */ lfs f2, "@7754_8055EB90"@sda21(r2)
/* 800B5384 000B11C4 C0 22 8C 18 */ lfs f1, "@7756"@sda21(r2)
/* 800B5388 000B11C8 C0 02 8C 14 */ lfs f0, "@7755"@sda21(r2)
/* 800B538C 000B11CC 3C 63 00 27 */ addis r3, r3, 0x27
/* 800B5390 000B11D0 38 03 9E C3 */ addi r0, r3, -0x613d
/* 800B5394 000B11D4 90 04 00 EC */ stw r0, 0xec(r4)
/* 800B5398 000B11D8 54 00 84 3E */ srwi r0, r0, 16
/* 800B539C 000B11DC 90 01 00 6C */ stw r0, 0x6c(r1)
/* 800B53A0 000B11E0 C8 61 00 68 */ lfd f3, 0x68(r1)
/* 800B53A4 000B11E4 EC 63 20 28 */ fsubs f3, f3, f4
/* 800B53A8 000B11E8 EC 43 10 24 */ fdivs f2, f3, f2
/* 800B53AC 000B11EC EC 21 00 B2 */ fmuls f1, f1, f2
/* 800B53B0 000B11F0 EE 80 00 72 */ fmuls f20, f0, f1
.global lbl_800B53B4
lbl_800B53B4:
/* 800B53B4 000B11F4 54 FC 03 9D */ rlwinm. r28, r7, 0, 14, 14
/* 800B53B8 000B11F8 41 82 00 90 */ beq lbl_800B5448
/* 800B53BC 000B11FC C0 28 00 0C */ lfs f1, 0xc(r8)
/* 800B53C0 000B1200 C0 08 00 08 */ lfs f0, 0x8(r8)
/* 800B53C4 000B1204 C8 42 8C 20 */ lfd f2, "@7757"@sda21(r2)
/* 800B53C8 000B1208 EC 21 00 28 */ fsubs f1, f1, f0
/* 800B53CC 000B120C 4B F5 F1 C9 */ bl fmod
/* 800B53D0 000B1210 FC 20 08 18 */ frsp f1, f1
/* 800B53D4 000B1214 C0 02 8C 28 */ lfs f0, "@7758"@sda21(r2)
/* 800B53D8 000B1218 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800B53DC 000B121C 41 80 00 1C */ blt lbl_800B53F8
/* 800B53E0 000B1220 C0 02 8C 2C */ lfs f0, "@7759"@sda21(r2)
/* 800B53E4 000B1224 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 800B53E8 000B1228 41 81 00 10 */ bgt lbl_800B53F8
/* 800B53EC 000B122C A0 75 00 32 */ lhz r3, 0x32(r21)
/* 800B53F0 000B1230 28 03 00 01 */ cmplwi r3, 0x1
/* 800B53F4 000B1234 40 82 00 2C */ bne lbl_800B5420
.global lbl_800B53F8
lbl_800B53F8:
/* 800B53F8 000B1238 A0 15 00 32 */ lhz r0, 0x32(r21)
/* 800B53FC 000B123C 90 01 00 74 */ stw r0, 0x74(r1)
/* 800B5400 000B1240 C0 78 00 0C */ lfs f3, 0xc(r24)
/* 800B5404 000B1244 C0 58 00 08 */ lfs f2, 0x8(r24)
/* 800B5408 000B1248 C8 22 8C 40 */ lfd f1, "@7770_8055EBC0"@sda21(r2)
/* 800B540C 000B124C C8 01 00 70 */ lfd f0, 0x70(r1)
/* 800B5410 000B1250 EC 43 10 28 */ fsubs f2, f3, f2
/* 800B5414 000B1254 EC 00 08 28 */ fsubs f0, f0, f1
/* 800B5418 000B1258 EE A2 00 24 */ fdivs f21, f2, f0
/* 800B541C 000B125C 48 00 00 2C */ b lbl_800B5448
.global lbl_800B5420
lbl_800B5420:
/* 800B5420 000B1260 38 03 FF FF */ addi r0, r3, -0x1
/* 800B5424 000B1264 C0 78 00 0C */ lfs f3, 0xc(r24)
/* 800B5428 000B1268 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 800B542C 000B126C 90 01 00 6C */ stw r0, 0x6c(r1)
/* 800B5430 000B1270 C0 58 00 08 */ lfs f2, 0x8(r24)
/* 800B5434 000B1274 C8 22 8C 48 */ lfd f1, "@7771_8055EBC8"@sda21(r2)
/* 800B5438 000B1278 C8 01 00 68 */ lfd f0, 0x68(r1)
/* 800B543C 000B127C EC 43 10 28 */ fsubs f2, f3, f2
/* 800B5440 000B1280 EC 00 08 28 */ fsubs f0, f0, f1
/* 800B5444 000B1284 EE A2 00 24 */ fdivs f21, f2, f0
.global lbl_800B5448
lbl_800B5448:
/* 800B5448 000B1288 3F E0 00 03 */ lis r31, 0x3
/* 800B544C 000B128C C3 A2 8C 34 */ lfs f29, "@7761"@sda21(r2)
/* 800B5450 000B1290 57 7D 01 CE */ rlwinm r29, r27, 0, 7, 7
/* 800B5454 000B1294 C3 C2 8C 0C */ lfs f30, "@7753_8055EB8C"@sda21(r2)
/* 800B5458 000B1298 CB 42 8C 40 */ lfd f26, "@7770_8055EBC0"@sda21(r2)
/* 800B545C 000B129C 3B DF 43 FD */ addi r30, r31, 0x43fd
/* 800B5460 000B12A0 C3 62 8C 10 */ lfs f27, "@7754_8055EB90"@sda21(r2)
/* 800B5464 000B12A4 3B 60 00 00 */ li r27, 0x0
/* 800B5468 000B12A8 C3 82 8C 30 */ lfs f28, "@7760"@sda21(r2)
/* 800B546C 000B12AC CB E2 8C 48 */ lfd f31, "@7771_8055EBC8"@sda21(r2)
/* 800B5470 000B12B0 C2 22 8C 38 */ lfs f17, "@7762"@sda21(r2)
/* 800B5474 000B12B4 48 00 02 68 */ b lbl_800B56DC
.global lbl_800B5478
lbl_800B5478:
/* 800B5478 000B12B8 80 15 00 EC */ lwz r0, 0xec(r21)
/* 800B547C 000B12BC 2C 1D 00 00 */ cmpwi r29, 0x0
/* 800B5480 000B12C0 7C 60 F1 D6 */ mullw r3, r0, r30
/* 800B5484 000B12C4 3C 63 00 27 */ addis r3, r3, 0x27
/* 800B5488 000B12C8 38 03 9E C3 */ addi r0, r3, -0x613d
/* 800B548C 000B12CC 90 15 00 EC */ stw r0, 0xec(r21)
/* 800B5490 000B12D0 54 00 84 3E */ srwi r0, r0, 16
/* 800B5494 000B12D4 90 01 00 74 */ stw r0, 0x74(r1)
/* 800B5498 000B12D8 C0 18 00 04 */ lfs f0, 0x4(r24)
/* 800B549C 000B12DC C8 21 00 70 */ lfd f1, 0x70(r1)
/* 800B54A0 000B12E0 EE 60 E0 24 */ fdivs f19, f0, f28
/* 800B54A4 000B12E4 EC 01 D0 28 */ fsubs f0, f1, f26
/* 800B54A8 000B12E8 EF 00 D8 24 */ fdivs f24, f0, f27
/* 800B54AC 000B12EC 41 82 00 44 */ beq lbl_800B54F0
/* 800B54B0 000B12F0 EC 3D C0 28 */ fsubs f1, f29, f24
/* 800B54B4 000B12F4 EC 13 04 F2 */ fmuls f0, f19, f19
/* 800B54B8 000B12F8 EC 01 00 32 */ fmuls f0, f1, f0
/* 800B54BC 000B12FC EC 38 00 2A */ fadds f1, f24, f0
/* 800B54C0 000B1300 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 800B54C4 000B1304 4C 40 13 82 */ cror eq, lt, eq
/* 800B54C8 000B1308 40 82 00 0C */ bne lbl_800B54D4
/* 800B54CC 000B130C FF 00 F0 90 */ fmr f24, f30
/* 800B54D0 000B1310 48 00 00 2C */ b lbl_800B54FC
.global lbl_800B54D4
lbl_800B54D4:
/* 800B54D4 000B1314 48 04 95 9D */ bl FrSqrt__Q24nw4r4mathFf
/* 800B54D8 000B1318 EC 5D C0 28 */ fsubs f2, f29, f24
/* 800B54DC 000B131C EC 13 04 F2 */ fmuls f0, f19, f19
/* 800B54E0 000B1320 EC 02 00 32 */ fmuls f0, f2, f0
/* 800B54E4 000B1324 EC 18 00 2A */ fadds f0, f24, f0
/* 800B54E8 000B1328 EF 00 00 72 */ fmuls f24, f0, f1
/* 800B54EC 000B132C 48 00 00 10 */ b lbl_800B54FC
.global lbl_800B54F0
lbl_800B54F0:
/* 800B54F0 000B1330 EC 1D C0 28 */ fsubs f0, f29, f24
/* 800B54F4 000B1334 EC 13 00 32 */ fmuls f0, f19, f0
/* 800B54F8 000B1338 EF 18 00 2A */ fadds f24, f24, f0
.global lbl_800B54FC
lbl_800B54FC:
/* 800B54FC 000B133C 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800B5500 000B1340 40 82 00 40 */ bne lbl_800B5540
/* 800B5504 000B1344 80 75 00 EC */ lwz r3, 0xec(r21)
/* 800B5508 000B1348 38 1F 43 FD */ addi r0, r31, 0x43fd
/* 800B550C 000B134C 7C 63 01 D6 */ mullw r3, r3, r0
/* 800B5510 000B1350 3C 63 00 27 */ addis r3, r3, 0x27
/* 800B5514 000B1354 38 03 9E C3 */ addi r0, r3, -0x613d
/* 800B5518 000B1358 90 15 00 EC */ stw r0, 0xec(r21)
/* 800B551C 000B135C 54 00 84 3E */ srwi r0, r0, 16
/* 800B5520 000B1360 90 01 00 6C */ stw r0, 0x6c(r1)
/* 800B5524 000B1364 C0 38 00 0C */ lfs f1, 0xc(r24)
/* 800B5528 000B1368 C8 41 00 68 */ lfd f2, 0x68(r1)
/* 800B552C 000B136C C0 18 00 08 */ lfs f0, 0x8(r24)
/* 800B5530 000B1370 EC 42 D0 28 */ fsubs f2, f2, f26
/* 800B5534 000B1374 EC 01 00 28 */ fsubs f0, f1, f0
/* 800B5538 000B1378 EC 22 D8 24 */ fdivs f1, f2, f27
/* 800B553C 000B137C EE C0 00 72 */ fmuls f22, f0, f1
.global lbl_800B5540
lbl_800B5540:
/* 800B5540 000B1380 EC 34 B0 2A */ fadds f1, f20, f22
/* 800B5544 000B1384 38 61 00 0C */ addi r3, r1, 0xc
/* 800B5548 000B1388 38 81 00 08 */ addi r4, r1, 0x8
/* 800B554C 000B138C 4B FF E5 75 */ bl PSSinCosRad__Q24nw4r2efFPfPff
/* 800B5550 000B1390 C0 01 00 08 */ lfs f0, 0x8(r1)
/* 800B5554 000B1394 C0 21 00 0C */ lfs f1, 0xc(r1)
/* 800B5558 000B1398 FC 40 00 50 */ fneg f2, f0
/* 800B555C 000B139C D0 21 00 40 */ stfs f1, 0x40(r1)
/* 800B5560 000B13A0 EC 21 06 32 */ fmuls f1, f1, f24
/* 800B5564 000B13A4 D3 C1 00 44 */ stfs f30, 0x44(r1)
/* 800B5568 000B13A8 FC 00 10 18 */ frsp f0, f2
/* 800B556C 000B13AC 80 81 00 40 */ lwz r4, 0x40(r1)
/* 800B5570 000B13B0 D0 41 00 48 */ stfs f2, 0x48(r1)
/* 800B5574 000B13B4 EC 39 00 72 */ fmuls f1, f25, f1
/* 800B5578 000B13B8 80 61 00 44 */ lwz r3, 0x44(r1)
/* 800B557C 000B13BC EC 00 06 32 */ fmuls f0, f0, f24
/* 800B5580 000B13C0 80 01 00 48 */ lwz r0, 0x48(r1)
/* 800B5584 000B13C4 D0 21 00 58 */ stfs f1, 0x58(r1)
/* 800B5588 000B13C8 EC 17 00 32 */ fmuls f0, f23, f0
/* 800B558C 000B13CC D3 C1 00 5C */ stfs f30, 0x5c(r1)
/* 800B5590 000B13D0 D0 01 00 60 */ stfs f0, 0x60(r1)
/* 800B5594 000B13D4 90 81 00 34 */ stw r4, 0x34(r1)
/* 800B5598 000B13D8 90 61 00 38 */ stw r3, 0x38(r1)
/* 800B559C 000B13DC 90 01 00 3C */ stw r0, 0x3c(r1)
/* 800B55A0 000B13E0 C0 15 00 78 */ lfs f0, 0x78(r21)
/* 800B55A4 000B13E4 FC 1E 00 00 */ fcmpu cr0, f30, f0
/* 800B55A8 000B13E8 40 82 00 14 */ bne lbl_800B55BC
/* 800B55AC 000B13EC D3 C1 00 28 */ stfs f30, 0x28(r1)
/* 800B55B0 000B13F0 D3 A1 00 2C */ stfs f29, 0x2c(r1)
/* 800B55B4 000B13F4 D3 C1 00 30 */ stfs f30, 0x30(r1)
/* 800B55B8 000B13F8 48 00 00 30 */ b lbl_800B55E8
.global lbl_800B55BC
lbl_800B55BC:
/* 800B55BC 000B13FC EC 38 00 32 */ fmuls f1, f24, f0
/* 800B55C0 000B1400 38 61 00 28 */ addi r3, r1, 0x28
/* 800B55C4 000B1404 4B FF E4 7D */ bl _PSSinCosRad__Q24nw4r2efFPff
/* 800B55C8 000B1408 C0 01 00 08 */ lfs f0, 0x8(r1)
/* 800B55CC 000B140C C0 21 00 28 */ lfs f1, 0x28(r1)
/* 800B55D0 000B1410 FC 40 00 50 */ fneg f2, f0
/* 800B55D4 000B1414 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 800B55D8 000B1418 EC 01 00 32 */ fmuls f0, f1, f0
/* 800B55DC 000B141C EC 22 00 72 */ fmuls f1, f2, f1
/* 800B55E0 000B1420 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 800B55E4 000B1424 D0 21 00 30 */ stfs f1, 0x30(r1)
.global lbl_800B55E8
lbl_800B55E8:
/* 800B55E8 000B1428 7E 83 A3 78 */ mr r3, r20
/* 800B55EC 000B142C 7E A5 AB 78 */ mr r5, r21
/* 800B55F0 000B1430 38 81 00 4C */ addi r4, r1, 0x4c
/* 800B55F4 000B1434 38 C1 00 58 */ addi r6, r1, 0x58
/* 800B55F8 000B1438 38 E1 00 28 */ addi r7, r1, 0x28
/* 800B55FC 000B143C 39 01 00 34 */ addi r8, r1, 0x34
/* 800B5600 000B1440 39 21 00 40 */ addi r9, r1, 0x40
/* 800B5604 000B1444 4B FF EA ED */ bl CalcVelocity__Q34nw4r2ef11EmitterFormCFPQ34nw4r4math4VEC3PQ34nw4r2ef7EmitterRCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3RCQ34nw4r4math4VEC3
/* 800B5608 000B1448 80 15 00 EC */ lwz r0, 0xec(r21)
/* 800B560C 000B144C FC 20 90 90 */ fmr f1, f18
/* 800B5610 000B1450 7E 83 A3 78 */ mr r3, r20
/* 800B5614 000B1454 7F 24 CB 78 */ mr r4, r25
/* 800B5618 000B1458 7C C0 F1 D6 */ mullw r6, r0, r30
/* 800B561C 000B145C 7E A5 AB 78 */ mr r5, r21
/* 800B5620 000B1460 3C C6 00 27 */ addis r6, r6, 0x27
/* 800B5624 000B1464 38 06 9E C3 */ addi r0, r6, -0x613d
/* 800B5628 000B1468 90 15 00 EC */ stw r0, 0xec(r21)
/* 800B562C 000B146C 54 00 84 3E */ srwi r0, r0, 16
/* 800B5630 000B1470 90 01 00 74 */ stw r0, 0x74(r1)
/* 800B5634 000B1474 81 41 00 4C */ lwz r10, 0x4c(r1)
/* 800B5638 000B1478 C8 01 00 70 */ lfd f0, 0x70(r1)
/* 800B563C 000B147C 81 21 00 50 */ lwz r9, 0x50(r1)
/* 800B5640 000B1480 EC 00 D0 28 */ fsubs f0, f0, f26
/* 800B5644 000B1484 81 01 00 54 */ lwz r8, 0x54(r1)
/* 800B5648 000B1488 80 E1 00 58 */ lwz r7, 0x58(r1)
/* 800B564C 000B148C 80 C1 00 5C */ lwz r6, 0x5c(r1)
/* 800B5650 000B1490 EE 60 D8 24 */ fdivs f19, f0, f27
/* 800B5654 000B1494 80 01 00 60 */ lwz r0, 0x60(r1)
/* 800B5658 000B1498 91 41 00 10 */ stw r10, 0x10(r1)
/* 800B565C 000B149C 91 21 00 14 */ stw r9, 0x14(r1)
/* 800B5660 000B14A0 91 01 00 18 */ stw r8, 0x18(r1)
/* 800B5664 000B14A4 90 E1 00 1C */ stw r7, 0x1c(r1)
/* 800B5668 000B14A8 90 C1 00 20 */ stw r6, 0x20(r1)
/* 800B566C 000B14AC 90 01 00 24 */ stw r0, 0x24(r1)
/* 800B5670 000B14B0 4B FF EF 41 */ bl CalcLife__Q34nw4r2ef11EmitterFormFUsfPQ34nw4r2ef7Emitter
/* 800B5674 000B14B4 88 15 00 67 */ lbz r0, 0x67(r21)
/* 800B5678 000B14B8 7C 64 1B 78 */ mr r4, r3
/* 800B567C 000B14BC 81 96 00 1C */ lwz r12, 0x1c(r22)
/* 800B5680 000B14C0 7E C3 B3 78 */ mr r3, r22
/* 800B5684 000B14C4 7C 00 07 74 */ extsb r0, r0
/* 800B5688 000B14C8 7F 47 D3 78 */ mr r7, r26
/* 800B568C 000B14CC 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 800B5690 000B14D0 90 01 00 6C */ stw r0, 0x6c(r1)
/* 800B5694 000B14D4 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 800B5698 000B14D8 54 84 04 3E */ clrlwi r4, r4, 16
/* 800B569C 000B14DC C8 01 00 68 */ lfd f0, 0x68(r1)
/* 800B56A0 000B14E0 38 A1 00 1C */ addi r5, r1, 0x1c
/* 800B56A4 000B14E4 38 C1 00 10 */ addi r6, r1, 0x10
/* 800B56A8 000B14E8 39 15 00 FC */ addi r8, r21, 0xfc
/* 800B56AC 000B14EC EC 00 F8 28 */ fsubs f0, f0, f31
/* 800B56B0 000B14F0 81 35 00 F8 */ lwz r9, 0xf8(r21)
/* 800B56B4 000B14F4 A1 55 00 E8 */ lhz r10, 0xe8(r21)
/* 800B56B8 000B14F8 EC 11 00 32 */ fmuls f0, f17, f0
/* 800B56BC 000B14FC EC 00 04 F2 */ fmuls f0, f0, f19
/* 800B56C0 000B1500 EC 3D 00 2A */ fadds f1, f29, f0
/* 800B56C4 000B1504 7D 89 03 A6 */ mtctr r12
/* 800B56C8 000B1508 4E 80 04 21 */ bctrl
/* 800B56CC 000B150C 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800B56D0 000B1510 41 82 00 08 */ beq lbl_800B56D8
/* 800B56D4 000B1514 EE D6 A8 2A */ fadds f22, f22, f21
.global lbl_800B56D8
lbl_800B56D8:
/* 800B56D8 000B1518 3B 7B 00 01 */ addi r27, r27, 0x1
.global lbl_800B56DC
lbl_800B56DC:
/* 800B56DC 000B151C 7C 1B B8 00 */ cmpw r27, r23
/* 800B56E0 000B1520 41 80 FD 98 */ blt lbl_800B5478
.global lbl_800B56E4
lbl_800B56E4:
/* 800B56E4 000B1524 39 61 00 B0 */ addi r11, r1, 0xb0
/* 800B56E8 000B1528 E3 E1 01 98 */ psq_l f31, 0x198(r1), 0, qr0
/* 800B56EC 000B152C CB E1 01 90 */ lfd f31, 0x190(r1)
/* 800B56F0 000B1530 E3 C1 01 88 */ psq_l f30, 0x188(r1), 0, qr0
/* 800B56F4 000B1534 CB C1 01 80 */ lfd f30, 0x180(r1)
/* 800B56F8 000B1538 E3 A1 01 78 */ psq_l f29, 0x178(r1), 0, qr0
/* 800B56FC 000B153C CB A1 01 70 */ lfd f29, 0x170(r1)
/* 800B5700 000B1540 E3 81 01 68 */ psq_l f28, 0x168(r1), 0, qr0
/* 800B5704 000B1544 CB 81 01 60 */ lfd f28, 0x160(r1)
/* 800B5708 000B1548 E3 61 01 58 */ psq_l f27, 0x158(r1), 0, qr0
/* 800B570C 000B154C CB 61 01 50 */ lfd f27, 0x150(r1)
/* 800B5710 000B1550 E3 41 01 48 */ psq_l f26, 0x148(r1), 0, qr0
/* 800B5714 000B1554 CB 41 01 40 */ lfd f26, 0x140(r1)
/* 800B5718 000B1558 E3 21 01 38 */ psq_l f25, 0x138(r1), 0, qr0
/* 800B571C 000B155C CB 21 01 30 */ lfd f25, 0x130(r1)
/* 800B5720 000B1560 E3 01 01 28 */ psq_l f24, 0x128(r1), 0, qr0
/* 800B5724 000B1564 CB 01 01 20 */ lfd f24, 0x120(r1)
/* 800B5728 000B1568 E2 E1 01 18 */ psq_l f23, 0x118(r1), 0, qr0
/* 800B572C 000B156C CA E1 01 10 */ lfd f23, 0x110(r1)
/* 800B5730 000B1570 E2 C1 01 08 */ psq_l f22, 0x108(r1), 0, qr0
/* 800B5734 000B1574 CA C1 01 00 */ lfd f22, 0x100(r1)
/* 800B5738 000B1578 E2 A1 00 F8 */ psq_l f21, 0xf8(r1), 0, qr0
/* 800B573C 000B157C CA A1 00 F0 */ lfd f21, 0xf0(r1)
/* 800B5740 000B1580 E2 81 00 E8 */ psq_l f20, 0xe8(r1), 0, qr0
/* 800B5744 000B1584 CA 81 00 E0 */ lfd f20, 0xe0(r1)
/* 800B5748 000B1588 E2 61 00 D8 */ psq_l f19, 0xd8(r1), 0, qr0
/* 800B574C 000B158C CA 61 00 D0 */ lfd f19, 0xd0(r1)
/* 800B5750 000B1590 E2 41 00 C8 */ psq_l f18, 0xc8(r1), 0, qr0
/* 800B5754 000B1594 CA 41 00 C0 */ lfd f18, 0xc0(r1)
/* 800B5758 000B1598 E2 21 00 B8 */ psq_l f17, 0xb8(r1), 0, qr0
/* 800B575C 000B159C CA 21 00 B0 */ lfd f17, 0xb0(r1)
/* 800B5760 000B15A0 4B F5 1C 0D */ bl lbl_8000736C
/* 800B5764 000B15A4 80 01 01 A4 */ lwz r0, 0x1a4(r1)
/* 800B5768 000B15A8 7C 08 03 A6 */ mtlr r0
/* 800B576C 000B15AC 38 21 01 A0 */ addi r1, r1, 0x1a0
/* 800B5770 000B15B0 4E 80 00 20 */ blr
/* 800B5774 000B15B4 00 00 00 00 */ .4byte 0x00000000
/* 800B5778 000B15B8 00 00 00 00 */ .4byte 0x00000000
/* 800B577C 000B15BC 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global __vt__Q34nw4r2ef15EmitterFormDisc
__vt__Q34nw4r2ef15EmitterFormDisc:
.4byte 0
.4byte 0
.4byte Emission__Q34nw4r2ef15EmitterFormDiscFPQ34nw4r2ef7EmitterPQ34nw4r2ef15ParticleManageriUlPfUsfPCQ34nw4r4math5MTX34
.4byte 0
.include "macros.inc"
.section .sdata2, "wa" # 0x8055DF80 - 0x805643C0 ; 0x00006440
.global "@7752_8055EB88"
"@7752_8055EB88":
.4byte 0x34000000
.global "@7753_8055EB8C"
"@7753_8055EB8C":
.4byte 0
.global "@7754_8055EB90"
"@7754_8055EB90":
.4byte 0x47800000
.global "@7755"
"@7755":
.4byte 0x40000000
.global "@7756"
"@7756":
.4byte 0x40490FDB
.4byte 0
.global "@7757"
"@7757":
.4byte 0x401921FB
.4byte 0x60000000
.global "@7758"
"@7758":
.4byte 0x39490FDB
.global "@7759"
"@7759":
.4byte 0x40C90E49
.global "@7760"
"@7760":
.4byte 0x42C80000
.global "@7761"
"@7761":
.4byte 0x3F800000
.global "@7762"
"@7762":
.4byte 0x3C23D70A
.4byte 0
.global "@7770_8055EBC0"
"@7770_8055EBC0":
.4byte 0x43300000
.4byte 0
.global "@7771_8055EBC8"
"@7771_8055EBC8":
.4byte 0x43300000
.4byte 0x80000000