.include "macros.inc"
.section .text
.global func_8036f340
.type func_8036f340, @function
func_8036f340:
blr
.size func_8036f340, . - func_8036f340
.global func_8036f344
.type func_8036f344, @function
func_8036f344:
blr
.size func_8036f344, . - func_8036f344
.global func_8036f348
.type func_8036f348, @function
func_8036f348:
mflr r0
stw r0, 4(r1)
stwu r1, -0x40(r1)
stmw r23, 0x1c(r1)
or. r26, r3, r3
addi r27, r4, 0x0
beq- lbl_8036f36c
lwz r31, 0(r26)
b lbl_8036f370
lbl_8036f36c:
li r31, 0x0
lbl_8036f370:
lwz r3, 0x28(r27)
lwz r0, 0x2c(r27)
addi r4, r3, 0x0
add r3, r3, r0
addi r0, r3, 0x7
subf r0, r4, r0
srwi r0, r0, 3
cmplw r4, r3
mtctr r0
bge- lbl_8036f3ac
lbl_8036f398:
lwz r0, 0(r4)
cmplw r0, r31
beq- lbl_8036f3b4
addi r4, r4, 0x8
bdnz lbl_8036f398
lbl_8036f3ac:
li r3, 0x0
b lbl_8036f5a8
lbl_8036f3b4:
lis r3, lbl_804ef548@ha
lwz r30, 4(r4)
addi r25, r3, lbl_804ef548@l
li r29, 0x0
b lbl_8036f570
lbl_8036f3c8:
lhz r0, 0(r30)
cmplwi r31, 0
add r28, r28, r0
beq- lbl_8036f3f0
lbz r0, 3(r30)
lwz r3, 0x10(r26)
slwi r0, r0, 3
lwzx r0, r3, r0
rlwinm r5, r0, 0, 0, 0x1e
b lbl_8036f3f4
lbl_8036f3f0:
li r5, 0x0
lbl_8036f3f4:
cmpwi r4, 0x6
beq- lbl_8036f4b0
bge- lbl_8036f42c
cmpwi r4, 0x2
beq- lbl_8036f460
bge- lbl_8036f41c
cmpwi r4, 0x0
beq- lbl_8036f56c
bge- lbl_8036f450
b lbl_8036f560
lbl_8036f41c:
cmpwi r4, 0x4
beq- lbl_8036f48c
bge- lbl_8036f49c
b lbl_8036f47c
lbl_8036f42c:
cmpwi r4, 0xc9
beq- lbl_8036f56c
bge- lbl_8036f444
cmpwi r4, 0xa
beq- lbl_8036f4dc
b lbl_8036f560
lbl_8036f444:
cmpwi r4, 0xcb
bge- lbl_8036f560
b lbl_8036f4fc
lbl_8036f450:
lwz r0, 4(r30)
add r0, r5, r0
stw r0, 0(r28)
b lbl_8036f56c
lbl_8036f460:
lwz r0, 4(r30)
lwz r3, 0(r28)
add r0, r5, r0
rlwinm r3, r3, 0, 0x1e, 5
rlwimi r3, r0, 0, 6, 0x1d
stw r3, 0(r28)
b lbl_8036f56c
lbl_8036f47c:
lwz r0, 4(r30)
add r0, r5, r0
sth r0, 0(r28)
b lbl_8036f56c
lbl_8036f48c:
lwz r0, 4(r30)
add r0, r5, r0
sth r0, 0(r28)
b lbl_8036f56c
lbl_8036f49c:
lwz r0, 4(r30)
add r0, r5, r0
srwi r0, r0, 0x10
sth r0, 0(r28)
b lbl_8036f56c
lbl_8036f4b0:
lwz r0, 4(r30)
add r4, r5, r0
rlwinm. r0, r4, 0, 0x10, 0x10
beq- lbl_8036f4c8
li r3, 0x1
b lbl_8036f4cc
lbl_8036f4c8:
li r3, 0x0
lbl_8036f4cc:
srwi r0, r4, 0x10
add r0, r0, r3
sth r0, 0(r28)
b lbl_8036f56c
lbl_8036f4dc:
lwz r0, 4(r30)
lwz r3, 0(r28)
add r0, r5, r0
subf r0, r28, r0
rlwinm r3, r3, 0, 0x1e, 5
rlwimi r3, r0, 0, 6, 0x1d
stw r3, 0(r28)
b lbl_8036f56c
lbl_8036f4fc:
lbz r0, 3(r30)
cmplwi r29, 0
lwz r3, 0x10(r27)
slwi r0, r0, 3
add r3, r3, r0
lwz r0, 0(r3)
addi r23, r3, 0x0
rlwinm r28, r0, 0, 0, 0x1e
beq- lbl_8036f540
lwz r0, 0(r29)
lwz r4, 4(r29)
rlwinm r24, r0, 0, 0, 0x1e
addi r3, r24, 0x0
bl func_8036d910
mr r3, r24
lwz r4, 4(r29)
bl func_8036d9d8
lbl_8036f540:
lwz r0, 0(r23)
clrlwi. r0, r0, 0x1f
beq- lbl_8036f554
mr r0, r23
b lbl_8036f558
lbl_8036f554:
li r0, 0x0
lbl_8036f558:
mr r29, r0
b lbl_8036f56c
lbl_8036f560:
addi r3, r25, 0x0
crclr 6
bl func_8036e6b4
lbl_8036f56c:
addi r30, r30, 0x8
lbl_8036f570:
lbz r4, 2(r30)
cmplwi r4, 0xcb
bne+ lbl_8036f3c8
cmplwi r29, 0
beq- lbl_8036f5a4
lwz r0, 0(r29)
lwz r4, 4(r29)
rlwinm r25, r0, 0, 0, 0x1e
addi r3, r25, 0x0
bl func_8036d910
mr r3, r25
lwz r4, 4(r29)
bl func_8036d9d8
lbl_8036f5a4:
li r3, 0x1
lbl_8036f5a8:
lmw r23, 0x1c(r1)
lwz r0, 0x44(r1)
addi r1, r1, 0x40
mtlr r0
blr
.size func_8036f348, . - func_8036f348
.global func_8036f5bc
.type func_8036f5bc, @function
func_8036f5bc:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
mr r31, r3
stw r30, 0x18(r1)
addi r30, r4, 0x0
stw r29, 0x14(r1)
lwz r0, 0x1c(r3)
cmplwi r0, 2
bgt- lbl_8036f624
blt- lbl_8036f62c
lwz r3, 0x40(r31)
cmplwi r3, 0
beq- lbl_8036f608
divwu r0, r31, r3
mullw r0, r0, r3
subf. r0, r0, r31
bne- lbl_8036f624
lbl_8036f608:
lwz r3, 0x44(r31)
cmplwi r3, 0
beq- lbl_8036f62c
divwu r0, r30, r3
mullw r0, r0, r3
subf. r0, r0, r30
beq- lbl_8036f62c
lbl_8036f624:
li r3, 0x0
b lbl_8036f7f0
lbl_8036f62c:
lis r3, 0x8000
addi r5, r3, 0x30c8
lwzu r4, 4(r5)
cmplwi r4, 0
bne- lbl_8036f648
stw r31, 0x30c8(r3)
b lbl_8036f64c
lbl_8036f648:
stw r31, 4(r4)
lbl_8036f64c:
stw r4, 8(r31)
li r29, 0x0
addi r3, r30, 0x0
stw r29, 4(r31)
li r4, 0x0
stw r31, 0(r5)
lwz r5, 0x20(r31)
bl func_8000e334
lwz r0, 0x10(r31)
li r4, 0x0
add r0, r0, r31
stw r0, 0x10(r31)
lwz r0, 0x24(r31)
add r0, r0, r31
stw r0, 0x24(r31)
lwz r0, 0x28(r31)
add r0, r0, r31
stw r0, 0x28(r31)
b lbl_8036f6d8
lbl_8036f698:
lwz r0, 0x10(r31)
add r3, r0, r29
lwz r0, 0(r3)
cmplwi r0, 0
beq- lbl_8036f6b8
add r0, r0, r31
stw r0, 0(r3)
b lbl_8036f6d0
lbl_8036f6b8:
lwz r0, 4(r3)
cmplwi r0, 0
beq- lbl_8036f6d0
stw r30, 0(r3)
lwz r0, 4(r3)
add r30, r30, r0
lbl_8036f6d0:
addi r29, r29, 0x8
addi r4, r4, 0x1
lbl_8036f6d8:
lwz r0, 0xc(r31)
cmplw r4, r0
blt+ lbl_8036f698
lwz r4, 0x28(r31)
b lbl_8036f6fc
lbl_8036f6ec:
lwz r0, 4(r4)
add r0, r0, r31
stw r0, 4(r4)
addi r4, r4, 0x8
lbl_8036f6fc:
lwz r3, 0x28(r31)
lwz r0, 0x2c(r31)
add r0, r3, r0
cmplw r4, r0
blt+ lbl_8036f6ec
lbz r0, 0x30(r31)
cmplwi r0, 0
beq- lbl_8036f738
lwz r3, 0x10(r31)
slwi r0, r0, 3
lwz r4, 0x34(r31)
lwzx r0, r3, r0
rlwinm r0, r0, 0, 0, 0x1e
add r0, r4, r0
stw r0, 0x34(r31)
lbl_8036f738:
lbz r0, 0x31(r31)
cmplwi r0, 0
beq- lbl_8036f760
lwz r3, 0x10(r31)
slwi r0, r0, 3
lwz r4, 0x38(r31)
lwzx r0, r3, r0
rlwinm r0, r0, 0, 0, 0x1e
add r0, r4, r0
stw r0, 0x38(r31)
lbl_8036f760:
lbz r0, 0x32(r31)
cmplwi r0, 0
beq- lbl_8036f788
lwz r3, 0x10(r31)
slwi r0, r0, 3
lwz r4, 0x3c(r31)
lwzx r0, r3, r0
rlwinm r0, r0, 0, 0, 0x1e
add r0, r4, r0
stw r0, 0x3c(r31)
lbl_8036f788:
lis r3, 0x8000
lwz r3, 0x30d0(r3)
cmplwi r3, 0
beq- lbl_8036f7a4
lwz r0, 0x14(r31)
add r0, r0, r3
stw r0, 0x14(r31)
lbl_8036f7a4:
li r3, 0x0
addi r4, r31, 0x0
bl func_8036f348
lis r3, 0x8000
lwz r29, 0x30c8(r3)
b lbl_8036f7e0
lbl_8036f7bc:
addi r3, r31, 0x0
addi r4, r29, 0x0
bl func_8036f348
cmplw r29, r31
beq- lbl_8036f7dc
addi r3, r29, 0x0
addi r4, r31, 0x0
bl func_8036f348
lbl_8036f7dc:
lwz r29, 4(r29)
lbl_8036f7e0:
cmplwi r29, 0
bne+ lbl_8036f7bc
bl func_8036f340
li r3, 0x1
lbl_8036f7f0:
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_8036f5bc, . - func_8036f5bc
.global func_8036f80c
.type func_8036f80c, @function
func_8036f80c:
mflr r0
stw r0, 4(r1)
stwu r1, -0x38(r1)
stmw r25, 0x1c(r1)
mr r28, r4
lwz r4, 0(r3)
lwz r3, 0x28(r28)
lwz r0, 0x2c(r28)
addi r5, r3, 0x0
add r3, r3, r0
addi r0, r3, 0x7
subf r0, r5, r0
srwi r0, r0, 3
cmplw r5, r3
mtctr r0
bge- lbl_8036f860
lbl_8036f84c:
lwz r0, 0(r5)
cmplw r0, r4
beq- lbl_8036f868
addi r5, r5, 0x8
bdnz lbl_8036f84c
lbl_8036f860:
li r3, 0x0
b lbl_8036fa04
lbl_8036f868:
lis r3, lbl_804ef570@ha
lwz r31, 4(r5)
addi r27, r3, lbl_804ef570@l
li r30, 0x0
b lbl_8036f9cc
lbl_8036f87c:
lhz r0, 0(r31)
cmpwi r4, 0x6
li r3, 0x0
add r29, r29, r0
beq- lbl_8036f924
bge- lbl_8036f8c0
cmpwi r4, 0x2
beq- lbl_8036f8f0
bge- lbl_8036f8b0
cmpwi r4, 0x0
beq- lbl_8036f9c8
bge- lbl_8036f8e4
b lbl_8036f9bc
lbl_8036f8b0:
cmpwi r4, 0x4
beq- lbl_8036f90c
bge- lbl_8036f918
b lbl_8036f900
lbl_8036f8c0:
cmpwi r4, 0xc9
beq- lbl_8036f9c8
bge- lbl_8036f8d8
cmpwi r4, 0xa
beq- lbl_8036f930
b lbl_8036f9bc
lbl_8036f8d8:
cmpwi r4, 0xcb
bge- lbl_8036f9bc
b lbl_8036f958
lbl_8036f8e4:
li r0, 0x0
stw r0, 0(r29)
b lbl_8036f9c8
lbl_8036f8f0:
lwz r0, 0(r29)
rlwinm r0, r0, 0, 0x1e, 5
stw r0, 0(r29)
b lbl_8036f9c8
lbl_8036f900:
li r0, 0x0
sth r0, 0(r29)
b lbl_8036f9c8
lbl_8036f90c:
li r0, 0x0
sth r0, 0(r29)
b lbl_8036f9c8
lbl_8036f918:
li r0, 0x0
sth r0, 0(r29)
b lbl_8036f9c8
lbl_8036f924:
li r0, 0x0
sth r0, 0(r29)
b lbl_8036f9c8
lbl_8036f930:
lbz r0, 0x32(r28)
cmplwi r0, 0
beq- lbl_8036f944
lwz r0, 0x3c(r28)
subf r3, r29, r0
lbl_8036f944:
lwz r0, 0(r29)
rlwinm r0, r0, 0, 0x1e, 5
rlwimi r0, r3, 0, 6, 0x1d
stw r0, 0(r29)
b lbl_8036f9c8
lbl_8036f958:
lbz r0, 3(r31)
cmplwi r30, 0
lwz r3, 0x10(r28)
slwi r0, r0, 3
add r3, r3, r0
lwz r0, 0(r3)
addi r26, r3, 0x0
rlwinm r29, r0, 0, 0, 0x1e
beq- lbl_8036f99c
lwz r0, 0(r30)
lwz r4, 4(r30)
rlwinm r25, r0, 0, 0, 0x1e
addi r3, r25, 0x0
bl func_8036d910
mr r3, r25
lwz r4, 4(r30)
bl func_8036d9d8
lbl_8036f99c:
lwz r0, 0(r26)
clrlwi. r0, r0, 0x1f
beq- lbl_8036f9b0
mr r0, r26
b lbl_8036f9b4
lbl_8036f9b0:
li r0, 0x0
lbl_8036f9b4:
mr r30, r0
b lbl_8036f9c8
lbl_8036f9bc:
addi r3, r27, 0x0
crclr 6
bl func_8036e6b4
lbl_8036f9c8:
addi r31, r31, 0x8
lbl_8036f9cc:
lbz r4, 2(r31)
cmplwi r4, 0xcb
bne+ lbl_8036f87c
cmplwi r30, 0
beq- lbl_8036fa00
lwz r0, 0(r30)
lwz r4, 4(r30)
rlwinm r27, r0, 0, 0, 0x1e
addi r3, r27, 0x0
bl func_8036d910
mr r3, r27
lwz r4, 4(r30)
bl func_8036d9d8
lbl_8036fa00:
li r3, 0x1
lbl_8036fa04:
lmw r25, 0x1c(r1)
lwz r0, 0x3c(r1)
addi r1, r1, 0x38
mtlr r0
blr
.size func_8036f80c, . - func_8036f80c
.global func_8036fa18
.type func_8036fa18, @function
func_8036fa18:
mflr r0
stw r0, 4(r1)
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
mr r31, r3
stw r30, 0x10(r1)
lwz r4, 4(r3)
lwz r5, 8(r3)
cmplwi r4, 0
bne- lbl_8036fa4c
lis r3, 0x8000
stw r5, 0x30cc(r3)
b lbl_8036fa50
lbl_8036fa4c:
stw r5, 8(r4)
lbl_8036fa50:
cmplwi r5, 0
bne- lbl_8036fa64
lis r3, 0x8000
stw r4, 0x30c8(r3)
b lbl_8036fa68
lbl_8036fa64:
stw r4, 4(r5)
lbl_8036fa68:
lis r3, 0x8000
lwz r30, 0x30c8(r3)
b lbl_8036fa84
lbl_8036fa74:
addi r3, r31, 0x0
addi r4, r30, 0x0
bl func_8036f80c
lwz r30, 4(r30)
lbl_8036fa84:
cmplwi r30, 0
bne+ lbl_8036fa74
bl func_8036f344
lwz r0, 0x1c(r1)
li r3, 0x1
lwz r31, 0x14(r1)
lwz r30, 0x10(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_8036fa18, . - func_8036fa18
.global func_8036faac
.type func_8036faac, @function
func_8036faac:
lis r4, 0x8000
li r0, 0x0
stw r0, 0x30cc(r4)
stw r0, 0x30c8(r4)
stw r0, 0x30d0(r4)
blr
.size func_8036faac, . - func_8036faac