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
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global WD_Startup
WD_Startup:
/* 802EE4E8 002EA148 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802EE4EC 002EA14C 7C 08 02 A6 */ mflr r0
/* 802EE4F0 002EA150 90 01 00 24 */ stw r0, 0x24(r1)
/* 802EE4F4 002EA154 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802EE4F8 002EA158 93 C1 00 18 */ stw r30, 0x18(r1)
/* 802EE4FC 002EA15C 93 A1 00 14 */ stw r29, 0x14(r1)
/* 802EE500 002EA160 7C 7D 1B 78 */ mr r29, r3
/* 802EE504 002EA164 4B F8 02 59 */ bl OSDisableInterrupts
/* 802EE508 002EA168 7C 7E 1B 78 */ mr r30, r3
/* 802EE50C 002EA16C 4B FF F8 51 */ bl WDi_GetWork
/* 802EE510 002EA170 80 03 00 00 */ lwz r0, 0(r3)
/* 802EE514 002EA174 2C 00 00 00 */ cmpwi r0, 0
/* 802EE518 002EA178 41 80 00 10 */ blt lbl_802EE528
/* 802EE51C 002EA17C 3C 60 80 01 */ lis r3, 0x80008006@ha
/* 802EE520 002EA180 3B E3 80 06 */ addi r31, r3, 0x80008006@l
/* 802EE524 002EA184 48 00 00 80 */ b lbl_802EE5A4
lbl_802EE528:
/* 802EE528 002EA188 4B FF F8 35 */ bl WDi_GetWork
/* 802EE52C 002EA18C 80 03 00 04 */ lwz r0, 4(r3)
/* 802EE530 002EA190 2C 00 00 00 */ cmpwi r0, 0
/* 802EE534 002EA194 40 82 00 2C */ bne lbl_802EE560
/* 802EE538 002EA198 4B FF F8 25 */ bl WDi_GetWork
/* 802EE53C 002EA19C 38 80 00 00 */ li r4, 0
/* 802EE540 002EA1A0 38 A0 00 0C */ li r5, 0xc
/* 802EE544 002EA1A4 4B D1 5B C1 */ bl memset
/* 802EE548 002EA1A8 3B E0 00 01 */ li r31, 1
/* 802EE54C 002EA1AC 4B FF F8 11 */ bl WDi_GetWork
/* 802EE550 002EA1B0 93 E3 00 04 */ stw r31, 4(r3)
/* 802EE554 002EA1B4 3B E0 FF FF */ li r31, -1
/* 802EE558 002EA1B8 4B FF F8 05 */ bl WDi_GetWork
/* 802EE55C 002EA1BC 93 E3 00 08 */ stw r31, 8(r3)
lbl_802EE560:
/* 802EE560 002EA1C0 3C 60 80 44 */ lis r3, lbl_80445BC0@ha
/* 802EE564 002EA1C4 67 A4 00 01 */ oris r4, r29, 1
/* 802EE568 002EA1C8 38 63 5B C0 */ addi r3, r3, lbl_80445BC0@l
/* 802EE56C 002EA1CC 4B FB 4B ED */ bl IOS_Open
/* 802EE570 002EA1D0 7C 7F 1B 78 */ mr r31, r3
/* 802EE574 002EA1D4 4B FF F7 E9 */ bl WDi_GetWork
/* 802EE578 002EA1D8 93 E3 00 00 */ stw r31, 0(r3)
/* 802EE57C 002EA1DC 4B FF F7 E1 */ bl WDi_GetWork
/* 802EE580 002EA1E0 80 03 00 00 */ lwz r0, 0(r3)
/* 802EE584 002EA1E4 2C 00 00 00 */ cmpwi r0, 0
/* 802EE588 002EA1E8 40 80 00 10 */ bge lbl_802EE598
/* 802EE58C 002EA1EC 4B FF F7 D1 */ bl WDi_GetWork
/* 802EE590 002EA1F0 80 63 00 00 */ lwz r3, 0(r3)
/* 802EE594 002EA1F4 48 00 00 0C */ b lbl_802EE5A0
lbl_802EE598:
/* 802EE598 002EA1F8 38 60 10 00 */ li r3, 0x1000
/* 802EE59C 002EA1FC 4B FF F8 11 */ bl WDi_SetupHeap
lbl_802EE5A0:
/* 802EE5A0 002EA200 7C 7F 1B 78 */ mr r31, r3
lbl_802EE5A4:
/* 802EE5A4 002EA204 7F C3 F3 78 */ mr r3, r30
/* 802EE5A8 002EA208 4B F8 01 DD */ bl OSRestoreInterrupts
/* 802EE5AC 002EA20C 7F E3 FB 78 */ mr r3, r31
/* 802EE5B0 002EA210 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802EE5B4 002EA214 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 802EE5B8 002EA218 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 802EE5BC 002EA21C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802EE5C0 002EA220 7C 08 03 A6 */ mtlr r0
/* 802EE5C4 002EA224 38 21 00 20 */ addi r1, r1, 0x20
/* 802EE5C8 002EA228 4E 80 00 20 */ blr
.global WD_Cleanup
WD_Cleanup:
/* 802EE5CC 002EA22C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802EE5D0 002EA230 7C 08 02 A6 */ mflr r0
/* 802EE5D4 002EA234 90 01 00 14 */ stw r0, 0x14(r1)
/* 802EE5D8 002EA238 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802EE5DC 002EA23C 93 C1 00 08 */ stw r30, 8(r1)
/* 802EE5E0 002EA240 4B F8 01 7D */ bl OSDisableInterrupts
/* 802EE5E4 002EA244 7C 7E 1B 78 */ mr r30, r3
/* 802EE5E8 002EA248 4B FF F7 75 */ bl WDi_GetWork
/* 802EE5EC 002EA24C 80 63 00 00 */ lwz r3, 0(r3)
/* 802EE5F0 002EA250 4B FB 4D 49 */ bl IOS_Close
/* 802EE5F4 002EA254 2C 03 00 00 */ cmpwi r3, 0
/* 802EE5F8 002EA258 7C 7F 1B 78 */ mr r31, r3
/* 802EE5FC 002EA25C 41 80 00 18 */ blt lbl_802EE614
/* 802EE600 002EA260 3B E0 FF FF */ li r31, -1
/* 802EE604 002EA264 4B FF F7 59 */ bl WDi_GetWork
/* 802EE608 002EA268 93 E3 00 00 */ stw r31, 0(r3)
/* 802EE60C 002EA26C 4B FF F8 3D */ bl WDi_CleanupHeap
/* 802EE610 002EA270 7C 7F 1B 78 */ mr r31, r3
lbl_802EE614:
/* 802EE614 002EA274 7F C3 F3 78 */ mr r3, r30
/* 802EE618 002EA278 4B F8 01 6D */ bl OSRestoreInterrupts
/* 802EE61C 002EA27C 7F E3 FB 78 */ mr r3, r31
/* 802EE620 002EA280 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802EE624 002EA284 83 C1 00 08 */ lwz r30, 8(r1)
/* 802EE628 002EA288 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802EE62C 002EA28C 7C 08 03 A6 */ mtlr r0
/* 802EE630 002EA290 38 21 00 10 */ addi r1, r1, 0x10
/* 802EE634 002EA294 4E 80 00 20 */ blr
|