.include "macros.inc"
.section .text
.global func_8036d638
.type func_8036d638, @function
func_8036d638:
mflr r0
stw r0, 4(r1)
stwu r1, -0x30(r1)
stmw r25, 0x14(r1)
bl func_8036d618
lis r4, 0x8100
li r5, 0x80
addi r3, r3, -0x80
bl func_8000e41c
lis r3, lbl_804eed70@ha
addi r4, r3, lbl_804eed70@l
lis r3, 0x8100
li r5, 0x80
bl func_8000e41c
lis r3, 0x8100
li r4, 0x80
bl func_8036d910
lis r3, 0xcc00
addi r3, r3, 0x5000
li r0, 0x43
sth r0, 0x12(r3)
addi r31, r3, 0xa
li r0, 0x8ac
sth r0, 0xa(r3)
lhz r0, 0xa(r3)
ori r0, r0, 1
sth r0, 0xa(r3)
lbl_8036d6a4:
lhz r0, 0(r31)
clrlwi. r0, r0, 0x1f
bne+ lbl_8036d6a4
li r0, 0x0
lis r4, 0xcc00
sth r0, 0x5000(r4)
lbl_8036d6bc:
addi r30, r4, 0x5000
lhzu r3, 4(r30)
addi r29, r4, 0x5000
lhzu r0, 6(r29)
rlwimi r0, r3, 0x10, 0, 0xf
rlwinm. r0, r0, 0, 0, 0
bne+ lbl_8036d6bc
lis r3, 0xcc00
lis r0, 0x100
addi r27, r3, 0x5000
stwu r0, 0x20(r27)
li r0, 0x0
addi r26, r3, 0x5000
stwu r0, 0x24(r26)
li r0, 0x20
addi r25, r3, 0x5000
stwu r0, 0x28(r25)
lhz r3, 0(r31)
b lbl_8036d70c
lbl_8036d708:
lhz r3, 0(r31)
lbl_8036d70c:
rlwinm. r0, r3, 0, 0x1a, 0x1a
beq+ lbl_8036d708
sth r3, 0(r31)
bl func_803727dc
mr r28, r3
lbl_8036d720:
bl func_803727dc
subf r0, r28, r3
cmpwi r0, 0x892
blt+ lbl_8036d720
lis r0, 0x100
stw r0, 0(r27)
li r3, 0x0
li r0, 0x20
stw r3, 0(r26)
stw r0, 0(r25)
lhz r3, 0(r31)
b lbl_8036d754
lbl_8036d750:
lhz r3, 0(r31)
lbl_8036d754:
rlwinm. r0, r3, 0, 0x1a, 0x1a
beq+ lbl_8036d750
sth r3, 0(r31)
lhz r0, 0(r31)
rlwinm r0, r0, 0, 0x15, 0x13
sth r0, 0(r31)
lbl_8036d76c:
lhz r0, 0(r31)
rlwinm. r0, r0, 0, 0x15, 0x15
bne+ lbl_8036d76c
lhz r0, 0(r31)
rlwinm r0, r0, 0, 0x1e, 0x1c
sth r0, 0(r31)
lhz r0, 0(r30)
b lbl_8036d790
lbl_8036d78c:
lhz r0, 0(r30)
lbl_8036d790:
clrlwi r5, r0, 0x10
rlwinm. r0, r0, 0, 0x10, 0x10
beq+ lbl_8036d78c
lhz r0, 0(r31)
lhz r4, 0(r29)
ori r0, r0, 4
sth r0, 0(r31)
li r0, 0x8ac
sth r0, 0(r31)
lhz r0, 0(r31)
ori r0, r0, 1
sth r0, 0(r31)
lbl_8036d7c0:
lhz r0, 0(r31)
clrlwi. r0, r0, 0x1f
bne+ lbl_8036d7c0
bl func_8036d618
addi r4, r3, -0x80
lis r3, 0x8100
li r5, 0x80
bl func_8000e41c
lmw r25, 0x14(r1)
lwz r0, 0x34(r1)
addi r1, r1, 0x30
mtlr r0
blr
.size func_8036d638, . - func_8036d638
.global func_8036d7f4
.type func_8036d7f4, @function
func_8036d7f4:
mflr r0
lis r3, 0xcc00
stw r0, 4(r1)
li r0, 0x804
stwu r1, -0x10(r1)
stw r31, 0xc(r1)
addi r31, r3, 0x5000
addi r3, r3, 0x5000
stw r30, 8(r1)
sth r0, 0xa(r31)
lhz r0, 0x36(r3)
rlwinm r0, r0, 0, 0x11, 0xf
sth r0, 0x36(r3)
lhzu r0, 0xa(r31)
b lbl_8036d834
lbl_8036d830:
lhz r0, 0(r31)
lbl_8036d834:
rlwinm. r0, r0, 0, 0x15, 0x15
bne+ lbl_8036d830
lhz r0, 0(r31)
b lbl_8036d848
lbl_8036d844:
lhz r0, 0(r31)
lbl_8036d848:
rlwinm. r0, r0, 0, 0x16, 0x16
bne+ lbl_8036d844
li r0, 0x8ac
lis r3, 0xcc00
sth r0, 0(r31)
li r0, 0x0
sth r0, 0x5000(r3)
addi r4, r3, 0x5000
lbl_8036d868:
lhz r3, 4(r4)
lhz r0, 6(r4)
rlwimi r0, r3, 0x10, 0, 0xf
rlwinm. r0, r0, 0, 0, 0
bne+ lbl_8036d868
bl func_803727dc
mr r30, r3
lbl_8036d884:
bl func_803727dc
subf r0, r30, r3
cmpwi r0, 0x2c
blt+ lbl_8036d884
lhz r0, 0(r31)
ori r0, r0, 1
sth r0, 0(r31)
lhz r0, 0(r31)
b lbl_8036d8ac
lbl_8036d8a8:
lhz r0, 0(r31)
lbl_8036d8ac:
clrlwi. r0, r0, 0x1f
bne+ lbl_8036d8a8
lwz r0, 0x14(r1)
lwz r31, 0xc(r1)
lwz r30, 8(r1)
addi r1, r1, 0x10
mtlr r0
blr
.size func_8036d7f4, . - func_8036d7f4