.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8025D3B8 func_8025D3B8: /* 8025D3B8 00259018 7D 24 2A 14 */ add r9, r4, r5 /* 8025D3BC 0025901C 39 00 00 01 */ li r8, 1 /* 8025D3C0 00259020 38 E0 00 00 */ li r7, 0 /* 8025D3C4 00259024 3C C0 00 01 */ lis r6, 0x0000D185@ha /* 8025D3C8 00259028 90 83 00 00 */ stw r4, 0(r3) /* 8025D3CC 0025902C 38 C6 D1 85 */ addi r6, r6, 0x0000D185@l /* 8025D3D0 00259030 38 05 FF E0 */ addi r0, r5, -32 /* 8025D3D4 00259034 91 23 00 04 */ stw r9, 4(r3) /* 8025D3D8 00259038 91 03 00 08 */ stw r8, 8(r3) /* 8025D3DC 0025903C 90 E3 00 0C */ stw r7, 0xc(r3) /* 8025D3E0 00259040 90 E4 00 00 */ stw r7, 0(r4) /* 8025D3E4 00259044 90 C4 00 04 */ stw r6, 4(r4) /* 8025D3E8 00259048 90 A4 00 08 */ stw r5, 8(r4) /* 8025D3EC 0025904C 90 04 00 0C */ stw r0, 0xc(r4) /* 8025D3F0 00259050 90 E4 00 10 */ stw r7, 0x10(r4) /* 8025D3F4 00259054 90 E4 00 14 */ stw r7, 0x14(r4) /* 8025D3F8 00259058 B0 E4 00 1A */ sth r7, 0x1a(r4) /* 8025D3FC 0025905C 90 E4 00 1C */ stw r7, 0x1c(r4) /* 8025D400 00259060 4E 80 00 20 */ blr .global func_8025D404 func_8025D404: /* 8025D404 00259064 80 E3 00 08 */ lwz r7, 8(r3) /* 8025D408 00259068 38 04 00 1F */ addi r0, r4, 0x1f /* 8025D40C 0025906C 81 03 00 00 */ lwz r8, 0(r3) /* 8025D410 00259070 38 C0 00 00 */ li r6, 0 /* 8025D414 00259074 54 09 00 34 */ rlwinm r9, r0, 0, 0, 0x1a /* 8025D418 00259078 7C E9 03 A6 */ mtctr r7 /* 8025D41C 0025907C 2C 07 00 00 */ cmpwi r7, 0 /* 8025D420 00259080 40 81 00 48 */ ble lbl_8025D468 lbl_8025D424: /* 8025D424 00259084 80 08 00 10 */ lwz r0, 0x10(r8) /* 8025D428 00259088 2C 00 00 00 */ cmpwi r0, 0 /* 8025D42C 0025908C 40 82 00 34 */ bne lbl_8025D460 /* 8025D430 00259090 80 E8 00 08 */ lwz r7, 8(r8) /* 8025D434 00259094 38 07 FF E0 */ addi r0, r7, -32 /* 8025D438 00259098 7C 00 48 40 */ cmplw r0, r9 /* 8025D43C 0025909C 41 80 00 24 */ blt lbl_8025D460 /* 8025D440 002590A0 2C 06 00 00 */ cmpwi r6, 0 /* 8025D444 002590A4 40 82 00 0C */ bne lbl_8025D450 /* 8025D448 002590A8 7D 06 43 78 */ mr r6, r8 /* 8025D44C 002590AC 48 00 00 14 */ b lbl_8025D460 lbl_8025D450: /* 8025D450 002590B0 80 06 00 08 */ lwz r0, 8(r6) /* 8025D454 002590B4 7C 00 38 40 */ cmplw r0, r7 /* 8025D458 002590B8 40 81 00 08 */ ble lbl_8025D460 /* 8025D45C 002590BC 7D 06 43 78 */ mr r6, r8 lbl_8025D460: /* 8025D460 002590C0 81 08 00 00 */ lwz r8, 0(r8) /* 8025D464 002590C4 42 00 FF C0 */ bdnz lbl_8025D424 lbl_8025D468: /* 8025D468 002590C8 2C 06 00 00 */ cmpwi r6, 0 /* 8025D46C 002590CC 41 82 00 E8 */ beq lbl_8025D554 /* 8025D470 002590D0 81 46 00 08 */ lwz r10, 8(r6) /* 8025D474 002590D4 38 09 00 60 */ addi r0, r9, 0x60 /* 8025D478 002590D8 7C 0A 00 40 */ cmplw r10, r0 /* 8025D47C 002590DC 41 80 00 9C */ blt lbl_8025D518 /* 8025D480 002590E0 3C E0 00 01 */ lis r7, 0x0000D185@ha /* 8025D484 002590E4 39 09 00 20 */ addi r8, r9, 0x20 /* 8025D488 002590E8 39 27 D1 85 */ addi r9, r7, 0x0000D185@l /* 8025D48C 002590EC 38 00 00 01 */ li r0, 1 /* 8025D490 002590F0 91 26 00 04 */ stw r9, 4(r6) /* 8025D494 002590F4 38 E0 00 00 */ li r7, 0 /* 8025D498 002590F8 7D 66 42 14 */ add r11, r6, r8 /* 8025D49C 002590FC 91 06 00 08 */ stw r8, 8(r6) /* 8025D4A0 00259100 90 86 00 0C */ stw r4, 0xc(r6) /* 8025D4A4 00259104 90 06 00 10 */ stw r0, 0x10(r6) /* 8025D4A8 00259108 B0 A6 00 18 */ sth r5, 0x18(r6) /* 8025D4AC 0025910C B0 E6 00 1A */ sth r7, 0x1a(r6) /* 8025D4B0 00259110 90 E6 00 1C */ stw r7, 0x1c(r6) /* 8025D4B4 00259114 90 CB 00 14 */ stw r6, 0x14(r11) /* 8025D4B8 00259118 80 06 00 00 */ lwz r0, 0(r6) /* 8025D4BC 0025911C 7C 06 41 2E */ stwx r0, r6, r8 /* 8025D4C0 00259120 91 66 00 00 */ stw r11, 0(r6) /* 8025D4C4 00259124 91 2B 00 04 */ stw r9, 4(r11) /* 8025D4C8 00259128 80 06 00 08 */ lwz r0, 8(r6) /* 8025D4CC 0025912C 7C 80 50 50 */ subf r4, r0, r10 /* 8025D4D0 00259130 90 8B 00 08 */ stw r4, 8(r11) /* 8025D4D4 00259134 38 04 FF E0 */ addi r0, r4, -32 /* 8025D4D8 00259138 90 0B 00 0C */ stw r0, 0xc(r11) /* 8025D4DC 0025913C 90 EB 00 10 */ stw r7, 0x10(r11) /* 8025D4E0 00259140 B0 EB 00 18 */ sth r7, 0x18(r11) /* 8025D4E4 00259144 B0 EB 00 1A */ sth r7, 0x1a(r11) /* 8025D4E8 00259148 90 EB 00 1C */ stw r7, 0x1c(r11) /* 8025D4EC 0025914C 7C 86 40 2E */ lwzx r4, r6, r8 /* 8025D4F0 00259150 2C 04 00 00 */ cmpwi r4, 0 /* 8025D4F4 00259154 41 82 00 08 */ beq lbl_8025D4FC /* 8025D4F8 00259158 91 64 00 14 */ stw r11, 0x14(r4) lbl_8025D4FC: /* 8025D4FC 0025915C 80 A3 00 08 */ lwz r5, 8(r3) /* 8025D500 00259160 80 83 00 0C */ lwz r4, 0xc(r3) /* 8025D504 00259164 38 A5 00 01 */ addi r5, r5, 1 /* 8025D508 00259168 38 04 00 01 */ addi r0, r4, 1 /* 8025D50C 0025916C 90 A3 00 08 */ stw r5, 8(r3) /* 8025D510 00259170 90 03 00 0C */ stw r0, 0xc(r3) /* 8025D514 00259174 48 00 00 38 */ b lbl_8025D54C lbl_8025D518: /* 8025D518 00259178 3D 00 00 01 */ lis r8, 0x0000D185@ha /* 8025D51C 0025917C 38 E0 00 01 */ li r7, 1 /* 8025D520 00259180 39 08 D1 85 */ addi r8, r8, 0x0000D185@l /* 8025D524 00259184 38 00 00 00 */ li r0, 0 /* 8025D528 00259188 91 06 00 04 */ stw r8, 4(r6) /* 8025D52C 0025918C 90 86 00 0C */ stw r4, 0xc(r6) /* 8025D530 00259190 90 E6 00 10 */ stw r7, 0x10(r6) /* 8025D534 00259194 B0 A6 00 18 */ sth r5, 0x18(r6) /* 8025D538 00259198 B0 06 00 1A */ sth r0, 0x1a(r6) /* 8025D53C 0025919C 90 06 00 1C */ stw r0, 0x1c(r6) /* 8025D540 002591A0 80 83 00 0C */ lwz r4, 0xc(r3) /* 8025D544 002591A4 38 04 00 01 */ addi r0, r4, 1 /* 8025D548 002591A8 90 03 00 0C */ stw r0, 0xc(r3) lbl_8025D54C: /* 8025D54C 002591AC 38 66 00 20 */ addi r3, r6, 0x20 /* 8025D550 002591B0 4E 80 00 20 */ blr lbl_8025D554: /* 8025D554 002591B4 38 60 00 00 */ li r3, 0 /* 8025D558 002591B8 4E 80 00 20 */ blr .global func_8025D55C func_8025D55C: /* 8025D55C 002591BC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025D560 002591C0 7C 08 02 A6 */ mflr r0 /* 8025D564 002591C4 2C 04 00 00 */ cmpwi r4, 0 /* 8025D568 002591C8 90 01 00 14 */ stw r0, 0x14(r1) /* 8025D56C 002591CC 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025D570 002591D0 7C 9F 23 78 */ mr r31, r4 /* 8025D574 002591D4 40 82 00 0C */ bne lbl_8025D580 /* 8025D578 002591D8 38 60 00 00 */ li r3, 0 /* 8025D57C 002591DC 48 00 00 24 */ b lbl_8025D5A0 lbl_8025D580: /* 8025D580 002591E0 54 80 06 FF */ clrlwi. r0, r4, 0x1b /* 8025D584 002591E4 41 82 00 18 */ beq lbl_8025D59C /* 8025D588 002591E8 3C 60 80 42 */ lis r3, lbl_80425430@ha /* 8025D58C 002591EC 38 A0 00 20 */ li r5, 0x20 /* 8025D590 002591F0 38 63 54 30 */ addi r3, r3, lbl_80425430@l /* 8025D594 002591F4 4C C6 31 82 */ crclr 6 /* 8025D598 002591F8 4B DA A5 2D */ bl OSReport lbl_8025D59C: /* 8025D59C 002591FC 80 7F FF EC */ lwz r3, -0x14(r31) lbl_8025D5A0: /* 8025D5A0 00259200 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025D5A4 00259204 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025D5A8 00259208 7C 08 03 A6 */ mtlr r0 /* 8025D5AC 0025920C 38 21 00 10 */ addi r1, r1, 0x10 /* 8025D5B0 00259210 4E 80 00 20 */ blr .global func_8025D5B4 func_8025D5B4: /* 8025D5B4 00259214 94 21 FF F0 */ stwu r1, -0x10(r1) /* 8025D5B8 00259218 7C 08 02 A6 */ mflr r0 /* 8025D5BC 0025921C 2C 04 00 00 */ cmpwi r4, 0 /* 8025D5C0 00259220 90 01 00 14 */ stw r0, 0x14(r1) /* 8025D5C4 00259224 93 E1 00 0C */ stw r31, 0xc(r1) /* 8025D5C8 00259228 7C 9F 23 78 */ mr r31, r4 /* 8025D5CC 0025922C 40 82 00 0C */ bne lbl_8025D5D8 /* 8025D5D0 00259230 38 60 00 00 */ li r3, 0 /* 8025D5D4 00259234 48 00 00 24 */ b lbl_8025D5F8 lbl_8025D5D8: /* 8025D5D8 00259238 54 80 06 FF */ clrlwi. r0, r4, 0x1b /* 8025D5DC 0025923C 41 82 00 18 */ beq lbl_8025D5F4 /* 8025D5E0 00259240 3C 60 80 42 */ lis r3, lbl_80425464@ha /* 8025D5E4 00259244 38 A0 00 20 */ li r5, 0x20 /* 8025D5E8 00259248 38 63 54 64 */ addi r3, r3, lbl_80425464@l /* 8025D5EC 0025924C 4C C6 31 82 */ crclr 6 /* 8025D5F0 00259250 4B DA A4 D5 */ bl OSReport lbl_8025D5F4: /* 8025D5F4 00259254 A0 7F FF F8 */ lhz r3, -8(r31) lbl_8025D5F8: /* 8025D5F8 00259258 80 01 00 14 */ lwz r0, 0x14(r1) /* 8025D5FC 0025925C 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8025D600 00259260 7C 08 03 A6 */ mtlr r0 /* 8025D604 00259264 38 21 00 10 */ addi r1, r1, 0x10 /* 8025D608 00259268 4E 80 00 20 */ blr .global func_8025D60C func_8025D60C: /* 8025D60C 0025926C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 8025D610 00259270 7C 08 02 A6 */ mflr r0 /* 8025D614 00259274 2C 04 00 00 */ cmpwi r4, 0 /* 8025D618 00259278 90 01 00 24 */ stw r0, 0x24(r1) /* 8025D61C 0025927C 93 E1 00 1C */ stw r31, 0x1c(r1) /* 8025D620 00259280 3F E0 80 42 */ lis r31, lbl_80425430@ha /* 8025D624 00259284 3B FF 54 30 */ addi r31, r31, lbl_80425430@l /* 8025D628 00259288 93 C1 00 18 */ stw r30, 0x18(r1) /* 8025D62C 0025928C 7C 7E 1B 78 */ mr r30, r3 /* 8025D630 00259290 93 A1 00 14 */ stw r29, 0x14(r1) /* 8025D634 00259294 7C 9D 23 78 */ mr r29, r4 /* 8025D638 00259298 41 82 01 58 */ beq lbl_8025D790 /* 8025D63C 0025929C 54 80 06 FF */ clrlwi. r0, r4, 0x1b /* 8025D640 002592A0 41 82 00 14 */ beq lbl_8025D654 /* 8025D644 002592A4 38 7F 00 64 */ addi r3, r31, 0x64 /* 8025D648 002592A8 38 A0 00 20 */ li r5, 0x20 /* 8025D64C 002592AC 4C C6 31 82 */ crclr 6 /* 8025D650 002592B0 4B DA A4 75 */ bl OSReport lbl_8025D654: /* 8025D654 002592B4 80 1E 00 0C */ lwz r0, 0xc(r30) /* 8025D658 002592B8 2C 00 00 00 */ cmpwi r0, 0 /* 8025D65C 002592BC 40 82 00 10 */ bne lbl_8025D66C /* 8025D660 002592C0 38 7F 00 94 */ addi r3, r31, 0x94 /* 8025D664 002592C4 4C C6 31 82 */ crclr 6 /* 8025D668 002592C8 4B DA A4 5D */ bl OSReport lbl_8025D66C: /* 8025D66C 002592CC 3B BD FF E0 */ addi r29, r29, -32 /* 8025D670 002592D0 80 1D 00 10 */ lwz r0, 0x10(r29) /* 8025D674 002592D4 2C 00 00 00 */ cmpwi r0, 0 /* 8025D678 002592D8 40 82 00 10 */ bne lbl_8025D688 /* 8025D67C 002592DC 38 7F 00 C4 */ addi r3, r31, 0xc4 /* 8025D680 002592E0 4C C6 31 82 */ crclr 6 /* 8025D684 002592E4 4B DA A4 41 */ bl OSReport lbl_8025D688: /* 8025D688 002592E8 38 80 00 00 */ li r4, 0 /* 8025D68C 002592EC 90 9D 00 10 */ stw r4, 0x10(r29) /* 8025D690 002592F0 80 7E 00 0C */ lwz r3, 0xc(r30) /* 8025D694 002592F4 38 03 FF FF */ addi r0, r3, -1 /* 8025D698 002592F8 90 1E 00 0C */ stw r0, 0xc(r30) /* 8025D69C 002592FC 80 BD 00 00 */ lwz r5, 0(r29) /* 8025D6A0 00259300 2C 05 00 00 */ cmpwi r5, 0 /* 8025D6A4 00259304 41 82 00 6C */ beq lbl_8025D710 /* 8025D6A8 00259308 80 05 00 10 */ lwz r0, 0x10(r5) /* 8025D6AC 0025930C 2C 00 00 00 */ cmpwi r0, 0 /* 8025D6B0 00259310 40 82 00 60 */ bne lbl_8025D710 /* 8025D6B4 00259314 80 05 00 08 */ lwz r0, 8(r5) /* 8025D6B8 00259318 80 7D 00 08 */ lwz r3, 8(r29) /* 8025D6BC 0025931C 90 9D 00 10 */ stw r4, 0x10(r29) /* 8025D6C0 00259320 7C 63 02 14 */ add r3, r3, r0 /* 8025D6C4 00259324 38 03 FF E0 */ addi r0, r3, -32 /* 8025D6C8 00259328 90 7D 00 08 */ stw r3, 8(r29) /* 8025D6CC 0025932C 90 1D 00 0C */ stw r0, 0xc(r29) /* 8025D6D0 00259330 B0 9D 00 1A */ sth r4, 0x1a(r29) /* 8025D6D4 00259334 90 9D 00 1C */ stw r4, 0x1c(r29) /* 8025D6D8 00259338 80 65 00 00 */ lwz r3, 0(r5) /* 8025D6DC 0025933C 2C 03 00 00 */ cmpwi r3, 0 /* 8025D6E0 00259340 90 7D 00 00 */ stw r3, 0(r29) /* 8025D6E4 00259344 41 82 00 08 */ beq lbl_8025D6EC /* 8025D6E8 00259348 93 A3 00 14 */ stw r29, 0x14(r3) lbl_8025D6EC: /* 8025D6EC 0025934C 80 1E 00 08 */ lwz r0, 8(r30) /* 8025D6F0 00259350 2C 00 00 00 */ cmpwi r0, 0 /* 8025D6F4 00259354 40 82 00 10 */ bne lbl_8025D704 /* 8025D6F8 00259358 38 7F 00 F0 */ addi r3, r31, 0xf0 /* 8025D6FC 0025935C 4C C6 31 82 */ crclr 6 /* 8025D700 00259360 4B DA A3 C5 */ bl OSReport lbl_8025D704: /* 8025D704 00259364 80 7E 00 08 */ lwz r3, 8(r30) /* 8025D708 00259368 38 03 FF FF */ addi r0, r3, -1 /* 8025D70C 0025936C 90 1E 00 08 */ stw r0, 8(r30) lbl_8025D710: /* 8025D710 00259370 80 BD 00 14 */ lwz r5, 0x14(r29) /* 8025D714 00259374 2C 05 00 00 */ cmpwi r5, 0 /* 8025D718 00259378 41 82 00 78 */ beq lbl_8025D790 /* 8025D71C 0025937C 80 05 00 10 */ lwz r0, 0x10(r5) /* 8025D720 00259380 2C 00 00 00 */ cmpwi r0, 0 /* 8025D724 00259384 40 82 00 6C */ bne lbl_8025D790 /* 8025D728 00259388 80 65 00 00 */ lwz r3, 0(r5) /* 8025D72C 0025938C 38 00 00 00 */ li r0, 0 /* 8025D730 00259390 80 85 00 08 */ lwz r4, 8(r5) /* 8025D734 00259394 80 63 00 08 */ lwz r3, 8(r3) /* 8025D738 00259398 7C 64 1A 14 */ add r3, r4, r3 /* 8025D73C 0025939C 90 65 00 08 */ stw r3, 8(r5) /* 8025D740 002593A0 38 63 FF E0 */ addi r3, r3, -32 /* 8025D744 002593A4 90 65 00 0C */ stw r3, 0xc(r5) /* 8025D748 002593A8 90 05 00 10 */ stw r0, 0x10(r5) /* 8025D74C 002593AC B0 05 00 1A */ sth r0, 0x1a(r5) /* 8025D750 002593B0 90 05 00 1C */ stw r0, 0x1c(r5) /* 8025D754 002593B4 80 65 00 00 */ lwz r3, 0(r5) /* 8025D758 002593B8 80 63 00 00 */ lwz r3, 0(r3) /* 8025D75C 002593BC 2C 03 00 00 */ cmpwi r3, 0 /* 8025D760 002593C0 90 65 00 00 */ stw r3, 0(r5) /* 8025D764 002593C4 41 82 00 08 */ beq lbl_8025D76C /* 8025D768 002593C8 90 A3 00 14 */ stw r5, 0x14(r3) lbl_8025D76C: /* 8025D76C 002593CC 80 1E 00 08 */ lwz r0, 8(r30) /* 8025D770 002593D0 2C 00 00 00 */ cmpwi r0, 0 /* 8025D774 002593D4 40 82 00 10 */ bne lbl_8025D784 /* 8025D778 002593D8 38 7F 00 F0 */ addi r3, r31, 0xf0 /* 8025D77C 002593DC 4C C6 31 82 */ crclr 6 /* 8025D780 002593E0 4B DA A3 45 */ bl OSReport lbl_8025D784: /* 8025D784 002593E4 80 7E 00 08 */ lwz r3, 8(r30) /* 8025D788 002593E8 38 03 FF FF */ addi r0, r3, -1 /* 8025D78C 002593EC 90 1E 00 08 */ stw r0, 8(r30) lbl_8025D790: /* 8025D790 002593F0 80 01 00 24 */ lwz r0, 0x24(r1) /* 8025D794 002593F4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 8025D798 002593F8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8025D79C 002593FC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8025D7A0 00259400 7C 08 03 A6 */ mtlr r0 /* 8025D7A4 00259404 38 21 00 20 */ addi r1, r1, 0x20 /* 8025D7A8 00259408 4E 80 00 20 */ blr .global func_8025D7AC func_8025D7AC: /* 8025D7AC 0025940C 38 A0 00 01 */ li r5, 1 /* 8025D7B0 00259410 38 6D A6 B8 */ addi r3, r13, lbl_8063F978-_SDA_BASE_ /* 8025D7B4 00259414 38 80 00 04 */ li r4, 4 /* 8025D7B8 00259418 38 00 00 00 */ li r0, 0 /* 8025D7BC 0025941C 98 AD A6 B8 */ stb r5, lbl_8063F978-_SDA_BASE_(r13) /* 8025D7C0 00259420 B0 83 00 02 */ sth r4, 2(r3) /* 8025D7C4 00259424 98 03 00 04 */ stb r0, 4(r3) /* 8025D7C8 00259428 4E 80 00 20 */ blr