summaryrefslogtreecommitdiff
path: root/asm/code_8022494C.s
blob: dbae4dae2b8a17f8800fb6ac74a6765a463c5c44 (plain)
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
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global func_8022494C
func_8022494C:
/* 8022494C 002205AC  3C 80 80 42 */	lis r4, lbl_80423C38@ha
/* 80224950 002205B0  38 00 00 00 */	li r0, 0
/* 80224954 002205B4  38 84 3C 38 */	addi r4, r4, lbl_80423C38@l
/* 80224958 002205B8  90 03 00 00 */	stw r0, 0(r3)
/* 8022495C 002205BC  90 83 00 0C */	stw r4, 0xc(r3)
/* 80224960 002205C0  4E 80 00 20 */	blr

.global func_80224964
func_80224964:
/* 80224964 002205C4  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80224968 002205C8  7C 08 02 A6 */	mflr r0
/* 8022496C 002205CC  90 01 00 24 */	stw r0, 0x24(r1)
/* 80224970 002205D0  39 61 00 20 */	addi r11, r1, 0x20
/* 80224974 002205D4  4B FA 27 B5 */	bl _savegpr_27
/* 80224978 002205D8  80 C3 00 00 */	lwz r6, 0(r3)
/* 8022497C 002205DC  7C 9B 23 78 */	mr r27, r4
/* 80224980 002205E0  7C BC 2B 78 */	mr r28, r5
/* 80224984 002205E4  2C 06 00 00 */	cmpwi r6, 0
/* 80224988 002205E8  40 82 00 0C */	bne lbl_80224994
/* 8022498C 002205EC  38 60 00 00 */	li r3, 0
/* 80224990 002205F0  48 00 00 58 */	b lbl_802249E8
lbl_80224994:
/* 80224994 002205F4  83 E3 00 08 */	lwz r31, 8(r3)
/* 80224998 002205F8  3B C6 00 10 */	addi r30, r6, 0x10
/* 8022499C 002205FC  3B A0 00 00 */	li r29, 0
/* 802249A0 00220600  48 00 00 3C */	b lbl_802249DC
lbl_802249A4:
/* 802249A4 00220604  80 1E 00 08 */	lwz r0, 8(r30)
/* 802249A8 00220608  7C 00 E0 00 */	cmpw r0, r28
/* 802249AC 0022060C  40 82 00 24 */	bne lbl_802249D0
/* 802249B0 00220610  7F C3 F3 78 */	mr r3, r30
/* 802249B4 00220614  7F 64 DB 78 */	mr r4, r27
/* 802249B8 00220618  38 A0 00 04 */	li r5, 4
/* 802249BC 0022061C  4B FA 59 DD */	bl memcmp
/* 802249C0 00220620  2C 03 00 00 */	cmpwi r3, 0
/* 802249C4 00220624  40 82 00 0C */	bne lbl_802249D0
/* 802249C8 00220628  7F C3 F3 78 */	mr r3, r30
/* 802249CC 0022062C  48 00 00 1C */	b lbl_802249E8
lbl_802249D0:
/* 802249D0 00220630  80 1E 00 04 */	lwz r0, 4(r30)
/* 802249D4 00220634  3B BD 00 01 */	addi r29, r29, 1
/* 802249D8 00220638  7F DE 02 14 */	add r30, r30, r0
lbl_802249DC:
/* 802249DC 0022063C  7C 1D F8 00 */	cmpw r29, r31
/* 802249E0 00220640  41 80 FF C4 */	blt lbl_802249A4
/* 802249E4 00220644  38 60 00 00 */	li r3, 0
lbl_802249E8:
/* 802249E8 00220648  39 61 00 20 */	addi r11, r1, 0x20
/* 802249EC 0022064C  4B FA 27 89 */	bl _restgpr_27
/* 802249F0 00220650  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802249F4 00220654  7C 08 03 A6 */	mtlr r0
/* 802249F8 00220658  38 21 00 20 */	addi r1, r1, 0x20
/* 802249FC 0022065C  4E 80 00 20 */	blr

.global func_80224A00
func_80224A00:
/* 80224A00 00220660  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80224A04 00220664  7C 08 02 A6 */	mflr r0
/* 80224A08 00220668  2C 04 00 00 */	cmpwi r4, 0
/* 80224A0C 0022066C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80224A10 00220670  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80224A14 00220674  7C 9F 23 78 */	mr r31, r4
/* 80224A18 00220678  93 C1 00 08 */	stw r30, 8(r1)
/* 80224A1C 0022067C  7C 7E 1B 78 */	mr r30, r3
/* 80224A20 00220680  90 83 00 00 */	stw r4, 0(r3)
/* 80224A24 00220684  40 82 00 0C */	bne lbl_80224A30
/* 80224A28 00220688  38 60 00 01 */	li r3, 1
/* 80224A2C 0022068C  48 00 00 6C */	b lbl_80224A98
lbl_80224A30:
/* 80224A30 00220690  2C 05 00 00 */	cmpwi r5, 0
/* 80224A34 00220694  7F E3 FB 78 */	mr r3, r31
/* 80224A38 00220698  41 82 00 20 */	beq lbl_80224A58
/* 80224A3C 0022069C  7C A4 2B 78 */	mr r4, r5
/* 80224A40 002206A0  38 A0 00 04 */	li r5, 4
/* 80224A44 002206A4  4B FA 59 55 */	bl memcmp
/* 80224A48 002206A8  2C 03 00 00 */	cmpwi r3, 0
/* 80224A4C 002206AC  41 82 00 0C */	beq lbl_80224A58
/* 80224A50 002206B0  38 60 00 00 */	li r3, 0
/* 80224A54 002206B4  48 00 00 44 */	b lbl_80224A98
lbl_80224A58:
/* 80224A58 002206B8  38 00 00 00 */	li r0, 0
/* 80224A5C 002206BC  80 7E 00 00 */	lwz r3, 0(r30)
/* 80224A60 002206C0  90 1E 00 08 */	stw r0, 8(r30)
/* 80224A64 002206C4  38 A3 00 10 */	addi r5, r3, 0x10
/* 80224A68 002206C8  80 1F 00 04 */	lwz r0, 4(r31)
/* 80224A6C 002206CC  7C C3 02 14 */	add r6, r3, r0
/* 80224A70 002206D0  90 DE 00 04 */	stw r6, 4(r30)
/* 80224A74 002206D4  48 00 00 18 */	b lbl_80224A8C
lbl_80224A78:
/* 80224A78 002206D8  80 7E 00 08 */	lwz r3, 8(r30)
/* 80224A7C 002206DC  80 85 00 04 */	lwz r4, 4(r5)
/* 80224A80 002206E0  38 03 00 01 */	addi r0, r3, 1
/* 80224A84 002206E4  90 1E 00 08 */	stw r0, 8(r30)
/* 80224A88 002206E8  7C A5 22 14 */	add r5, r5, r4
lbl_80224A8C:
/* 80224A8C 002206EC  7C 06 28 40 */	cmplw r6, r5
/* 80224A90 002206F0  41 81 FF E8 */	bgt lbl_80224A78
/* 80224A94 002206F4  38 60 00 01 */	li r3, 1
lbl_80224A98:
/* 80224A98 002206F8  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80224A9C 002206FC  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80224AA0 00220700  83 C1 00 08 */	lwz r30, 8(r1)
/* 80224AA4 00220704  7C 08 03 A6 */	mtlr r0
/* 80224AA8 00220708  38 21 00 10 */	addi r1, r1, 0x10
/* 80224AAC 0022070C  4E 80 00 20 */	blr
/* 80224AB0 00220710  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80224AB4 00220714  7C 08 02 A6 */	mflr r0
/* 80224AB8 00220718  2C 03 00 00 */	cmpwi r3, 0
/* 80224ABC 0022071C  90 01 00 14 */	stw r0, 0x14(r1)
/* 80224AC0 00220720  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80224AC4 00220724  7C 7F 1B 78 */	mr r31, r3
/* 80224AC8 00220728  41 82 00 10 */	beq lbl_80224AD8
/* 80224ACC 0022072C  2C 04 00 00 */	cmpwi r4, 0
/* 80224AD0 00220730  40 81 00 08 */	ble lbl_80224AD8
/* 80224AD4 00220734  4B FB 5F E5 */	bl __dl__FPv
lbl_80224AD8:
/* 80224AD8 00220738  7F E3 FB 78 */	mr r3, r31
/* 80224ADC 0022073C  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80224AE0 00220740  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80224AE4 00220744  7C 08 03 A6 */	mtlr r0
/* 80224AE8 00220748  38 21 00 10 */	addi r1, r1, 0x10
/* 80224AEC 0022074C  4E 80 00 20 */	blr

.global func_80224AF0
func_80224AF0:
/* 80224AF0 00220750  38 A0 00 01 */	li r5, 1
/* 80224AF4 00220754  38 6D A3 58 */	addi r3, r13, lbl_8063F618-_SDA_BASE_
/* 80224AF8 00220758  38 80 00 04 */	li r4, 4
/* 80224AFC 0022075C  38 00 00 00 */	li r0, 0
/* 80224B00 00220760  98 AD A3 58 */	stb r5, lbl_8063F618-_SDA_BASE_(r13)
/* 80224B04 00220764  B0 83 00 02 */	sth r4, 2(r3)
/* 80224B08 00220768  98 03 00 04 */	stb r0, 4(r3)
/* 80224B0C 0022076C  4E 80 00 20 */	blr