.include "macros.inc"
.section .text
.global func_8036ead4
.type func_8036ead4, @function
func_8036ead4:
mfmsr r3
rlwinm r4, r3, 0, 0x11, 0xf
mtmsr r4
rlwinm r3, r3, 0x11, 0x1f, 0x1f
.size func_8036ead4, . - func_8036ead4
.global func_8036eae4
.type func_8036eae4, @function
func_8036eae4:
blr
.size func_8036eae4, . - func_8036eae4
.global func_8036eae8
.type func_8036eae8, @function
func_8036eae8:
mfmsr r3
ori r4, r3, 0x8000
mtmsr r4
rlwinm r3, r3, 0x11, 0x1f, 0x1f
blr
.size func_8036eae8, . - func_8036eae8
.global func_8036eafc
.type func_8036eafc, @function
func_8036eafc:
cmpwi r3, 0x0
mfmsr r4
beq- lbl_8036eb10
ori r5, r4, 0x8000
b lbl_8036eb14
lbl_8036eb10:
rlwinm r5, r4, 0, 0x11, 0xf
lbl_8036eb14:
mtmsr r5
rlwinm r3, r4, 0x11, 0x1f, 0x1f
blr
.size func_8036eafc, . - func_8036eafc
.global func_8036eb20
.type func_8036eb20, @function
func_8036eb20:
extsh r0, r3
lwz r3, lbl_805c6868@sda21(0)
slwi r0, r0, 2
add r5, r3, r0
lwz r3, 0(r5)
stw r4, 0(r5)
blr
.size func_8036eb20, . - func_8036eb20
.global func_8036eb3c
.type func_8036eb3c, @function
func_8036eb3c:
extsh r0, r3
lwz r3, lbl_805c6868@sda21(0)
slwi r0, r0, 2
lwzx r3, r3, r0
blr
.size func_8036eb3c, . - func_8036eb3c
.global func_8036eb50
.type func_8036eb50, @function
func_8036eb50:
mflr r0
stw r0, 4(r1)
stwu r1, -0x10(r1)
stw r31, 0xc(r1)
lis r31, 0x8000
addi r0, r31, 0x3040
stw r0, lbl_805c6868@sda21(0)
li r4, 0x0
li r5, 0x80
lwz r3, lbl_805c6868@sda21(0)
bl func_8000e334
li r0, 0x0
stw r0, 0xc4(r31)
lis r3, 0xcc00
addi r4, r3, 0x3000
stw r0, 0xc8(r31)
li r0, 0xf0
li r3, -0x20
stw r0, 4(r4)
bl func_8036ee9c
lis r3, func_8036f2f0@ha
addi r4, r3, func_8036f2f0@l
li r3, 0x4
bl func_8036caec
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
addi r1, r1, 0x10
mtlr r0
blr
.size func_8036eb50, . - func_8036eb50
.global func_8036ebc4
.type func_8036ebc4, @function
func_8036ebc4:
cntlzw r0, r3
cmpwi r0, 0xc
bge- lbl_8036ebf0
cmpwi r0, 0x8
beq- lbl_8036ecd0
bge- lbl_8036ed00
cmpwi r0, 0x5
bge- lbl_8036ec7c
cmpwi r0, 0x0
bge- lbl_8036ec10
b lbl_8036ee98
lbl_8036ebf0:
cmpwi r0, 0x11
bge- lbl_8036ec04
cmpwi r0, 0xf
bge- lbl_8036eda4
b lbl_8036ed50
lbl_8036ec04:
cmpwi r0, 0x1b
bge- lbl_8036ee98
b lbl_8036ede4
lbl_8036ec10:
rlwinm r0, r4, 0, 0, 0
cmplwi r0, 0
li r5, 0x0
bne- lbl_8036ec24
ori r5, r5, 1
lbl_8036ec24:
rlwinm r0, r4, 0, 1, 1
cmplwi r0, 0
bne- lbl_8036ec34
ori r5, r5, 2
lbl_8036ec34:
rlwinm r0, r4, 0, 2, 2
cmplwi r0, 0
bne- lbl_8036ec44
ori r5, r5, 4
lbl_8036ec44:
rlwinm r0, r4, 0, 3, 3
cmplwi r0, 0
bne- lbl_8036ec54
ori r5, r5, 8
lbl_8036ec54:
rlwinm r0, r4, 0, 4, 4
cmplwi r0, 0
bne- lbl_8036ec64
ori r5, r5, 0x10
lbl_8036ec64:
lis r4, 0xcc00
clrlwi r0, r5, 0x10
addi r4, r4, 0x4000
sth r0, 0x1c(r4)
clrlwi r3, r3, 5
b lbl_8036ee98
lbl_8036ec7c:
lis r5, 0xcc00
addi r5, r5, 0x5000
addi r5, r5, 0xa
rlwinm r0, r4, 0, 5, 5
lhz r6, 0(r5)
cmplwi r0, 0
rlwinm r6, r6, 0, 0x1d, 0x16
bne- lbl_8036eca0
ori r6, r6, 0x10
lbl_8036eca0:
rlwinm r0, r4, 0, 6, 6
cmplwi r0, 0
bne- lbl_8036ecb0
ori r6, r6, 0x40
lbl_8036ecb0:
rlwinm r0, r4, 0, 7, 7
cmplwi r0, 0
bne- lbl_8036ecc0
ori r6, r6, 0x100
lbl_8036ecc0:
clrlwi r0, r6, 0x10
sth r0, 0(r5)
rlwinm r3, r3, 0, 8, 4
b lbl_8036ee98
lbl_8036ecd0:
rlwinm r0, r4, 0, 8, 8
lis r4, 0xcc00
cmplwi r0, 0
lwz r5, 0x6c00(r4)
li r0, -0x2d
and r5, r5, r0
bne- lbl_8036ecf0
ori r5, r5, 4
lbl_8036ecf0:
lis r4, 0xcc00
stw r5, 0x6c00(r4)
rlwinm r3, r3, 0, 9, 7
b lbl_8036ee98
lbl_8036ed00:
rlwinm r0, r4, 0, 9, 9
lis r5, 0xcc00
cmplwi r0, 0
lwz r5, 0x6800(r5)
li r0, -0x2c10
and r5, r5, r0
bne- lbl_8036ed20
ori r5, r5, 1
lbl_8036ed20:
rlwinm r0, r4, 0, 0xa, 0xa
cmplwi r0, 0
bne- lbl_8036ed30
ori r5, r5, 4
lbl_8036ed30:
rlwinm r0, r4, 0, 0xb, 0xb
cmplwi r0, 0
bne- lbl_8036ed40
ori r5, r5, 0x400
lbl_8036ed40:
lis r4, 0xcc00
stw r5, 0x6800(r4)
rlwinm r3, r3, 0, 0xc, 8
b lbl_8036ee98
lbl_8036ed50:
lis r5, 0xcc00
addi r6, r5, 0x6800
addi r6, r6, 0x14
rlwinm r0, r4, 0, 0xc, 0xc
lwz r7, 0(r6)
li r5, -0xc10
cmplwi r0, 0
and r7, r7, r5
bne- lbl_8036ed78
ori r7, r7, 1
lbl_8036ed78:
rlwinm r0, r4, 0, 0xd, 0xd
cmplwi r0, 0
bne- lbl_8036ed88
ori r7, r7, 4
lbl_8036ed88:
rlwinm r0, r4, 0, 0xe, 0xe
cmplwi r0, 0
bne- lbl_8036ed98
ori r7, r7, 0x400
lbl_8036ed98:
stw r7, 0(r6)
rlwinm r3, r3, 0, 0xf, 0xb
b lbl_8036ee98
lbl_8036eda4:
lis r5, 0xcc00
addi r5, r5, 0x6800
addi r5, r5, 0x28
rlwinm r0, r4, 0, 0xf, 0xf
lwz r6, 0(r5)
cmplwi r0, 0
rlwinm r6, r6, 0, 0, 0x1b
bne- lbl_8036edc8
ori r6, r6, 1
lbl_8036edc8:
rlwinm r0, r4, 0, 0x10, 0x10
cmplwi r0, 0
bne- lbl_8036edd8
ori r6, r6, 4
lbl_8036edd8:
stw r6, 0(r5)
rlwinm r3, r3, 0, 0x11, 0xe
b lbl_8036ee98
lbl_8036ede4:
rlwinm r0, r4, 0, 0x11, 0x11
cmplwi r0, 0
li r5, 0xf0
bne- lbl_8036edf8
ori r5, r5, 0x800
lbl_8036edf8:
rlwinm r0, r4, 0, 0x14, 0x14
cmplwi r0, 0
bne- lbl_8036ee08
ori r5, r5, 8
lbl_8036ee08:
rlwinm r0, r4, 0, 0x15, 0x15
cmplwi r0, 0
bne- lbl_8036ee18
ori r5, r5, 4
lbl_8036ee18:
rlwinm r0, r4, 0, 0x16, 0x16
cmplwi r0, 0
bne- lbl_8036ee28
ori r5, r5, 2
lbl_8036ee28:
rlwinm r0, r4, 0, 0x17, 0x17
cmplwi r0, 0
bne- lbl_8036ee38
ori r5, r5, 1
lbl_8036ee38:
rlwinm r0, r4, 0, 0x18, 0x18
cmplwi r0, 0
bne- lbl_8036ee48
ori r5, r5, 0x100
lbl_8036ee48:
rlwinm r0, r4, 0, 0x19, 0x19
cmplwi r0, 0
bne- lbl_8036ee58
ori r5, r5, 0x1000
lbl_8036ee58:
rlwinm r0, r4, 0, 0x12, 0x12
cmplwi r0, 0
bne- lbl_8036ee68
ori r5, r5, 0x200
lbl_8036ee68:
rlwinm r0, r4, 0, 0x13, 0x13
cmplwi r0, 0
bne- lbl_8036ee78
ori r5, r5, 0x400
lbl_8036ee78:
rlwinm r0, r4, 0, 0x1a, 0x1a
cmplwi r0, 0
bne- lbl_8036ee88
ori r5, r5, 0x2000
lbl_8036ee88:
lis r4, 0xcc00
addi r4, r4, 0x3000
stw r5, 4(r4)
rlwinm r3, r3, 0, 0x1b, 0x10
lbl_8036ee98:
blr
.size func_8036ebc4, . - func_8036ebc4
.global func_8036ee9c
.type func_8036ee9c, @function
func_8036ee9c:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
stw r30, 0x18(r1)
stw r29, 0x14(r1)
mr r31, r3
bl func_8036ead4
lis r4, 0x8000
lwz r29, 0xc4(r4)
mr r30, r3
lwz r5, 0xc8(r4)
or r0, r29, r5
andc r3, r31, r0
or r31, r31, r29
stw r31, 0xc4(r4)
or r31, r31, r5
b lbl_8036eee4
lbl_8036eee4:
b lbl_8036eee8
lbl_8036eee8:
b lbl_8036eef4
lbl_8036eeec:
mr r4, r31
bl func_8036ebc4
lbl_8036eef4:
cmplwi r3, 0
bne+ lbl_8036eeec
mr r3, r30
bl func_8036eafc
mr r3, r29
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
lwz r29, 0x14(r1)
addi r1, r1, 0x20
mtlr r0
blr
.size func_8036ee9c, . - func_8036ee9c
.global func_8036ef24
.type func_8036ef24, @function
func_8036ef24:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
stw r30, 0x18(r1)
stw r29, 0x14(r1)
mr r31, r3
bl func_8036ead4
lis r4, 0x8000
lwz r29, 0xc4(r4)
mr r30, r3
lwz r5, 0xc8(r4)
or r0, r29, r5
and r3, r31, r0
andc r31, r29, r31
stw r31, 0xc4(r4)
or r31, r31, r5
b lbl_8036ef6c
lbl_8036ef6c:
b lbl_8036ef70
lbl_8036ef70:
b lbl_8036ef7c
lbl_8036ef74:
mr r4, r31
bl func_8036ebc4
lbl_8036ef7c:
cmplwi r3, 0
bne+ lbl_8036ef74
mr r3, r30
bl func_8036eafc
mr r3, r29
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
lwz r29, 0x14(r1)
addi r1, r1, 0x20
mtlr r0
blr
.size func_8036ef24, . - func_8036ef24
.global func_8036efac
.type func_8036efac, @function
func_8036efac:
mflr r0
stw r0, 4(r1)
stwu r1, -0x28(r1)
stw r31, 0x24(r1)
stw r30, 0x20(r1)
stw r29, 0x1c(r1)
mr r30, r4
lis r3, 0xcc00
lwz r31, 0x3000(r3)
rlwinm r31, r31, 0, 0x10, 0xe
cmplwi r31, 0
beq- lbl_8036eff0
addi r3, r3, 0x3000
lwz r0, 4(r3)
and r0, r31, r0
cmplwi r0, 0
bne- lbl_8036eff8
lbl_8036eff0:
mr r3, r30
bl func_8036e180
lbl_8036eff8:
rlwinm r0, r31, 0, 0x18, 0x18
cmplwi r0, 0
li r0, 0x0
beq- lbl_8036f064
lis r3, 0xcc00
addi r3, r3, 0x4000
lhz r4, 0x1e(r3)
clrlwi r3, r4, 0x1f
cmplwi r3, 0
beq- lbl_8036f024
oris r0, r0, 0x8000
lbl_8036f024:
rlwinm r3, r4, 0, 0x1e, 0x1e
cmplwi r3, 0
beq- lbl_8036f034
oris r0, r0, 0x4000
lbl_8036f034:
rlwinm r3, r4, 0, 0x1d, 0x1d
cmplwi r3, 0
beq- lbl_8036f044
oris r0, r0, 0x2000
lbl_8036f044:
rlwinm r3, r4, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f054
oris r0, r0, 0x1000
lbl_8036f054:
rlwinm r3, r4, 0, 0x1b, 0x1b
cmplwi r3, 0
beq- lbl_8036f064
oris r0, r0, 0x800
lbl_8036f064:
rlwinm r3, r31, 0, 0x19, 0x19
cmplwi r3, 0
beq- lbl_8036f0ac
lis r3, 0xcc00
addi r3, r3, 0x5000
lhz r4, 0xa(r3)
rlwinm r3, r4, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f08c
oris r0, r0, 0x400
lbl_8036f08c:
rlwinm r3, r4, 0, 0x1a, 0x1a
cmplwi r3, 0
beq- lbl_8036f09c
oris r0, r0, 0x200
lbl_8036f09c:
rlwinm r3, r4, 0, 0x18, 0x18
cmplwi r3, 0
beq- lbl_8036f0ac
oris r0, r0, 0x100
lbl_8036f0ac:
rlwinm r3, r31, 0, 0x1a, 0x1a
cmplwi r3, 0
beq- lbl_8036f0d0
lis r3, 0xcc00
lwz r3, 0x6c00(r3)
rlwinm r3, r3, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f0d0
oris r0, r0, 0x80
lbl_8036f0d0:
rlwinm r3, r31, 0, 0x1b, 0x1b
cmplwi r3, 0
beq- lbl_8036f17c
lis r3, 0xcc00
lwz r4, 0x6800(r3)
rlwinm r3, r4, 0, 0x1e, 0x1e
cmplwi r3, 0
beq- lbl_8036f0f4
oris r0, r0, 0x40
lbl_8036f0f4:
rlwinm r3, r4, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f104
oris r0, r0, 0x20
lbl_8036f104:
rlwinm r3, r4, 0, 0x14, 0x14
cmplwi r3, 0
beq- lbl_8036f114
oris r0, r0, 0x10
lbl_8036f114:
lis r3, 0xcc00
addi r3, r3, 0x6800
lwz r4, 0x14(r3)
rlwinm r3, r4, 0, 0x1e, 0x1e
cmplwi r3, 0
beq- lbl_8036f130
oris r0, r0, 8
lbl_8036f130:
rlwinm r3, r4, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f140
oris r0, r0, 4
lbl_8036f140:
rlwinm r3, r4, 0, 0x14, 0x14
cmplwi r3, 0
beq- lbl_8036f150
oris r0, r0, 2
lbl_8036f150:
lis r3, 0xcc00
addi r3, r3, 0x6800
lwz r4, 0x28(r3)
rlwinm r3, r4, 0, 0x1e, 0x1e
cmplwi r3, 0
beq- lbl_8036f16c
oris r0, r0, 1
lbl_8036f16c:
rlwinm r3, r4, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f17c
ori r0, r0, 0x8000
lbl_8036f17c:
rlwinm r3, r31, 0, 0x12, 0x12
cmplwi r3, 0
beq- lbl_8036f18c
ori r0, r0, 0x20
lbl_8036f18c:
rlwinm r3, r31, 0, 0x13, 0x13
cmplwi r3, 0
beq- lbl_8036f19c
ori r0, r0, 0x40
lbl_8036f19c:
rlwinm r3, r31, 0, 0x15, 0x15
cmplwi r3, 0
beq- lbl_8036f1ac
ori r0, r0, 0x1000
lbl_8036f1ac:
rlwinm r3, r31, 0, 0x16, 0x16
cmplwi r3, 0
beq- lbl_8036f1bc
ori r0, r0, 0x2000
lbl_8036f1bc:
rlwinm r3, r31, 0, 0x17, 0x17
cmplwi r3, 0
beq- lbl_8036f1cc
ori r0, r0, 0x80
lbl_8036f1cc:
rlwinm r3, r31, 0, 0x1c, 0x1c
cmplwi r3, 0
beq- lbl_8036f1dc
ori r0, r0, 0x800
lbl_8036f1dc:
rlwinm r3, r31, 0, 0x1d, 0x1d
cmplwi r3, 0
beq- lbl_8036f1ec
ori r0, r0, 0x400
lbl_8036f1ec:
rlwinm r3, r31, 0, 0x1e, 0x1e
cmplwi r3, 0
beq- lbl_8036f1fc
ori r0, r0, 0x200
lbl_8036f1fc:
rlwinm r3, r31, 0, 0x14, 0x14
cmplwi r3, 0
beq- lbl_8036f20c
ori r0, r0, 0x4000
lbl_8036f20c:
clrlwi r3, r31, 0x1f
cmplwi r3, 0
beq- lbl_8036f21c
ori r0, r0, 0x100
lbl_8036f21c:
lis r3, 0x8000
lwz r4, 0xc4(r3)
lwz r3, 0xc8(r3)
or r3, r4, r3
andc r4, r0, r3
cmplwi r4, 0
beq- lbl_8036f2cc
lis r3, lbl_804ef518@ha
addi r0, r3, lbl_804ef518@l
mr r3, r0
b lbl_8036f248
lbl_8036f248:
b lbl_8036f24c
lbl_8036f24c:
lwz r0, 0(r3)
and r0, r4, r0
cmplwi r0, 0
beq- lbl_8036f268
cntlzw r0, r0
extsh r29, r0
b lbl_8036f270
lbl_8036f268:
addi r3, r3, 0x4
b lbl_8036f24c
lbl_8036f270:
lwz r3, lbl_805c6868@sda21(0)
slwi r0, r29, 2
lwzx r31, r3, r0
cmplwi r31, 0
beq- lbl_8036f2cc
cmpwi r29, 0x4
ble- lbl_8036f2a4
sth r29, lbl_805c6870@sda21(0)
bl func_803727c4
stw r4, lbl_805c687c@sda21(0)
stw r3, lbl_805c6878@sda21(0)
lwz r0, 0x198(r30)
stw r0, lbl_805c686c@sda21(0)
lbl_8036f2a4:
bl func_803717b4
mr r3, r29
mr r4, r30
mr r12, r31
mtlr r12
blrl
bl func_803717f4
bl func_80371ce8
mr r3, r30
bl func_8036e180
lbl_8036f2cc:
mr r3, r30
bl func_8036e180
lwz r0, 0x2c(r1)
lwz r31, 0x24(r1)
lwz r30, 0x20(r1)
lwz r29, 0x1c(r1)
addi r1, r1, 0x28
mtlr r0
blr
.size func_8036efac, . - func_8036efac
.global func_8036f2f0
.type func_8036f2f0, @function
func_8036f2f0:
stw r0, 0(r4)
stw r1, 4(r4)
stw r2, 8(r4)
stmw r6, 0x18(r4)
mfspr r0, 0x391
stw r0, 0x1a8(r4)
mfspr r0, 0x392
stw r0, 0x1ac(r4)
mfspr r0, 0x393
stw r0, 0x1b0(r4)
mfspr r0, 0x394
stw r0, 0x1b4(r4)
mfspr r0, 0x395
stw r0, 0x1b8(r4)
mfspr r0, 0x396
stw r0, 0x1bc(r4)
mfspr r0, 0x397
stw r0, 0x1c0(r4)
stwu r1, -8(r1)
b func_8036efac
.size func_8036f2f0, . - func_8036f2f0