.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global func_8016340C func_8016340C: /* 8016340C 0015F06C 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80163410 0015F070 7C 08 02 A6 */ mflr r0 /* 80163414 0015F074 90 01 00 14 */ stw r0, 0x14(r1) /* 80163418 0015F078 48 10 F3 A1 */ bl OSGetTime /* 8016341C 0015F07C 90 8D 9D AC */ stw r4, lbl_8063F06C-_SDA_BASE_(r13) /* 80163420 0015F080 90 6D 9D A8 */ stw r3, lbl_8063F068-_SDA_BASE_(r13) /* 80163424 0015F084 80 01 00 14 */ lwz r0, 0x14(r1) /* 80163428 0015F088 7C 08 03 A6 */ mtlr r0 /* 8016342C 0015F08C 38 21 00 10 */ addi r1, r1, 0x10 /* 80163430 0015F090 4E 80 00 20 */ blr .global func_80163434 func_80163434: /* 80163434 0015F094 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80163438 0015F098 7C 08 02 A6 */ mflr r0 /* 8016343C 0015F09C 90 01 00 14 */ stw r0, 0x14(r1) /* 80163440 0015F0A0 48 10 F3 79 */ bl OSGetTime /* 80163444 0015F0A4 3C C0 80 00 */ lis r6, 0x800000F8@ha /* 80163448 0015F0A8 81 0D 9D AC */ lwz r8, lbl_8063F06C-_SDA_BASE_(r13) /* 8016344C 0015F0AC 80 06 00 F8 */ lwz r0, 0x800000F8@l(r6) /* 80163450 0015F0B0 3C A0 10 62 */ lis r5, 0x10624DD3@ha /* 80163454 0015F0B4 38 C5 4D D3 */ addi r6, r5, 0x10624DD3@l /* 80163458 0015F0B8 80 ED 9D A8 */ lwz r7, lbl_8063F068-_SDA_BASE_(r13) /* 8016345C 0015F0BC 54 00 F0 BE */ srwi r0, r0, 2 /* 80163460 0015F0C0 7C 88 20 10 */ subfc r4, r8, r4 /* 80163464 0015F0C4 7C 06 00 16 */ mulhwu r0, r6, r0 /* 80163468 0015F0C8 38 A0 00 00 */ li r5, 0 /* 8016346C 0015F0CC 7C 67 19 10 */ subfe r3, r7, r3 /* 80163470 0015F0D0 54 06 D1 BE */ srwi r6, r0, 6 /* 80163474 0015F0D4 48 06 3E 05 */ bl __div2i /* 80163478 0015F0D8 38 C0 00 0A */ li r6, 0xa /* 8016347C 0015F0DC 38 A0 00 00 */ li r5, 0 /* 80163480 0015F0E0 48 06 3D F9 */ bl __div2i /* 80163484 0015F0E4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80163488 0015F0E8 7C 83 23 78 */ mr r3, r4 /* 8016348C 0015F0EC 7C 08 03 A6 */ mtlr r0 /* 80163490 0015F0F0 38 21 00 10 */ addi r1, r1, 0x10 /* 80163494 0015F0F4 4E 80 00 20 */ blr .global func_80163498 func_80163498: /* 80163498 0015F0F8 38 00 00 00 */ li r0, 0 /* 8016349C 0015F0FC 90 03 00 00 */ stw r0, 0(r3) /* 801634A0 0015F100 80 0D 9D B0 */ lwz r0, lbl_8063F070-_SDA_BASE_(r13) /* 801634A4 0015F104 90 03 00 04 */ stw r0, 4(r3) /* 801634A8 0015F108 80 8D 9D B0 */ lwz r4, lbl_8063F070-_SDA_BASE_(r13) /* 801634AC 0015F10C 2C 04 00 00 */ cmpwi r4, 0 /* 801634B0 0015F110 41 82 00 08 */ beq lbl_801634B8 /* 801634B4 0015F114 90 64 00 00 */ stw r3, 0(r4) lbl_801634B8: /* 801634B8 0015F118 90 6D 9D B0 */ stw r3, lbl_8063F070-_SDA_BASE_(r13) /* 801634BC 0015F11C 4E 80 00 20 */ blr .global func_801634C0 func_801634C0: /* 801634C0 0015F120 80 83 00 00 */ lwz r4, 0(r3) /* 801634C4 0015F124 2C 04 00 00 */ cmpwi r4, 0 /* 801634C8 0015F128 41 82 00 0C */ beq lbl_801634D4 /* 801634CC 0015F12C 90 64 00 04 */ stw r3, 4(r4) /* 801634D0 0015F130 48 00 00 0C */ b lbl_801634DC lbl_801634D4: /* 801634D4 0015F134 80 03 00 04 */ lwz r0, 4(r3) /* 801634D8 0015F138 90 0D 9D B0 */ stw r0, lbl_8063F070-_SDA_BASE_(r13) lbl_801634DC: /* 801634DC 0015F13C 80 83 00 04 */ lwz r4, 4(r3) /* 801634E0 0015F140 2C 04 00 00 */ cmpwi r4, 0 /* 801634E4 0015F144 4D 82 00 20 */ beqlr /* 801634E8 0015F148 80 03 00 00 */ lwz r0, 0(r3) /* 801634EC 0015F14C 90 04 00 00 */ stw r0, 0(r4) /* 801634F0 0015F150 4E 80 00 20 */ blr .global func_801634F4 func_801634F4: /* 801634F4 0015F154 94 21 FF E0 */ stwu r1, -0x20(r1) /* 801634F8 0015F158 7C 08 02 A6 */ mflr r0 /* 801634FC 0015F15C 90 01 00 24 */ stw r0, 0x24(r1) /* 80163500 0015F160 93 E1 00 1C */ stw r31, 0x1c(r1) /* 80163504 0015F164 93 C1 00 18 */ stw r30, 0x18(r1) /* 80163508 0015F168 93 A1 00 14 */ stw r29, 0x14(r1) /* 8016350C 0015F16C 93 81 00 10 */ stw r28, 0x10(r1) /* 80163510 0015F170 4B FF FF 25 */ bl func_80163434 /* 80163514 0015F174 83 AD 9D B0 */ lwz r29, lbl_8063F070-_SDA_BASE_(r13) /* 80163518 0015F178 7C 7E 1B 78 */ mr r30, r3 /* 8016351C 0015F17C 3B E0 00 02 */ li r31, 2 /* 80163520 0015F180 48 00 00 38 */ b lbl_80163558 lbl_80163524: /* 80163524 0015F184 80 1D 00 14 */ lwz r0, 0x14(r29) /* 80163528 0015F188 83 9D 00 04 */ lwz r28, 4(r29) /* 8016352C 0015F18C 7C 00 F0 40 */ cmplw r0, r30 /* 80163530 0015F190 41 81 00 24 */ bgt lbl_80163554 /* 80163534 0015F194 7F A3 EB 78 */ mr r3, r29 /* 80163538 0015F198 4B FF FF 89 */ bl func_801634C0 /* 8016353C 0015F19C 93 FD 00 18 */ stw r31, 0x18(r29) /* 80163540 0015F1A0 81 9D 00 08 */ lwz r12, 8(r29) /* 80163544 0015F1A4 80 7D 00 0C */ lwz r3, 0xc(r29) /* 80163548 0015F1A8 80 9D 00 10 */ lwz r4, 0x10(r29) /* 8016354C 0015F1AC 7D 89 03 A6 */ mtctr r12 /* 80163550 0015F1B0 4E 80 04 21 */ bctrl lbl_80163554: /* 80163554 0015F1B4 7F 9D E3 78 */ mr r29, r28 lbl_80163558: /* 80163558 0015F1B8 2C 1D 00 00 */ cmpwi r29, 0 /* 8016355C 0015F1BC 40 82 FF C8 */ bne lbl_80163524 /* 80163560 0015F1C0 80 01 00 24 */ lwz r0, 0x24(r1) /* 80163564 0015F1C4 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 80163568 0015F1C8 83 C1 00 18 */ lwz r30, 0x18(r1) /* 8016356C 0015F1CC 83 A1 00 14 */ lwz r29, 0x14(r1) /* 80163570 0015F1D0 83 81 00 10 */ lwz r28, 0x10(r1) /* 80163574 0015F1D4 7C 08 03 A6 */ mtlr r0 /* 80163578 0015F1D8 38 21 00 20 */ addi r1, r1, 0x20 /* 8016357C 0015F1DC 4E 80 00 20 */ blr .global func_80163580 func_80163580: /* 80163580 0015F1E0 38 80 00 00 */ li r4, 0 /* 80163584 0015F1E4 38 A0 00 04 */ li r5, 4 /* 80163588 0015F1E8 4B EA 0B 7C */ b memset .global func_8016358C func_8016358C: /* 8016358C 0015F1EC 90 A3 00 08 */ stw r5, 8(r3) /* 80163590 0015F1F0 90 C3 00 0C */ stw r6, 0xc(r3) /* 80163594 0015F1F4 90 E3 00 10 */ stw r7, 0x10(r3) /* 80163598 0015F1F8 48 00 00 04 */ b lbl_8016359C lbl_8016359C: /* 8016359C 0015F1FC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 801635A0 0015F200 7C 08 02 A6 */ mflr r0 /* 801635A4 0015F204 90 01 00 14 */ stw r0, 0x14(r1) /* 801635A8 0015F208 93 E1 00 0C */ stw r31, 0xc(r1) /* 801635AC 0015F20C 7C 9F 23 78 */ mr r31, r4 /* 801635B0 0015F210 93 C1 00 08 */ stw r30, 8(r1) /* 801635B4 0015F214 7C 7E 1B 78 */ mr r30, r3 /* 801635B8 0015F218 80 03 00 18 */ lwz r0, 0x18(r3) /* 801635BC 0015F21C 28 00 00 01 */ cmplwi r0, 1 /* 801635C0 0015F220 40 82 00 08 */ bne lbl_801635C8 /* 801635C4 0015F224 4B FF FE FD */ bl func_801634C0 lbl_801635C8: /* 801635C8 0015F228 4B FF FE 6D */ bl func_80163434 /* 801635CC 0015F22C 3C 80 66 66 */ lis r4, 0x66666667@ha /* 801635D0 0015F230 38 00 00 01 */ li r0, 1 /* 801635D4 0015F234 38 84 66 67 */ addi r4, r4, 0x66666667@l /* 801635D8 0015F238 90 1E 00 18 */ stw r0, 0x18(r30) /* 801635DC 0015F23C 7C 04 F8 96 */ mulhw r0, r4, r31 /* 801635E0 0015F240 7C 00 16 70 */ srawi r0, r0, 2 /* 801635E4 0015F244 54 04 0F FE */ srwi r4, r0, 0x1f /* 801635E8 0015F248 7C 00 22 14 */ add r0, r0, r4 /* 801635EC 0015F24C 7C 03 02 14 */ add r0, r3, r0 /* 801635F0 0015F250 7F C3 F3 78 */ mr r3, r30 /* 801635F4 0015F254 90 1E 00 14 */ stw r0, 0x14(r30) /* 801635F8 0015F258 4B FF FE A1 */ bl func_80163498 /* 801635FC 0015F25C 80 01 00 14 */ lwz r0, 0x14(r1) /* 80163600 0015F260 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80163604 0015F264 83 C1 00 08 */ lwz r30, 8(r1) /* 80163608 0015F268 7C 08 03 A6 */ mtlr r0 /* 8016360C 0015F26C 38 21 00 10 */ addi r1, r1, 0x10 /* 80163610 0015F270 4E 80 00 20 */ blr .global func_80163614 func_80163614: /* 80163614 0015F274 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80163618 0015F278 7C 08 02 A6 */ mflr r0 /* 8016361C 0015F27C 90 01 00 14 */ stw r0, 0x14(r1) /* 80163620 0015F280 93 E1 00 0C */ stw r31, 0xc(r1) /* 80163624 0015F284 7C 7F 1B 78 */ mr r31, r3 /* 80163628 0015F288 80 03 00 18 */ lwz r0, 0x18(r3) /* 8016362C 0015F28C 28 00 00 01 */ cmplwi r0, 1 /* 80163630 0015F290 40 82 00 08 */ bne lbl_80163638 /* 80163634 0015F294 4B FF FE 8D */ bl func_801634C0 lbl_80163638: /* 80163638 0015F298 38 00 00 00 */ li r0, 0 /* 8016363C 0015F29C 90 1F 00 18 */ stw r0, 0x18(r31) /* 80163640 0015F2A0 83 E1 00 0C */ lwz r31, 0xc(r1) /* 80163644 0015F2A4 80 01 00 14 */ lwz r0, 0x14(r1) /* 80163648 0015F2A8 7C 08 03 A6 */ mtlr r0 /* 8016364C 0015F2AC 38 21 00 10 */ addi r1, r1, 0x10 /* 80163650 0015F2B0 4E 80 00 20 */ blr .global func_80163654 func_80163654: /* 80163654 0015F2B4 38 A0 00 01 */ li r5, 1 /* 80163658 0015F2B8 38 6D 9D A0 */ addi r3, r13, lbl_8063F060-_SDA_BASE_ /* 8016365C 0015F2BC 38 80 00 04 */ li r4, 4 /* 80163660 0015F2C0 38 00 00 00 */ li r0, 0 /* 80163664 0015F2C4 98 AD 9D A0 */ stb r5, lbl_8063F060-_SDA_BASE_(r13) /* 80163668 0015F2C8 B0 83 00 02 */ sth r4, 2(r3) /* 8016366C 0015F2CC 98 03 00 04 */ stb r0, 4(r3) /* 80163670 0015F2D0 4E 80 00 20 */ blr