donut-decomp/asm/libnw4r_g3d/g3d_calcvtx.s

593 lines
28 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global CalcVtx__Q24nw4r3g3dFQ34nw4r3g3d6ResMdlPQ34nw4r3g3d9AnmObjShpPPQ34nw4r3g3d13ResVtxPosDataPPQ34nw4r3g3d13ResVtxNrmDataPPQ34nw4r3g3d13ResVtxClrData
CalcVtx__Q24nw4r3g3dFQ34nw4r3g3d6ResMdlPQ34nw4r3g3d9AnmObjShpPPQ34nw4r3g3d13ResVtxPosDataPPQ34nw4r3g3d13ResVtxNrmDataPPQ34nw4r3g3d13ResVtxClrData:
/* 800F2410 000EE250 94 21 FA 60 */ stwu r1, -0x5a0(r1)
/* 800F2414 000EE254 7C 08 02 A6 */ mflr r0
/* 800F2418 000EE258 90 01 05 A4 */ stw r0, 0x5a4(r1)
/* 800F241C 000EE25C 39 61 05 90 */ addi r11, r1, 0x590
/* 800F2420 000EE260 DB E1 05 90 */ stfd f31, 0x590(r1)
/* 800F2424 000EE264 F3 E1 05 98 */ psq_st f31, 0x598(r1), 0, qr0
/* 800F2428 000EE268 4B F1 4E F1 */ bl lbl_80007318
/* 800F242C 000EE26C 7C 9C 23 78 */ mr r28, r4
/* 800F2430 000EE270 7C BD 2B 78 */ mr r29, r5
/* 800F2434 000EE274 7C DE 33 78 */ mr r30, r6
/* 800F2438 000EE278 7C FF 3B 78 */ mr r31, r7
/* 800F243C 000EE27C 4B FD 84 F5 */ bl GetResVtxPosNumEntries__Q34nw4r3g3d6ResMdlCFv
/* 800F2440 000EE280 C3 E2 91 90 */ lfs f31, "@7801"@sda21(r2)
/* 800F2444 000EE284 7C 76 1B 78 */ mr r22, r3
/* 800F2448 000EE288 3A A1 04 D8 */ addi r21, r1, 0x4d8
/* 800F244C 000EE28C 3B 21 05 58 */ addi r25, r1, 0x558
/* 800F2450 000EE290 3A E1 03 68 */ addi r23, r1, 0x368
/* 800F2454 000EE294 3A 80 00 00 */ li r20, 0x0
/* 800F2458 000EE298 3B 60 00 00 */ li r27, 0x0
/* 800F245C 000EE29C 3B 00 00 00 */ li r24, 0x0
/* 800F2460 000EE2A0 48 00 07 10 */ b lbl_800F2B70
.global lbl_800F2464
lbl_800F2464:
/* 800F2464 000EE2A4 7F 83 E3 78 */ mr r3, r28
/* 800F2468 000EE2A8 7E 84 A3 78 */ mr r4, r20
/* 800F246C 000EE2AC 4B FE 26 25 */ bl TestExistence__Q34nw4r3g3d12AnmObjMatClrCFUl
/* 800F2470 000EE2B0 2C 03 00 00 */ cmpwi r3, 0x0
/* 800F2474 000EE2B4 41 82 06 F4 */ beq lbl_800F2B68
/* 800F2478 000EE2B8 38 61 03 68 */ addi r3, r1, 0x368
/* 800F247C 000EE2BC 93 01 03 48 */ stw r24, 0x348(r1)
/* 800F2480 000EE2C0 7C 03 C8 40 */ cmplw r3, r25
/* 800F2484 000EE2C4 93 01 03 4C */ stw r24, 0x34c(r1)
/* 800F2488 000EE2C8 93 01 03 50 */ stw r24, 0x350(r1)
/* 800F248C 000EE2CC 93 01 03 58 */ stw r24, 0x358(r1)
/* 800F2490 000EE2D0 93 01 03 5C */ stw r24, 0x35c(r1)
/* 800F2494 000EE2D4 93 01 03 60 */ stw r24, 0x360(r1)
/* 800F2498 000EE2D8 40 80 00 D8 */ bge lbl_800F2570
/* 800F249C 000EE2DC 7C 17 C8 40 */ cmplw r23, r25
/* 800F24A0 000EE2E0 38 00 00 00 */ li r0, 0x0
/* 800F24A4 000EE2E4 38 80 00 00 */ li r4, 0x0
/* 800F24A8 000EE2E8 41 81 00 08 */ bgt lbl_800F24B0
/* 800F24AC 000EE2EC 38 80 00 01 */ li r4, 0x1
.global lbl_800F24B0
lbl_800F24B0:
/* 800F24B0 000EE2F0 2C 04 00 00 */ cmpwi r4, 0x0
/* 800F24B4 000EE2F4 41 82 00 08 */ beq lbl_800F24BC
/* 800F24B8 000EE2F8 38 00 00 01 */ li r0, 0x1
.global lbl_800F24BC
lbl_800F24BC:
/* 800F24BC 000EE2FC 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F24C0 000EE300 41 82 00 84 */ beq lbl_800F2544
/* 800F24C4 000EE304 38 15 00 7F */ addi r0, r21, 0x7f
/* 800F24C8 000EE308 7C 03 00 50 */ subf r0, r3, r0
/* 800F24CC 000EE30C 54 00 C9 FE */ srwi r0, r0, 7
/* 800F24D0 000EE310 7C 09 03 A6 */ mtctr r0
/* 800F24D4 000EE314 7C 03 A8 40 */ cmplw r3, r21
/* 800F24D8 000EE318 40 80 00 6C */ bge lbl_800F2544
.global lbl_800F24DC
lbl_800F24DC:
/* 800F24DC 000EE31C 93 03 00 00 */ stw r24, 0x0(r3)
/* 800F24E0 000EE320 93 03 00 04 */ stw r24, 0x4(r3)
/* 800F24E4 000EE324 93 03 00 08 */ stw r24, 0x8(r3)
/* 800F24E8 000EE328 93 03 00 10 */ stw r24, 0x10(r3)
/* 800F24EC 000EE32C 93 03 00 14 */ stw r24, 0x14(r3)
/* 800F24F0 000EE330 93 03 00 18 */ stw r24, 0x18(r3)
/* 800F24F4 000EE334 93 03 00 20 */ stw r24, 0x20(r3)
/* 800F24F8 000EE338 93 03 00 24 */ stw r24, 0x24(r3)
/* 800F24FC 000EE33C 93 03 00 28 */ stw r24, 0x28(r3)
/* 800F2500 000EE340 93 03 00 30 */ stw r24, 0x30(r3)
/* 800F2504 000EE344 93 03 00 34 */ stw r24, 0x34(r3)
/* 800F2508 000EE348 93 03 00 38 */ stw r24, 0x38(r3)
/* 800F250C 000EE34C 93 03 00 40 */ stw r24, 0x40(r3)
/* 800F2510 000EE350 93 03 00 44 */ stw r24, 0x44(r3)
/* 800F2514 000EE354 93 03 00 48 */ stw r24, 0x48(r3)
/* 800F2518 000EE358 93 03 00 50 */ stw r24, 0x50(r3)
/* 800F251C 000EE35C 93 03 00 54 */ stw r24, 0x54(r3)
/* 800F2520 000EE360 93 03 00 58 */ stw r24, 0x58(r3)
/* 800F2524 000EE364 93 03 00 60 */ stw r24, 0x60(r3)
/* 800F2528 000EE368 93 03 00 64 */ stw r24, 0x64(r3)
/* 800F252C 000EE36C 93 03 00 68 */ stw r24, 0x68(r3)
/* 800F2530 000EE370 93 03 00 70 */ stw r24, 0x70(r3)
/* 800F2534 000EE374 93 03 00 74 */ stw r24, 0x74(r3)
/* 800F2538 000EE378 93 03 00 78 */ stw r24, 0x78(r3)
/* 800F253C 000EE37C 38 63 00 80 */ addi r3, r3, 0x80
/* 800F2540 000EE380 42 00 FF 9C */ bdnz lbl_800F24DC
.global lbl_800F2544
lbl_800F2544:
/* 800F2544 000EE384 38 19 00 0F */ addi r0, r25, 0xf
/* 800F2548 000EE388 7C 03 00 50 */ subf r0, r3, r0
/* 800F254C 000EE38C 54 00 E1 3E */ srwi r0, r0, 4
/* 800F2550 000EE390 7C 09 03 A6 */ mtctr r0
/* 800F2554 000EE394 7C 03 C8 40 */ cmplw r3, r25
/* 800F2558 000EE398 40 80 00 18 */ bge lbl_800F2570
.global lbl_800F255C
lbl_800F255C:
/* 800F255C 000EE39C 93 03 00 00 */ stw r24, 0x0(r3)
/* 800F2560 000EE3A0 93 03 00 04 */ stw r24, 0x4(r3)
/* 800F2564 000EE3A4 93 03 00 08 */ stw r24, 0x8(r3)
/* 800F2568 000EE3A8 38 63 00 10 */ addi r3, r3, 0x10
/* 800F256C 000EE3AC 42 00 FF F0 */ bdnz lbl_800F255C
.global lbl_800F2570
lbl_800F2570:
/* 800F2570 000EE3B0 81 9C 00 00 */ lwz r12, 0x0(r28)
/* 800F2574 000EE3B4 7F 83 E3 78 */ mr r3, r28
/* 800F2578 000EE3B8 7E 85 A3 78 */ mr r5, r20
/* 800F257C 000EE3BC 38 81 03 40 */ addi r4, r1, 0x340
/* 800F2580 000EE3C0 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 800F2584 000EE3C4 7D 89 03 A6 */ mtctr r12
/* 800F2588 000EE3C8 4E 80 04 21 */ bctrl
/* 800F258C 000EE3CC 80 83 00 00 */ lwz r4, 0x0(r3)
/* 800F2590 000EE3D0 7C 73 1B 78 */ mr r19, r3
/* 800F2594 000EE3D4 54 80 07 FF */ clrlwi. r0, r4, 31
/* 800F2598 000EE3D8 41 82 05 D0 */ beq lbl_800F2B68
/* 800F259C 000EE3DC 54 80 07 BD */ rlwinm. r0, r4, 0, 30, 30
/* 800F25A0 000EE3E0 41 82 02 18 */ beq lbl_800F27B8
/* 800F25A4 000EE3E4 80 03 00 08 */ lwz r0, 0x8(r3)
/* 800F25A8 000EE3E8 38 80 00 00 */ li r4, 0x0
/* 800F25AC 000EE3EC 90 01 00 20 */ stw r0, 0x20(r1)
/* 800F25B0 000EE3F0 3A 40 00 00 */ li r18, 0x0
/* 800F25B4 000EE3F4 7F 5D D8 2E */ lwzx r26, r29, r27
/* 800F25B8 000EE3F8 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 800F25BC 000EE3FC 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F25C0 000EE400 41 82 00 08 */ beq lbl_800F25C8
/* 800F25C4 000EE404 7E 5A 02 14 */ add r18, r26, r0
.global lbl_800F25C8
lbl_800F25C8:
/* 800F25C8 000EE408 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 800F25CC 000EE40C FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800F25D0 000EE410 41 82 00 28 */ beq lbl_800F25F8
/* 800F25D4 000EE414 38 61 00 20 */ addi r3, r1, 0x20
/* 800F25D8 000EE418 38 81 00 1C */ addi r4, r1, 0x1c
/* 800F25DC 000EE41C 38 A1 00 0A */ addi r5, r1, 0xa
/* 800F25E0 000EE420 4B FD BE 51 */ bl GetArray__Q34nw4r3g3d9ResVtxPosCFPPCvPUc
/* 800F25E4 000EE424 80 01 00 1C */ lwz r0, 0x1c(r1)
/* 800F25E8 000EE428 38 80 00 01 */ li r4, 0x1
/* 800F25EC 000EE42C 90 01 02 38 */ stw r0, 0x238(r1)
/* 800F25F0 000EE430 C0 13 00 14 */ lfs f0, 0x14(r19)
/* 800F25F4 000EE434 D0 01 02 3C */ stfs f0, 0x23c(r1)
.global lbl_800F25F8
lbl_800F25F8:
/* 800F25F8 000EE438 54 80 18 38 */ slwi r0, r4, 3
/* 800F25FC 000EE43C 38 E1 02 38 */ addi r7, r1, 0x238
/* 800F2600 000EE440 7E 65 9B 78 */ mr r5, r19
/* 800F2604 000EE444 38 D3 00 18 */ addi r6, r19, 0x18
/* 800F2608 000EE448 7C E7 02 14 */ add r7, r7, r0
/* 800F260C 000EE44C 39 20 00 00 */ li r9, 0x0
/* 800F2610 000EE450 48 00 00 4C */ b lbl_800F265C
/* 800F2614 000EE454 60 00 00 00 */ nop
.global lbl_800F2618
lbl_800F2618:
/* 800F2618 000EE458 C0 05 00 24 */ lfs f0, 0x24(r5)
/* 800F261C 000EE45C FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800F2620 000EE460 41 82 00 30 */ beq lbl_800F2650
/* 800F2624 000EE464 80 66 00 00 */ lwz r3, 0x0(r6)
/* 800F2628 000EE468 38 00 00 00 */ li r0, 0x0
/* 800F262C 000EE46C 81 03 00 08 */ lwz r8, 0x8(r3)
/* 800F2630 000EE470 2C 08 00 00 */ cmpwi r8, 0x0
/* 800F2634 000EE474 41 82 00 08 */ beq lbl_800F263C
/* 800F2638 000EE478 7C 03 42 14 */ add r0, r3, r8
.global lbl_800F263C
lbl_800F263C:
/* 800F263C 000EE47C 90 07 00 00 */ stw r0, 0x0(r7)
/* 800F2640 000EE480 38 84 00 01 */ addi r4, r4, 0x1
/* 800F2644 000EE484 C0 05 00 24 */ lfs f0, 0x24(r5)
/* 800F2648 000EE488 D0 07 00 04 */ stfs f0, 0x4(r7)
/* 800F264C 000EE48C 38 E7 00 08 */ addi r7, r7, 0x8
.global lbl_800F2650
lbl_800F2650:
/* 800F2650 000EE490 38 A5 00 10 */ addi r5, r5, 0x10
/* 800F2654 000EE494 38 C6 00 10 */ addi r6, r6, 0x10
/* 800F2658 000EE498 39 29 00 01 */ addi r9, r9, 0x1
.global lbl_800F265C
lbl_800F265C:
/* 800F265C 000EE49C 80 13 00 04 */ lwz r0, 0x4(r19)
/* 800F2660 000EE4A0 7C 09 00 00 */ cmpw r9, r0
/* 800F2664 000EE4A4 41 80 FF B4 */ blt lbl_800F2618
/* 800F2668 000EE4A8 80 61 00 20 */ lwz r3, 0x20(r1)
/* 800F266C 000EE4AC 54 80 18 38 */ slwi r0, r4, 3
/* 800F2670 000EE4B0 38 E1 02 38 */ addi r7, r1, 0x238
/* 800F2674 000EE4B4 A0 A3 00 1E */ lhz r5, 0x1e(r3)
/* 800F2678 000EE4B8 7C E7 02 14 */ add r7, r7, r0
/* 800F267C 000EE4BC 1C 05 00 0C */ mulli r0, r5, 0xc
/* 800F2680 000EE4C0 7C D2 02 14 */ add r6, r18, r0
/* 800F2684 000EE4C4 48 00 01 10 */ b lbl_800F2794
.global lbl_800F2688
lbl_800F2688:
/* 800F2688 000EE4C8 80 81 02 38 */ lwz r4, 0x238(r1)
/* 800F268C 000EE4CC 39 01 02 40 */ addi r8, r1, 0x240
/* 800F2690 000EE4D0 38 67 00 07 */ addi r3, r7, 0x7
/* 800F2694 000EE4D4 C0 41 02 3C */ lfs f2, 0x23c(r1)
/* 800F2698 000EE4D8 E0 04 00 00 */ psq_l f0, 0x0(r4), 0, qr0
/* 800F269C 000EE4DC 7C 68 18 50 */ subf r3, r8, r3
/* 800F26A0 000EE4E0 E0 24 80 08 */ psq_l f1, 0x8(r4), 1, qr0
/* 800F26A4 000EE4E4 38 04 00 0C */ addi r0, r4, 0xc
/* 800F26A8 000EE4E8 7C 08 38 40 */ cmplw r8, r7
/* 800F26AC 000EE4EC 10 00 00 B2 */ ps_mul f0, f0, f2
/* 800F26B0 000EE4F0 10 21 00 B2 */ ps_mul f1, f1, f2
/* 800F26B4 000EE4F4 90 01 02 38 */ stw r0, 0x238(r1)
/* 800F26B8 000EE4F8 54 63 E8 FE */ srwi r3, r3, 3
/* 800F26BC 000EE4FC 40 80 00 CC */ bge lbl_800F2788
/* 800F26C0 000EE500 54 60 F0 BF */ srwi. r0, r3, 2
/* 800F26C4 000EE504 7C 09 03 A6 */ mtctr r0
/* 800F26C8 000EE508 41 82 00 94 */ beq lbl_800F275C
.global lbl_800F26CC
lbl_800F26CC:
/* 800F26CC 000EE50C 80 88 00 00 */ lwz r4, 0x0(r8)
/* 800F26D0 000EE510 C0 48 00 04 */ lfs f2, 0x4(r8)
/* 800F26D4 000EE514 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F26D8 000EE518 38 04 00 0C */ addi r0, r4, 0xc
/* 800F26DC 000EE51C E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F26E0 000EE520 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F26E4 000EE524 90 08 00 00 */ stw r0, 0x0(r8)
/* 800F26E8 000EE528 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F26EC 000EE52C 80 88 00 08 */ lwz r4, 0x8(r8)
/* 800F26F0 000EE530 C0 48 00 0C */ lfs f2, 0xc(r8)
/* 800F26F4 000EE534 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F26F8 000EE538 38 04 00 0C */ addi r0, r4, 0xc
/* 800F26FC 000EE53C E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2700 000EE540 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2704 000EE544 90 08 00 08 */ stw r0, 0x8(r8)
/* 800F2708 000EE548 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F270C 000EE54C 80 88 00 10 */ lwz r4, 0x10(r8)
/* 800F2710 000EE550 C0 48 00 14 */ lfs f2, 0x14(r8)
/* 800F2714 000EE554 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F2718 000EE558 38 04 00 0C */ addi r0, r4, 0xc
/* 800F271C 000EE55C E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2720 000EE560 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2724 000EE564 90 08 00 10 */ stw r0, 0x10(r8)
/* 800F2728 000EE568 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F272C 000EE56C 80 88 00 18 */ lwz r4, 0x18(r8)
/* 800F2730 000EE570 C0 48 00 1C */ lfs f2, 0x1c(r8)
/* 800F2734 000EE574 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F2738 000EE578 38 04 00 0C */ addi r0, r4, 0xc
/* 800F273C 000EE57C E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2740 000EE580 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2744 000EE584 90 08 00 18 */ stw r0, 0x18(r8)
/* 800F2748 000EE588 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F274C 000EE58C 39 08 00 20 */ addi r8, r8, 0x20
/* 800F2750 000EE590 42 00 FF 7C */ bdnz lbl_800F26CC
/* 800F2754 000EE594 70 63 00 03 */ andi. r3, r3, 0x3
/* 800F2758 000EE598 41 82 00 30 */ beq lbl_800F2788
.global lbl_800F275C
lbl_800F275C:
/* 800F275C 000EE59C 7C 69 03 A6 */ mtctr r3
.global lbl_800F2760
lbl_800F2760:
/* 800F2760 000EE5A0 80 88 00 00 */ lwz r4, 0x0(r8)
/* 800F2764 000EE5A4 C0 48 00 04 */ lfs f2, 0x4(r8)
/* 800F2768 000EE5A8 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F276C 000EE5AC 38 04 00 0C */ addi r0, r4, 0xc
/* 800F2770 000EE5B0 E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2774 000EE5B4 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2778 000EE5B8 90 08 00 00 */ stw r0, 0x0(r8)
/* 800F277C 000EE5BC 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F2780 000EE5C0 39 08 00 08 */ addi r8, r8, 0x8
/* 800F2784 000EE5C4 42 00 FF DC */ bdnz lbl_800F2760
.global lbl_800F2788
lbl_800F2788:
/* 800F2788 000EE5C8 F0 12 00 00 */ psq_st f0, 0x0(r18), 0, qr0
/* 800F278C 000EE5CC F0 32 80 08 */ psq_st f1, 0x8(r18), 1, qr0
/* 800F2790 000EE5D0 3A 52 00 0C */ addi r18, r18, 0xc
.global lbl_800F2794
lbl_800F2794:
/* 800F2794 000EE5D4 7C 12 30 40 */ cmplw r18, r6
/* 800F2798 000EE5D8 41 80 FE F0 */ blt lbl_800F2688
/* 800F279C 000EE5DC 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 800F27A0 000EE5E0 38 60 00 00 */ li r3, 0x0
/* 800F27A4 000EE5E4 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F27A8 000EE5E8 41 82 00 08 */ beq lbl_800F27B0
/* 800F27AC 000EE5EC 7C 7A 02 14 */ add r3, r26, r0
.global lbl_800F27B0
lbl_800F27B0:
/* 800F27B0 000EE5F0 1C 85 00 0C */ mulli r4, r5, 0xc
/* 800F27B4 000EE5F4 4B F2 A1 FD */ bl DCStoreRange
.global lbl_800F27B8
lbl_800F27B8:
/* 800F27B8 000EE5F8 80 13 00 00 */ lwz r0, 0x0(r19)
/* 800F27BC 000EE5FC 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 800F27C0 000EE600 41 82 02 1C */ beq lbl_800F29DC
/* 800F27C4 000EE604 2C 1E 00 00 */ cmpwi r30, 0x0
/* 800F27C8 000EE608 41 82 02 14 */ beq lbl_800F29DC
/* 800F27CC 000EE60C 80 93 00 0C */ lwz r4, 0xc(r19)
/* 800F27D0 000EE610 38 60 00 00 */ li r3, 0x0
/* 800F27D4 000EE614 90 81 00 18 */ stw r4, 0x18(r1)
/* 800F27D8 000EE618 3A 40 00 00 */ li r18, 0x0
/* 800F27DC 000EE61C 80 04 00 10 */ lwz r0, 0x10(r4)
/* 800F27E0 000EE620 54 00 10 3A */ slwi r0, r0, 2
/* 800F27E4 000EE624 7F 5E 00 2E */ lwzx r26, r30, r0
/* 800F27E8 000EE628 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 800F27EC 000EE62C 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F27F0 000EE630 41 82 00 08 */ beq lbl_800F27F8
/* 800F27F4 000EE634 7E 5A 02 14 */ add r18, r26, r0
.global lbl_800F27F8
lbl_800F27F8:
/* 800F27F8 000EE638 C0 13 00 14 */ lfs f0, 0x14(r19)
/* 800F27FC 000EE63C FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800F2800 000EE640 41 82 00 28 */ beq lbl_800F2828
/* 800F2804 000EE644 38 61 00 18 */ addi r3, r1, 0x18
/* 800F2808 000EE648 38 81 00 14 */ addi r4, r1, 0x14
/* 800F280C 000EE64C 38 A1 00 09 */ addi r5, r1, 0x9
/* 800F2810 000EE650 4B FD BC 21 */ bl GetArray__Q34nw4r3g3d9ResVtxPosCFPPCvPUc
/* 800F2814 000EE654 80 01 00 14 */ lwz r0, 0x14(r1)
/* 800F2818 000EE658 38 60 00 01 */ li r3, 0x1
/* 800F281C 000EE65C 90 01 01 30 */ stw r0, 0x130(r1)
/* 800F2820 000EE660 C0 13 00 14 */ lfs f0, 0x14(r19)
/* 800F2824 000EE664 D0 01 01 34 */ stfs f0, 0x134(r1)
.global lbl_800F2828
lbl_800F2828:
/* 800F2828 000EE668 54 60 18 38 */ slwi r0, r3, 3
/* 800F282C 000EE66C 38 C1 01 30 */ addi r6, r1, 0x130
/* 800F2830 000EE670 7E 65 9B 78 */ mr r5, r19
/* 800F2834 000EE674 39 00 00 00 */ li r8, 0x0
/* 800F2838 000EE678 7C C6 02 14 */ add r6, r6, r0
/* 800F283C 000EE67C 48 00 00 44 */ b lbl_800F2880
.global lbl_800F2840
lbl_800F2840:
/* 800F2840 000EE680 C0 05 00 24 */ lfs f0, 0x24(r5)
/* 800F2844 000EE684 FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800F2848 000EE688 41 82 00 30 */ beq lbl_800F2878
/* 800F284C 000EE68C 80 85 00 1C */ lwz r4, 0x1c(r5)
/* 800F2850 000EE690 38 00 00 00 */ li r0, 0x0
/* 800F2854 000EE694 80 E4 00 08 */ lwz r7, 0x8(r4)
/* 800F2858 000EE698 2C 07 00 00 */ cmpwi r7, 0x0
/* 800F285C 000EE69C 41 82 00 08 */ beq lbl_800F2864
/* 800F2860 000EE6A0 7C 04 3A 14 */ add r0, r4, r7
.global lbl_800F2864
lbl_800F2864:
/* 800F2864 000EE6A4 90 06 00 00 */ stw r0, 0x0(r6)
/* 800F2868 000EE6A8 38 63 00 01 */ addi r3, r3, 0x1
/* 800F286C 000EE6AC C0 05 00 24 */ lfs f0, 0x24(r5)
/* 800F2870 000EE6B0 D0 06 00 04 */ stfs f0, 0x4(r6)
/* 800F2874 000EE6B4 38 C6 00 08 */ addi r6, r6, 0x8
.global lbl_800F2878
lbl_800F2878:
/* 800F2878 000EE6B8 38 A5 00 10 */ addi r5, r5, 0x10
/* 800F287C 000EE6BC 39 08 00 01 */ addi r8, r8, 0x1
.global lbl_800F2880
lbl_800F2880:
/* 800F2880 000EE6C0 80 13 00 04 */ lwz r0, 0x4(r19)
/* 800F2884 000EE6C4 7C 08 00 00 */ cmpw r8, r0
/* 800F2888 000EE6C8 41 80 FF B8 */ blt lbl_800F2840
/* 800F288C 000EE6CC 80 81 00 18 */ lwz r4, 0x18(r1)
/* 800F2890 000EE6D0 54 60 18 38 */ slwi r0, r3, 3
/* 800F2894 000EE6D4 38 E1 01 30 */ addi r7, r1, 0x130
/* 800F2898 000EE6D8 A0 A4 00 1E */ lhz r5, 0x1e(r4)
/* 800F289C 000EE6DC 7C E7 02 14 */ add r7, r7, r0
/* 800F28A0 000EE6E0 1C 05 00 0C */ mulli r0, r5, 0xc
/* 800F28A4 000EE6E4 7C D2 02 14 */ add r6, r18, r0
/* 800F28A8 000EE6E8 48 00 01 10 */ b lbl_800F29B8
.global lbl_800F28AC
lbl_800F28AC:
/* 800F28AC 000EE6EC 80 81 01 30 */ lwz r4, 0x130(r1)
/* 800F28B0 000EE6F0 39 01 01 38 */ addi r8, r1, 0x138
/* 800F28B4 000EE6F4 38 67 00 07 */ addi r3, r7, 0x7
/* 800F28B8 000EE6F8 C0 41 01 34 */ lfs f2, 0x134(r1)
/* 800F28BC 000EE6FC E0 04 00 00 */ psq_l f0, 0x0(r4), 0, qr0
/* 800F28C0 000EE700 7C 68 18 50 */ subf r3, r8, r3
/* 800F28C4 000EE704 E0 24 80 08 */ psq_l f1, 0x8(r4), 1, qr0
/* 800F28C8 000EE708 38 04 00 0C */ addi r0, r4, 0xc
/* 800F28CC 000EE70C 7C 08 38 40 */ cmplw r8, r7
/* 800F28D0 000EE710 10 00 00 B2 */ ps_mul f0, f0, f2
/* 800F28D4 000EE714 10 21 00 B2 */ ps_mul f1, f1, f2
/* 800F28D8 000EE718 90 01 01 30 */ stw r0, 0x130(r1)
/* 800F28DC 000EE71C 54 63 E8 FE */ srwi r3, r3, 3
/* 800F28E0 000EE720 40 80 00 CC */ bge lbl_800F29AC
/* 800F28E4 000EE724 54 60 F0 BF */ srwi. r0, r3, 2
/* 800F28E8 000EE728 7C 09 03 A6 */ mtctr r0
/* 800F28EC 000EE72C 41 82 00 94 */ beq lbl_800F2980
.global lbl_800F28F0
lbl_800F28F0:
/* 800F28F0 000EE730 80 88 00 00 */ lwz r4, 0x0(r8)
/* 800F28F4 000EE734 C0 48 00 04 */ lfs f2, 0x4(r8)
/* 800F28F8 000EE738 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F28FC 000EE73C 38 04 00 0C */ addi r0, r4, 0xc
/* 800F2900 000EE740 E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2904 000EE744 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2908 000EE748 90 08 00 00 */ stw r0, 0x0(r8)
/* 800F290C 000EE74C 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F2910 000EE750 80 88 00 08 */ lwz r4, 0x8(r8)
/* 800F2914 000EE754 C0 48 00 0C */ lfs f2, 0xc(r8)
/* 800F2918 000EE758 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F291C 000EE75C 38 04 00 0C */ addi r0, r4, 0xc
/* 800F2920 000EE760 E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2924 000EE764 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2928 000EE768 90 08 00 08 */ stw r0, 0x8(r8)
/* 800F292C 000EE76C 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F2930 000EE770 80 88 00 10 */ lwz r4, 0x10(r8)
/* 800F2934 000EE774 C0 48 00 14 */ lfs f2, 0x14(r8)
/* 800F2938 000EE778 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F293C 000EE77C 38 04 00 0C */ addi r0, r4, 0xc
/* 800F2940 000EE780 E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2944 000EE784 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2948 000EE788 90 08 00 10 */ stw r0, 0x10(r8)
/* 800F294C 000EE78C 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F2950 000EE790 80 88 00 18 */ lwz r4, 0x18(r8)
/* 800F2954 000EE794 C0 48 00 1C */ lfs f2, 0x1c(r8)
/* 800F2958 000EE798 E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F295C 000EE79C 38 04 00 0C */ addi r0, r4, 0xc
/* 800F2960 000EE7A0 E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2964 000EE7A4 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2968 000EE7A8 90 08 00 18 */ stw r0, 0x18(r8)
/* 800F296C 000EE7AC 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F2970 000EE7B0 39 08 00 20 */ addi r8, r8, 0x20
/* 800F2974 000EE7B4 42 00 FF 7C */ bdnz lbl_800F28F0
/* 800F2978 000EE7B8 70 63 00 03 */ andi. r3, r3, 0x3
/* 800F297C 000EE7BC 41 82 00 30 */ beq lbl_800F29AC
.global lbl_800F2980
lbl_800F2980:
/* 800F2980 000EE7C0 7C 69 03 A6 */ mtctr r3
.global lbl_800F2984
lbl_800F2984:
/* 800F2984 000EE7C4 80 88 00 00 */ lwz r4, 0x0(r8)
/* 800F2988 000EE7C8 C0 48 00 04 */ lfs f2, 0x4(r8)
/* 800F298C 000EE7CC E0 64 00 00 */ psq_l f3, 0x0(r4), 0, qr0
/* 800F2990 000EE7D0 38 04 00 0C */ addi r0, r4, 0xc
/* 800F2994 000EE7D4 E0 84 80 08 */ psq_l f4, 0x8(r4), 1, qr0
/* 800F2998 000EE7D8 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F299C 000EE7DC 90 08 00 00 */ stw r0, 0x0(r8)
/* 800F29A0 000EE7E0 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F29A4 000EE7E4 39 08 00 08 */ addi r8, r8, 0x8
/* 800F29A8 000EE7E8 42 00 FF DC */ bdnz lbl_800F2984
.global lbl_800F29AC
lbl_800F29AC:
/* 800F29AC 000EE7EC F0 12 00 00 */ psq_st f0, 0x0(r18), 0, qr0
/* 800F29B0 000EE7F0 F0 32 80 08 */ psq_st f1, 0x8(r18), 1, qr0
/* 800F29B4 000EE7F4 3A 52 00 0C */ addi r18, r18, 0xc
.global lbl_800F29B8
lbl_800F29B8:
/* 800F29B8 000EE7F8 7C 12 30 40 */ cmplw r18, r6
/* 800F29BC 000EE7FC 41 80 FE F0 */ blt lbl_800F28AC
/* 800F29C0 000EE800 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 800F29C4 000EE804 38 60 00 00 */ li r3, 0x0
/* 800F29C8 000EE808 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F29CC 000EE80C 41 82 00 08 */ beq lbl_800F29D4
/* 800F29D0 000EE810 7C 7A 02 14 */ add r3, r26, r0
.global lbl_800F29D4
lbl_800F29D4:
/* 800F29D4 000EE814 1C 85 00 0C */ mulli r4, r5, 0xc
/* 800F29D8 000EE818 4B F2 9F D9 */ bl DCStoreRange
.global lbl_800F29DC
lbl_800F29DC:
/* 800F29DC 000EE81C 80 13 00 00 */ lwz r0, 0x0(r19)
/* 800F29E0 000EE820 54 00 07 39 */ rlwinm. r0, r0, 0, 28, 28
/* 800F29E4 000EE824 41 82 01 84 */ beq lbl_800F2B68
/* 800F29E8 000EE828 2C 1F 00 00 */ cmpwi r31, 0x0
/* 800F29EC 000EE82C 41 82 01 7C */ beq lbl_800F2B68
/* 800F29F0 000EE830 80 93 00 10 */ lwz r4, 0x10(r19)
/* 800F29F4 000EE834 38 60 00 00 */ li r3, 0x0
/* 800F29F8 000EE838 90 81 00 10 */ stw r4, 0x10(r1)
/* 800F29FC 000EE83C 3A 40 00 00 */ li r18, 0x0
/* 800F2A00 000EE840 80 04 00 10 */ lwz r0, 0x10(r4)
/* 800F2A04 000EE844 54 00 10 3A */ slwi r0, r0, 2
/* 800F2A08 000EE848 7F 5F 00 2E */ lwzx r26, r31, r0
/* 800F2A0C 000EE84C 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 800F2A10 000EE850 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F2A14 000EE854 41 82 00 08 */ beq lbl_800F2A1C
/* 800F2A18 000EE858 7E 5A 02 14 */ add r18, r26, r0
.global lbl_800F2A1C
lbl_800F2A1C:
/* 800F2A1C 000EE85C C0 13 00 14 */ lfs f0, 0x14(r19)
/* 800F2A20 000EE860 FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800F2A24 000EE864 41 82 00 28 */ beq lbl_800F2A4C
/* 800F2A28 000EE868 38 61 00 10 */ addi r3, r1, 0x10
/* 800F2A2C 000EE86C 38 81 00 0C */ addi r4, r1, 0xc
/* 800F2A30 000EE870 38 A1 00 08 */ addi r5, r1, 0x8
/* 800F2A34 000EE874 4B FD BB 1D */ bl GetArray__Q34nw4r3g3d9ResVtxClrCFPPCvPUc
/* 800F2A38 000EE878 80 01 00 0C */ lwz r0, 0xc(r1)
/* 800F2A3C 000EE87C 38 60 00 01 */ li r3, 0x1
/* 800F2A40 000EE880 90 01 00 28 */ stw r0, 0x28(r1)
/* 800F2A44 000EE884 C0 13 00 14 */ lfs f0, 0x14(r19)
/* 800F2A48 000EE888 D0 01 00 2C */ stfs f0, 0x2c(r1)
.global lbl_800F2A4C
lbl_800F2A4C:
/* 800F2A4C 000EE88C 54 60 18 38 */ slwi r0, r3, 3
/* 800F2A50 000EE890 38 C1 00 28 */ addi r6, r1, 0x28
/* 800F2A54 000EE894 7E 65 9B 78 */ mr r5, r19
/* 800F2A58 000EE898 39 00 00 00 */ li r8, 0x0
/* 800F2A5C 000EE89C 7C C6 02 14 */ add r6, r6, r0
/* 800F2A60 000EE8A0 48 00 00 48 */ b lbl_800F2AA8
/* 800F2A64 000EE8A4 60 00 00 00 */ nop
.global lbl_800F2A68
lbl_800F2A68:
/* 800F2A68 000EE8A8 C0 05 00 24 */ lfs f0, 0x24(r5)
/* 800F2A6C 000EE8AC FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800F2A70 000EE8B0 41 82 00 30 */ beq lbl_800F2AA0
/* 800F2A74 000EE8B4 80 85 00 20 */ lwz r4, 0x20(r5)
/* 800F2A78 000EE8B8 38 00 00 00 */ li r0, 0x0
/* 800F2A7C 000EE8BC 80 E4 00 08 */ lwz r7, 0x8(r4)
/* 800F2A80 000EE8C0 2C 07 00 00 */ cmpwi r7, 0x0
/* 800F2A84 000EE8C4 41 82 00 08 */ beq lbl_800F2A8C
/* 800F2A88 000EE8C8 7C 04 3A 14 */ add r0, r4, r7
.global lbl_800F2A8C
lbl_800F2A8C:
/* 800F2A8C 000EE8CC 90 06 00 00 */ stw r0, 0x0(r6)
/* 800F2A90 000EE8D0 38 63 00 01 */ addi r3, r3, 0x1
/* 800F2A94 000EE8D4 C0 05 00 24 */ lfs f0, 0x24(r5)
/* 800F2A98 000EE8D8 D0 06 00 04 */ stfs f0, 0x4(r6)
/* 800F2A9C 000EE8DC 38 C6 00 08 */ addi r6, r6, 0x8
.global lbl_800F2AA0
lbl_800F2AA0:
/* 800F2AA0 000EE8E0 38 A5 00 10 */ addi r5, r5, 0x10
/* 800F2AA4 000EE8E4 39 08 00 01 */ addi r8, r8, 0x1
.global lbl_800F2AA8
lbl_800F2AA8:
/* 800F2AA8 000EE8E8 80 13 00 04 */ lwz r0, 0x4(r19)
/* 800F2AAC 000EE8EC 7C 08 00 00 */ cmpw r8, r0
/* 800F2AB0 000EE8F0 41 80 FF B8 */ blt lbl_800F2A68
/* 800F2AB4 000EE8F4 80 81 00 10 */ lwz r4, 0x10(r1)
/* 800F2AB8 000EE8F8 54 60 18 38 */ slwi r0, r3, 3
/* 800F2ABC 000EE8FC 38 C1 00 28 */ addi r6, r1, 0x28
/* 800F2AC0 000EE900 A0 84 00 1E */ lhz r4, 0x1e(r4)
/* 800F2AC4 000EE904 7C C6 02 14 */ add r6, r6, r0
/* 800F2AC8 000EE908 54 80 10 3A */ slwi r0, r4, 2
/* 800F2ACC 000EE90C 7C B2 02 14 */ add r5, r18, r0
/* 800F2AD0 000EE910 48 00 00 74 */ b lbl_800F2B44
.global lbl_800F2AD4
lbl_800F2AD4:
/* 800F2AD4 000EE914 80 61 00 28 */ lwz r3, 0x28(r1)
/* 800F2AD8 000EE918 C0 41 00 2C */ lfs f2, 0x2c(r1)
/* 800F2ADC 000EE91C E0 03 20 00 */ psq_l f0, 0x0(r3), 0, qr2
/* 800F2AE0 000EE920 E0 23 20 02 */ psq_l f1, 0x2(r3), 0, qr2
/* 800F2AE4 000EE924 38 E1 00 30 */ addi r7, r1, 0x30
/* 800F2AE8 000EE928 38 06 00 07 */ addi r0, r6, 0x7
/* 800F2AEC 000EE92C 38 63 00 04 */ addi r3, r3, 0x4
/* 800F2AF0 000EE930 7C 07 00 50 */ subf r0, r7, r0
/* 800F2AF4 000EE934 90 61 00 28 */ stw r3, 0x28(r1)
/* 800F2AF8 000EE938 54 00 E8 FE */ srwi r0, r0, 3
/* 800F2AFC 000EE93C 10 00 00 B2 */ ps_mul f0, f0, f2
/* 800F2B00 000EE940 10 21 00 B2 */ ps_mul f1, f1, f2
/* 800F2B04 000EE944 7C 09 03 A6 */ mtctr r0
/* 800F2B08 000EE948 7C 07 30 40 */ cmplw r7, r6
/* 800F2B0C 000EE94C 40 80 00 2C */ bge lbl_800F2B38
.global lbl_800F2B10
lbl_800F2B10:
/* 800F2B10 000EE950 80 67 00 00 */ lwz r3, 0x0(r7)
/* 800F2B14 000EE954 C0 47 00 04 */ lfs f2, 0x4(r7)
/* 800F2B18 000EE958 E0 63 20 00 */ psq_l f3, 0x0(r3), 0, qr2
/* 800F2B1C 000EE95C E0 83 20 02 */ psq_l f4, 0x2(r3), 0, qr2
/* 800F2B20 000EE960 38 03 00 04 */ addi r0, r3, 0x4
/* 800F2B24 000EE964 10 03 00 BA */ ps_madd f0, f3, f2, f0
/* 800F2B28 000EE968 90 07 00 00 */ stw r0, 0x0(r7)
/* 800F2B2C 000EE96C 10 24 08 BA */ ps_madd f1, f4, f2, f1
/* 800F2B30 000EE970 38 E7 00 08 */ addi r7, r7, 0x8
/* 800F2B34 000EE974 42 00 FF DC */ bdnz lbl_800F2B10
.global lbl_800F2B38
lbl_800F2B38:
/* 800F2B38 000EE978 F0 12 20 00 */ psq_st f0, 0x0(r18), 0, qr2
/* 800F2B3C 000EE97C F0 32 20 02 */ psq_st f1, 0x2(r18), 0, qr2
/* 800F2B40 000EE980 3A 52 00 04 */ addi r18, r18, 0x4
.global lbl_800F2B44
lbl_800F2B44:
/* 800F2B44 000EE984 7C 12 28 40 */ cmplw r18, r5
/* 800F2B48 000EE988 41 80 FF 8C */ blt lbl_800F2AD4
/* 800F2B4C 000EE98C 80 1A 00 08 */ lwz r0, 0x8(r26)
/* 800F2B50 000EE990 38 60 00 00 */ li r3, 0x0
/* 800F2B54 000EE994 2C 00 00 00 */ cmpwi r0, 0x0
/* 800F2B58 000EE998 41 82 00 08 */ beq lbl_800F2B60
/* 800F2B5C 000EE99C 7C 7A 02 14 */ add r3, r26, r0
.global lbl_800F2B60
lbl_800F2B60:
/* 800F2B60 000EE9A0 54 84 10 3A */ slwi r4, r4, 2
/* 800F2B64 000EE9A4 4B F2 9E 4D */ bl DCStoreRange
.global lbl_800F2B68
lbl_800F2B68:
/* 800F2B68 000EE9A8 3A 94 00 01 */ addi r20, r20, 0x1
/* 800F2B6C 000EE9AC 3B 7B 00 04 */ addi r27, r27, 0x4
.global lbl_800F2B70
lbl_800F2B70:
/* 800F2B70 000EE9B0 7C 14 B0 40 */ cmplw r20, r22
/* 800F2B74 000EE9B4 41 80 F8 F0 */ blt lbl_800F2464
/* 800F2B78 000EE9B8 39 61 05 90 */ addi r11, r1, 0x590
/* 800F2B7C 000EE9BC E3 E1 05 98 */ psq_l f31, 0x598(r1), 0, qr0
/* 800F2B80 000EE9C0 CB E1 05 90 */ lfd f31, 0x590(r1)
/* 800F2B84 000EE9C4 4B F1 47 E1 */ bl lbl_80007364
/* 800F2B88 000EE9C8 80 01 05 A4 */ lwz r0, 0x5a4(r1)
/* 800F2B8C 000EE9CC 7C 08 03 A6 */ mtlr r0
/* 800F2B90 000EE9D0 38 21 05 A0 */ addi r1, r1, 0x5a0
/* 800F2B94 000EE9D4 4E 80 00 20 */ blr
/* 800F2B98 000EE9D8 00 00 00 00 */ .4byte 0x00000000
/* 800F2B9C 000EE9DC 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .sdata2, "wa" # 0x8055DF80 - 0x805643C0 ; 0x00006440
.global "@7801"
"@7801":
.4byte 0
.4byte 0