.include "macros.inc"
.section .text
.global func_80370b70
.type func_80370b70, @function
func_80370b70:
mflr r0
lis r3, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
addi r31, r3, lbl_8053eca0@l
stw r30, 0x10(r1)
addi r30, r31, 0x40
lwz r4, 0x40(r31)
add r3, r31, r4
subfic r5, r4, 0x40
bl func_80370bd0
stw r3, 0x4c(r31)
lwz r0, 0x4c(r31)
cmpwi r0, 0x0
beq- lbl_80370bb8
li r0, 0x40
stw r0, 0(r30)
lbl_80370bb8:
lwz r0, 0x1c(r1)
lwz r31, 0x14(r1)
lwz r30, 0x10(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_80370b70, . - func_80370b70
.global func_80370bd0
.type func_80370bd0, @function
func_80370bd0:
mflr r0
lis r6, func_80370b70@ha
stw r0, 4(r1)
addi r0, r6, func_80370b70@l
stwu r1, -0x28(r1)
stw r31, 0x24(r1)
addi r31, r4, 0x0
li r4, 0x1
stw r30, 0x20(r1)
addi r30, r5, 0x0
mr r5, r0
stw r29, 0x1c(r1)
addi r29, r3, 0x0
li r3, 0x0
bl func_8042c77c
cmpwi r3, 0x0
bne- lbl_80370c1c
li r3, 0x0
b lbl_80370ccc
lbl_80370c1c:
li r3, 0x0
li r4, 0x1
li r5, 0x3
bl func_8042c07c
cmpwi r3, 0x0
bne- lbl_80370c44
li r3, 0x0
bl func_8042c870
li r3, 0x0
b lbl_80370ccc
lbl_80370c44:
slwi r31, r31, 6
addi r0, r31, 0x100
oris r0, r0, 0xa000
stw r0, 0x14(r1)
addi r4, r1, 0x14
li r3, 0x0
li r5, 0x4
li r6, 0x1
li r7, 0x0
bl func_8042b528
cntlzw r0, r3
srwi r31, r0, 5
li r3, 0x0
bl func_8042b910
cntlzw r0, r3
srwi r0, r0, 5
addi r4, r29, 0x0
addi r5, r30, 0x0
or r31, r31, r0
li r3, 0x0
li r6, 0x1
bl func_8042b784
cntlzw r0, r3
srwi r0, r0, 5
or r31, r31, r0
li r3, 0x0
bl func_8042c1a8
cntlzw r0, r3
srwi r0, r0, 5
or r31, r31, r0
li r3, 0x0
bl func_8042c870
cntlzw r0, r31
srwi r3, r0, 5
lbl_80370ccc:
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_80370bd0, . - func_80370bd0
.global func_80370ce8
.type func_80370ce8, @function
func_80370ce8:
mflr r0
lis r3, lbl_8053eca0@ha
stw r0, 4(r1)
li r4, 0x40
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
li r31, 0x0
stw r30, 0x10(r1)
addi r30, r3, lbl_8053eca0@l
addi r3, r30, 0x0
stw r31, 0x44(r30)
stw r31, 0x48(r30)
bl func_8036d8e0
li r3, 0x0
li r4, 0x1
li r5, 0x0
bl func_8042c77c
cmpwi r3, 0x0
bne- lbl_80370d38
b lbl_80370df8
lbl_80370d38:
li r3, 0x0
li r4, 0x1
li r5, 0x3
bl func_8042c07c
cmpwi r3, 0x0
bne- lbl_80370d5c
li r3, 0x0
bl func_8042c870
b lbl_80370df8
lbl_80370d5c:
lis r3, 0x2000
addi r0, r3, 0x100
stw r0, 8(r1)
addi r4, r1, 0x8
li r3, 0x0
li r5, 0x4
li r6, 0x1
li r7, 0x0
bl func_8042b528
cntlzw r0, r3
srwi r31, r0, 5
li r3, 0x0
bl func_8042b910
cntlzw r0, r3
srwi r0, r0, 5
addi r4, r30, 0x0
or r31, r31, r0
li r3, 0x0
li r5, 0x40
li r6, 0x0
li r7, 0x0
bl func_8042b824
cntlzw r0, r3
srwi r0, r0, 5
or r31, r31, r0
li r3, 0x0
bl func_8042b910
cntlzw r0, r3
srwi r0, r0, 5
or r31, r31, r0
li r3, 0x0
bl func_8042c1a8
cntlzw r0, r3
srwi r0, r0, 5
or r31, r31, r0
li r3, 0x0
bl func_8042c870
cntlzw r0, r31
srwi r31, r0, 5
lbl_80370df8:
stw r31, 0x4c(r30)
li r0, 0x40
stw r0, 0x40(r30)
lwz r0, 0x1c(r1)
lwz r31, 0x14(r1)
lwz r30, 0x10(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_80370ce8, . - func_80370ce8
.global func_80370e1c
.type func_80370e1c, @function
func_80370e1c:
mflr r0
lis r3, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x10(r1)
stw r31, 0xc(r1)
addi r31, r3, lbl_8053eca0@l
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_80370e54
bl func_8036eafc
li r31, 0x0
b lbl_80370e60
lbl_80370e54:
stw r3, 0x44(r31)
li r0, 0x1
stw r0, 0(r4)
lbl_80370e60:
mr r3, r31
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
addi r1, r1, 0x10
mtlr r0
blr
.size func_80370e1c, . - func_80370e1c
.global func_80370e78
.type func_80370e78, @function
func_80370e78:
mflr r0
lis r3, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x10(r1)
stw r31, 0xc(r1)
addi r31, r3, lbl_8053eca0@l
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_80370eb0
bl func_8036eafc
li r3, 0x0
b lbl_80370ec0
lbl_80370eb0:
stw r3, 0x44(r31)
li r0, 0x1
addi r3, r31, 0x14
stw r0, 0(r4)
lbl_80370ec0:
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
addi r1, r1, 0x10
mtlr r0
blr
.size func_80370e78, . - func_80370e78
.global func_80370ed4
.type func_80370ed4, @function
func_80370ed4:
mflr r0
cmpwi r3, 0x0
stw r0, 4(r1)
lis r3, lbl_8053eca0@ha
stwu r1, -0x30(r1)
stmw r27, 0x1c(r1)
addi r31, r3, lbl_8053eca0@l
beq- lbl_803711b4
cmplwi r4, 0
bne- lbl_803710a8
lbz r3, 0x13(r31)
clrlwi r0, r3, 0x1e
cmplwi r0, 2
ble- lbl_80370f14
rlwinm r0, r3, 0, 0, 0x1d
stb r0, 0x13(r31)
lbl_80370f14:
li r0, 0x0
sth r0, 2(r31)
addi r5, r31, 0x14
addi r6, r31, 0xc
addi r3, r5, 0x1
sth r0, 0(r31)
subf r3, r6, r3
cmplw r6, r5
srwi r3, r3, 1
bge- lbl_803710a8
rlwinm. r0, r3, 0x1d, 3, 0x1f
mtctr r0
beq- lbl_80371078
lbl_80370f48:
lhz r5, 0(r31)
lhz r0, 0(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 0(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 2(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 2(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 4(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 4(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 6(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 6(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 8(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 8(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 0xa(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 0xa(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 0xc(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 0xc(r6)
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
lhz r5, 0(r31)
lhz r0, 0xe(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 0xe(r6)
addi r6, r6, 0x10
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
bdnz lbl_80370f48
andi. r3, r3, 7
beq- lbl_803710a8
lbl_80371078:
mtctr r3
lbl_8037107c:
lhz r5, 0(r31)
lhz r0, 0(r6)
add r0, r5, r0
sth r0, 0(r31)
lhz r0, 0(r6)
addi r6, r6, 0x2
lhz r5, 2(r31)
nor r0, r0, r0
add r0, r5, r0
sth r0, 2(r31)
bdnz lbl_8037107c
lbl_803710a8:
addi r30, r31, 0x40
lwz r0, 0x40(r31)
cmplw r4, r0
bge- lbl_803710bc
stw r4, 0(r30)
lbl_803710bc:
lwz r29, 0(r30)
lis r3, func_80370b70@ha
addi r5, r3, func_80370b70@l
subfic r27, r29, 0x40
add r28, r31, r29
li r3, 0x0
li r4, 0x1
bl func_8042c77c
cmpwi r3, 0x0
bne- lbl_803710ec
li r0, 0x0
b lbl_8037119c
lbl_803710ec:
li r3, 0x0
li r4, 0x1
li r5, 0x3
bl func_8042c07c
cmpwi r3, 0x0
bne- lbl_80371114
li r3, 0x0
bl func_8042c870
li r0, 0x0
b lbl_8037119c
lbl_80371114:
slwi r3, r29, 6
addi r0, r3, 0x100
oris r0, r0, 0xa000
stw r0, 0x10(r1)
addi r4, r1, 0x10
li r3, 0x0
li r5, 0x4
li r6, 0x1
li r7, 0x0
bl func_8042b528
cntlzw r0, r3
srwi r29, r0, 5
li r3, 0x0
bl func_8042b910
cntlzw r0, r3
srwi r0, r0, 5
addi r4, r28, 0x0
addi r5, r27, 0x0
or r29, r29, r0
li r3, 0x0
li r6, 0x1
bl func_8042b784
cntlzw r0, r3
srwi r0, r0, 5
or r29, r29, r0
li r3, 0x0
bl func_8042c1a8
cntlzw r0, r3
srwi r0, r0, 5
or r29, r29, r0
li r3, 0x0
bl func_8042c870
cntlzw r0, r29
srwi r0, r0, 5
lbl_8037119c:
stw r0, 0x4c(r31)
lwz r0, 0x4c(r31)
cmpwi r0, 0x0
beq- lbl_803711b4
li r0, 0x40
stw r0, 0(r30)
lbl_803711b4:
li r0, 0x0
stw r0, 0x48(r31)
lwz r3, 0x44(r31)
bl func_8036eafc
lwz r3, 0x4c(r31)
lmw r27, 0x1c(r1)
lwz r0, 0x34(r1)
addi r1, r1, 0x30
mtlr r0
blr
.size func_80370ed4, . - func_80370ed4
.global func_803711dc
.type func_803711dc, @function
func_803711dc:
mflr r0
li r4, 0x0
stw r0, 4(r1)
stwu r1, -8(r1)
bl func_80370ed4
lwz r0, 0xc(r1)
addi r1, r1, 0x8
mtlr r0
blr
.size func_803711dc, . - func_803711dc
.global func_80371200
.type func_80371200, @function
func_80371200:
mflr r0
li r4, 0x14
stw r0, 4(r1)
stwu r1, -8(r1)
bl func_80370ed4
lwz r0, 0xc(r1)
addi r1, r1, 0x8
mtlr r0
blr
.size func_80371200, . - func_80371200
.global func_80371224
.type func_80371224, @function
func_80371224:
lis r3, lbl_8053eca0@ha
addi r3, r3, lbl_8053eca0@l
lwz r3, 0x4c(r3)
blr
.size func_80371224, . - func_80371224
.global func_80371234
.type func_80371234, @function
func_80371234:
mflr r0
lis r3, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
addi r31, r3, lbl_8053eca0@l
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_8037126c
bl func_8036eafc
li r31, 0x0
b lbl_80371278
lbl_8037126c:
stw r3, 0x44(r31)
li r0, 0x1
stw r0, 0(r4)
lbl_80371278:
lbz r0, 0x13(r31)
rlwinm. r0, r0, 0, 0x1d, 0x1d
beq- lbl_8037128c
li r31, 0x1
b lbl_80371290
lbl_8037128c:
li r31, 0x0
lbl_80371290:
li r3, 0x0
li r4, 0x0
bl func_80370ed4
mr r3, r31
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
addi r1, r1, 0x20
mtlr r0
blr
.size func_80371234, . - func_80371234
.global func_803712b4
.type func_803712b4, @function
func_803712b4:
mflr r0
lis r4, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
addi r31, r4, lbl_8053eca0@l
stw r30, 0x18(r1)
rlwinm r30, r3, 2, 0x1d, 0x1d
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_803712f4
bl func_8036eafc
li r31, 0x0
b lbl_80371300
lbl_803712f4:
stw r3, 0x44(r31)
li r0, 0x1
stw r0, 0(r4)
lbl_80371300:
lbz r3, 0x13(r31)
rlwinm r0, r3, 0, 0x1d, 0x1d
cmplw r30, r0
bne- lbl_80371320
li r3, 0x0
li r4, 0x0
bl func_80370ed4
b lbl_80371340
lbl_80371320:
rlwinm r0, r3, 0, 0x1e, 0x1c
stb r0, 0x13(r31)
li r3, 0x1
li r4, 0x0
lbz r0, 0x13(r31)
or r0, r0, r30
stb r0, 0x13(r31)
bl func_80370ed4
lbl_80371340:
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
addi r1, r1, 0x20
mtlr r0
blr
.size func_803712b4, . - func_803712b4
.global func_80371358
.type func_80371358, @function
func_80371358:
mflr r0
lis r3, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
addi r31, r3, lbl_8053eca0@l
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_80371390
bl func_8036eafc
li r31, 0x0
b lbl_8037139c
lbl_80371390:
stw r3, 0x44(r31)
li r0, 0x1
stw r0, 0(r4)
lbl_8037139c:
lbz r0, 0x13(r31)
li r3, 0x0
li r4, 0x0
rlwinm r31, r0, 0x19, 0x1f, 0x1f
bl func_80370ed4
mr r3, r31
lwz r0, 0x1c(r1)
lwz r31, 0x14(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_80371358, . - func_80371358
.global func_803713c8
.type func_803713c8, @function
func_803713c8:
mflr r0
lis r4, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
addi r31, r4, lbl_8053eca0@l
stw r30, 0x18(r1)
rlwinm r30, r3, 7, 0x18, 0x18
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_80371408
bl func_8036eafc
li r31, 0x0
b lbl_80371414
lbl_80371408:
stw r3, 0x44(r31)
li r0, 0x1
stw r0, 0(r4)
lbl_80371414:
lbz r3, 0x13(r31)
rlwinm r0, r3, 0, 0x18, 0x18
cmplw r30, r0
bne- lbl_80371434
li r3, 0x0
li r4, 0x0
bl func_80370ed4
b lbl_80371454
lbl_80371434:
rlwinm r0, r3, 0, 0x19, 0x17
stb r0, 0x13(r31)
li r3, 0x1
li r4, 0x0
lbz r0, 0x13(r31)
or r0, r0, r30
stb r0, 0x13(r31)
bl func_80370ed4
lbl_80371454:
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
addi r1, r1, 0x20
mtlr r0
blr
.size func_803713c8, . - func_803713c8
.global func_8037146c
.type func_8037146c, @function
func_8037146c:
mflr r0
lis r4, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
addi r31, r4, lbl_8053eca0@l
stw r30, 0x18(r1)
addi r30, r3, 0x0
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_803714ac
bl func_8036eafc
li r3, 0x0
b lbl_803714bc
lbl_803714ac:
stw r3, 0x44(r31)
li r0, 0x1
addi r3, r31, 0x14
stw r0, 0(r4)
lbl_803714bc:
slwi r0, r30, 1
add r3, r3, r0
lhz r31, 0x1c(r3)
li r3, 0x0
li r4, 0x14
bl func_80370ed4
mr r3, r31
lwz r0, 0x24(r1)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
addi r1, r1, 0x20
mtlr r0
blr
.size func_8037146c, . - func_8037146c
.global func_803714f0
.type func_803714f0, @function
func_803714f0:
mflr r0
lis r5, lbl_8053eca0@ha
stw r0, 4(r1)
stwu r1, -0x28(r1)
stw r31, 0x24(r1)
addi r31, r5, lbl_8053eca0@l
stw r30, 0x20(r1)
addi r30, r4, 0x0
stw r29, 0x1c(r1)
addi r29, r3, 0x0
bl func_8036ead4
lwz r0, 0x48(r31)
addi r4, r31, 0x48
cmpwi r0, 0x0
beq- lbl_80371538
bl func_8036eafc
li r3, 0x0
b lbl_80371548
lbl_80371538:
stw r3, 0x44(r31)
li r0, 0x1
addi r3, r31, 0x14
stw r0, 0(r4)
lbl_80371548:
slwi r0, r29, 1
add r4, r3, r0
lhzu r3, 0x1c(r4)
clrlwi r0, r30, 0x10
cmplw r3, r0
beq- lbl_80371574
sth r30, 0(r4)
li r3, 0x1
li r4, 0x14
bl func_80370ed4
b lbl_80371580
lbl_80371574:
li r3, 0x0
li r4, 0x14
bl func_80370ed4
lbl_80371580:
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_803714f0, . - func_803714f0