.include "macros.inc"
.section .text
.global func_8036c300
.type func_8036c300, @function
func_8036c300:
lwz r3, lbl_805c6818@sda21(0)
cmplwi r3, 0
beq- lbl_8036c318
lwz r3, 0x2c(r3)
cmplwi r3, 0
bne- lbl_8036c324
lbl_8036c318:
lis r3, 0x1000
addi r3, r3, 0x2
b lbl_8036c324
lbl_8036c324:
blr
.size func_8036c300, . - func_8036c300
.global func_8036c328
.type func_8036c328, @function
func_8036c328:
mflr r0
stw r0, 4(r1)
stwu r1, -0x10(r1)
stw r31, 0xc(r1)
bl func_803707b4
addis r0, r3, 0x8000
cmplwi r0, 0
beq- lbl_8036c378
li r0, 0x0
stw r0, lbl_805c6834@sda21(0)
stw r0, lbl_805c6830@sda21(0)
bl func_8036d618
mr r31, r3
bl func_8036d620
subf r31, r3, r31
bl func_8036d620
mr r5, r31
li r4, 0x0
bl func_8000e334
b lbl_8036c43c
lbl_8036c378:
lis r4, 0x8130
lwz r3, -0x2010(r4)
lwz r0, -0x2014(r4)
cmplwi r3, 0
stw r3, lbl_805c6834@sda21(0)
stw r0, lbl_805c6830@sda21(0)
bne- lbl_8036c3b8
bl func_8036d618
mr r31, r3
bl func_8036d620
subf r31, r3, r31
bl func_8036d620
mr r5, r31
li r4, 0x0
bl func_8000e334
b lbl_8036c43c
lbl_8036c3b8:
bl func_8036d620
lwz r0, lbl_805c6834@sda21(0)
cmplw r3, r0
bge- lbl_8036c43c
bl func_8036d618
lwz r0, lbl_805c6834@sda21(0)
cmplw r3, r0
bgt- lbl_8036c3fc
bl func_8036d618
mr r31, r3
bl func_8036d620
subf r31, r3, r31
bl func_8036d620
mr r5, r31
li r4, 0x0
bl func_8000e334
b lbl_8036c43c
lbl_8036c3fc:
bl func_8036d620
lwz r0, lbl_805c6834@sda21(0)
subf r31, r3, r0
bl func_8036d620
mr r5, r31
li r4, 0x0
bl func_8000e334
bl func_8036d618
lwz r31, lbl_805c6830@sda21(0)
cmplw r3, r31
ble- lbl_8036c43c
bl func_8036d618
subf r5, r31, r3
mr r3, r31
li r4, 0x0
bl func_8000e334
lbl_8036c43c:
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
addi r1, r1, 0x10
mtlr r0
blr
.size func_8036c328, . - func_8036c328
.global func_8036c450
.type func_8036c450, @function
func_8036c450:
lwz r0, 0xc(r4)
cmpwi r0, 0x0
beq- lbl_8036c460
b lbl_8036c47c
lbl_8036c460:
lis r3, lbl_8053ebe0@ha
addi r3, r3, lbl_8053ebe0@l
lhz r0, 2(r3)
lis r3, 0x8000
ori r0, r0, 0x8000
sth r0, 0x30e6(r3)
b lbl_8036c488
lbl_8036c47c:
li r0, 0x1
lis r3, 0x8000
sth r0, 0x30e6(r3)
lbl_8036c488:
blr
.size func_8036c450, . - func_8036c450
.global func_8036c48c
.type func_8036c48c, @function
func_8036c48c:
mflr r0
stw r0, 4(r1)
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
stw r30, 0x10(r1)
stw r29, 0xc(r1)
lwz r0, lbl_805c6828@sda21(0)
lis r4, lbl_8053ebe0@ha
lis r3, lbl_804eebb0@ha
cmpwi r0, 0x0
addi r30, r4, lbl_8053ebe0@l
addi r31, r3, lbl_804eebb0@l
bne- lbl_8036c828
li r0, 0x1
stw r0, lbl_805c6828@sda21(0)
bl func_803727e4
stw r4, lbl_805c6844@sda21(0)
stw r3, lbl_805c6840@sda21(0)
bl func_8036ead4
bl func_8036c1e4
bl func_8036c20c
li r0, 0x0
lis r4, 0x8000
stw r0, lbl_805c681c@sda21(0)
stw r4, lbl_805c6818@sda21(0)
stw r0, lbl_805c6924@sda21(0)
lwz r3, 0xf4(r4)
cmplwi r3, 0
beq- lbl_8036c530
addi r0, r3, 0xc
stw r0, lbl_805c681c@sda21(0)
lwz r0, 0x24(r3)
lwz r3, lbl_805c681c@sda21(0)
stw r0, lbl_805c69fc@sda21(0)
lwz r0, 0(r3)
clrlwi r0, r0, 0x18
stb r0, 0x30e8(r4)
lwz r0, lbl_805c69fc@sda21(0)
clrlwi r0, r0, 0x18
stb r0, 0x30e9(r4)
b lbl_8036c554
lbl_8036c530:
lwz r0, 0x34(r4)
cmplwi r0, 0
beq- lbl_8036c554
lbz r3, 0x30e8(r4)
addi r0, 0, lbl_805c6820@sda21
stw r3, lbl_805c6820@sda21(0)
stw r0, lbl_805c681c@sda21(0)
lbz r0, 0x30e9(r4)
stw r0, lbl_805c69fc@sda21(0)
lbl_8036c554:
li r0, 0x1
lwz r3, lbl_805c6818@sda21(0)
stw r0, lbl_805c6924@sda21(0)
lwz r3, 0x30(r3)
cmplwi r3, 0
bne- lbl_8036c578
lis r3, 0x805e
addi r3, r3, 0x29e0
b lbl_8036c578
lbl_8036c578:
bl func_8036d630
lwz r3, lbl_805c6818@sda21(0)
lwz r0, 0x30(r3)
cmplwi r0, 0
bne- lbl_8036c5b8
lwz r3, lbl_805c681c@sda21(0)
cmplwi r3, 0
beq- lbl_8036c5b8
lwz r0, 0(r3)
cmplwi r0, 2
bge- lbl_8036c5b8
lis r3, 0x805e
addi r3, r3, 0x9c8
addi r0, r3, 0x1f
rlwinm r3, r0, 0, 0, 0x1a
bl func_8036d630
lbl_8036c5b8:
lwz r3, lbl_805c6818@sda21(0)
lwz r3, 0x34(r3)
cmplwi r3, 0
bne- lbl_8036c5d4
lis r3, 0x8170
addi r3, r3, 0x0
b lbl_8036c5d4
lbl_8036c5d4:
bl func_8036d628
bl func_8036c844
bl func_803715bc
bl func_8036cc5c
bl func_8036faac
bl func_8036eb50
lis r3, func_803707e4@ha
addi r4, r3, func_803707e4@l
li r3, 0x16
bl func_8036eb20
bl func_8036e66c
bl func_8036dd58
bl func_8042c668
bl func_8042d91c
bl func_80370ce8
bl func_80371620
bl func_8036d638
bl func_8036c1cc
rlwinm r3, r3, 0, 2, 0
bl func_8036c1d4
lwz r3, lbl_805c6818@sda21(0)
addi r4, r3, 0x2c
lwz r0, 0(r4)
rlwinm r0, r0, 0, 3, 3
cmplwi r0, 0
beq- lbl_8036c64c
lis r3, 0x1000
addi r0, r3, 0x4
stw r0, 0(r4)
b lbl_8036c654
lbl_8036c64c:
li r0, 0x1
stw r0, 0(r4)
lbl_8036c654:
lis r3, 0xcc00
lwz r4, lbl_805c6818@sda21(0)
addi r3, r3, 0x3000
lwz r0, 0x2c(r3)
lwz r3, 0x2c(r4)
rlwinm r0, r0, 0, 0, 3
srwi r0, r0, 0x1c
add r0, r3, r0
stw r0, 0x2c(r4)
lwz r0, lbl_805c6838@sda21(0)
cmpwi r0, 0x0
bne- lbl_8036c688
bl func_8036fe88
lbl_8036c688:
mr r3, r31
crclr 6
bl func_8036e6b4
addi r3, r31, 0x20
crclr 6
addi r4, r31, 0x38
addi r5, r31, 0x44
bl func_8036e6b4
addi r3, r31, 0x50
crclr 6
bl func_8036e6b4
lwz r3, lbl_805c6818@sda21(0)
cmplwi r3, 0
beq- lbl_8036c6cc
lwz r4, 0x2c(r3)
cmplwi r4, 0
bne- lbl_8036c6d8
lbl_8036c6cc:
lis r3, 0x1000
addi r4, r3, 0x2
b lbl_8036c6d8
lbl_8036c6d8:
rlwinm r0, r4, 0, 3, 3
cmplwi r0, 0
bne- lbl_8036c6f4
crclr 6
addi r3, r31, 0x60
bl func_8036e6b4
b lbl_8036c77c
lbl_8036c6f4:
lis r3, 0x1000
addi r0, r3, 0x2
cmpw r4, r0
beq- lbl_8036c748
bge- lbl_8036c718
cmpw r4, r3
beq- lbl_8036c728
bge- lbl_8036c738
b lbl_8036c768
lbl_8036c718:
addi r0, r3, 0x4
cmpw r4, r0
bge- lbl_8036c768
b lbl_8036c758
lbl_8036c728:
addi r3, r31, 0x6c
crclr 6
bl func_8036e6b4
b lbl_8036c77c
lbl_8036c738:
addi r3, r31, 0x7c
crclr 6
bl func_8036e6b4
b lbl_8036c77c
lbl_8036c748:
addi r3, r31, 0x8c
crclr 6
bl func_8036e6b4
b lbl_8036c77c
lbl_8036c758:
addi r3, r31, 0x9c
crclr 6
bl func_8036e6b4
b lbl_8036c77c
lbl_8036c768:
addis r4, r4, 0xf000
crclr 6
addi r3, r31, 0xac
addi r4, r4, -0x3
bl func_8036e6b4
lbl_8036c77c:
lwz r4, lbl_805c6818@sda21(0)
addi r3, r31, 0xc0
crclr 6
lwz r0, 0x28(r4)
srwi r4, r0, 0x14
bl func_8036e6b4
bl func_8036d618
mr r29, r3
bl func_8036d620
mr r4, r3
crclr 6
mr r5, r29
addi r3, r31, 0xd0
bl func_8036e6b4
lwz r3, lbl_805c681c@sda21(0)
cmplwi r3, 0
beq- lbl_8036c7d0
lwz r0, 0(r3)
cmplwi r0, 2
blt- lbl_8036c7d0
bl func_80392310
lbl_8036c7d0:
bl func_8036c328
bl func_8036eae8
lwz r0, lbl_805c6838@sda21(0)
cmpwi r0, 0x0
bne- lbl_8036c828
bl func_8037510c
lwz r0, lbl_805c6824@sda21(0)
cmpwi r0, 0x0
beq- lbl_8036c808
lis r3, 1
addi r0, r3, -0x7000
lis r3, 0x8000
sth r0, 0x30e6(r3)
b lbl_8036c828
lbl_8036c808:
mr r3, r30
li r4, 0x20
bl func_8036d8e0
lis r3, func_8036c450@ha
addi r5, r3, func_8036c450@l
mr r4, r30
addi r3, r30, 0x20
bl func_80376e2c
lbl_8036c828:
lwz r0, 0x1c(r1)
lwz r31, 0x14(r1)
lwz r30, 0x10(r1)
lwz r29, 0xc(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_8036c48c, . - func_8036c48c
.global func_8036c844
.type func_8036c844, @function
func_8036c844:
mflr r0
stw r0, 4(r1)
stwu r1, -0x38(r1)
stmw r20, 8(r1)
lis r3, 0x8000
lwz r0, 0x60(r3)
lis r4, func_8036cb84@ha
addi r30, r4, func_8036cb84@l
lis r5, func_8036cb1c@ha
lwz r25, 0(r30)
lis r4, func_8036cbb4@ha
addi r5, r5, func_8036cb1c@l
addi r4, r4, func_8036cbb4@l
lis r6, lbl_804eebb0@ha
cmplwi r0, 0
mr r24, r5
addi r29, r6, lbl_804eebb0@l
subf r23, r5, r4
addi r20, r3, 0x60
bne- lbl_8036c8dc
addi r3, r29, 0x124
crclr 6
bl func_8036c2b0
lis r4, func_8036cac4@ha
lis r3, func_8036cae8@ha
addi r0, r3, func_8036cae8@l
addi r4, r4, func_8036cac4@l
subf r21, r4, r0
mr r3, r20
mr r5, r21
bl func_8000e41c
mr r3, r20
mr r4, r21
bl func_8036d978
sync 0
mr r3, r20
mr r4, r21
bl func_8036d9d8
lbl_8036c8dc:
lis r4, func_8036cae8@ha
lis r3, func_8036caec@ha
addi r31, r4, func_8036cae8@l
addi r0, r3, func_8036caec@l
addi r28, r29, 0xe8
subf r27, r31, r0
li r26, 0x0
b lbl_8036c8fc
lbl_8036c8fc:
lis r3, func_8036cb74@ha
addi r21, r3, func_8036cb74@l
lis r22, 0x6000
b lbl_8036c90c
lbl_8036c90c:
b lbl_8036ca54
lbl_8036c910:
lwz r3, lbl_805c681c@sda21(0)
cmplwi r3, 0
beq- lbl_8036c94c
lwz r0, 0(r3)
cmplwi r0, 2
blt- lbl_8036c94c
mr r3, r26
bl func_8036c294
cmpwi r3, 0x0
beq- lbl_8036c94c
addi r3, r29, 0x140
crclr 6
clrlwi r4, r26, 0x18
bl func_8036c2b0
b lbl_8036ca4c
lbl_8036c94c:
clrlwi r20, r26, 0x18
or r0, r25, r20
stw r0, 0(r30)
mr r3, r26
bl func_8036c294
cmpwi r3, 0x0
beq- lbl_8036c98c
mr r4, r20
crclr 6
addi r3, r29, 0x170
bl func_8036c2b0
mr r3, r21
mr r4, r31
mr r5, r27
bl func_8000e41c
b lbl_8036ca18
lbl_8036c98c:
mr r4, r21
b lbl_8036c994
lbl_8036c994:
cmplwi r27, 0
addi r3, r27, 0x3
srwi r3, r3, 2
ble- lbl_8036ca18
srwi r0, r3, 3
cmplwi r0, 0
mtctr r0
beq- lbl_8036ca04
b lbl_8036c9b8
lbl_8036c9b8:
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
stw r22, 0(r4)
addi r4, r4, 0x4
bdnz lbl_8036c9b8
andi. r3, r3, 7
beq- lbl_8036ca18
lbl_8036ca04:
mtctr r3
b lbl_8036ca0c
lbl_8036ca0c:
stw r22, 0(r4)
addi r4, r4, 0x4
bdnz lbl_8036ca0c
lbl_8036ca18:
lwz r3, 0(r28)
mr r4, r24
mr r5, r23
addis r20, r3, 0x8000
mr r3, r20
bl func_8000e41c
mr r3, r20
mr r4, r23
bl func_8036d978
sync 0
mr r3, r20
mr r4, r23
bl func_8036d9d8
lbl_8036ca4c:
addi r28, r28, 0x4
addi r26, r26, 0x1
lbl_8036ca54:
clrlwi r0, r26, 0x18
cmplwi r0, 0xf
blt+ lbl_8036c910
lis r3, 0x8000
addi r0, r3, 0x3000
stw r0, lbl_805c682c@sda21(0)
li r20, 0x0
b lbl_8036ca74
lbl_8036ca74:
lis r3, func_8036cbb8@ha
addi r23, r3, func_8036cbb8@l
b lbl_8036ca80
lbl_8036ca80:
b lbl_8036ca94
lbl_8036ca84:
mr r3, r20
mr r4, r23
bl func_8036caec
addi r20, r20, 0x1
lbl_8036ca94:
clrlwi r0, r20, 0x18
cmplwi r0, 0xf
blt+ lbl_8036ca84
stw r25, 0(r30)
addi r3, r29, 0x1a0
crclr 6
bl func_8036c2b0
lmw r20, 8(r1)
lwz r0, 0x3c(r1)
addi r1, r1, 0x38
mtlr r0
blr
.size func_8036c844, . - func_8036c844
.global func_8036cac4
.type func_8036cac4, @function
func_8036cac4:
li r5, 0x40
mflr r3
stw r3, 0xc(r5)
lwz r3, 8(r5)
oris r3, r3, 0x8000
mtlr r3
li r3, 0x30
mtmsr r3
blr
.size func_8036cac4, . - func_8036cac4
.global func_8036cae8
.type func_8036cae8, @function
func_8036cae8:
bla 0x60
.size func_8036cae8, . - func_8036cae8
.global func_8036caec
.type func_8036caec, @function
func_8036caec:
clrlwi r0, r3, 0x18
lwz r3, lbl_805c682c@sda21(0)
slwi r0, r0, 2
add r5, r3, r0
lwz r3, 0(r5)
stw r4, 0(r5)
blr
.size func_8036caec, . - func_8036caec
.global func_8036cb08
.type func_8036cb08, @function
func_8036cb08:
clrlwi r0, r3, 0x18
lwz r3, lbl_805c682c@sda21(0)
slwi r0, r0, 2
lwzx r3, r3, r0
blr
.size func_8036cb08, . - func_8036cb08
.global func_8036cb1c
.type func_8036cb1c, @function
func_8036cb1c:
mtspr 0x110, r4
lwz r4, 0xc0(0)
stw r3, 0xc(r4)
mfspr r3, 0x110
stw r3, 0x10(r4)
stw r5, 0x14(r4)
lhz r3, 0x1a2(r4)
ori r3, r3, 2
sth r3, 0x1a2(r4)
mfcr r3
stw r3, 0x80(r4)
mflr r3
stw r3, 0x84(r4)
mfctr r3
stw r3, 0x88(r4)
mfxer r3
stw r3, 0x8c(r4)
mfspr r3, 0x1a
stw r3, 0x198(r4)
mfspr r3, 0x1b
stw r3, 0x19c(r4)
mr r5, r3
.size func_8036cb1c, . - func_8036cb1c
.global func_8036cb74
.type func_8036cb74, @function
func_8036cb74:
nop
mfmsr r3
ori r3, r3, 0x30
mtspr 0x1b, r3
.size func_8036cb74, . - func_8036cb74
.global func_8036cb84
.type func_8036cb84, @function
func_8036cb84:
li r3, 0x0
lwz r4, 0xd4(0)
rlwinm. r5, r5, 0, 0x1e, 0x1e
bne- lbl_8036cba4
lis r5, func_8036cbb8@ha
addi r5, r5, func_8036cbb8@l
mtspr 0x1a, r5
rfi
lbl_8036cba4:
rlwinm r5, r3, 2, 0x16, 0x1d
lwz r5, 0x3000(r5)
mtspr 0x1a, r5
rfi
.size func_8036cb84, . - func_8036cb84
.global func_8036cbb4
.type func_8036cbb4, @function
func_8036cbb4:
nop
.size func_8036cbb4, . - func_8036cbb4
.global func_8036cbb8
.type func_8036cbb8, @function
func_8036cbb8:
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)
mfdsisr r5
mfdar r6
stwu r1, -8(r1)
b func_8036e87c
.size func_8036cbb8, . - func_8036cbb8
.global func_8036cc10
.type func_8036cc10, @function
func_8036cc10:
mflr r0
stw r0, 4(r1)
stwu r1, -8(r1)
bl func_8036c1cc
oris r3, r3, 0xa000
bl func_8036c1d4
bl func_8036da10
sync 0
li r3, 0x0
mtspr 0x390, r3
lwz r0, 0xc(r1)
addi r1, r1, 0x8
mtlr r0
blr
.size func_8036cc10, . - func_8036cc10
.global func_8036cc48
.type func_8036cc48, @function
func_8036cc48:
lis r3, 0xcc00
addi r3, r3, 0x6000
lwz r0, 0x24(r3)
clrlwi r3, r0, 0x18
blr
.size func_8036cc48, . - func_8036cc48