.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global OSGetTime OSGetTime: /* 802727B8 0026E418 7C 6D 42 E6 */ mftbu r3 /* 802727BC 0026E41C 7C 8C 42 E6 */ mftb r4, 0x10c /* 802727C0 0026E420 7C AD 42 E6 */ mftbu r5 /* 802727C4 0026E424 7C 03 28 00 */ cmpw r3, r5 /* 802727C8 0026E428 40 82 FF F0 */ bne OSGetTime /* 802727CC 0026E42C 4E 80 00 20 */ blr .global OSGetTick OSGetTick: /* 802727D0 0026E430 7C 6C 42 E6 */ mftb r3, 0x10c /* 802727D4 0026E434 4E 80 00 20 */ blr .global __OSGetSystemTime __OSGetSystemTime: /* 802727D8 0026E438 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802727DC 0026E43C 7C 08 02 A6 */ mflr r0 /* 802727E0 0026E440 90 01 00 24 */ stw r0, 0x24(r1) /* 802727E4 0026E444 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802727E8 0026E448 93 C1 00 18 */ stw r30, 0x18(r1) /* 802727EC 0026E44C 93 A1 00 14 */ stw r29, 0x14(r1) /* 802727F0 0026E450 4B FF BF 6D */ bl OSDisableInterrupts /* 802727F4 0026E454 7C 7F 1B 78 */ mr r31, r3 /* 802727F8 0026E458 4B FF FF C1 */ bl OSGetTime /* 802727FC 0026E45C 3C C0 80 00 */ lis r6, 0x800030DC@ha /* 80272800 0026E460 80 A6 30 DC */ lwz r5, 0x800030DC@l(r6) /* 80272804 0026E464 80 06 30 D8 */ lwz r0, 0x30d8(r6) /* 80272808 0026E468 7F A5 20 14 */ addc r29, r5, r4 /* 8027280C 0026E46C 7F C0 19 14 */ adde r30, r0, r3 /* 80272810 0026E470 7F E3 FB 78 */ mr r3, r31 /* 80272814 0026E474 4B FF BF 71 */ bl OSRestoreInterrupts /* 80272818 0026E478 7F A4 EB 78 */ mr r4, r29 /* 8027281C 0026E47C 7F C3 F3 78 */ mr r3, r30 /* 80272820 0026E480 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80272824 0026E484 83 C1 00 18 */ lwz r30, 0x18(r1) /* 80272828 0026E488 83 A1 00 14 */ lwz r29, 0x14(r1) /* 8027282C 0026E48C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80272830 0026E490 7C 08 03 A6 */ mtlr r0 /* 80272834 0026E494 38 21 00 20 */ addi r1, r1, 0x20 /* 80272838 0026E498 4E 80 00 20 */ blr .global __OSTimeToSystemTime __OSTimeToSystemTime: /* 8027283C 0026E49C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80272840 0026E4A0 7C 08 02 A6 */ mflr r0 /* 80272844 0026E4A4 90 01 00 14 */ stw r0, 0x14(r1) /* 80272848 0026E4A8 93 E1 00 0C */ stw r31, 0xc(r1) /* 8027284C 0026E4AC 7C 7F 1B 78 */ mr r31, r3 /* 80272850 0026E4B0 93 C1 00 08 */ stw r30, 8(r1) /* 80272854 0026E4B4 7C 9E 23 78 */ mr r30, r4 /* 80272858 0026E4B8 4B FF BF 05 */ bl OSDisableInterrupts /* 8027285C 0026E4BC 3C A0 80 00 */ lis r5, 0x800030DC@ha /* 80272860 0026E4C0 80 85 30 DC */ lwz r4, 0x800030DC@l(r5) /* 80272864 0026E4C4 80 05 30 D8 */ lwz r0, 0x30d8(r5) /* 80272868 0026E4C8 7F C4 F0 14 */ addc r30, r4, r30 /* 8027286C 0026E4CC 7F E0 F9 14 */ adde r31, r0, r31 /* 80272870 0026E4D0 4B FF BF 15 */ bl OSRestoreInterrupts /* 80272874 0026E4D4 7F E3 FB 78 */ mr r3, r31 /* 80272878 0026E4D8 7F C4 F3 78 */ mr r4, r30 /* 8027287C 0026E4DC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80272880 0026E4E0 83 C1 00 08 */ lwz r30, 8(r1) /* 80272884 0026E4E4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80272888 0026E4E8 7C 08 03 A6 */ mtlr r0 /* 8027288C 0026E4EC 38 21 00 10 */ addi r1, r1, 0x10 /* 80272890 0026E4F0 4E 80 00 20 */ blr .global GetDates GetDates: /* 80272894 0026E4F4 3C E0 92 49 */ lis r7, 0x92492493@ha /* 80272898 0026E4F8 3C C0 B3 8D */ lis r6, 0xB38CF9B1@ha /* 8027289C 0026E4FC 39 03 00 06 */ addi r8, r3, 6 /* 802728A0 0026E500 3C A0 51 EC */ lis r5, 0x51EB851F@ha /* 802728A4 0026E504 38 06 F9 B1 */ addi r0, r6, 0xB38CF9B1@l /* 802728A8 0026E508 38 E7 24 93 */ addi r7, r7, 0x92492493@l /* 802728AC 0026E50C 7C C7 40 96 */ mulhw r6, r7, r8 /* 802728B0 0026E510 39 45 85 1F */ addi r10, r5, 0x51EB851F@l /* 802728B4 0026E514 7C 00 18 96 */ mulhw r0, r0, r3 /* 802728B8 0026E518 7C A6 42 14 */ add r5, r6, r8 /* 802728BC 0026E51C 7C A5 16 70 */ srawi r5, r5, 2 /* 802728C0 0026E520 54 A6 0F FE */ srwi r6, r5, 0x1f /* 802728C4 0026E524 7C A5 32 14 */ add r5, r5, r6 /* 802728C8 0026E528 7C 00 1A 14 */ add r0, r0, r3 /* 802728CC 0026E52C 1C C5 00 07 */ mulli r6, r5, 7 /* 802728D0 0026E530 7C 00 46 70 */ srawi r0, r0, 8 /* 802728D4 0026E534 54 05 0F FE */ srwi r5, r0, 0x1f /* 802728D8 0026E538 7C A0 2A 14 */ add r5, r0, r5 /* 802728DC 0026E53C 7C 06 40 50 */ subf r0, r6, r8 /* 802728E0 0026E540 1D 65 01 6D */ mulli r11, r5, 0x16d /* 802728E4 0026E544 90 04 00 18 */ stw r0, 0x18(r4) /* 802728E8 0026E548 48 00 00 0C */ b lbl_802728F4 lbl_802728EC: /* 802728EC 0026E54C 39 6B FE 93 */ addi r11, r11, -365 /* 802728F0 0026E550 38 A5 FF FF */ addi r5, r5, -1 lbl_802728F4: /* 802728F4 0026E554 2C 05 00 01 */ cmpwi r5, 1 /* 802728F8 0026E558 41 80 00 3C */ blt lbl_80272934 /* 802728FC 0026E55C 38 C5 FF FF */ addi r6, r5, -1 /* 80272900 0026E560 38 05 00 03 */ addi r0, r5, 3 /* 80272904 0026E564 7C CA 30 96 */ mulhw r6, r10, r6 /* 80272908 0026E568 7C C8 3E 70 */ srawi r8, r6, 7 /* 8027290C 0026E56C 7C C6 2E 70 */ srawi r6, r6, 5 /* 80272910 0026E570 54 C7 0F FE */ srwi r7, r6, 0x1f /* 80272914 0026E574 7C 00 16 70 */ srawi r0, r0, 2 /* 80272918 0026E578 55 09 0F FE */ srwi r9, r8, 0x1f /* 8027291C 0026E57C 7C C6 3A 14 */ add r6, r6, r7 /* 80272920 0026E580 7C 00 01 94 */ addze r0, r0 /* 80272924 0026E584 7C E8 4A 14 */ add r7, r8, r9 /* 80272928 0026E588 7C 06 00 50 */ subf r0, r6, r0 /* 8027292C 0026E58C 7C 07 02 14 */ add r0, r7, r0 /* 80272930 0026E590 48 00 00 08 */ b lbl_80272938 lbl_80272934: /* 80272934 0026E594 38 00 00 00 */ li r0, 0 lbl_80272938: /* 80272938 0026E598 7D 0B 02 14 */ add r8, r11, r0 /* 8027293C 0026E59C 7C 03 40 00 */ cmpw r3, r8 /* 80272940 0026E5A0 41 80 FF AC */ blt lbl_802728EC /* 80272944 0026E5A4 54 A0 F0 02 */ slwi r0, r5, 0x1e /* 80272948 0026E5A8 54 A7 0F FE */ srwi r7, r5, 0x1f /* 8027294C 0026E5AC 7C C7 00 50 */ subf r6, r7, r0 /* 80272950 0026E5B0 90 A4 00 14 */ stw r5, 0x14(r4) /* 80272954 0026E5B4 7C 08 18 50 */ subf r0, r8, r3 /* 80272958 0026E5B8 54 C3 10 3E */ rotlwi r3, r6, 2 /* 8027295C 0026E5BC 90 04 00 1C */ stw r0, 0x1c(r4) /* 80272960 0026E5C0 7C 63 3A 15 */ add. r3, r3, r7 /* 80272964 0026E5C4 38 E0 00 00 */ li r7, 0 /* 80272968 0026E5C8 40 82 00 28 */ bne lbl_80272990 /* 8027296C 0026E5CC 3C 60 51 EC */ lis r3, 0x51EB851F@ha /* 80272970 0026E5D0 38 63 85 1F */ addi r3, r3, 0x51EB851F@l /* 80272974 0026E5D4 7C 63 28 96 */ mulhw r3, r3, r5 /* 80272978 0026E5D8 7C 63 2E 70 */ srawi r3, r3, 5 /* 8027297C 0026E5DC 54 66 0F FE */ srwi r6, r3, 0x1f /* 80272980 0026E5E0 7C 63 32 14 */ add r3, r3, r6 /* 80272984 0026E5E4 1C 63 00 64 */ mulli r3, r3, 0x64 /* 80272988 0026E5E8 7C 63 28 51 */ subf. r3, r3, r5 /* 8027298C 0026E5EC 40 82 00 28 */ bne lbl_802729B4 lbl_80272990: /* 80272990 0026E5F0 3C 60 51 EC */ lis r3, 0x51EB851F@ha /* 80272994 0026E5F4 38 63 85 1F */ addi r3, r3, 0x51EB851F@l /* 80272998 0026E5F8 7C 63 28 96 */ mulhw r3, r3, r5 /* 8027299C 0026E5FC 7C 63 3E 70 */ srawi r3, r3, 7 /* 802729A0 0026E600 54 66 0F FE */ srwi r6, r3, 0x1f /* 802729A4 0026E604 7C 63 32 14 */ add r3, r3, r6 /* 802729A8 0026E608 1C 63 01 90 */ mulli r3, r3, 0x190 /* 802729AC 0026E60C 7C 63 28 51 */ subf. r3, r3, r5 /* 802729B0 0026E610 40 82 00 08 */ bne lbl_802729B8 lbl_802729B4: /* 802729B4 0026E614 38 E0 00 01 */ li r7, 1 lbl_802729B8: /* 802729B8 0026E618 2C 07 00 00 */ cmpwi r7, 0 /* 802729BC 0026E61C 3C C0 80 42 */ lis r6, lbl_80427DC8@ha /* 802729C0 0026E620 38 C6 7D C8 */ addi r6, r6, lbl_80427DC8@l /* 802729C4 0026E624 41 82 00 0C */ beq lbl_802729D0 /* 802729C8 0026E628 3C C0 80 42 */ lis r6, lbl_80427DF8@ha /* 802729CC 0026E62C 38 C6 7D F8 */ addi r6, r6, lbl_80427DF8@l lbl_802729D0: /* 802729D0 0026E630 38 E0 00 0C */ li r7, 0xc /* 802729D4 0026E634 38 60 00 30 */ li r3, 0x30 lbl_802729D8: /* 802729D8 0026E638 38 63 FF FC */ addi r3, r3, -4 /* 802729DC 0026E63C 38 E7 FF FF */ addi r7, r7, -1 /* 802729E0 0026E640 7C A6 18 2E */ lwzx r5, r6, r3 /* 802729E4 0026E644 7C 00 28 00 */ cmpw r0, r5 /* 802729E8 0026E648 41 80 FF F0 */ blt lbl_802729D8 /* 802729EC 0026E64C 90 E4 00 10 */ stw r7, 0x10(r4) /* 802729F0 0026E650 7C 66 18 2E */ lwzx r3, r6, r3 /* 802729F4 0026E654 7C 63 00 50 */ subf r3, r3, r0 /* 802729F8 0026E658 38 03 00 01 */ addi r0, r3, 1 /* 802729FC 0026E65C 90 04 00 0C */ stw r0, 0xc(r4) /* 80272A00 0026E660 4E 80 00 20 */ blr .global OSTicksToCalendarTime OSTicksToCalendarTime: /* 80272A04 0026E664 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80272A08 0026E668 7C 08 02 A6 */ mflr r0 /* 80272A0C 0026E66C 90 01 00 24 */ stw r0, 0x24(r1) /* 80272A10 0026E670 39 61 00 20 */ addi r11, r1, 0x20 /* 80272A14 0026E674 4B F5 47 11 */ bl _savegpr_26 /* 80272A18 0026E678 3C C0 80 00 */ lis r6, 0x800000F8@ha /* 80272A1C 0026E67C 7C BD 2B 78 */ mr r29, r5 /* 80272A20 0026E680 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6) /* 80272A24 0026E684 7C 7C 1B 78 */ mr r28, r3 /* 80272A28 0026E688 7C 9B 23 78 */ mr r27, r4 /* 80272A2C 0026E68C 38 A0 00 00 */ li r5, 0 /* 80272A30 0026E690 54 1A F0 BE */ srwi r26, r0, 2 /* 80272A34 0026E694 7F 46 D3 78 */ mr r6, r26 /* 80272A38 0026E698 4B F5 4A 5D */ bl __mod2i /* 80272A3C 0026E69C 38 E0 00 00 */ li r7, 0 /* 80272A40 0026E6A0 6C 60 80 00 */ xoris r0, r3, 0x8000 /* 80272A44 0026E6A4 6C E6 80 00 */ xoris r6, r7, 0x8000 /* 80272A48 0026E6A8 7C 9E 23 78 */ mr r30, r4 /* 80272A4C 0026E6AC 7C A7 20 10 */ subfc r5, r7, r4 /* 80272A50 0026E6B0 7C 7F 1B 78 */ mr r31, r3 /* 80272A54 0026E6B4 7C C6 01 10 */ subfe r6, r6, r0 /* 80272A58 0026E6B8 7C C0 01 10 */ subfe r6, r0, r0 /* 80272A5C 0026E6BC 7C C6 00 D1 */ neg. r6, r6 /* 80272A60 0026E6C0 41 82 00 0C */ beq lbl_80272A6C /* 80272A64 0026E6C4 7F C4 D0 14 */ addc r30, r4, r26 /* 80272A68 0026E6C8 7F E3 39 14 */ adde r31, r3, r7 lbl_80272A6C: /* 80272A6C 0026E6CC 3C 80 43 1C */ lis r4, 0x431BDE83@ha /* 80272A70 0026E6D0 57 E3 18 38 */ slwi r3, r31, 3 /* 80272A74 0026E6D4 38 04 DE 83 */ addi r0, r4, 0x431BDE83@l /* 80272A78 0026E6D8 38 A0 00 00 */ li r5, 0 /* 80272A7C 0026E6DC 7C 00 D0 16 */ mulhwu r0, r0, r26 /* 80272A80 0026E6E0 57 C4 18 38 */ slwi r4, r30, 3 /* 80272A84 0026E6E4 53 C3 1F 7E */ rlwimi r3, r30, 3, 0x1d, 0x1f /* 80272A88 0026E6E8 54 06 8B FE */ srwi r6, r0, 0xf /* 80272A8C 0026E6EC 4B F5 47 ED */ bl __div2i /* 80272A90 0026E6F0 38 C0 03 E8 */ li r6, 0x3e8 /* 80272A94 0026E6F4 38 A0 00 00 */ li r5, 0 /* 80272A98 0026E6F8 4B F5 49 FD */ bl __mod2i /* 80272A9C 0026E6FC 90 9D 00 24 */ stw r4, 0x24(r29) /* 80272AA0 0026E700 3F 40 80 00 */ lis r26, 0x800000F8@ha /* 80272AA4 0026E704 3C 80 10 62 */ lis r4, 0x10624DD3@ha /* 80272AA8 0026E708 7F E3 FB 78 */ mr r3, r31 /* 80272AAC 0026E70C 80 1A 00 F8 */ lwz r0, 0x800000F8@l(r26) /* 80272AB0 0026E710 38 C4 4D D3 */ addi r6, r4, 0x10624DD3@l /* 80272AB4 0026E714 7F C4 F3 78 */ mr r4, r30 /* 80272AB8 0026E718 38 A0 00 00 */ li r5, 0 /* 80272ABC 0026E71C 54 00 F0 BE */ srwi r0, r0, 2 /* 80272AC0 0026E720 7C 06 00 16 */ mulhwu r0, r6, r0 /* 80272AC4 0026E724 54 06 D1 BE */ srwi r6, r0, 6 /* 80272AC8 0026E728 4B F5 47 B1 */ bl __div2i /* 80272ACC 0026E72C 38 C0 03 E8 */ li r6, 0x3e8 /* 80272AD0 0026E730 38 A0 00 00 */ li r5, 0 /* 80272AD4 0026E734 4B F5 49 C1 */ bl __mod2i /* 80272AD8 0026E738 90 9D 00 20 */ stw r4, 0x20(r29) /* 80272ADC 0026E73C 7C 9E D8 10 */ subfc r4, r30, r27 /* 80272AE0 0026E740 7C 7F E1 10 */ subfe r3, r31, r28 /* 80272AE4 0026E744 38 A0 00 00 */ li r5, 0 /* 80272AE8 0026E748 80 1A 00 F8 */ lwz r0, 0xf8(r26) /* 80272AEC 0026E74C 54 06 F0 BE */ srwi r6, r0, 2 /* 80272AF0 0026E750 4B F5 47 89 */ bl __div2i /* 80272AF4 0026E754 3F 60 00 01 */ lis r27, 0x00015180@ha /* 80272AF8 0026E758 7C 9C 23 78 */ mr r28, r4 /* 80272AFC 0026E75C 7C 7A 1B 78 */ mr r26, r3 /* 80272B00 0026E760 38 A0 00 00 */ li r5, 0 /* 80272B04 0026E764 38 DB 51 80 */ addi r6, r27, 0x00015180@l /* 80272B08 0026E768 4B F5 47 71 */ bl __div2i /* 80272B0C 0026E76C 3C 60 00 0B */ lis r3, 0x000B2575@ha /* 80272B10 0026E770 38 DB 51 80 */ addi r6, r27, 0x5180 /* 80272B14 0026E774 38 03 25 75 */ addi r0, r3, 0x000B2575@l /* 80272B18 0026E778 38 A0 00 00 */ li r5, 0 /* 80272B1C 0026E77C 7F 43 D3 78 */ mr r3, r26 /* 80272B20 0026E780 7F 44 00 14 */ addc r26, r4, r0 /* 80272B24 0026E784 7F 84 E3 78 */ mr r4, r28 /* 80272B28 0026E788 4B F5 49 6D */ bl __mod2i /* 80272B2C 0026E78C 2C 04 00 00 */ cmpwi r4, 0 /* 80272B30 0026E790 7C 9F 23 78 */ mr r31, r4 /* 80272B34 0026E794 40 80 00 10 */ bge lbl_80272B44 /* 80272B38 0026E798 3F E4 00 01 */ addis r31, r4, 1 /* 80272B3C 0026E79C 3B 5A FF FF */ addi r26, r26, -1 /* 80272B40 0026E7A0 3B FF 51 80 */ addi r31, r31, 0x5180 lbl_80272B44: /* 80272B44 0026E7A4 7F 43 D3 78 */ mr r3, r26 /* 80272B48 0026E7A8 7F A4 EB 78 */ mr r4, r29 /* 80272B4C 0026E7AC 4B FF FD 49 */ bl GetDates /* 80272B50 0026E7B0 3C 60 88 89 */ lis r3, 0x88888889@ha /* 80272B54 0026E7B4 39 61 00 20 */ addi r11, r1, 0x20 /* 80272B58 0026E7B8 38 A3 88 89 */ addi r5, r3, 0x88888889@l /* 80272B5C 0026E7BC 7C 05 F8 96 */ mulhw r0, r5, r31 /* 80272B60 0026E7C0 7C 60 FA 14 */ add r3, r0, r31 /* 80272B64 0026E7C4 7C 60 2E 70 */ srawi r0, r3, 5 /* 80272B68 0026E7C8 54 04 0F FE */ srwi r4, r0, 0x1f /* 80272B6C 0026E7CC 7D 00 22 14 */ add r8, r0, r4 /* 80272B70 0026E7D0 7C 05 40 96 */ mulhw r0, r5, r8 /* 80272B74 0026E7D4 7C 00 42 14 */ add r0, r0, r8 /* 80272B78 0026E7D8 7C 06 2E 70 */ srawi r6, r0, 5 /* 80272B7C 0026E7DC 7C 04 2E 70 */ srawi r4, r0, 5 /* 80272B80 0026E7E0 7C 60 2E 70 */ srawi r0, r3, 5 /* 80272B84 0026E7E4 54 C7 0F FE */ srwi r7, r6, 0x1f /* 80272B88 0026E7E8 54 85 0F FE */ srwi r5, r4, 0x1f /* 80272B8C 0026E7EC 54 03 0F FE */ srwi r3, r0, 0x1f /* 80272B90 0026E7F0 7C C6 3A 14 */ add r6, r6, r7 /* 80272B94 0026E7F4 7C 00 1A 14 */ add r0, r0, r3 /* 80272B98 0026E7F8 7C 84 2A 14 */ add r4, r4, r5 /* 80272B9C 0026E7FC 1C 64 00 3C */ mulli r3, r4, 0x3c /* 80272BA0 0026E800 90 DD 00 08 */ stw r6, 8(r29) /* 80272BA4 0026E804 1C 00 00 3C */ mulli r0, r0, 0x3c /* 80272BA8 0026E808 7C 63 40 50 */ subf r3, r3, r8 /* 80272BAC 0026E80C 90 7D 00 04 */ stw r3, 4(r29) /* 80272BB0 0026E810 7C 00 F8 50 */ subf r0, r0, r31 /* 80272BB4 0026E814 90 1D 00 00 */ stw r0, 0(r29) /* 80272BB8 0026E818 4B F5 45 B9 */ bl _restgpr_26 /* 80272BBC 0026E81C 80 01 00 24 */ lwz r0, 0x24(r1) /* 80272BC0 0026E820 7C 08 03 A6 */ mtlr r0 /* 80272BC4 0026E824 38 21 00 20 */ addi r1, r1, 0x20 /* 80272BC8 0026E828 4E 80 00 20 */ blr .global OSCalendarTimeToTicks OSCalendarTimeToTicks: /* 80272BCC 0026E82C 94 21 FF C0 */ stwu r1, -0x40(r1) /* 80272BD0 0026E830 7C 08 02 A6 */ mflr r0 /* 80272BD4 0026E834 90 01 00 44 */ stw r0, 0x44(r1) /* 80272BD8 0026E838 39 61 00 40 */ addi r11, r1, 0x40 /* 80272BDC 0026E83C 4B F5 45 31 */ bl _savegpr_20 /* 80272BE0 0026E840 3C 80 2A AB */ lis r4, 0x2AAAAAAB@ha /* 80272BE4 0026E844 80 A3 00 10 */ lwz r5, 0x10(r3) /* 80272BE8 0026E848 38 04 AA AB */ addi r0, r4, 0x2AAAAAAB@l /* 80272BEC 0026E84C 7C 00 28 96 */ mulhw r0, r0, r5 /* 80272BF0 0026E850 7C 00 0E 70 */ srawi r0, r0, 1 /* 80272BF4 0026E854 54 04 0F FE */ srwi r4, r0, 0x1f /* 80272BF8 0026E858 7C C0 22 14 */ add r6, r0, r4 /* 80272BFC 0026E85C 1C 06 00 0C */ mulli r0, r6, 0xc /* 80272C00 0026E860 7C 80 28 51 */ subf. r4, r0, r5 /* 80272C04 0026E864 40 80 00 0C */ bge lbl_80272C10 /* 80272C08 0026E868 38 84 00 0C */ addi r4, r4, 0xc /* 80272C0C 0026E86C 38 C6 FF FF */ addi r6, r6, -1 lbl_80272C10: /* 80272C10 0026E870 80 03 00 14 */ lwz r0, 0x14(r3) /* 80272C14 0026E874 7D 20 32 14 */ add r9, r0, r6 /* 80272C18 0026E878 2C 09 00 01 */ cmpwi r9, 1 /* 80272C1C 0026E87C 40 80 00 0C */ bge lbl_80272C28 /* 80272C20 0026E880 38 E0 00 00 */ li r7, 0 /* 80272C24 0026E884 48 00 00 40 */ b lbl_80272C64 lbl_80272C28: /* 80272C28 0026E888 3C A0 51 EC */ lis r5, 0x51EB851F@ha /* 80272C2C 0026E88C 38 C9 FF FF */ addi r6, r9, -1 /* 80272C30 0026E890 38 A5 85 1F */ addi r5, r5, 0x51EB851F@l /* 80272C34 0026E894 38 09 00 03 */ addi r0, r9, 3 /* 80272C38 0026E898 7C A5 30 96 */ mulhw r5, r5, r6 /* 80272C3C 0026E89C 7C A7 3E 70 */ srawi r7, r5, 7 /* 80272C40 0026E8A0 7C A5 2E 70 */ srawi r5, r5, 5 /* 80272C44 0026E8A4 54 A6 0F FE */ srwi r6, r5, 0x1f /* 80272C48 0026E8A8 7C 00 16 70 */ srawi r0, r0, 2 /* 80272C4C 0026E8AC 54 E8 0F FE */ srwi r8, r7, 0x1f /* 80272C50 0026E8B0 7C A5 32 14 */ add r5, r5, r6 /* 80272C54 0026E8B4 7C 00 01 94 */ addze r0, r0 /* 80272C58 0026E8B8 7C C7 42 14 */ add r6, r7, r8 /* 80272C5C 0026E8BC 7C 05 00 50 */ subf r0, r5, r0 /* 80272C60 0026E8C0 7C E6 02 14 */ add r7, r6, r0 lbl_80272C64: /* 80272C64 0026E8C4 55 20 F0 02 */ slwi r0, r9, 0x1e /* 80272C68 0026E8C8 55 25 0F FE */ srwi r5, r9, 0x1f /* 80272C6C 0026E8CC 7C 05 00 50 */ subf r0, r5, r0 /* 80272C70 0026E8D0 38 C0 00 00 */ li r6, 0 /* 80272C74 0026E8D4 54 00 10 3E */ rotlwi r0, r0, 2 /* 80272C78 0026E8D8 7C 00 2A 15 */ add. r0, r0, r5 /* 80272C7C 0026E8DC 40 82 00 28 */ bne lbl_80272CA4 /* 80272C80 0026E8E0 3C A0 51 EC */ lis r5, 0x51EB851F@ha /* 80272C84 0026E8E4 38 05 85 1F */ addi r0, r5, 0x51EB851F@l /* 80272C88 0026E8E8 7C 00 48 96 */ mulhw r0, r0, r9 /* 80272C8C 0026E8EC 7C 00 2E 70 */ srawi r0, r0, 5 /* 80272C90 0026E8F0 54 05 0F FE */ srwi r5, r0, 0x1f /* 80272C94 0026E8F4 7C 00 2A 14 */ add r0, r0, r5 /* 80272C98 0026E8F8 1C 00 00 64 */ mulli r0, r0, 0x64 /* 80272C9C 0026E8FC 7C 00 48 51 */ subf. r0, r0, r9 /* 80272CA0 0026E900 40 82 00 28 */ bne lbl_80272CC8 lbl_80272CA4: /* 80272CA4 0026E904 3C A0 51 EC */ lis r5, 0x51EB851F@ha /* 80272CA8 0026E908 38 05 85 1F */ addi r0, r5, 0x51EB851F@l /* 80272CAC 0026E90C 7C 00 48 96 */ mulhw r0, r0, r9 /* 80272CB0 0026E910 7C 00 3E 70 */ srawi r0, r0, 7 /* 80272CB4 0026E914 54 05 0F FE */ srwi r5, r0, 0x1f /* 80272CB8 0026E918 7C 00 2A 14 */ add r0, r0, r5 /* 80272CBC 0026E91C 1C 00 01 90 */ mulli r0, r0, 0x190 /* 80272CC0 0026E920 7C 00 48 51 */ subf. r0, r0, r9 /* 80272CC4 0026E924 40 82 00 08 */ bne lbl_80272CCC lbl_80272CC8: /* 80272CC8 0026E928 38 C0 00 01 */ li r6, 1 lbl_80272CCC: /* 80272CCC 0026E92C 2C 06 00 00 */ cmpwi r6, 0 /* 80272CD0 0026E930 3E C0 80 42 */ lis r22, lbl_80427DC8@ha /* 80272CD4 0026E934 3A D6 7D C8 */ addi r22, r22, lbl_80427DC8@l /* 80272CD8 0026E938 41 82 00 0C */ beq lbl_80272CE4 /* 80272CDC 0026E93C 3E C0 80 42 */ lis r22, lbl_80427DF8@ha /* 80272CE0 0026E940 3A D6 7D F8 */ addi r22, r22, lbl_80427DF8@l lbl_80272CE4: /* 80272CE4 0026E944 3C A0 80 00 */ lis r5, 0x800000F8@ha /* 80272CE8 0026E948 80 C3 00 24 */ lwz r6, 0x24(r3) /* 80272CEC 0026E94C 80 05 00 F8 */ lwz r0, 0x800000F8@l(r5) /* 80272CF0 0026E950 54 8C 10 3A */ slwi r12, r4, 2 /* 80272CF4 0026E954 3D 40 43 1C */ lis r10, 0x431BDE83@ha /* 80272CF8 0026E958 38 A0 00 00 */ li r5, 0 /* 80272CFC 0026E95C 54 08 F0 BE */ srwi r8, r0, 2 /* 80272D00 0026E960 7C D4 FE 70 */ srawi r20, r6, 0x1f /* 80272D04 0026E964 38 0A DE 83 */ addi r0, r10, 0x431BDE83@l /* 80272D08 0026E968 82 E3 00 0C */ lwz r23, 0xc(r3) /* 80272D0C 0026E96C 7C 00 40 16 */ mulhwu r0, r0, r8 /* 80272D10 0026E970 7E D6 60 2E */ lwzx r22, r22, r12 /* 80272D14 0026E974 7D 97 3A 14 */ add r12, r23, r7 /* 80272D18 0026E978 83 63 00 04 */ lwz r27, 4(r3) /* 80272D1C 0026E97C 3D 40 00 01 */ lis r10, 0x00015180@ha /* 80272D20 0026E980 83 A3 00 08 */ lwz r29, 8(r3) /* 80272D24 0026E984 54 04 8B FE */ srwi r4, r0, 0xf /* 80272D28 0026E988 3C E0 10 62 */ lis r7, 0x10624DD3@ha /* 80272D2C 0026E98C 7E A4 30 16 */ mulhwu r21, r4, r6 /* 80272D30 0026E990 3D 60 01 E1 */ lis r11, 0x01E13380@ha /* 80272D34 0026E994 38 E7 4D D3 */ addi r7, r7, 0x10624DD3@l /* 80272D38 0026E998 83 43 00 00 */ lwz r26, 0(r3) /* 80272D3C 0026E99C 38 0B 33 80 */ addi r0, r11, 0x01E13380@l /* 80272D40 0026E9A0 81 63 00 20 */ lwz r11, 0x20(r3) /* 80272D44 0026E9A4 7F 05 31 D6 */ mullw r24, r5, r6 /* 80272D48 0026E9A8 3A EA 51 80 */ addi r23, r10, 0x00015180@l /* 80272D4C 0026E9AC 7C 76 62 14 */ add r3, r22, r12 /* 80272D50 0026E9B0 3B 80 00 3C */ li r28, 0x3c /* 80272D54 0026E9B4 3A C3 FF FF */ addi r22, r3, -1 /* 80272D58 0026E9B8 3C 60 4E 1E */ lis r3, 0x4E1E4080@ha /* 80272D5C 0026E9BC 7F 24 31 D6 */ mullw r25, r4, r6 /* 80272D60 0026E9C0 7D 55 C2 14 */ add r10, r21, r24 /* 80272D64 0026E9C4 3B E3 40 80 */ addi r31, r3, 0x4E1E4080@l /* 80272D68 0026E9C8 3B C0 0E 10 */ li r30, 0xe10 /* 80272D6C 0026E9CC 39 80 FF F1 */ li r12, -15 /* 80272D70 0026E9D0 7C C4 A1 D6 */ mullw r6, r4, r20 /* 80272D74 0026E9D4 57 24 E8 3E */ rotlwi r4, r25, 0x1d /* 80272D78 0026E9D8 7D 4A 32 14 */ add r10, r10, r6 /* 80272D7C 0026E9DC 7C C7 40 16 */ mulhwu r6, r7, r8 /* 80272D80 0026E9E0 7D 43 53 78 */ mr r3, r10 /* 80272D84 0026E9E4 51 44 E8 04 */ rlwimi r4, r10, 0x1d, 0, 2 /* 80272D88 0026E9E8 53 23 07 7E */ rlwimi r3, r25, 0, 0x1d, 0x1f /* 80272D8C 0026E9EC 7C 63 1E 70 */ srawi r3, r3, 3 /* 80272D90 0026E9F0 54 CA D1 BE */ srwi r10, r6, 6 /* 80272D94 0026E9F4 7C 84 01 94 */ addze r4, r4 /* 80272D98 0026E9F8 7C 63 01 94 */ addze r3, r3 /* 80272D9C 0026E9FC 7D 38 FE 70 */ srawi r24, r9, 0x1f /* 80272DA0 0026EA00 7C E0 48 16 */ mulhwu r7, r0, r9 /* 80272DA4 0026EA04 7E D9 FE 70 */ srawi r25, r22, 0x1f /* 80272DA8 0026EA08 7E A5 49 D6 */ mullw r21, r5, r9 /* 80272DAC 0026EA0C 7E 87 AA 14 */ add r20, r7, r21 /* 80272DB0 0026EA10 7E A0 C1 D6 */ mullw r21, r0, r24 /* 80272DB4 0026EA14 7C D7 B0 16 */ mulhwu r6, r23, r22 /* 80272DB8 0026EA18 7E 94 AA 14 */ add r20, r20, r21 /* 80272DBC 0026EA1C 7C E5 B1 D6 */ mullw r7, r5, r22 /* 80272DC0 0026EA20 7F 06 3A 14 */ add r24, r6, r7 /* 80272DC4 0026EA24 7C E0 49 D6 */ mullw r7, r0, r9 /* 80272DC8 0026EA28 7C D7 C9 D6 */ mullw r6, r23, r25 /* 80272DCC 0026EA2C 7C 17 B1 D6 */ mullw r0, r23, r22 /* 80272DD0 0026EA30 7F 18 32 14 */ add r24, r24, r6 /* 80272DD4 0026EA34 7F 27 00 14 */ addc r25, r7, r0 /* 80272DD8 0026EA38 7C FB E0 96 */ mulhw r7, r27, r28 /* 80272DDC 0026EA3C 7F 94 C1 14 */ adde r28, r20, r24 /* 80272DE0 0026EA40 7C 1D F0 96 */ mulhw r0, r29, r30 /* 80272DE4 0026EA44 1D 3B 00 3C */ mulli r9, r27, 0x3c /* 80272DE8 0026EA48 1C DD 0E 10 */ mulli r6, r29, 0xe10 /* 80272DEC 0026EA4C 7C C9 30 14 */ addc r6, r9, r6 /* 80272DF0 0026EA50 7C E7 01 14 */ adde r7, r7, r0 /* 80272DF4 0026EA54 7F 40 FE 70 */ srawi r0, r26, 0x1f /* 80272DF8 0026EA58 7C C6 D0 14 */ addc r6, r6, r26 /* 80272DFC 0026EA5C 7C 07 01 14 */ adde r0, r7, r0 /* 80272E00 0026EA60 7C C6 F8 14 */ addc r6, r6, r31 /* 80272E04 0026EA64 7C 00 61 14 */ adde r0, r0, r12 /* 80272E08 0026EA68 7D 99 30 14 */ addc r12, r25, r6 /* 80272E0C 0026EA6C 7C DC 01 14 */ adde r6, r28, r0 /* 80272E10 0026EA70 7D 26 41 D6 */ mullw r9, r6, r8 /* 80272E14 0026EA74 7D 60 FE 70 */ srawi r0, r11, 0x1f /* 80272E18 0026EA78 7C EC 40 16 */ mulhwu r7, r12, r8 /* 80272E1C 0026EA7C 7C CA 58 16 */ mulhwu r6, r10, r11 /* 80272E20 0026EA80 7D 27 4A 14 */ add r9, r7, r9 /* 80272E24 0026EA84 7C E5 59 D6 */ mullw r7, r5, r11 /* 80272E28 0026EA88 7C AC 29 D6 */ mullw r5, r12, r5 /* 80272E2C 0026EA8C 7C C6 3A 14 */ add r6, r6, r7 /* 80272E30 0026EA90 7C 0A 01 D6 */ mullw r0, r10, r0 /* 80272E34 0026EA94 7C E9 2A 14 */ add r7, r9, r5 /* 80272E38 0026EA98 7C C6 02 14 */ add r6, r6, r0 /* 80272E3C 0026EA9C 7C 0A 59 D6 */ mullw r0, r10, r11 /* 80272E40 0026EAA0 39 61 00 40 */ addi r11, r1, 0x40 /* 80272E44 0026EAA4 7C AC 41 D6 */ mullw r5, r12, r8 /* 80272E48 0026EAA8 7C A5 00 14 */ addc r5, r5, r0 /* 80272E4C 0026EAAC 7C 07 31 14 */ adde r0, r7, r6 /* 80272E50 0026EAB0 7C 84 28 14 */ addc r4, r4, r5 /* 80272E54 0026EAB4 7C 63 01 14 */ adde r3, r3, r0 /* 80272E58 0026EAB8 4B F5 43 01 */ bl _restgpr_20 /* 80272E5C 0026EABC 80 01 00 44 */ lwz r0, 0x44(r1) /* 80272E60 0026EAC0 7C 08 03 A6 */ mtlr r0 /* 80272E64 0026EAC4 38 21 00 40 */ addi r1, r1, 0x40 /* 80272E68 0026EAC8 4E 80 00 20 */ blr