.include "macros.inc"
.section .text
.global func_803707e4
.type func_803707e4, @function
func_803707e4:
mflr r0
stw r0, 4(r1)
stwu r1, -0x28(r1)
stw r31, 0x24(r1)
stw r30, 0x20(r1)
stw r29, 0x1c(r1)
bl func_803727e4
lis r5, 0x8000
stw r4, lbl_805c68b4@sda21(0)
lwz r0, 0xf8(r5)
lis r4, 0x431c
addi r4, r4, -0x217d
stw r3, lbl_805c68b0@sda21(0)
srwi r0, r0, 2
mulhwu r0, r4, r0
srwi r0, r0, 0xf
mulli r0, r0, 0x64
srwi r29, r0, 3
li r30, 0x0
lis r31, 0xcc00
lbl_80370834:
bl func_803727e4
lwz r6, lbl_805c68b4@sda21(0)
xoris r5, r30, 0x8000
lwz r0, lbl_805c68b0@sda21(0)
subfc r4, r6, r4
subfe r0, r0, r3
xoris r3, r0, 0x8000
subfc r0, r29, r4
subfe r5, r5, r3
subfe r5, r3, r3
neg. r5, r5
beq- lbl_80370870
lwz r0, 0x3000(r31)
rlwinm. r0, r0, 0, 0xf, 0xf
beq+ lbl_80370834
lbl_80370870:
lis r3, 0xcc00
lwz r0, 0x3000(r3)
rlwinm. r0, r0, 0, 0xf, 0xf
bne- lbl_803708b0
li r0, 0x1
stw r0, lbl_805c689c@sda21(0)
li r3, 0x200
stw r0, lbl_805c68a0@sda21(0)
bl func_8036ee9c
lwz r12, lbl_805c6898@sda21(0)
cmplwi r12, 0
beq- lbl_803708b0
li r0, 0x0
mtlr r12
stw r0, lbl_805c6898@sda21(0)
blrl
lbl_803708b0:
li r0, 0x2
lis r3, 0xcc00
stw r0, 0x3000(r3)
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_803707e4, . - func_803707e4
.global func_803708d8
.type func_803708d8, @function
func_803708d8:
mflr r0
stw r0, 4(r1)
stwu r1, -0x18(r1)
stw r31, 0x14(r1)
stw r30, 0x10(r1)
stw r29, 0xc(r1)
bl func_8036ead4
mr r30, r3
bl func_803727e4
lis r5, 0xcc00
lwz r0, 0x3000(r5)
rlwinm. r0, r0, 0, 0xf, 0xf
bne- lbl_803709e4
lwz r0, lbl_805c689c@sda21(0)
cmpwi r0, 0x0
bne- lbl_80370954
lwz r0, lbl_805c68a8@sda21(0)
li r6, 0x0
lwz r5, lbl_805c68ac@sda21(0)
li r7, 0x1
xor r0, r0, r6
xor r5, r5, r6
stw r7, lbl_805c689c@sda21(0)
or. r0, r5, r0
beq- lbl_80370940
b lbl_80370944
lbl_80370940:
mr r7, r6
lbl_80370944:
stw r4, lbl_805c68b4@sda21(0)
mr r29, r7
stw r3, lbl_805c68b0@sda21(0)
b lbl_80370a98
lbl_80370954:
lwz r0, lbl_805c68a8@sda21(0)
li r9, 0x0
lwz r5, lbl_805c68ac@sda21(0)
li r10, 0x1
xor r0, r0, r9
xor r5, r5, r9
or. r0, r5, r0
bne- lbl_803709c8
lis r6, 0x8000
lwz r5, lbl_805c68b4@sda21(0)
lwz r7, 0xf8(r6)
lis r6, 0x431c
addi r8, r6, -0x217d
lwz r0, lbl_805c68b0@sda21(0)
srwi r6, r7, 2
mulhwu r6, r8, r6
srwi r6, r6, 0xf
mulli r6, r6, 0x64
subfc r7, r5, r4
subfe r0, r0, r3
srwi r8, r6, 3
xoris r5, r0, 0x8000
xoris r6, r9, 0x8000
subfc r0, r7, r8
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
bne- lbl_803709c8
mr r10, r9
lbl_803709c8:
cmpwi r10, 0x0
beq- lbl_803709d8
li r0, 0x1
b lbl_803709dc
lbl_803709d8:
li r0, 0x0
lbl_803709dc:
mr r29, r0
b lbl_80370a98
lbl_803709e4:
lwz r0, lbl_805c689c@sda21(0)
cmpwi r0, 0x0
beq- lbl_80370a20
lwz r5, lbl_805c68a0@sda21(0)
li r0, 0x0
stw r0, lbl_805c689c@sda21(0)
cmpwi r5, 0x0
addi r29, r5, 0x0
beq- lbl_80370a14
stw r4, lbl_805c68ac@sda21(0)
stw r3, lbl_805c68a8@sda21(0)
b lbl_80370a98
lbl_80370a14:
stw r0, lbl_805c68ac@sda21(0)
stw r0, lbl_805c68a8@sda21(0)
b lbl_80370a98
lbl_80370a20:
lwz r6, lbl_805c68a8@sda21(0)
li r8, 0x0
lwz r7, lbl_805c68ac@sda21(0)
xor r0, r6, r8
xor r5, r7, r8
or. r0, r5, r0
beq- lbl_80370a88
lis r5, 0x8000
lwz r0, 0xf8(r5)
lis r5, 0x1062
addi r5, r5, 0x4dd3
srwi r0, r0, 2
mulhwu r0, r5, r0
srwi r0, r0, 6
mulli r0, r0, 0x28
subfc r7, r7, r4
subfe r5, r6, r3
xoris r6, r5, 0x8000
xoris r5, r8, 0x8000
subfc r0, r0, r7
subfe r5, r5, r6
subfe r5, r6, r6
neg. r5, r5
beq- lbl_80370a88
li r29, 0x1
b lbl_80370a98
lbl_80370a88:
li r0, 0x0
stw r0, lbl_805c68ac@sda21(0)
li r29, 0x0
stw r0, lbl_805c68a8@sda21(0)
lbl_80370a98:
lis r5, 0x8000
stw r29, lbl_805c68a0@sda21(0)
lbz r0, 0x30e3(r5)
clrlwi. r0, r0, 0x1a
beq- lbl_80370b48
mulli r10, r0, 0x3c
lwz r0, 0xf8(r5)
lwz r9, lbl_805c6844@sda21(0)
lwz r8, lbl_805c6840@sda21(0)
srwi r6, r0, 2
srawi r0, r10, 0x1f
mullw r7, r0, r6
mulhwu r0, r10, r6
mullw r5, r10, r6
addc r9, r9, r5
li r31, 0x0
add r7, r7, r0
mullw r0, r10, r31
add r0, r7, r0
adde r8, r8, r0
xoris r7, r8, 0x8000
xoris r5, r3, 0x8000
subfc r0, r4, r9
subfe r5, r5, r7
subfe r5, r7, r7
neg. r5, r5
beq- lbl_80370b48
subfc r4, r9, r4
subfe r3, r8, r3
li r5, 0x0
bl func_803935b0
li r5, 0x0
li r6, 0x2
bl func_803935b0
li r0, 0x1
and r4, r4, r0
and r0, r3, r31
xor r3, r4, r31
xor r0, r0, r31
or. r0, r3, r0
bne- lbl_80370b44
li r29, 0x1
b lbl_80370b48
lbl_80370b44:
li r29, 0x0
lbl_80370b48:
mr r3, r30
bl func_8036eafc
mr r3, r29
lwz r0, 0x1c(r1)
lwz r31, 0x14(r1)
lwz r30, 0x10(r1)
lwz r29, 0xc(r1)
addi r1, r1, 0x18
mtlr r0
blr
.size func_803708d8, . - func_803708d8