summaryrefslogtreecommitdiff
path: root/asm/code_80249BF0.s
blob: 34eaba067e8a4bac20613dc5ad13c475d774f5f2 (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
.include "macros.inc"

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

.global func_80249BF0
func_80249BF0:
/* 80249BF0 00245850  94 21 FF F0 */	stwu r1, -0x10(r1)
/* 80249BF4 00245854  7C 08 02 A6 */	mflr r0
/* 80249BF8 00245858  90 01 00 14 */	stw r0, 0x14(r1)
/* 80249BFC 0024585C  93 E1 00 0C */	stw r31, 0xc(r1)
/* 80249C00 00245860  7C 7F 1B 78 */	mr r31, r3
/* 80249C04 00245864  80 8D A6 00 */	lwz r4, lbl_8063F8C0-_SDA_BASE_(r13)
/* 80249C08 00245868  2C 04 00 00 */	cmpwi r4, 0
/* 80249C0C 0024586C  41 82 00 0C */	beq lbl_80249C18
/* 80249C10 00245870  80 6D 96 28 */	lwz r3, lbl_8063E8E8-_SDA_BASE_(r13)
/* 80249C14 00245874  4B F9 11 35 */	bl func_801DAD48
lbl_80249C18:
/* 80249C18 00245878  3C 60 AA AB */	lis r3, 0xAAAAAAAB@ha
/* 80249C1C 0024587C  38 1F 00 0B */	addi r0, r31, 0xb
/* 80249C20 00245880  38 83 AA AB */	addi r4, r3, 0xAAAAAAAB@l
/* 80249C24 00245884  80 6D 96 28 */	lwz r3, lbl_8063E8E8-_SDA_BASE_(r13)
/* 80249C28 00245888  7C 04 00 16 */	mulhwu r0, r4, r0
/* 80249C2C 0024588C  54 1F E8 FE */	srwi r31, r0, 3
/* 80249C30 00245890  1C 9F 00 0C */	mulli r4, r31, 0xc
/* 80249C34 00245894  4B F9 10 61 */	bl func_801DAC94
/* 80249C38 00245898  34 1F FF FF */	addic. r0, r31, -1
/* 80249C3C 0024589C  90 6D A6 00 */	stw r3, lbl_8063F8C0-_SDA_BASE_(r13)
/* 80249C40 002458A0  39 20 00 00 */	li r9, 0
/* 80249C44 002458A4  90 6D A6 04 */	stw r3, lbl_8063F8C4-_SDA_BASE_(r13)
/* 80249C48 002458A8  41 82 00 94 */	beq lbl_80249CDC
/* 80249C4C 002458AC  28 00 00 08 */	cmplwi r0, 8
/* 80249C50 002458B0  38 9F FF F7 */	addi r4, r31, -9
/* 80249C54 002458B4  40 81 00 64 */	ble lbl_80249CB8
/* 80249C58 002458B8  38 04 00 07 */	addi r0, r4, 7
/* 80249C5C 002458BC  54 00 E8 FE */	srwi r0, r0, 3
/* 80249C60 002458C0  7C 09 03 A6 */	mtctr r0
/* 80249C64 002458C4  28 04 00 00 */	cmplwi r4, 0
/* 80249C68 002458C8  40 81 00 50 */	ble lbl_80249CB8
lbl_80249C6C:
/* 80249C6C 002458CC  38 83 00 0C */	addi r4, r3, 0xc
/* 80249C70 002458D0  38 03 00 18 */	addi r0, r3, 0x18
/* 80249C74 002458D4  90 83 00 00 */	stw r4, 0(r3)
/* 80249C78 002458D8  39 03 00 24 */	addi r8, r3, 0x24
/* 80249C7C 002458DC  38 E3 00 30 */	addi r7, r3, 0x30
/* 80249C80 002458E0  38 C3 00 3C */	addi r6, r3, 0x3c
/* 80249C84 002458E4  90 03 00 0C */	stw r0, 0xc(r3)
/* 80249C88 002458E8  38 A3 00 48 */	addi r5, r3, 0x48
/* 80249C8C 002458EC  38 83 00 54 */	addi r4, r3, 0x54
/* 80249C90 002458F0  38 03 00 60 */	addi r0, r3, 0x60
/* 80249C94 002458F4  91 03 00 18 */	stw r8, 0x18(r3)
/* 80249C98 002458F8  39 29 00 08 */	addi r9, r9, 8
/* 80249C9C 002458FC  90 E3 00 24 */	stw r7, 0x24(r3)
/* 80249CA0 00245900  90 C3 00 30 */	stw r6, 0x30(r3)
/* 80249CA4 00245904  90 A3 00 3C */	stw r5, 0x3c(r3)
/* 80249CA8 00245908  90 83 00 48 */	stw r4, 0x48(r3)
/* 80249CAC 0024590C  90 03 00 54 */	stw r0, 0x54(r3)
/* 80249CB0 00245910  38 63 00 60 */	addi r3, r3, 0x60
/* 80249CB4 00245914  42 00 FF B8 */	bdnz lbl_80249C6C
lbl_80249CB8:
/* 80249CB8 00245918  38 9F FF FF */	addi r4, r31, -1
/* 80249CBC 0024591C  7C 09 20 50 */	subf r0, r9, r4
/* 80249CC0 00245920  7C 09 03 A6 */	mtctr r0
/* 80249CC4 00245924  7C 09 20 40 */	cmplw r9, r4
/* 80249CC8 00245928  40 80 00 14 */	bge lbl_80249CDC
lbl_80249CCC:
/* 80249CCC 0024592C  38 03 00 0C */	addi r0, r3, 0xc
/* 80249CD0 00245930  90 03 00 00 */	stw r0, 0(r3)
/* 80249CD4 00245934  38 63 00 0C */	addi r3, r3, 0xc
/* 80249CD8 00245938  42 00 FF F4 */	bdnz lbl_80249CCC
lbl_80249CDC:
/* 80249CDC 0024593C  38 00 00 00 */	li r0, 0
/* 80249CE0 00245940  90 03 00 00 */	stw r0, 0(r3)
/* 80249CE4 00245944  83 E1 00 0C */	lwz r31, 0xc(r1)
/* 80249CE8 00245948  80 01 00 14 */	lwz r0, 0x14(r1)
/* 80249CEC 0024594C  7C 08 03 A6 */	mtlr r0
/* 80249CF0 00245950  38 21 00 10 */	addi r1, r1, 0x10
/* 80249CF4 00245954  4E 80 00 20 */	blr

.global func_80249CF8
func_80249CF8:
/* 80249CF8 00245958  80 6D A6 04 */	lwz r3, lbl_8063F8C4-_SDA_BASE_(r13)
/* 80249CFC 0024595C  80 03 00 00 */	lwz r0, 0(r3)
/* 80249D00 00245960  90 0D A6 04 */	stw r0, lbl_8063F8C4-_SDA_BASE_(r13)
/* 80249D04 00245964  4E 80 00 20 */	blr

.global func_80249D08
func_80249D08:
/* 80249D08 00245968  80 0D A6 04 */	lwz r0, lbl_8063F8C4-_SDA_BASE_(r13)
/* 80249D0C 0024596C  90 03 00 00 */	stw r0, 0(r3)
/* 80249D10 00245970  90 6D A6 04 */	stw r3, lbl_8063F8C4-_SDA_BASE_(r13)
/* 80249D14 00245974  4E 80 00 20 */	blr

.global func_80249D18
func_80249D18:
/* 80249D18 00245978  38 A0 00 01 */	li r5, 1
/* 80249D1C 0024597C  38 6D A5 F8 */	addi r3, r13, lbl_8063F8B8-_SDA_BASE_
/* 80249D20 00245980  38 80 00 04 */	li r4, 4
/* 80249D24 00245984  38 00 00 00 */	li r0, 0
/* 80249D28 00245988  98 AD A5 F8 */	stb r5, lbl_8063F8B8-_SDA_BASE_(r13)
/* 80249D2C 0024598C  B0 83 00 02 */	sth r4, 2(r3)
/* 80249D30 00245990  98 03 00 04 */	stb r0, 4(r3)
/* 80249D34 00245994  4E 80 00 20 */	blr