tp/asm/JKernel/JKRAram.s

1069 lines
52 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax" # 802d1fa4
.global JKRAram_NS_create
JKRAram_NS_create:
/* 802D1FA4 002CEEE4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D1FA8 002CEEE8 7C 08 02 A6 */ mflr r0
/* 802D1FAC 002CEEEC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D1FB0 002CEEF0 39 61 00 20 */ addi r11, r1, 0x20
/* 802D1FB4 002CEEF4 48 09 02 21 */ bl _savegpr_27
/* 802D1FB8 002CEEF8 7C 7B 1B 78 */ mr r27, r3
/* 802D1FBC 002CEEFC 7C 9C 23 78 */ mr r28, r4
/* 802D1FC0 002CEF00 7C BD 2B 78 */ mr r29, r5
/* 802D1FC4 002CEF04 7C DE 33 78 */ mr r30, r6
/* 802D1FC8 002CEF08 7C FF 3B 78 */ mr r31, r7
/* 802D1FCC 002CEF0C 80 0D 8E 48 */ lwz r0, lbl_804513C8-_SDA_BASE_(r13)
/* 802D1FD0 002CEF10 28 00 00 00 */ cmplwi r0, 0
/* 802D1FD4 002CEF14 40 82 00 34 */ bne lbl_802D2008
/* 802D1FD8 002CEF18 38 60 00 A4 */ li r3, 0xa4
/* 802D1FDC 002CEF1C 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13)
/* 802D1FE0 002CEF20 38 A0 00 00 */ li r5, 0
/* 802D1FE4 002CEF24 4B FF CC B5 */ bl __nw_X2_
/* 802D1FE8 002CEF28 7C 60 1B 79 */ or. r0, r3, r3
/* 802D1FEC 002CEF2C 41 82 00 18 */ beq lbl_802D2004
/* 802D1FF0 002CEF30 7F 64 DB 78 */ mr r4, r27
/* 802D1FF4 002CEF34 7F 85 E3 78 */ mr r5, r28
/* 802D1FF8 002CEF38 7F E6 FB 78 */ mr r6, r31
/* 802D1FFC 002CEF3C 48 00 00 45 */ bl JKRAram
/* 802D2000 002CEF40 7C 60 1B 78 */ mr r0, r3
lbl_802D2004:
/* 802D2004 002CEF44 90 0D 8E 48 */ stw r0, lbl_804513C8-_SDA_BASE_(r13)
lbl_802D2008:
/* 802D2008 002CEF48 7F A3 EB 78 */ mr r3, r29
/* 802D200C 002CEF4C 48 00 1B 3D */ bl JKRAramStream_NS_create
/* 802D2010 002CEF50 7F C3 F3 78 */ mr r3, r30
/* 802D2014 002CEF54 48 00 96 6D */ bl JKRDecomp_NS_create
/* 802D2018 002CEF58 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13)
/* 802D201C 002CEF5C 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 802D2020 002CEF60 48 06 F7 95 */ bl OSResumeThread
/* 802D2024 002CEF64 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13)
/* 802D2028 002CEF68 39 61 00 20 */ addi r11, r1, 0x20
/* 802D202C 002CEF6C 48 09 01 F5 */ bl _restgpr_27
/* 802D2030 002CEF70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2034 002CEF74 7C 08 03 A6 */ mtlr r0
/* 802D2038 002CEF78 38 21 00 20 */ addi r1, r1, 0x20
/* 802D203C 002CEF7C 4E 80 00 20 */ blr
.global JKRAram
JKRAram:
/* 802D2040 002CEF80 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D2044 002CEF84 7C 08 02 A6 */ mflr r0
/* 802D2048 002CEF88 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D204C 002CEF8C 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2050 002CEF90 48 09 01 89 */ bl _savegpr_28
/* 802D2054 002CEF94 7C 7C 1B 78 */ mr r28, r3
/* 802D2058 002CEF98 7C 9D 23 78 */ mr r29, r4
/* 802D205C 002CEF9C 7C BE 2B 78 */ mr r30, r5
/* 802D2060 002CEFA0 38 80 0C 00 */ li r4, 0xc00
/* 802D2064 002CEFA4 38 A0 00 10 */ li r5, 0x10
/* 802D2068 002CEFA8 4B FF F5 01 */ bl JKRThread
/* 802D206C 002CEFAC 3C 60 80 3D */ lis r3, lbl_803CC158@ha
/* 802D2070 002CEFB0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l
/* 802D2074 002CEFB4 90 1C 00 00 */ stw r0, 0(r28)
/* 802D2078 002CEFB8 38 7C 00 98 */ addi r3, r28, 0x98
/* 802D207C 002CEFBC 38 80 00 03 */ li r4, 3
/* 802D2080 002CEFC0 48 07 E6 AD */ bl ARInit
/* 802D2084 002CEFC4 7C 7F 1B 78 */ mr r31, r3
/* 802D2088 002CEFC8 48 08 01 DD */ bl ARQInit
/* 802D208C 002CEFCC 48 07 E7 65 */ bl ARGetSize
/* 802D2090 002CEFD0 93 BC 00 80 */ stw r29, 0x80(r28)
/* 802D2094 002CEFD4 3C 1E 00 01 */ addis r0, r30, 1
/* 802D2098 002CEFD8 28 00 FF FF */ cmplwi r0, 0xffff
/* 802D209C 002CEFDC 40 82 00 1C */ bne lbl_802D20B8
/* 802D20A0 002CEFE0 7C 1D 18 50 */ subf r0, r29, r3
/* 802D20A4 002CEFE4 7C 1F 00 50 */ subf r0, r31, r0
/* 802D20A8 002CEFE8 90 1C 00 88 */ stw r0, 0x88(r28)
/* 802D20AC 002CEFEC 38 00 00 00 */ li r0, 0
/* 802D20B0 002CEFF0 90 1C 00 90 */ stw r0, 0x90(r28)
/* 802D20B4 002CEFF4 48 00 00 18 */ b lbl_802D20CC
lbl_802D20B8:
/* 802D20B8 002CEFF8 93 DC 00 88 */ stw r30, 0x88(r28)
/* 802D20BC 002CEFFC 7C 1D F2 14 */ add r0, r29, r30
/* 802D20C0 002CF000 7C 00 18 50 */ subf r0, r0, r3
/* 802D20C4 002CF004 7C 1F 00 50 */ subf r0, r31, r0
/* 802D20C8 002CF008 90 1C 00 90 */ stw r0, 0x90(r28)
lbl_802D20CC:
/* 802D20CC 002CF00C 80 7C 00 80 */ lwz r3, 0x80(r28)
/* 802D20D0 002CF010 48 07 E5 F5 */ bl ARAlloc
/* 802D20D4 002CF014 90 7C 00 7C */ stw r3, 0x7c(r28)
/* 802D20D8 002CF018 80 7C 00 88 */ lwz r3, 0x88(r28)
/* 802D20DC 002CF01C 48 07 E5 E9 */ bl ARAlloc
/* 802D20E0 002CF020 90 7C 00 84 */ stw r3, 0x84(r28)
/* 802D20E4 002CF024 80 7C 00 90 */ lwz r3, 0x90(r28)
/* 802D20E8 002CF028 28 03 00 00 */ cmplwi r3, 0
/* 802D20EC 002CF02C 41 82 00 10 */ beq lbl_802D20FC
/* 802D20F0 002CF030 48 07 E5 D5 */ bl ARAlloc
/* 802D20F4 002CF034 90 7C 00 8C */ stw r3, 0x8c(r28)
/* 802D20F8 002CF038 48 00 00 0C */ b lbl_802D2104
lbl_802D20FC:
/* 802D20FC 002CF03C 38 00 00 00 */ li r0, 0
/* 802D2100 002CF040 90 1C 00 8C */ stw r0, 0x8c(r28)
lbl_802D2104:
/* 802D2104 002CF044 38 60 00 44 */ li r3, 0x44
/* 802D2108 002CF048 80 8D 8D F0 */ lwz r4, lbl_80451370-_SDA_BASE_(r13)
/* 802D210C 002CF04C 38 A0 00 00 */ li r5, 0
/* 802D2110 002CF050 4B FF CB 89 */ bl __nw_X2_
/* 802D2114 002CF054 7C 60 1B 79 */ or. r0, r3, r3
/* 802D2118 002CF058 41 82 00 14 */ beq lbl_802D212C
/* 802D211C 002CF05C 80 9C 00 84 */ lwz r4, 0x84(r28)
/* 802D2120 002CF060 80 BC 00 88 */ lwz r5, 0x88(r28)
/* 802D2124 002CF064 48 00 0D 21 */ bl JKRAramHeap
/* 802D2128 002CF068 7C 60 1B 78 */ mr r0, r3
lbl_802D212C:
/* 802D212C 002CF06C 90 1C 00 94 */ stw r0, 0x94(r28)
/* 802D2130 002CF070 7F 83 E3 78 */ mr r3, r28
/* 802D2134 002CF074 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2138 002CF078 48 09 00 ED */ bl _restgpr_28
/* 802D213C 002CF07C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2140 002CF080 7C 08 03 A6 */ mtlr r0
/* 802D2144 002CF084 38 21 00 20 */ addi r1, r1, 0x20
/* 802D2148 002CF088 4E 80 00 20 */ blr
/* 802D214C 002CF08C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D2150 002CF090 7C 08 02 A6 */ mflr r0
/* 802D2154 002CF094 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D2158 002CF098 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D215C 002CF09C 93 C1 00 08 */ stw r30, 8(r1)
/* 802D2160 002CF0A0 7C 7E 1B 79 */ or. r30, r3, r3
/* 802D2164 002CF0A4 7C 9F 23 78 */ mr r31, r4
/* 802D2168 002CF0A8 41 82 00 58 */ beq lbl_802D21C0
/* 802D216C 002CF0AC 3C 60 80 3D */ lis r3, lbl_803CC158@ha
/* 802D2170 002CF0B0 38 03 C1 58 */ addi r0, r3, lbl_803CC158@l
/* 802D2174 002CF0B4 90 1E 00 00 */ stw r0, 0(r30)
/* 802D2178 002CF0B8 38 00 00 00 */ li r0, 0
/* 802D217C 002CF0BC 90 0D 8E 48 */ stw r0, lbl_804513C8-_SDA_BASE_(r13)
/* 802D2180 002CF0C0 80 7E 00 94 */ lwz r3, 0x94(r30)
/* 802D2184 002CF0C4 28 03 00 00 */ cmplwi r3, 0
/* 802D2188 002CF0C8 41 82 00 1C */ beq lbl_802D21A4
/* 802D218C 002CF0CC 41 82 00 18 */ beq lbl_802D21A4
/* 802D2190 002CF0D0 38 80 00 01 */ li r4, 1
/* 802D2194 002CF0D4 81 83 00 00 */ lwz r12, 0(r3)
/* 802D2198 002CF0D8 81 8C 00 08 */ lwz r12, 8(r12)
/* 802D219C 002CF0DC 7D 89 03 A6 */ mtctr r12
/* 802D21A0 002CF0E0 4E 80 04 21 */ bctrl
lbl_802D21A4:
/* 802D21A4 002CF0E4 7F C3 F3 78 */ mr r3, r30
/* 802D21A8 002CF0E8 38 80 00 00 */ li r4, 0
/* 802D21AC 002CF0EC 4B FF F5 AD */ bl JKRThread_NS_dtor
/* 802D21B0 002CF0F0 7F E0 07 35 */ extsh. r0, r31
/* 802D21B4 002CF0F4 40 81 00 0C */ ble lbl_802D21C0
/* 802D21B8 002CF0F8 7F C3 F3 78 */ mr r3, r30
/* 802D21BC 002CF0FC 4B FF CB 81 */ bl __dl
lbl_802D21C0:
/* 802D21C0 002CF100 7F C3 F3 78 */ mr r3, r30
/* 802D21C4 002CF104 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D21C8 002CF108 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D21CC 002CF10C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D21D0 002CF110 7C 08 03 A6 */ mtlr r0
/* 802D21D4 002CF114 38 21 00 10 */ addi r1, r1, 0x10
/* 802D21D8 002CF118 4E 80 00 20 */ blr
/* 802D21DC 002CF11C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D21E0 002CF120 7C 08 02 A6 */ mflr r0
/* 802D21E4 002CF124 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D21E8 002CF128 39 61 00 20 */ addi r11, r1, 0x20
/* 802D21EC 002CF12C 48 08 FF F1 */ bl _savegpr_29
/* 802D21F0 002CF130 3C 60 80 3D */ lis r3, lbl_803CC138@ha
/* 802D21F4 002CF134 38 63 C1 38 */ addi r3, r3, lbl_803CC138@l
/* 802D21F8 002CF138 3C 80 80 3D */ lis r4, lbl_803CC128@ha
/* 802D21FC 002CF13C 38 84 C1 28 */ addi r4, r4, lbl_803CC128@l
/* 802D2200 002CF140 38 A0 00 04 */ li r5, 4
/* 802D2204 002CF144 48 06 C7 91 */ bl OSInitMessageQueue
/* 802D2208 002CF148 3C 60 80 3D */ lis r3, lbl_803CC138@ha
/* 802D220C 002CF14C 3B E3 C1 38 */ addi r31, r3, lbl_803CC138@l
lbl_802D2210:
/* 802D2210 002CF150 7F E3 FB 78 */ mr r3, r31
/* 802D2214 002CF154 38 81 00 08 */ addi r4, r1, 8
/* 802D2218 002CF158 38 A0 00 01 */ li r5, 1
/* 802D221C 002CF15C 48 06 C8 A1 */ bl OSReceiveMessage
/* 802D2220 002CF160 80 61 00 08 */ lwz r3, 8(r1)
/* 802D2224 002CF164 83 C3 00 00 */ lwz r30, 0(r3)
/* 802D2228 002CF168 83 A3 00 04 */ lwz r29, 4(r3)
/* 802D222C 002CF16C 4B FF CB 11 */ bl __dl
/* 802D2230 002CF170 2C 1E 00 01 */ cmpwi r30, 1
/* 802D2234 002CF174 41 82 00 08 */ beq lbl_802D223C
/* 802D2238 002CF178 4B FF FF D8 */ b lbl_802D2210
lbl_802D223C:
/* 802D223C 002CF17C 7F A3 EB 78 */ mr r3, r29
/* 802D2240 002CF180 48 00 16 8D */ bl JKRAramPiece_NS_startDMA
/* 802D2244 002CF184 4B FF FF CC */ b lbl_802D2210
.global JKRAram_NS_checkOkAddress
JKRAram_NS_checkOkAddress:
/* 802D2248 002CF188 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D224C 002CF18C 7C 08 02 A6 */ mflr r0
/* 802D2250 002CF190 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D2254 002CF194 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D2258 002CF198 93 C1 00 08 */ stw r30, 8(r1)
/* 802D225C 002CF19C 7C BE 2B 78 */ mr r30, r5
/* 802D2260 002CF1A0 7C DF 33 78 */ mr r31, r6
/* 802D2264 002CF1A4 54 60 06 FF */ clrlwi. r0, r3, 0x1b
/* 802D2268 002CF1A8 41 82 00 28 */ beq lbl_802D2290
/* 802D226C 002CF1AC 54 80 06 FF */ clrlwi. r0, r4, 0x1b
/* 802D2270 002CF1B0 41 82 00 20 */ beq lbl_802D2290
/* 802D2274 002CF1B4 3C 60 80 3A */ lis r3, lbl_8039D078@ha
/* 802D2278 002CF1B8 38 63 D0 78 */ addi r3, r3, lbl_8039D078@l
/* 802D227C 002CF1BC 38 80 00 DB */ li r4, 0xdb
/* 802D2280 002CF1C0 38 A3 00 0C */ addi r5, r3, 0xc
/* 802D2284 002CF1C4 38 C3 00 0F */ addi r6, r3, 0xf
/* 802D2288 002CF1C8 4C C6 31 82 */ crclr 6
/* 802D228C 002CF1CC 48 00 FF 71 */ bl JUTException_NS_panic_f
lbl_802D2290:
/* 802D2290 002CF1D0 28 1E 00 00 */ cmplwi r30, 0
/* 802D2294 002CF1D4 41 82 00 30 */ beq lbl_802D22C4
/* 802D2298 002CF1D8 80 1E 00 14 */ lwz r0, 0x14(r30)
/* 802D229C 002CF1DC 7C 1F 02 14 */ add r0, r31, r0
/* 802D22A0 002CF1E0 54 00 06 FF */ clrlwi. r0, r0, 0x1b
/* 802D22A4 002CF1E4 41 82 00 20 */ beq lbl_802D22C4
/* 802D22A8 002CF1E8 3C 60 80 3A */ lis r3, lbl_8039D078@ha
/* 802D22AC 002CF1EC 38 63 D0 78 */ addi r3, r3, lbl_8039D078@l
/* 802D22B0 002CF1F0 38 80 00 E3 */ li r4, 0xe3
/* 802D22B4 002CF1F4 38 A3 00 0C */ addi r5, r3, 0xc
/* 802D22B8 002CF1F8 38 C3 00 0F */ addi r6, r3, 0xf
/* 802D22BC 002CF1FC 4C C6 31 82 */ crclr 6
/* 802D22C0 002CF200 48 00 FF 3D */ bl JUTException_NS_panic_f
lbl_802D22C4:
/* 802D22C4 002CF204 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D22C8 002CF208 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D22CC 002CF20C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D22D0 002CF210 7C 08 03 A6 */ mtlr r0
/* 802D22D4 002CF214 38 21 00 10 */ addi r1, r1, 0x10
/* 802D22D8 002CF218 4E 80 00 20 */ blr
.global JKRAram_NS_changeGroupIdIfNeed
JKRAram_NS_changeGroupIdIfNeed:
/* 802D22DC 002CF21C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D22E0 002CF220 7C 08 02 A6 */ mflr r0
/* 802D22E4 002CF224 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D22E8 002CF228 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D22EC 002CF22C 93 C1 00 08 */ stw r30, 8(r1)
/* 802D22F0 002CF230 7C 7E 1B 78 */ mr r30, r3
/* 802D22F4 002CF234 7C 9F 23 78 */ mr r31, r4
/* 802D22F8 002CF238 80 6D 8D F4 */ lwz r3, lbl_80451374-_SDA_BASE_(r13)
/* 802D22FC 002CF23C 81 83 00 00 */ lwz r12, 0(r3)
/* 802D2300 002CF240 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802D2304 002CF244 7D 89 03 A6 */ mtctr r12
/* 802D2308 002CF248 4E 80 04 21 */ bctrl
/* 802D230C 002CF24C 3C 03 BA A8 */ addis r0, r3, 0xbaa8
/* 802D2310 002CF250 28 00 50 48 */ cmplwi r0, 0x5048
/* 802D2314 002CF254 40 82 00 10 */ bne lbl_802D2324
/* 802D2318 002CF258 2C 1F 00 00 */ cmpwi r31, 0
/* 802D231C 002CF25C 41 80 00 08 */ blt lbl_802D2324
/* 802D2320 002CF260 9B FE FF F3 */ stb r31, -0xd(r30)
lbl_802D2324:
/* 802D2324 002CF264 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D2328 002CF268 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D232C 002CF26C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D2330 002CF270 7C 08 03 A6 */ mtlr r0
/* 802D2334 002CF274 38 21 00 10 */ addi r1, r1, 0x10
/* 802D2338 002CF278 4E 80 00 20 */ blr
.global JKRAram_NS_mainRamToAram
JKRAram_NS_mainRamToAram:
/* 802D233C 002CF27C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802D2340 002CF280 7C 08 02 A6 */ mflr r0
/* 802D2344 002CF284 90 01 00 34 */ stw r0, 0x34(r1)
/* 802D2348 002CF288 39 61 00 30 */ addi r11, r1, 0x30
/* 802D234C 002CF28C 48 08 FE 79 */ bl func_803621C4
/* 802D2350 002CF290 7C 7E 1B 78 */ mr r30, r3
/* 802D2354 002CF294 7C 98 23 78 */ mr r24, r4
/* 802D2358 002CF298 7C BF 2B 78 */ mr r31, r5
/* 802D235C 002CF29C 7C D7 33 78 */ mr r23, r6
/* 802D2360 002CF2A0 7C F9 3B 78 */ mr r25, r7
/* 802D2364 002CF2A4 7D 1A 43 78 */ mr r26, r8
/* 802D2368 002CF2A8 7D 3B 4B 78 */ mr r27, r9
/* 802D236C 002CF2AC 7D 5C 53 78 */ mr r28, r10
/* 802D2370 002CF2B0 3B A0 00 00 */ li r29, 0
/* 802D2374 002CF2B4 38 A0 00 00 */ li r5, 0
/* 802D2378 002CF2B8 38 C0 00 00 */ li r6, 0
/* 802D237C 002CF2BC 4B FF FE CD */ bl JKRAram_NS_checkOkAddress
/* 802D2380 002CF2C0 2C 17 00 01 */ cmpwi r23, 1
/* 802D2384 002CF2C4 40 82 00 20 */ bne lbl_802D23A4
/* 802D2388 002CF2C8 7F C3 F3 78 */ mr r3, r30
/* 802D238C 002CF2CC 48 00 99 6D */ bl JKRDecomp_NS_checkCompressed
/* 802D2390 002CF2D0 2C 03 00 03 */ cmpwi r3, 3
/* 802D2394 002CF2D4 40 82 00 08 */ bne lbl_802D239C
/* 802D2398 002CF2D8 38 60 00 00 */ li r3, 0
lbl_802D239C:
/* 802D239C 002CF2DC 30 03 FF FF */ addic r0, r3, -1
/* 802D23A0 002CF2E0 7E E0 19 10 */ subfe r23, r0, r3
lbl_802D23A4:
/* 802D23A4 002CF2E4 2C 17 00 01 */ cmpwi r23, 1
/* 802D23A8 002CF2E8 40 82 01 54 */ bne lbl_802D24FC
/* 802D23AC 002CF2EC 88 BE 00 07 */ lbz r5, 7(r30)
/* 802D23B0 002CF2F0 88 9E 00 06 */ lbz r4, 6(r30)
/* 802D23B4 002CF2F4 88 7E 00 04 */ lbz r3, 4(r30)
/* 802D23B8 002CF2F8 88 1E 00 05 */ lbz r0, 5(r30)
/* 802D23BC 002CF2FC 54 00 80 1E */ slwi r0, r0, 0x10
/* 802D23C0 002CF300 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7
/* 802D23C4 002CF304 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17
/* 802D23C8 002CF308 7C B7 03 78 */ or r23, r5, r0
/* 802D23CC 002CF30C 28 19 00 00 */ cmplwi r25, 0
/* 802D23D0 002CF310 41 82 00 0C */ beq lbl_802D23DC
/* 802D23D4 002CF314 7C 19 B8 40 */ cmplw r25, r23
/* 802D23D8 002CF318 40 81 00 0C */ ble lbl_802D23E4
lbl_802D23DC:
/* 802D23DC 002CF31C 38 17 00 1F */ addi r0, r23, 0x1f
/* 802D23E0 002CF320 54 19 00 34 */ rlwinm r25, r0, 0, 0, 0x1a
lbl_802D23E4:
/* 802D23E4 002CF324 28 18 00 00 */ cmplwi r24, 0
/* 802D23E8 002CF328 40 82 00 50 */ bne lbl_802D2438
/* 802D23EC 002CF32C 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13)
/* 802D23F0 002CF330 80 63 00 94 */ lwz r3, 0x94(r3)
/* 802D23F4 002CF334 7F 24 CB 78 */ mr r4, r25
/* 802D23F8 002CF338 38 A0 00 00 */ li r5, 0
/* 802D23FC 002CF33C 48 00 0B C1 */ bl JKRAramHeap_NS_alloc
/* 802D2400 002CF340 7C 7D 1B 78 */ mr r29, r3
/* 802D2404 002CF344 28 03 00 00 */ cmplwi r3, 0
/* 802D2408 002CF348 40 82 00 0C */ bne lbl_802D2414
/* 802D240C 002CF34C 38 60 00 00 */ li r3, 0
/* 802D2410 002CF350 48 00 01 8C */ b lbl_802D259C
lbl_802D2414:
/* 802D2414 002CF354 2C 1B 00 00 */ cmpwi r27, 0
/* 802D2418 002CF358 40 80 00 14 */ bge lbl_802D242C
/* 802D241C 002CF35C 80 8D 8E 48 */ lwz r4, lbl_804513C8-_SDA_BASE_(r13)
/* 802D2420 002CF360 80 84 00 94 */ lwz r4, 0x94(r4)
/* 802D2424 002CF364 88 04 00 40 */ lbz r0, 0x40(r4)
/* 802D2428 002CF368 48 00 00 08 */ b lbl_802D2430
lbl_802D242C:
/* 802D242C 002CF36C 57 60 06 3E */ clrlwi r0, r27, 0x18
lbl_802D2430:
/* 802D2430 002CF370 98 03 00 20 */ stb r0, 0x20(r3)
/* 802D2434 002CF374 83 03 00 14 */ lwz r24, 0x14(r3)
lbl_802D2438:
/* 802D2438 002CF378 28 1F 00 00 */ cmplwi r31, 0
/* 802D243C 002CF37C 41 82 00 0C */ beq lbl_802D2448
/* 802D2440 002CF380 7C 1F B8 40 */ cmplw r31, r23
/* 802D2444 002CF384 40 81 00 0C */ ble lbl_802D2450
lbl_802D2448:
/* 802D2448 002CF388 38 17 00 1F */ addi r0, r23, 0x1f
/* 802D244C 002CF38C 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a
lbl_802D2450:
/* 802D2450 002CF390 7C 1F C8 40 */ cmplw r31, r25
/* 802D2454 002CF394 40 81 00 08 */ ble lbl_802D245C
/* 802D2458 002CF398 7F 3F CB 78 */ mr r31, r25
lbl_802D245C:
/* 802D245C 002CF39C 7F 23 CB 78 */ mr r3, r25
/* 802D2460 002CF3A0 38 80 FF E0 */ li r4, -32
/* 802D2464 002CF3A4 7F 45 D3 78 */ mr r5, r26
/* 802D2468 002CF3A8 4B FF C0 0D */ bl JKRHeap_NS_alloc
/* 802D246C 002CF3AC 7C 77 1B 79 */ or. r23, r3, r3
/* 802D2470 002CF3B0 40 82 00 30 */ bne lbl_802D24A0
/* 802D2474 002CF3B4 28 1D 00 00 */ cmplwi r29, 0
/* 802D2478 002CF3B8 41 82 00 20 */ beq lbl_802D2498
/* 802D247C 002CF3BC 41 82 00 1C */ beq lbl_802D2498
/* 802D2480 002CF3C0 7F A3 EB 78 */ mr r3, r29
/* 802D2484 002CF3C4 38 80 00 01 */ li r4, 1
/* 802D2488 002CF3C8 81 9D 00 00 */ lwz r12, 0(r29)
/* 802D248C 002CF3CC 81 8C 00 08 */ lwz r12, 8(r12)
/* 802D2490 002CF3D0 7D 89 03 A6 */ mtctr r12
/* 802D2494 002CF3D4 4E 80 04 21 */ bctrl
lbl_802D2498:
/* 802D2498 002CF3D8 38 60 00 00 */ li r3, 0
/* 802D249C 002CF3DC 48 00 01 00 */ b lbl_802D259C
lbl_802D24A0:
/* 802D24A0 002CF3E0 7F C3 F3 78 */ mr r3, r30
/* 802D24A4 002CF3E4 7E E4 BB 78 */ mr r4, r23
/* 802D24A8 002CF3E8 7F 25 CB 78 */ mr r5, r25
/* 802D24AC 002CF3EC 38 C0 00 00 */ li r6, 0
/* 802D24B0 002CF3F0 48 00 94 D9 */ bl JKRDecomp_NS_orderSync
/* 802D24B4 002CF3F4 38 60 00 00 */ li r3, 0
/* 802D24B8 002CF3F8 7E E4 BB 78 */ mr r4, r23
/* 802D24BC 002CF3FC 7F 05 C3 78 */ mr r5, r24
/* 802D24C0 002CF400 7F E6 FB 78 */ mr r6, r31
/* 802D24C4 002CF404 7F A7 EB 78 */ mr r7, r29
/* 802D24C8 002CF408 48 00 13 71 */ bl JKRAramPiece_NS_orderSync
/* 802D24CC 002CF40C 7E E3 BB 78 */ mr r3, r23
/* 802D24D0 002CF410 7F 44 D3 78 */ mr r4, r26
/* 802D24D4 002CF414 4B FF C0 2D */ bl JKRHeap_NS_free
/* 802D24D8 002CF418 28 1D 00 00 */ cmplwi r29, 0
/* 802D24DC 002CF41C 40 82 00 0C */ bne lbl_802D24E8
/* 802D24E0 002CF420 38 60 FF FF */ li r3, -1
/* 802D24E4 002CF424 48 00 00 08 */ b lbl_802D24EC
lbl_802D24E8:
/* 802D24E8 002CF428 7F A3 EB 78 */ mr r3, r29
lbl_802D24EC:
/* 802D24EC 002CF42C 28 1C 00 00 */ cmplwi r28, 0
/* 802D24F0 002CF430 41 82 00 AC */ beq lbl_802D259C
/* 802D24F4 002CF434 93 FC 00 00 */ stw r31, 0(r28)
/* 802D24F8 002CF438 48 00 00 A4 */ b lbl_802D259C
lbl_802D24FC:
/* 802D24FC 002CF43C 28 19 00 00 */ cmplwi r25, 0
/* 802D2500 002CF440 41 82 00 10 */ beq lbl_802D2510
/* 802D2504 002CF444 7C 1F C8 40 */ cmplw r31, r25
/* 802D2508 002CF448 40 81 00 08 */ ble lbl_802D2510
/* 802D250C 002CF44C 7F 3F CB 78 */ mr r31, r25
lbl_802D2510:
/* 802D2510 002CF450 28 18 00 00 */ cmplwi r24, 0
/* 802D2514 002CF454 40 82 00 50 */ bne lbl_802D2564
/* 802D2518 002CF458 80 6D 8E 48 */ lwz r3, lbl_804513C8-_SDA_BASE_(r13)
/* 802D251C 002CF45C 80 63 00 94 */ lwz r3, 0x94(r3)
/* 802D2520 002CF460 7F E4 FB 78 */ mr r4, r31
/* 802D2524 002CF464 38 A0 00 00 */ li r5, 0
/* 802D2528 002CF468 48 00 0A 95 */ bl JKRAramHeap_NS_alloc
/* 802D252C 002CF46C 7C 7D 1B 78 */ mr r29, r3
/* 802D2530 002CF470 2C 1B 00 00 */ cmpwi r27, 0
/* 802D2534 002CF474 40 80 00 14 */ bge lbl_802D2548
/* 802D2538 002CF478 80 8D 8E 48 */ lwz r4, lbl_804513C8-_SDA_BASE_(r13)
/* 802D253C 002CF47C 80 84 00 94 */ lwz r4, 0x94(r4)
/* 802D2540 002CF480 88 04 00 40 */ lbz r0, 0x40(r4)
/* 802D2544 002CF484 48 00 00 08 */ b lbl_802D254C
lbl_802D2548:
/* 802D2548 002CF488 57 60 06 3E */ clrlwi r0, r27, 0x18
lbl_802D254C:
/* 802D254C 002CF48C 98 03 00 20 */ stb r0, 0x20(r3)
/* 802D2550 002CF490 28 03 00 00 */ cmplwi r3, 0
/* 802D2554 002CF494 40 82 00 0C */ bne lbl_802D2560
/* 802D2558 002CF498 38 60 00 00 */ li r3, 0
/* 802D255C 002CF49C 48 00 00 40 */ b lbl_802D259C
lbl_802D2560:
/* 802D2560 002CF4A0 83 03 00 14 */ lwz r24, 0x14(r3)
lbl_802D2564:
/* 802D2564 002CF4A4 38 60 00 00 */ li r3, 0
/* 802D2568 002CF4A8 7F C4 F3 78 */ mr r4, r30
/* 802D256C 002CF4AC 7F 05 C3 78 */ mr r5, r24
/* 802D2570 002CF4B0 7F E6 FB 78 */ mr r6, r31
/* 802D2574 002CF4B4 7F A7 EB 78 */ mr r7, r29
/* 802D2578 002CF4B8 48 00 12 C1 */ bl JKRAramPiece_NS_orderSync
/* 802D257C 002CF4BC 28 1D 00 00 */ cmplwi r29, 0
/* 802D2580 002CF4C0 40 82 00 0C */ bne lbl_802D258C
/* 802D2584 002CF4C4 38 60 FF FF */ li r3, -1
/* 802D2588 002CF4C8 48 00 00 08 */ b lbl_802D2590
lbl_802D258C:
/* 802D258C 002CF4CC 7F A3 EB 78 */ mr r3, r29
lbl_802D2590:
/* 802D2590 002CF4D0 28 1C 00 00 */ cmplwi r28, 0
/* 802D2594 002CF4D4 41 82 00 08 */ beq lbl_802D259C
/* 802D2598 002CF4D8 93 FC 00 00 */ stw r31, 0(r28)
lbl_802D259C:
/* 802D259C 002CF4DC 39 61 00 30 */ addi r11, r1, 0x30
/* 802D25A0 002CF4E0 48 08 FC 71 */ bl func_80362210
/* 802D25A4 002CF4E4 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802D25A8 002CF4E8 7C 08 03 A6 */ mtlr r0
/* 802D25AC 002CF4EC 38 21 00 30 */ addi r1, r1, 0x30
/* 802D25B0 002CF4F0 4E 80 00 20 */ blr
.global JKRAram_NS_aramToMainRam
JKRAram_NS_aramToMainRam:
/* 802D25B4 002CF4F4 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 802D25B8 002CF4F8 7C 08 02 A6 */ mflr r0
/* 802D25BC 002CF4FC 90 01 00 74 */ stw r0, 0x74(r1)
/* 802D25C0 002CF500 39 61 00 70 */ addi r11, r1, 0x70
/* 802D25C4 002CF504 48 08 FB FD */ bl func_803621C0
/* 802D25C8 002CF508 7C 79 1B 78 */ mr r25, r3
/* 802D25CC 002CF50C 7C 9A 23 78 */ mr r26, r4
/* 802D25D0 002CF510 7C BB 2B 78 */ mr r27, r5
/* 802D25D4 002CF514 7C D6 33 78 */ mr r22, r6
/* 802D25D8 002CF518 7C FC 3B 78 */ mr r28, r7
/* 802D25DC 002CF51C 7D 1D 43 78 */ mr r29, r8
/* 802D25E0 002CF520 7D 3E 4B 78 */ mr r30, r9
/* 802D25E4 002CF524 7D 5F 53 79 */ or. r31, r10, r10
/* 802D25E8 002CF528 3B 00 00 00 */ li r24, 0
/* 802D25EC 002CF52C 41 82 00 0C */ beq lbl_802D25F8
/* 802D25F0 002CF530 38 00 00 00 */ li r0, 0
/* 802D25F4 002CF534 90 1F 00 00 */ stw r0, 0(r31)
lbl_802D25F8:
/* 802D25F8 002CF538 7F 43 D3 78 */ mr r3, r26
/* 802D25FC 002CF53C 7F 24 CB 78 */ mr r4, r25
/* 802D2600 002CF540 38 A0 00 00 */ li r5, 0
/* 802D2604 002CF544 38 C0 00 00 */ li r6, 0
/* 802D2608 002CF548 4B FF FC 41 */ bl JKRAram_NS_checkOkAddress
/* 802D260C 002CF54C 2C 16 00 01 */ cmpwi r22, 1
/* 802D2610 002CF550 40 82 00 5C */ bne lbl_802D266C
/* 802D2614 002CF554 38 01 00 27 */ addi r0, r1, 0x27
/* 802D2618 002CF558 54 17 00 34 */ rlwinm r23, r0, 0, 0, 0x1a
/* 802D261C 002CF55C 38 60 00 01 */ li r3, 1
/* 802D2620 002CF560 7F 24 CB 78 */ mr r4, r25
/* 802D2624 002CF564 7E E5 BB 78 */ mr r5, r23
/* 802D2628 002CF568 38 C0 00 20 */ li r6, 0x20
/* 802D262C 002CF56C 38 E0 00 00 */ li r7, 0
/* 802D2630 002CF570 48 00 12 09 */ bl JKRAramPiece_NS_orderSync
/* 802D2634 002CF574 7E E3 BB 78 */ mr r3, r23
/* 802D2638 002CF578 48 00 96 C1 */ bl JKRDecomp_NS_checkCompressed
/* 802D263C 002CF57C 2C 03 00 03 */ cmpwi r3, 3
/* 802D2640 002CF580 40 82 00 08 */ bne lbl_802D2648
/* 802D2644 002CF584 38 60 00 00 */ li r3, 0
lbl_802D2648:
/* 802D2648 002CF588 7C 78 1B 78 */ mr r24, r3
/* 802D264C 002CF58C 88 B7 00 07 */ lbz r5, 7(r23)
/* 802D2650 002CF590 88 97 00 06 */ lbz r4, 6(r23)
/* 802D2654 002CF594 88 77 00 04 */ lbz r3, 4(r23)
/* 802D2658 002CF598 88 17 00 05 */ lbz r0, 5(r23)
/* 802D265C 002CF59C 54 00 80 1E */ slwi r0, r0, 0x10
/* 802D2660 002CF5A0 50 60 C0 0E */ rlwimi r0, r3, 0x18, 0, 7
/* 802D2664 002CF5A4 50 80 44 2E */ rlwimi r0, r4, 8, 0x10, 0x17
/* 802D2668 002CF5A8 7C B7 03 78 */ or r23, r5, r0
lbl_802D266C:
/* 802D266C 002CF5AC 2C 18 00 02 */ cmpwi r24, 2
/* 802D2670 002CF5B0 40 82 00 74 */ bne lbl_802D26E4
/* 802D2674 002CF5B4 28 1C 00 00 */ cmplwi r28, 0
/* 802D2678 002CF5B8 41 82 00 10 */ beq lbl_802D2688
/* 802D267C 002CF5BC 7C 1C B8 40 */ cmplw r28, r23
/* 802D2680 002CF5C0 40 80 00 08 */ bge lbl_802D2688
/* 802D2684 002CF5C4 7F 97 E3 78 */ mr r23, r28
lbl_802D2688:
/* 802D2688 002CF5C8 28 1A 00 00 */ cmplwi r26, 0
/* 802D268C 002CF5CC 40 82 00 18 */ bne lbl_802D26A4
/* 802D2690 002CF5D0 7E E3 BB 78 */ mr r3, r23
/* 802D2694 002CF5D4 38 80 00 20 */ li r4, 0x20
/* 802D2698 002CF5D8 7F A5 EB 78 */ mr r5, r29
/* 802D269C 002CF5DC 4B FF BD D9 */ bl JKRHeap_NS_alloc
/* 802D26A0 002CF5E0 7C 7A 1B 78 */ mr r26, r3
lbl_802D26A4:
/* 802D26A4 002CF5E4 28 1A 00 00 */ cmplwi r26, 0
/* 802D26A8 002CF5E8 40 82 00 0C */ bne lbl_802D26B4
/* 802D26AC 002CF5EC 38 60 00 00 */ li r3, 0
/* 802D26B0 002CF5F0 48 00 01 68 */ b lbl_802D2818
lbl_802D26B4:
/* 802D26B4 002CF5F4 7F 43 D3 78 */ mr r3, r26
/* 802D26B8 002CF5F8 7F C4 F3 78 */ mr r4, r30
/* 802D26BC 002CF5FC 4B FF FC 21 */ bl JKRAram_NS_changeGroupIdIfNeed
/* 802D26C0 002CF600 7F 23 CB 78 */ mr r3, r25
/* 802D26C4 002CF604 7F 44 D3 78 */ mr r4, r26
/* 802D26C8 002CF608 7F 65 DB 78 */ mr r5, r27
/* 802D26CC 002CF60C 7E E6 BB 78 */ mr r6, r23
/* 802D26D0 002CF610 38 E0 00 00 */ li r7, 0
/* 802D26D4 002CF614 7F E8 FB 78 */ mr r8, r31
/* 802D26D8 002CF618 48 00 01 59 */ bl JKRDecompressFromAramToMainRam
/* 802D26DC 002CF61C 7F 43 D3 78 */ mr r3, r26
/* 802D26E0 002CF620 48 00 01 38 */ b lbl_802D2818
lbl_802D26E4:
/* 802D26E4 002CF624 2C 18 00 01 */ cmpwi r24, 1
/* 802D26E8 002CF628 40 82 00 D0 */ bne lbl_802D27B8
/* 802D26EC 002CF62C 7F 63 DB 78 */ mr r3, r27
/* 802D26F0 002CF630 38 80 FF E0 */ li r4, -32
/* 802D26F4 002CF634 7F A5 EB 78 */ mr r5, r29
/* 802D26F8 002CF638 4B FF BD 7D */ bl JKRHeap_NS_alloc
/* 802D26FC 002CF63C 7C 78 1B 79 */ or. r24, r3, r3
/* 802D2700 002CF640 40 82 00 0C */ bne lbl_802D270C
/* 802D2704 002CF644 38 60 00 00 */ li r3, 0
/* 802D2708 002CF648 48 00 01 10 */ b lbl_802D2818
lbl_802D270C:
/* 802D270C 002CF64C 38 60 00 01 */ li r3, 1
/* 802D2710 002CF650 7F 24 CB 78 */ mr r4, r25
/* 802D2714 002CF654 7F 05 C3 78 */ mr r5, r24
/* 802D2718 002CF658 7F 66 DB 78 */ mr r6, r27
/* 802D271C 002CF65C 38 E0 00 00 */ li r7, 0
/* 802D2720 002CF660 48 00 11 19 */ bl JKRAramPiece_NS_orderSync
/* 802D2724 002CF664 28 1C 00 00 */ cmplwi r28, 0
/* 802D2728 002CF668 41 82 00 10 */ beq lbl_802D2738
/* 802D272C 002CF66C 7C 1C B8 40 */ cmplw r28, r23
/* 802D2730 002CF670 40 80 00 08 */ bge lbl_802D2738
/* 802D2734 002CF674 7F 97 E3 78 */ mr r23, r28
lbl_802D2738:
/* 802D2738 002CF678 28 1A 00 00 */ cmplwi r26, 0
/* 802D273C 002CF67C 40 82 00 1C */ bne lbl_802D2758
/* 802D2740 002CF680 7E E3 BB 78 */ mr r3, r23
/* 802D2744 002CF684 38 80 00 20 */ li r4, 0x20
/* 802D2748 002CF688 7F A5 EB 78 */ mr r5, r29
/* 802D274C 002CF68C 4B FF BD 29 */ bl JKRHeap_NS_alloc
/* 802D2750 002CF690 7C 79 1B 78 */ mr r25, r3
/* 802D2754 002CF694 48 00 00 08 */ b lbl_802D275C
lbl_802D2758:
/* 802D2758 002CF698 7F 59 D3 78 */ mr r25, r26
lbl_802D275C:
/* 802D275C 002CF69C 28 19 00 00 */ cmplwi r25, 0
/* 802D2760 002CF6A0 40 82 00 18 */ bne lbl_802D2778
/* 802D2764 002CF6A4 7F 03 C3 78 */ mr r3, r24
/* 802D2768 002CF6A8 38 80 00 00 */ li r4, 0
/* 802D276C 002CF6AC 4B FF BD 95 */ bl JKRHeap_NS_free
/* 802D2770 002CF6B0 38 60 00 00 */ li r3, 0
/* 802D2774 002CF6B4 48 00 00 A4 */ b lbl_802D2818
lbl_802D2778:
/* 802D2778 002CF6B8 7F 23 CB 78 */ mr r3, r25
/* 802D277C 002CF6BC 7F C4 F3 78 */ mr r4, r30
/* 802D2780 002CF6C0 4B FF FB 5D */ bl JKRAram_NS_changeGroupIdIfNeed
/* 802D2784 002CF6C4 7F 03 C3 78 */ mr r3, r24
/* 802D2788 002CF6C8 7F 24 CB 78 */ mr r4, r25
/* 802D278C 002CF6CC 7E E5 BB 78 */ mr r5, r23
/* 802D2790 002CF6D0 38 C0 00 00 */ li r6, 0
/* 802D2794 002CF6D4 48 00 91 F5 */ bl JKRDecomp_NS_orderSync
/* 802D2798 002CF6D8 7F 03 C3 78 */ mr r3, r24
/* 802D279C 002CF6DC 7F A4 EB 78 */ mr r4, r29
/* 802D27A0 002CF6E0 4B FF BD 61 */ bl JKRHeap_NS_free
/* 802D27A4 002CF6E4 28 1F 00 00 */ cmplwi r31, 0
/* 802D27A8 002CF6E8 41 82 00 08 */ beq lbl_802D27B0
/* 802D27AC 002CF6EC 92 FF 00 00 */ stw r23, 0(r31)
lbl_802D27B0:
/* 802D27B0 002CF6F0 7F 23 CB 78 */ mr r3, r25
/* 802D27B4 002CF6F4 48 00 00 64 */ b lbl_802D2818
lbl_802D27B8:
/* 802D27B8 002CF6F8 28 1A 00 00 */ cmplwi r26, 0
/* 802D27BC 002CF6FC 40 82 00 18 */ bne lbl_802D27D4
/* 802D27C0 002CF700 7F 63 DB 78 */ mr r3, r27
/* 802D27C4 002CF704 38 80 00 20 */ li r4, 0x20
/* 802D27C8 002CF708 7F A5 EB 78 */ mr r5, r29
/* 802D27CC 002CF70C 4B FF BC A9 */ bl JKRHeap_NS_alloc
/* 802D27D0 002CF710 7C 7A 1B 78 */ mr r26, r3
lbl_802D27D4:
/* 802D27D4 002CF714 28 1A 00 00 */ cmplwi r26, 0
/* 802D27D8 002CF718 40 82 00 0C */ bne lbl_802D27E4
/* 802D27DC 002CF71C 38 60 00 00 */ li r3, 0
/* 802D27E0 002CF720 48 00 00 38 */ b lbl_802D2818
lbl_802D27E4:
/* 802D27E4 002CF724 7F 43 D3 78 */ mr r3, r26
/* 802D27E8 002CF728 7F C4 F3 78 */ mr r4, r30
/* 802D27EC 002CF72C 4B FF FA F1 */ bl JKRAram_NS_changeGroupIdIfNeed
/* 802D27F0 002CF730 38 60 00 01 */ li r3, 1
/* 802D27F4 002CF734 7F 24 CB 78 */ mr r4, r25
/* 802D27F8 002CF738 7F 45 D3 78 */ mr r5, r26
/* 802D27FC 002CF73C 7F 66 DB 78 */ mr r6, r27
/* 802D2800 002CF740 38 E0 00 00 */ li r7, 0
/* 802D2804 002CF744 48 00 10 35 */ bl JKRAramPiece_NS_orderSync
/* 802D2808 002CF748 28 1F 00 00 */ cmplwi r31, 0
/* 802D280C 002CF74C 41 82 00 08 */ beq lbl_802D2814
/* 802D2810 002CF750 93 7F 00 00 */ stw r27, 0(r31)
lbl_802D2814:
/* 802D2814 002CF754 7F 43 D3 78 */ mr r3, r26
lbl_802D2818:
/* 802D2818 002CF758 39 61 00 70 */ addi r11, r1, 0x70
/* 802D281C 002CF75C 48 08 F9 F1 */ bl func_8036220C
/* 802D2820 002CF760 80 01 00 74 */ lwz r0, 0x74(r1)
/* 802D2824 002CF764 7C 08 03 A6 */ mtlr r0
/* 802D2828 002CF768 38 21 00 70 */ addi r1, r1, 0x70
/* 802D282C 002CF76C 4E 80 00 20 */ blr
.global JKRDecompressFromAramToMainRam
JKRDecompressFromAramToMainRam:
/* 802D2830 002CF770 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802D2834 002CF774 7C 08 02 A6 */ mflr r0
/* 802D2838 002CF778 90 01 00 34 */ stw r0, 0x34(r1)
/* 802D283C 002CF77C 39 61 00 30 */ addi r11, r1, 0x30
/* 802D2840 002CF780 48 08 F9 8D */ bl func_803621CC
/* 802D2844 002CF784 7C 7A 1B 78 */ mr r26, r3
/* 802D2848 002CF788 7C 9B 23 78 */ mr r27, r4
/* 802D284C 002CF78C 7C BC 2B 78 */ mr r28, r5
/* 802D2850 002CF790 7C DD 33 78 */ mr r29, r6
/* 802D2854 002CF794 7C FE 3B 78 */ mr r30, r7
/* 802D2858 002CF798 7D 1F 43 78 */ mr r31, r8
/* 802D285C 002CF79C 48 06 AE 99 */ bl __RAS_OSDisableInterrupts_begin
/* 802D2860 002CF7A0 7C 79 1B 78 */ mr r25, r3
/* 802D2864 002CF7A4 88 0D 8E 7C */ lbz r0, lbl_804513FC-_SDA_BASE_(r13)
/* 802D2868 002CF7A8 28 00 00 00 */ cmplwi r0, 0
/* 802D286C 002CF7AC 40 82 00 18 */ bne lbl_802D2884
/* 802D2870 002CF7B0 3C 60 80 43 */ lis r3, lbl_804342E8@ha
/* 802D2874 002CF7B4 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l
/* 802D2878 002CF7B8 48 06 C7 91 */ bl OSInitMutex
/* 802D287C 002CF7BC 38 00 00 01 */ li r0, 1
/* 802D2880 002CF7C0 98 0D 8E 7C */ stb r0, lbl_804513FC-_SDA_BASE_(r13)
lbl_802D2884:
/* 802D2884 002CF7C4 7F 23 CB 78 */ mr r3, r25
/* 802D2888 002CF7C8 48 06 AE 95 */ bl OSRestoreInterrupts
/* 802D288C 002CF7CC 3C 60 80 43 */ lis r3, lbl_804342E8@ha
/* 802D2890 002CF7D0 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l
/* 802D2894 002CF7D4 48 06 C7 AD */ bl OSLockMutex
/* 802D2898 002CF7D8 83 2D 83 38 */ lwz r25, lbl_804508B8-_SDA_BASE_(r13)
/* 802D289C 002CF7DC 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
/* 802D28A0 002CF7E0 7F 24 CB 78 */ mr r4, r25
/* 802D28A4 002CF7E4 38 A0 00 20 */ li r5, 0x20
/* 802D28A8 002CF7E8 4B FF BC 2D */ bl JKRHeap_NS_alloc_X1_
/* 802D28AC 002CF7EC 90 6D 8E 4C */ stw r3, lbl_804513CC-_SDA_BASE_(r13)
/* 802D28B0 002CF7F0 7C 03 CA 14 */ add r0, r3, r25
/* 802D28B4 002CF7F4 90 0D 8E 50 */ stw r0, lbl_804513D0-_SDA_BASE_(r13)
/* 802D28B8 002CF7F8 28 1E 00 00 */ cmplwi r30, 0
/* 802D28BC 002CF7FC 41 82 00 28 */ beq lbl_802D28E4
/* 802D28C0 002CF800 80 6D 8D F0 */ lwz r3, lbl_80451370-_SDA_BASE_(r13)
/* 802D28C4 002CF804 38 80 11 20 */ li r4, 0x1120
/* 802D28C8 002CF808 38 A0 00 00 */ li r5, 0
/* 802D28CC 002CF80C 4B FF BC 09 */ bl JKRHeap_NS_alloc_X1_
/* 802D28D0 002CF810 90 6D 8E 54 */ stw r3, lbl_804513D4-_SDA_BASE_(r13)
/* 802D28D4 002CF814 38 03 11 20 */ addi r0, r3, 0x1120
/* 802D28D8 002CF818 90 0D 8E 58 */ stw r0, lbl_804513D8-_SDA_BASE_(r13)
/* 802D28DC 002CF81C 90 6D 8E 5C */ stw r3, lbl_804513DC-_SDA_BASE_(r13)
/* 802D28E0 002CF820 48 00 00 0C */ b lbl_802D28EC
lbl_802D28E4:
/* 802D28E4 002CF824 38 00 00 00 */ li r0, 0
/* 802D28E8 002CF828 90 0D 8E 54 */ stw r0, lbl_804513D4-_SDA_BASE_(r13)
lbl_802D28EC:
/* 802D28EC 002CF82C 93 4D 8E 6C */ stw r26, lbl_804513EC-_SDA_BASE_(r13)
/* 802D28F0 002CF830 38 00 00 00 */ li r0, 0
/* 802D28F4 002CF834 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D28F8 002CF838 28 1C 00 00 */ cmplwi r28, 0
/* 802D28FC 002CF83C 38 00 FF FF */ li r0, -1
/* 802D2900 002CF840 41 82 00 08 */ beq lbl_802D2908
/* 802D2904 002CF844 7F 80 E3 78 */ mr r0, r28
lbl_802D2908:
/* 802D2908 002CF848 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D290C 002CF84C 93 CD 8E 70 */ stw r30, lbl_804513F0-_SDA_BASE_(r13)
/* 802D2910 002CF850 38 00 00 00 */ li r0, 0
/* 802D2914 002CF854 90 0D 8E 74 */ stw r0, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2918 002CF858 93 AD 8E 78 */ stw r29, lbl_804513F8-_SDA_BASE_(r13)
/* 802D291C 002CF85C 28 1F 00 00 */ cmplwi r31, 0
/* 802D2920 002CF860 41 82 00 0C */ beq lbl_802D292C
/* 802D2924 002CF864 7F E3 FB 78 */ mr r3, r31
/* 802D2928 002CF868 48 00 00 08 */ b lbl_802D2930
lbl_802D292C:
/* 802D292C 002CF86C 38 6D 8E 84 */ addi r3, r13, lbl_80451404-_SDA_BASE_
lbl_802D2930:
/* 802D2930 002CF870 90 6D 8E 80 */ stw r3, lbl_80451400-_SDA_BASE_(r13)
/* 802D2934 002CF874 38 00 00 00 */ li r0, 0
/* 802D2938 002CF878 90 03 00 00 */ stw r0, 0(r3)
/* 802D293C 002CF87C 48 00 03 05 */ bl firstSrcData
/* 802D2940 002CF880 7F 64 DB 78 */ mr r4, r27
/* 802D2944 002CF884 48 00 00 5D */ bl decompSZS_subroutine
/* 802D2948 002CF888 80 6D 8E 4C */ lwz r3, lbl_804513CC-_SDA_BASE_(r13)
/* 802D294C 002CF88C 38 80 00 00 */ li r4, 0
/* 802D2950 002CF890 4B FF BB B1 */ bl JKRHeap_NS_free
/* 802D2954 002CF894 80 6D 8E 54 */ lwz r3, lbl_804513D4-_SDA_BASE_(r13)
/* 802D2958 002CF898 28 03 00 00 */ cmplwi r3, 0
/* 802D295C 002CF89C 41 82 00 0C */ beq lbl_802D2968
/* 802D2960 002CF8A0 38 80 00 00 */ li r4, 0
/* 802D2964 002CF8A4 4B FF BB 9D */ bl JKRHeap_NS_free
lbl_802D2968:
/* 802D2968 002CF8A8 7F 63 DB 78 */ mr r3, r27
/* 802D296C 002CF8AC 80 8D 8E 80 */ lwz r4, lbl_80451400-_SDA_BASE_(r13)
/* 802D2970 002CF8B0 80 84 00 00 */ lwz r4, 0(r4)
/* 802D2974 002CF8B4 48 06 8C C5 */ bl DCStoreRangeNoSync
/* 802D2978 002CF8B8 3C 60 80 43 */ lis r3, lbl_804342E8@ha
/* 802D297C 002CF8BC 38 63 42 E8 */ addi r3, r3, lbl_804342E8@l
/* 802D2980 002CF8C0 48 06 C7 9D */ bl OSUnlockMutex
/* 802D2984 002CF8C4 38 60 00 00 */ li r3, 0
/* 802D2988 002CF8C8 39 61 00 30 */ addi r11, r1, 0x30
/* 802D298C 002CF8CC 48 08 F8 8D */ bl func_80362218
/* 802D2990 002CF8D0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802D2994 002CF8D4 7C 08 03 A6 */ mtlr r0
/* 802D2998 002CF8D8 38 21 00 30 */ addi r1, r1, 0x30
/* 802D299C 002CF8DC 4E 80 00 20 */ blr
.global decompSZS_subroutine
decompSZS_subroutine:
/* 802D29A0 002CF8E0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D29A4 002CF8E4 7C 08 02 A6 */ mflr r0
/* 802D29A8 002CF8E8 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D29AC 002CF8EC 39 61 00 20 */ addi r11, r1, 0x20
/* 802D29B0 002CF8F0 48 08 F8 2D */ bl _savegpr_29
/* 802D29B4 002CF8F4 7C 9D 23 78 */ mr r29, r4
/* 802D29B8 002CF8F8 38 80 00 00 */ li r4, 0
/* 802D29BC 002CF8FC 38 00 00 00 */ li r0, 0
/* 802D29C0 002CF900 3B C0 00 00 */ li r30, 0
/* 802D29C4 002CF904 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D29C8 002CF908 2C 05 00 59 */ cmpwi r5, 0x59
/* 802D29CC 002CF90C 40 82 00 28 */ bne lbl_802D29F4
/* 802D29D0 002CF910 88 A3 00 01 */ lbz r5, 1(r3)
/* 802D29D4 002CF914 2C 05 00 61 */ cmpwi r5, 0x61
/* 802D29D8 002CF918 40 82 00 1C */ bne lbl_802D29F4
/* 802D29DC 002CF91C 88 A3 00 02 */ lbz r5, 2(r3)
/* 802D29E0 002CF920 2C 05 00 7A */ cmpwi r5, 0x7a
/* 802D29E4 002CF924 40 82 00 10 */ bne lbl_802D29F4
/* 802D29E8 002CF928 88 A3 00 03 */ lbz r5, 3(r3)
/* 802D29EC 002CF92C 2C 05 00 30 */ cmpwi r5, 0x30
/* 802D29F0 002CF930 41 82 00 0C */ beq lbl_802D29FC
lbl_802D29F4:
/* 802D29F4 002CF934 38 60 FF FF */ li r3, -1
/* 802D29F8 002CF938 48 00 02 30 */ b lbl_802D2C28
lbl_802D29FC:
/* 802D29FC 002CF93C 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13)
/* 802D2A00 002CF940 80 A3 00 04 */ lwz r5, 4(r3)
/* 802D2A04 002CF944 7C A6 28 50 */ subf r5, r6, r5
/* 802D2A08 002CF948 7F FD 2A 14 */ add r31, r29, r5
/* 802D2A0C 002CF94C 80 AD 8E 78 */ lwz r5, lbl_804513F8-_SDA_BASE_(r13)
/* 802D2A10 002CF950 7C BD 2A 14 */ add r5, r29, r5
/* 802D2A14 002CF954 7C 1F 28 40 */ cmplw r31, r5
/* 802D2A18 002CF958 40 81 00 08 */ ble lbl_802D2A20
/* 802D2A1C 002CF95C 7C BF 2B 78 */ mr r31, r5
lbl_802D2A20:
/* 802D2A20 002CF960 38 63 00 10 */ addi r3, r3, 0x10
lbl_802D2A24:
/* 802D2A24 002CF964 2C 04 00 00 */ cmpwi r4, 0
/* 802D2A28 002CF968 40 82 00 2C */ bne lbl_802D2A54
/* 802D2A2C 002CF96C 80 0D 8E 68 */ lwz r0, lbl_804513E8-_SDA_BASE_(r13)
/* 802D2A30 002CF970 7C 03 00 40 */ cmplw r3, r0
/* 802D2A34 002CF974 40 81 00 14 */ ble lbl_802D2A48
/* 802D2A38 002CF978 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2A3C 002CF97C 28 00 00 00 */ cmplwi r0, 0
/* 802D2A40 002CF980 41 82 00 08 */ beq lbl_802D2A48
/* 802D2A44 002CF984 48 00 02 A1 */ bl nextSrcData
lbl_802D2A48:
/* 802D2A48 002CF988 88 03 00 00 */ lbz r0, 0(r3)
/* 802D2A4C 002CF98C 38 80 00 08 */ li r4, 8
/* 802D2A50 002CF990 38 63 00 01 */ addi r3, r3, 1
lbl_802D2A54:
/* 802D2A54 002CF994 54 05 06 31 */ rlwinm. r5, r0, 0, 0x18, 0x18
/* 802D2A58 002CF998 41 82 00 94 */ beq lbl_802D2AEC
/* 802D2A5C 002CF99C 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13)
/* 802D2A60 002CF9A0 28 06 00 00 */ cmplwi r6, 0
/* 802D2A64 002CF9A4 41 82 00 5C */ beq lbl_802D2AC0
/* 802D2A68 002CF9A8 80 AD 8E 74 */ lwz r5, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2A6C 002CF9AC 7C 05 30 40 */ cmplw r5, r6
/* 802D2A70 002CF9B0 41 80 00 1C */ blt lbl_802D2A8C
/* 802D2A74 002CF9B4 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D2A78 002CF9B8 98 BD 00 00 */ stb r5, 0(r29)
/* 802D2A7C 002CF9BC 3B BD 00 01 */ addi r29, r29, 1
/* 802D2A80 002CF9C0 7C 1D F8 40 */ cmplw r29, r31
/* 802D2A84 002CF9C4 3B DE 00 01 */ addi r30, r30, 1
/* 802D2A88 002CF9C8 41 82 01 94 */ beq lbl_802D2C1C
lbl_802D2A8C:
/* 802D2A8C 002CF9CC 88 E3 00 00 */ lbz r7, 0(r3)
/* 802D2A90 002CF9D0 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2A94 002CF9D4 38 A6 00 01 */ addi r5, r6, 1
/* 802D2A98 002CF9D8 90 AD 8E 5C */ stw r5, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2A9C 002CF9DC 98 E6 00 00 */ stb r7, 0(r6)
/* 802D2AA0 002CF9E0 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2AA4 002CF9E4 80 AD 8E 58 */ lwz r5, lbl_804513D8-_SDA_BASE_(r13)
/* 802D2AA8 002CF9E8 7C 06 28 40 */ cmplw r6, r5
/* 802D2AAC 002CF9EC 40 82 00 0C */ bne lbl_802D2AB8
/* 802D2AB0 002CF9F0 80 AD 8E 54 */ lwz r5, lbl_804513D4-_SDA_BASE_(r13)
/* 802D2AB4 002CF9F4 90 AD 8E 5C */ stw r5, lbl_804513DC-_SDA_BASE_(r13)
lbl_802D2AB8:
/* 802D2AB8 002CF9F8 38 63 00 01 */ addi r3, r3, 1
/* 802D2ABC 002CF9FC 48 00 00 20 */ b lbl_802D2ADC
lbl_802D2AC0:
/* 802D2AC0 002CFA00 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D2AC4 002CFA04 98 BD 00 00 */ stb r5, 0(r29)
/* 802D2AC8 002CFA08 3B BD 00 01 */ addi r29, r29, 1
/* 802D2ACC 002CFA0C 7C 1D F8 40 */ cmplw r29, r31
/* 802D2AD0 002CFA10 38 63 00 01 */ addi r3, r3, 1
/* 802D2AD4 002CFA14 3B DE 00 01 */ addi r30, r30, 1
/* 802D2AD8 002CFA18 41 82 01 44 */ beq lbl_802D2C1C
lbl_802D2ADC:
/* 802D2ADC 002CFA1C 80 AD 8E 74 */ lwz r5, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2AE0 002CFA20 38 A5 00 01 */ addi r5, r5, 1
/* 802D2AE4 002CFA24 90 AD 8E 74 */ stw r5, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2AE8 002CFA28 48 00 01 24 */ b lbl_802D2C0C
lbl_802D2AEC:
/* 802D2AEC 002CFA2C 88 C3 00 00 */ lbz r6, 0(r3)
/* 802D2AF0 002CFA30 88 E3 00 01 */ lbz r7, 1(r3)
/* 802D2AF4 002CFA34 50 C7 45 2E */ rlwimi r7, r6, 8, 0x14, 0x17
/* 802D2AF8 002CFA38 7C C5 26 70 */ srawi r5, r6, 4
/* 802D2AFC 002CFA3C 81 0D 8E 70 */ lwz r8, lbl_804513F0-_SDA_BASE_(r13)
/* 802D2B00 002CFA40 28 08 00 00 */ cmplwi r8, 0
/* 802D2B04 002CFA44 38 63 00 02 */ addi r3, r3, 2
/* 802D2B08 002CFA48 41 82 00 2C */ beq lbl_802D2B34
/* 802D2B0C 002CFA4C 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2B10 002CFA50 7C C7 30 50 */ subf r6, r7, r6
/* 802D2B14 002CFA54 39 26 FF FF */ addi r9, r6, -1
/* 802D2B18 002CFA58 80 ED 8E 54 */ lwz r7, lbl_804513D4-_SDA_BASE_(r13)
/* 802D2B1C 002CFA5C 7C 09 38 40 */ cmplw r9, r7
/* 802D2B20 002CFA60 40 80 00 1C */ bge lbl_802D2B3C
/* 802D2B24 002CFA64 80 CD 8E 58 */ lwz r6, lbl_804513D8-_SDA_BASE_(r13)
/* 802D2B28 002CFA68 7C C7 30 50 */ subf r6, r7, r6
/* 802D2B2C 002CFA6C 7D 29 32 14 */ add r9, r9, r6
/* 802D2B30 002CFA70 48 00 00 0C */ b lbl_802D2B3C
lbl_802D2B34:
/* 802D2B34 002CFA74 7C C7 E8 50 */ subf r6, r7, r29
/* 802D2B38 002CFA78 39 26 FF FF */ addi r9, r6, -1
lbl_802D2B3C:
/* 802D2B3C 002CFA7C 2C 05 00 00 */ cmpwi r5, 0
/* 802D2B40 002CFA80 40 82 00 14 */ bne lbl_802D2B54
/* 802D2B44 002CFA84 88 A3 00 00 */ lbz r5, 0(r3)
/* 802D2B48 002CFA88 38 A5 00 12 */ addi r5, r5, 0x12
/* 802D2B4C 002CFA8C 38 63 00 01 */ addi r3, r3, 1
/* 802D2B50 002CFA90 48 00 00 08 */ b lbl_802D2B58
lbl_802D2B54:
/* 802D2B54 002CFA94 38 A5 00 02 */ addi r5, r5, 2
lbl_802D2B58:
/* 802D2B58 002CFA98 28 08 00 00 */ cmplwi r8, 0
/* 802D2B5C 002CFA9C 41 82 00 80 */ beq lbl_802D2BDC
lbl_802D2B60:
/* 802D2B60 002CFAA0 80 ED 8E 74 */ lwz r7, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2B64 002CFAA4 80 CD 8E 70 */ lwz r6, lbl_804513F0-_SDA_BASE_(r13)
/* 802D2B68 002CFAA8 7C 07 30 40 */ cmplw r7, r6
/* 802D2B6C 002CFAAC 41 80 00 1C */ blt lbl_802D2B88
/* 802D2B70 002CFAB0 88 C9 00 00 */ lbz r6, 0(r9)
/* 802D2B74 002CFAB4 98 DD 00 00 */ stb r6, 0(r29)
/* 802D2B78 002CFAB8 3B BD 00 01 */ addi r29, r29, 1
/* 802D2B7C 002CFABC 7C 1D F8 40 */ cmplw r29, r31
/* 802D2B80 002CFAC0 3B DE 00 01 */ addi r30, r30, 1
/* 802D2B84 002CFAC4 41 82 00 88 */ beq lbl_802D2C0C
lbl_802D2B88:
/* 802D2B88 002CFAC8 89 09 00 00 */ lbz r8, 0(r9)
/* 802D2B8C 002CFACC 80 ED 8E 5C */ lwz r7, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2B90 002CFAD0 38 C7 00 01 */ addi r6, r7, 1
/* 802D2B94 002CFAD4 90 CD 8E 5C */ stw r6, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2B98 002CFAD8 99 07 00 00 */ stb r8, 0(r7)
/* 802D2B9C 002CFADC 80 CD 8E 5C */ lwz r6, lbl_804513DC-_SDA_BASE_(r13)
/* 802D2BA0 002CFAE0 80 ED 8E 58 */ lwz r7, lbl_804513D8-_SDA_BASE_(r13)
/* 802D2BA4 002CFAE4 7C 06 38 40 */ cmplw r6, r7
/* 802D2BA8 002CFAE8 40 82 00 0C */ bne lbl_802D2BB4
/* 802D2BAC 002CFAEC 80 CD 8E 54 */ lwz r6, lbl_804513D4-_SDA_BASE_(r13)
/* 802D2BB0 002CFAF0 90 CD 8E 5C */ stw r6, lbl_804513DC-_SDA_BASE_(r13)
lbl_802D2BB4:
/* 802D2BB4 002CFAF4 39 29 00 01 */ addi r9, r9, 1
/* 802D2BB8 002CFAF8 7C 09 38 40 */ cmplw r9, r7
/* 802D2BBC 002CFAFC 40 82 00 08 */ bne lbl_802D2BC4
/* 802D2BC0 002CFB00 81 2D 8E 54 */ lwz r9, lbl_804513D4-_SDA_BASE_(r13)
lbl_802D2BC4:
/* 802D2BC4 002CFB04 80 CD 8E 74 */ lwz r6, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2BC8 002CFB08 38 C6 00 01 */ addi r6, r6, 1
/* 802D2BCC 002CFB0C 90 CD 8E 74 */ stw r6, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2BD0 002CFB10 34 A5 FF FF */ addic. r5, r5, -1
/* 802D2BD4 002CFB14 40 82 FF 8C */ bne lbl_802D2B60
/* 802D2BD8 002CFB18 48 00 00 34 */ b lbl_802D2C0C
lbl_802D2BDC:
/* 802D2BDC 002CFB1C 88 C9 00 00 */ lbz r6, 0(r9)
/* 802D2BE0 002CFB20 98 DD 00 00 */ stb r6, 0(r29)
/* 802D2BE4 002CFB24 3B BD 00 01 */ addi r29, r29, 1
/* 802D2BE8 002CFB28 7C 1D F8 40 */ cmplw r29, r31
/* 802D2BEC 002CFB2C 3B DE 00 01 */ addi r30, r30, 1
/* 802D2BF0 002CFB30 41 82 00 1C */ beq lbl_802D2C0C
/* 802D2BF4 002CFB34 80 CD 8E 74 */ lwz r6, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2BF8 002CFB38 38 C6 00 01 */ addi r6, r6, 1
/* 802D2BFC 002CFB3C 90 CD 8E 74 */ stw r6, lbl_804513F4-_SDA_BASE_(r13)
/* 802D2C00 002CFB40 34 A5 FF FF */ addic. r5, r5, -1
/* 802D2C04 002CFB44 39 29 00 01 */ addi r9, r9, 1
/* 802D2C08 002CFB48 40 82 FF D4 */ bne lbl_802D2BDC
lbl_802D2C0C:
/* 802D2C0C 002CFB4C 54 00 08 3C */ slwi r0, r0, 1
/* 802D2C10 002CFB50 7C 1D F8 40 */ cmplw r29, r31
/* 802D2C14 002CFB54 38 84 FF FF */ addi r4, r4, -1
/* 802D2C18 002CFB58 41 80 FE 0C */ blt lbl_802D2A24
lbl_802D2C1C:
/* 802D2C1C 002CFB5C 80 6D 8E 80 */ lwz r3, lbl_80451400-_SDA_BASE_(r13)
/* 802D2C20 002CFB60 93 C3 00 00 */ stw r30, 0(r3)
/* 802D2C24 002CFB64 38 60 00 00 */ li r3, 0
lbl_802D2C28:
/* 802D2C28 002CFB68 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2C2C 002CFB6C 48 08 F5 FD */ bl _restgpr_29
/* 802D2C30 002CFB70 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2C34 002CFB74 7C 08 03 A6 */ mtlr r0
/* 802D2C38 002CFB78 38 21 00 20 */ addi r1, r1, 0x20
/* 802D2C3C 002CFB7C 4E 80 00 20 */ blr
.global firstSrcData
firstSrcData:
/* 802D2C40 002CFB80 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D2C44 002CFB84 7C 08 02 A6 */ mflr r0
/* 802D2C48 002CFB88 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D2C4C 002CFB8C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D2C50 002CFB90 93 C1 00 08 */ stw r30, 8(r1)
/* 802D2C54 002CFB94 80 6D 8E 50 */ lwz r3, lbl_804513D0-_SDA_BASE_(r13)
/* 802D2C58 002CFB98 38 03 FF E7 */ addi r0, r3, -25
/* 802D2C5C 002CFB9C 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13)
/* 802D2C60 002CFBA0 80 0D 8E 4C */ lwz r0, lbl_804513CC-_SDA_BASE_(r13)
/* 802D2C64 002CFBA4 7C 1E 03 78 */ mr r30, r0
/* 802D2C68 002CFBA8 7C 60 18 50 */ subf r3, r0, r3
/* 802D2C6C 002CFBAC 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2C70 002CFBB0 7C 00 18 40 */ cmplw r0, r3
/* 802D2C74 002CFBB4 7C 7F 1B 78 */ mr r31, r3
/* 802D2C78 002CFBB8 40 80 00 08 */ bge lbl_802D2C80
/* 802D2C7C 002CFBBC 7C 1F 03 78 */ mr r31, r0
lbl_802D2C80:
/* 802D2C80 002CFBC0 38 60 00 01 */ li r3, 1
/* 802D2C84 002CFBC4 80 8D 8E 6C */ lwz r4, lbl_804513EC-_SDA_BASE_(r13)
/* 802D2C88 002CFBC8 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D2C8C 002CFBCC 7C 84 02 14 */ add r4, r4, r0
/* 802D2C90 002CFBD0 7F C5 F3 78 */ mr r5, r30
/* 802D2C94 002CFBD4 38 1F 00 1F */ addi r0, r31, 0x1f
/* 802D2C98 002CFBD8 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a
/* 802D2C9C 002CFBDC 38 E0 00 00 */ li r7, 0
/* 802D2CA0 002CFBE0 48 00 0B 99 */ bl JKRAramPiece_NS_orderSync
/* 802D2CA4 002CFBE4 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D2CA8 002CFBE8 7C 00 FA 14 */ add r0, r0, r31
/* 802D2CAC 002CFBEC 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D2CB0 002CFBF0 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2CB4 002CFBF4 7C 1F 00 51 */ subf. r0, r31, r0
/* 802D2CB8 002CFBF8 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2CBC 002CFBFC 40 82 00 0C */ bne lbl_802D2CC8
/* 802D2CC0 002CFC00 7C 1E FA 14 */ add r0, r30, r31
/* 802D2CC4 002CFC04 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13)
lbl_802D2CC8:
/* 802D2CC8 002CFC08 7F C3 F3 78 */ mr r3, r30
/* 802D2CCC 002CFC0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D2CD0 002CFC10 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D2CD4 002CFC14 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D2CD8 002CFC18 7C 08 03 A6 */ mtlr r0
/* 802D2CDC 002CFC1C 38 21 00 10 */ addi r1, r1, 0x10
/* 802D2CE0 002CFC20 4E 80 00 20 */ blr
.global nextSrcData
nextSrcData:
/* 802D2CE4 002CFC24 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D2CE8 002CFC28 7C 08 02 A6 */ mflr r0
/* 802D2CEC 002CFC2C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D2CF0 002CFC30 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2CF4 002CFC34 48 08 F4 E5 */ bl _savegpr_28
/* 802D2CF8 002CFC38 7C 64 1B 78 */ mr r4, r3
/* 802D2CFC 002CFC3C 80 0D 8E 50 */ lwz r0, lbl_804513D0-_SDA_BASE_(r13)
/* 802D2D00 002CFC40 7F A4 00 50 */ subf r29, r4, r0
/* 802D2D04 002CFC44 57 A5 06 FF */ clrlwi. r5, r29, 0x1b
/* 802D2D08 002CFC48 41 82 00 14 */ beq lbl_802D2D1C
/* 802D2D0C 002CFC4C 80 6D 8E 4C */ lwz r3, lbl_804513CC-_SDA_BASE_(r13)
/* 802D2D10 002CFC50 38 03 00 20 */ addi r0, r3, 0x20
/* 802D2D14 002CFC54 7F C5 00 50 */ subf r30, r5, r0
/* 802D2D18 002CFC58 48 00 00 08 */ b lbl_802D2D20
lbl_802D2D1C:
/* 802D2D1C 002CFC5C 83 CD 8E 4C */ lwz r30, lbl_804513CC-_SDA_BASE_(r13)
lbl_802D2D20:
/* 802D2D20 002CFC60 7F C3 F3 78 */ mr r3, r30
/* 802D2D24 002CFC64 7F A5 EB 78 */ mr r5, r29
/* 802D2D28 002CFC68 4B D3 08 19 */ bl func_80003540
/* 802D2D2C 002CFC6C 7F FE EA 14 */ add r31, r30, r29
/* 802D2D30 002CFC70 80 0D 8E 50 */ lwz r0, lbl_804513D0-_SDA_BASE_(r13)
/* 802D2D34 002CFC74 7F 9F 00 50 */ subf r28, r31, r0
/* 802D2D38 002CFC78 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2D3C 002CFC7C 7C 1C 00 40 */ cmplw r28, r0
/* 802D2D40 002CFC80 40 81 00 08 */ ble lbl_802D2D48
/* 802D2D44 002CFC84 7C 1C 03 78 */ mr r28, r0
lbl_802D2D48:
/* 802D2D48 002CFC88 38 60 00 01 */ li r3, 1
/* 802D2D4C 002CFC8C 80 8D 8E 6C */ lwz r4, lbl_804513EC-_SDA_BASE_(r13)
/* 802D2D50 002CFC90 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D2D54 002CFC94 7C 84 02 14 */ add r4, r4, r0
/* 802D2D58 002CFC98 7C BE EA 14 */ add r5, r30, r29
/* 802D2D5C 002CFC9C 38 1C 00 1F */ addi r0, r28, 0x1f
/* 802D2D60 002CFCA0 54 06 00 34 */ rlwinm r6, r0, 0, 0, 0x1a
/* 802D2D64 002CFCA4 38 E0 00 00 */ li r7, 0
/* 802D2D68 002CFCA8 48 00 0A D1 */ bl JKRAramPiece_NS_orderSync
/* 802D2D6C 002CFCAC 80 0D 8E 60 */ lwz r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D2D70 002CFCB0 7C 00 E2 14 */ add r0, r0, r28
/* 802D2D74 002CFCB4 90 0D 8E 60 */ stw r0, lbl_804513E0-_SDA_BASE_(r13)
/* 802D2D78 002CFCB8 80 0D 8E 64 */ lwz r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2D7C 002CFCBC 7C 1C 00 51 */ subf. r0, r28, r0
/* 802D2D80 002CFCC0 90 0D 8E 64 */ stw r0, lbl_804513E4-_SDA_BASE_(r13)
/* 802D2D84 002CFCC4 40 82 00 0C */ bne lbl_802D2D90
/* 802D2D88 002CFCC8 7C 1F E2 14 */ add r0, r31, r28
/* 802D2D8C 002CFCCC 90 0D 8E 68 */ stw r0, lbl_804513E8-_SDA_BASE_(r13)
lbl_802D2D90:
/* 802D2D90 002CFCD0 7F C3 F3 78 */ mr r3, r30
/* 802D2D94 002CFCD4 39 61 00 20 */ addi r11, r1, 0x20
/* 802D2D98 002CFCD8 48 08 F4 8D */ bl _restgpr_28
/* 802D2D9C 002CFCDC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2DA0 002CFCE0 7C 08 03 A6 */ mtlr r0
/* 802D2DA4 002CFCE4 38 21 00 20 */ addi r1, r1, 0x20
/* 802D2DA8 002CFCE8 4E 80 00 20 */ blr
/* 802D2DAC 002CFCEC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D2DB0 002CFCF0 7C 08 02 A6 */ mflr r0
/* 802D2DB4 002CFCF4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D2DB8 002CFCF8 3C 60 80 43 */ lis r3, lbl_804342DC@ha
/* 802D2DBC 002CFCFC 38 63 42 DC */ addi r3, r3, lbl_804342DC@l
/* 802D2DC0 002CFD00 48 00 91 55 */ bl JSUPtrList_NS_initiate
/* 802D2DC4 002CFD04 3C 60 80 43 */ lis r3, lbl_804342DC@ha
/* 802D2DC8 002CFD08 38 63 42 DC */ addi r3, r3, lbl_804342DC@l
.global JSUList_NS_dtor_X4_
/* 802D2DCC 002CFD0C 3C 80 80 2D */ lis r4, JSUList_NS_dtor_X4_@ha
.global JSUList_NS_dtor_X4_
/* 802D2DD0 002CFD10 38 84 2D F0 */ addi r4, r4, JSUList_NS_dtor_X4_@l
/* 802D2DD4 002CFD14 3C A0 80 43 */ lis r5, lbl_804342D0@ha
/* 802D2DD8 002CFD18 38 A5 42 D0 */ addi r5, r5, lbl_804342D0@l
/* 802D2DDC 002CFD1C 48 08 EE 49 */ bl func_80361C24
/* 802D2DE0 002CFD20 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D2DE4 002CFD24 7C 08 03 A6 */ mtlr r0
/* 802D2DE8 002CFD28 38 21 00 10 */ addi r1, r1, 0x10
/* 802D2DEC 002CFD2C 4E 80 00 20 */ blr
.global JSUList_NS_dtor_X4_
JSUList_NS_dtor_X4_:
/* 802D2DF0 002CFD30 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D2DF4 002CFD34 7C 08 02 A6 */ mflr r0
/* 802D2DF8 002CFD38 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D2DFC 002CFD3C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D2E00 002CFD40 93 C1 00 08 */ stw r30, 8(r1)
/* 802D2E04 002CFD44 7C 7E 1B 79 */ or. r30, r3, r3
/* 802D2E08 002CFD48 7C 9F 23 78 */ mr r31, r4
/* 802D2E0C 002CFD4C 41 82 00 1C */ beq lbl_802D2E28
/* 802D2E10 002CFD50 38 80 00 00 */ li r4, 0
/* 802D2E14 002CFD54 48 00 90 99 */ bl JSUPtrList_NS_dtor
/* 802D2E18 002CFD58 7F E0 07 35 */ extsh. r0, r31
/* 802D2E1C 002CFD5C 40 81 00 0C */ ble lbl_802D2E28
/* 802D2E20 002CFD60 7F C3 F3 78 */ mr r3, r30
/* 802D2E24 002CFD64 4B FF BF 19 */ bl __dl
lbl_802D2E28:
/* 802D2E28 002CFD68 7F C3 F3 78 */ mr r3, r30
/* 802D2E2C 002CFD6C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D2E30 002CFD70 83 C1 00 08 */ lwz r30, 8(r1)
/* 802D2E34 002CFD74 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D2E38 002CFD78 7C 08 03 A6 */ mtlr r0
/* 802D2E3C 002CFD7C 38 21 00 10 */ addi r1, r1, 0x10
/* 802D2E40 002CFD80 4E 80 00 20 */ blr