.include "macros.inc"
.section .text
.global func_8036de4c
.type func_8036de4c, @function
func_8036de4c:
lhz r5, 0x1a2(r4)
clrlwi. r5, r5, 0x1f
beq- lbl_8036df6c
lfd f0, 0x190(r4)
mtfsf 0xff, f0
mfspr r5, 0x398
rlwinm. r5, r5, 3, 0x1f, 0x1f
beq- lbl_8036deec
.4byte 0xe00401c8
.4byte 0xe02401d0
.4byte 0xe04401d8
.4byte 0xe06401e0
.4byte 0xe08401e8
.4byte 0xe0a401f0
.4byte 0xe0c401f8
.4byte 0xe0e40200
.4byte 0xe1040208
.4byte 0xe1240210
.4byte 0xe1440218
.4byte 0xe1640220
.4byte 0xe1840228
.4byte 0xe1a40230
.4byte 0xe1c40238
.4byte 0xe1e40240
.4byte 0xe2040248
.4byte 0xe2240250
.4byte 0xe2440258
.4byte 0xe2640260
.4byte 0xe2840268
.4byte 0xe2a40270
.4byte 0xe2c40278
.4byte 0xe2e40280
.4byte 0xe3040288
.4byte 0xe3240290
.4byte 0xe3440298
.4byte 0xe36402a0
.4byte 0xe38402a8
.4byte 0xe3a402b0
.4byte 0xe3c402b8
.4byte 0xe3e402c0
lbl_8036deec:
lfd f0, 0x90(r4)
lfd f1, 0x98(r4)
lfd f2, 0xa0(r4)
lfd f3, 0xa8(r4)
lfd f4, 0xb0(r4)
lfd f5, 0xb8(r4)
lfd f6, 0xc0(r4)
lfd f7, 0xc8(r4)
lfd f8, 0xd0(r4)
lfd f9, 0xd8(r4)
lfd f10, 0xe0(r4)
lfd f11, 0xe8(r4)
lfd f12, 0xf0(r4)
lfd f13, 0xf8(r4)
lfd f14, 0x100(r4)
lfd f15, 0x108(r4)
lfd f16, 0x110(r4)
lfd f17, 0x118(r4)
lfd f18, 0x120(r4)
lfd f19, 0x128(r4)
lfd f20, 0x130(r4)
lfd f21, 0x138(r4)
lfd f22, 0x140(r4)
lfd f23, 0x148(r4)
lfd f24, 0x150(r4)
lfd f25, 0x158(r4)
lfd f26, 0x160(r4)
lfd f27, 0x168(r4)
lfd f28, 0x170(r4)
lfd f29, 0x178(r4)
lfd f30, 0x180(r4)
lfd f31, 0x188(r4)
lbl_8036df6c:
blr
.size func_8036de4c, . - func_8036de4c
.global func_8036df70
.type func_8036df70, @function
func_8036df70:
lhz r3, 0x1a2(r5)
ori r3, r3, 1
sth r3, 0x1a2(r5)
stfd f0, 0x90(r5)
stfd f1, 0x98(r5)
stfd f2, 0xa0(r5)
stfd f3, 0xa8(r5)
stfd f4, 0xb0(r5)
stfd f5, 0xb8(r5)
stfd f6, 0xc0(r5)
stfd f7, 0xc8(r5)
stfd f8, 0xd0(r5)
stfd f9, 0xd8(r5)
stfd f10, 0xe0(r5)
stfd f11, 0xe8(r5)
stfd f12, 0xf0(r5)
stfd f13, 0xf8(r5)
stfd f14, 0x100(r5)
stfd f15, 0x108(r5)
stfd f16, 0x110(r5)
stfd f17, 0x118(r5)
stfd f18, 0x120(r5)
stfd f19, 0x128(r5)
stfd f20, 0x130(r5)
stfd f21, 0x138(r5)
stfd f22, 0x140(r5)
stfd f23, 0x148(r5)
stfd f24, 0x150(r5)
stfd f25, 0x158(r5)
stfd f26, 0x160(r5)
stfd f27, 0x168(r5)
stfd f28, 0x170(r5)
stfd f29, 0x178(r5)
stfd f30, 0x180(r5)
stfd f31, 0x188(r5)
mffs f0
stfd f0, 0x190(r5)
lfd f0, 0x90(r5)
mfspr r3, 0x398
rlwinm. r3, r3, 3, 0x1f, 0x1f
beq- lbl_8036e094
.4byte 0xf00501c8
.4byte 0xf02501d0
.4byte 0xf04501d8
.4byte 0xf06501e0
.4byte 0xf08501e8
.4byte 0xf0a501f0
.4byte 0xf0c501f8
.4byte 0xf0e50200
.4byte 0xf1050208
.4byte 0xf1250210
.4byte 0xf1450218
.4byte 0xf1650220
.4byte 0xf1850228
.4byte 0xf1a50230
.4byte 0xf1c50238
.4byte 0xf1e50240
.4byte 0xf2050248
.4byte 0xf2250250
.4byte 0xf2450258
.4byte 0xf2650260
.4byte 0xf2850268
.4byte 0xf2a50270
.4byte 0xf2c50278
.4byte 0xf2e50280
.4byte 0xf3050288
.4byte 0xf3250290
.4byte 0xf3450298
.4byte 0xf36502a0
.4byte 0xf38502a8
.4byte 0xf3a502b0
.4byte 0xf3c502b8
.4byte 0xf3e502c0
lbl_8036e094:
blr
.size func_8036df70, . - func_8036df70
.global func_8036e098
.type func_8036e098, @function
func_8036e098:
lis r4, 0x8000
stw r3, 0xd4(r4)
clrlwi r5, r3, 2
stw r5, 0xc0(r4)
lwz r5, 0xd8(r4)
cmpw r5, r3
bne- lbl_8036e0d0
lwz r6, 0x19c(r3)
ori r6, r6, 0x2000
stw r6, 0x19c(r3)
mfmsr r6
ori r6, r6, 2
mtmsr r6
blr
lbl_8036e0d0:
lwz r6, 0x19c(r3)
rlwinm r6, r6, 0, 0x13, 0x11
stw r6, 0x19c(r3)
mfmsr r6
rlwinm r6, r6, 0, 0x13, 0x11
ori r6, r6, 2
mtmsr r6
isync
blr
.size func_8036e098, . - func_8036e098
.global func_8036e0f4
.type func_8036e0f4, @function
func_8036e0f4:
lis r3, 0x8000
lwz r3, 0xd4(r3)
blr
.size func_8036e0f4, . - func_8036e0f4
.global func_8036e100
.type func_8036e100, @function
func_8036e100:
stmw r13, 0x34(r3)
mfspr r0, 0x391
stw r0, 0x1a8(r3)
mfspr r0, 0x392
stw r0, 0x1ac(r3)
mfspr r0, 0x393
stw r0, 0x1b0(r3)
mfspr r0, 0x394
stw r0, 0x1b4(r3)
mfspr r0, 0x395
stw r0, 0x1b8(r3)
mfspr r0, 0x396
stw r0, 0x1bc(r3)
mfspr r0, 0x397
stw r0, 0x1c0(r3)
mfcr r0
stw r0, 0x80(r3)
mflr r0
stw r0, 0x84(r3)
stw r0, 0x198(r3)
mfmsr r0
stw r0, 0x19c(r3)
mfctr r0
stw r0, 0x88(r3)
mfxer r0
stw r0, 0x8c(r3)
stw r1, 4(r3)
stw r2, 8(r3)
li r0, 0x1
stw r0, 0xc(r3)
li r3, 0x0
blr
.size func_8036e100, . - func_8036e100
.global func_8036e180
.type func_8036e180, @function
func_8036e180:
lis r4, func_8036ead4@ha
lwz r6, 0x198(r3)
addi r5, r4, func_8036ead4@l
cmplw r6, r5
blt- lbl_8036e1a8
lis r4, func_8036eae4@ha
addi r0, r4, func_8036eae4@l
cmplw r6, r0
bgt- lbl_8036e1a8
stw r5, 0x198(r3)
lbl_8036e1a8:
lwz r0, 0(r3)
lwz r1, 4(r3)
lwz r2, 8(r3)
lhz r4, 0x1a2(r3)
rlwinm. r5, r4, 0, 0x1e, 0x1e
beq- lbl_8036e1d0
rlwinm r4, r4, 0, 0x1f, 0x1d
sth r4, 0x1a2(r3)
lmw r5, 0x14(r3)
b lbl_8036e1d4
lbl_8036e1d0:
lmw r13, 0x34(r3)
lbl_8036e1d4:
lwz r4, 0x1a8(r3)
mtspr 0x391, r4
lwz r4, 0x1ac(r3)
mtspr 0x392, r4
lwz r4, 0x1b0(r3)
mtspr 0x393, r4
lwz r4, 0x1b4(r3)
mtspr 0x394, r4
lwz r4, 0x1b8(r3)
mtspr 0x395, r4
lwz r4, 0x1bc(r3)
mtspr 0x396, r4
lwz r4, 0x1c0(r3)
mtspr 0x397, r4
lwz r4, 0x80(r3)
mtcrf 0xff, r4
lwz r4, 0x84(r3)
mtlr r4
lwz r4, 0x88(r3)
mtctr r4
lwz r4, 0x8c(r3)
mtxer r4
mfmsr r4
rlwinm r4, r4, 0, 0x11, 0xf
rlwinm r4, r4, 0, 0x1f, 0x1d
mtmsr r4
lwz r4, 0x198(r3)
mtspr 0x1a, r4
lwz r4, 0x19c(r3)
mtspr 0x1b, r4
lwz r4, 0x10(r3)
lwz r3, 0xc(r3)
rfi
.size func_8036e180, . - func_8036e180
.global func_8036e258
.type func_8036e258, @function
func_8036e258:
mr r3, r1
blr
.size func_8036e258, . - func_8036e258
.global func_8036e260
.type func_8036e260, @function
func_8036e260:
li r5, 0x0
sth r5, 0x1a0(r3)
lis r4, 0x8000
sth r5, 0x1a2(r3)
lwz r0, 0xd8(r4)
cmplw r3, r0
bne- lbl_8036e280
stw r5, 0xd8(r4)
lbl_8036e280:
blr
.size func_8036e260, . - func_8036e260
.global func_8036e284
.type func_8036e284, @function
func_8036e284:
stw r4, 0x198(r3)
stw r5, 4(r3)
li r11, 0x0
ori r11, r11, 0x9032
stw r11, 0x19c(r3)
li r0, 0x0
stw r0, 0x80(r3)
stw r0, 0x8c(r3)
stw r2, 8(r3)
stw r13, 0x34(r3)
stw r0, 0xc(r3)
stw r0, 0x10(r3)
stw r0, 0x14(r3)
stw r0, 0x18(r3)
stw r0, 0x1c(r3)
stw r0, 0x20(r3)
stw r0, 0x24(r3)
stw r0, 0x28(r3)
stw r0, 0x2c(r3)
stw r0, 0x30(r3)
stw r0, 0x38(r3)
stw r0, 0x3c(r3)
stw r0, 0x40(r3)
stw r0, 0x44(r3)
stw r0, 0x48(r3)
stw r0, 0x4c(r3)
stw r0, 0x50(r3)
stw r0, 0x54(r3)
stw r0, 0x58(r3)
stw r0, 0x5c(r3)
stw r0, 0x60(r3)
stw r0, 0x64(r3)
stw r0, 0x68(r3)
stw r0, 0x6c(r3)
stw r0, 0x70(r3)
stw r0, 0x74(r3)
stw r0, 0x78(r3)
stw r0, 0x7c(r3)
stw r0, 0x1a4(r3)
stw r0, 0x1a8(r3)
stw r0, 0x1ac(r3)
stw r0, 0x1b0(r3)
stw r0, 0x1b4(r3)
stw r0, 0x1b8(r3)
stw r0, 0x1bc(r3)
stw r0, 0x1c0(r3)
b func_8036e260
.size func_8036e284, . - func_8036e284
.global func_8036e340
.type func_8036e340, @function
func_8036e340:
mflr r0
stw r0, 4(r1)
stwu r1, -0x2f8(r1)
stmw r25, 0x2dc(r1)
mr r28, r3
lis r3, lbl_804ef020@ha
crclr 6
addi r31, r3, lbl_804ef020@l
mr r3, r31
mr r4, r28
bl func_8036e6b4
li r25, 0x0
slwi r0, r25, 2
add r27, r28, r0
b lbl_8036e37c
lbl_8036e37c:
b lbl_8036e380
lbl_8036e380:
b lbl_8036e384
lbl_8036e384:
lwz r8, 0x40(r27)
mr r4, r25
lwz r5, 0(r27)
addi r3, r31, 0x44
crclr 6
mr r6, r5
mr r9, r8
addi r7, r25, 0x10
bl func_8036e6b4
addi r27, r27, 0x4
addi r25, r25, 0x1
cmplwi r25, 0x10
blt+ lbl_8036e384
lwz r4, 0x84(r28)
addi r3, r31, 0x74
lwz r5, 0x80(r28)
crclr 6
bl func_8036e6b4
lwz r4, 0x198(r28)
addi r3, r31, 0xa4
lwz r5, 0x19c(r28)
crclr 6
bl func_8036e6b4
addi r3, r31, 0xd4
crclr 6
bl func_8036e6b4
li r25, 0x0
slwi r0, r25, 2
add r27, r28, r0
b lbl_8036e3fc
lbl_8036e3fc:
b lbl_8036e400
lbl_8036e400:
b lbl_8036e404
lbl_8036e404:
lwz r5, 0x1a4(r27)
mr r4, r25
lwz r7, 0x1b4(r27)
addi r3, r31, 0xe8
addi r6, r25, 0x4
crclr 6
bl func_8036e6b4
addi r27, r27, 0x4
addi r25, r25, 0x1
cmplwi r25, 4
blt+ lbl_8036e404
lhz r0, 0x1a2(r28)
clrlwi r0, r0, 0x1f
cmplwi r0, 0
beq- lbl_8036e578
bl func_8036ead4
lis r6, 0x8000
lwz r0, 0xd4(r6)
li r5, 0x0
addi r4, r1, 0x10
sth r5, 0x1b0(r1)
mr r30, r0
mr r29, r3
sth r5, 0x1b2(r1)
lwz r0, 0xd8(r6)
cmplw r4, r0
bne- lbl_8036e474
stw r5, 0xd8(r6)
lbl_8036e474:
addi r3, r1, 0x10
bl func_8036e098
addi r3, r31, 0x10c
crclr 6
bl func_8036e6b4
li r25, 0x0
slwi r0, r25, 3
add r26, r28, r0
b lbl_8036e498
lbl_8036e498:
b lbl_8036e49c
lbl_8036e49c:
b lbl_8036e4a0
lbl_8036e4a0:
lfd f1, 0x98(r26)
bl func_80393338
mr r27, r3
lfd f1, 0x90(r26)
bl func_80393338
mr r5, r3
crclr 6
mr r4, r25
mr r7, r27
addi r3, r31, 0x120
addi r6, r25, 0x1
bl func_8036e6b4
addi r26, r26, 0x10
addi r25, r25, 0x2
cmplwi r25, 0x20
blt+ lbl_8036e4a0
addi r3, r31, 0x13c
crclr 6
bl func_8036e6b4
li r25, 0x0
slwi r0, r25, 3
add r26, r28, r0
b lbl_8036e4fc
lbl_8036e4fc:
b lbl_8036e500
lbl_8036e500:
b lbl_8036e504
lbl_8036e504:
lfd f1, 0x1d0(r26)
bl func_80393338
mr r27, r3
lfd f1, 0x1c8(r26)
bl func_80393338
mr r5, r3
crclr 6
mr r4, r25
mr r7, r27
addi r3, r31, 0x150
addi r6, r25, 0x1
bl func_8036e6b4
addi r26, r26, 0x10
addi r25, r25, 0x2
cmplwi r25, 0x20
blt+ lbl_8036e504
li r5, 0x0
sth r5, 0x1b0(r1)
lis r3, 0x8000
addi r4, r1, 0x10
sth r5, 0x1b2(r1)
lwz r0, 0xd8(r3)
cmplw r4, r0
bne- lbl_8036e568
stw r5, 0xd8(r3)
lbl_8036e568:
mr r3, r30
bl func_8036e098
mr r3, r29
bl func_8036eafc
lbl_8036e578:
addi r3, r31, 0x170
crclr 6
bl func_8036e6b4
lwz r25, 4(r28)
li r26, 0x0
b lbl_8036e590
lbl_8036e590:
b lbl_8036e594
lbl_8036e594:
b lbl_8036e5b4
lbl_8036e598:
lwz r5, 0(r25)
mr r4, r25
lwz r6, 4(r25)
addi r3, r31, 0x198
crclr 6
bl func_8036e6b4
lwz r25, 0(r25)
lbl_8036e5b4:
cmplwi r25, 0
beq- lbl_8036e5d4
addis r0, r25, 1
cmplwi r0, 0xffff
beq- lbl_8036e5d4
cmplwi r26, 0x10
addi r26, r26, 0x1
blt+ lbl_8036e598
lbl_8036e5d4:
lmw r25, 0x2dc(r1)
lwz r0, 0x2fc(r1)
addi r1, r1, 0x2f8
mtlr r0
blr
.size func_8036e340, . - func_8036e340
.global func_8036e5e8
.type func_8036e5e8, @function
func_8036e5e8:
mfmsr r5
ori r5, r5, 0x2000
mtmsr r5
isync
lwz r5, 0x19c(r4)
ori r5, r5, 0x2000
mtspr 0x1b, r5
lis r3, 0x8000
lwz r5, 0xd8(r3)
stw r4, 0xd8(r3)
cmpw r5, r4
beq- lbl_8036e628
cmpwi r5, 0x0
beq- lbl_8036e624
bl func_8036df70
lbl_8036e624:
bl func_8036de4c
lbl_8036e628:
lwz r3, 0x80(r4)
mtcrf 0xff, r3
lwz r3, 0x84(r4)
mtlr r3
lwz r3, 0x198(r4)
mtspr 0x1a, r3
lwz r3, 0x88(r4)
mtctr r3
lwz r3, 0x8c(r4)
mtxer r3
lhz r3, 0x1a2(r4)
rlwinm r3, r3, 0, 0x1f, 0x1d
sth r3, 0x1a2(r4)
lwz r5, 0x14(r4)
lwz r3, 0xc(r4)
lwz r4, 0x10(r4)
rfi
.size func_8036e5e8, . - func_8036e5e8
.global func_8036e66c
.type func_8036e66c, @function
func_8036e66c:
mflr r0
stw r0, 4(r1)
stwu r1, -8(r1)
lis r3, func_8036e5e8@ha
addi r4, r3, func_8036e5e8@l
li r3, 0x7
bl func_8036caec
li r0, 0x0
crclr 6
lis r4, 0x8000
lis r3, lbl_804ef1d4@ha
stw r0, 0xd8(r4)
addi r3, r3, lbl_804ef1d4@l
bl func_8036c2b0
lwz r0, 0xc(r1)
addi r1, r1, 0x8
mtlr r0
blr
.size func_8036e66c, . - func_8036e66c