.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global NWC24iSetRtcCounter NWC24iSetRtcCounter: /* 803044A0 00300100 94 21 FF D0 */ stwu r1, -0x30(r1) /* 803044A4 00300104 7C 08 02 A6 */ mflr r0 /* 803044A8 00300108 90 01 00 34 */ stw r0, 0x34(r1) /* 803044AC 0030010C 39 61 00 30 */ addi r11, r1, 0x30 /* 803044B0 00300110 4B EC 2C 79 */ bl _savegpr_27 /* 803044B4 00300114 3F C0 80 58 */ lis r30, lbl_8057E920@ha /* 803044B8 00300118 7C 7B 1B 78 */ mr r27, r3 /* 803044BC 0030011C 7C 9C 23 78 */ mr r28, r4 /* 803044C0 00300120 3B DE E9 20 */ addi r30, r30, lbl_8057E920@l /* 803044C4 00300124 4B F6 CE 35 */ bl OSGetCurrentThread /* 803044C8 00300128 2C 03 00 00 */ cmpwi r3, 0 /* 803044CC 0030012C 40 82 00 0C */ bne lbl_803044D8 /* 803044D0 00300130 38 60 FF FF */ li r3, -1 /* 803044D4 00300134 48 00 00 08 */ b lbl_803044DC lbl_803044D8: /* 803044D8 00300138 38 60 00 00 */ li r3, 0 lbl_803044DC: /* 803044DC 0030013C 2C 03 00 00 */ cmpwi r3, 0 /* 803044E0 00300140 40 80 00 08 */ bge lbl_803044E8 /* 803044E4 00300144 48 00 00 EC */ b lbl_803045D0 lbl_803044E8: /* 803044E8 00300148 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13) /* 803044EC 0030014C 2C 00 00 00 */ cmpwi r0, 0 /* 803044F0 00300150 40 82 00 50 */ bne lbl_80304540 /* 803044F4 00300154 4B F6 A2 69 */ bl OSDisableInterrupts /* 803044F8 00300158 80 0D AF C0 */ lwz r0, lbl_80640280-_SDA_BASE_(r13) /* 803044FC 0030015C 7C 7F 1B 78 */ mr r31, r3 /* 80304500 00300160 2C 00 00 00 */ cmpwi r0, 0 /* 80304504 00300164 40 82 00 34 */ bne lbl_80304538 /* 80304508 00300168 38 7E 00 80 */ addi r3, r30, 0x80 /* 8030450C 0030016C 4B F6 B4 05 */ bl OSInitMutex /* 80304510 00300170 38 7E 00 A0 */ addi r3, r30, 0xa0 /* 80304514 00300174 38 80 00 00 */ li r4, 0 /* 80304518 00300178 38 A0 00 20 */ li r5, 0x20 /* 8030451C 0030017C 4B CF FB E9 */ bl memset /* 80304520 00300180 38 7E 00 C0 */ addi r3, r30, 0xc0 /* 80304524 00300184 38 80 00 00 */ li r4, 0 /* 80304528 00300188 38 A0 00 20 */ li r5, 0x20 /* 8030452C 0030018C 4B CF FB D9 */ bl memset /* 80304530 00300190 38 00 00 01 */ li r0, 1 /* 80304534 00300194 90 0D AF C0 */ stw r0, lbl_80640280-_SDA_BASE_(r13) lbl_80304538: /* 80304538 00300198 7F E3 FB 78 */ mr r3, r31 /* 8030453C 0030019C 4B F6 A2 49 */ bl OSRestoreInterrupts lbl_80304540: /* 80304540 003001A0 38 7E 00 80 */ addi r3, r30, 0x80 /* 80304544 003001A4 4B F6 B4 05 */ bl OSLockMutex /* 80304548 003001A8 3F E0 80 44 */ lis r31, lbl_8044655C@ha /* 8030454C 003001AC 3C 80 80 44 */ lis r4, lbl_80446548@ha /* 80304550 003001B0 38 7F 65 5C */ addi r3, r31, lbl_8044655C@l /* 80304554 003001B4 38 A1 00 08 */ addi r5, r1, 8 /* 80304558 003001B8 38 84 65 48 */ addi r4, r4, lbl_80446548@l /* 8030455C 003001BC 38 C0 00 00 */ li r6, 0 /* 80304560 003001C0 48 00 01 1D */ bl NWC24iOpenResourceManager /* 80304564 003001C4 2C 03 00 00 */ cmpwi r3, 0 /* 80304568 003001C8 7C 7D 1B 78 */ mr r29, r3 /* 8030456C 003001CC 41 80 00 58 */ blt lbl_803045C4 /* 80304570 003001D0 38 DE 00 A0 */ addi r6, r30, 0xa0 /* 80304574 003001D4 93 7E 00 A0 */ stw r27, 0xa0(r30) /* 80304578 003001D8 80 81 00 08 */ lwz r4, 8(r1) /* 8030457C 003001DC 38 7F 65 5C */ addi r3, r31, 0x655c /* 80304580 003001E0 93 86 00 04 */ stw r28, 4(r6) /* 80304584 003001E4 39 1E 00 C0 */ addi r8, r30, 0xc0 /* 80304588 003001E8 38 A0 00 17 */ li r5, 0x17 /* 8030458C 003001EC 38 E0 00 20 */ li r7, 0x20 /* 80304590 003001F0 39 20 00 20 */ li r9, 0x20 /* 80304594 003001F4 48 00 01 95 */ bl NWC24iIoctlResourceManager /* 80304598 003001F8 2C 03 00 00 */ cmpwi r3, 0 /* 8030459C 003001FC 7C 7D 1B 78 */ mr r29, r3 /* 803045A0 00300200 41 80 00 08 */ blt lbl_803045A8 /* 803045A4 00300204 83 BE 00 C0 */ lwz r29, 0xc0(r30) lbl_803045A8: /* 803045A8 00300208 3C 60 80 44 */ lis r3, lbl_8044655C@ha /* 803045AC 0030020C 80 81 00 08 */ lwz r4, 8(r1) /* 803045B0 00300210 38 63 65 5C */ addi r3, r3, lbl_8044655C@l /* 803045B4 00300214 48 00 01 41 */ bl NWC24iCloseResourceManager /* 803045B8 00300218 2C 1D 00 00 */ cmpwi r29, 0 /* 803045BC 0030021C 41 80 00 08 */ blt lbl_803045C4 /* 803045C0 00300220 7C 7D 1B 78 */ mr r29, r3 lbl_803045C4: /* 803045C4 00300224 38 7E 00 80 */ addi r3, r30, 0x80 /* 803045C8 00300228 4B F6 B4 5D */ bl OSUnlockMutex /* 803045CC 0030022C 7F A3 EB 78 */ mr r3, r29 lbl_803045D0: /* 803045D0 00300230 39 61 00 30 */ addi r11, r1, 0x30 /* 803045D4 00300234 4B EC 2B A1 */ bl _restgpr_27 /* 803045D8 00300238 80 01 00 34 */ lwz r0, 0x34(r1) /* 803045DC 0030023C 7C 08 03 A6 */ mtlr r0 /* 803045E0 00300240 38 21 00 30 */ addi r1, r1, 0x30 /* 803045E4 00300244 4E 80 00 20 */ blr .global NWC24iSynchronizeRtcCounter NWC24iSynchronizeRtcCounter: /* 803045E8 00300248 94 21 FF F0 */ stwu r1, -0x10(r1) /* 803045EC 0030024C 7C 08 02 A6 */ mflr r0 /* 803045F0 00300250 90 01 00 14 */ stw r0, 0x14(r1) /* 803045F4 00300254 93 E1 00 0C */ stw r31, 0xc(r1) /* 803045F8 00300258 93 C1 00 08 */ stw r30, 8(r1) /* 803045FC 0030025C 7C 7E 1B 78 */ mr r30, r3 lbl_80304600: /* 80304600 00300260 4B FE 63 ED */ bl SCCheckStatus /* 80304604 00300264 28 03 00 02 */ cmplwi r3, 2 /* 80304608 00300268 40 82 00 0C */ bne lbl_80304614 /* 8030460C 0030026C 38 60 FF FF */ li r3, -1 /* 80304610 00300270 48 00 00 34 */ b lbl_80304644 lbl_80304614: /* 80304614 00300274 2C 03 00 00 */ cmpwi r3, 0 /* 80304618 00300278 40 82 FF E8 */ bne lbl_80304600 /* 8030461C 0030027C 4B FE 7F A5 */ bl SCGetCounterBias /* 80304620 00300280 7C 7F 1B 78 */ mr r31, r3 /* 80304624 00300284 4B F6 E1 95 */ bl OSGetTime /* 80304628 00300288 3C C0 80 00 */ lis r6, 0x800000F8@ha /* 8030462C 0030028C 38 A0 00 00 */ li r5, 0 /* 80304630 00300290 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6) /* 80304634 00300294 54 06 F0 BE */ srwi r6, r0, 2 /* 80304638 00300298 4B EC 2C 41 */ bl __div2i /* 8030463C 0030029C 7F FF 20 10 */ subfc r31, r31, r4 /* 80304640 003002A0 38 60 00 00 */ li r3, 0 lbl_80304644: /* 80304644 003002A4 2C 03 00 00 */ cmpwi r3, 0 /* 80304648 003002A8 41 82 00 08 */ beq lbl_80304650 /* 8030464C 003002AC 48 00 00 18 */ b lbl_80304664 lbl_80304650: /* 80304650 003002B0 7C 1E 00 D0 */ neg r0, r30 /* 80304654 003002B4 7F E3 FB 78 */ mr r3, r31 /* 80304658 003002B8 7C 00 F3 78 */ or r0, r0, r30 /* 8030465C 003002BC 54 04 0F FE */ srwi r4, r0, 0x1f /* 80304660 003002C0 4B FF FE 41 */ bl NWC24iSetRtcCounter lbl_80304664: /* 80304664 003002C4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80304668 003002C8 83 E1 00 0C */ lwz r31, 0xc(r1) /* 8030466C 003002CC 83 C1 00 08 */ lwz r30, 8(r1) /* 80304670 003002D0 7C 08 03 A6 */ mtlr r0 /* 80304674 003002D4 38 21 00 10 */ addi r1, r1, 0x10 /* 80304678 003002D8 4E 80 00 20 */ blr