.include "macros.inc"
.section .text
.global func_80370400
.type func_80370400, @function
func_80370400:
lwz r5, lbl_805c6890@sda21(0)
b lbl_8037040c
lbl_80370408:
lwz r5, 8(r5)
lbl_8037040c:
cmplwi r5, 0
beq- lbl_80370424
lwz r4, 4(r5)
lwz r0, 4(r3)
cmplw r4, r0
ble+ lbl_80370408
lbl_80370424:
cmplwi r5, 0
bne- lbl_8037045c
addi r5, 0, lbl_805c6890@sda21
lwzu r4, 4(r5)
cmplwi r4, 0
bne- lbl_80370444
stw r3, lbl_805c6890@sda21(0)
b lbl_80370448
lbl_80370444:
stw r3, 8(r4)
lbl_80370448:
stw r4, 0xc(r3)
li r0, 0x0
stw r0, 8(r3)
stw r3, 0(r5)
blr
lbl_8037045c:
stw r5, 8(r3)
lwz r4, 0xc(r5)
stw r3, 0xc(r5)
cmplwi r4, 0
stw r4, 0xc(r3)
bne- lbl_8037047c
stw r3, lbl_805c6890@sda21(0)
blr
lbl_8037047c:
stw r3, 8(r4)
blr
.size func_80370400, . - func_80370400
.global func_80370484
.type func_80370484, @function
func_80370484:
b lbl_803704a4
lbl_80370488:
mfspr r8, 0x3f0
ori r8, r8, 8
mtspr 0x3f0, r8
isync
sync 0
nop
b lbl_803704a8
lbl_803704a4:
b lbl_803704c4
lbl_803704a8:
mftb r5, 0x10c
lbl_803704ac:
mftb r6, 0x10c
subf r7, r5, r6
cmplwi r7, 0x1124
blt+ lbl_803704ac
nop
b lbl_803704c8
lbl_803704c4:
b lbl_803704e4
lbl_803704c8:
lis r8, 0xcc00
ori r8, r8, 0x3000
li r4, 0x3
stw r4, 0x24(r8)
stw r3, 0x24(r8)
nop
b lbl_803704e8
lbl_803704e4:
b lbl_803704f0
lbl_803704e8:
nop
b lbl_803704e8
lbl_803704f0:
b lbl_80370488
.size func_80370484, . - func_80370484
.global func_803704f4
.type func_803704f4, @function
func_803704f4:
mflr r0
stw r0, 4(r1)
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
mr r31, r3
bl func_8036ead4
lis r3, 0xcc00
addi r3, r3, 0x2000
li r0, 0x0
sth r0, 2(r3)
bl func_8036da10
slwi r3, r31, 3
bl func_80370484
lwz r0, 0x1c(r1)
lwz r31, 0x14(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_803704f4, . - func_803704f4
.global func_8037053c
.type func_8037053c, @function
func_8037053c:
mflr r0
stw r0, 4(r1)
stwu r1, -0x40(r1)
stmw r26, 0x28(r1)
mr r26, r3
mr r29, r4
mr r30, r5
bl func_803717b4
bl func_8036d7f4
cmpwi r26, 0x2
bne- lbl_80370574
li r3, 0x1
bl func_8037b02c
mr r31, r3
lbl_80370574:
b lbl_80370578
lbl_80370578:
b lbl_8037057c
lbl_8037057c:
lwz r27, lbl_805c6890@sda21(0)
li r28, 0x0
b lbl_80370588
lbl_80370588:
b lbl_8037058c
lbl_8037058c:
b lbl_803705b0
lbl_80370590:
li r3, 0x0
lwz r12, 0(r27)
mtlr r12
blrl
cntlzw r0, r3
lwz r27, 8(r27)
srwi r0, r0, 5
or r28, r28, r0
lbl_803705b0:
cmplwi r27, 0
bne+ lbl_80370590
bl func_80371224
cntlzw r0, r3
srwi r0, r0, 5
or r28, r28, r0
cmpwi r28, 0x0
beq- lbl_803705d8
li r0, 0x0
b lbl_803705dc
lbl_803705d8:
li r0, 0x1
lbl_803705dc:
cmpwi r0, 0x0
beq+ lbl_8037057c
cmpwi r26, 0x1
bne- lbl_80370620
cmpwi r30, 0x0
beq- lbl_80370620
bl func_80370e1c
lbz r0, 0x13(r3)
ori r0, r0, 0x40
stb r0, 0x13(r3)
li r3, 0x1
bl func_803711dc
b lbl_80370610
lbl_80370610:
b lbl_80370614
lbl_80370614:
bl func_80371224
cmpwi r3, 0x0
beq+ lbl_80370614
lbl_80370620:
bl func_8036ead4
lwz r28, lbl_805c6890@sda21(0)
li r27, 0x0
b lbl_80370630
lbl_80370630:
b lbl_80370634
lbl_80370634:
b lbl_80370658
lbl_80370638:
li r3, 0x1
lwz r12, 0(r28)
mtlr r12
blrl
cntlzw r0, r3
lwz r28, 8(r28)
srwi r0, r0, 5
or r27, r27, r0
lbl_80370658:
cmplwi r28, 0
bne+ lbl_80370638
bl func_80371224
bl func_8036db38
cmpwi r26, 0x1
bne- lbl_80370694
bl func_8036ead4
lis r3, 0xcc00
addi r3, r3, 0x2000
li r0, 0x0
sth r0, 2(r3)
bl func_8036da10
slwi r3, r29, 3
bl func_80370484
b lbl_803706f0
lbl_80370694:
cmpwi r26, 0x0
bne- lbl_803706f0
lis r3, 0x8000
lwz r3, 0xdc(r3)
b lbl_803706a8
lbl_803706a8:
b lbl_803706ac
lbl_803706ac:
b lbl_803706d8
lbl_803706b0:
lhz r0, 0x2c8(r3)
lwz r27, 0x2fc(r3)
cmpwi r0, 0x4
beq- lbl_803706d0
bge- lbl_803706d4
cmpwi r0, 0x1
beq- lbl_803706d0
b lbl_803706d4
lbl_803706d0:
bl func_80371f58
lbl_803706d4:
mr r3, r27
lbl_803706d8:
cmplwi r3, 0
bne+ lbl_803706b0
bl func_803717f4
mr r3, r29
mr r4, r30
bl func_80370240
lbl_803706f0:
lis r3, 0x8000
lwz r3, 0xdc(r3)
b lbl_803706fc
lbl_803706fc:
b lbl_80370700
lbl_80370700:
b lbl_8037072c
lbl_80370704:
lhz r0, 0x2c8(r3)
lwz r27, 0x2fc(r3)
cmpwi r0, 0x4
beq- lbl_80370724
bge- lbl_80370728
cmpwi r0, 0x1
beq- lbl_80370724
b lbl_80370728
lbl_80370724:
bl func_80371f58
lbl_80370728:
mr r3, r27
lbl_8037072c:
cmplwi r3, 0
bne+ lbl_80370704
lis r29, 0x8000
addi r3, r29, 0x40
li r4, 0x0
li r5, 0x8c
bl func_8000e334
addi r3, r29, 0xd4
li r4, 0x0
li r5, 0x14
bl func_8000e334
addi r3, r29, 0xf4
li r4, 0x0
li r5, 0x4
bl func_8000e334
addi r3, r29, 0x3000
li r4, 0x0
li r5, 0xc0
bl func_8000e334
addi r3, r29, 0x30c8
li r4, 0x0
li r5, 0xc
bl func_8000e334
addi r3, r29, 0x30e2
li r4, 0x0
li r5, 0x1
bl func_8000e334
mr r3, r31
bl func_8037b02c
lmw r26, 0x28(r1)
lwz r0, 0x44(r1)
addi r1, r1, 0x40
mtlr r0
blr
.size func_8037053c, . - func_8037053c
.global func_803707b4
.type func_803707b4, @function
func_803707b4:
lis r3, 0x8000
lbz r0, 0x30e2(r3)
cmplwi r0, 0
beq- lbl_803707cc
lis r3, 0x8000
b lbl_803707e0
lbl_803707cc:
lis r3, 0xcc00
addi r3, r3, 0x3000
lwz r0, 0x24(r3)
rlwinm r0, r0, 0, 0, 0x1c
srwi r3, r0, 3
lbl_803707e0:
blr
.size func_803707b4, . - func_803707b4