.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global ptim_init ptim_init: /* 802BDACC 002B972C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802BDAD0 002B9730 7C 08 02 A6 */ mflr r0 /* 802BDAD4 002B9734 90 01 00 24 */ stw r0, 0x24(r1) /* 802BDAD8 002B9738 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802BDADC 002B973C 7C BF 2B 78 */ mr r31, r5 /* 802BDAE0 002B9740 93 C1 00 18 */ stw r30, 0x18(r1) /* 802BDAE4 002B9744 7C 9E 23 78 */ mr r30, r4 /* 802BDAE8 002B9748 93 A1 00 14 */ stw r29, 0x14(r1) /* 802BDAEC 002B974C 7C 7D 1B 78 */ mr r29, r3 /* 802BDAF0 002B9750 4B FF D1 C9 */ bl GKI_init_timer_list /* 802BDAF4 002B9754 93 DD 00 0C */ stw r30, 0xc(r29) /* 802BDAF8 002B9758 9B FD 00 10 */ stb r31, 0x10(r29) /* 802BDAFC 002B975C 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802BDB00 002B9760 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802BDB04 002B9764 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802BDB08 002B9768 80 01 00 24 */ lwz r0, 0x24(r1) /* 802BDB0C 002B976C 7C 08 03 A6 */ mtlr r0 /* 802BDB10 002B9770 38 21 00 20 */ addi r1, r1, 0x20 /* 802BDB14 002B9774 4E 80 00 20 */ blr .global ptim_timer_update ptim_timer_update: /* 802BDB18 002B9778 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802BDB1C 002B977C 7C 08 02 A6 */ mflr r0 /* 802BDB20 002B9780 90 01 00 14 */ stw r0, 0x14(r1) /* 802BDB24 002B9784 93 E1 00 0C */ stw r31, 0xc(r1) /* 802BDB28 002B9788 93 C1 00 08 */ stw r30, 8(r1) /* 802BDB2C 002B978C 7C 7E 1B 78 */ mr r30, r3 /* 802BDB30 002B9790 80 83 00 0C */ lwz r4, 0xc(r3) /* 802BDB34 002B9794 4B FF D1 99 */ bl GKI_update_timer_list /* 802BDB38 002B9798 48 00 00 54 */ b lbl_802BDB8C lbl_802BDB3C: /* 802BDB3C 002B979C 7F C3 F3 78 */ mr r3, r30 /* 802BDB40 002B97A0 7F E4 FB 78 */ mr r4, r31 /* 802BDB44 002B97A4 4B FF D3 01 */ bl GKI_remove_from_timer_list /* 802BDB48 002B97A8 81 9F 00 08 */ lwz r12, 8(r31) /* 802BDB4C 002B97AC 2C 0C 00 00 */ cmpwi r12, 0 /* 802BDB50 002B97B0 41 82 00 14 */ beq lbl_802BDB64 /* 802BDB54 002B97B4 7F E3 FB 78 */ mr r3, r31 /* 802BDB58 002B97B8 7D 89 03 A6 */ mtctr r12 /* 802BDB5C 002B97BC 4E 80 04 21 */ bctrl /* 802BDB60 002B97C0 48 00 00 2C */ b lbl_802BDB8C lbl_802BDB64: /* 802BDB64 002B97C4 A0 1F 00 14 */ lhz r0, 0x14(r31) /* 802BDB68 002B97C8 2C 00 00 00 */ cmpwi r0, 0 /* 802BDB6C 002B97CC 41 82 00 20 */ beq lbl_802BDB8C /* 802BDB70 002B97D0 38 60 00 08 */ li r3, 8 /* 802BDB74 002B97D4 4B FF BF 39 */ bl GKI_getbuf /* 802BDB78 002B97D8 2C 03 00 00 */ cmpwi r3, 0 /* 802BDB7C 002B97DC 41 82 00 10 */ beq lbl_802BDB8C /* 802BDB80 002B97E0 A0 1F 00 14 */ lhz r0, 0x14(r31) /* 802BDB84 002B97E4 B0 03 00 00 */ sth r0, 0(r3) /* 802BDB88 002B97E8 4B FF FE 85 */ bl bta_sys_sendmsg lbl_802BDB8C: /* 802BDB8C 002B97EC 83 FE 00 00 */ lwz r31, 0(r30) /* 802BDB90 002B97F0 2C 1F 00 00 */ cmpwi r31, 0 /* 802BDB94 002B97F4 41 82 00 10 */ beq lbl_802BDBA4 /* 802BDB98 002B97F8 80 1F 00 0C */ lwz r0, 0xc(r31) /* 802BDB9C 002B97FC 2C 00 00 00 */ cmpwi r0, 0 /* 802BDBA0 002B9800 40 81 FF 9C */ ble lbl_802BDB3C lbl_802BDBA4: /* 802BDBA4 002B9804 2C 1F 00 00 */ cmpwi r31, 0 /* 802BDBA8 002B9808 40 82 00 0C */ bne lbl_802BDBB4 /* 802BDBAC 002B980C 88 7E 00 10 */ lbz r3, 0x10(r30) /* 802BDBB0 002B9810 4B FF D0 81 */ bl GKI_stop_timer lbl_802BDBB4: /* 802BDBB4 002B9814 80 01 00 14 */ lwz r0, 0x14(r1) /* 802BDBB8 002B9818 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802BDBBC 002B981C 83 C1 00 08 */ lwz r30, 8(r1) /* 802BDBC0 002B9820 7C 08 03 A6 */ mtlr r0 /* 802BDBC4 002B9824 38 21 00 10 */ addi r1, r1, 0x10 /* 802BDBC8 002B9828 4E 80 00 20 */ blr .global ptim_start_timer ptim_start_timer: /* 802BDBCC 002B982C 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802BDBD0 002B9830 7C 08 02 A6 */ mflr r0 /* 802BDBD4 002B9834 90 01 00 24 */ stw r0, 0x24(r1) /* 802BDBD8 002B9838 93 E1 00 1C */ stw r31, 0x1c(r1) /* 802BDBDC 002B983C 7C DF 33 78 */ mr r31, r6 /* 802BDBE0 002B9840 93 C1 00 18 */ stw r30, 0x18(r1) /* 802BDBE4 002B9844 7C BE 2B 78 */ mr r30, r5 /* 802BDBE8 002B9848 93 A1 00 14 */ stw r29, 0x14(r1) /* 802BDBEC 002B984C 7C 9D 23 78 */ mr r29, r4 /* 802BDBF0 002B9850 93 81 00 10 */ stw r28, 0x10(r1) /* 802BDBF4 002B9854 7C 7C 1B 78 */ mr r28, r3 /* 802BDBF8 002B9858 80 03 00 00 */ lwz r0, 0(r3) /* 802BDBFC 002B985C 2C 00 00 00 */ cmpwi r0, 0 /* 802BDC00 002B9860 40 82 00 2C */ bne lbl_802BDC2C /* 802BDC04 002B9864 3C 80 66 66 */ lis r4, 0x66666667@ha /* 802BDC08 002B9868 80 1C 00 0C */ lwz r0, 0xc(r28) /* 802BDC0C 002B986C 38 84 66 67 */ addi r4, r4, 0x66666667@l /* 802BDC10 002B9870 88 63 00 10 */ lbz r3, 0x10(r3) /* 802BDC14 002B9874 7C 04 00 96 */ mulhw r0, r4, r0 /* 802BDC18 002B9878 38 A0 00 01 */ li r5, 1 /* 802BDC1C 002B987C 7C 00 16 70 */ srawi r0, r0, 2 /* 802BDC20 002B9880 54 04 0F FE */ srwi r4, r0, 0x1f /* 802BDC24 002B9884 7C 80 22 14 */ add r4, r0, r4 /* 802BDC28 002B9888 4B FF CE B9 */ bl GKI_start_timer lbl_802BDC2C: /* 802BDC2C 002B988C 7F 83 E3 78 */ mr r3, r28 /* 802BDC30 002B9890 7F A4 EB 78 */ mr r4, r29 /* 802BDC34 002B9894 4B FF D2 11 */ bl GKI_remove_from_timer_list /* 802BDC38 002B9898 B3 DD 00 14 */ sth r30, 0x14(r29) /* 802BDC3C 002B989C 7F 83 E3 78 */ mr r3, r28 /* 802BDC40 002B98A0 7F A4 EB 78 */ mr r4, r29 /* 802BDC44 002B98A4 93 FD 00 0C */ stw r31, 0xc(r29) /* 802BDC48 002B98A8 4B FF D1 11 */ bl GKI_add_to_timer_list /* 802BDC4C 002B98AC 80 01 00 24 */ lwz r0, 0x24(r1) /* 802BDC50 002B98B0 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 802BDC54 002B98B4 83 C1 00 18 */ lwz r30, 0x18(r1) /* 802BDC58 002B98B8 83 A1 00 14 */ lwz r29, 0x14(r1) /* 802BDC5C 002B98BC 83 81 00 10 */ lwz r28, 0x10(r1) /* 802BDC60 002B98C0 7C 08 03 A6 */ mtlr r0 /* 802BDC64 002B98C4 38 21 00 20 */ addi r1, r1, 0x20 /* 802BDC68 002B98C8 4E 80 00 20 */ blr .global ptim_stop_timer ptim_stop_timer: /* 802BDC6C 002B98CC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 802BDC70 002B98D0 7C 08 02 A6 */ mflr r0 /* 802BDC74 002B98D4 90 01 00 14 */ stw r0, 0x14(r1) /* 802BDC78 002B98D8 93 E1 00 0C */ stw r31, 0xc(r1) /* 802BDC7C 002B98DC 7C 7F 1B 78 */ mr r31, r3 /* 802BDC80 002B98E0 4B FF D1 C5 */ bl GKI_remove_from_timer_list /* 802BDC84 002B98E4 80 1F 00 00 */ lwz r0, 0(r31) /* 802BDC88 002B98E8 2C 00 00 00 */ cmpwi r0, 0 /* 802BDC8C 002B98EC 40 82 00 0C */ bne lbl_802BDC98 /* 802BDC90 002B98F0 88 7F 00 10 */ lbz r3, 0x10(r31) /* 802BDC94 002B98F4 4B FF CF 9D */ bl GKI_stop_timer lbl_802BDC98: /* 802BDC98 002B98F8 80 01 00 14 */ lwz r0, 0x14(r1) /* 802BDC9C 002B98FC 83 E1 00 0C */ lwz r31, 0xc(r1) /* 802BDCA0 002B9900 7C 08 03 A6 */ mtlr r0 /* 802BDCA4 002B9904 38 21 00 10 */ addi r1, r1, 0x10 /* 802BDCA8 002B9908 4E 80 00 20 */ blr