summaryrefslogtreecommitdiff
path: root/asm/code_802247A0.s
blob: 7874b2d6346e8f75ea7fd760b28fb7914f121a30 (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
.include "macros.inc"

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

lbl_802247A0:
/* 802247A0 00220400  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802247A4 00220404  7C 08 02 A6 */	mflr r0
/* 802247A8 00220408  90 01 00 14 */	stw r0, 0x14(r1)
/* 802247AC 0022040C  4B DE 2B F1 */	bl func_8000739C
/* 802247B0 00220410  80 6D A3 50 */	lwz r3, lbl_8063F610-_SDA_BASE_(r13)
/* 802247B4 00220414  48 00 00 8D */	bl func_80224840
/* 802247B8 00220418  80 01 00 14 */	lwz r0, 0x14(r1)
/* 802247BC 0022041C  7C 08 03 A6 */	mtlr r0
/* 802247C0 00220420  38 21 00 10 */	addi r1, r1, 0x10
/* 802247C4 00220424  4E 80 00 20 */	blr

.global func_802247C8
func_802247C8:
/* 802247C8 00220428  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 802247CC 0022042C  7C 08 02 A6 */	mflr r0
/* 802247D0 00220430  90 01 00 14 */	stw r0, 0x14(r1)
/* 802247D4 00220434  93 E1 00 0C */	stw r31, 0xc(r1)
/* 802247D8 00220438  7C 7F 1B 78 */	mr r31, r3
/* 802247DC 0022043C  38 60 00 0C */	li r3, 0xc
/* 802247E0 00220440  4B FB 62 51 */	bl __nw__FUl
/* 802247E4 00220444  2C 03 00 00 */	cmpwi r3, 0
/* 802247E8 00220448  41 82 00 0C */	beq lbl_802247F4
/* 802247EC 0022044C  7F E4 FB 78 */	mr r4, r31
/* 802247F0 00220450  48 00 00 41 */	bl func_80224830
lbl_802247F4:
/* 802247F4 00220454  3C C0 80 22 */	lis r6, lbl_802247A0@ha
/* 802247F8 00220458  90 6D A3 50 */	stw r3, lbl_8063F610-_SDA_BASE_(r13)
/* 802247FC 0022045C  38 C6 47 A0 */	addi r6, r6, lbl_802247A0@l
/* 80224800 00220460  38 60 00 01 */	li r3, 1
/* 80224804 00220464  38 80 00 00 */	li r4, 0
/* 80224808 00220468  38 A0 00 00 */	li r5, 0
/* 8022480C 0022046C  4B FF F7 C5 */	bl func_80223FD0
/* 80224810 00220470  3C 80 80 42 */	lis r4, lbl_80423C20@ha
/* 80224814 00220474  38 84 3C 20 */	addi r4, r4, lbl_80423C20@l
/* 80224818 00220478  4B FF F8 75 */	bl func_8022408C
/* 8022481C 0022047C  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80224820 00220480  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80224824 00220484  7C 08 03 A6 */	mtlr r0
/* 80224828 00220488  38 21 00 10 */	addi r1, r1, 0x10
/* 8022482C 0022048C  4E 80 00 20 */	blr

.global func_80224830
func_80224830:
/* 80224830 00220490  38 00 00 00 */	li r0, 0
/* 80224834 00220494  90 83 00 00 */	stw r4, 0(r3)
/* 80224838 00220498  90 03 00 04 */	stw r0, 4(r3)
/* 8022483C 0022049C  4E 80 00 20 */	blr

.global func_80224840
func_80224840:
/* 80224840 002204A0  94 21 FF E0 */	stwu r1, -0x20(r1)
/* 80224844 002204A4  7C 08 02 A6 */	mflr r0
/* 80224848 002204A8  90 01 00 24 */	stw r0, 0x24(r1)
/* 8022484C 002204AC  DB E1 00 18 */	stfd f31, 0x18(r1)
/* 80224850 002204B0  FF E0 08 90 */	fmr f31, f1
/* 80224854 002204B4  93 E1 00 14 */	stw r31, 0x14(r1)
/* 80224858 002204B8  93 C1 00 10 */	stw r30, 0x10(r1)
/* 8022485C 002204BC  93 A1 00 0C */	stw r29, 0xc(r1)
/* 80224860 002204C0  3B A0 00 00 */	li r29, 0
/* 80224864 002204C4  93 81 00 08 */	stw r28, 8(r1)
/* 80224868 002204C8  7C 7C 1B 78 */	mr r28, r3
/* 8022486C 002204CC  83 C3 00 04 */	lwz r30, 4(r3)
/* 80224870 002204D0  48 00 00 4C */	b lbl_802248BC
lbl_80224874:
/* 80224874 002204D4  FC 20 F8 90 */	fmr f1, f31
/* 80224878 002204D8  83 FE 00 08 */	lwz r31, 8(r30)
/* 8022487C 002204DC  7F C3 F3 78 */	mr r3, r30
/* 80224880 002204E0  48 00 00 69 */	bl func_802248E8
/* 80224884 002204E4  2C 03 00 00 */	cmpwi r3, 0
/* 80224888 002204E8  41 82 00 2C */	beq lbl_802248B4
/* 8022488C 002204EC  7F C3 F3 78 */	mr r3, r30
/* 80224890 002204F0  48 00 00 7D */	bl func_8022490C
/* 80224894 002204F4  7F C3 F3 78 */	mr r3, r30
/* 80224898 002204F8  4B FB 62 21 */	bl __dl__FPv
/* 8022489C 002204FC  2C 1D 00 00 */	cmpwi r29, 0
/* 802248A0 00220500  40 82 00 0C */	bne lbl_802248AC
/* 802248A4 00220504  93 FC 00 04 */	stw r31, 4(r28)
/* 802248A8 00220508  48 00 00 08 */	b lbl_802248B0
lbl_802248AC:
/* 802248AC 0022050C  93 FD 00 08 */	stw r31, 8(r29)
lbl_802248B0:
/* 802248B0 00220510  7F BE EB 78 */	mr r30, r29
lbl_802248B4:
/* 802248B4 00220514  7F DD F3 78 */	mr r29, r30
/* 802248B8 00220518  7F FE FB 78 */	mr r30, r31
lbl_802248BC:
/* 802248BC 0022051C  2C 1E 00 00 */	cmpwi r30, 0
/* 802248C0 00220520  40 82 FF B4 */	bne lbl_80224874
/* 802248C4 00220524  80 01 00 24 */	lwz r0, 0x24(r1)
/* 802248C8 00220528  CB E1 00 18 */	lfd f31, 0x18(r1)
/* 802248CC 0022052C  83 E1 00 14 */	lwz r31, 0x14(r1)
/* 802248D0 00220530  83 C1 00 10 */	lwz r30, 0x10(r1)
/* 802248D4 00220534  83 A1 00 0C */	lwz r29, 0xc(r1)
/* 802248D8 00220538  83 81 00 08 */	lwz r28, 8(r1)
/* 802248DC 0022053C  7C 08 03 A6 */	mtlr r0
/* 802248E0 00220540  38 21 00 20 */	addi r1, r1, 0x20
/* 802248E4 00220544  4E 80 00 20 */	blr

.global func_802248E8
func_802248E8:
/* 802248E8 00220548  C0 43 00 04 */	lfs f2, 4(r3)
/* 802248EC 0022054C  C0 02 9C 78 */	lfs f0, lbl_80642278-_SDA2_BASE_(r2)
/* 802248F0 00220550  EC 22 08 28 */	fsubs f1, f2, f1
/* 802248F4 00220554  FC 01 00 40 */	fcmpo cr0, f1, f0
/* 802248F8 00220558  D0 23 00 04 */	stfs f1, 4(r3)
/* 802248FC 0022055C  4C 40 13 82 */	cror 2, 0, 2
/* 80224900 00220560  7C 60 00 26 */	mfcr r3
/* 80224904 00220564  54 63 1F FE */	rlwinm r3, r3, 3, 0x1f, 0x1f
/* 80224908 00220568  4E 80 00 20 */	blr

.global func_8022490C
func_8022490C:
/* 8022490C 0022056C  7C 66 1B 78 */	mr r6, r3
/* 80224910 00220570  80 63 00 0C */	lwz r3, 0xc(r3)
/* 80224914 00220574  81 86 00 1C */	lwz r12, 0x1c(r6)
/* 80224918 00220578  80 86 00 10 */	lwz r4, 0x10(r6)
/* 8022491C 0022057C  80 A6 00 14 */	lwz r5, 0x14(r6)
/* 80224920 00220580  80 C6 00 18 */	lwz r6, 0x18(r6)
/* 80224924 00220584  7D 89 03 A6 */	mtctr r12
/* 80224928 00220588  4E 80 04 20 */	bctr

.global func_8022492C
func_8022492C:
/* 8022492C 0022058C  38 A0 00 01 */	li r5, 1
/* 80224930 00220590  38 6D A3 48 */	addi r3, r13, lbl_8063F608-_SDA_BASE_
/* 80224934 00220594  38 80 00 04 */	li r4, 4
/* 80224938 00220598  38 00 00 00 */	li r0, 0
/* 8022493C 0022059C  98 AD A3 48 */	stb r5, lbl_8063F608-_SDA_BASE_(r13)
/* 80224940 002205A0  B0 83 00 02 */	sth r4, 2(r3)
/* 80224944 002205A4  98 03 00 04 */	stb r0, 4(r3)
/* 80224948 002205A8  4E 80 00 20 */	blr