summaryrefslogtreecommitdiff
path: root/asm/code_80254260.s
blob: 00f166488ff1fb2ccc491c01e51d64c1150801d0 (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
140
141
142
143
.include "macros.inc"

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

.global func_80254260
func_80254260:
/* 80254260 0024FEC0  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80254264 0024FEC4  2C 04 00 00 */	cmpwi r4, 0
/* 80254268 0024FEC8  90 C1 00 08 */	stw r6, 8(r1)
/* 8025426C 0024FECC  C0 01 00 08 */	lfs f0, 8(r1)
/* 80254270 0024FED0  41 80 00 BC */	blt lbl_8025432C
/* 80254274 0024FED4  A0 03 00 00 */	lhz r0, 0(r3)
/* 80254278 0024FED8  7C 04 00 00 */	cmpw r4, r0
/* 8025427C 0024FEDC  41 80 00 08 */	blt lbl_80254284
/* 80254280 0024FEE0  48 00 00 AC */	b lbl_8025432C
lbl_80254284:
/* 80254284 0024FEE4  1C 04 00 C0 */	mulli r0, r4, 0xc0
/* 80254288 0024FEE8  80 63 00 08 */	lwz r3, 8(r3)
/* 8025428C 0024FEEC  28 05 00 0A */	cmplwi r5, 0xa
/* 80254290 0024FEF0  7C 83 02 14 */	add r4, r3, r0
/* 80254294 0024FEF4  41 81 00 98 */	bgt lbl_8025432C
/* 80254298 0024FEF8  3C 60 80 42 */	lis r3, lbl_80424D88@ha
/* 8025429C 0024FEFC  54 A0 10 3A */	slwi r0, r5, 2
/* 802542A0 0024FF00  38 63 4D 88 */	addi r3, r3, lbl_80424D88@l
/* 802542A4 0024FF04  7C 63 00 2E */	lwzx r3, r3, r0
/* 802542A8 0024FF08  7C 69 03 A6 */	mtctr r3
/* 802542AC 0024FF0C  4E 80 04 20 */	bctr
/* 802542B0 0024FF10  98 C4 00 06 */	stb r6, 6(r4)
/* 802542B4 0024FF14  48 00 00 78 */	b lbl_8025432C
/* 802542B8 0024FF18  54 C0 46 3E */	srwi r0, r6, 0x18
/* 802542BC 0024FF1C  54 C3 86 3E */	rlwinm r3, r6, 0x10, 0x18, 0x1f
/* 802542C0 0024FF20  98 04 00 20 */	stb r0, 0x20(r4)
/* 802542C4 0024FF24  54 C0 C6 3E */	rlwinm r0, r6, 0x18, 0x18, 0x1f
/* 802542C8 0024FF28  98 64 00 21 */	stb r3, 0x21(r4)
/* 802542CC 0024FF2C  98 04 00 22 */	stb r0, 0x22(r4)
/* 802542D0 0024FF30  98 C4 00 23 */	stb r6, 0x23(r4)
/* 802542D4 0024FF34  48 00 00 58 */	b lbl_8025432C
/* 802542D8 0024FF38  D0 04 00 24 */	stfs f0, 0x24(r4)
/* 802542DC 0024FF3C  48 00 00 50 */	b lbl_8025432C
/* 802542E0 0024FF40  D0 04 00 28 */	stfs f0, 0x28(r4)
/* 802542E4 0024FF44  48 00 00 48 */	b lbl_8025432C
/* 802542E8 0024FF48  D0 04 00 2C */	stfs f0, 0x2c(r4)
/* 802542EC 0024FF4C  48 00 00 40 */	b lbl_8025432C
/* 802542F0 0024FF50  D0 04 00 30 */	stfs f0, 0x30(r4)
/* 802542F4 0024FF54  48 00 00 38 */	b lbl_8025432C
/* 802542F8 0024FF58  D0 04 00 34 */	stfs f0, 0x34(r4)
/* 802542FC 0024FF5C  48 00 00 30 */	b lbl_8025432C
/* 80254300 0024FF60  7C 06 00 D0 */	neg r0, r6
/* 80254304 0024FF64  7C 00 33 78 */	or r0, r0, r6
/* 80254308 0024FF68  54 00 0F FE */	srwi r0, r0, 0x1f
/* 8025430C 0024FF6C  98 04 00 9F */	stb r0, 0x9f(r4)
/* 80254310 0024FF70  48 00 00 1C */	b lbl_8025432C
/* 80254314 0024FF74  98 C4 00 07 */	stb r6, 7(r4)
/* 80254318 0024FF78  48 00 00 14 */	b lbl_8025432C
/* 8025431C 0024FF7C  7C 06 00 D0 */	neg r0, r6
/* 80254320 0024FF80  7C 00 33 78 */	or r0, r0, r6
/* 80254324 0024FF84  54 00 0F FE */	srwi r0, r0, 0x1f
/* 80254328 0024FF88  98 04 00 A1 */	stb r0, 0xa1(r4)
lbl_8025432C:
/* 8025432C 0024FF8C  38 21 00 10 */	addi r1, r1, 0x10
/* 80254330 0024FF90  4E 80 00 20 */	blr

.global lbl_80254334
lbl_80254334:
/* 80254334 0024FF94  2C 04 00 00 */	cmpwi r4, 0
/* 80254338 0024FF98  4D 80 00 20 */	bltlr
/* 8025433C 0024FF9C  A0 03 00 00 */	lhz r0, 0(r3)
/* 80254340 0024FFA0  7C 04 00 00 */	cmpw r4, r0
/* 80254344 0024FFA4  41 80 00 08 */	blt lbl_8025434C
/* 80254348 0024FFA8  4E 80 00 20 */	blr
lbl_8025434C:
/* 8025434C 0024FFAC  1C 04 00 C0 */	mulli r0, r4, 0xc0
/* 80254350 0024FFB0  80 63 00 08 */	lwz r3, 8(r3)
/* 80254354 0024FFB4  28 05 00 0F */	cmplwi r5, 0xf
/* 80254358 0024FFB8  7C E3 02 14 */	add r7, r3, r0
/* 8025435C 0024FFBC  4D 81 00 20 */	bgtlr
/* 80254360 0024FFC0  3C 60 80 42 */	lis r3, lbl_80424DB4@ha
/* 80254364 0024FFC4  54 A0 10 3A */	slwi r0, r5, 2
/* 80254368 0024FFC8  38 63 4D B4 */	addi r3, r3, lbl_80424DB4@l
/* 8025436C 0024FFCC  7C 63 00 2E */	lwzx r3, r3, r0
/* 80254370 0024FFD0  7C 69 03 A6 */	mtctr r3
/* 80254374 0024FFD4  4E 80 04 20 */	bctr
/* 80254378 0024FFD8  88 07 00 06 */	lbz r0, 6(r7)
/* 8025437C 0024FFDC  90 06 00 00 */	stw r0, 0(r6)
/* 80254380 0024FFE0  4E 80 00 20 */	blr
/* 80254384 0024FFE4  A0 07 00 12 */	lhz r0, 0x12(r7)
/* 80254388 0024FFE8  90 06 00 00 */	stw r0, 0(r6)
/* 8025438C 0024FFEC  4E 80 00 20 */	blr
/* 80254390 0024FFF0  80 07 00 08 */	lwz r0, 8(r7)
/* 80254394 0024FFF4  90 06 00 00 */	stw r0, 0(r6)
/* 80254398 0024FFF8  4E 80 00 20 */	blr
/* 8025439C 0024FFFC  88 07 00 21 */	lbz r0, 0x21(r7)
/* 802543A0 00250000  88 A7 00 22 */	lbz r5, 0x22(r7)
/* 802543A4 00250004  88 87 00 23 */	lbz r4, 0x23(r7)
/* 802543A8 00250008  54 00 80 1E */	slwi r0, r0, 0x10
/* 802543AC 0025000C  88 67 00 20 */	lbz r3, 0x20(r7)
/* 802543B0 00250010  50 A4 44 2E */	rlwimi r4, r5, 8, 0x10, 0x17
/* 802543B4 00250014  50 60 C0 0E */	rlwimi r0, r3, 0x18, 0, 7
/* 802543B8 00250018  7C 80 03 78 */	or r0, r4, r0
/* 802543BC 0025001C  90 06 00 00 */	stw r0, 0(r6)
/* 802543C0 00250020  4E 80 00 20 */	blr
/* 802543C4 00250024  80 07 00 0C */	lwz r0, 0xc(r7)
/* 802543C8 00250028  90 06 00 00 */	stw r0, 0(r6)
/* 802543CC 0025002C  4E 80 00 20 */	blr
/* 802543D0 00250030  88 07 00 9F */	lbz r0, 0x9f(r7)
/* 802543D4 00250034  90 06 00 00 */	stw r0, 0(r6)
/* 802543D8 00250038  4E 80 00 20 */	blr
/* 802543DC 0025003C  88 07 00 07 */	lbz r0, 7(r7)
/* 802543E0 00250040  90 06 00 00 */	stw r0, 0(r6)
/* 802543E4 00250044  4E 80 00 20 */	blr
/* 802543E8 00250048  88 07 00 A1 */	lbz r0, 0xa1(r7)
/* 802543EC 0025004C  90 06 00 00 */	stw r0, 0(r6)
/* 802543F0 00250050  4E 80 00 20 */	blr
/* 802543F4 00250054  80 07 00 24 */	lwz r0, 0x24(r7)
/* 802543F8 00250058  90 06 00 00 */	stw r0, 0(r6)
/* 802543FC 0025005C  4E 80 00 20 */	blr
/* 80254400 00250060  80 07 00 28 */	lwz r0, 0x28(r7)
/* 80254404 00250064  90 06 00 00 */	stw r0, 0(r6)
/* 80254408 00250068  4E 80 00 20 */	blr
/* 8025440C 0025006C  80 07 00 2C */	lwz r0, 0x2c(r7)
/* 80254410 00250070  90 06 00 00 */	stw r0, 0(r6)
/* 80254414 00250074  4E 80 00 20 */	blr
/* 80254418 00250078  80 07 00 30 */	lwz r0, 0x30(r7)
/* 8025441C 0025007C  90 06 00 00 */	stw r0, 0(r6)
/* 80254420 00250080  4E 80 00 20 */	blr
/* 80254424 00250084  80 07 00 34 */	lwz r0, 0x34(r7)
/* 80254428 00250088  90 06 00 00 */	stw r0, 0(r6)
/* 8025442C 0025008C  4E 80 00 20 */	blr
/* 80254430 00250090  4E 80 00 20 */	blr
/* 80254434 00250094  38 00 00 08 */	li r0, 8
/* 80254438 00250098  90 06 00 00 */	stw r0, 0(r6)
/* 8025443C 0025009C  4E 80 00 20 */	blr

.global func_80254440
func_80254440:
/* 80254440 002500A0  38 A0 00 01 */	li r5, 1
/* 80254444 002500A4  38 6D A6 38 */	addi r3, r13, lbl_8063F8F8-_SDA_BASE_
/* 80254448 002500A8  38 80 00 04 */	li r4, 4
/* 8025444C 002500AC  38 00 00 00 */	li r0, 0
/* 80254450 002500B0  98 AD A6 38 */	stb r5, lbl_8063F8F8-_SDA_BASE_(r13)
/* 80254454 002500B4  B0 83 00 02 */	sth r4, 2(r3)
/* 80254458 002500B8  98 03 00 04 */	stb r0, 4(r3)
/* 8025445C 002500BC  4E 80 00 20 */	blr