.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global iosCreateHeap iosCreateHeap: /* 802A4004 0029FC64 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802A4008 0029FC68 7C 08 02 A6 */ mflr r0 /* 802A400C 0029FC6C 90 01 00 24 */ stw r0, 0x24(r1) /* 802A4010 0029FC70 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802A4014 0029FC74 3B E0 FF FC */ li r31, -4 /* 802A4018 0029FC78 93 C1 00 18 */ stw r30, 0x18(r1) /* 802A401C 0029FC7C 7C 9E 23 78 */ mr r30, r4 /* 802A4020 0029FC80 93 A1 00 14 */ stw r29, 0x14(r1) /* 802A4024 0029FC84 7C 7D 1B 78 */ mr r29, r3 /* 802A4028 0029FC88 4B FC A7 35 */ bl OSDisableInterrupts /* 802A402C 0029FC8C 57 A0 06 FF */ clrlwi. r0, r29, 0x1b /* 802A4030 0029FC90 40 82 00 E0 */ bne lbl_802A4110 /* 802A4034 0029FC94 3C 80 80 53 */ lis r4, 0x8053 /* 802A4038 0029FC98 84 04 6B B0 */ lwzu r0, 0x6bb0(r4) /* 802A403C 0029FC9C 3B E0 00 00 */ li r31, 0 /* 802A4040 0029FCA0 2C 00 00 00 */ cmpwi r0, 0 /* 802A4044 0029FCA4 41 82 00 78 */ beq lbl_802A40BC /* 802A4048 0029FCA8 80 04 00 10 */ lwz r0, 0x10(r4) /* 802A404C 0029FCAC 3B E0 00 01 */ li r31, 1 /* 802A4050 0029FCB0 2C 00 00 00 */ cmpwi r0, 0 /* 802A4054 0029FCB4 41 82 00 68 */ beq lbl_802A40BC /* 802A4058 0029FCB8 80 04 00 20 */ lwz r0, 0x20(r4) /* 802A405C 0029FCBC 3B E0 00 02 */ li r31, 2 /* 802A4060 0029FCC0 2C 00 00 00 */ cmpwi r0, 0 /* 802A4064 0029FCC4 41 82 00 58 */ beq lbl_802A40BC /* 802A4068 0029FCC8 80 04 00 30 */ lwz r0, 0x30(r4) /* 802A406C 0029FCCC 3B E0 00 03 */ li r31, 3 /* 802A4070 0029FCD0 2C 00 00 00 */ cmpwi r0, 0 /* 802A4074 0029FCD4 41 82 00 48 */ beq lbl_802A40BC /* 802A4078 0029FCD8 80 04 00 40 */ lwz r0, 0x40(r4) /* 802A407C 0029FCDC 3B E0 00 04 */ li r31, 4 /* 802A4080 0029FCE0 2C 00 00 00 */ cmpwi r0, 0 /* 802A4084 0029FCE4 41 82 00 38 */ beq lbl_802A40BC /* 802A4088 0029FCE8 80 04 00 50 */ lwz r0, 0x50(r4) /* 802A408C 0029FCEC 3B E0 00 05 */ li r31, 5 /* 802A4090 0029FCF0 2C 00 00 00 */ cmpwi r0, 0 /* 802A4094 0029FCF4 41 82 00 28 */ beq lbl_802A40BC /* 802A4098 0029FCF8 80 04 00 60 */ lwz r0, 0x60(r4) /* 802A409C 0029FCFC 3B E0 00 06 */ li r31, 6 /* 802A40A0 0029FD00 2C 00 00 00 */ cmpwi r0, 0 /* 802A40A4 0029FD04 41 82 00 18 */ beq lbl_802A40BC /* 802A40A8 0029FD08 80 04 00 70 */ lwz r0, 0x70(r4) /* 802A40AC 0029FD0C 3B E0 00 07 */ li r31, 7 /* 802A40B0 0029FD10 2C 00 00 00 */ cmpwi r0, 0 /* 802A40B4 0029FD14 41 82 00 08 */ beq lbl_802A40BC /* 802A40B8 0029FD18 3B E0 00 08 */ li r31, 8 lbl_802A40BC: /* 802A40BC 0029FD1C 2C 1F 00 08 */ cmpwi r31, 8 /* 802A40C0 0029FD20 40 82 00 0C */ bne lbl_802A40CC /* 802A40C4 0029FD24 3B E0 FF FB */ li r31, -5 /* 802A40C8 0029FD28 48 00 00 48 */ b lbl_802A4110 lbl_802A40CC: /* 802A40CC 0029FD2C 3C A0 80 53 */ lis r5, lbl_80536BB0@ha /* 802A40D0 0029FD30 57 E0 20 36 */ slwi r0, r31, 4 /* 802A40D4 0029FD34 38 A5 6B B0 */ addi r5, r5, lbl_80536BB0@l /* 802A40D8 0029FD38 3C 80 BA BE */ lis r4, 0xbabe /* 802A40DC 0029FD3C 7C C5 02 14 */ add r6, r5, r0 /* 802A40E0 0029FD40 38 00 00 00 */ li r0, 0 /* 802A40E4 0029FD44 93 A6 00 00 */ stw r29, 0(r6) /* 802A40E8 0029FD48 38 BE FF F0 */ addi r5, r30, -16 /* 802A40EC 0029FD4C 93 C6 00 08 */ stw r30, 8(r6) /* 802A40F0 0029FD50 93 A6 00 0C */ stw r29, 0xc(r6) /* 802A40F4 0029FD54 90 9D 00 00 */ stw r4, 0(r29) /* 802A40F8 0029FD58 80 86 00 0C */ lwz r4, 0xc(r6) /* 802A40FC 0029FD5C 90 A4 00 04 */ stw r5, 4(r4) /* 802A4100 0029FD60 80 86 00 0C */ lwz r4, 0xc(r6) /* 802A4104 0029FD64 90 04 00 08 */ stw r0, 8(r4) /* 802A4108 0029FD68 80 86 00 0C */ lwz r4, 0xc(r6) /* 802A410C 0029FD6C 90 04 00 0C */ stw r0, 0xc(r4) lbl_802A4110: /* 802A4110 0029FD70 4B FC A6 75 */ bl OSRestoreInterrupts /* 802A4114 0029FD74 7F E3 FB 78 */ mr r3, r31 /* 802A4118 0029FD78 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802A411C 0029FD7C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802A4120 0029FD80 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802A4124 0029FD84 80 01 00 24 */ lwz r0, 0x24(r1) /* 802A4128 0029FD88 7C 08 03 A6 */ mtlr r0 /* 802A412C 0029FD8C 38 21 00 20 */ addi r1, r1, 0x20 /* 802A4130 0029FD90 4E 80 00 20 */ blr __iosAlloc: /* 802A4134 0029FD94 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802A4138 0029FD98 7C 08 02 A6 */ mflr r0 /* 802A413C 0029FD9C 90 01 00 24 */ stw r0, 0x24(r1) /* 802A4140 0029FDA0 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802A4144 0029FDA4 3B E0 00 00 */ li r31, 0 /* 802A4148 0029FDA8 93 C1 00 18 */ stw r30, 0x18(r1) /* 802A414C 0029FDAC 7C BE 2B 78 */ mr r30, r5 /* 802A4150 0029FDB0 93 A1 00 14 */ stw r29, 0x14(r1) /* 802A4154 0029FDB4 7C 9D 23 78 */ mr r29, r4 /* 802A4158 0029FDB8 93 81 00 10 */ stw r28, 0x10(r1) /* 802A415C 0029FDBC 7C 7C 1B 78 */ mr r28, r3 /* 802A4160 0029FDC0 4B FC A5 FD */ bl OSDisableInterrupts /* 802A4164 0029FDC4 2C 1D 00 00 */ cmpwi r29, 0 /* 802A4168 0029FDC8 41 82 01 A8 */ beq lbl_802A4310 /* 802A416C 0029FDCC 2C 1E 00 00 */ cmpwi r30, 0 /* 802A4170 0029FDD0 41 82 01 A0 */ beq lbl_802A4310 /* 802A4174 0029FDD4 38 1E FF FF */ addi r0, r30, -1 /* 802A4178 0029FDD8 7F C0 00 39 */ and. r0, r30, r0 /* 802A417C 0029FDDC 40 82 01 94 */ bne lbl_802A4310 /* 802A4180 0029FDE0 28 1E 00 20 */ cmplwi r30, 0x20 /* 802A4184 0029FDE4 40 80 00 08 */ bge lbl_802A418C /* 802A4188 0029FDE8 3B C0 00 20 */ li r30, 0x20 lbl_802A418C: /* 802A418C 0029FDEC 2C 1C 00 00 */ cmpwi r28, 0 /* 802A4190 0029FDF0 38 1D 00 1F */ addi r0, r29, 0x1f /* 802A4194 0029FDF4 54 1D 00 34 */ rlwinm r29, r0, 0, 0, 0x1a /* 802A4198 0029FDF8 41 80 00 24 */ blt lbl_802A41BC /* 802A419C 0029FDFC 2C 1C 00 08 */ cmpwi r28, 8 /* 802A41A0 0029FE00 40 80 00 1C */ bge lbl_802A41BC /* 802A41A4 0029FE04 3C 80 80 53 */ lis r4, lbl_80536BB0@ha /* 802A41A8 0029FE08 57 80 20 36 */ slwi r0, r28, 4 /* 802A41AC 0029FE0C 38 84 6B B0 */ addi r4, r4, lbl_80536BB0@l /* 802A41B0 0029FE10 7C 04 00 6E */ lwzux r0, r4, r0 /* 802A41B4 0029FE14 2C 00 00 00 */ cmpwi r0, 0 /* 802A41B8 0029FE18 40 82 00 0C */ bne lbl_802A41C4 lbl_802A41BC: /* 802A41BC 0029FE1C 3B E0 00 00 */ li r31, 0 /* 802A41C0 0029FE20 48 00 01 50 */ b lbl_802A4310 lbl_802A41C4: /* 802A41C4 0029FE24 81 04 00 0C */ lwz r8, 0xc(r4) /* 802A41C8 0029FE28 38 DE FF FF */ addi r6, r30, -1 /* 802A41CC 0029FE2C 38 A0 00 00 */ li r5, 0 /* 802A41D0 0029FE30 48 00 00 58 */ b lbl_802A4228 lbl_802A41D4: /* 802A41D4 0029FE34 80 E8 00 04 */ lwz r7, 4(r8) /* 802A41D8 0029FE38 38 08 00 10 */ addi r0, r8, 0x10 /* 802A41DC 0029FE3C 7C 00 30 38 */ and r0, r0, r6 /* 802A41E0 0029FE40 7C 07 E8 40 */ cmplw r7, r29 /* 802A41E4 0029FE44 7C 00 F0 50 */ subf r0, r0, r30 /* 802A41E8 0029FE48 7C C0 00 38 */ and r0, r6, r0 /* 802A41EC 0029FE4C 40 82 00 14 */ bne lbl_802A4200 /* 802A41F0 0029FE50 2C 00 00 00 */ cmpwi r0, 0 /* 802A41F4 0029FE54 40 82 00 0C */ bne lbl_802A4200 /* 802A41F8 0029FE58 7D 05 43 78 */ mr r5, r8 /* 802A41FC 0029FE5C 48 00 00 34 */ b lbl_802A4230 lbl_802A4200: /* 802A4200 0029FE60 7C 1D 02 14 */ add r0, r29, r0 /* 802A4204 0029FE64 7C 07 00 40 */ cmplw r7, r0 /* 802A4208 0029FE68 41 80 00 1C */ blt lbl_802A4224 /* 802A420C 0029FE6C 2C 05 00 00 */ cmpwi r5, 0 /* 802A4210 0029FE70 41 82 00 10 */ beq lbl_802A4220 /* 802A4214 0029FE74 80 05 00 04 */ lwz r0, 4(r5) /* 802A4218 0029FE78 7C 07 00 40 */ cmplw r7, r0 /* 802A421C 0029FE7C 40 80 00 08 */ bge lbl_802A4224 lbl_802A4220: /* 802A4220 0029FE80 7D 05 43 78 */ mr r5, r8 lbl_802A4224: /* 802A4224 0029FE84 81 08 00 0C */ lwz r8, 0xc(r8) lbl_802A4228: /* 802A4228 0029FE88 2C 08 00 00 */ cmpwi r8, 0 /* 802A422C 0029FE8C 40 82 FF A8 */ bne lbl_802A41D4 lbl_802A4230: /* 802A4230 0029FE90 2C 05 00 00 */ cmpwi r5, 0 /* 802A4234 0029FE94 41 82 00 DC */ beq lbl_802A4310 /* 802A4238 0029FE98 38 FE FF FF */ addi r7, r30, -1 /* 802A423C 0029FE9C 38 05 00 10 */ addi r0, r5, 0x10 /* 802A4240 0029FEA0 7C 00 38 38 */ and r0, r0, r7 /* 802A4244 0029FEA4 80 C5 00 04 */ lwz r6, 4(r5) /* 802A4248 0029FEA8 7C 00 F0 50 */ subf r0, r0, r30 /* 802A424C 0029FEAC 7C E8 00 38 */ and r8, r7, r0 /* 802A4250 0029FEB0 7C FD 42 14 */ add r7, r29, r8 /* 802A4254 0029FEB4 38 07 00 10 */ addi r0, r7, 0x10 /* 802A4258 0029FEB8 7C 06 00 40 */ cmplw r6, r0 /* 802A425C 0029FEBC 40 81 00 48 */ ble lbl_802A42A4 /* 802A4260 0029FEC0 7C C5 EA 14 */ add r6, r5, r29 /* 802A4264 0029FEC4 3C 00 BA BE */ lis r0, 0xbabe /* 802A4268 0029FEC8 7D 28 32 14 */ add r9, r8, r6 /* 802A426C 0029FECC 90 09 00 10 */ stw r0, 0x10(r9) /* 802A4270 0029FED0 80 05 00 04 */ lwz r0, 4(r5) /* 802A4274 0029FED4 7C 1D 00 50 */ subf r0, r29, r0 /* 802A4278 0029FED8 7C C8 00 50 */ subf r6, r8, r0 /* 802A427C 0029FEDC 38 06 FF F0 */ addi r0, r6, -16 /* 802A4280 0029FEE0 90 09 00 14 */ stw r0, 0x14(r9) /* 802A4284 0029FEE4 80 C5 00 0C */ lwz r6, 0xc(r5) /* 802A4288 0029FEE8 2C 06 00 00 */ cmpwi r6, 0 /* 802A428C 0029FEEC 90 C9 00 1C */ stw r6, 0x1c(r9) /* 802A4290 0029FEF0 39 29 00 10 */ addi r9, r9, 0x10 /* 802A4294 0029FEF4 41 82 00 08 */ beq lbl_802A429C /* 802A4298 0029FEF8 91 26 00 08 */ stw r9, 8(r6) lbl_802A429C: /* 802A429C 0029FEFC 91 25 00 0C */ stw r9, 0xc(r5) /* 802A42A0 0029FF00 90 E5 00 04 */ stw r7, 4(r5) lbl_802A42A4: /* 802A42A4 0029FF04 3C C0 BA BE */ lis r6, 0xBABE0001@ha /* 802A42A8 0029FF08 38 06 00 01 */ addi r0, r6, 0xBABE0001@l /* 802A42AC 0029FF0C 90 05 00 00 */ stw r0, 0(r5) /* 802A42B0 0029FF10 80 C5 00 08 */ lwz r6, 8(r5) /* 802A42B4 0029FF14 2C 06 00 00 */ cmpwi r6, 0 /* 802A42B8 0029FF18 41 82 00 10 */ beq lbl_802A42C8 /* 802A42BC 0029FF1C 80 05 00 0C */ lwz r0, 0xc(r5) /* 802A42C0 0029FF20 90 06 00 0C */ stw r0, 0xc(r6) /* 802A42C4 0029FF24 48 00 00 0C */ b lbl_802A42D0 lbl_802A42C8: /* 802A42C8 0029FF28 80 05 00 0C */ lwz r0, 0xc(r5) /* 802A42CC 0029FF2C 90 04 00 0C */ stw r0, 0xc(r4) lbl_802A42D0: /* 802A42D0 0029FF30 80 85 00 0C */ lwz r4, 0xc(r5) /* 802A42D4 0029FF34 2C 04 00 00 */ cmpwi r4, 0 /* 802A42D8 0029FF38 41 82 00 0C */ beq lbl_802A42E4 /* 802A42DC 0029FF3C 80 05 00 08 */ lwz r0, 8(r5) /* 802A42E0 0029FF40 90 04 00 08 */ stw r0, 8(r4) lbl_802A42E4: /* 802A42E4 0029FF44 38 00 00 00 */ li r0, 0 /* 802A42E8 0029FF48 7F E5 42 14 */ add r31, r5, r8 /* 802A42EC 0029FF4C 90 05 00 0C */ stw r0, 0xc(r5) /* 802A42F0 0029FF50 2C 08 00 00 */ cmpwi r8, 0 /* 802A42F4 0029FF54 3B FF 00 10 */ addi r31, r31, 0x10 /* 802A42F8 0029FF58 90 05 00 08 */ stw r0, 8(r5) /* 802A42FC 0029FF5C 41 82 00 14 */ beq lbl_802A4310 /* 802A4300 0029FF60 3C 80 BA BE */ lis r4, 0xBABE0002@ha /* 802A4304 0029FF64 38 04 00 02 */ addi r0, r4, 0xBABE0002@l /* 802A4308 0029FF68 90 1F FF F0 */ stw r0, -0x10(r31) /* 802A430C 0029FF6C 90 BF FF F8 */ stw r5, -8(r31) lbl_802A4310: /* 802A4310 0029FF70 4B FC A4 75 */ bl OSRestoreInterrupts /* 802A4314 0029FF74 7F E3 FB 78 */ mr r3, r31 /* 802A4318 0029FF78 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802A431C 0029FF7C 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802A4320 0029FF80 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802A4324 0029FF84 83 81 00 10 */ lwz r28, 0x10(r1) /* 802A4328 0029FF88 80 01 00 24 */ lwz r0, 0x24(r1) /* 802A432C 0029FF8C 7C 08 03 A6 */ mtlr r0 /* 802A4330 0029FF90 38 21 00 20 */ addi r1, r1, 0x20 /* 802A4334 0029FF94 4E 80 00 20 */ blr .global iosAllocAligned iosAllocAligned: /* 802A4338 0029FF98 4B FF FD FC */ b __iosAlloc .global iosFree iosFree: /* 802A433C 0029FF9C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802A4340 0029FFA0 7C 08 02 A6 */ mflr r0 /* 802A4344 0029FFA4 90 01 00 24 */ stw r0, 0x24(r1) /* 802A4348 0029FFA8 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802A434C 0029FFAC 3B E0 FF FC */ li r31, -4 /* 802A4350 0029FFB0 93 C1 00 18 */ stw r30, 0x18(r1) /* 802A4354 0029FFB4 7C 9E 23 78 */ mr r30, r4 /* 802A4358 0029FFB8 93 A1 00 14 */ stw r29, 0x14(r1) /* 802A435C 0029FFBC 7C 7D 1B 78 */ mr r29, r3 /* 802A4360 0029FFC0 4B FC A3 FD */ bl OSDisableInterrupts /* 802A4364 0029FFC4 2C 1E 00 00 */ cmpwi r30, 0 /* 802A4368 0029FFC8 41 82 01 9C */ beq lbl_802A4504 /* 802A436C 0029FFCC 2C 1D 00 00 */ cmpwi r29, 0 /* 802A4370 0029FFD0 41 80 00 28 */ blt lbl_802A4398 /* 802A4374 0029FFD4 2C 1D 00 08 */ cmpwi r29, 8 /* 802A4378 0029FFD8 40 80 00 20 */ bge lbl_802A4398 /* 802A437C 0029FFDC 3C 80 80 53 */ lis r4, lbl_80536BB0@ha /* 802A4380 0029FFE0 57 A0 20 36 */ slwi r0, r29, 4 /* 802A4384 0029FFE4 38 84 6B B0 */ addi r4, r4, lbl_80536BB0@l /* 802A4388 0029FFE8 7C A4 02 14 */ add r5, r4, r0 /* 802A438C 0029FFEC 7C 84 00 2E */ lwzx r4, r4, r0 /* 802A4390 0029FFF0 2C 04 00 00 */ cmpwi r4, 0 /* 802A4394 0029FFF4 40 82 00 0C */ bne lbl_802A43A0 lbl_802A4398: /* 802A4398 0029FFF8 3B E0 FF FC */ li r31, -4 /* 802A439C 0029FFFC 48 00 01 68 */ b lbl_802A4504 lbl_802A43A0: /* 802A43A0 002A0000 38 04 00 10 */ addi r0, r4, 0x10 /* 802A43A4 002A0004 7C 1E 00 40 */ cmplw r30, r0 /* 802A43A8 002A0008 41 80 01 5C */ blt lbl_802A4504 /* 802A43AC 002A000C 80 05 00 08 */ lwz r0, 8(r5) /* 802A43B0 002A0010 7C 04 02 14 */ add r0, r4, r0 /* 802A43B4 002A0014 7C 1E 00 40 */ cmplw r30, r0 /* 802A43B8 002A0018 41 81 01 4C */ bgt lbl_802A4504 /* 802A43BC 002A001C 80 9E FF F0 */ lwz r4, -0x10(r30) /* 802A43C0 002A0020 38 DE FF F0 */ addi r6, r30, -16 /* 802A43C4 002A0024 3C 04 45 42 */ addis r0, r4, 0x4542 /* 802A43C8 002A0028 28 00 00 02 */ cmplwi r0, 2 /* 802A43CC 002A002C 40 82 00 08 */ bne lbl_802A43D4 /* 802A43D0 002A0030 80 C6 00 08 */ lwz r6, 8(r6) lbl_802A43D4: /* 802A43D4 002A0034 80 86 00 00 */ lwz r4, 0(r6) /* 802A43D8 002A0038 3C 04 45 42 */ addis r0, r4, 0x4542 /* 802A43DC 002A003C 28 00 00 01 */ cmplwi r0, 1 /* 802A43E0 002A0040 40 82 01 24 */ bne lbl_802A4504 /* 802A43E4 002A0044 3C 00 BA BE */ lis r0, 0xbabe /* 802A43E8 002A0048 90 06 00 00 */ stw r0, 0(r6) /* 802A43EC 002A004C 80 85 00 0C */ lwz r4, 0xc(r5) /* 802A43F0 002A0050 7C 87 23 78 */ mr r7, r4 /* 802A43F4 002A0054 48 00 00 1C */ b lbl_802A4410 lbl_802A43F8: /* 802A43F8 002A0058 80 07 00 0C */ lwz r0, 0xc(r7) /* 802A43FC 002A005C 2C 00 00 00 */ cmpwi r0, 0 /* 802A4400 002A0060 41 82 00 18 */ beq lbl_802A4418 /* 802A4404 002A0064 7C 00 30 40 */ cmplw r0, r6 /* 802A4408 002A0068 41 81 00 10 */ bgt lbl_802A4418 /* 802A440C 002A006C 7C 07 03 78 */ mr r7, r0 lbl_802A4410: /* 802A4410 002A0070 2C 07 00 00 */ cmpwi r7, 0 /* 802A4414 002A0074 40 82 FF E4 */ bne lbl_802A43F8 lbl_802A4418: /* 802A4418 002A0078 2C 07 00 00 */ cmpwi r7, 0 /* 802A441C 002A007C 41 82 00 30 */ beq lbl_802A444C /* 802A4420 002A0080 7C 06 38 40 */ cmplw r6, r7 /* 802A4424 002A0084 40 81 00 28 */ ble lbl_802A444C /* 802A4428 002A0088 90 E6 00 08 */ stw r7, 8(r6) /* 802A442C 002A008C 80 07 00 0C */ lwz r0, 0xc(r7) /* 802A4430 002A0090 90 06 00 0C */ stw r0, 0xc(r6) /* 802A4434 002A0094 90 C7 00 0C */ stw r6, 0xc(r7) /* 802A4438 002A0098 80 86 00 0C */ lwz r4, 0xc(r6) /* 802A443C 002A009C 2C 04 00 00 */ cmpwi r4, 0 /* 802A4440 002A00A0 41 82 00 2C */ beq lbl_802A446C /* 802A4444 002A00A4 90 C4 00 08 */ stw r6, 8(r4) /* 802A4448 002A00A8 48 00 00 24 */ b lbl_802A446C lbl_802A444C: /* 802A444C 002A00AC 90 86 00 0C */ stw r4, 0xc(r6) /* 802A4450 002A00B0 38 00 00 00 */ li r0, 0 /* 802A4454 002A00B4 90 C5 00 0C */ stw r6, 0xc(r5) /* 802A4458 002A00B8 90 06 00 08 */ stw r0, 8(r6) /* 802A445C 002A00BC 80 86 00 0C */ lwz r4, 0xc(r6) /* 802A4460 002A00C0 2C 04 00 00 */ cmpwi r4, 0 /* 802A4464 002A00C4 41 82 00 08 */ beq lbl_802A446C /* 802A4468 002A00C8 90 C4 00 08 */ stw r6, 8(r4) lbl_802A446C: /* 802A446C 002A00CC 2C 06 00 00 */ cmpwi r6, 0 /* 802A4470 002A00D0 41 82 00 44 */ beq lbl_802A44B4 /* 802A4474 002A00D4 80 06 00 04 */ lwz r0, 4(r6) /* 802A4478 002A00D8 80 A6 00 0C */ lwz r5, 0xc(r6) /* 802A447C 002A00DC 7C 86 02 14 */ add r4, r6, r0 /* 802A4480 002A00E0 38 04 00 10 */ addi r0, r4, 0x10 /* 802A4484 002A00E4 7C 05 00 40 */ cmplw r5, r0 /* 802A4488 002A00E8 40 82 00 2C */ bne lbl_802A44B4 /* 802A448C 002A00EC 80 85 00 0C */ lwz r4, 0xc(r5) /* 802A4490 002A00F0 2C 04 00 00 */ cmpwi r4, 0 /* 802A4494 002A00F4 90 86 00 0C */ stw r4, 0xc(r6) /* 802A4498 002A00F8 41 82 00 08 */ beq lbl_802A44A0 /* 802A449C 002A00FC 90 C4 00 08 */ stw r6, 8(r4) lbl_802A44A0: /* 802A44A0 002A0100 80 86 00 04 */ lwz r4, 4(r6) /* 802A44A4 002A0104 80 05 00 04 */ lwz r0, 4(r5) /* 802A44A8 002A0108 7C 80 22 14 */ add r4, r0, r4 /* 802A44AC 002A010C 38 04 00 10 */ addi r0, r4, 0x10 /* 802A44B0 002A0110 90 06 00 04 */ stw r0, 4(r6) lbl_802A44B4: /* 802A44B4 002A0114 80 A6 00 08 */ lwz r5, 8(r6) /* 802A44B8 002A0118 2C 05 00 00 */ cmpwi r5, 0 /* 802A44BC 002A011C 41 82 00 44 */ beq lbl_802A4500 /* 802A44C0 002A0120 80 05 00 04 */ lwz r0, 4(r5) /* 802A44C4 002A0124 80 C5 00 0C */ lwz r6, 0xc(r5) /* 802A44C8 002A0128 7C 85 02 14 */ add r4, r5, r0 /* 802A44CC 002A012C 38 04 00 10 */ addi r0, r4, 0x10 /* 802A44D0 002A0130 7C 06 00 40 */ cmplw r6, r0 /* 802A44D4 002A0134 40 82 00 2C */ bne lbl_802A4500 /* 802A44D8 002A0138 80 86 00 0C */ lwz r4, 0xc(r6) /* 802A44DC 002A013C 2C 04 00 00 */ cmpwi r4, 0 /* 802A44E0 002A0140 90 85 00 0C */ stw r4, 0xc(r5) /* 802A44E4 002A0144 41 82 00 08 */ beq lbl_802A44EC /* 802A44E8 002A0148 90 A4 00 08 */ stw r5, 8(r4) lbl_802A44EC: /* 802A44EC 002A014C 80 85 00 04 */ lwz r4, 4(r5) /* 802A44F0 002A0150 80 06 00 04 */ lwz r0, 4(r6) /* 802A44F4 002A0154 7C 80 22 14 */ add r4, r0, r4 /* 802A44F8 002A0158 38 04 00 10 */ addi r0, r4, 0x10 /* 802A44FC 002A015C 90 05 00 04 */ stw r0, 4(r5) lbl_802A4500: /* 802A4500 002A0160 3B E0 00 00 */ li r31, 0 lbl_802A4504: /* 802A4504 002A0164 4B FC A2 81 */ bl OSRestoreInterrupts /* 802A4508 002A0168 7F E3 FB 78 */ mr r3, r31 /* 802A450C 002A016C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802A4510 002A0170 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802A4514 002A0174 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802A4518 002A0178 80 01 00 24 */ lwz r0, 0x24(r1) /* 802A451C 002A017C 7C 08 03 A6 */ mtlr r0 /* 802A4520 002A0180 38 21 00 20 */ addi r1, r1, 0x20 /* 802A4524 002A0184 4E 80 00 20 */ blr