prime/asm/Kyoto/Graphics/DolphinCModel.s

1497 lines
71 KiB
ArmAsm

.include "macros.inc"
.section .sdata
.global lbl_805A89D0
lbl_805A89D0:
# ROM: 0x3F6370
.4byte 0x01000000
.4byte 0
.section .data
.global lbl_803EF738
lbl_803EF738:
# ROM: 0x3EC738
.4byte 0
.4byte 0
.4byte "__dt__15TToken<6CModel>Fv"
.4byte 0
.section .text, "ax" # 0x80003640 - 0x803CB1C0
.global UpdateLastFrame__6CModelFv
UpdateLastFrame__6CModelFv:
/* 80355120 00352080 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355124 00352084 7C 08 02 A6 */ mflr r0
/* 80355128 00352088 90 01 00 14 */ stw r0, 0x14(r1)
/* 8035512C 0035208C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355130 00352090 7C 7F 1B 78 */ mr r31, r3
/* 80355134 00352094 4B FB 46 C9 */ bl GetFrameCounter__9CGraphicsFv
/* 80355138 00352098 90 7F 00 38 */ stw r3, 0x38(r31)
/* 8035513C 0035209C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355140 003520A0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355144 003520A4 7C 08 03 A6 */ mtlr r0
/* 80355148 003520A8 38 21 00 10 */ addi r1, r1, 0x10
/* 8035514C 003520AC 4E 80 00 20 */ blr
.global sub_80355150
sub_80355150:
/* 80355150 003520B0 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80355154 003520B4 7C 08 02 A6 */ mflr r0
/* 80355158 003520B8 90 01 00 74 */ stw r0, 0x74(r1)
/* 8035515C 003520BC 38 00 00 00 */ li r0, 0
/* 80355160 003520C0 BF 61 00 5C */ stmw r27, 0x5c(r1)
/* 80355164 003520C4 7C 7B 1B 78 */ mr r27, r3
/* 80355168 003520C8 7C 9D 23 78 */ mr r29, r4
/* 8035516C 003520CC 80 63 00 00 */ lwz r3, 0(r3)
/* 80355170 003520D0 90 1B 00 00 */ stw r0, 0(r27)
/* 80355174 003520D4 7F 83 E8 50 */ subf r28, r3, r29
/* 80355178 003520D8 80 7B 00 00 */ lwz r3, 0(r27)
/* 8035517C 003520DC 4B FC 07 B5 */ bl Free__7CMemoryFPCv
/* 80355180 003520E0 93 BB 00 00 */ stw r29, 0(r27)
/* 80355184 003520E4 38 C0 00 00 */ li r6, 0
/* 80355188 003520E8 38 A0 00 00 */ li r5, 0
/* 8035518C 003520EC 48 00 00 28 */ b lbl_803551B4
lbl_80355190:
/* 80355190 003520F0 80 7B 00 24 */ lwz r3, 0x24(r27)
/* 80355194 003520F4 38 85 00 10 */ addi r4, r5, 0x10
/* 80355198 003520F8 7C 03 20 2E */ lwzx r0, r3, r4
/* 8035519C 003520FC 28 00 00 00 */ cmplwi r0, 0
/* 803551A0 00352100 41 82 00 0C */ beq lbl_803551AC
/* 803551A4 00352104 7C 00 E2 14 */ add r0, r0, r28
/* 803551A8 00352108 7C 03 21 2E */ stwx r0, r3, r4
lbl_803551AC:
/* 803551AC 0035210C 38 A5 00 14 */ addi r5, r5, 0x14
/* 803551B0 00352110 38 C6 00 01 */ addi r6, r6, 1
lbl_803551B4:
/* 803551B4 00352114 80 1B 00 1C */ lwz r0, 0x1c(r27)
/* 803551B8 00352118 7C 06 00 00 */ cmpw r6, r0
/* 803551BC 0035211C 41 80 FF D4 */ blt lbl_80355190
/* 803551C0 00352120 80 FB 00 28 */ lwz r7, 0x28(r27)
/* 803551C4 00352124 80 C7 00 08 */ lwz r6, 8(r7)
/* 803551C8 00352128 80 A7 00 0C */ lwz r5, 0xc(r7)
/* 803551CC 0035212C 80 87 00 10 */ lwz r4, 0x10(r7)
/* 803551D0 00352130 28 06 00 00 */ cmplwi r6, 0
/* 803551D4 00352134 80 67 00 14 */ lwz r3, 0x14(r7)
/* 803551D8 00352138 80 07 00 18 */ lwz r0, 0x18(r7)
/* 803551DC 0035213C C0 07 00 20 */ lfs f0, 0x20(r7)
/* 803551E0 00352140 90 C1 00 30 */ stw r6, 0x30(r1)
/* 803551E4 00352144 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 803551E8 00352148 C0 07 00 24 */ lfs f0, 0x24(r7)
/* 803551EC 0035214C 90 A1 00 2C */ stw r5, 0x2c(r1)
/* 803551F0 00352150 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 803551F4 00352154 C0 07 00 28 */ lfs f0, 0x28(r7)
/* 803551F8 00352158 90 81 00 28 */ stw r4, 0x28(r1)
/* 803551FC 0035215C D0 01 00 3C */ stfs f0, 0x3c(r1)
/* 80355200 00352160 C0 07 00 2C */ lfs f0, 0x2c(r7)
/* 80355204 00352164 90 61 00 24 */ stw r3, 0x24(r1)
/* 80355208 00352168 D0 01 00 40 */ stfs f0, 0x40(r1)
/* 8035520C 0035216C C0 07 00 30 */ lfs f0, 0x30(r7)
/* 80355210 00352170 90 01 00 20 */ stw r0, 0x20(r1)
/* 80355214 00352174 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 80355218 00352178 C0 07 00 34 */ lfs f0, 0x34(r7)
/* 8035521C 0035217C D0 01 00 48 */ stfs f0, 0x48(r1)
/* 80355220 00352180 88 07 00 40 */ lbz r0, 0x40(r7)
/* 80355224 00352184 8B C7 00 41 */ lbz r30, 0x41(r7)
/* 80355228 00352188 54 00 CF FE */ rlwinm r0, r0, 0x19, 0x1f, 0x1f
/* 8035522C 0035218C 83 A7 00 44 */ lwz r29, 0x44(r7)
/* 80355230 00352190 7C 00 00 34 */ cntlzw r0, r0
/* 80355234 00352194 54 1F D9 7E */ srwi r31, r0, 5
/* 80355238 00352198 41 82 00 0C */ beq lbl_80355244
/* 8035523C 0035219C 7C 06 E2 14 */ add r0, r6, r28
/* 80355240 003521A0 90 01 00 30 */ stw r0, 0x30(r1)
lbl_80355244:
/* 80355244 003521A4 80 01 00 2C */ lwz r0, 0x2c(r1)
/* 80355248 003521A8 28 00 00 00 */ cmplwi r0, 0
/* 8035524C 003521AC 41 82 00 0C */ beq lbl_80355258
/* 80355250 003521B0 7C 00 E2 14 */ add r0, r0, r28
/* 80355254 003521B4 90 01 00 2C */ stw r0, 0x2c(r1)
lbl_80355258:
/* 80355258 003521B8 80 01 00 28 */ lwz r0, 0x28(r1)
/* 8035525C 003521BC 28 00 00 00 */ cmplwi r0, 0
/* 80355260 003521C0 41 82 00 0C */ beq lbl_8035526C
/* 80355264 003521C4 7C 00 E2 14 */ add r0, r0, r28
/* 80355268 003521C8 90 01 00 28 */ stw r0, 0x28(r1)
lbl_8035526C:
/* 8035526C 003521CC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355270 003521D0 28 00 00 00 */ cmplwi r0, 0
/* 80355274 003521D4 41 82 00 0C */ beq lbl_80355280
/* 80355278 003521D8 7C 00 E2 14 */ add r0, r0, r28
/* 8035527C 003521DC 90 01 00 24 */ stw r0, 0x24(r1)
lbl_80355280:
/* 80355280 003521E0 80 01 00 20 */ lwz r0, 0x20(r1)
/* 80355284 003521E4 28 00 00 00 */ cmplwi r0, 0
/* 80355288 003521E8 41 82 00 0C */ beq lbl_80355294
/* 8035528C 003521EC 7C 00 E2 14 */ add r0, r0, r28
/* 80355290 003521F0 90 01 00 20 */ stw r0, 0x20(r1)
lbl_80355294:
/* 80355294 003521F4 38 A0 00 00 */ li r5, 0
/* 80355298 003521F8 38 80 00 00 */ li r4, 0
/* 8035529C 003521FC 48 00 00 24 */ b lbl_803552C0
lbl_803552A0:
/* 803552A0 00352200 80 7B 00 14 */ lwz r3, 0x14(r27)
/* 803552A4 00352204 7C 03 20 2E */ lwzx r0, r3, r4
/* 803552A8 00352208 28 00 00 00 */ cmplwi r0, 0
/* 803552AC 0035220C 41 82 00 0C */ beq lbl_803552B8
/* 803552B0 00352210 7C 00 E2 14 */ add r0, r0, r28
/* 803552B4 00352214 7C 03 21 2E */ stwx r0, r3, r4
lbl_803552B8:
/* 803552B8 00352218 38 84 00 04 */ addi r4, r4, 4
/* 803552BC 0035221C 38 A5 00 01 */ addi r5, r5, 1
lbl_803552C0:
/* 803552C0 00352220 80 1B 00 0C */ lwz r0, 0xc(r27)
/* 803552C4 00352224 7C 05 00 00 */ cmpw r5, r0
/* 803552C8 00352228 41 80 FF D8 */ blt lbl_803552A0
/* 803552CC 0035222C 3C 80 80 3E */ lis r4, lbl_803D8308@ha
/* 803552D0 00352230 38 60 00 48 */ li r3, 0x48
/* 803552D4 00352234 38 84 83 08 */ addi r4, r4, lbl_803D8308@l
/* 803552D8 00352238 38 A0 00 00 */ li r5, 0
/* 803552DC 0035223C 4B FC 05 91 */ bl __nw__FUlPCcPCc
/* 803552E0 00352240 7C 7C 1B 79 */ or. r28, r3, r3
/* 803552E4 00352244 41 82 00 44 */ beq lbl_80355328
/* 803552E8 00352248 80 BB 00 24 */ lwz r5, 0x24(r27)
/* 803552EC 0035224C 38 01 00 34 */ addi r0, r1, 0x34
/* 803552F0 00352250 80 C1 00 20 */ lwz r6, 0x20(r1)
/* 803552F4 00352254 38 9B 00 08 */ addi r4, r27, 8
/* 803552F8 00352258 80 E1 00 30 */ lwz r7, 0x30(r1)
/* 803552FC 0035225C 90 C1 00 08 */ stw r6, 8(r1)
/* 80355300 00352260 81 01 00 2C */ lwz r8, 0x2c(r1)
/* 80355304 00352264 90 01 00 0C */ stw r0, 0xc(r1)
/* 80355308 00352268 81 21 00 28 */ lwz r9, 0x28(r1)
/* 8035530C 0035226C 93 C1 00 10 */ stw r30, 0x10(r1)
/* 80355310 00352270 81 41 00 24 */ lwz r10, 0x24(r1)
/* 80355314 00352274 93 E1 00 14 */ stw r31, 0x14(r1)
/* 80355318 00352278 93 A1 00 18 */ stw r29, 0x18(r1)
/* 8035531C 0035227C 80 C5 00 10 */ lwz r6, 0x10(r5)
/* 80355320 00352280 4B FB 26 35 */ bl "__ct__10CCubeModelFPQ24rstl37vector<Pv,Q24rstl17rmemory_allocator>PQ24rstl60vector<23TCachedToken<8CTexture>,Q24rstl17rmemory_allocator>PCvPCvPCvPCvPCvPCvRC6CAABoxUcb"
/* 80355324 00352284 7C 7C 1B 78 */ mr r28, r3
lbl_80355328:
/* 80355328 00352288 80 7B 00 28 */ lwz r3, 0x28(r27)
/* 8035532C 0035228C 4B FC 06 05 */ bl Free__7CMemoryFPCv
/* 80355330 00352290 93 9B 00 28 */ stw r28, 0x28(r27)
/* 80355334 00352294 7F 63 DB 78 */ mr r3, r27
/* 80355338 00352298 48 00 02 15 */ bl MoveToThisFrameList__6CModelCFv
/* 8035533C 0035229C BB 61 00 5C */ lmw r27, 0x5c(r1)
/* 80355340 003522A0 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80355344 003522A4 7C 08 03 A6 */ mtlr r0
/* 80355348 003522A8 38 21 00 70 */ addi r1, r1, 0x70
/* 8035534C 003522AC 4E 80 00 20 */ blr
.global sub_80355350
sub_80355350:
/* 80355350 003522B0 80 84 00 00 */ lwz r4, 0(r4)
/* 80355354 003522B4 7C 04 00 D0 */ neg r0, r4
/* 80355358 003522B8 7C 00 23 78 */ or r0, r0, r4
/* 8035535C 003522BC 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80355360 003522C0 98 03 00 00 */ stb r0, 0(r3)
/* 80355364 003522C4 90 83 00 04 */ stw r4, 4(r3)
/* 80355368 003522C8 4E 80 00 20 */ blr
.global sub_8035536c
sub_8035536c:
/* 8035536C 003522CC 80 63 00 04 */ lwz r3, 4(r3)
/* 80355370 003522D0 4E 80 00 20 */ blr
.global EnableTextureTimeout__6CModelFv
EnableTextureTimeout__6CModelFv:
/* 80355374 003522D4 38 00 00 01 */ li r0, 1
/* 80355378 003522D8 98 0D 9E 10 */ stb r0, lbl_805A89D0@sda21(r13)
/* 8035537C 003522DC 4E 80 00 20 */ blr
.global DisableTextureTimeout__6CModelFv
DisableTextureTimeout__6CModelFv:
/* 80355380 003522E0 38 00 00 00 */ li r0, 0
/* 80355384 003522E4 98 0D 9E 10 */ stb r0, lbl_805A89D0@sda21(r13)
/* 80355388 003522E8 4E 80 00 20 */ blr
.global FrameDone__6CModelFv
FrameDone__6CModelFv:
/* 8035538C 003522EC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80355390 003522F0 7C 08 02 A6 */ mflr r0
/* 80355394 003522F4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80355398 003522F8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8035539C 003522FC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803553A0 00352300 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803553A4 00352304 93 81 00 10 */ stw r28, 0x10(r1)
/* 803553A8 00352308 80 6D AA 88 */ lwz r3, lbl_805A9648@sda21(r13)
/* 803553AC 0035230C 88 0D 9E 10 */ lbz r0, lbl_805A89D0@sda21(r13)
/* 803553B0 00352310 38 63 00 01 */ addi r3, r3, 1
/* 803553B4 00352314 28 00 00 00 */ cmplwi r0, 0
/* 803553B8 00352318 90 6D AA 88 */ stw r3, lbl_805A9648@sda21(r13)
/* 803553BC 0035231C 41 82 00 84 */ beq lbl_80355440
/* 803553C0 00352320 83 AD AA 84 */ lwz r29, lbl_805A9644@sda21(r13)
/* 803553C4 00352324 3B E0 00 00 */ li r31, 0
/* 803553C8 00352328 48 00 00 58 */ b lbl_80355420
lbl_803553CC:
/* 803553CC 0035232C 83 9D 00 34 */ lwz r28, 0x34(r29)
/* 803553D0 00352330 7F A3 EB 78 */ mr r3, r29
/* 803553D4 00352334 38 80 00 00 */ li r4, 0
/* 803553D8 00352338 48 00 05 85 */ bl VerifyCurrentShader__6CModelCFi
/* 803553DC 0035233C 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 803553E0 00352340 3B C3 00 14 */ addi r30, r3, 0x14
/* 803553E4 00352344 48 00 00 10 */ b lbl_803553F4
lbl_803553E8:
/* 803553E8 00352348 7F C3 F3 78 */ mr r3, r30
/* 803553EC 0035234C 48 00 00 75 */ bl UnlockTextures__Q26CModel7SShaderFv
/* 803553F0 00352350 3B DE 00 14 */ addi r30, r30, 0x14
lbl_803553F4:
/* 803553F4 00352354 80 1D 00 1C */ lwz r0, 0x1c(r29)
/* 803553F8 00352358 80 7D 00 24 */ lwz r3, 0x24(r29)
/* 803553FC 0035235C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80355400 00352360 7C 03 02 14 */ add r0, r3, r0
/* 80355404 00352364 7C 1E 00 40 */ cmplw r30, r0
/* 80355408 00352368 40 82 FF E0 */ bne lbl_803553E8
/* 8035540C 0035236C 80 7D 00 28 */ lwz r3, 0x28(r29)
/* 80355410 00352370 4B FB 13 FD */ bl UnlockTextures__10CCubeModelCFv
/* 80355414 00352374 93 FD 00 34 */ stw r31, 0x34(r29)
/* 80355418 00352378 93 FD 00 30 */ stw r31, 0x30(r29)
/* 8035541C 0035237C 7F 9D E3 78 */ mr r29, r28
lbl_80355420:
/* 80355420 00352380 28 1D 00 00 */ cmplwi r29, 0
/* 80355424 00352384 40 82 FF A8 */ bne lbl_803553CC
/* 80355428 00352388 80 8D AA 80 */ lwz r4, lbl_805A9640@sda21(r13)
/* 8035542C 0035238C 38 00 00 00 */ li r0, 0
/* 80355430 00352390 80 6D AA 7C */ lwz r3, lbl_805A963C@sda21(r13)
/* 80355434 00352394 90 8D AA 84 */ stw r4, lbl_805A9644@sda21(r13)
/* 80355438 00352398 90 6D AA 80 */ stw r3, lbl_805A9640@sda21(r13)
/* 8035543C 0035239C 90 0D AA 7C */ stw r0, lbl_805A963C@sda21(r13)
lbl_80355440:
/* 80355440 003523A0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355444 003523A4 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80355448 003523A8 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8035544C 003523AC 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80355450 003523B0 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80355454 003523B4 7C 08 03 A6 */ mtlr r0
/* 80355458 003523B8 38 21 00 20 */ addi r1, r1, 0x20
/* 8035545C 003523BC 4E 80 00 20 */ blr
.global UnlockTextures__Q26CModel7SShaderFv
UnlockTextures__Q26CModel7SShaderFv:
/* 80355460 003523C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80355464 003523C4 7C 08 02 A6 */ mflr r0
/* 80355468 003523C8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8035546C 003523CC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80355470 003523D0 3B E0 00 00 */ li r31, 0
/* 80355474 003523D4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80355478 003523D8 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8035547C 003523DC 7C 7D 1B 78 */ mr r29, r3
/* 80355480 003523E0 83 C3 00 0C */ lwz r30, 0xc(r3)
/* 80355484 003523E4 48 00 00 14 */ b lbl_80355498
lbl_80355488:
/* 80355488 003523E8 93 FE 00 08 */ stw r31, 8(r30)
/* 8035548C 003523EC 7F C3 F3 78 */ mr r3, r30
/* 80355490 003523F0 4B FE B8 B1 */ bl Unlock__6CTokenFv
/* 80355494 003523F4 3B DE 00 0C */ addi r30, r30, 0xc
lbl_80355498:
/* 80355498 003523F8 80 1D 00 04 */ lwz r0, 4(r29)
/* 8035549C 003523FC 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 803554A0 00352400 1C 00 00 0C */ mulli r0, r0, 0xc
/* 803554A4 00352404 7C 03 02 14 */ add r0, r3, r0
/* 803554A8 00352408 7C 1E 00 40 */ cmplw r30, r0
/* 803554AC 0035240C 40 82 FF DC */ bne lbl_80355488
/* 803554B0 00352410 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803554B4 00352414 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803554B8 00352418 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803554BC 0035241C 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803554C0 00352420 7C 08 03 A6 */ mtlr r0
/* 803554C4 00352424 38 21 00 20 */ addi r1, r1, 0x20
/* 803554C8 00352428 4E 80 00 20 */ blr
.global RemoveFromList__6CModelCFv
RemoveFromList__6CModelCFv:
/* 803554CC 0035242C 80 83 00 30 */ lwz r4, 0x30(r3)
/* 803554D0 00352430 28 04 00 00 */ cmplwi r4, 0
/* 803554D4 00352434 41 82 00 10 */ beq lbl_803554E4
/* 803554D8 00352438 80 03 00 34 */ lwz r0, 0x34(r3)
/* 803554DC 0035243C 90 04 00 34 */ stw r0, 0x34(r4)
/* 803554E0 00352440 48 00 00 48 */ b lbl_80355528
lbl_803554E4:
/* 803554E4 00352444 80 0D AA 7C */ lwz r0, lbl_805A963C@sda21(r13)
/* 803554E8 00352448 7C 03 00 40 */ cmplw r3, r0
/* 803554EC 0035244C 40 82 00 10 */ bne lbl_803554FC
/* 803554F0 00352450 80 03 00 34 */ lwz r0, 0x34(r3)
/* 803554F4 00352454 90 0D AA 7C */ stw r0, lbl_805A963C@sda21(r13)
/* 803554F8 00352458 48 00 00 30 */ b lbl_80355528
lbl_803554FC:
/* 803554FC 0035245C 80 0D AA 80 */ lwz r0, lbl_805A9640@sda21(r13)
/* 80355500 00352460 7C 03 00 40 */ cmplw r3, r0
/* 80355504 00352464 40 82 00 10 */ bne lbl_80355514
/* 80355508 00352468 80 03 00 34 */ lwz r0, 0x34(r3)
/* 8035550C 0035246C 90 0D AA 80 */ stw r0, lbl_805A9640@sda21(r13)
/* 80355510 00352470 48 00 00 18 */ b lbl_80355528
lbl_80355514:
/* 80355514 00352474 80 0D AA 84 */ lwz r0, lbl_805A9644@sda21(r13)
/* 80355518 00352478 7C 03 00 40 */ cmplw r3, r0
/* 8035551C 0035247C 40 82 00 0C */ bne lbl_80355528
/* 80355520 00352480 80 03 00 34 */ lwz r0, 0x34(r3)
/* 80355524 00352484 90 0D AA 84 */ stw r0, lbl_805A9644@sda21(r13)
lbl_80355528:
/* 80355528 00352488 80 83 00 34 */ lwz r4, 0x34(r3)
/* 8035552C 0035248C 28 04 00 00 */ cmplwi r4, 0
/* 80355530 00352490 41 82 00 0C */ beq lbl_8035553C
/* 80355534 00352494 80 03 00 30 */ lwz r0, 0x30(r3)
/* 80355538 00352498 90 04 00 30 */ stw r0, 0x30(r4)
lbl_8035553C:
/* 8035553C 0035249C 38 00 00 00 */ li r0, 0
/* 80355540 003524A0 90 03 00 30 */ stw r0, 0x30(r3)
/* 80355544 003524A4 90 03 00 34 */ stw r0, 0x34(r3)
/* 80355548 003524A8 4E 80 00 20 */ blr
.global MoveToThisFrameList__6CModelCFv
MoveToThisFrameList__6CModelCFv:
/* 8035554C 003524AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355550 003524B0 7C 08 02 A6 */ mflr r0
/* 80355554 003524B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355558 003524B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8035555C 003524BC 7C 7F 1B 78 */ mr r31, r3
/* 80355560 003524C0 4B FF FB C1 */ bl UpdateLastFrame__6CModelFv
/* 80355564 003524C4 80 0D AA 7C */ lwz r0, lbl_805A963C@sda21(r13)
/* 80355568 003524C8 7C 00 F8 40 */ cmplw r0, r31
/* 8035556C 003524CC 41 82 00 28 */ beq lbl_80355594
/* 80355570 003524D0 7F E3 FB 78 */ mr r3, r31
/* 80355574 003524D4 4B FF FF 59 */ bl RemoveFromList__6CModelCFv
/* 80355578 003524D8 80 0D AA 7C */ lwz r0, lbl_805A963C@sda21(r13)
/* 8035557C 003524DC 28 00 00 00 */ cmplwi r0, 0
/* 80355580 003524E0 41 82 00 10 */ beq lbl_80355590
/* 80355584 003524E4 90 1F 00 34 */ stw r0, 0x34(r31)
/* 80355588 003524E8 80 7F 00 34 */ lwz r3, 0x34(r31)
/* 8035558C 003524EC 93 E3 00 30 */ stw r31, 0x30(r3)
lbl_80355590:
/* 80355590 003524F0 93 ED AA 7C */ stw r31, lbl_805A963C@sda21(r13)
lbl_80355594:
/* 80355594 003524F4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355598 003524F8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8035559C 003524FC 7C 08 03 A6 */ mtlr r0
/* 803555A0 00352500 38 21 00 10 */ addi r1, r1, 0x10
/* 803555A4 00352504 4E 80 00 20 */ blr
.global IsLoaded__6CModelCFi
IsLoaded__6CModelCFi:
/* 803555A8 00352508 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803555AC 0035250C 7C 08 02 A6 */ mflr r0
/* 803555B0 00352510 90 01 00 14 */ stw r0, 0x14(r1)
/* 803555B4 00352514 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803555B8 00352518 7C 7F 1B 78 */ mr r31, r3
/* 803555BC 0035251C 48 00 03 A1 */ bl VerifyCurrentShader__6CModelCFi
/* 803555C0 00352520 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 803555C4 00352524 80 63 00 1C */ lwz r3, 0x1c(r3)
/* 803555C8 00352528 80 03 00 04 */ lwz r0, 4(r3)
/* 803555CC 0035252C 80 C3 00 0C */ lwz r6, 0xc(r3)
/* 803555D0 00352530 1C 00 00 0C */ mulli r0, r0, 0xc
/* 803555D4 00352534 7C A6 02 14 */ add r5, r6, r0
/* 803555D8 00352538 48 00 00 3C */ b lbl_80355614
lbl_803555DC:
/* 803555DC 0035253C 80 06 00 08 */ lwz r0, 8(r6)
/* 803555E0 00352540 38 80 00 00 */ li r4, 0
/* 803555E4 00352544 28 00 00 00 */ cmplwi r0, 0
/* 803555E8 00352548 40 82 00 14 */ bne lbl_803555FC
/* 803555EC 0035254C 80 66 00 00 */ lwz r3, 0(r6)
/* 803555F0 00352550 80 03 00 10 */ lwz r0, 0x10(r3)
/* 803555F4 00352554 28 00 00 00 */ cmplwi r0, 0
/* 803555F8 00352558 41 82 00 08 */ beq lbl_80355600
lbl_803555FC:
/* 803555FC 0035255C 38 80 00 01 */ li r4, 1
lbl_80355600:
/* 80355600 00352560 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80355604 00352564 40 82 00 0C */ bne lbl_80355610
/* 80355608 00352568 38 60 00 00 */ li r3, 0
/* 8035560C 0035256C 48 00 00 14 */ b lbl_80355620
lbl_80355610:
/* 80355610 00352570 38 C6 00 0C */ addi r6, r6, 0xc
lbl_80355614:
/* 80355614 00352574 7C 06 28 40 */ cmplw r6, r5
/* 80355618 00352578 40 82 FF C4 */ bne lbl_803555DC
/* 8035561C 0035257C 38 60 00 01 */ li r3, 1
lbl_80355620:
/* 80355620 00352580 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355624 00352584 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355628 00352588 7C 08 03 A6 */ mtlr r0
/* 8035562C 0035258C 38 21 00 10 */ addi r1, r1, 0x10
/* 80355630 00352590 4E 80 00 20 */ blr
.global Touch__6CModelCFi
Touch__6CModelCFi:
/* 80355634 00352594 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355638 00352598 7C 08 02 A6 */ mflr r0
/* 8035563C 0035259C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355640 003525A0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355644 003525A4 7C 7F 1B 78 */ mr r31, r3
/* 80355648 003525A8 93 C1 00 08 */ stw r30, 8(r1)
/* 8035564C 003525AC 7C 9E 23 78 */ mr r30, r4
/* 80355650 003525B0 4B FF FE FD */ bl MoveToThisFrameList__6CModelCFv
/* 80355654 003525B4 7F E3 FB 78 */ mr r3, r31
/* 80355658 003525B8 7F C4 F3 78 */ mr r4, r30
/* 8035565C 003525BC 48 00 03 01 */ bl VerifyCurrentShader__6CModelCFi
/* 80355660 003525C0 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80355664 003525C4 4B FB 17 59 */ bl TryLockTextures__10CCubeModelCFv
/* 80355668 003525C8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8035566C 003525CC 41 82 00 40 */ beq lbl_803556AC
/* 80355670 003525D0 80 7F 00 28 */ lwz r3, 0x28(r31)
/* 80355674 003525D4 83 E3 00 1C */ lwz r31, 0x1c(r3)
/* 80355678 003525D8 83 DF 00 0C */ lwz r30, 0xc(r31)
/* 8035567C 003525DC 48 00 00 18 */ b lbl_80355694
lbl_80355680:
/* 80355680 003525E0 80 7E 00 08 */ lwz r3, 8(r30)
/* 80355684 003525E4 28 03 00 00 */ cmplwi r3, 0
/* 80355688 003525E8 41 82 00 08 */ beq lbl_80355690
/* 8035568C 003525EC 4B FB 95 9D */ bl LoadToMRAM__8CTextureCFv
lbl_80355690:
/* 80355690 003525F0 3B DE 00 0C */ addi r30, r30, 0xc
lbl_80355694:
/* 80355694 003525F4 80 1F 00 04 */ lwz r0, 4(r31)
/* 80355698 003525F8 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 8035569C 003525FC 1C 00 00 0C */ mulli r0, r0, 0xc
/* 803556A0 00352600 7C 03 02 14 */ add r0, r3, r0
/* 803556A4 00352604 7C 1E 00 40 */ cmplw r30, r0
/* 803556A8 00352608 40 82 FF D8 */ bne lbl_80355680
lbl_803556AC:
/* 803556AC 0035260C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803556B0 00352610 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803556B4 00352614 83 C1 00 08 */ lwz r30, 8(r1)
/* 803556B8 00352618 7C 08 03 A6 */ mtlr r0
/* 803556BC 0035261C 38 21 00 10 */ addi r1, r1, 0x10
/* 803556C0 00352620 4E 80 00 20 */ blr
.global GetNormals__6CModelCFv
GetNormals__6CModelCFv:
/* 803556C4 00352624 80 63 00 28 */ lwz r3, 0x28(r3)
/* 803556C8 00352628 80 63 00 0C */ lwz r3, 0xc(r3)
/* 803556CC 0035262C 4E 80 00 20 */ blr
.global GetPositions__6CModelCFv
GetPositions__6CModelCFv:
/* 803556D0 00352630 80 63 00 28 */ lwz r3, 0x28(r3)
/* 803556D4 00352634 80 63 00 08 */ lwz r3, 8(r3)
/* 803556D8 00352638 4E 80 00 20 */ blr
.global "FModelFactory__FRC10SObjectTagRCQ24rstl12auto_ptr<Uc>iRC15CVParamTransfer"
"FModelFactory__FRC10SObjectTagRCQ24rstl12auto_ptr<Uc>iRC15CVParamTransfer":
/* 803556DC 0035263C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803556E0 00352640 7C 08 02 A6 */ mflr r0
/* 803556E4 00352644 90 01 00 34 */ stw r0, 0x34(r1)
/* 803556E8 00352648 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 803556EC 0035264C 7C 7F 1B 78 */ mr r31, r3
/* 803556F0 00352650 93 C1 00 28 */ stw r30, 0x28(r1)
/* 803556F4 00352654 93 A1 00 24 */ stw r29, 0x24(r1)
/* 803556F8 00352658 7C DD 33 78 */ mr r29, r6
/* 803556FC 0035265C 93 81 00 20 */ stw r28, 0x20(r1)
/* 80355700 00352660 7C BC 2B 78 */ mr r28, r5
/* 80355704 00352664 80 87 00 00 */ lwz r4, 0(r7)
/* 80355708 00352668 90 81 00 08 */ stw r4, 8(r1)
/* 8035570C 0035266C 80 64 00 04 */ lwz r3, 4(r4)
/* 80355710 00352670 38 03 00 01 */ addi r0, r3, 1
/* 80355714 00352674 90 04 00 04 */ stw r0, 4(r4)
/* 80355718 00352678 80 61 00 08 */ lwz r3, 8(r1)
/* 8035571C 0035267C 80 63 00 00 */ lwz r3, 0(r3)
/* 80355720 00352680 83 C3 00 04 */ lwz r30, 4(r3)
/* 80355724 00352684 48 02 28 61 */ bl GXInvalidateVtxCache
/* 80355728 00352688 3C 80 80 3E */ lis r4, lbl_803D8308@ha
/* 8035572C 0035268C 38 60 00 3C */ li r3, 0x3c
/* 80355730 00352690 38 84 83 08 */ addi r4, r4, lbl_803D8308@l
/* 80355734 00352694 38 A0 00 00 */ li r5, 0
/* 80355738 00352698 4B FC 01 35 */ bl __nw__FUlPCcPCc
/* 8035573C 0035269C 7C 64 1B 79 */ or. r4, r3, r3
/* 80355740 003526A0 41 82 00 18 */ beq lbl_80355758
/* 80355744 003526A4 7F 84 E3 78 */ mr r4, r28
/* 80355748 003526A8 7F A5 EB 78 */ mr r5, r29
/* 8035574C 003526AC 7F C6 F3 78 */ mr r6, r30
/* 80355750 003526B0 48 00 07 71 */ bl "__ct__6CModelFRCQ24rstl12auto_ptr<Uc>iR12IObjectStore"
/* 80355754 003526B4 7C 64 1B 78 */ mr r4, r3
lbl_80355758:
/* 80355758 003526B8 7C 04 00 D0 */ neg r0, r4
/* 8035575C 003526BC 90 81 00 10 */ stw r4, 0x10(r1)
/* 80355760 003526C0 7C 00 23 78 */ or r0, r0, r4
/* 80355764 003526C4 38 61 00 14 */ addi r3, r1, 0x14
/* 80355768 003526C8 54 00 0F FE */ srwi r0, r0, 0x1f
/* 8035576C 003526CC 38 81 00 0C */ addi r4, r1, 0xc
/* 80355770 003526D0 98 01 00 0C */ stb r0, 0xc(r1)
/* 80355774 003526D4 48 00 01 21 */ bl "GetIObjObjectFor__15TToken<6CModel>FRCQ24rstl17auto_ptr<6CModel>"
/* 80355778 003526D8 80 61 00 18 */ lwz r3, 0x18(r1)
/* 8035577C 003526DC 38 00 00 00 */ li r0, 0
/* 80355780 003526E0 98 01 00 14 */ stb r0, 0x14(r1)
/* 80355784 003526E4 7C 03 00 D0 */ neg r0, r3
/* 80355788 003526E8 7C 00 1B 78 */ or r0, r0, r3
/* 8035578C 003526EC 54 00 0F FE */ srwi r0, r0, 0x1f
/* 80355790 003526F0 98 1F 00 00 */ stb r0, 0(r31)
/* 80355794 003526F4 90 7F 00 04 */ stw r3, 4(r31)
/* 80355798 003526F8 88 01 00 14 */ lbz r0, 0x14(r1)
/* 8035579C 003526FC 28 00 00 00 */ cmplwi r0, 0
/* 803557A0 00352700 41 82 00 24 */ beq lbl_803557C4
/* 803557A4 00352704 80 61 00 18 */ lwz r3, 0x18(r1)
/* 803557A8 00352708 28 03 00 00 */ cmplwi r3, 0
/* 803557AC 0035270C 41 82 00 18 */ beq lbl_803557C4
/* 803557B0 00352710 81 83 00 00 */ lwz r12, 0(r3)
/* 803557B4 00352714 38 80 00 01 */ li r4, 1
/* 803557B8 00352718 81 8C 00 08 */ lwz r12, 8(r12)
/* 803557BC 0035271C 7D 89 03 A6 */ mtctr r12
/* 803557C0 00352720 4E 80 04 21 */ bctrl
lbl_803557C4:
/* 803557C4 00352724 88 01 00 0C */ lbz r0, 0xc(r1)
/* 803557C8 00352728 28 00 00 00 */ cmplwi r0, 0
/* 803557CC 0035272C 41 82 00 10 */ beq lbl_803557DC
/* 803557D0 00352730 80 61 00 10 */ lwz r3, 0x10(r1)
/* 803557D4 00352734 38 80 00 01 */ li r4, 1
/* 803557D8 00352738 48 00 04 79 */ bl __dt__6CModelFv
lbl_803557DC:
/* 803557DC 0035273C 38 61 00 08 */ addi r3, r1, 8
/* 803557E0 00352740 4B CD EB 25 */ bl sub_80034304
/* 803557E4 00352744 80 01 00 34 */ lwz r0, 0x34(r1)
/* 803557E8 00352748 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 803557EC 0035274C 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 803557F0 00352750 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 803557F4 00352754 83 81 00 20 */ lwz r28, 0x20(r1)
/* 803557F8 00352758 7C 08 03 A6 */ mtlr r0
/* 803557FC 0035275C 38 21 00 30 */ addi r1, r1, 0x30
/* 80355800 00352760 4E 80 00 20 */ blr
.global "__dt__15TToken<6CModel>Fv"
"__dt__15TToken<6CModel>Fv":
/* 80355804 00352764 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355808 00352768 7C 08 02 A6 */ mflr r0
/* 8035580C 0035276C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355810 00352770 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355814 00352774 7C 9F 23 78 */ mr r31, r4
/* 80355818 00352778 93 C1 00 08 */ stw r30, 8(r1)
/* 8035581C 0035277C 7C 7E 1B 79 */ or. r30, r3, r3
/* 80355820 00352780 41 82 00 58 */ beq lbl_80355878
/* 80355824 00352784 3C 60 80 3F */ lis r3, lbl_803EF738@ha
/* 80355828 00352788 38 03 F7 38 */ addi r0, r3, lbl_803EF738@l
/* 8035582C 0035278C 90 1E 00 00 */ stw r0, 0(r30)
/* 80355830 00352790 80 7E 00 04 */ lwz r3, 4(r30)
/* 80355834 00352794 28 03 00 00 */ cmplwi r3, 0
/* 80355838 00352798 41 82 00 0C */ beq lbl_80355844
/* 8035583C 0035279C 38 80 00 01 */ li r4, 1
/* 80355840 003527A0 48 00 04 11 */ bl __dt__6CModelFv
lbl_80355844:
/* 80355844 003527A4 28 1E 00 00 */ cmplwi r30, 0
/* 80355848 003527A8 41 82 00 20 */ beq lbl_80355868
/* 8035584C 003527AC 3C 60 80 3E */ lis r3, lbl_803D8D78@ha
/* 80355850 003527B0 38 03 8D 78 */ addi r0, r3, lbl_803D8D78@l
/* 80355854 003527B4 90 1E 00 00 */ stw r0, 0(r30)
/* 80355858 003527B8 41 82 00 10 */ beq lbl_80355868
/* 8035585C 003527BC 3C 60 80 3E */ lis r3, lbl_803D8D6C@ha
/* 80355860 003527C0 38 03 8D 6C */ addi r0, r3, lbl_803D8D6C@l
/* 80355864 003527C4 90 1E 00 00 */ stw r0, 0(r30)
lbl_80355868:
/* 80355868 003527C8 7F E0 07 35 */ extsh. r0, r31
/* 8035586C 003527CC 40 81 00 0C */ ble lbl_80355878
/* 80355870 003527D0 7F C3 F3 78 */ mr r3, r30
/* 80355874 003527D4 4B FC 00 BD */ bl Free__7CMemoryFPCv
lbl_80355878:
/* 80355878 003527D8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8035587C 003527DC 7F C3 F3 78 */ mr r3, r30
/* 80355880 003527E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355884 003527E4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80355888 003527E8 7C 08 03 A6 */ mtlr r0
/* 8035588C 003527EC 38 21 00 10 */ addi r1, r1, 0x10
/* 80355890 003527F0 4E 80 00 20 */ blr
.global "GetIObjObjectFor__15TToken<6CModel>FRCQ24rstl17auto_ptr<6CModel>"
"GetIObjObjectFor__15TToken<6CModel>FRCQ24rstl17auto_ptr<6CModel>":
/* 80355894 003527F4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355898 003527F8 7C 08 02 A6 */ mflr r0
/* 8035589C 003527FC 90 01 00 14 */ stw r0, 0x14(r1)
/* 803558A0 00352800 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803558A4 00352804 7C 7F 1B 78 */ mr r31, r3
/* 803558A8 00352808 48 00 00 19 */ bl "GetNewDerivedObject__33TObjOwnerDerivedFromIObj<6CModel>FRCQ24rstl17auto_ptr<6CModel>"
/* 803558AC 0035280C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803558B0 00352810 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803558B4 00352814 7C 08 03 A6 */ mtlr r0
/* 803558B8 00352818 38 21 00 10 */ addi r1, r1, 0x10
/* 803558BC 0035281C 4E 80 00 20 */ blr
.global "GetNewDerivedObject__33TObjOwnerDerivedFromIObj<6CModel>FRCQ24rstl17auto_ptr<6CModel>"
"GetNewDerivedObject__33TObjOwnerDerivedFromIObj<6CModel>FRCQ24rstl17auto_ptr<6CModel>":
/* 803558C0 00352820 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803558C4 00352824 7C 08 02 A6 */ mflr r0
/* 803558C8 00352828 3C A0 80 3E */ lis r5, lbl_803D8308@ha
/* 803558CC 0035282C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803558D0 00352830 38 05 83 08 */ addi r0, r5, lbl_803D8308@l
/* 803558D4 00352834 38 A0 00 00 */ li r5, 0
/* 803558D8 00352838 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803558DC 0035283C 7C 9F 23 78 */ mr r31, r4
/* 803558E0 00352840 7C 04 03 78 */ mr r4, r0
/* 803558E4 00352844 93 C1 00 08 */ stw r30, 8(r1)
/* 803558E8 00352848 7C 7E 1B 78 */ mr r30, r3
/* 803558EC 0035284C 38 60 00 08 */ li r3, 8
/* 803558F0 00352850 4B FB FF 7D */ bl __nw__FUlPCcPCc
/* 803558F4 00352854 28 03 00 00 */ cmplwi r3, 0
/* 803558F8 00352858 41 82 00 38 */ beq lbl_80355930
/* 803558FC 0035285C 3C 80 80 3E */ lis r4, lbl_803D8D6C@ha
/* 80355900 00352860 3C A0 80 3E */ lis r5, lbl_803D8D78@ha
/* 80355904 00352864 38 04 8D 6C */ addi r0, r4, lbl_803D8D6C@l
/* 80355908 00352868 3C 80 80 3F */ lis r4, lbl_803EF738@ha
/* 8035590C 0035286C 90 03 00 00 */ stw r0, 0(r3)
/* 80355910 00352870 38 C5 8D 78 */ addi r6, r5, lbl_803D8D78@l
/* 80355914 00352874 38 A0 00 00 */ li r5, 0
/* 80355918 00352878 38 04 F7 38 */ addi r0, r4, lbl_803EF738@l
/* 8035591C 0035287C 90 C3 00 00 */ stw r6, 0(r3)
/* 80355920 00352880 98 BF 00 00 */ stb r5, 0(r31)
/* 80355924 00352884 80 9F 00 04 */ lwz r4, 4(r31)
/* 80355928 00352888 90 83 00 04 */ stw r4, 4(r3)
/* 8035592C 0035288C 90 03 00 00 */ stw r0, 0(r3)
lbl_80355930:
/* 80355930 00352890 7C 03 00 D0 */ neg r0, r3
/* 80355934 00352894 7C 00 1B 78 */ or r0, r0, r3
/* 80355938 00352898 54 00 0F FE */ srwi r0, r0, 0x1f
/* 8035593C 0035289C 98 1E 00 00 */ stb r0, 0(r30)
/* 80355940 003528A0 90 7E 00 04 */ stw r3, 4(r30)
/* 80355944 003528A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355948 003528A8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8035594C 003528AC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355950 003528B0 7C 08 03 A6 */ mtlr r0
/* 80355954 003528B4 38 21 00 10 */ addi r1, r1, 0x10
/* 80355958 003528B8 4E 80 00 20 */ blr
.global VerifyCurrentShader__6CModelCFi
VerifyCurrentShader__6CModelCFi:
/* 8035595C 003528BC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80355960 003528C0 7C 08 02 A6 */ mflr r0
/* 80355964 003528C4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80355968 003528C8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8035596C 003528CC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80355970 003528D0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80355974 003528D4 7C 9D 23 78 */ mr r29, r4
/* 80355978 003528D8 93 81 00 10 */ stw r28, 0x10(r1)
/* 8035597C 003528DC 7C 7C 1B 78 */ mr r28, r3
/* 80355980 003528E0 80 03 00 1C */ lwz r0, 0x1c(r3)
/* 80355984 003528E4 7C 1D 00 00 */ cmpw r29, r0
/* 80355988 003528E8 41 80 00 08 */ blt lbl_80355990
/* 8035598C 003528EC 3B A0 00 00 */ li r29, 0
lbl_80355990:
/* 80355990 003528F0 A8 1C 00 2C */ lha r0, 0x2c(r28)
/* 80355994 003528F4 7C 1D 00 00 */ cmpw r29, r0
/* 80355998 003528F8 40 82 00 5C */ bne lbl_803559F4
/* 8035599C 003528FC A8 7C 00 2E */ lha r3, 0x2e(r28)
/* 803559A0 00352900 7C 60 07 35 */ extsh. r0, r3
/* 803559A4 00352904 41 82 00 84 */ beq lbl_80355A28
/* 803559A8 00352908 80 0D AA 88 */ lwz r0, lbl_805A9648@sda21(r13)
/* 803559AC 0035290C 7C 03 00 40 */ cmplw r3, r0
/* 803559B0 00352910 41 81 00 78 */ bgt lbl_80355A28
/* 803559B4 00352914 3B C0 00 00 */ li r30, 0
/* 803559B8 00352918 3B E0 00 00 */ li r31, 0
/* 803559BC 0035291C 48 00 00 20 */ b lbl_803559DC
lbl_803559C0:
/* 803559C0 00352920 7C 1E E8 00 */ cmpw r30, r29
/* 803559C4 00352924 41 82 00 10 */ beq lbl_803559D4
/* 803559C8 00352928 80 1C 00 24 */ lwz r0, 0x24(r28)
/* 803559CC 0035292C 7C 60 FA 14 */ add r3, r0, r31
/* 803559D0 00352930 4B FF FA 91 */ bl UnlockTextures__Q26CModel7SShaderFv
lbl_803559D4:
/* 803559D4 00352934 3B FF 00 14 */ addi r31, r31, 0x14
/* 803559D8 00352938 3B DE 00 01 */ addi r30, r30, 1
lbl_803559DC:
/* 803559DC 0035293C 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 803559E0 00352940 7C 1E 00 00 */ cmpw r30, r0
/* 803559E4 00352944 41 80 FF DC */ blt lbl_803559C0
/* 803559E8 00352948 38 00 00 00 */ li r0, 0
/* 803559EC 0035294C B0 1C 00 2E */ sth r0, 0x2e(r28)
/* 803559F0 00352950 48 00 00 38 */ b lbl_80355A28
lbl_803559F4:
/* 803559F4 00352954 B3 BC 00 2C */ sth r29, 0x2c(r28)
/* 803559F8 00352958 1C 1D 00 14 */ mulli r0, r29, 0x14
/* 803559FC 0035295C 80 9C 00 24 */ lwz r4, 0x24(r28)
/* 80355A00 00352960 80 7C 00 28 */ lwz r3, 0x28(r28)
/* 80355A04 00352964 7C A4 02 14 */ add r5, r4, r0
/* 80355A08 00352968 80 85 00 10 */ lwz r4, 0x10(r5)
/* 80355A0C 0035296C 4B FB 0D E5 */ bl "RemapMaterialData__10CCubeModelFPCvPQ24rstl60vector<23TCachedToken<8CTexture>,Q24rstl17rmemory_allocator>"
/* 80355A10 00352970 80 1C 00 1C */ lwz r0, 0x1c(r28)
/* 80355A14 00352974 2C 00 00 01 */ cmpwi r0, 1
/* 80355A18 00352978 40 81 00 10 */ ble lbl_80355A28
/* 80355A1C 0035297C 80 6D AA 88 */ lwz r3, lbl_805A9648@sda21(r13)
/* 80355A20 00352980 38 03 00 02 */ addi r0, r3, 2
/* 80355A24 00352984 B0 1C 00 2E */ sth r0, 0x2e(r28)
lbl_80355A28:
/* 80355A28 00352988 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355A2C 0035298C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80355A30 00352990 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80355A34 00352994 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80355A38 00352998 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80355A3C 0035299C 7C 08 03 A6 */ mtlr r0
/* 80355A40 003529A0 38 21 00 20 */ addi r1, r1, 0x20
/* 80355A44 003529A4 4E 80 00 20 */ blr
.global Draw__6CModelCFPCfPCfRC11CModelFlags
Draw__6CModelCFPCfPCfRC11CModelFlags:
/* 80355A48 003529A8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80355A4C 003529AC 7C 08 02 A6 */ mflr r0
/* 80355A50 003529B0 90 01 00 24 */ stw r0, 0x24(r1)
/* 80355A54 003529B4 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80355A58 003529B8 7C DF 33 78 */ mr r31, r6
/* 80355A5C 003529BC 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80355A60 003529C0 7C BE 2B 78 */ mr r30, r5
/* 80355A64 003529C4 93 A1 00 14 */ stw r29, 0x14(r1)
/* 80355A68 003529C8 7C 9D 23 78 */ mr r29, r4
/* 80355A6C 003529CC 93 81 00 10 */ stw r28, 0x10(r1)
/* 80355A70 003529D0 7C 7C 1B 78 */ mr r28, r3
/* 80355A74 003529D4 A0 06 00 02 */ lhz r0, 2(r6)
/* 80355A78 003529D8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80355A7C 003529DC 41 82 00 10 */ beq lbl_80355A8C
/* 80355A80 003529E0 80 7C 00 28 */ lwz r3, 0x28(r28)
/* 80355A84 003529E4 38 C0 00 02 */ li r6, 2
/* 80355A88 003529E8 4B FB 0B A9 */ bl sub_80306630
lbl_80355A8C:
/* 80355A8C 003529EC 4B FE FE 81 */ bl ResetCachedMaterials__13CCubeMaterialFv
/* 80355A90 003529F0 7F 83 E3 78 */ mr r3, r28
/* 80355A94 003529F4 4B FF FA B9 */ bl MoveToThisFrameList__6CModelCFv
/* 80355A98 003529F8 88 9F 00 01 */ lbz r4, 1(r31)
/* 80355A9C 003529FC 7F 83 E3 78 */ mr r3, r28
/* 80355AA0 00352A00 7C 84 07 74 */ extsb r4, r4
/* 80355AA4 00352A04 4B FF FE B9 */ bl VerifyCurrentShader__6CModelCFi
/* 80355AA8 00352A08 80 7C 00 28 */ lwz r3, 0x28(r28)
/* 80355AAC 00352A0C 7F A4 EB 78 */ mr r4, r29
/* 80355AB0 00352A10 7F C5 F3 78 */ mr r5, r30
/* 80355AB4 00352A14 7F E6 FB 78 */ mr r6, r31
/* 80355AB8 00352A18 4B FB 0E 81 */ bl Draw__10CCubeModelCFPCfPCfRC11CModelFlags
/* 80355ABC 00352A1C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355AC0 00352A20 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80355AC4 00352A24 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80355AC8 00352A28 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 80355ACC 00352A2C 83 81 00 10 */ lwz r28, 0x10(r1)
/* 80355AD0 00352A30 7C 08 03 A6 */ mtlr r0
/* 80355AD4 00352A34 38 21 00 20 */ addi r1, r1, 0x20
/* 80355AD8 00352A38 4E 80 00 20 */ blr
.global DrawSortedParts__6CModelCFRC11CModelFlags
DrawSortedParts__6CModelCFRC11CModelFlags:
/* 80355ADC 00352A3C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355AE0 00352A40 7C 08 02 A6 */ mflr r0
/* 80355AE4 00352A44 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355AE8 00352A48 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355AEC 00352A4C 7C 9F 23 78 */ mr r31, r4
/* 80355AF0 00352A50 93 C1 00 08 */ stw r30, 8(r1)
/* 80355AF4 00352A54 7C 7E 1B 78 */ mr r30, r3
/* 80355AF8 00352A58 A0 04 00 02 */ lhz r0, 2(r4)
/* 80355AFC 00352A5C 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80355B00 00352A60 41 82 00 18 */ beq lbl_80355B18
/* 80355B04 00352A64 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355B08 00352A68 38 80 00 00 */ li r4, 0
/* 80355B0C 00352A6C 38 A0 00 00 */ li r5, 0
/* 80355B10 00352A70 38 C0 00 01 */ li r6, 1
/* 80355B14 00352A74 4B FB 0B 1D */ bl sub_80306630
lbl_80355B18:
/* 80355B18 00352A78 4B FE FD F5 */ bl ResetCachedMaterials__13CCubeMaterialFv
/* 80355B1C 00352A7C 7F C3 F3 78 */ mr r3, r30
/* 80355B20 00352A80 4B FF FA 2D */ bl MoveToThisFrameList__6CModelCFv
/* 80355B24 00352A84 88 9F 00 01 */ lbz r4, 1(r31)
/* 80355B28 00352A88 7F C3 F3 78 */ mr r3, r30
/* 80355B2C 00352A8C 7C 84 07 74 */ extsb r4, r4
/* 80355B30 00352A90 4B FF FE 2D */ bl VerifyCurrentShader__6CModelCFi
/* 80355B34 00352A94 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355B38 00352A98 7F E4 FB 78 */ mr r4, r31
/* 80355B3C 00352A9C 4B FB 0D 65 */ bl DrawAlpha__10CCubeModelCFRC11CModelFlags
/* 80355B40 00352AA0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355B44 00352AA4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355B48 00352AA8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80355B4C 00352AAC 7C 08 03 A6 */ mtlr r0
/* 80355B50 00352AB0 38 21 00 10 */ addi r1, r1, 0x10
/* 80355B54 00352AB4 4E 80 00 20 */ blr
.global DrawUnsortedParts__6CModelCFRC11CModelFlags
DrawUnsortedParts__6CModelCFRC11CModelFlags:
/* 80355B58 00352AB8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355B5C 00352ABC 7C 08 02 A6 */ mflr r0
/* 80355B60 00352AC0 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355B64 00352AC4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355B68 00352AC8 7C 9F 23 78 */ mr r31, r4
/* 80355B6C 00352ACC 93 C1 00 08 */ stw r30, 8(r1)
/* 80355B70 00352AD0 7C 7E 1B 78 */ mr r30, r3
/* 80355B74 00352AD4 A0 04 00 02 */ lhz r0, 2(r4)
/* 80355B78 00352AD8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80355B7C 00352ADC 41 82 00 18 */ beq lbl_80355B94
/* 80355B80 00352AE0 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355B84 00352AE4 38 80 00 00 */ li r4, 0
/* 80355B88 00352AE8 38 A0 00 00 */ li r5, 0
/* 80355B8C 00352AEC 38 C0 00 00 */ li r6, 0
/* 80355B90 00352AF0 4B FB 0A A1 */ bl sub_80306630
lbl_80355B94:
/* 80355B94 00352AF4 4B FE FD 79 */ bl ResetCachedMaterials__13CCubeMaterialFv
/* 80355B98 00352AF8 7F C3 F3 78 */ mr r3, r30
/* 80355B9C 00352AFC 4B FF F9 B1 */ bl MoveToThisFrameList__6CModelCFv
/* 80355BA0 00352B00 88 9F 00 01 */ lbz r4, 1(r31)
/* 80355BA4 00352B04 7F C3 F3 78 */ mr r3, r30
/* 80355BA8 00352B08 7C 84 07 74 */ extsb r4, r4
/* 80355BAC 00352B0C 4B FF FD B1 */ bl VerifyCurrentShader__6CModelCFi
/* 80355BB0 00352B10 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355BB4 00352B14 7F E4 FB 78 */ mr r4, r31
/* 80355BB8 00352B18 4B FB 0D 35 */ bl DrawNormal__10CCubeModelCFRC11CModelFlags
/* 80355BBC 00352B1C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355BC0 00352B20 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355BC4 00352B24 83 C1 00 08 */ lwz r30, 8(r1)
/* 80355BC8 00352B28 7C 08 03 A6 */ mtlr r0
/* 80355BCC 00352B2C 38 21 00 10 */ addi r1, r1, 0x10
/* 80355BD0 00352B30 4E 80 00 20 */ blr
.global Draw__6CModelCFRC11CModelFlags
Draw__6CModelCFRC11CModelFlags:
/* 80355BD4 00352B34 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355BD8 00352B38 7C 08 02 A6 */ mflr r0
/* 80355BDC 00352B3C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355BE0 00352B40 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355BE4 00352B44 7C 9F 23 78 */ mr r31, r4
/* 80355BE8 00352B48 93 C1 00 08 */ stw r30, 8(r1)
/* 80355BEC 00352B4C 7C 7E 1B 78 */ mr r30, r3
/* 80355BF0 00352B50 A0 04 00 02 */ lhz r0, 2(r4)
/* 80355BF4 00352B54 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 80355BF8 00352B58 41 82 00 18 */ beq lbl_80355C10
/* 80355BFC 00352B5C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355C00 00352B60 38 80 00 00 */ li r4, 0
/* 80355C04 00352B64 38 A0 00 00 */ li r5, 0
/* 80355C08 00352B68 38 C0 00 02 */ li r6, 2
/* 80355C0C 00352B6C 4B FB 0A 25 */ bl sub_80306630
lbl_80355C10:
/* 80355C10 00352B70 4B FE FC FD */ bl ResetCachedMaterials__13CCubeMaterialFv
/* 80355C14 00352B74 7F C3 F3 78 */ mr r3, r30
/* 80355C18 00352B78 4B FF F9 35 */ bl MoveToThisFrameList__6CModelCFv
/* 80355C1C 00352B7C 88 9F 00 01 */ lbz r4, 1(r31)
/* 80355C20 00352B80 7F C3 F3 78 */ mr r3, r30
/* 80355C24 00352B84 7C 84 07 74 */ extsb r4, r4
/* 80355C28 00352B88 4B FF FD 35 */ bl VerifyCurrentShader__6CModelCFi
/* 80355C2C 00352B8C 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355C30 00352B90 7F E4 FB 78 */ mr r4, r31
/* 80355C34 00352B94 4B FB 0D 71 */ bl Draw__10CCubeModelCFRC11CModelFlags
/* 80355C38 00352B98 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355C3C 00352B9C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355C40 00352BA0 83 C1 00 08 */ lwz r30, 8(r1)
/* 80355C44 00352BA4 7C 08 03 A6 */ mtlr r0
/* 80355C48 00352BA8 38 21 00 10 */ addi r1, r1, 0x10
/* 80355C4C 00352BAC 4E 80 00 20 */ blr
.global __dt__6CModelFv
__dt__6CModelFv:
/* 80355C50 00352BB0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80355C54 00352BB4 7C 08 02 A6 */ mflr r0
/* 80355C58 00352BB8 90 01 00 24 */ stw r0, 0x24(r1)
/* 80355C5C 00352BBC 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80355C60 00352BC0 7C 9F 23 78 */ mr r31, r4
/* 80355C64 00352BC4 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80355C68 00352BC8 7C 7E 1B 79 */ or. r30, r3, r3
/* 80355C6C 00352BCC 41 82 00 E4 */ beq lbl_80355D50
/* 80355C70 00352BD0 4B FF F8 5D */ bl RemoveFromList__6CModelCFv
/* 80355C74 00352BD4 80 7E 00 04 */ lwz r3, 4(r30)
/* 80355C78 00352BD8 80 0D AA 78 */ lwz r0, lbl_805A9638@sda21(r13)
/* 80355C7C 00352BDC 7C 03 00 50 */ subf r0, r3, r0
/* 80355C80 00352BE0 90 0D AA 78 */ stw r0, lbl_805A9638@sda21(r13)
/* 80355C84 00352BE4 4B FB 3B 79 */ bl GetFrameCounter__9CGraphicsFv
/* 80355C88 00352BE8 80 9E 00 38 */ lwz r4, 0x38(r30)
/* 80355C8C 00352BEC 7C 04 18 40 */ cmplw r4, r3
/* 80355C90 00352BF0 40 82 00 1C */ bne lbl_80355CAC
/* 80355C94 00352BF4 80 9E 00 00 */ lwz r4, 0(r30)
/* 80355C98 00352BF8 38 00 00 00 */ li r0, 0
/* 80355C9C 00352BFC 38 60 00 01 */ li r3, 1
/* 80355CA0 00352C00 90 1E 00 00 */ stw r0, 0(r30)
/* 80355CA4 00352C04 48 01 6F 79 */ bl sub_8036cc1c
/* 80355CA8 00352C08 48 00 00 24 */ b lbl_80355CCC
lbl_80355CAC:
/* 80355CAC 00352C0C 38 03 FF FF */ addi r0, r3, -1
/* 80355CB0 00352C10 7C 04 00 40 */ cmplw r4, r0
/* 80355CB4 00352C14 40 82 00 18 */ bne lbl_80355CCC
/* 80355CB8 00352C18 80 9E 00 00 */ lwz r4, 0(r30)
/* 80355CBC 00352C1C 38 00 00 00 */ li r0, 0
/* 80355CC0 00352C20 38 60 00 00 */ li r3, 0
/* 80355CC4 00352C24 90 1E 00 00 */ stw r0, 0(r30)
/* 80355CC8 00352C28 48 01 6F 55 */ bl sub_8036cc1c
lbl_80355CCC:
/* 80355CCC 00352C2C 34 1E 00 28 */ addic. r0, r30, 0x28
/* 80355CD0 00352C30 41 82 00 0C */ beq lbl_80355CDC
/* 80355CD4 00352C34 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80355CD8 00352C38 4B FB FC 59 */ bl Free__7CMemoryFPCv
lbl_80355CDC:
/* 80355CDC 00352C3C 38 7E 00 18 */ addi r3, r30, 0x18
/* 80355CE0 00352C40 38 80 FF FF */ li r4, -1
/* 80355CE4 00352C44 48 00 00 89 */ bl sub_80355d6c
/* 80355CE8 00352C48 34 1E 00 08 */ addic. r0, r30, 8
/* 80355CEC 00352C4C 41 82 00 44 */ beq lbl_80355D30
/* 80355CF0 00352C50 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80355CF4 00352C54 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 80355CF8 00352C58 54 00 10 3A */ slwi r0, r0, 2
/* 80355CFC 00352C5C 7C 03 02 14 */ add r0, r3, r0
/* 80355D00 00352C60 90 61 00 0C */ stw r3, 0xc(r1)
/* 80355D04 00352C64 7C 64 1B 78 */ mr r4, r3
/* 80355D08 00352C68 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355D0C 00352C6C 90 01 00 10 */ stw r0, 0x10(r1)
/* 80355D10 00352C70 90 61 00 08 */ stw r3, 8(r1)
/* 80355D14 00352C74 48 00 00 08 */ b lbl_80355D1C
lbl_80355D18:
/* 80355D18 00352C78 38 84 00 04 */ addi r4, r4, 4
lbl_80355D1C:
/* 80355D1C 00352C7C 7C 04 00 40 */ cmplw r4, r0
/* 80355D20 00352C80 40 82 FF F8 */ bne lbl_80355D18
/* 80355D24 00352C84 28 03 00 00 */ cmplwi r3, 0
/* 80355D28 00352C88 41 82 00 08 */ beq lbl_80355D30
/* 80355D2C 00352C8C 4B FB FC 05 */ bl Free__7CMemoryFPCv
lbl_80355D30:
/* 80355D30 00352C90 28 1E 00 00 */ cmplwi r30, 0
/* 80355D34 00352C94 41 82 00 0C */ beq lbl_80355D40
/* 80355D38 00352C98 80 7E 00 00 */ lwz r3, 0(r30)
/* 80355D3C 00352C9C 4B FB FB F5 */ bl Free__7CMemoryFPCv
lbl_80355D40:
/* 80355D40 00352CA0 7F E0 07 35 */ extsh. r0, r31
/* 80355D44 00352CA4 40 81 00 0C */ ble lbl_80355D50
/* 80355D48 00352CA8 7F C3 F3 78 */ mr r3, r30
/* 80355D4C 00352CAC 4B FB FB E5 */ bl Free__7CMemoryFPCv
lbl_80355D50:
/* 80355D50 00352CB0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355D54 00352CB4 7F C3 F3 78 */ mr r3, r30
/* 80355D58 00352CB8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80355D5C 00352CBC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80355D60 00352CC0 7C 08 03 A6 */ mtlr r0
/* 80355D64 00352CC4 38 21 00 20 */ addi r1, r1, 0x20
/* 80355D68 00352CC8 4E 80 00 20 */ blr
.global sub_80355d6c
sub_80355d6c:
/* 80355D6C 00352CCC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80355D70 00352CD0 7C 08 02 A6 */ mflr r0
/* 80355D74 00352CD4 90 01 00 24 */ stw r0, 0x24(r1)
/* 80355D78 00352CD8 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80355D7C 00352CDC 7C 9F 23 78 */ mr r31, r4
/* 80355D80 00352CE0 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80355D84 00352CE4 7C 7E 1B 79 */ or. r30, r3, r3
/* 80355D88 00352CE8 41 82 00 54 */ beq lbl_80355DDC
/* 80355D8C 00352CEC 80 1E 00 04 */ lwz r0, 4(r30)
/* 80355D90 00352CF0 38 61 00 14 */ addi r3, r1, 0x14
/* 80355D94 00352CF4 80 BE 00 0C */ lwz r5, 0xc(r30)
/* 80355D98 00352CF8 38 81 00 0C */ addi r4, r1, 0xc
/* 80355D9C 00352CFC 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80355DA0 00352D00 7C A5 02 14 */ add r5, r5, r0
/* 80355DA4 00352D04 90 A1 00 0C */ stw r5, 0xc(r1)
/* 80355DA8 00352D08 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 80355DAC 00352D0C 90 A1 00 08 */ stw r5, 8(r1)
/* 80355DB0 00352D10 90 01 00 10 */ stw r0, 0x10(r1)
/* 80355DB4 00352D14 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355DB8 00352D18 48 00 00 41 */ bl sub_80355df8
/* 80355DBC 00352D1C 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80355DC0 00352D20 28 03 00 00 */ cmplwi r3, 0
/* 80355DC4 00352D24 41 82 00 08 */ beq lbl_80355DCC
/* 80355DC8 00352D28 4B FB FB 69 */ bl Free__7CMemoryFPCv
lbl_80355DCC:
/* 80355DCC 00352D2C 7F E0 07 35 */ extsh. r0, r31
/* 80355DD0 00352D30 40 81 00 0C */ ble lbl_80355DDC
/* 80355DD4 00352D34 7F C3 F3 78 */ mr r3, r30
/* 80355DD8 00352D38 4B FB FB 59 */ bl Free__7CMemoryFPCv
lbl_80355DDC:
/* 80355DDC 00352D3C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80355DE0 00352D40 7F C3 F3 78 */ mr r3, r30
/* 80355DE4 00352D44 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80355DE8 00352D48 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80355DEC 00352D4C 7C 08 03 A6 */ mtlr r0
/* 80355DF0 00352D50 38 21 00 20 */ addi r1, r1, 0x20
/* 80355DF4 00352D54 4E 80 00 20 */ blr
.global sub_80355df8
sub_80355df8:
/* 80355DF8 00352D58 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355DFC 00352D5C 7C 08 02 A6 */ mflr r0
/* 80355E00 00352D60 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355E04 00352D64 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355E08 00352D68 93 C1 00 08 */ stw r30, 8(r1)
/* 80355E0C 00352D6C 7C 9E 23 78 */ mr r30, r4
/* 80355E10 00352D70 83 E3 00 00 */ lwz r31, 0(r3)
/* 80355E14 00352D74 48 00 00 10 */ b lbl_80355E24
lbl_80355E18:
/* 80355E18 00352D78 7F E3 FB 78 */ mr r3, r31
/* 80355E1C 00352D7C 48 00 00 2D */ bl sub_80355e48
/* 80355E20 00352D80 3B FF 00 14 */ addi r31, r31, 0x14
lbl_80355E24:
/* 80355E24 00352D84 80 1E 00 00 */ lwz r0, 0(r30)
/* 80355E28 00352D88 7C 1F 00 40 */ cmplw r31, r0
/* 80355E2C 00352D8C 40 82 FF EC */ bne lbl_80355E18
/* 80355E30 00352D90 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355E34 00352D94 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355E38 00352D98 83 C1 00 08 */ lwz r30, 8(r1)
/* 80355E3C 00352D9C 7C 08 03 A6 */ mtlr r0
/* 80355E40 00352DA0 38 21 00 10 */ addi r1, r1, 0x10
/* 80355E44 00352DA4 4E 80 00 20 */ blr
.global sub_80355e48
sub_80355e48:
/* 80355E48 00352DA8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355E4C 00352DAC 7C 08 02 A6 */ mflr r0
/* 80355E50 00352DB0 38 80 FF FF */ li r4, -1
/* 80355E54 00352DB4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355E58 00352DB8 48 00 00 15 */ bl sub_80355e6c
/* 80355E5C 00352DBC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355E60 00352DC0 7C 08 03 A6 */ mtlr r0
/* 80355E64 00352DC4 38 21 00 10 */ addi r1, r1, 0x10
/* 80355E68 00352DC8 4E 80 00 20 */ blr
.global sub_80355e6c
sub_80355e6c:
/* 80355E6C 00352DCC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80355E70 00352DD0 7C 08 02 A6 */ mflr r0
/* 80355E74 00352DD4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80355E78 00352DD8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80355E7C 00352DDC 7C 9F 23 78 */ mr r31, r4
/* 80355E80 00352DE0 93 C1 00 08 */ stw r30, 8(r1)
/* 80355E84 00352DE4 7C 7E 1B 79 */ or. r30, r3, r3
/* 80355E88 00352DE8 41 82 00 1C */ beq lbl_80355EA4
/* 80355E8C 00352DEC 38 80 FF FF */ li r4, -1
/* 80355E90 00352DF0 4B F6 86 39 */ bl sub_802be4c8
/* 80355E94 00352DF4 7F E0 07 35 */ extsh. r0, r31
/* 80355E98 00352DF8 40 81 00 0C */ ble lbl_80355EA4
/* 80355E9C 00352DFC 7F C3 F3 78 */ mr r3, r30
/* 80355EA0 00352E00 4B FB FA 91 */ bl Free__7CMemoryFPCv
lbl_80355EA4:
/* 80355EA4 00352E04 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80355EA8 00352E08 7F C3 F3 78 */ mr r3, r30
/* 80355EAC 00352E0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80355EB0 00352E10 83 C1 00 08 */ lwz r30, 8(r1)
/* 80355EB4 00352E14 7C 08 03 A6 */ mtlr r0
/* 80355EB8 00352E18 38 21 00 10 */ addi r1, r1, 0x10
/* 80355EBC 00352E1C 4E 80 00 20 */ blr
.global "__ct__6CModelFRCQ24rstl12auto_ptr<Uc>iR12IObjectStore"
"__ct__6CModelFRCQ24rstl12auto_ptr<Uc>iR12IObjectStore":
/* 80355EC0 00352E20 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80355EC4 00352E24 7C 08 02 A6 */ mflr r0
/* 80355EC8 00352E28 90 01 00 74 */ stw r0, 0x74(r1)
/* 80355ECC 00352E2C BE 81 00 40 */ stmw r20, 0x40(r1)
/* 80355ED0 00352E30 7C 94 23 78 */ mr r20, r4
/* 80355ED4 00352E34 38 80 00 00 */ li r4, 0
/* 80355ED8 00352E38 7C BF 2B 78 */ mr r31, r5
/* 80355EDC 00352E3C 7C 7E 1B 78 */ mr r30, r3
/* 80355EE0 00352E40 7C D5 33 78 */ mr r21, r6
/* 80355EE4 00352E44 98 94 00 00 */ stb r4, 0(r20)
/* 80355EE8 00352E48 80 14 00 04 */ lwz r0, 4(r20)
/* 80355EEC 00352E4C 90 03 00 00 */ stw r0, 0(r3)
/* 80355EF0 00352E50 93 E3 00 04 */ stw r31, 4(r3)
/* 80355EF4 00352E54 90 83 00 0C */ stw r4, 0xc(r3)
/* 80355EF8 00352E58 90 83 00 10 */ stw r4, 0x10(r3)
/* 80355EFC 00352E5C 90 83 00 14 */ stw r4, 0x14(r3)
/* 80355F00 00352E60 90 83 00 1C */ stw r4, 0x1c(r3)
/* 80355F04 00352E64 90 83 00 20 */ stw r4, 0x20(r3)
/* 80355F08 00352E68 90 83 00 24 */ stw r4, 0x24(r3)
/* 80355F0C 00352E6C 90 83 00 28 */ stw r4, 0x28(r3)
/* 80355F10 00352E70 B0 83 00 2C */ sth r4, 0x2c(r3)
/* 80355F14 00352E74 B0 83 00 2E */ sth r4, 0x2e(r3)
/* 80355F18 00352E78 90 83 00 30 */ stw r4, 0x30(r3)
/* 80355F1C 00352E7C 80 0D AA 7C */ lwz r0, lbl_805A963C@sda21(r13)
/* 80355F20 00352E80 90 03 00 34 */ stw r0, 0x34(r3)
/* 80355F24 00352E84 4B FB 38 D9 */ bl GetFrameCounter__9CGraphicsFv
/* 80355F28 00352E88 38 03 FF FE */ addi r0, r3, -2
/* 80355F2C 00352E8C 38 A0 00 2C */ li r5, 0x2c
/* 80355F30 00352E90 90 1E 00 38 */ stw r0, 0x38(r30)
/* 80355F34 00352E94 83 94 00 04 */ lwz r28, 4(r20)
/* 80355F38 00352E98 80 7C 00 04 */ lwz r3, 4(r28)
/* 80355F3C 00352E9C 80 1C 00 08 */ lwz r0, 8(r28)
/* 80355F40 00352EA0 28 03 00 01 */ cmplwi r3, 1
/* 80355F44 00352EA4 54 1B FF FE */ rlwinm r27, r0, 0x1f, 0x1f, 0x1f
/* 80355F48 00352EA8 54 1D F7 FE */ rlwinm r29, r0, 0x1e, 0x1f, 0x1f
/* 80355F4C 00352EAC 40 82 00 08 */ bne lbl_80355F54
/* 80355F50 00352EB0 38 A0 00 28 */ li r5, 0x28
lbl_80355F54:
/* 80355F54 00352EB4 28 03 00 02 */ cmplwi r3, 2
/* 80355F58 00352EB8 80 1C 00 24 */ lwz r0, 0x24(r28)
/* 80355F5C 00352EBC 7C 9C 2A 14 */ add r4, r28, r5
/* 80355F60 00352EC0 3B 40 00 01 */ li r26, 1
/* 80355F64 00352EC4 41 80 00 08 */ blt lbl_80355F6C
/* 80355F68 00352EC8 83 5C 00 28 */ lwz r26, 0x28(r28)
lbl_80355F6C:
/* 80355F6C 00352ECC 54 03 10 3A */ slwi r3, r0, 2
/* 80355F70 00352ED0 90 81 00 20 */ stw r4, 0x20(r1)
/* 80355F74 00352ED4 38 03 00 1F */ addi r0, r3, 0x1f
/* 80355F78 00352ED8 7F 44 D3 78 */ mr r4, r26
/* 80355F7C 00352EDC 7C 05 02 14 */ add r0, r5, r0
/* 80355F80 00352EE0 38 7E 00 18 */ addi r3, r30, 0x18
/* 80355F84 00352EE4 54 00 00 34 */ rlwinm r0, r0, 0, 0, 0x1a
/* 80355F88 00352EE8 7C 1C 02 14 */ add r0, r28, r0
/* 80355F8C 00352EEC 90 01 00 24 */ stw r0, 0x24(r1)
/* 80355F90 00352EF0 48 00 03 ED */ bl sub_8035637c
/* 80355F94 00352EF4 3B 20 00 00 */ li r25, 0
/* 80355F98 00352EF8 48 00 00 7C */ b lbl_80356014
lbl_80355F9C:
/* 80355F9C 00352EFC 38 61 00 24 */ addi r3, r1, 0x24
/* 80355FA0 00352F00 38 81 00 20 */ addi r4, r1, 0x20
/* 80355FA4 00352F04 48 00 03 9D */ bl advanceSectionInfo
/* 80355FA8 00352F08 38 00 00 00 */ li r0, 0
/* 80355FAC 00352F0C 90 61 00 38 */ stw r3, 0x38(r1)
/* 80355FB0 00352F10 38 7E 00 18 */ addi r3, r30, 0x18
/* 80355FB4 00352F14 38 81 00 28 */ addi r4, r1, 0x28
/* 80355FB8 00352F18 90 01 00 2C */ stw r0, 0x2c(r1)
/* 80355FBC 00352F1C 90 01 00 30 */ stw r0, 0x30(r1)
/* 80355FC0 00352F20 90 01 00 34 */ stw r0, 0x34(r1)
/* 80355FC4 00352F24 48 00 02 21 */ bl sub_803561e4
/* 80355FC8 00352F28 38 61 00 28 */ addi r3, r1, 0x28
/* 80355FCC 00352F2C 38 80 FF FF */ li r4, -1
/* 80355FD0 00352F30 4B FF FE 9D */ bl sub_80355e6c
/* 80355FD4 00352F34 80 7E 00 1C */ lwz r3, 0x1c(r30)
/* 80355FD8 00352F38 7E A5 AB 78 */ mr r5, r21
/* 80355FDC 00352F3C 80 9E 00 24 */ lwz r4, 0x24(r30)
/* 80355FE0 00352F40 38 C0 00 01 */ li r6, 1
/* 80355FE4 00352F44 38 03 FF FF */ addi r0, r3, -1
/* 80355FE8 00352F48 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80355FEC 00352F4C 7E 84 02 14 */ add r20, r4, r0
/* 80355FF0 00352F50 80 74 00 10 */ lwz r3, 0x10(r20)
/* 80355FF4 00352F54 7E 84 A3 78 */ mr r4, r20
/* 80355FF8 00352F58 4B FB 18 09 */ bl "MakeTexturesFromMats__10CCubeModelFPCvRQ24rstl60vector<23TCachedToken<8CTexture>,Q24rstl17rmemory_allocator>R12IObjectStoreb"
/* 80355FFC 00352F5C 80 14 00 04 */ lwz r0, 4(r20)
/* 80356000 00352F60 3B 39 00 01 */ addi r25, r25, 1
/* 80356004 00352F64 80 7E 00 04 */ lwz r3, 4(r30)
/* 80356008 00352F68 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8035600C 00352F6C 7C 03 02 14 */ add r0, r3, r0
/* 80356010 00352F70 90 1E 00 04 */ stw r0, 4(r30)
lbl_80356014:
/* 80356014 00352F74 7C 19 D0 00 */ cmpw r25, r26
/* 80356018 00352F78 41 80 FF 84 */ blt lbl_80355F9C
/* 8035601C 00352F7C 38 61 00 24 */ addi r3, r1, 0x24
/* 80356020 00352F80 38 81 00 20 */ addi r4, r1, 0x20
/* 80356024 00352F84 48 00 03 1D */ bl advanceSectionInfo
/* 80356028 00352F88 7C 60 1B 78 */ mr r0, r3
/* 8035602C 00352F8C 38 61 00 24 */ addi r3, r1, 0x24
/* 80356030 00352F90 7C 19 03 78 */ mr r25, r0
/* 80356034 00352F94 38 81 00 20 */ addi r4, r1, 0x20
/* 80356038 00352F98 48 00 03 09 */ bl advanceSectionInfo
/* 8035603C 00352F9C 7C 60 1B 78 */ mr r0, r3
/* 80356040 00352FA0 38 61 00 24 */ addi r3, r1, 0x24
/* 80356044 00352FA4 7C 1A 03 78 */ mr r26, r0
/* 80356048 00352FA8 38 81 00 20 */ addi r4, r1, 0x20
/* 8035604C 00352FAC 48 00 02 F5 */ bl advanceSectionInfo
/* 80356050 00352FB0 7C 60 1B 78 */ mr r0, r3
/* 80356054 00352FB4 38 61 00 24 */ addi r3, r1, 0x24
/* 80356058 00352FB8 7C 18 03 78 */ mr r24, r0
/* 8035605C 00352FBC 38 81 00 20 */ addi r4, r1, 0x20
/* 80356060 00352FC0 48 00 02 E1 */ bl advanceSectionInfo
/* 80356064 00352FC4 28 1D 00 00 */ cmplwi r29, 0
/* 80356068 00352FC8 7C 77 1B 78 */ mr r23, r3
/* 8035606C 00352FCC 3A C0 00 00 */ li r22, 0
/* 80356070 00352FD0 41 82 00 14 */ beq lbl_80356084
/* 80356074 00352FD4 38 61 00 24 */ addi r3, r1, 0x24
/* 80356078 00352FD8 38 81 00 20 */ addi r4, r1, 0x20
/* 8035607C 00352FDC 48 00 02 C5 */ bl advanceSectionInfo
/* 80356080 00352FE0 7C 76 1B 78 */ mr r22, r3
lbl_80356084:
/* 80356084 00352FE4 38 61 00 24 */ addi r3, r1, 0x24
/* 80356088 00352FE8 38 81 00 20 */ addi r4, r1, 0x20
/* 8035608C 00352FEC 48 00 02 B5 */ bl advanceSectionInfo
/* 80356090 00352FF0 83 A3 00 00 */ lwz r29, 0(r3)
/* 80356094 00352FF4 38 7E 00 08 */ addi r3, r30, 8
/* 80356098 00352FF8 7F A4 EB 78 */ mr r4, r29
/* 8035609C 00352FFC 4B D0 DB 75 */ bl sub_80063c10
/* 803560A0 00353000 3A A0 00 00 */ li r21, 0
/* 803560A4 00353004 48 00 00 64 */ b lbl_80356108
lbl_803560A8:
/* 803560A8 00353008 38 61 00 24 */ addi r3, r1, 0x24
/* 803560AC 0035300C 38 81 00 20 */ addi r4, r1, 0x20
/* 803560B0 00353010 48 00 02 91 */ bl advanceSectionInfo
/* 803560B4 00353014 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803560B8 00353018 7C 74 1B 78 */ mr r20, r3
/* 803560BC 0035301C 80 BE 00 10 */ lwz r5, 0x10(r30)
/* 803560C0 00353020 7C 00 28 00 */ cmpw r0, r5
/* 803560C4 00353024 41 80 00 1C */ blt lbl_803560E0
/* 803560C8 00353028 2C 05 00 00 */ cmpwi r5, 0
/* 803560CC 0035302C 38 7E 00 08 */ addi r3, r30, 8
/* 803560D0 00353030 38 80 00 04 */ li r4, 4
/* 803560D4 00353034 41 82 00 08 */ beq lbl_803560DC
/* 803560D8 00353038 54 A4 08 3C */ slwi r4, r5, 1
lbl_803560DC:
/* 803560DC 0035303C 4B D0 DB 35 */ bl sub_80063c10
lbl_803560E0:
/* 803560E0 00353040 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803560E4 00353044 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 803560E8 00353048 54 00 10 3A */ slwi r0, r0, 2
/* 803560EC 0035304C 7C 63 02 15 */ add. r3, r3, r0
/* 803560F0 00353050 41 82 00 08 */ beq lbl_803560F8
/* 803560F4 00353054 92 83 00 00 */ stw r20, 0(r3)
lbl_803560F8:
/* 803560F8 00353058 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 803560FC 0035305C 3A B5 00 01 */ addi r21, r21, 1
/* 80356100 00353060 38 03 00 01 */ addi r0, r3, 1
/* 80356104 00353064 90 1E 00 0C */ stw r0, 0xc(r30)
lbl_80356108:
/* 80356108 00353068 7C 15 E8 40 */ cmplw r21, r29
/* 8035610C 0035306C 41 80 FF 9C */ blt lbl_803560A8
/* 80356110 00353070 3C 80 80 3E */ lis r4, lbl_803D8308@ha
/* 80356114 00353074 38 60 00 48 */ li r3, 0x48
/* 80356118 00353078 38 84 83 08 */ addi r4, r4, lbl_803D8308@l
/* 8035611C 0035307C 38 A0 00 00 */ li r5, 0
/* 80356120 00353080 4B FB F7 4D */ bl __nw__FUlPCcPCc
/* 80356124 00353084 7C 74 1B 79 */ or. r20, r3, r3
/* 80356128 00353088 41 82 00 54 */ beq lbl_8035617C
/* 8035612C 0035308C 80 BE 00 24 */ lwz r5, 0x24(r30)
/* 80356130 00353090 7C 1B 00 D0 */ neg r0, r27
/* 80356134 00353094 7C 00 DB 78 */ or r0, r0, r27
/* 80356138 00353098 38 9C 00 0C */ addi r4, r28, 0xc
/* 8035613C 0035309C 92 C1 00 08 */ stw r22, 8(r1)
/* 80356140 003530A0 54 09 0F FE */ srwi r9, r0, 0x1f
/* 80356144 003530A4 38 C0 00 01 */ li r6, 1
/* 80356148 003530A8 38 00 FF FF */ li r0, -1
/* 8035614C 003530AC 90 81 00 0C */ stw r4, 0xc(r1)
/* 80356150 003530B0 7F 27 CB 78 */ mr r7, r25
/* 80356154 003530B4 7F 48 D3 78 */ mr r8, r26
/* 80356158 003530B8 7E EA BB 78 */ mr r10, r23
/* 8035615C 003530BC 91 21 00 10 */ stw r9, 0x10(r1)
/* 80356160 003530C0 7F 09 C3 78 */ mr r9, r24
/* 80356164 003530C4 38 9E 00 08 */ addi r4, r30, 8
/* 80356168 003530C8 90 C1 00 14 */ stw r6, 0x14(r1)
/* 8035616C 003530CC 90 01 00 18 */ stw r0, 0x18(r1)
/* 80356170 003530D0 80 C5 00 10 */ lwz r6, 0x10(r5)
/* 80356174 003530D4 4B FB 17 E1 */ bl "__ct__10CCubeModelFPQ24rstl37vector<Pv,Q24rstl17rmemory_allocator>PQ24rstl60vector<23TCachedToken<8CTexture>,Q24rstl17rmemory_allocator>PCvPCvPCvPCvPCvPCvRC6CAABoxUcb"
/* 80356178 003530D8 7C 74 1B 78 */ mr r20, r3
lbl_8035617C:
/* 8035617C 003530DC 80 7E 00 28 */ lwz r3, 0x28(r30)
/* 80356180 003530E0 4B FB F7 B1 */ bl Free__7CMemoryFPCv
/* 80356184 003530E4 92 9E 00 28 */ stw r20, 0x28(r30)
/* 80356188 003530E8 93 CD AA 7C */ stw r30, lbl_805A963C@sda21(r13)
/* 8035618C 003530EC 80 7E 00 34 */ lwz r3, 0x34(r30)
/* 80356190 003530F0 28 03 00 00 */ cmplwi r3, 0
/* 80356194 003530F4 41 82 00 08 */ beq lbl_8035619C
/* 80356198 003530F8 93 C3 00 30 */ stw r30, 0x30(r3)
lbl_8035619C:
/* 8035619C 003530FC 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 803561A0 00353100 7F E4 FB 78 */ mr r4, r31
/* 803561A4 00353104 80 7E 00 04 */ lwz r3, 4(r30)
/* 803561A8 00353108 54 00 10 3A */ slwi r0, r0, 2
/* 803561AC 0035310C 7C 03 02 14 */ add r0, r3, r0
/* 803561B0 00353110 90 1E 00 04 */ stw r0, 4(r30)
/* 803561B4 00353114 80 6D AA 78 */ lwz r3, lbl_805A9638@sda21(r13)
/* 803561B8 00353118 80 1E 00 04 */ lwz r0, 4(r30)
/* 803561BC 0035311C 7C 03 02 14 */ add r0, r3, r0
/* 803561C0 00353120 90 0D AA 78 */ stw r0, lbl_805A9638@sda21(r13)
/* 803561C4 00353124 80 7E 00 00 */ lwz r3, 0(r30)
/* 803561C8 00353128 48 02 88 E9 */ bl DCFlushRange
/* 803561CC 0035312C 7F C3 F3 78 */ mr r3, r30
/* 803561D0 00353130 BA 81 00 40 */ lmw r20, 0x40(r1)
/* 803561D4 00353134 80 01 00 74 */ lwz r0, 0x74(r1)
/* 803561D8 00353138 7C 08 03 A6 */ mtlr r0
/* 803561DC 0035313C 38 21 00 70 */ addi r1, r1, 0x70
/* 803561E0 00353140 4E 80 00 20 */ blr
.global sub_803561e4
sub_803561e4:
/* 803561E4 00353144 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803561E8 00353148 7C 08 02 A6 */ mflr r0
/* 803561EC 0035314C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803561F0 00353150 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803561F4 00353154 7C 9F 23 78 */ mr r31, r4
/* 803561F8 00353158 93 C1 00 08 */ stw r30, 8(r1)
/* 803561FC 0035315C 7C 7E 1B 78 */ mr r30, r3
/* 80356200 00353160 80 03 00 04 */ lwz r0, 4(r3)
/* 80356204 00353164 80 A3 00 08 */ lwz r5, 8(r3)
/* 80356208 00353168 7C 00 28 00 */ cmpw r0, r5
/* 8035620C 0035316C 41 80 00 18 */ blt lbl_80356224
/* 80356210 00353170 2C 05 00 00 */ cmpwi r5, 0
/* 80356214 00353174 38 80 00 04 */ li r4, 4
/* 80356218 00353178 41 82 00 08 */ beq lbl_80356220
/* 8035621C 0035317C 54 A4 08 3C */ slwi r4, r5, 1
lbl_80356220:
/* 80356220 00353180 48 00 01 5D */ bl sub_8035637c
lbl_80356224:
/* 80356224 00353184 80 1E 00 04 */ lwz r0, 4(r30)
/* 80356228 00353188 7F E4 FB 78 */ mr r4, r31
/* 8035622C 0035318C 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 80356230 00353190 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80356234 00353194 7C 63 02 14 */ add r3, r3, r0
/* 80356238 00353198 48 00 00 29 */ bl sub_80356260
/* 8035623C 0035319C 80 7E 00 04 */ lwz r3, 4(r30)
/* 80356240 003531A0 38 03 00 01 */ addi r0, r3, 1
/* 80356244 003531A4 90 1E 00 04 */ stw r0, 4(r30)
/* 80356248 003531A8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8035624C 003531AC 83 C1 00 08 */ lwz r30, 8(r1)
/* 80356250 003531B0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80356254 003531B4 7C 08 03 A6 */ mtlr r0
/* 80356258 003531B8 38 21 00 10 */ addi r1, r1, 0x10
/* 8035625C 003531BC 4E 80 00 20 */ blr
.global sub_80356260
sub_80356260:
/* 80356260 003531C0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80356264 003531C4 7C 08 02 A6 */ mflr r0
/* 80356268 003531C8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8035626C 003531CC BF 41 00 08 */ stmw r26, 8(r1)
/* 80356270 003531D0 7C 7A 1B 79 */ or. r26, r3, r3
/* 80356274 003531D4 7C 9B 23 78 */ mr r27, r4
/* 80356278 003531D8 41 82 00 B4 */ beq lbl_8035632C
/* 8035627C 003531DC 80 1B 00 04 */ lwz r0, 4(r27)
/* 80356280 003531E0 90 1A 00 04 */ stw r0, 4(r26)
/* 80356284 003531E4 80 1B 00 08 */ lwz r0, 8(r27)
/* 80356288 003531E8 90 1A 00 08 */ stw r0, 8(r26)
/* 8035628C 003531EC 80 1B 00 04 */ lwz r0, 4(r27)
/* 80356290 003531F0 2C 00 00 00 */ cmpwi r0, 0
/* 80356294 003531F4 40 82 00 1C */ bne lbl_803562B0
/* 80356298 003531F8 80 1B 00 08 */ lwz r0, 8(r27)
/* 8035629C 003531FC 2C 00 00 00 */ cmpwi r0, 0
/* 803562A0 00353200 40 82 00 10 */ bne lbl_803562B0
/* 803562A4 00353204 38 00 00 00 */ li r0, 0
/* 803562A8 00353208 90 1A 00 0C */ stw r0, 0xc(r26)
/* 803562AC 0035320C 48 00 00 78 */ b lbl_80356324
lbl_803562B0:
/* 803562B0 00353210 80 1A 00 08 */ lwz r0, 8(r26)
/* 803562B4 00353214 1C 60 00 0C */ mulli r3, r0, 0xc
/* 803562B8 00353218 2C 03 00 00 */ cmpwi r3, 0
/* 803562BC 0035321C 40 82 00 10 */ bne lbl_803562CC
/* 803562C0 00353220 38 00 00 00 */ li r0, 0
/* 803562C4 00353224 90 1A 00 0C */ stw r0, 0xc(r26)
/* 803562C8 00353228 48 00 00 18 */ b lbl_803562E0
lbl_803562CC:
/* 803562CC 0035322C 3C 80 80 3E */ lis r4, lbl_803D8308@ha
/* 803562D0 00353230 38 A0 00 00 */ li r5, 0
/* 803562D4 00353234 38 84 83 08 */ addi r4, r4, lbl_803D8308@l
/* 803562D8 00353238 4B FB F5 41 */ bl __nwa__FUlPCcPCc
/* 803562DC 0035323C 90 7A 00 0C */ stw r3, 0xc(r26)
lbl_803562E0:
/* 803562E0 00353240 83 9A 00 04 */ lwz r28, 4(r26)
/* 803562E4 00353244 3B E0 00 00 */ li r31, 0
/* 803562E8 00353248 83 BB 00 0C */ lwz r29, 0xc(r27)
/* 803562EC 0035324C 83 DA 00 0C */ lwz r30, 0xc(r26)
/* 803562F0 00353250 48 00 00 2C */ b lbl_8035631C
lbl_803562F4:
/* 803562F4 00353254 28 1E 00 00 */ cmplwi r30, 0
/* 803562F8 00353258 41 82 00 18 */ beq lbl_80356310
/* 803562FC 0035325C 7F C3 F3 78 */ mr r3, r30
/* 80356300 00353260 7F A4 EB 78 */ mr r4, r29
/* 80356304 00353264 4B FE AB A5 */ bl __ct__6CTokenFRC6CToken
/* 80356308 00353268 80 1D 00 08 */ lwz r0, 8(r29)
/* 8035630C 0035326C 90 1E 00 08 */ stw r0, 8(r30)
lbl_80356310:
/* 80356310 00353270 3B DE 00 0C */ addi r30, r30, 0xc
/* 80356314 00353274 3B FF 00 01 */ addi r31, r31, 1
/* 80356318 00353278 3B BD 00 0C */ addi r29, r29, 0xc
lbl_8035631C:
/* 8035631C 0035327C 7C 1F E0 00 */ cmpw r31, r28
/* 80356320 00353280 41 80 FF D4 */ blt lbl_803562F4
lbl_80356324:
/* 80356324 00353284 80 1B 00 10 */ lwz r0, 0x10(r27)
/* 80356328 00353288 90 1A 00 10 */ stw r0, 0x10(r26)
lbl_8035632C:
/* 8035632C 0035328C BB 41 00 08 */ lmw r26, 8(r1)
/* 80356330 00353290 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80356334 00353294 7C 08 03 A6 */ mtlr r0
/* 80356338 00353298 38 21 00 20 */ addi r1, r1, 0x20
/* 8035633C 0035329C 4E 80 00 20 */ blr
.global advanceSectionInfo
advanceSectionInfo:
/* 80356340 003532A0 80 A4 00 00 */ lwz r5, 0(r4)
/* 80356344 003532A4 80 C5 00 00 */ lwz r6, 0(r5)
/* 80356348 003532A8 2C 06 00 00 */ cmpwi r6, 0
/* 8035634C 003532AC 41 82 00 0C */ beq lbl_80356358
/* 80356350 003532B0 80 A3 00 00 */ lwz r5, 0(r3)
/* 80356354 003532B4 48 00 00 08 */ b lbl_8035635C
lbl_80356358:
/* 80356358 003532B8 38 A0 00 00 */ li r5, 0
lbl_8035635C:
/* 8035635C 003532BC 80 03 00 00 */ lwz r0, 0(r3)
/* 80356360 003532C0 7C 00 32 14 */ add r0, r0, r6
/* 80356364 003532C4 90 03 00 00 */ stw r0, 0(r3)
/* 80356368 003532C8 7C A3 2B 78 */ mr r3, r5
/* 8035636C 003532CC 80 A4 00 00 */ lwz r5, 0(r4)
/* 80356370 003532D0 38 05 00 04 */ addi r0, r5, 4
/* 80356374 003532D4 90 04 00 00 */ stw r0, 0(r4)
/* 80356378 003532D8 4E 80 00 20 */ blr
.global sub_8035637c
sub_8035637c:
/* 8035637C 003532DC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80356380 003532E0 7C 08 02 A6 */ mflr r0
/* 80356384 003532E4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80356388 003532E8 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8035638C 003532EC 93 C1 00 28 */ stw r30, 0x28(r1)
/* 80356390 003532F0 7C 9E 23 78 */ mr r30, r4
/* 80356394 003532F4 93 A1 00 24 */ stw r29, 0x24(r1)
/* 80356398 003532F8 7C 7D 1B 78 */ mr r29, r3
/* 8035639C 003532FC 80 03 00 08 */ lwz r0, 8(r3)
/* 803563A0 00353300 7C 1E 00 00 */ cmpw r30, r0
/* 803563A4 00353304 40 81 00 8C */ ble lbl_80356430
/* 803563A8 00353308 1C 7E 00 14 */ mulli r3, r30, 0x14
/* 803563AC 0035330C 2C 03 00 00 */ cmpwi r3, 0
/* 803563B0 00353310 40 82 00 0C */ bne lbl_803563BC
/* 803563B4 00353314 3B E0 00 00 */ li r31, 0
/* 803563B8 00353318 48 00 00 18 */ b lbl_803563D0
lbl_803563BC:
/* 803563BC 0035331C 3C 80 80 3E */ lis r4, lbl_803D8308@ha
/* 803563C0 00353320 38 A0 00 00 */ li r5, 0
/* 803563C4 00353324 38 84 83 08 */ addi r4, r4, lbl_803D8308@l
/* 803563C8 00353328 4B FB F4 51 */ bl __nwa__FUlPCcPCc
/* 803563CC 0035332C 7C 7F 1B 78 */ mr r31, r3
lbl_803563D0:
/* 803563D0 00353330 80 1D 00 04 */ lwz r0, 4(r29)
/* 803563D4 00353334 7F E5 FB 78 */ mr r5, r31
/* 803563D8 00353338 80 DD 00 0C */ lwz r6, 0xc(r29)
/* 803563DC 0035333C 38 61 00 14 */ addi r3, r1, 0x14
/* 803563E0 00353340 1C 00 00 14 */ mulli r0, r0, 0x14
/* 803563E4 00353344 38 81 00 0C */ addi r4, r1, 0xc
/* 803563E8 00353348 7C C6 02 14 */ add r6, r6, r0
/* 803563EC 0035334C 90 C1 00 0C */ stw r6, 0xc(r1)
/* 803563F0 00353350 80 1D 00 0C */ lwz r0, 0xc(r29)
/* 803563F4 00353354 90 C1 00 08 */ stw r6, 8(r1)
/* 803563F8 00353358 90 01 00 10 */ stw r0, 0x10(r1)
/* 803563FC 0035335C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80356400 00353360 48 00 00 99 */ bl sub_80356498
/* 80356404 00353364 80 1D 00 04 */ lwz r0, 4(r29)
/* 80356408 00353368 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8035640C 0035336C 1C 00 00 14 */ mulli r0, r0, 0x14
/* 80356410 00353370 7C 83 02 14 */ add r4, r3, r0
/* 80356414 00353374 48 00 00 39 */ bl sub_8035644c
/* 80356418 00353378 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8035641C 0035337C 28 03 00 00 */ cmplwi r3, 0
/* 80356420 00353380 41 82 00 08 */ beq lbl_80356428
/* 80356424 00353384 4B FB F5 0D */ bl Free__7CMemoryFPCv
lbl_80356428:
/* 80356428 00353388 93 FD 00 0C */ stw r31, 0xc(r29)
/* 8035642C 0035338C 93 DD 00 08 */ stw r30, 8(r29)
lbl_80356430:
/* 80356430 00353390 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80356434 00353394 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 80356438 00353398 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8035643C 0035339C 83 A1 00 24 */ lwz r29, 0x24(r1)
/* 80356440 003533A0 7C 08 03 A6 */ mtlr r0
/* 80356444 003533A4 38 21 00 30 */ addi r1, r1, 0x30
/* 80356448 003533A8 4E 80 00 20 */ blr
.global sub_8035644c
sub_8035644c:
/* 8035644C 003533AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80356450 003533B0 7C 08 02 A6 */ mflr r0
/* 80356454 003533B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80356458 003533B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8035645C 003533BC 7C 7F 1B 78 */ mr r31, r3
/* 80356460 003533C0 93 C1 00 08 */ stw r30, 8(r1)
/* 80356464 003533C4 7C 9E 23 78 */ mr r30, r4
/* 80356468 003533C8 48 00 00 10 */ b lbl_80356478
lbl_8035646C:
/* 8035646C 003533CC 7F E3 FB 78 */ mr r3, r31
/* 80356470 003533D0 4B FF F9 D9 */ bl sub_80355e48
/* 80356474 003533D4 3B FF 00 14 */ addi r31, r31, 0x14
lbl_80356478:
/* 80356478 003533D8 7C 1F F0 40 */ cmplw r31, r30
/* 8035647C 003533DC 40 82 FF F0 */ bne lbl_8035646C
/* 80356480 003533E0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80356484 003533E4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80356488 003533E8 83 C1 00 08 */ lwz r30, 8(r1)
/* 8035648C 003533EC 7C 08 03 A6 */ mtlr r0
/* 80356490 003533F0 38 21 00 10 */ addi r1, r1, 0x10
/* 80356494 003533F4 4E 80 00 20 */ blr
.global sub_80356498
sub_80356498:
/* 80356498 003533F8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8035649C 003533FC 7C 08 02 A6 */ mflr r0
/* 803564A0 00353400 90 01 00 24 */ stw r0, 0x24(r1)
/* 803564A4 00353404 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 803564A8 00353408 93 C1 00 18 */ stw r30, 0x18(r1)
/* 803564AC 0035340C 7C BE 2B 78 */ mr r30, r5
/* 803564B0 00353410 93 A1 00 14 */ stw r29, 0x14(r1)
/* 803564B4 00353414 7C 9D 23 78 */ mr r29, r4
/* 803564B8 00353418 83 E3 00 00 */ lwz r31, 0(r3)
/* 803564BC 0035341C 48 00 00 18 */ b lbl_803564D4
lbl_803564C0:
/* 803564C0 00353420 7F C3 F3 78 */ mr r3, r30
/* 803564C4 00353424 7F E4 FB 78 */ mr r4, r31
/* 803564C8 00353428 4B FF FD 99 */ bl sub_80356260
/* 803564CC 0035342C 3B DE 00 14 */ addi r30, r30, 0x14
/* 803564D0 00353430 3B FF 00 14 */ addi r31, r31, 0x14
lbl_803564D4:
/* 803564D4 00353434 80 1D 00 00 */ lwz r0, 0(r29)
/* 803564D8 00353438 7C 1F 00 40 */ cmplw r31, r0
/* 803564DC 0035343C 40 82 FF E4 */ bne lbl_803564C0
/* 803564E0 00353440 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803564E4 00353444 7F C3 F3 78 */ mr r3, r30
/* 803564E8 00353448 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 803564EC 0035344C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 803564F0 00353450 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 803564F4 00353454 7C 08 03 A6 */ mtlr r0
/* 803564F8 00353458 38 21 00 20 */ addi r1, r1, 0x20
/* 803564FC 0035345C 4E 80 00 20 */ blr