donut-decomp/asm/libnw4r_g3d/g3d_calcworld.s

825 lines
41 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 0x80006A00 - 0x80406260 ; 0x003FF860
.global CalcWorld__Q24nw4r3g3dFPQ34nw4r4math5MTX34PUlPCUcPCQ34nw4r4math5MTX34Q34nw4r3g3d6ResMdlPQ34nw4r3g3d9AnmObjChrPQ34nw4r3g3d16FuncObjCalcWorldUl
CalcWorld__Q24nw4r3g3dFPQ34nw4r4math5MTX34PUlPCUcPCQ34nw4r4math5MTX34Q34nw4r3g3d6ResMdlPQ34nw4r3g3d9AnmObjChrPQ34nw4r3g3d16FuncObjCalcWorldUl:
/* 800E3170 000DEFB0 94 21 FF 30 */ stwu r1, -0xd0(r1)
/* 800E3174 000DEFB4 7C 08 02 A6 */ mflr r0
/* 800E3178 000DEFB8 90 01 00 D4 */ stw r0, 0xd4(r1)
/* 800E317C 000DEFBC 39 61 00 C0 */ addi r11, r1, 0xc0
/* 800E3180 000DEFC0 DB E1 00 C0 */ stfd f31, 0xc0(r1)
/* 800E3184 000DEFC4 F3 E1 00 C8 */ psq_st f31, 0xc8(r1), 0, qr0
/* 800E3188 000DEFC8 4B F2 41 81 */ bl __save_gpr
/* 800E318C 000DEFCC 2C 05 00 00 */ cmpwi r5, 0x0
/* 800E3190 000DEFD0 7C 72 1B 78 */ mr r18, r3
/* 800E3194 000DEFD4 7C 93 23 78 */ mr r19, r4
/* 800E3198 000DEFD8 7C B4 2B 78 */ mr r20, r5
/* 800E319C 000DEFDC 7C D1 33 78 */ mr r17, r6
/* 800E31A0 000DEFE0 7C F5 3B 78 */ mr r21, r7
/* 800E31A4 000DEFE4 7D 0E 43 78 */ mr r14, r8
/* 800E31A8 000DEFE8 7D 36 4B 78 */ mr r22, r9
/* 800E31AC 000DEFEC 7D 4F 53 78 */ mr r15, r10
/* 800E31B0 000DEFF0 3B E0 00 00 */ li r31, 0x0
/* 800E31B4 000DEFF4 40 82 00 20 */ bne lbl_800E31D4
/* 800E31B8 000DEFF8 3C 80 80 44 */ lis r4, "@9581_80440F68"@ha
/* 800E31BC 000DEFFC 7E A3 AB 78 */ mr r3, r21
/* 800E31C0 000DF000 38 84 0F 68 */ addi r4, r4, "@9581_80440F68"@l
/* 800E31C4 000DF004 4B FE 75 2D */ bl GetResByteCode__Q34nw4r3g3d6ResMdlCFPCc
/* 800E31C8 000DF008 2C 03 00 00 */ cmpwi r3, 0x0
/* 800E31CC 000DF00C 7C 74 1B 78 */ mr r20, r3
/* 800E31D0 000DF010 41 82 05 44 */ beq lbl_800E3714
.global lbl_800E31D4
lbl_800E31D4:
/* 800E31D4 000DF014 80 75 00 00 */ lwz r3, 0x0(r21)
/* 800E31D8 000DF018 55 E0 2F FE */ extrwi r0, r15, 1, 4
/* 800E31DC 000DF01C 90 01 00 74 */ stw r0, 0x74(r1)
/* 800E31E0 000DF020 38 63 00 4C */ addi r3, r3, 0x4c
/* 800E31E4 000DF024 80 63 00 08 */ lwz r3, 0x8(r3)
/* 800E31E8 000DF028 38 03 FF FF */ addi r0, r3, -0x1
/* 800E31EC 000DF02C 7C 00 00 34 */ cntlzw r0, r0
/* 800E31F0 000DF030 54 00 D9 7E */ srwi r0, r0, 5
/* 800E31F4 000DF034 98 01 00 70 */ stb r0, 0x70(r1)
/* 800E31F8 000DF038 4B FF FF 59 */ bl GetScaleTemporary__Q44nw4r3g3d6detail7workmemFv
/* 800E31FC 000DF03C C0 02 90 A8 */ lfs f0, "@9400"@sda21(r2)
/* 800E3200 000DF040 7C 70 1B 78 */ mr r16, r3
/* 800E3204 000DF044 D0 03 00 08 */ stfs f0, 0x8(r3)
/* 800E3208 000DF048 7E 44 93 78 */ mr r4, r18
/* 800E320C 000DF04C D0 03 00 04 */ stfs f0, 0x4(r3)
/* 800E3210 000DF050 D0 03 00 00 */ stfs f0, 0x0(r3)
/* 800E3214 000DF054 7E 23 8B 78 */ mr r3, r17
/* 800E3218 000DF058 4B F4 D2 F9 */ bl PSMTXCopy
/* 800E321C 000DF05C 4B FF FF 45 */ bl GetMtxIDTemporary__Q44nw4r3g3d6detail7workmemFv
/* 800E3220 000DF060 91 F3 00 00 */ stw r15, 0x0(r19)
/* 800E3224 000DF064 7C 7E 1B 78 */ mr r30, r3
/* 800E3228 000DF068 3B A0 00 00 */ li r29, 0x0
/* 800E322C 000DF06C 3A 20 00 00 */ li r17, 0x0
/* 800E3230 000DF070 48 00 04 3C */ b lbl_800E366C
.global lbl_800E3234
lbl_800E3234:
/* 800E3234 000DF074 28 00 00 02 */ cmplwi r0, 0x2
/* 800E3238 000DF078 40 82 03 BC */ bne lbl_800E35F4
/* 800E323C 000DF07C 88 14 00 01 */ lbz r0, 0x1(r20)
/* 800E3240 000DF080 7E A3 AB 78 */ mr r3, r21
/* 800E3244 000DF084 88 94 00 03 */ lbz r4, 0x3(r20)
/* 800E3248 000DF088 54 07 40 2E */ slwi r7, r0, 8
/* 800E324C 000DF08C 88 D4 00 02 */ lbz r6, 0x2(r20)
/* 800E3250 000DF090 88 14 00 04 */ lbz r0, 0x4(r20)
/* 800E3254 000DF094 54 85 40 2E */ slwi r5, r4, 8
/* 800E3258 000DF098 7F 87 32 14 */ add r28, r7, r6
/* 800E325C 000DF09C 7F 84 E3 78 */ mr r4, r28
/* 800E3260 000DF0A0 7F 05 02 14 */ add r24, r5, r0
/* 800E3264 000DF0A4 4B FE 75 7D */ bl GetResNode__Q34nw4r3g3d6ResMdlCFi
/* 800E3268 000DF0A8 2C 03 00 00 */ cmpwi r3, 0x0
/* 800E326C 000DF0AC 90 61 00 14 */ stw r3, 0x14(r1)
/* 800E3270 000DF0B0 41 82 00 0C */ beq lbl_800E327C
/* 800E3274 000DF0B4 81 E3 00 10 */ lwz r15, 0x10(r3)
/* 800E3278 000DF0B8 48 00 00 08 */ b lbl_800E3280
.global lbl_800E327C
lbl_800E327C:
/* 800E327C 000DF0BC 39 E0 00 00 */ li r15, 0x0
.global lbl_800E3280
lbl_800E3280:
/* 800E3280 000DF0C0 7D FE 89 2E */ stwx r15, r30, r17
/* 800E3284 000DF0C4 57 00 10 3A */ slwi r0, r24, 2
/* 800E3288 000DF0C8 1C 6F 00 30 */ mulli r3, r15, 0x30
/* 800E328C 000DF0CC 2C 0E 00 00 */ cmpwi r14, 0x0
/* 800E3290 000DF0D0 7E F3 00 2E */ lwzx r23, r19, r0
/* 800E3294 000DF0D4 3B BD 00 01 */ addi r29, r29, 0x1
/* 800E3298 000DF0D8 3A 31 00 04 */ addi r17, r17, 0x4
/* 800E329C 000DF0DC 1C 0F 00 0C */ mulli r0, r15, 0xc
/* 800E32A0 000DF0E0 7F 72 1A 14 */ add r27, r18, r3
/* 800E32A4 000DF0E4 1C 78 00 30 */ mulli r3, r24, 0x30
/* 800E32A8 000DF0E8 7F 50 02 14 */ add r26, r16, r0
/* 800E32AC 000DF0EC 1C 18 00 0C */ mulli r0, r24, 0xc
/* 800E32B0 000DF0F0 7F 32 1A 14 */ add r25, r18, r3
/* 800E32B4 000DF0F4 7F 10 02 14 */ add r24, r16, r0
/* 800E32B8 000DF0F8 41 82 00 38 */ beq lbl_800E32F0
/* 800E32BC 000DF0FC 80 A1 00 14 */ lwz r5, 0x14(r1)
/* 800E32C0 000DF100 7D C3 73 78 */ mr r3, r14
/* 800E32C4 000DF104 38 81 00 24 */ addi r4, r1, 0x24
/* 800E32C8 000DF108 2C 05 00 00 */ cmpwi r5, 0x0
/* 800E32CC 000DF10C 41 82 00 0C */ beq lbl_800E32D8
/* 800E32D0 000DF110 80 A5 00 0C */ lwz r5, 0xc(r5)
/* 800E32D4 000DF114 48 00 00 08 */ b lbl_800E32DC
.global lbl_800E32D8
lbl_800E32D8:
/* 800E32D8 000DF118 38 A0 00 00 */ li r5, 0x0
.global lbl_800E32DC
lbl_800E32DC:
/* 800E32DC 000DF11C 81 83 00 00 */ lwz r12, 0x0(r3)
/* 800E32E0 000DF120 81 8C 00 38 */ lwz r12, 0x38(r12)
/* 800E32E4 000DF124 7D 89 03 A6 */ mtctr r12
/* 800E32E8 000DF128 4E 80 04 21 */ bctrl
/* 800E32EC 000DF12C 7C 7F 1B 78 */ mr r31, r3
.global lbl_800E32F0
lbl_800E32F0:
/* 800E32F0 000DF130 2C 0E 00 00 */ cmpwi r14, 0x0
/* 800E32F4 000DF134 41 82 00 10 */ beq lbl_800E3304
/* 800E32F8 000DF138 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 800E32FC 000DF13C 2C 00 00 00 */ cmpwi r0, 0x0
/* 800E3300 000DF140 40 82 00 14 */ bne lbl_800E3314
.global lbl_800E3304
lbl_800E3304:
/* 800E3304 000DF144 38 61 00 14 */ addi r3, r1, 0x14
/* 800E3308 000DF148 38 81 00 24 */ addi r4, r1, 0x24
/* 800E330C 000DF14C 4B FE B6 85 */ bl CalcChrAnmResult__Q34nw4r3g3d7ResNodeCFPQ34nw4r3g3d12ChrAnmResult
/* 800E3310 000DF150 3B E1 00 24 */ addi r31, r1, 0x24
.global lbl_800E3314
lbl_800E3314:
/* 800E3314 000DF154 2C 1C 00 00 */ cmpwi r28, 0x0
/* 800E3318 000DF158 41 82 00 D0 */ beq lbl_800E33E8
/* 800E331C 000DF15C 80 01 00 74 */ lwz r0, 0x74(r1)
/* 800E3320 000DF160 2C 00 00 00 */ cmpwi r0, 0x0
/* 800E3324 000DF164 41 82 00 C4 */ beq lbl_800E33E8
/* 800E3328 000DF168 38 01 00 24 */ addi r0, r1, 0x24
/* 800E332C 000DF16C 7C 1F 00 40 */ cmplw r31, r0
/* 800E3330 000DF170 41 82 00 A0 */ beq lbl_800E33D0
/* 800E3334 000DF174 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 800E3338 000DF178 90 01 00 24 */ stw r0, 0x24(r1)
/* 800E333C 000DF17C 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 800E3340 000DF180 80 1F 00 08 */ lwz r0, 0x8(r31)
/* 800E3344 000DF184 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800E3348 000DF188 90 61 00 28 */ stw r3, 0x28(r1)
/* 800E334C 000DF18C 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800E3350 000DF190 90 01 00 30 */ stw r0, 0x30(r1)
/* 800E3354 000DF194 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 800E3358 000DF198 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 800E335C 000DF19C 90 01 00 38 */ stw r0, 0x38(r1)
/* 800E3360 000DF1A0 90 61 00 34 */ stw r3, 0x34(r1)
/* 800E3364 000DF1A4 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 800E3368 000DF1A8 90 01 00 3C */ stw r0, 0x3c(r1)
/* 800E336C 000DF1AC 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 800E3370 000DF1B0 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 800E3374 000DF1B4 90 01 00 44 */ stw r0, 0x44(r1)
/* 800E3378 000DF1B8 90 61 00 40 */ stw r3, 0x40(r1)
/* 800E337C 000DF1BC 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 800E3380 000DF1C0 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 800E3384 000DF1C4 90 01 00 4C */ stw r0, 0x4c(r1)
/* 800E3388 000DF1C8 90 61 00 48 */ stw r3, 0x48(r1)
/* 800E338C 000DF1CC 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 800E3390 000DF1D0 80 1F 00 30 */ lwz r0, 0x30(r31)
/* 800E3394 000DF1D4 90 01 00 54 */ stw r0, 0x54(r1)
/* 800E3398 000DF1D8 90 61 00 50 */ stw r3, 0x50(r1)
/* 800E339C 000DF1DC 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 800E33A0 000DF1E0 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 800E33A4 000DF1E4 90 01 00 5C */ stw r0, 0x5c(r1)
/* 800E33A8 000DF1E8 90 61 00 58 */ stw r3, 0x58(r1)
/* 800E33AC 000DF1EC 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 800E33B0 000DF1F0 80 1F 00 40 */ lwz r0, 0x40(r31)
/* 800E33B4 000DF1F4 90 01 00 64 */ stw r0, 0x64(r1)
/* 800E33B8 000DF1F8 90 61 00 60 */ stw r3, 0x60(r1)
/* 800E33BC 000DF1FC 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 800E33C0 000DF200 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 800E33C4 000DF204 3B E1 00 24 */ addi r31, r1, 0x24
/* 800E33C8 000DF208 90 01 00 6C */ stw r0, 0x6c(r1)
/* 800E33CC 000DF20C 90 61 00 68 */ stw r3, 0x68(r1)
.global lbl_800E33D0
lbl_800E33D0:
/* 800E33D0 000DF210 80 01 00 24 */ lwz r0, 0x24(r1)
/* 800E33D4 000DF214 38 61 00 14 */ addi r3, r1, 0x14
/* 800E33D8 000DF218 38 81 00 24 */ addi r4, r1, 0x24
/* 800E33DC 000DF21C 60 00 02 00 */ ori r0, r0, 0x200
/* 800E33E0 000DF220 90 01 00 24 */ stw r0, 0x24(r1)
/* 800E33E4 000DF224 4B FE B4 0D */ bl PatchChrAnmResult__Q34nw4r3g3d7ResNodeCFPQ34nw4r3g3d12ChrAnmResult
.global lbl_800E33E8
lbl_800E33E8:
/* 800E33E8 000DF228 2C 16 00 00 */ cmpwi r22, 0x0
/* 800E33EC 000DF22C 41 82 00 EC */ beq lbl_800E34D8
/* 800E33F0 000DF230 38 01 00 24 */ addi r0, r1, 0x24
/* 800E33F4 000DF234 7C 1F 00 40 */ cmplw r31, r0
/* 800E33F8 000DF238 41 82 00 A0 */ beq lbl_800E3498
/* 800E33FC 000DF23C 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 800E3400 000DF240 90 01 00 24 */ stw r0, 0x24(r1)
/* 800E3404 000DF244 80 7F 00 04 */ lwz r3, 0x4(r31)
/* 800E3408 000DF248 80 1F 00 08 */ lwz r0, 0x8(r31)
/* 800E340C 000DF24C 90 01 00 2C */ stw r0, 0x2c(r1)
/* 800E3410 000DF250 90 61 00 28 */ stw r3, 0x28(r1)
/* 800E3414 000DF254 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 800E3418 000DF258 90 01 00 30 */ stw r0, 0x30(r1)
/* 800E341C 000DF25C 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 800E3420 000DF260 80 1F 00 14 */ lwz r0, 0x14(r31)
/* 800E3424 000DF264 90 01 00 38 */ stw r0, 0x38(r1)
/* 800E3428 000DF268 90 61 00 34 */ stw r3, 0x34(r1)
/* 800E342C 000DF26C 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 800E3430 000DF270 90 01 00 3C */ stw r0, 0x3c(r1)
/* 800E3434 000DF274 80 7F 00 1C */ lwz r3, 0x1c(r31)
/* 800E3438 000DF278 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 800E343C 000DF27C 90 01 00 44 */ stw r0, 0x44(r1)
/* 800E3440 000DF280 90 61 00 40 */ stw r3, 0x40(r1)
/* 800E3444 000DF284 80 7F 00 24 */ lwz r3, 0x24(r31)
/* 800E3448 000DF288 80 1F 00 28 */ lwz r0, 0x28(r31)
/* 800E344C 000DF28C 90 01 00 4C */ stw r0, 0x4c(r1)
/* 800E3450 000DF290 90 61 00 48 */ stw r3, 0x48(r1)
/* 800E3454 000DF294 80 7F 00 2C */ lwz r3, 0x2c(r31)
/* 800E3458 000DF298 80 1F 00 30 */ lwz r0, 0x30(r31)
/* 800E345C 000DF29C 90 01 00 54 */ stw r0, 0x54(r1)
/* 800E3460 000DF2A0 90 61 00 50 */ stw r3, 0x50(r1)
/* 800E3464 000DF2A4 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 800E3468 000DF2A8 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 800E346C 000DF2AC 90 01 00 5C */ stw r0, 0x5c(r1)
/* 800E3470 000DF2B0 90 61 00 58 */ stw r3, 0x58(r1)
/* 800E3474 000DF2B4 80 7F 00 3C */ lwz r3, 0x3c(r31)
/* 800E3478 000DF2B8 80 1F 00 40 */ lwz r0, 0x40(r31)
/* 800E347C 000DF2BC 90 01 00 64 */ stw r0, 0x64(r1)
/* 800E3480 000DF2C0 90 61 00 60 */ stw r3, 0x60(r1)
/* 800E3484 000DF2C4 80 7F 00 44 */ lwz r3, 0x44(r31)
/* 800E3488 000DF2C8 80 1F 00 48 */ lwz r0, 0x48(r31)
/* 800E348C 000DF2CC 3B E1 00 24 */ addi r31, r1, 0x24
/* 800E3490 000DF2D0 90 01 00 6C */ stw r0, 0x6c(r1)
/* 800E3494 000DF2D4 90 61 00 68 */ stw r3, 0x68(r1)
.global lbl_800E3498
lbl_800E3498:
/* 800E3498 000DF2D8 A0 16 00 06 */ lhz r0, 0x6(r22)
/* 800E349C 000DF2DC 80 75 00 00 */ lwz r3, 0x0(r21)
/* 800E34A0 000DF2E0 7C 1C 00 40 */ cmplw r28, r0
/* 800E34A4 000DF2E4 40 82 00 34 */ bne lbl_800E34D8
/* 800E34A8 000DF2E8 88 16 00 04 */ lbz r0, 0x4(r22)
/* 800E34AC 000DF2EC 54 00 07 FF */ clrlwi. r0, r0, 31
/* 800E34B0 000DF2F0 41 82 00 28 */ beq lbl_800E34D8
/* 800E34B4 000DF2F4 90 61 00 10 */ stw r3, 0x10(r1)
/* 800E34B8 000DF2F8 7E C6 B3 78 */ mr r6, r22
/* 800E34BC 000DF2FC 38 81 00 24 */ addi r4, r1, 0x24
/* 800E34C0 000DF300 38 A1 00 10 */ addi r5, r1, 0x10
/* 800E34C4 000DF304 80 76 00 00 */ lwz r3, 0x0(r22)
/* 800E34C8 000DF308 81 83 00 00 */ lwz r12, 0x0(r3)
/* 800E34CC 000DF30C 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 800E34D0 000DF310 7D 89 03 A6 */ mtctr r12
/* 800E34D4 000DF314 4E 80 04 21 */ bctrl
.global lbl_800E34D8
lbl_800E34D8:
/* 800E34D8 000DF318 88 01 00 70 */ lbz r0, 0x70(r1)
/* 800E34DC 000DF31C 2C 00 00 00 */ cmpwi r0, 0x0
/* 800E34E0 000DF320 41 82 00 30 */ beq lbl_800E3510
/* 800E34E4 000DF324 55 E0 10 3A */ slwi r0, r15, 2
/* 800E34E8 000DF328 7F 63 DB 78 */ mr r3, r27
/* 800E34EC 000DF32C 7D F3 02 14 */ add r15, r19, r0
/* 800E34F0 000DF330 7F 44 D3 78 */ mr r4, r26
/* 800E34F4 000DF334 7F 25 CB 78 */ mr r5, r25
/* 800E34F8 000DF338 7F 06 C3 78 */ mr r6, r24
/* 800E34FC 000DF33C 7E E7 BB 78 */ mr r7, r23
/* 800E3500 000DF340 7F E8 FB 78 */ mr r8, r31
/* 800E3504 000DF344 48 00 4F 4D */ bl CalcWorldMtx_Xsi__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34PQ34nw4r4math4VEC3PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3UlPCQ34nw4r3g3d12ChrAnmResult
/* 800E3508 000DF348 90 6F 00 00 */ stw r3, 0x0(r15)
/* 800E350C 000DF34C 48 00 00 64 */ b lbl_800E3570
.global lbl_800E3510
lbl_800E3510:
/* 800E3510 000DF350 80 1F 00 00 */ lwz r0, 0x0(r31)
/* 800E3514 000DF354 54 00 05 6B */ rlwinm. r0, r0, 0, 21, 21
/* 800E3518 000DF358 41 82 00 30 */ beq lbl_800E3548
/* 800E351C 000DF35C 55 E0 10 3A */ slwi r0, r15, 2
/* 800E3520 000DF360 7F 63 DB 78 */ mr r3, r27
/* 800E3524 000DF364 7D F3 02 14 */ add r15, r19, r0
/* 800E3528 000DF368 7F 44 D3 78 */ mr r4, r26
/* 800E352C 000DF36C 7F 25 CB 78 */ mr r5, r25
/* 800E3530 000DF370 7F 06 C3 78 */ mr r6, r24
/* 800E3534 000DF374 7E E7 BB 78 */ mr r7, r23
/* 800E3538 000DF378 7F E8 FB 78 */ mr r8, r31
/* 800E353C 000DF37C 48 00 43 15 */ bl CalcWorldMtx_Maya_SSC_Apply__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34PQ34nw4r4math4VEC3PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3UlPCQ34nw4r3g3d12ChrAnmResult
/* 800E3540 000DF380 90 6F 00 00 */ stw r3, 0x0(r15)
/* 800E3544 000DF384 48 00 00 2C */ b lbl_800E3570
.global lbl_800E3548
lbl_800E3548:
/* 800E3548 000DF388 55 E0 10 3A */ slwi r0, r15, 2
/* 800E354C 000DF38C 7F 63 DB 78 */ mr r3, r27
/* 800E3550 000DF390 7D F3 02 14 */ add r15, r19, r0
/* 800E3554 000DF394 7F 44 D3 78 */ mr r4, r26
/* 800E3558 000DF398 7F 25 CB 78 */ mr r5, r25
/* 800E355C 000DF39C 7F 06 C3 78 */ mr r6, r24
/* 800E3560 000DF3A0 7E E7 BB 78 */ mr r7, r23
/* 800E3564 000DF3A4 7F E8 FB 78 */ mr r8, r31
/* 800E3568 000DF3A8 48 00 36 09 */ bl CalcWorldMtx_Basic__Q44nw4r3g3d6detail3dccFPQ34nw4r4math5MTX34PQ34nw4r4math4VEC3PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3UlPCQ34nw4r3g3d12ChrAnmResult
/* 800E356C 000DF3AC 90 6F 00 00 */ stw r3, 0x0(r15)
.global lbl_800E3570
lbl_800E3570:
/* 800E3570 000DF3B0 80 61 00 14 */ lwz r3, 0x14(r1)
/* 800E3574 000DF3B4 2C 03 00 00 */ cmpwi r3, 0x0
/* 800E3578 000DF3B8 41 82 00 0C */ beq lbl_800E3584
/* 800E357C 000DF3BC 80 63 00 18 */ lwz r3, 0x18(r3)
/* 800E3580 000DF3C0 48 00 00 08 */ b lbl_800E3588
.global lbl_800E3584
lbl_800E3584:
/* 800E3584 000DF3C4 38 60 00 00 */ li r3, 0x0
.global lbl_800E3588
lbl_800E3588:
/* 800E3588 000DF3C8 80 0F 00 00 */ lwz r0, 0x0(r15)
/* 800E358C 000DF3CC 2C 16 00 00 */ cmpwi r22, 0x0
/* 800E3590 000DF3D0 54 00 00 2E */ clrrwi r0, r0, 8
/* 800E3594 000DF3D4 7C 00 1B 78 */ or r0, r0, r3
/* 800E3598 000DF3D8 90 0F 00 00 */ stw r0, 0x0(r15)
/* 800E359C 000DF3DC 41 82 00 50 */ beq lbl_800E35EC
/* 800E35A0 000DF3E0 A0 16 00 06 */ lhz r0, 0x6(r22)
/* 800E35A4 000DF3E4 80 75 00 00 */ lwz r3, 0x0(r21)
/* 800E35A8 000DF3E8 7C 1C 00 40 */ cmplw r28, r0
/* 800E35AC 000DF3EC 40 82 00 40 */ bne lbl_800E35EC
/* 800E35B0 000DF3F0 88 16 00 04 */ lbz r0, 0x4(r22)
/* 800E35B4 000DF3F4 54 00 07 BD */ rlwinm. r0, r0, 0, 30, 30
/* 800E35B8 000DF3F8 41 82 00 34 */ beq lbl_800E35EC
/* 800E35BC 000DF3FC 93 61 00 18 */ stw r27, 0x18(r1)
/* 800E35C0 000DF400 7E C6 B3 78 */ mr r6, r22
/* 800E35C4 000DF404 38 81 00 18 */ addi r4, r1, 0x18
/* 800E35C8 000DF408 38 A1 00 0C */ addi r5, r1, 0xc
/* 800E35CC 000DF40C 93 41 00 1C */ stw r26, 0x1c(r1)
/* 800E35D0 000DF410 91 E1 00 20 */ stw r15, 0x20(r1)
/* 800E35D4 000DF414 90 61 00 0C */ stw r3, 0xc(r1)
/* 800E35D8 000DF418 80 76 00 00 */ lwz r3, 0x0(r22)
/* 800E35DC 000DF41C 81 83 00 00 */ lwz r12, 0x0(r3)
/* 800E35E0 000DF420 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 800E35E4 000DF424 7D 89 03 A6 */ mtctr r12
/* 800E35E8 000DF428 4E 80 04 21 */ bctrl
.global lbl_800E35EC
lbl_800E35EC:
/* 800E35EC 000DF42C 3A 94 00 05 */ addi r20, r20, 0x5
/* 800E35F0 000DF430 48 00 00 7C */ b lbl_800E366C
.global lbl_800E35F4
lbl_800E35F4:
/* 800E35F4 000DF434 88 14 00 01 */ lbz r0, 0x1(r20)
/* 800E35F8 000DF438 3B BD 00 01 */ addi r29, r29, 0x1
/* 800E35FC 000DF43C 88 74 00 03 */ lbz r3, 0x3(r20)
/* 800E3600 000DF440 54 05 40 2E */ slwi r5, r0, 8
/* 800E3604 000DF444 88 94 00 02 */ lbz r4, 0x2(r20)
/* 800E3608 000DF448 88 14 00 04 */ lbz r0, 0x4(r20)
/* 800E360C 000DF44C 54 63 40 2E */ slwi r3, r3, 8
/* 800E3610 000DF450 7D E5 22 14 */ add r15, r5, r4
/* 800E3614 000DF454 7E E3 02 14 */ add r23, r3, r0
/* 800E3618 000DF458 7D FE 89 2E */ stwx r15, r30, r17
/* 800E361C 000DF45C 56 E4 10 3A */ slwi r4, r23, 2
/* 800E3620 000DF460 55 E0 10 3A */ slwi r0, r15, 2
/* 800E3624 000DF464 7C 93 20 2E */ lwzx r4, r19, r4
/* 800E3628 000DF468 1C 77 00 30 */ mulli r3, r23, 0x30
/* 800E362C 000DF46C 7C 93 01 2E */ stwx r4, r19, r0
/* 800E3630 000DF470 3A 31 00 04 */ addi r17, r17, 0x4
/* 800E3634 000DF474 1C 0F 00 30 */ mulli r0, r15, 0x30
/* 800E3638 000DF478 7C 72 1A 14 */ add r3, r18, r3
/* 800E363C 000DF47C 7C 92 02 14 */ add r4, r18, r0
/* 800E3640 000DF480 4B F4 CE D1 */ bl PSMTXCopy
/* 800E3644 000DF484 1C 0F 00 0C */ mulli r0, r15, 0xc
/* 800E3648 000DF488 3A 94 00 05 */ addi r20, r20, 0x5
/* 800E364C 000DF48C 1C 77 00 0C */ mulli r3, r23, 0xc
/* 800E3650 000DF490 7C 03 84 6E */ lfsux f0, r3, r16
/* 800E3654 000DF494 7C 10 05 2E */ stfsx f0, r16, r0
/* 800E3658 000DF498 7C 90 02 14 */ add r4, r16, r0
/* 800E365C 000DF49C C0 03 00 04 */ lfs f0, 0x4(r3)
/* 800E3660 000DF4A0 D0 04 00 04 */ stfs f0, 0x4(r4)
/* 800E3664 000DF4A4 C0 03 00 08 */ lfs f0, 0x8(r3)
/* 800E3668 000DF4A8 D0 04 00 08 */ stfs f0, 0x8(r4)
.global lbl_800E366C
lbl_800E366C:
/* 800E366C 000DF4AC 88 14 00 00 */ lbz r0, 0x0(r20)
/* 800E3670 000DF4B0 28 00 00 01 */ cmplwi r0, 0x1
/* 800E3674 000DF4B4 40 82 FB C0 */ bne lbl_800E3234
/* 800E3678 000DF4B8 C3 E2 90 A8 */ lfs f31, "@9400"@sda21(r2)
/* 800E367C 000DF4BC 39 C0 00 00 */ li r14, 0x0
/* 800E3680 000DF4C0 48 00 00 50 */ b lbl_800E36D0
.global lbl_800E3684
lbl_800E3684:
/* 800E3684 000DF4C4 80 9E 00 00 */ lwz r4, 0x0(r30)
/* 800E3688 000DF4C8 1C 04 00 0C */ mulli r0, r4, 0xc
/* 800E368C 000DF4CC 7C 10 04 2E */ lfsx f0, r16, r0
/* 800E3690 000DF4D0 7C 70 02 14 */ add r3, r16, r0
/* 800E3694 000DF4D4 FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800E3698 000DF4D8 40 82 00 1C */ bne lbl_800E36B4
/* 800E369C 000DF4DC C0 03 00 04 */ lfs f0, 0x4(r3)
/* 800E36A0 000DF4E0 FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800E36A4 000DF4E4 40 82 00 10 */ bne lbl_800E36B4
/* 800E36A8 000DF4E8 C0 03 00 08 */ lfs f0, 0x8(r3)
/* 800E36AC 000DF4EC FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 800E36B0 000DF4F0 41 82 00 18 */ beq lbl_800E36C8
.global lbl_800E36B4
lbl_800E36B4:
/* 800E36B4 000DF4F4 1C 64 00 30 */ mulli r3, r4, 0x30
/* 800E36B8 000DF4F8 7C B0 02 14 */ add r5, r16, r0
/* 800E36BC 000DF4FC 7C 72 1A 14 */ add r3, r18, r3
/* 800E36C0 000DF500 7C 64 1B 78 */ mr r4, r3
/* 800E36C4 000DF504 48 01 B7 8D */ bl MTX34Scale__Q24nw4r4mathFPQ34nw4r4math5MTX34PCQ34nw4r4math5MTX34PCQ34nw4r4math4VEC3
.global lbl_800E36C8
lbl_800E36C8:
/* 800E36C8 000DF508 3B DE 00 04 */ addi r30, r30, 0x4
/* 800E36CC 000DF50C 39 CE 00 01 */ addi r14, r14, 0x1
.global lbl_800E36D0
lbl_800E36D0:
/* 800E36D0 000DF510 7C 0E E8 40 */ cmplw r14, r29
/* 800E36D4 000DF514 41 80 FF B0 */ blt lbl_800E3684
/* 800E36D8 000DF518 2C 16 00 00 */ cmpwi r22, 0x0
/* 800E36DC 000DF51C 41 82 00 38 */ beq lbl_800E3714
/* 800E36E0 000DF520 88 16 00 04 */ lbz r0, 0x4(r22)
/* 800E36E4 000DF524 80 75 00 00 */ lwz r3, 0x0(r21)
/* 800E36E8 000DF528 54 00 07 7B */ rlwinm. r0, r0, 0, 29, 29
/* 800E36EC 000DF52C 41 82 00 28 */ beq lbl_800E3714
/* 800E36F0 000DF530 90 61 00 08 */ stw r3, 0x8(r1)
/* 800E36F4 000DF534 7E 44 93 78 */ mr r4, r18
/* 800E36F8 000DF538 7E C6 B3 78 */ mr r6, r22
/* 800E36FC 000DF53C 38 A1 00 08 */ addi r5, r1, 0x8
/* 800E3700 000DF540 80 76 00 00 */ lwz r3, 0x0(r22)
/* 800E3704 000DF544 81 83 00 00 */ lwz r12, 0x0(r3)
/* 800E3708 000DF548 81 8C 00 14 */ lwz r12, 0x14(r12)
/* 800E370C 000DF54C 7D 89 03 A6 */ mtctr r12
/* 800E3710 000DF550 4E 80 04 21 */ bctrl
.global lbl_800E3714
lbl_800E3714:
/* 800E3714 000DF554 39 61 00 C0 */ addi r11, r1, 0xc0
/* 800E3718 000DF558 E3 E1 00 C8 */ psq_l f31, 0xc8(r1), 0, qr0
/* 800E371C 000DF55C CB E1 00 C0 */ lfd f31, 0xc0(r1)
/* 800E3720 000DF560 4B F2 3C 35 */ bl __restore_gpr
/* 800E3724 000DF564 80 01 00 D4 */ lwz r0, 0xd4(r1)
/* 800E3728 000DF568 7C 08 03 A6 */ mtlr r0
/* 800E372C 000DF56C 38 21 00 D0 */ addi r1, r1, 0xd0
/* 800E3730 000DF570 4E 80 00 20 */ blr
/* 800E3734 000DF574 00 00 00 00 */ .4byte 0x00000000
/* 800E3738 000DF578 00 00 00 00 */ .4byte 0x00000000
/* 800E373C 000DF57C 00 00 00 00 */ .4byte 0x00000000
.global ExecCallbackB__Q34nw4r3g3d18ICalcWorldCallbackFPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld
ExecCallbackB__Q34nw4r3g3d18ICalcWorldCallbackFPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld:
/* 800E3740 000DF580 4E 80 00 20 */ blr
/* 800E3744 000DF584 00 00 00 00 */ .4byte 0x00000000
/* 800E3748 000DF588 00 00 00 00 */ .4byte 0x00000000
/* 800E374C 000DF58C 00 00 00 00 */ .4byte 0x00000000
.global ExecCallbackC__Q34nw4r3g3d18ICalcWorldCallbackFPQ34nw4r4math5MTX34Q34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld
ExecCallbackC__Q34nw4r3g3d18ICalcWorldCallbackFPQ34nw4r4math5MTX34Q34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld:
/* 800E3750 000DF590 4E 80 00 20 */ blr
/* 800E3754 000DF594 00 00 00 00 */ .4byte 0x00000000
/* 800E3758 000DF598 00 00 00 00 */ .4byte 0x00000000
/* 800E375C 000DF59C 00 00 00 00 */ .4byte 0x00000000
.global CalcSkinning__Q24nw4r3g3dFPQ34nw4r4math5MTX34PUlQ34nw4r3g3d6ResMdlPCUc
CalcSkinning__Q24nw4r3g3dFPQ34nw4r4math5MTX34PUlQ34nw4r3g3d6ResMdlPCUc:
/* 800E3760 000DF5A0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 800E3764 000DF5A4 7C 08 02 A6 */ mflr r0
/* 800E3768 000DF5A8 90 01 00 34 */ stw r0, 0x34(r1)
/* 800E376C 000DF5AC 39 61 00 30 */ addi r11, r1, 0x30
/* 800E3770 000DF5B0 4B F2 3B C5 */ bl lbl_80007334
/* 800E3774 000DF5B4 2C 06 00 00 */ cmpwi r6, 0x0
/* 800E3778 000DF5B8 7C 7A 1B 78 */ mr r26, r3
/* 800E377C 000DF5BC 7C 9B 23 78 */ mr r27, r4
/* 800E3780 000DF5C0 7C BC 2B 78 */ mr r28, r5
/* 800E3784 000DF5C4 7C DD 33 78 */ mr r29, r6
/* 800E3788 000DF5C8 40 82 00 1C */ bne lbl_800E37A4
/* 800E378C 000DF5CC 7F 83 E3 78 */ mr r3, r28
/* 800E3790 000DF5D0 38 8D 85 E0 */ addi r4, r13, "@9736"@sda21
/* 800E3794 000DF5D4 4B FE 6F 5D */ bl GetResByteCode__Q34nw4r3g3d6ResMdlCFPCc
/* 800E3798 000DF5D8 2C 03 00 00 */ cmpwi r3, 0x0
/* 800E379C 000DF5DC 7C 7D 1B 78 */ mr r29, r3
/* 800E37A0 000DF5E0 41 82 04 94 */ beq lbl_800E3C34
.global lbl_800E37A4
lbl_800E37A4:
/* 800E37A4 000DF5E4 4B FF F9 AD */ bl GetScaleTemporary__Q44nw4r3g3d6detail7workmemFv
/* 800E37A8 000DF5E8 7C 7E 1B 78 */ mr r30, r3
/* 800E37AC 000DF5EC 3F E0 F0 00 */ lis r31, 0xf000
/* 800E37B0 000DF5F0 48 00 02 68 */ b lbl_800E3A18
.global lbl_800E37B4
lbl_800E37B4:
/* 800E37B4 000DF5F4 28 00 00 03 */ cmplwi r0, 0x3
/* 800E37B8 000DF5F8 40 82 02 20 */ bne lbl_800E39D8
/* 800E37BC 000DF5FC C0 02 90 AC */ lfs f0, "@9737"@sda21(r2)
/* 800E37C0 000DF600 88 7D 00 01 */ lbz r3, 0x1(r29)
/* 800E37C4 000DF604 10 00 04 20 */ ps_merge00 f0, f0, f0
/* 800E37C8 000DF608 88 1D 00 02 */ lbz r0, 0x2(r29)
/* 800E37CC 000DF60C 89 7D 00 03 */ lbz r11, 0x3(r29)
/* 800E37D0 000DF610 54 63 40 2E */ slwi r3, r3, 8
/* 800E37D4 000DF614 7D 43 02 14 */ add r10, r3, r0
/* 800E37D8 000DF618 3B BD 00 04 */ addi r29, r29, 0x4
/* 800E37DC 000DF61C 55 49 10 3A */ slwi r9, r10, 2
/* 800E37E0 000DF620 10 20 04 20 */ ps_merge00 f1, f0, f0
/* 800E37E4 000DF624 10 40 04 20 */ ps_merge00 f2, f0, f0
/* 800E37E8 000DF628 28 0B 00 00 */ cmplwi r11, 0x0
/* 800E37EC 000DF62C 10 60 04 20 */ ps_merge00 f3, f0, f0
/* 800E37F0 000DF630 7F FB 49 2E */ stwx r31, r27, r9
/* 800E37F4 000DF634 10 80 04 20 */ ps_merge00 f4, f0, f0
/* 800E37F8 000DF638 10 A0 04 20 */ ps_merge00 f5, f0, f0
/* 800E37FC 000DF63C 40 81 01 B8 */ ble lbl_800E39B4
/* 800E3800 000DF640 55 60 F8 7F */ srwi. r0, r11, 1
/* 800E3804 000DF644 7C 09 03 A6 */ mtctr r0
/* 800E3808 000DF648 41 82 01 1C */ beq lbl_800E3924
.global lbl_800E380C
lbl_800E380C:
/* 800E380C 000DF64C 88 9D 00 00 */ lbz r4, 0x0(r29)
/* 800E3810 000DF650 88 1D 00 01 */ lbz r0, 0x1(r29)
/* 800E3814 000DF654 54 84 40 2E */ slwi r4, r4, 8
/* 800E3818 000DF658 88 7D 00 03 */ lbz r3, 0x3(r29)
/* 800E381C 000DF65C 7C 04 02 14 */ add r0, r4, r0
/* 800E3820 000DF660 88 FD 00 05 */ lbz r7, 0x5(r29)
/* 800E3824 000DF664 1C 80 00 30 */ mulli r4, r0, 0x30
/* 800E3828 000DF668 89 1D 00 04 */ lbz r8, 0x4(r29)
/* 800E382C 000DF66C 54 00 10 3A */ slwi r0, r0, 2
/* 800E3830 000DF670 88 DD 00 02 */ lbz r6, 0x2(r29)
/* 800E3834 000DF674 54 65 80 1E */ slwi r5, r3, 16
/* 800E3838 000DF678 7C 7B 48 2E */ lwzx r3, r27, r9
/* 800E383C 000DF67C 7D 9E 22 14 */ add r12, r30, r4
/* 800E3840 000DF680 7C 1B 00 2E */ lwzx r0, r27, r0
/* 800E3844 000DF684 E0 EC 00 00 */ psq_l f7, 0x0(r12), 0, qr0
/* 800E3848 000DF688 51 07 44 2E */ rlwimi r7, r8, 8, 16, 23
/* 800E384C 000DF68C E1 0C 00 08 */ psq_l f8, 0x8(r12), 0, qr0
/* 800E3850 000DF690 7C 60 00 38 */ and r0, r3, r0
/* 800E3854 000DF694 50 C5 C0 0E */ rlwimi r5, r6, 24, 0, 7
/* 800E3858 000DF698 E1 2C 00 10 */ psq_l f9, 0x10(r12), 0, qr0
/* 800E385C 000DF69C 7C E4 2B 78 */ or r4, r7, r5
/* 800E3860 000DF6A0 90 81 00 08 */ stw r4, 0x8(r1)
/* 800E3864 000DF6A4 E1 4C 00 18 */ psq_l f10, 0x18(r12), 0, qr0
/* 800E3868 000DF6A8 E1 6C 00 20 */ psq_l f11, 0x20(r12), 0, qr0
/* 800E386C 000DF6AC E1 8C 00 28 */ psq_l f12, 0x28(r12), 0, qr0
/* 800E3870 000DF6B0 C0 C1 00 08 */ lfs f6, 0x8(r1)
/* 800E3874 000DF6B4 7C 1B 49 2E */ stwx r0, r27, r9
/* 800E3878 000DF6B8 10 07 01 9C */ ps_madds0 f0, f7, f6, f0
/* 800E387C 000DF6BC 88 9D 00 06 */ lbz r4, 0x6(r29)
/* 800E3880 000DF6C0 10 28 09 9C */ ps_madds0 f1, f8, f6, f1
/* 800E3884 000DF6C4 88 7D 00 09 */ lbz r3, 0x9(r29)
/* 800E3888 000DF6C8 10 49 11 9C */ ps_madds0 f2, f9, f6, f2
/* 800E388C 000DF6CC 88 1D 00 07 */ lbz r0, 0x7(r29)
/* 800E3890 000DF6D0 54 84 40 2E */ slwi r4, r4, 8
/* 800E3894 000DF6D4 54 65 80 1E */ slwi r5, r3, 16
/* 800E3898 000DF6D8 7C 04 02 14 */ add r0, r4, r0
/* 800E389C 000DF6DC 88 DD 00 08 */ lbz r6, 0x8(r29)
/* 800E38A0 000DF6E0 1C 80 00 30 */ mulli r4, r0, 0x30
/* 800E38A4 000DF6E4 89 1D 00 0A */ lbz r8, 0xa(r29)
/* 800E38A8 000DF6E8 88 FD 00 0B */ lbz r7, 0xb(r29)
/* 800E38AC 000DF6EC 54 00 10 3A */ slwi r0, r0, 2
/* 800E38B0 000DF6F0 51 07 44 2E */ rlwimi r7, r8, 8, 16, 23
/* 800E38B4 000DF6F4 10 6A 19 9C */ ps_madds0 f3, f10, f6, f3
/* 800E38B8 000DF6F8 7D 9E 22 14 */ add r12, r30, r4
/* 800E38BC 000DF6FC 50 C5 C0 0E */ rlwimi r5, r6, 24, 0, 7
/* 800E38C0 000DF700 7C E4 2B 78 */ or r4, r7, r5
/* 800E38C4 000DF704 10 8B 21 9C */ ps_madds0 f4, f11, f6, f4
/* 800E38C8 000DF708 10 AC 29 9C */ ps_madds0 f5, f12, f6, f5
/* 800E38CC 000DF70C 90 81 00 08 */ stw r4, 0x8(r1)
/* 800E38D0 000DF710 E0 EC 00 00 */ psq_l f7, 0x0(r12), 0, qr0
/* 800E38D4 000DF714 3B BD 00 0C */ addi r29, r29, 0xc
/* 800E38D8 000DF718 C0 C1 00 08 */ lfs f6, 0x8(r1)
/* 800E38DC 000DF71C E1 0C 00 08 */ psq_l f8, 0x8(r12), 0, qr0
/* 800E38E0 000DF720 E1 2C 00 10 */ psq_l f9, 0x10(r12), 0, qr0
/* 800E38E4 000DF724 10 07 01 9C */ ps_madds0 f0, f7, f6, f0
/* 800E38E8 000DF728 E1 4C 00 18 */ psq_l f10, 0x18(r12), 0, qr0
/* 800E38EC 000DF72C 10 28 09 9C */ ps_madds0 f1, f8, f6, f1
/* 800E38F0 000DF730 E1 6C 00 20 */ psq_l f11, 0x20(r12), 0, qr0
/* 800E38F4 000DF734 10 49 11 9C */ ps_madds0 f2, f9, f6, f2
/* 800E38F8 000DF738 E1 8C 00 28 */ psq_l f12, 0x28(r12), 0, qr0
/* 800E38FC 000DF73C 7C 7B 48 2E */ lwzx r3, r27, r9
/* 800E3900 000DF740 10 6A 19 9C */ ps_madds0 f3, f10, f6, f3
/* 800E3904 000DF744 7C 1B 00 2E */ lwzx r0, r27, r0
/* 800E3908 000DF748 10 8B 21 9C */ ps_madds0 f4, f11, f6, f4
/* 800E390C 000DF74C 10 AC 29 9C */ ps_madds0 f5, f12, f6, f5
/* 800E3910 000DF750 7C 60 00 38 */ and r0, r3, r0
/* 800E3914 000DF754 7C 1B 49 2E */ stwx r0, r27, r9
/* 800E3918 000DF758 42 00 FE F4 */ bdnz lbl_800E380C
/* 800E391C 000DF75C 71 6B 00 01 */ andi. r11, r11, 0x1
/* 800E3920 000DF760 41 82 00 94 */ beq lbl_800E39B4
.global lbl_800E3924
lbl_800E3924:
/* 800E3924 000DF764 7D 69 03 A6 */ mtctr r11
.global lbl_800E3928
lbl_800E3928:
/* 800E3928 000DF768 88 9D 00 00 */ lbz r4, 0x0(r29)
/* 800E392C 000DF76C 88 1D 00 01 */ lbz r0, 0x1(r29)
/* 800E3930 000DF770 54 84 40 2E */ slwi r4, r4, 8
/* 800E3934 000DF774 88 7D 00 03 */ lbz r3, 0x3(r29)
/* 800E3938 000DF778 7C 04 02 14 */ add r0, r4, r0
/* 800E393C 000DF77C 89 1D 00 04 */ lbz r8, 0x4(r29)
/* 800E3940 000DF780 1C 80 00 30 */ mulli r4, r0, 0x30
/* 800E3944 000DF784 88 DD 00 02 */ lbz r6, 0x2(r29)
/* 800E3948 000DF788 88 FD 00 05 */ lbz r7, 0x5(r29)
/* 800E394C 000DF78C 54 65 80 1E */ slwi r5, r3, 16
/* 800E3950 000DF790 51 07 44 2E */ rlwimi r7, r8, 8, 16, 23
/* 800E3954 000DF794 7C 7B 48 2E */ lwzx r3, r27, r9
/* 800E3958 000DF798 7D 9E 22 14 */ add r12, r30, r4
/* 800E395C 000DF79C 50 C5 C0 0E */ rlwimi r5, r6, 24, 0, 7
/* 800E3960 000DF7A0 7C E4 2B 78 */ or r4, r7, r5
/* 800E3964 000DF7A4 90 81 00 08 */ stw r4, 0x8(r1)
/* 800E3968 000DF7A8 54 00 10 3A */ slwi r0, r0, 2
/* 800E396C 000DF7AC E0 EC 00 00 */ psq_l f7, 0x0(r12), 0, qr0
/* 800E3970 000DF7B0 C0 C1 00 08 */ lfs f6, 0x8(r1)
/* 800E3974 000DF7B4 3B BD 00 06 */ addi r29, r29, 0x6
/* 800E3978 000DF7B8 E1 0C 00 08 */ psq_l f8, 0x8(r12), 0, qr0
/* 800E397C 000DF7BC E1 2C 00 10 */ psq_l f9, 0x10(r12), 0, qr0
/* 800E3980 000DF7C0 10 07 01 9C */ ps_madds0 f0, f7, f6, f0
/* 800E3984 000DF7C4 E1 4C 00 18 */ psq_l f10, 0x18(r12), 0, qr0
/* 800E3988 000DF7C8 10 28 09 9C */ ps_madds0 f1, f8, f6, f1
/* 800E398C 000DF7CC E1 6C 00 20 */ psq_l f11, 0x20(r12), 0, qr0
/* 800E3990 000DF7D0 10 49 11 9C */ ps_madds0 f2, f9, f6, f2
/* 800E3994 000DF7D4 E1 8C 00 28 */ psq_l f12, 0x28(r12), 0, qr0
/* 800E3998 000DF7D8 7C 1B 00 2E */ lwzx r0, r27, r0
/* 800E399C 000DF7DC 10 6A 19 9C */ ps_madds0 f3, f10, f6, f3
/* 800E39A0 000DF7E0 10 8B 21 9C */ ps_madds0 f4, f11, f6, f4
/* 800E39A4 000DF7E4 7C 60 00 38 */ and r0, r3, r0
/* 800E39A8 000DF7E8 10 AC 29 9C */ ps_madds0 f5, f12, f6, f5
/* 800E39AC 000DF7EC 7C 1B 49 2E */ stwx r0, r27, r9
/* 800E39B0 000DF7F0 42 00 FF 78 */ bdnz lbl_800E3928
.global lbl_800E39B4
lbl_800E39B4:
/* 800E39B4 000DF7F4 1C 0A 00 30 */ mulli r0, r10, 0x30
/* 800E39B8 000DF7F8 7C 7A 02 14 */ add r3, r26, r0
/* 800E39BC 000DF7FC F0 03 00 00 */ psq_st f0, 0x0(r3), 0, qr0
/* 800E39C0 000DF800 F0 23 00 08 */ psq_st f1, 0x8(r3), 0, qr0
/* 800E39C4 000DF804 F0 43 00 10 */ psq_st f2, 0x10(r3), 0, qr0
/* 800E39C8 000DF808 F0 63 00 18 */ psq_st f3, 0x18(r3), 0, qr0
/* 800E39CC 000DF80C F0 83 00 20 */ psq_st f4, 0x20(r3), 0, qr0
/* 800E39D0 000DF810 F0 A3 00 28 */ psq_st f5, 0x28(r3), 0, qr0
/* 800E39D4 000DF814 48 00 00 44 */ b lbl_800E3A18
.global lbl_800E39D8
lbl_800E39D8:
/* 800E39D8 000DF818 88 1D 00 01 */ lbz r0, 0x1(r29)
/* 800E39DC 000DF81C 7F 83 E3 78 */ mr r3, r28
/* 800E39E0 000DF820 88 9D 00 03 */ lbz r4, 0x3(r29)
/* 800E39E4 000DF824 54 06 40 2E */ slwi r6, r0, 8
/* 800E39E8 000DF828 88 BD 00 02 */ lbz r5, 0x2(r29)
/* 800E39EC 000DF82C 88 1D 00 04 */ lbz r0, 0x4(r29)
/* 800E39F0 000DF830 54 84 40 2E */ slwi r4, r4, 8
/* 800E39F4 000DF834 7F 26 2A 14 */ add r25, r6, r5
/* 800E39F8 000DF838 7C 84 02 14 */ add r4, r4, r0
/* 800E39FC 000DF83C 4B FE 6D E5 */ bl GetResNode__Q34nw4r3g3d6ResMdlCFi
/* 800E3A00 000DF840 1C 19 00 30 */ mulli r0, r25, 0x30
/* 800E3A04 000DF844 38 83 00 A0 */ addi r4, r3, 0xa0
/* 800E3A08 000DF848 7C 7A 02 14 */ add r3, r26, r0
/* 800E3A0C 000DF84C 7C BE 02 14 */ add r5, r30, r0
/* 800E3A10 000DF850 4B F4 CB 41 */ bl PSMTXConcat
/* 800E3A14 000DF854 3B BD 00 05 */ addi r29, r29, 0x5
.global lbl_800E3A18
lbl_800E3A18:
/* 800E3A18 000DF858 88 1D 00 00 */ lbz r0, 0x0(r29)
/* 800E3A1C 000DF85C 28 00 00 01 */ cmplwi r0, 0x1
/* 800E3A20 000DF860 40 82 FD 94 */ bne lbl_800E37B4
/* 800E3A24 000DF864 80 7C 00 00 */ lwz r3, 0x0(r28)
/* 800E3A28 000DF868 88 03 00 6F */ lbz r0, 0x6f(r3)
/* 800E3A2C 000DF86C 3B 43 00 4C */ addi r26, r3, 0x4c
/* 800E3A30 000DF870 2C 00 00 00 */ cmpwi r0, 0x0
/* 800E3A34 000DF874 41 82 02 00 */ beq lbl_800E3C34
/* 800E3A38 000DF878 2C 00 00 01 */ cmpwi r0, 0x1
/* 800E3A3C 000DF87C 41 82 00 14 */ beq lbl_800E3A50
/* 800E3A40 000DF880 2C 00 00 02 */ cmpwi r0, 0x2
/* 800E3A44 000DF884 41 82 01 00 */ beq lbl_800E3B44
/* 800E3A48 000DF888 48 00 01 EC */ b lbl_800E3C34
/* 800E3A4C 000DF88C 48 00 01 E8 */ b lbl_800E3C34
.global lbl_800E3A50
lbl_800E3A50:
/* 800E3A50 000DF890 80 1A 00 24 */ lwz r0, 0x24(r26)
/* 800E3A54 000DF894 7F 83 E3 78 */ mr r3, r28
/* 800E3A58 000DF898 7F 9A 00 2E */ lwzx r28, r26, r0
/* 800E3A5C 000DF89C 4B FE 6D E5 */ bl GetResNodeNumEntries__Q34nw4r3g3d6ResMdlCFv
/* 800E3A60 000DF8A0 80 9A 00 1C */ lwz r4, 0x1c(r26)
/* 800E3A64 000DF8A4 7C 03 E0 50 */ subf r0, r3, r28
/* 800E3A68 000DF8A8 7C C0 20 50 */ subf r6, r0, r4
/* 800E3A6C 000DF8AC 7C 86 20 40 */ cmplw cr1, r6, r4
/* 800E3A70 000DF8B0 40 84 01 C4 */ bge cr1, lbl_800E3C34
/* 800E3A74 000DF8B4 7C 06 20 50 */ subf r0, r6, r4
/* 800E3A78 000DF8B8 38 A4 FF F8 */ addi r5, r4, -0x8
/* 800E3A7C 000DF8BC 28 00 00 08 */ cmplwi r0, 0x8
/* 800E3A80 000DF8C0 40 81 00 94 */ ble lbl_800E3B14
/* 800E3A84 000DF8C4 41 85 00 90 */ bgt cr1, lbl_800E3B14
/* 800E3A88 000DF8C8 38 05 00 07 */ addi r0, r5, 0x7
/* 800E3A8C 000DF8CC 54 C3 10 3A */ slwi r3, r6, 2
/* 800E3A90 000DF8D0 7C 06 00 50 */ subf r0, r6, r0
/* 800E3A94 000DF8D4 54 00 E8 FE */ srwi r0, r0, 3
/* 800E3A98 000DF8D8 7C 7B 1A 14 */ add r3, r27, r3
/* 800E3A9C 000DF8DC 7C 09 03 A6 */ mtctr r0
/* 800E3AA0 000DF8E0 7C 06 28 40 */ cmplw r6, r5
/* 800E3AA4 000DF8E4 40 80 00 70 */ bge lbl_800E3B14
.global lbl_800E3AA8
lbl_800E3AA8:
/* 800E3AA8 000DF8E8 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800E3AAC 000DF8EC 38 C6 00 08 */ addi r6, r6, 0x8
/* 800E3AB0 000DF8F0 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3AB4 000DF8F4 90 03 00 00 */ stw r0, 0x0(r3)
/* 800E3AB8 000DF8F8 80 03 00 04 */ lwz r0, 0x4(r3)
/* 800E3ABC 000DF8FC 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3AC0 000DF900 90 03 00 04 */ stw r0, 0x4(r3)
/* 800E3AC4 000DF904 80 03 00 08 */ lwz r0, 0x8(r3)
/* 800E3AC8 000DF908 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3ACC 000DF90C 90 03 00 08 */ stw r0, 0x8(r3)
/* 800E3AD0 000DF910 80 03 00 0C */ lwz r0, 0xc(r3)
/* 800E3AD4 000DF914 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3AD8 000DF918 90 03 00 0C */ stw r0, 0xc(r3)
/* 800E3ADC 000DF91C 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800E3AE0 000DF920 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3AE4 000DF924 90 03 00 10 */ stw r0, 0x10(r3)
/* 800E3AE8 000DF928 80 03 00 14 */ lwz r0, 0x14(r3)
/* 800E3AEC 000DF92C 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3AF0 000DF930 90 03 00 14 */ stw r0, 0x14(r3)
/* 800E3AF4 000DF934 80 03 00 18 */ lwz r0, 0x18(r3)
/* 800E3AF8 000DF938 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3AFC 000DF93C 90 03 00 18 */ stw r0, 0x18(r3)
/* 800E3B00 000DF940 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 800E3B04 000DF944 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3B08 000DF948 90 03 00 1C */ stw r0, 0x1c(r3)
/* 800E3B0C 000DF94C 38 63 00 20 */ addi r3, r3, 0x20
/* 800E3B10 000DF950 42 00 FF 98 */ bdnz lbl_800E3AA8
.global lbl_800E3B14
lbl_800E3B14:
/* 800E3B14 000DF954 54 C3 10 3A */ slwi r3, r6, 2
/* 800E3B18 000DF958 7C 06 20 50 */ subf r0, r6, r4
/* 800E3B1C 000DF95C 7C 7B 1A 14 */ add r3, r27, r3
/* 800E3B20 000DF960 7C 09 03 A6 */ mtctr r0
/* 800E3B24 000DF964 7C 06 20 40 */ cmplw r6, r4
/* 800E3B28 000DF968 40 80 01 0C */ bge lbl_800E3C34
.global lbl_800E3B2C
lbl_800E3B2C:
/* 800E3B2C 000DF96C 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800E3B30 000DF970 64 00 30 00 */ oris r0, r0, 0x3000
/* 800E3B34 000DF974 90 03 00 00 */ stw r0, 0x0(r3)
/* 800E3B38 000DF978 38 63 00 04 */ addi r3, r3, 0x4
/* 800E3B3C 000DF97C 42 00 FF F0 */ bdnz lbl_800E3B2C
/* 800E3B40 000DF980 48 00 00 F4 */ b lbl_800E3C34
.global lbl_800E3B44
lbl_800E3B44:
/* 800E3B44 000DF984 80 1A 00 24 */ lwz r0, 0x24(r26)
/* 800E3B48 000DF988 7F 83 E3 78 */ mr r3, r28
/* 800E3B4C 000DF98C 7F 9A 00 2E */ lwzx r28, r26, r0
/* 800E3B50 000DF990 4B FE 6C F1 */ bl GetResNodeNumEntries__Q34nw4r3g3d6ResMdlCFv
/* 800E3B54 000DF994 80 9A 00 1C */ lwz r4, 0x1c(r26)
/* 800E3B58 000DF998 7C 03 E0 50 */ subf r0, r3, r28
/* 800E3B5C 000DF99C 7C C0 20 50 */ subf r6, r0, r4
/* 800E3B60 000DF9A0 7C 86 20 40 */ cmplw cr1, r6, r4
/* 800E3B64 000DF9A4 40 84 00 D0 */ bge cr1, lbl_800E3C34
/* 800E3B68 000DF9A8 7C 06 20 50 */ subf r0, r6, r4
/* 800E3B6C 000DF9AC 38 A4 FF F8 */ addi r5, r4, -0x8
/* 800E3B70 000DF9B0 28 00 00 08 */ cmplwi r0, 0x8
/* 800E3B74 000DF9B4 40 81 00 94 */ ble lbl_800E3C08
/* 800E3B78 000DF9B8 41 85 00 90 */ bgt cr1, lbl_800E3C08
/* 800E3B7C 000DF9BC 38 05 00 07 */ addi r0, r5, 0x7
/* 800E3B80 000DF9C0 54 C3 10 3A */ slwi r3, r6, 2
/* 800E3B84 000DF9C4 7C 06 00 50 */ subf r0, r6, r0
/* 800E3B88 000DF9C8 54 00 E8 FE */ srwi r0, r0, 3
/* 800E3B8C 000DF9CC 7C 7B 1A 14 */ add r3, r27, r3
/* 800E3B90 000DF9D0 7C 09 03 A6 */ mtctr r0
/* 800E3B94 000DF9D4 7C 06 28 40 */ cmplw r6, r5
/* 800E3B98 000DF9D8 40 80 00 70 */ bge lbl_800E3C08
.global lbl_800E3B9C
lbl_800E3B9C:
/* 800E3B9C 000DF9DC 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800E3BA0 000DF9E0 38 C6 00 08 */ addi r6, r6, 0x8
/* 800E3BA4 000DF9E4 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BA8 000DF9E8 90 03 00 00 */ stw r0, 0x0(r3)
/* 800E3BAC 000DF9EC 80 03 00 04 */ lwz r0, 0x4(r3)
/* 800E3BB0 000DF9F0 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BB4 000DF9F4 90 03 00 04 */ stw r0, 0x4(r3)
/* 800E3BB8 000DF9F8 80 03 00 08 */ lwz r0, 0x8(r3)
/* 800E3BBC 000DF9FC 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BC0 000DFA00 90 03 00 08 */ stw r0, 0x8(r3)
/* 800E3BC4 000DFA04 80 03 00 0C */ lwz r0, 0xc(r3)
/* 800E3BC8 000DFA08 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BCC 000DFA0C 90 03 00 0C */ stw r0, 0xc(r3)
/* 800E3BD0 000DFA10 80 03 00 10 */ lwz r0, 0x10(r3)
/* 800E3BD4 000DFA14 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BD8 000DFA18 90 03 00 10 */ stw r0, 0x10(r3)
/* 800E3BDC 000DFA1C 80 03 00 14 */ lwz r0, 0x14(r3)
/* 800E3BE0 000DFA20 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BE4 000DFA24 90 03 00 14 */ stw r0, 0x14(r3)
/* 800E3BE8 000DFA28 80 03 00 18 */ lwz r0, 0x18(r3)
/* 800E3BEC 000DFA2C 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BF0 000DFA30 90 03 00 18 */ stw r0, 0x18(r3)
/* 800E3BF4 000DFA34 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 800E3BF8 000DFA38 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3BFC 000DFA3C 90 03 00 1C */ stw r0, 0x1c(r3)
/* 800E3C00 000DFA40 38 63 00 20 */ addi r3, r3, 0x20
/* 800E3C04 000DFA44 42 00 FF 98 */ bdnz lbl_800E3B9C
.global lbl_800E3C08
lbl_800E3C08:
/* 800E3C08 000DFA48 54 C3 10 3A */ slwi r3, r6, 2
/* 800E3C0C 000DFA4C 7C 06 20 50 */ subf r0, r6, r4
/* 800E3C10 000DFA50 7C 7B 1A 14 */ add r3, r27, r3
/* 800E3C14 000DFA54 7C 09 03 A6 */ mtctr r0
/* 800E3C18 000DFA58 7C 06 20 40 */ cmplw r6, r4
/* 800E3C1C 000DFA5C 40 80 00 18 */ bge lbl_800E3C34
.global lbl_800E3C20
lbl_800E3C20:
/* 800E3C20 000DFA60 80 03 00 00 */ lwz r0, 0x0(r3)
/* 800E3C24 000DFA64 54 00 00 C2 */ rlwinm r0, r0, 0, 3, 1
/* 800E3C28 000DFA68 90 03 00 00 */ stw r0, 0x0(r3)
/* 800E3C2C 000DFA6C 38 63 00 04 */ addi r3, r3, 0x4
/* 800E3C30 000DFA70 42 00 FF F0 */ bdnz lbl_800E3C20
.global lbl_800E3C34
lbl_800E3C34:
/* 800E3C34 000DFA74 39 61 00 30 */ addi r11, r1, 0x30
/* 800E3C38 000DFA78 4B F2 37 49 */ bl lbl_80007380
/* 800E3C3C 000DFA7C 80 01 00 34 */ lwz r0, 0x34(r1)
/* 800E3C40 000DFA80 7C 08 03 A6 */ mtlr r0
/* 800E3C44 000DFA84 38 21 00 30 */ addi r1, r1, 0x30
/* 800E3C48 000DFA88 4E 80 00 20 */ blr
/* 800E3C4C 000DFA8C 00 00 00 00 */ .4byte 0x00000000
.include "macros.inc"
.section .data, "wa" # 0x80421040 - 0x80496700 ; 0x000756C0
.global "@9581_80440F68"
"@9581_80440F68":
.4byte 0x4E6F6465
.4byte 0x54726565
.4byte 0
.4byte 0
.include "macros.inc"
.section .sdata, "wa" # 0x80556420 - 0x8055C6E0 ; 0x000062C0
.global "@9736"
"@9736":
.4byte 0x4E6F6465
.4byte 0x4D697800
.include "macros.inc"
.section .sdata2, "wa" # 0x8055DF80 - 0x805643C0 ; 0x00006440
.global "@9400"
"@9400":
.4byte 0x3F800000
.global "@9737"
"@9737":
.4byte 0