.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8021D0E0 func_8021D0E0: /* 8021D0E0 00218D40 3C 80 80 42 */ lis r4, lbl_80423B38@ha /* 8021D0E4 00218D44 38 00 00 00 */ li r0, 0 /* 8021D0E8 00218D48 38 84 3B 38 */ addi r4, r4, lbl_80423B38@l /* 8021D0EC 00218D4C 90 03 00 00 */ stw r0, 0(r3) /* 8021D0F0 00218D50 90 83 00 0C */ stw r4, 0xc(r3) /* 8021D0F4 00218D54 90 03 00 04 */ stw r0, 4(r3) /* 8021D0F8 00218D58 98 03 00 08 */ stb r0, 8(r3) /* 8021D0FC 00218D5C 80 8D A2 90 */ lwz r4, lbl_8063F550-_SDA_BASE_(r13) /* 8021D100 00218D60 2C 04 00 00 */ cmpwi r4, 0 /* 8021D104 00218D64 41 82 00 20 */ beq lbl_8021D124 /* 8021D108 00218D68 48 00 00 08 */ b lbl_8021D110 lbl_8021D10C: /* 8021D10C 00218D6C 7C 04 03 78 */ mr r4, r0 lbl_8021D110: /* 8021D110 00218D70 80 04 00 00 */ lwz r0, 0(r4) /* 8021D114 00218D74 2C 00 00 00 */ cmpwi r0, 0 /* 8021D118 00218D78 40 82 FF F4 */ bne lbl_8021D10C /* 8021D11C 00218D7C 90 64 00 00 */ stw r3, 0(r4) /* 8021D120 00218D80 4E 80 00 20 */ blr lbl_8021D124: /* 8021D124 00218D84 90 6D A2 90 */ stw r3, lbl_8063F550-_SDA_BASE_(r13) /* 8021D128 00218D88 4E 80 00 20 */ blr /* 8021D12C 00218D8C 38 60 00 01 */ li r3, 1 /* 8021D130 00218D90 4E 80 00 20 */ blr /* 8021D134 00218D94 4E 80 00 20 */ blr /* 8021D138 00218D98 38 60 00 01 */ li r3, 1 /* 8021D13C 00218D9C 4E 80 00 20 */ blr /* 8021D140 00218DA0 4E 80 00 20 */ blr .global func_8021D144 func_8021D144: /* 8021D144 00218DA4 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8021D148 00218DA8 7C 08 02 A6 */ mflr r0 /* 8021D14C 00218DAC 2C 03 00 00 */ cmpwi r3, 0 /* 8021D150 00218DB0 90 01 00 14 */ stw r0, 0x14(r1) /* 8021D154 00218DB4 93 E1 00 0C */ stw r31, 0xc(r1) /* 8021D158 00218DB8 7C 7F 1B 78 */ mr r31, r3 /* 8021D15C 00218DBC 41 82 00 5C */ beq lbl_8021D1B8 /* 8021D160 00218DC0 80 AD A2 90 */ lwz r5, lbl_8063F550-_SDA_BASE_(r13) /* 8021D164 00218DC4 7C 05 18 40 */ cmplw r5, r3 /* 8021D168 00218DC8 40 82 00 24 */ bne lbl_8021D18C /* 8021D16C 00218DCC 80 03 00 00 */ lwz r0, 0(r3) /* 8021D170 00218DD0 90 0D A2 90 */ stw r0, lbl_8063F550-_SDA_BASE_(r13) /* 8021D174 00218DD4 48 00 00 28 */ b lbl_8021D19C /* 8021D178 00218DD8 48 00 00 14 */ b lbl_8021D18C lbl_8021D17C: /* 8021D17C 00218DDC 80 05 00 00 */ lwz r0, 0(r5) /* 8021D180 00218DE0 7C 00 18 40 */ cmplw r0, r3 /* 8021D184 00218DE4 41 82 00 10 */ beq lbl_8021D194 /* 8021D188 00218DE8 7C 05 03 78 */ mr r5, r0 lbl_8021D18C: /* 8021D18C 00218DEC 2C 05 00 00 */ cmpwi r5, 0 /* 8021D190 00218DF0 40 82 FF EC */ bne lbl_8021D17C lbl_8021D194: /* 8021D194 00218DF4 80 03 00 00 */ lwz r0, 0(r3) /* 8021D198 00218DF8 90 05 00 00 */ stw r0, 0(r5) lbl_8021D19C: /* 8021D19C 00218DFC 38 00 00 00 */ li r0, 0 /* 8021D1A0 00218E00 2C 04 00 00 */ cmpwi r4, 0 /* 8021D1A4 00218E04 90 03 00 00 */ stw r0, 0(r3) /* 8021D1A8 00218E08 40 81 00 10 */ ble lbl_8021D1B8 /* 8021D1AC 00218E0C 80 6D 96 38 */ lwz r3, lbl_8063E8F8-_SDA_BASE_(r13) /* 8021D1B0 00218E10 7F E4 FB 78 */ mr r4, r31 /* 8021D1B4 00218E14 4B FB DB 95 */ bl func_801DAD48 lbl_8021D1B8: /* 8021D1B8 00218E18 7F E3 FB 78 */ mr r3, r31 /* 8021D1BC 00218E1C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8021D1C0 00218E20 80 01 00 14 */ lwz r0, 0x14(r1) /* 8021D1C4 00218E24 7C 08 03 A6 */ mtlr r0 /* 8021D1C8 00218E28 38 21 00 10 */ addi r1, r1, 0x10 /* 8021D1CC 00218E2C 4E 80 00 20 */ blr .global func_8021D1D0 func_8021D1D0: /* 8021D1D0 00218E30 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8021D1D4 00218E34 7C 08 02 A6 */ mflr r0 /* 8021D1D8 00218E38 90 01 00 24 */ stw r0, 0x24(r1) /* 8021D1DC 00218E3C DB E1 00 18 */ stfd f31, 0x18(r1) /* 8021D1E0 00218E40 FF E0 08 90 */ fmr f31, f1 /* 8021D1E4 00218E44 93 E1 00 14 */ stw r31, 0x14(r1) /* 8021D1E8 00218E48 3B E0 00 00 */ li r31, 0 /* 8021D1EC 00218E4C 93 C1 00 10 */ stw r30, 0x10(r1) /* 8021D1F0 00218E50 93 A1 00 0C */ stw r29, 0xc(r1) /* 8021D1F4 00218E54 83 AD A2 90 */ lwz r29, lbl_8063F550-_SDA_BASE_(r13) /* 8021D1F8 00218E58 48 00 00 74 */ b lbl_8021D26C lbl_8021D1FC: /* 8021D1FC 00218E5C 88 1D 00 08 */ lbz r0, 8(r29) /* 8021D200 00218E60 2C 00 00 00 */ cmpwi r0, 0 /* 8021D204 00218E64 41 82 00 64 */ beq lbl_8021D268 /* 8021D208 00218E68 81 9D 00 0C */ lwz r12, 0xc(r29) /* 8021D20C 00218E6C FC 20 F8 90 */ fmr f1, f31 /* 8021D210 00218E70 7F A3 EB 78 */ mr r3, r29 /* 8021D214 00218E74 81 8C 00 10 */ lwz r12, 0x10(r12) /* 8021D218 00218E78 7D 89 03 A6 */ mtctr r12 /* 8021D21C 00218E7C 4E 80 04 21 */ bctrl /* 8021D220 00218E80 2C 03 00 00 */ cmpwi r3, 0 /* 8021D224 00218E84 40 82 00 44 */ bne lbl_8021D268 /* 8021D228 00218E88 88 1D 00 08 */ lbz r0, 8(r29) /* 8021D22C 00218E8C 2C 00 00 00 */ cmpwi r0, 0 /* 8021D230 00218E90 41 82 00 38 */ beq lbl_8021D268 /* 8021D234 00218E94 83 DD 00 04 */ lwz r30, 4(r29) /* 8021D238 00218E98 57 C3 86 3E */ rlwinm r3, r30, 0x10, 0x18, 0x1f /* 8021D23C 00218E9C 48 01 DE 1D */ bl func_8023B058 /* 8021D240 00218EA0 2C 03 00 00 */ cmpwi r3, 0 /* 8021D244 00218EA4 41 82 00 0C */ beq lbl_8021D250 /* 8021D248 00218EA8 7F C4 F3 78 */ mr r4, r30 /* 8021D24C 00218EAC 48 01 E1 D5 */ bl func_8023B420 lbl_8021D250: /* 8021D250 00218EB0 81 9D 00 0C */ lwz r12, 0xc(r29) /* 8021D254 00218EB4 7F A3 EB 78 */ mr r3, r29 /* 8021D258 00218EB8 81 8C 00 0C */ lwz r12, 0xc(r12) /* 8021D25C 00218EBC 7D 89 03 A6 */ mtctr r12 /* 8021D260 00218EC0 4E 80 04 21 */ bctrl /* 8021D264 00218EC4 9B FD 00 08 */ stb r31, 8(r29) lbl_8021D268: /* 8021D268 00218EC8 83 BD 00 00 */ lwz r29, 0(r29) lbl_8021D26C: /* 8021D26C 00218ECC 2C 1D 00 00 */ cmpwi r29, 0 /* 8021D270 00218ED0 40 82 FF 8C */ bne lbl_8021D1FC /* 8021D274 00218ED4 80 01 00 24 */ lwz r0, 0x24(r1) /* 8021D278 00218ED8 CB E1 00 18 */ lfd f31, 0x18(r1) /* 8021D27C 00218EDC 83 E1 00 14 */ lwz r31, 0x14(r1) /* 8021D280 00218EE0 83 C1 00 10 */ lwz r30, 0x10(r1) /* 8021D284 00218EE4 83 A1 00 0C */ lwz r29, 0xc(r1) /* 8021D288 00218EE8 7C 08 03 A6 */ mtlr r0 /* 8021D28C 00218EEC 38 21 00 20 */ addi r1, r1, 0x20 /* 8021D290 00218EF0 4E 80 00 20 */ blr .global func_8021D294 func_8021D294: /* 8021D294 00218EF4 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8021D298 00218EF8 7C 08 02 A6 */ mflr r0 /* 8021D29C 00218EFC 90 01 00 24 */ stw r0, 0x24(r1) /* 8021D2A0 00218F00 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8021D2A4 00218F04 93 C1 00 18 */ stw r30, 0x18(r1) /* 8021D2A8 00218F08 7C 7E 1B 78 */ mr r30, r3 /* 8021D2AC 00218F0C 93 A1 00 14 */ stw r29, 0x14(r1) /* 8021D2B0 00218F10 80 AD A3 D8 */ lwz r5, render_context_ptr-_SDA_BASE_(r13) /* 8021D2B4 00218F14 80 85 16 38 */ lwz r4, 0x1638(r5) /* 8021D2B8 00218F18 88 64 0A 87 */ lbz r3, 0xa87(r4) /* 8021D2BC 00218F1C 7C 03 00 D0 */ neg r0, r3 /* 8021D2C0 00218F20 7C 00 1B 78 */ or r0, r0, r3 /* 8021D2C4 00218F24 54 1F 0F FF */ rlwinm. r31, r0, 1, 0x1f, 0x1f /* 8021D2C8 00218F28 41 82 00 2C */ beq lbl_8021D2F4 /* 8021D2CC 00218F2C 38 00 00 00 */ li r0, 0 /* 8021D2D0 00218F30 98 04 0A 87 */ stb r0, 0xa87(r4) /* 8021D2D4 00218F34 80 65 16 38 */ lwz r3, 0x1638(r5) /* 8021D2D8 00218F38 80 03 00 64 */ lwz r0, 0x64(r3) /* 8021D2DC 00218F3C 60 00 00 40 */ ori r0, r0, 0x40 /* 8021D2E0 00218F40 90 03 00 64 */ stw r0, 0x64(r3) /* 8021D2E4 00218F44 80 65 16 38 */ lwz r3, 0x1638(r5) /* 8021D2E8 00218F48 80 03 00 00 */ lwz r0, 0(r3) /* 8021D2EC 00218F4C 60 00 00 40 */ ori r0, r0, 0x40 /* 8021D2F0 00218F50 90 03 00 00 */ stw r0, 0(r3) lbl_8021D2F4: /* 8021D2F4 00218F54 83 AD A2 90 */ lwz r29, lbl_8063F550-_SDA_BASE_(r13) /* 8021D2F8 00218F58 48 00 00 84 */ b lbl_8021D37C lbl_8021D2FC: /* 8021D2FC 00218F5C 88 1D 00 08 */ lbz r0, 8(r29) /* 8021D300 00218F60 2C 00 00 00 */ cmpwi r0, 0 /* 8021D304 00218F64 41 82 00 74 */ beq lbl_8021D378 /* 8021D308 00218F68 80 8D A4 70 */ lwz r4, lbl_8063F730-_SDA_BASE_(r13) /* 8021D30C 00218F6C 2C 04 00 00 */ cmpwi r4, 0 /* 8021D310 00218F70 40 82 00 0C */ bne lbl_8021D31C /* 8021D314 00218F74 38 60 00 00 */ li r3, 0 /* 8021D318 00218F78 48 00 00 3C */ b lbl_8021D354 lbl_8021D31C: /* 8021D31C 00218F7C 80 A4 00 14 */ lwz r5, 0x14(r4) /* 8021D320 00218F80 2C 05 00 00 */ cmpwi r5, 0 /* 8021D324 00218F84 41 82 00 2C */ beq lbl_8021D350 /* 8021D328 00218F88 80 65 00 00 */ lwz r3, 0(r5) /* 8021D32C 00218F8C 80 04 00 00 */ lwz r0, 0(r4) /* 8021D330 00218F90 80 83 00 00 */ lwz r4, 0(r3) /* 8021D334 00218F94 80 65 00 04 */ lwz r3, 4(r5) /* 8021D338 00218F98 54 05 80 1E */ slwi r5, r0, 0x10 /* 8021D33C 00218F9C 54 84 40 2E */ slwi r4, r4, 8 /* 8021D340 00218FA0 88 03 00 04 */ lbz r0, 4(r3) /* 8021D344 00218FA4 7C A3 23 78 */ or r3, r5, r4 /* 8021D348 00218FA8 7C 63 03 78 */ or r3, r3, r0 /* 8021D34C 00218FAC 48 00 00 08 */ b lbl_8021D354 lbl_8021D350: /* 8021D350 00218FB0 38 60 00 00 */ li r3, 0 lbl_8021D354: /* 8021D354 00218FB4 80 1D 00 04 */ lwz r0, 4(r29) /* 8021D358 00218FB8 7C 00 18 40 */ cmplw r0, r3 /* 8021D35C 00218FBC 40 82 00 1C */ bne lbl_8021D378 /* 8021D360 00218FC0 81 9D 00 0C */ lwz r12, 0xc(r29) /* 8021D364 00218FC4 7F A3 EB 78 */ mr r3, r29 /* 8021D368 00218FC8 7F C4 F3 78 */ mr r4, r30 /* 8021D36C 00218FCC 81 8C 00 14 */ lwz r12, 0x14(r12) /* 8021D370 00218FD0 7D 89 03 A6 */ mtctr r12 /* 8021D374 00218FD4 4E 80 04 21 */ bctrl lbl_8021D378: /* 8021D378 00218FD8 83 BD 00 00 */ lwz r29, 0(r29) lbl_8021D37C: /* 8021D37C 00218FDC 2C 1D 00 00 */ cmpwi r29, 0 /* 8021D380 00218FE0 40 82 FF 7C */ bne lbl_8021D2FC /* 8021D384 00218FE4 2C 1F 00 00 */ cmpwi r31, 0 /* 8021D388 00218FE8 41 82 00 60 */ beq lbl_8021D3E8 /* 8021D38C 00218FEC 80 8D A3 D8 */ lwz r4, render_context_ptr-_SDA_BASE_(r13) /* 8021D390 00218FF0 38 00 00 01 */ li r0, 1 /* 8021D394 00218FF4 80 64 16 38 */ lwz r3, 0x1638(r4) /* 8021D398 00218FF8 98 03 0A 87 */ stb r0, 0xa87(r3) /* 8021D39C 00218FFC 80 64 16 38 */ lwz r3, 0x1638(r4) /* 8021D3A0 00219000 80 03 00 64 */ lwz r0, 0x64(r3) /* 8021D3A4 00219004 60 00 00 40 */ ori r0, r0, 0x40 /* 8021D3A8 00219008 90 03 00 64 */ stw r0, 0x64(r3) /* 8021D3AC 0021900C 80 64 16 38 */ lwz r3, 0x1638(r4) /* 8021D3B0 00219010 80 03 00 64 */ lwz r0, 0x64(r3) /* 8021D3B4 00219014 60 00 02 00 */ ori r0, r0, 0x200 /* 8021D3B8 00219018 90 03 00 64 */ stw r0, 0x64(r3) /* 8021D3BC 0021901C 80 64 16 38 */ lwz r3, 0x1638(r4) /* 8021D3C0 00219020 88 03 0A 86 */ lbz r0, 0xa86(r3) /* 8021D3C4 00219024 2C 00 00 00 */ cmpwi r0, 0 /* 8021D3C8 00219028 41 82 00 10 */ beq lbl_8021D3D8 /* 8021D3CC 0021902C 80 03 00 64 */ lwz r0, 0x64(r3) /* 8021D3D0 00219030 60 00 01 00 */ ori r0, r0, 0x100 /* 8021D3D4 00219034 90 03 00 64 */ stw r0, 0x64(r3) lbl_8021D3D8: /* 8021D3D8 00219038 80 64 16 38 */ lwz r3, 0x1638(r4) /* 8021D3DC 0021903C 80 03 00 00 */ lwz r0, 0(r3) /* 8021D3E0 00219040 60 00 00 40 */ ori r0, r0, 0x40 /* 8021D3E4 00219044 90 03 00 00 */ stw r0, 0(r3) lbl_8021D3E8: /* 8021D3E8 00219048 80 01 00 24 */ lwz r0, 0x24(r1) /* 8021D3EC 0021904C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8021D3F0 00219050 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8021D3F4 00219054 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8021D3F8 00219058 7C 08 03 A6 */ mtlr r0 /* 8021D3FC 0021905C 38 21 00 20 */ addi r1, r1, 0x20 /* 8021D400 00219060 4E 80 00 20 */ blr .global func_8021D404 func_8021D404: /* 8021D404 00219064 38 A0 00 01 */ li r5, 1 /* 8021D408 00219068 38 6D A2 88 */ addi r3, r13, lbl_8063F548-_SDA_BASE_ /* 8021D40C 0021906C 38 80 00 04 */ li r4, 4 /* 8021D410 00219070 38 00 00 00 */ li r0, 0 /* 8021D414 00219074 98 AD A2 88 */ stb r5, lbl_8063F548-_SDA_BASE_(r13) /* 8021D418 00219078 B0 83 00 02 */ sth r4, 2(r3) /* 8021D41C 0021907C 98 03 00 04 */ stb r0, 4(r3) /* 8021D420 00219080 4E 80 00 20 */ blr