.include "macros.inc"
.section .text
.global func_8036cc5c
.type func_8036cc5c, @function
func_8036cc5c:
mflr r0
li r3, 0x8
stw r0, 4(r1)
stwu r1, -8(r1)
bl func_8036cb08
lis r4, func_8036d2b8@ha
addi r4, r4, func_8036d2b8@l
cmplw r3, r4
beq- lbl_8036cc98
li r0, 0x0
addi r3, 0, lbl_805c6848@sda21
stw r0, 4(r3)
li r3, 0x8
stw r0, lbl_805c6848@sda21(0)
bl func_8036caec
lbl_8036cc98:
lwz r0, 0xc(r1)
addi r1, r1, 0x8
mtlr r0
blr
.size func_8036cc5c, . - func_8036cc5c
.global func_8036cca8
.type func_8036cca8, @function
func_8036cca8:
li r0, 0x0
stw r0, 0(r3)
blr
.size func_8036cca8, . - func_8036cca8
.global func_8036ccb4
.type func_8036ccb4, @function
func_8036ccb4:
mflr r0
stw r0, 4(r1)
stwu r1, -0x40(r1)
stmw r25, 0x24(r1)
li r28, 0x0
mr r29, r3
xoris r4, r28, 0x8000
addi r25, r5, 0x0
addi r30, r6, 0x0
addi r31, r7, 0x0
lwz r0, 0x18(r3)
lwz r8, 0x1c(r3)
xoris r3, r0, 0x8000
subfc r0, r8, r28
subfe r3, r3, r4
subfe r3, r4, r4
neg. r3, r3
beq- lbl_8036cd74
bl func_803727e4
lwz r7, 0x20(r29)
xoris r5, r3, 0x8000
lwz r8, 0x24(r29)
xoris r6, r7, 0x8000
subfc r0, r4, r8
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
addi r30, r8, 0x0
addi r25, r7, 0x0
beq- lbl_8036cd74
lwz r27, 0x18(r29)
subfc r4, r8, r4
lwz r26, 0x1c(r29)
subfe r3, r7, r3
addi r5, r27, 0x0
addi r6, r26, 0x0
bl func_803935b0
li r0, 0x1
addc r5, r4, r0
mullw r4, r27, r5
mulhwu r0, r26, r5
adde r3, r3, r28
add r4, r4, r0
mullw r0, r26, r3
mullw r3, r26, r5
add r0, r4, r0
addc r30, r30, r3
adde r25, r25, r0
lbl_8036cd74:
stw r31, 0(r29)
xoris r4, r25, 0x8000
stw r30, 0xc(r29)
stw r25, 8(r29)
lwz r6, lbl_805c6848@sda21(0)
b lbl_8036ce4c
lbl_8036cd8c:
lwz r0, 8(r6)
lwz r5, 0xc(r6)
xoris r3, r0, 0x8000
subfc r0, r5, r30
subfe r3, r3, r4
subfe r3, r4, r4
neg. r3, r3
beq- lbl_8036ce48
lwz r0, 0x10(r6)
stw r0, 0x10(r29)
stw r29, 0x10(r6)
stw r6, 0x14(r29)
lwz r3, 0x10(r29)
cmplwi r3, 0
beq- lbl_8036cdd0
stw r29, 0x14(r3)
b lbl_8036cef0
lbl_8036cdd0:
stw r29, lbl_805c6848@sda21(0)
bl func_803727e4
lwz r6, 0xc(r29)
li r7, 0x0
lwz r0, 8(r29)
xoris r5, r7, 0x8000
subfc r8, r4, r6
subfe r0, r3, r0
xoris r6, r0, 0x8000
subfc r0, r7, r8
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
beq- lbl_8036ce14
li r3, 0x0
bl func_8036c1a8
b lbl_8036cef0
lbl_8036ce14:
lis r4, 0x8000
xoris r3, r7, 0x8000
subfc r0, r4, r8
subfe r3, r3, r6
subfe r3, r6, r6
neg. r3, r3
beq- lbl_8036ce3c
mr r3, r8
bl func_8036c1a8
b lbl_8036cef0
lbl_8036ce3c:
addi r3, r4, -0x1
bl func_8036c1a8
b lbl_8036cef0
lbl_8036ce48:
lwz r6, 0x14(r6)
lbl_8036ce4c:
cmplwi r6, 0
bne+ lbl_8036cd8c
li r30, 0x0
stw r30, 0x14(r29)
addi r3, 0, lbl_805c6848@sda21
lwz r4, 4(r3)
stwu r29, 4(r3)
cmplwi r4, 0
stw r4, 0x10(r29)
beq- lbl_8036ce7c
stw r29, 0x14(r4)
b lbl_8036cef0
lbl_8036ce7c:
stw r29, 0(r3)
stw r29, lbl_805c6848@sda21(0)
bl func_803727e4
lwz r6, 0xc(r29)
xoris r5, r30, 0x8000
lwz r0, 8(r29)
subfc r7, r4, r6
subfe r0, r3, r0
xoris r6, r0, 0x8000
subfc r0, r30, r7
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
beq- lbl_8036cec0
li r3, 0x0
bl func_8036c1a8
b lbl_8036cef0
lbl_8036cec0:
lis r4, 0x8000
xoris r3, r30, 0x8000
subfc r0, r4, r7
subfe r3, r3, r6
subfe r3, r6, r6
neg. r3, r3
beq- lbl_8036cee8
mr r3, r7
bl func_8036c1a8
b lbl_8036cef0
lbl_8036cee8:
addi r3, r4, -0x1
bl func_8036c1a8
lbl_8036cef0:
lmw r25, 0x24(r1)
lwz r0, 0x44(r1)
addi r1, r1, 0x40
mtlr r0
blr
.size func_8036ccb4, . - func_8036ccb4
.global func_8036cf04
.type func_8036cf04, @function
func_8036cf04:
mflr r0
stw r0, 4(r1)
stwu r1, -0x38(r1)
stmw r27, 0x24(r1)
addi r27, r3, 0x0
addi r29, r5, 0x0
addi r28, r6, 0x0
addi r30, r7, 0x0
bl func_8036ead4
li r0, 0x0
stw r0, 0x1c(r27)
mr r31, r3
stw r0, 0x18(r27)
bl func_803727e4
addc r6, r28, r4
adde r5, r29, r3
addi r3, r27, 0x0
addi r7, r30, 0x0
bl func_8036ccb4
mr r3, r31
bl func_8036eafc
lmw r27, 0x24(r1)
lwz r0, 0x3c(r1)
addi r1, r1, 0x38
mtlr r0
blr
.size func_8036cf04, . - func_8036cf04
.global func_8036cf6c
.type func_8036cf6c, @function
func_8036cf6c:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
stw r30, 0x18(r1)
mr r30, r3
stw r29, 0x14(r1)
bl func_8036ead4
lwz r0, 0(r30)
addi r31, r3, 0x0
cmplwi r0, 0
bne- lbl_8036cfa8
mr r3, r31
bl func_8036eafc
b lbl_8036d06c
lbl_8036cfa8:
lwz r29, 0x14(r30)
cmplwi r29, 0
bne- lbl_8036cfc4
lwz r0, 0x10(r30)
addi r3, 0, lbl_805c6848@sda21
stw r0, 4(r3)
b lbl_8036cfcc
lbl_8036cfc4:
lwz r0, 0x10(r30)
stw r0, 0x10(r29)
lbl_8036cfcc:
lwz r3, 0x10(r30)
cmplwi r3, 0
beq- lbl_8036cfe0
stw r29, 0x14(r3)
b lbl_8036d05c
lbl_8036cfe0:
cmplwi r29, 0
stw r29, lbl_805c6848@sda21(0)
beq- lbl_8036d05c
bl func_803727e4
lwz r6, 0xc(r29)
li r7, 0x0
lwz r0, 8(r29)
xoris r5, r7, 0x8000
subfc r8, r4, r6
subfe r0, r3, r0
xoris r6, r0, 0x8000
subfc r0, r7, r8
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
beq- lbl_8036d02c
li r3, 0x0
bl func_8036c1a8
b lbl_8036d05c
lbl_8036d02c:
lis r4, 0x8000
xoris r3, r7, 0x8000
subfc r0, r4, r8
subfe r3, r3, r6
subfe r3, r6, r6
neg. r3, r3
beq- lbl_8036d054
mr r3, r8
bl func_8036c1a8
b lbl_8036d05c
lbl_8036d054:
addi r3, r4, -0x1
bl func_8036c1a8
lbl_8036d05c:
li r0, 0x0
stw r0, 0(r30)
mr r3, r31
bl func_8036eafc
lbl_8036d06c:
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_8036cf6c, . - func_8036cf6c
.global func_8036d088
.type func_8036d088, @function
func_8036d088:
mflr r0
stw r0, 4(r1)
stwu r1, -0x2f0(r1)
stw r31, 0x2ec(r1)
stw r30, 0x2e8(r1)
stw r29, 0x2e4(r1)
mr r29, r4
stw r28, 0x2e0(r1)
bl func_803727e4
lwz r0, lbl_805c6848@sda21(0)
addi r28, r4, 0x0
addi r30, r3, 0x0
cmplwi r0, 0
mr r31, r0
bne- lbl_8036d0cc
mr r3, r29
bl func_8036e180
lbl_8036d0cc:
lwz r0, 8(r31)
xoris r4, r30, 0x8000
lwz r5, 0xc(r31)
xoris r3, r0, 0x8000
subfc r0, r5, r28
subfe r3, r3, r4
subfe r3, r4, r4
neg. r3, r3
beq- lbl_8036d168
bl func_803727e4
lwz r6, 0xc(r31)
li r7, 0x0
lwz r0, 8(r31)
xoris r5, r7, 0x8000
subfc r8, r4, r6
subfe r0, r3, r0
xoris r6, r0, 0x8000
subfc r0, r7, r8
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
beq- lbl_8036d130
li r3, 0x0
bl func_8036c1a8
b lbl_8036d160
lbl_8036d130:
lis r4, 0x8000
xoris r3, r7, 0x8000
subfc r0, r4, r8
subfe r3, r3, r6
subfe r3, r6, r6
neg. r3, r3
beq- lbl_8036d158
mr r3, r8
bl func_8036c1a8
b lbl_8036d160
lbl_8036d158:
addi r3, r4, -0x1
bl func_8036c1a8
lbl_8036d160:
mr r3, r29
bl func_8036e180
lbl_8036d168:
lwz r3, 0x14(r31)
cmplwi r3, 0
stw r3, lbl_805c6848@sda21(0)
bne- lbl_8036d188
li r0, 0x0
addi r3, 0, lbl_805c6848@sda21
stw r0, 4(r3)
b lbl_8036d190
lbl_8036d188:
li r0, 0x0
stw r0, 0x10(r3)
lbl_8036d190:
lwz r30, 0(r31)
li r6, 0x0
xoris r4, r6, 0x8000
stw r6, 0(r31)
lwz r0, 0x18(r31)
lwz r5, 0x1c(r31)
xoris r3, r0, 0x8000
subfc r0, r5, r6
subfe r3, r3, r4
subfe r3, r4, r4
neg. r3, r3
beq- lbl_8036d1d4
addi r3, r31, 0x0
addi r7, r30, 0x0
li r6, 0x0
li r5, 0x0
bl func_8036ccb4
lbl_8036d1d4:
lwz r28, lbl_805c6848@sda21(0)
cmplwi r28, 0
beq- lbl_8036d250
bl func_803727e4
lwz r6, 0xc(r28)
li r7, 0x0
lwz r0, 8(r28)
xoris r5, r7, 0x8000
subfc r8, r4, r6
subfe r0, r3, r0
xoris r6, r0, 0x8000
subfc r0, r7, r8
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
beq- lbl_8036d220
li r3, 0x0
bl func_8036c1a8
b lbl_8036d250
lbl_8036d220:
lis r4, 0x8000
xoris r3, r7, 0x8000
subfc r0, r4, r8
subfe r3, r3, r6
subfe r3, r6, r6
neg. r3, r3
beq- lbl_8036d248
mr r3, r8
bl func_8036c1a8
b lbl_8036d250
lbl_8036d248:
addi r3, r4, -0x1
bl func_8036c1a8
lbl_8036d250:
bl func_803717b4
addi r3, r1, 0x18
bl func_8036e260
addi r3, r1, 0x18
bl func_8036e098
addi r12, r30, 0x0
mtlr r12
addi r3, r31, 0x0
addi r4, r29, 0x0
blrl
addi r3, r1, 0x18
bl func_8036e260
mr r3, r29
bl func_8036e098
bl func_803717f4
bl func_80371ce8
mr r3, r29
bl func_8036e180
lwz r0, 0x2f4(r1)
lwz r31, 0x2ec(r1)
lwz r30, 0x2e8(r1)
lwz r29, 0x2e4(r1)
lwz r28, 0x2e0(r1)
addi r1, r1, 0x2f0
mtlr r0
blr
.size func_8036d088, . - func_8036d088
.global func_8036d2b8
.type func_8036d2b8, @function
func_8036d2b8:
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_8036d088
.size func_8036d2b8, . - func_8036d2b8