.include "macros.inc"
.section .text
.global func_803727c4
.type func_803727c4, @function
func_803727c4:
mftbu r3
mftb r4, 0x10c
mftbu r5
cmpw r3, r5
bne- func_803727c4
blr
.size func_803727c4, . - func_803727c4
.global func_803727dc
.type func_803727dc, @function
func_803727dc:
mftb r3, 0x10c
blr
.size func_803727dc, . - func_803727dc
.global func_803727e4
.type func_803727e4, @function
func_803727e4:
mflr r0
stw r0, 4(r1)
stwu r1, -0x20(r1)
stw r31, 0x1c(r1)
stw r30, 0x18(r1)
stw r29, 0x14(r1)
bl func_8036ead4
mr r31, r3
bl func_803727c4
lis r6, 0x8000
lwz r5, 0x30dc(r6)
lwz r0, 0x30d8(r6)
addc r29, r5, r4
adde r30, r0, r3
mr r3, r31
bl func_8036eafc
mr r4, r29
mr r3, r30
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_803727e4, . - func_803727e4
.global func_80372848
.type func_80372848, @function
func_80372848:
lis r5, 0x9249
addi r0, r5, 0x2493
addi r7, r3, 0x6
mulhw r6, r0, r7
lis r5, 0xb38d
addi r0, r5, -0x64f
mulhw r0, r0, r3
add r5, r6, r7
srawi r5, r5, 2
srwi r6, r5, 0x1f
add r5, r5, r6
add r0, r0, r3
mulli r6, r5, 0x7
srawi r0, r0, 8
srwi r5, r0, 0x1f
add r5, r0, r5
subf r0, r6, r7
mulli r11, r5, 0x16d
stw r0, 0x18(r4)
b lbl_80372898
lbl_80372898:
lis r6, 0x51ec
addi r10, r6, -0x7ae1
b lbl_803728a4
lbl_803728a4:
b lbl_803728b0
lbl_803728a8:
addi r11, r11, -0x16d
addi r5, r5, -0x1
lbl_803728b0:
cmpwi r5, 0x1
bge- lbl_803728c0
li r0, 0x0
b lbl_803728f4
lbl_803728c0:
addi r0, r5, -0x1
mulhw r0, r10, r0
srawi r8, r0, 7
srawi r6, r0, 5
addi r0, r5, 0x3
srwi r7, r6, 0x1f
srawi r0, r0, 2
srwi r9, r8, 0x1f
add r6, r6, r7
addze r0, r0
add r7, r8, r9
subf r0, r6, r0
add r0, r7, r0
lbl_803728f4:
add r0, r11, r0
cmpw r3, r0
blt+ lbl_803728a8
srawi r6, r5, 2
stw r5, 0x14(r4)
addze r6, r6
slwi r6, r6, 2
subfc r6, r6, r5
subf r0, r0, r3
cmpwi r6, 0x0
stw r0, 0x1c(r4)
li r7, 0x1
li r8, 0x0
bne- lbl_80372958
lis r3, 0x51ec
addi r3, r3, -0x7ae1
mulhw r3, r3, r5
srawi r3, r3, 5
srwi r6, r3, 0x1f
add r3, r3, r6
mulli r3, r3, 0x64
subf r3, r3, r5
cmpwi r3, 0x0
beq- lbl_80372958
mr r8, r7
lbl_80372958:
cmpwi r8, 0x0
bne- lbl_8037298c
lis r3, 0x51ec
addi r3, r3, -0x7ae1
mulhw r3, r3, r5
srawi r3, r3, 7
srwi r6, r3, 0x1f
add r3, r3, r6
mulli r3, r3, 0x190
subf r3, r3, r5
cmpwi r3, 0x0
beq- lbl_8037298c
li r7, 0x0
lbl_8037298c:
cmpwi r7, 0x0
beq- lbl_803729a0
lis r3, lbl_804ef5d8@ha
addi r6, r3, lbl_804ef5d8@l
b lbl_803729a8
lbl_803729a0:
lis r3, lbl_804ef5a8@ha
addi r6, r3, lbl_804ef5a8@l
lbl_803729a8:
li r7, 0xc
li r3, 0x30
b lbl_803729b4
lbl_803729b4:
b lbl_803729b8
lbl_803729b8:
addi r3, r3, -0x4
lwzx r5, r6, r3
addi r7, r7, -0x1
cmpw r0, r5
blt+ lbl_803729b8
stw r7, 0x10(r4)
lwzx r3, r6, r3
subf r3, r3, r0
addi r0, r3, 0x1
stw r0, 0xc(r4)
blr
.size func_80372848, . - func_80372848
.global func_803729e4
.type func_803729e4, @function
func_803729e4:
mflr r0
stw r0, 4(r1)
stwu r1, -0x38(r1)
stmw r25, 0x1c(r1)
mr r29, r3
mr r30, r4
mr r31, r5
lis r27, 0x8000
lwz r0, 0xf8(r27)
mr r3, r29
mr r4, r30
srwi r6, r0, 2
li r5, 0x0
bl func_803937cc
mr r26, r3
li r5, 0x0
mr r25, r4
xoris r4, r26, 0x8000
xoris r3, r5, 0x8000
subfc r0, r5, r25
subfe r3, r3, r4
subfe r3, r4, r4
neg r3, r3
cmpwi r3, 0x0
beq- lbl_80372a58
lwz r0, 0xf8(r27)
srwi r0, r0, 2
addc r25, r25, r0
adde r26, r26, r5
lbl_80372a58:
li r4, 0x8
mullw r3, r26, r4
mulhwu r0, r25, r4
lis r27, 0x8000
lwz r6, 0xf8(r27)
lis r5, 0x431c
addi r5, r5, -0x217d
srwi r6, r6, 2
mulhwu r5, r5, r6
srwi r6, r5, 0xf
li r28, 0x0
add r3, r3, r0
mullw r0, r25, r28
mullw r4, r25, r4
add r3, r3, r0
li r5, 0x0
bl func_803935b0
li r5, 0x0
li r6, 0x3e8
bl func_803937cc
stw r4, 0x24(r31)
lis r3, 0x1062
addi r5, r3, 0x4dd3
lwz r0, 0xf8(r27)
mr r3, r26
mr r4, r25
srwi r0, r0, 2
mulhwu r0, r5, r0
srwi r6, r0, 6
li r5, 0x0
bl func_803935b0
li r5, 0x0
li r6, 0x3e8
bl func_803937cc
stw r4, 0x20(r31)
subfc r30, r25, r30
subfe r29, r26, r29
lwz r0, 0xf8(r27)
lis r5, 1
addi r25, r5, 0x5180
mr r3, r29
srwi r6, r0, 2
mr r4, r30
li r5, 0x0
bl func_803935b0
mr r6, r25
li r5, 0x0
bl func_803935b0
lis r5, 0xb
lwz r0, 0xf8(r27)
addi r5, r5, 0x2575
addc r26, r4, r5
srwi r6, r0, 2
adde r0, r3, r28
mr r3, r29
mr r4, r30
li r5, 0x0
bl func_803935b0
mr r6, r25
li r5, 0x0
bl func_803937cc
mr r27, r4
cmpwi r27, 0x0
bge- lbl_80372b64
addis r27, r27, 1
addi r26, r26, -0x1
addi r27, r27, 0x5180
lbl_80372b64:
mr r3, r26
mr r4, r31
bl func_80372848
lis r3, 0x8889
addi r5, r3, -0x7777
mulhw r0, r5, r27
add r4, r0, r27
srawi r0, r4, 5
srwi r3, r0, 0x1f
add r7, r0, r3
mulhw r0, r5, r7
add r0, r0, r7
srawi r5, r0, 5
srawi r0, r0, 5
srwi r3, r0, 0x1f
add r3, r0, r3
srawi r0, r4, 5
srwi r6, r5, 0x1f
mulli r4, r3, 0x3c
srwi r3, r0, 0x1f
add r5, r5, r6
add r0, r0, r3
stw r5, 8(r31)
mulli r0, r0, 0x3c
subf r3, r4, r7
stw r3, 4(r31)
subf r0, r0, r27
stw r0, 0(r31)
lmw r25, 0x1c(r1)
lwz r0, 0x3c(r1)
addi r1, r1, 0x38
mtlr r0
blr
.size func_803729e4, . - func_803729e4