1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global hidd_pm_set_now
hidd_pm_set_now:
/* 802D26F4 002CE354 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D26F8 002CE358 7C 08 02 A6 */ mflr r0
/* 802D26FC 002CE35C 3C 80 80 57 */ lis r4, lbl_8056B6F0@ha
/* 802D2700 002CE360 38 A0 00 00 */ li r5, 0
/* 802D2704 002CE364 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D2708 002CE368 38 84 B6 F0 */ addi r4, r4, lbl_8056B6F0@l
/* 802D270C 002CE36C 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802D2710 002CE370 88 04 00 6E */ lbz r0, 0x6e(r4)
/* 802D2714 002CE374 90 A1 00 0C */ stw r5, 0xc(r1)
/* 802D2718 002CE378 2C 00 00 00 */ cmpwi r0, 0
/* 802D271C 002CE37C 90 A1 00 10 */ stw r5, 0x10(r1)
/* 802D2720 002CE380 B0 A1 00 14 */ sth r5, 0x14(r1)
/* 802D2724 002CE384 98 A1 00 08 */ stb r5, 8(r1)
/* 802D2728 002CE388 40 82 00 38 */ bne lbl_802D2760
/* 802D272C 002CE38C 88 C4 00 6A */ lbz r6, 0x6a(r4)
/* 802D2730 002CE390 88 A3 00 08 */ lbz r5, 8(r3)
/* 802D2734 002CE394 7C 05 30 40 */ cmplw r5, r6
/* 802D2738 002CE398 40 82 00 40 */ bne lbl_802D2778
/* 802D273C 002CE39C 2C 05 00 00 */ cmpwi r5, 0
/* 802D2740 002CE3A0 41 82 00 20 */ beq lbl_802D2760
/* 802D2744 002CE3A4 A0 84 00 6C */ lhz r4, 0x6c(r4)
/* 802D2748 002CE3A8 A0 03 00 02 */ lhz r0, 2(r3)
/* 802D274C 002CE3AC 7C 04 00 40 */ cmplw r4, r0
/* 802D2750 002CE3B0 41 80 00 28 */ blt lbl_802D2778
/* 802D2754 002CE3B4 A0 03 00 00 */ lhz r0, 0(r3)
/* 802D2758 002CE3B8 7C 04 00 40 */ cmplw r4, r0
/* 802D275C 002CE3BC 41 81 00 1C */ bgt lbl_802D2778
lbl_802D2760:
/* 802D2760 002CE3C0 3C 80 80 57 */ lis r4, lbl_8056B6F0@ha
/* 802D2764 002CE3C4 38 00 00 FF */ li r0, 0xff
/* 802D2768 002CE3C8 38 84 B6 F0 */ addi r4, r4, lbl_8056B6F0@l
/* 802D276C 002CE3CC 38 60 00 01 */ li r3, 1
/* 802D2770 002CE3D0 98 04 00 78 */ stb r0, 0x78(r4)
/* 802D2774 002CE3D4 48 00 01 44 */ b lbl_802D28B8
lbl_802D2778:
/* 802D2778 002CE3D8 2C 05 00 02 */ cmpwi r5, 2
/* 802D277C 002CE3DC 41 82 00 80 */ beq lbl_802D27FC
/* 802D2780 002CE3E0 40 80 00 10 */ bge lbl_802D2790
/* 802D2784 002CE3E4 2C 05 00 00 */ cmpwi r5, 0
/* 802D2788 002CE3E8 41 82 00 14 */ beq lbl_802D279C
/* 802D278C 002CE3EC 48 00 00 E4 */ b lbl_802D2870
lbl_802D2790:
/* 802D2790 002CE3F0 2C 05 00 04 */ cmpwi r5, 4
/* 802D2794 002CE3F4 40 80 00 DC */ bge lbl_802D2870
/* 802D2798 002CE3F8 48 00 00 A0 */ b lbl_802D2838
lbl_802D279C:
/* 802D279C 002CE3FC 28 06 00 02 */ cmplwi r6, 2
/* 802D27A0 002CE400 40 82 00 2C */ bne lbl_802D27CC
/* 802D27A4 002CE404 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
/* 802D27A8 002CE408 38 A1 00 0C */ addi r5, r1, 0xc
/* 802D27AC 002CE40C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l
/* 802D27B0 002CE410 38 60 00 80 */ li r3, 0x80
/* 802D27B4 002CE414 4B FF 66 F5 */ bl BTM_SetPowerMode
/* 802D27B8 002CE418 38 9F B6 F0 */ addi r4, r31, -18704
/* 802D27BC 002CE41C 38 00 00 01 */ li r0, 1
/* 802D27C0 002CE420 98 61 00 08 */ stb r3, 8(r1)
/* 802D27C4 002CE424 98 04 00 6E */ stb r0, 0x6e(r4)
/* 802D27C8 002CE428 48 00 00 A8 */ b lbl_802D2870
lbl_802D27CC:
/* 802D27CC 002CE42C 28 06 00 03 */ cmplwi r6, 3
/* 802D27D0 002CE430 40 82 00 A0 */ bne lbl_802D2870
/* 802D27D4 002CE434 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
/* 802D27D8 002CE438 38 A1 00 0C */ addi r5, r1, 0xc
/* 802D27DC 002CE43C 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l
/* 802D27E0 002CE440 38 60 00 80 */ li r3, 0x80
/* 802D27E4 002CE444 4B FF 66 C5 */ bl BTM_SetPowerMode
/* 802D27E8 002CE448 38 9F B6 F0 */ addi r4, r31, -18704
/* 802D27EC 002CE44C 38 00 00 01 */ li r0, 1
/* 802D27F0 002CE450 98 61 00 08 */ stb r3, 8(r1)
/* 802D27F4 002CE454 98 04 00 6E */ stb r0, 0x6e(r4)
/* 802D27F8 002CE458 48 00 00 78 */ b lbl_802D2870
lbl_802D27FC:
/* 802D27FC 002CE45C 2C 06 00 00 */ cmpwi r6, 0
/* 802D2800 002CE460 41 82 00 10 */ beq lbl_802D2810
/* 802D2804 002CE464 38 61 00 0C */ addi r3, r1, 0xc
/* 802D2808 002CE468 4B FF FE ED */ bl hidd_pm_set_now
/* 802D280C 002CE46C 48 00 00 64 */ b lbl_802D2870
lbl_802D2810:
/* 802D2810 002CE470 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
/* 802D2814 002CE474 7C 65 1B 78 */ mr r5, r3
/* 802D2818 002CE478 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l
/* 802D281C 002CE47C 38 60 00 80 */ li r3, 0x80
/* 802D2820 002CE480 4B FF 66 89 */ bl BTM_SetPowerMode
/* 802D2824 002CE484 38 9F B6 F0 */ addi r4, r31, -18704
/* 802D2828 002CE488 38 00 00 01 */ li r0, 1
/* 802D282C 002CE48C 98 61 00 08 */ stb r3, 8(r1)
/* 802D2830 002CE490 98 04 00 6E */ stb r0, 0x6e(r4)
/* 802D2834 002CE494 48 00 00 3C */ b lbl_802D2870
lbl_802D2838:
/* 802D2838 002CE498 2C 06 00 00 */ cmpwi r6, 0
/* 802D283C 002CE49C 41 82 00 10 */ beq lbl_802D284C
/* 802D2840 002CE4A0 38 61 00 0C */ addi r3, r1, 0xc
/* 802D2844 002CE4A4 4B FF FE B1 */ bl hidd_pm_set_now
/* 802D2848 002CE4A8 48 00 00 28 */ b lbl_802D2870
lbl_802D284C:
/* 802D284C 002CE4AC 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
/* 802D2850 002CE4B0 7C 65 1B 78 */ mr r5, r3
/* 802D2854 002CE4B4 38 9F B6 F0 */ addi r4, r31, lbl_8056B6F0@l
/* 802D2858 002CE4B8 38 60 00 80 */ li r3, 0x80
/* 802D285C 002CE4BC 4B FF 66 4D */ bl BTM_SetPowerMode
/* 802D2860 002CE4C0 38 9F B6 F0 */ addi r4, r31, -18704
/* 802D2864 002CE4C4 38 00 00 01 */ li r0, 1
/* 802D2868 002CE4C8 98 61 00 08 */ stb r3, 8(r1)
/* 802D286C 002CE4CC 98 04 00 6E */ stb r0, 0x6e(r4)
lbl_802D2870:
/* 802D2870 002CE4D0 88 81 00 08 */ lbz r4, 8(r1)
/* 802D2874 002CE4D4 28 04 00 01 */ cmplwi r4, 1
/* 802D2878 002CE4D8 41 81 00 0C */ bgt lbl_802D2884
/* 802D287C 002CE4DC 38 60 00 01 */ li r3, 1
/* 802D2880 002CE4E0 48 00 00 38 */ b lbl_802D28B8
lbl_802D2884:
/* 802D2884 002CE4E4 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha
/* 802D2888 002CE4E8 38 04 00 37 */ addi r0, r4, 0x37
/* 802D288C 002CE4EC 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l
/* 802D2890 002CE4F0 98 01 00 08 */ stb r0, 8(r1)
/* 802D2894 002CE4F4 81 83 00 C4 */ lwz r12, 0xc4(r3)
/* 802D2898 002CE4F8 2C 0C 00 00 */ cmpwi r12, 0
/* 802D289C 002CE4FC 41 82 00 18 */ beq lbl_802D28B4
/* 802D28A0 002CE500 88 83 00 6F */ lbz r4, 0x6f(r3)
/* 802D28A4 002CE504 38 A1 00 08 */ addi r5, r1, 8
/* 802D28A8 002CE508 38 60 00 04 */ li r3, 4
/* 802D28AC 002CE50C 7D 89 03 A6 */ mtctr r12
/* 802D28B0 002CE510 4E 80 04 21 */ bctrl
lbl_802D28B4:
/* 802D28B4 002CE514 38 60 00 00 */ li r3, 0
lbl_802D28B8:
/* 802D28B8 002CE518 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D28BC 002CE51C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802D28C0 002CE520 7C 08 03 A6 */ mtlr r0
/* 802D28C4 002CE524 38 21 00 20 */ addi r1, r1, 0x20
/* 802D28C8 002CE528 4E 80 00 20 */ blr
.global hidd_pm_proc_mode_change
hidd_pm_proc_mode_change:
/* 802D28CC 002CE52C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D28D0 002CE530 7C 08 02 A6 */ mflr r0
/* 802D28D4 002CE534 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D28D8 002CE538 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802D28DC 002CE53C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802D28E0 002CE540 3F C0 80 57 */ lis r30, lbl_8056B6F0@ha
/* 802D28E4 002CE544 3B DE B6 F0 */ addi r30, r30, lbl_8056B6F0@l
/* 802D28E8 002CE548 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802D28EC 002CE54C 7C 9D 23 78 */ mr r29, r4
/* 802D28F0 002CE550 88 1E 01 40 */ lbz r0, 0x140(r30)
/* 802D28F4 002CE554 98 61 00 08 */ stb r3, 8(r1)
/* 802D28F8 002CE558 2C 00 00 00 */ cmpwi r0, 0
/* 802D28FC 002CE55C B0 A1 00 0A */ sth r5, 0xa(r1)
/* 802D2900 002CE560 41 82 01 08 */ beq lbl_802D2A08
/* 802D2904 002CE564 3B E0 00 00 */ li r31, 0
/* 802D2908 002CE568 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802D290C 002CE56C 9B FE 00 6E */ stb r31, 0x6e(r30)
/* 802D2910 002CE570 41 82 00 28 */ beq lbl_802D2938
/* 802D2914 002CE574 81 9E 00 C4 */ lwz r12, 0xc4(r30)
/* 802D2918 002CE578 2C 0C 00 00 */ cmpwi r12, 0
/* 802D291C 002CE57C 41 82 00 EC */ beq lbl_802D2A08
/* 802D2920 002CE580 38 A1 00 08 */ addi r5, r1, 8
/* 802D2924 002CE584 88 9E 00 6F */ lbz r4, 0x6f(r30)
/* 802D2928 002CE588 38 60 00 04 */ li r3, 4
/* 802D292C 002CE58C 7D 89 03 A6 */ mtctr r12
/* 802D2930 002CE590 4E 80 04 21 */ bctrl
/* 802D2934 002CE594 48 00 00 D4 */ b lbl_802D2A08
lbl_802D2938:
/* 802D2938 002CE598 88 1E 00 78 */ lbz r0, 0x78(r30)
/* 802D293C 002CE59C 54 A3 04 3E */ clrlwi r3, r5, 0x10
/* 802D2940 002CE5A0 98 9E 00 6A */ stb r4, 0x6a(r30)
/* 802D2944 002CE5A4 28 00 00 FF */ cmplwi r0, 0xff
/* 802D2948 002CE5A8 B0 BE 00 6C */ sth r5, 0x6c(r30)
/* 802D294C 002CE5AC 41 82 00 54 */ beq lbl_802D29A0
/* 802D2950 002CE5B0 7C 00 20 40 */ cmplw r0, r4
/* 802D2954 002CE5B4 40 82 00 24 */ bne lbl_802D2978
/* 802D2958 002CE5B8 2C 00 00 00 */ cmpwi r0, 0
/* 802D295C 002CE5BC 41 82 00 30 */ beq lbl_802D298C
/* 802D2960 002CE5C0 A0 1E 00 72 */ lhz r0, 0x72(r30)
/* 802D2964 002CE5C4 7C 03 00 40 */ cmplw r3, r0
/* 802D2968 002CE5C8 41 80 00 10 */ blt lbl_802D2978
/* 802D296C 002CE5CC A0 1E 00 70 */ lhz r0, 0x70(r30)
/* 802D2970 002CE5D0 7C 03 00 40 */ cmplw r3, r0
/* 802D2974 002CE5D4 40 81 00 18 */ ble lbl_802D298C
lbl_802D2978:
/* 802D2978 002CE5D8 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha
/* 802D297C 002CE5DC 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l
/* 802D2980 002CE5E0 38 63 00 70 */ addi r3, r3, 0x70
/* 802D2984 002CE5E4 4B FF FD 71 */ bl hidd_pm_set_now
/* 802D2988 002CE5E8 48 00 00 58 */ b lbl_802D29E0
lbl_802D298C:
/* 802D298C 002CE5EC 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha
/* 802D2990 002CE5F0 38 00 00 FF */ li r0, 0xff
/* 802D2994 002CE5F4 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l
/* 802D2998 002CE5F8 98 03 00 78 */ stb r0, 0x78(r3)
/* 802D299C 002CE5FC 48 00 00 44 */ b lbl_802D29E0
lbl_802D29A0:
/* 802D29A0 002CE600 2C 04 00 00 */ cmpwi r4, 0
/* 802D29A4 002CE604 40 82 00 3C */ bne lbl_802D29E0
/* 802D29A8 002CE608 38 7E 00 70 */ addi r3, r30, 0x70
/* 802D29AC 002CE60C 38 9E 00 4C */ addi r4, r30, 0x4c
/* 802D29B0 002CE610 38 A0 00 0A */ li r5, 0xa
/* 802D29B4 002CE614 4B D3 16 4D */ bl memcpy
/* 802D29B8 002CE618 38 7E 00 4C */ addi r3, r30, 0x4c
/* 802D29BC 002CE61C 4B FF FD 39 */ bl hidd_pm_set_now
/* 802D29C0 002CE620 3C 60 80 2D */ lis r3, hidd_pm_inact_timeout@ha
/* 802D29C4 002CE624 9B FE 00 6F */ stb r31, 0x6f(r30)
/* 802D29C8 002CE628 38 63 2A 24 */ addi r3, r3, hidd_pm_inact_timeout@l
/* 802D29CC 002CE62C 38 80 00 16 */ li r4, 0x16
/* 802D29D0 002CE630 90 7E 00 44 */ stw r3, 0x44(r30)
/* 802D29D4 002CE634 38 7E 00 34 */ addi r3, r30, 0x34
/* 802D29D8 002CE638 38 A0 00 3C */ li r5, 0x3c
/* 802D29DC 002CE63C 4B FE AB 01 */ bl btu_start_timer
lbl_802D29E0:
/* 802D29E0 002CE640 3C 60 80 57 */ lis r3, lbl_8056B6F0@ha
/* 802D29E4 002CE644 38 63 B6 F0 */ addi r3, r3, lbl_8056B6F0@l
/* 802D29E8 002CE648 81 83 00 C4 */ lwz r12, 0xc4(r3)
/* 802D29EC 002CE64C 2C 0C 00 00 */ cmpwi r12, 0
/* 802D29F0 002CE650 41 82 00 18 */ beq lbl_802D2A08
/* 802D29F4 002CE654 7F A4 EB 78 */ mr r4, r29
/* 802D29F8 002CE658 38 A1 00 0A */ addi r5, r1, 0xa
/* 802D29FC 002CE65C 38 60 00 03 */ li r3, 3
/* 802D2A00 002CE660 7D 89 03 A6 */ mtctr r12
/* 802D2A04 002CE664 4E 80 04 21 */ bctrl
lbl_802D2A08:
/* 802D2A08 002CE668 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D2A0C 002CE66C 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802D2A10 002CE670 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802D2A14 002CE674 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802D2A18 002CE678 7C 08 03 A6 */ mtlr r0
/* 802D2A1C 002CE67C 38 21 00 20 */ addi r1, r1, 0x20
/* 802D2A20 002CE680 4E 80 00 20 */ blr
hidd_pm_inact_timeout:
/* 802D2A24 002CE684 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802D2A28 002CE688 7C 08 02 A6 */ mflr r0
/* 802D2A2C 002CE68C 38 A0 00 0A */ li r5, 0xa
/* 802D2A30 002CE690 90 01 00 14 */ stw r0, 0x14(r1)
/* 802D2A34 002CE694 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802D2A38 002CE698 3F E0 80 57 */ lis r31, lbl_8056B6F0@ha
/* 802D2A3C 002CE69C 3B FF B6 F0 */ addi r31, r31, lbl_8056B6F0@l
/* 802D2A40 002CE6A0 38 7F 00 70 */ addi r3, r31, 0x70
/* 802D2A44 002CE6A4 38 9F 00 56 */ addi r4, r31, 0x56
/* 802D2A48 002CE6A8 4B D3 15 B9 */ bl memcpy
/* 802D2A4C 002CE6AC 38 7F 00 56 */ addi r3, r31, 0x56
/* 802D2A50 002CE6B0 4B FF FC A5 */ bl hidd_pm_set_now
/* 802D2A54 002CE6B4 38 00 00 01 */ li r0, 1
/* 802D2A58 002CE6B8 98 1F 00 6F */ stb r0, 0x6f(r31)
/* 802D2A5C 002CE6BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802D2A60 002CE6C0 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802D2A64 002CE6C4 7C 08 03 A6 */ mtlr r0
/* 802D2A68 002CE6C8 38 21 00 10 */ addi r1, r1, 0x10
/* 802D2A6C 002CE6CC 4E 80 00 20 */ blr
|