.include "macros.inc" .section .text .global func_803727c4 .type func_803727c4, @function func_803727c4: /* 803727C4 7C6D42E6 */ mftbu r3 /* 803727C8 7C8C42E6 */ mftb r4, 0x10c /* 803727CC 7CAD42E6 */ mftbu r5 /* 803727D0 7C032800 */ cmpw r3, r5 /* 803727D4 4082FFF0 */ bne- func_803727c4 /* 803727D8 4E800020 */ blr .size func_803727c4, . - func_803727c4 .global func_803727dc .type func_803727dc, @function func_803727dc: /* 803727DC 7C6C42E6 */ mftb r3, 0x10c /* 803727E0 4E800020 */ blr .size func_803727dc, . - func_803727dc .global func_803727e4 .type func_803727e4, @function func_803727e4: /* 803727E4 7C0802A6 */ mflr r0 /* 803727E8 90010004 */ stw r0, 4(r1) /* 803727EC 9421FFE0 */ stwu r1, -0x20(r1) /* 803727F0 93E1001C */ stw r31, 0x1c(r1) /* 803727F4 93C10018 */ stw r30, 0x18(r1) /* 803727F8 93A10014 */ stw r29, 0x14(r1) /* 803727FC 4BFFC2D9 */ bl func_8036ead4 /* 80372800 7C7F1B78 */ mr r31, r3 /* 80372804 4BFFFFC1 */ bl func_803727c4 /* 80372808 3CC08000 */ lis r6, 0x8000 /* 8037280C 80A630DC */ lwz r5, 0x30dc(r6) /* 80372810 800630D8 */ lwz r0, 0x30d8(r6) /* 80372814 7FA52014 */ addc r29, r5, r4 /* 80372818 7FC01914 */ adde r30, r0, r3 /* 8037281C 7FE3FB78 */ mr r3, r31 /* 80372820 4BFFC2DD */ bl func_8036eafc /* 80372824 7FA4EB78 */ mr r4, r29 /* 80372828 7FC3F378 */ mr r3, r30 /* 8037282C 80010024 */ lwz r0, 0x24(r1) /* 80372830 83E1001C */ lwz r31, 0x1c(r1) /* 80372834 83C10018 */ lwz r30, 0x18(r1) /* 80372838 83A10014 */ lwz r29, 0x14(r1) /* 8037283C 38210020 */ addi r1, r1, 0x20 /* 80372840 7C0803A6 */ mtlr r0 /* 80372844 4E800020 */ blr .size func_803727e4, . - func_803727e4 .global func_80372848 .type func_80372848, @function func_80372848: /* 80372848 3CA09249 */ lis r5, 0x9249 /* 8037284C 38052493 */ addi r0, r5, 0x2493 /* 80372850 38E30006 */ addi r7, r3, 0x6 /* 80372854 7CC03896 */ mulhw r6, r0, r7 /* 80372858 3CA0B38D */ lis r5, 0xb38d /* 8037285C 3805F9B1 */ addi r0, r5, -0x64f /* 80372860 7C001896 */ mulhw r0, r0, r3 /* 80372864 7CA63A14 */ add r5, r6, r7 /* 80372868 7CA51670 */ srawi r5, r5, 2 /* 8037286C 54A60FFE */ srwi r6, r5, 0x1f /* 80372870 7CA53214 */ add r5, r5, r6 /* 80372874 7C001A14 */ add r0, r0, r3 /* 80372878 1CC50007 */ mulli r6, r5, 0x7 /* 8037287C 7C004670 */ srawi r0, r0, 8 /* 80372880 54050FFE */ srwi r5, r0, 0x1f /* 80372884 7CA02A14 */ add r5, r0, r5 /* 80372888 7C063850 */ subf r0, r6, r7 /* 8037288C 1D65016D */ mulli r11, r5, 0x16d /* 80372890 90040018 */ stw r0, 0x18(r4) /* 80372894 48000004 */ b lbl_80372898 lbl_80372898: /* 80372898 3CC051EC */ lis r6, 0x51ec /* 8037289C 3946851F */ addi r10, r6, -0x7ae1 /* 803728A0 48000004 */ b lbl_803728a4 lbl_803728a4: /* 803728A4 4800000C */ b lbl_803728b0 lbl_803728a8: /* 803728A8 396BFE93 */ addi r11, r11, -0x16d /* 803728AC 38A5FFFF */ addi r5, r5, -0x1 lbl_803728b0: /* 803728B0 2C050001 */ cmpwi r5, 0x1 /* 803728B4 4080000C */ bge- lbl_803728c0 /* 803728B8 38000000 */ li r0, 0x0 /* 803728BC 48000038 */ b lbl_803728f4 lbl_803728c0: /* 803728C0 3805FFFF */ addi r0, r5, -0x1 /* 803728C4 7C0A0096 */ mulhw r0, r10, r0 /* 803728C8 7C083E70 */ srawi r8, r0, 7 /* 803728CC 7C062E70 */ srawi r6, r0, 5 /* 803728D0 38050003 */ addi r0, r5, 0x3 /* 803728D4 54C70FFE */ srwi r7, r6, 0x1f /* 803728D8 7C001670 */ srawi r0, r0, 2 /* 803728DC 55090FFE */ srwi r9, r8, 0x1f /* 803728E0 7CC63A14 */ add r6, r6, r7 /* 803728E4 7C000194 */ addze r0, r0 /* 803728E8 7CE84A14 */ add r7, r8, r9 /* 803728EC 7C060050 */ subf r0, r6, r0 /* 803728F0 7C070214 */ add r0, r7, r0 lbl_803728f4: /* 803728F4 7C0B0214 */ add r0, r11, r0 /* 803728F8 7C030000 */ cmpw r3, r0 /* 803728FC 4180FFAC */ blt+ lbl_803728a8 /* 80372900 7CA61670 */ srawi r6, r5, 2 /* 80372904 90A40014 */ stw r5, 0x14(r4) /* 80372908 7CC60194 */ addze r6, r6 /* 8037290C 54C6103A */ slwi r6, r6, 2 /* 80372910 7CC62810 */ subfc r6, r6, r5 /* 80372914 7C001850 */ subf r0, r0, r3 /* 80372918 2C060000 */ cmpwi r6, 0x0 /* 8037291C 9004001C */ stw r0, 0x1c(r4) /* 80372920 38E00001 */ li r7, 0x1 /* 80372924 39000000 */ li r8, 0x0 /* 80372928 40820030 */ bne- lbl_80372958 /* 8037292C 3C6051EC */ lis r3, 0x51ec /* 80372930 3863851F */ addi r3, r3, -0x7ae1 /* 80372934 7C632896 */ mulhw r3, r3, r5 /* 80372938 7C632E70 */ srawi r3, r3, 5 /* 8037293C 54660FFE */ srwi r6, r3, 0x1f /* 80372940 7C633214 */ add r3, r3, r6 /* 80372944 1C630064 */ mulli r3, r3, 0x64 /* 80372948 7C632850 */ subf r3, r3, r5 /* 8037294C 2C030000 */ cmpwi r3, 0x0 /* 80372950 41820008 */ beq- lbl_80372958 /* 80372954 7CE83B78 */ mr r8, r7 lbl_80372958: /* 80372958 2C080000 */ cmpwi r8, 0x0 /* 8037295C 40820030 */ bne- lbl_8037298c /* 80372960 3C6051EC */ lis r3, 0x51ec /* 80372964 3863851F */ addi r3, r3, -0x7ae1 /* 80372968 7C632896 */ mulhw r3, r3, r5 /* 8037296C 7C633E70 */ srawi r3, r3, 7 /* 80372970 54660FFE */ srwi r6, r3, 0x1f /* 80372974 7C633214 */ add r3, r3, r6 /* 80372978 1C630190 */ mulli r3, r3, 0x190 /* 8037297C 7C632850 */ subf r3, r3, r5 /* 80372980 2C030000 */ cmpwi r3, 0x0 /* 80372984 41820008 */ beq- lbl_8037298c /* 80372988 38E00000 */ li r7, 0x0 lbl_8037298c: /* 8037298C 2C070000 */ cmpwi r7, 0x0 /* 80372990 41820010 */ beq- lbl_803729a0 /* 80372994 3C60804F */ lis r3, lbl_804ef5d8@ha /* 80372998 38C3F5D8 */ addi r6, r3, lbl_804ef5d8@l /* 8037299C 4800000C */ b lbl_803729a8 lbl_803729a0: /* 803729A0 3C60804F */ lis r3, lbl_804ef5a8@ha /* 803729A4 38C3F5A8 */ addi r6, r3, lbl_804ef5a8@l lbl_803729a8: /* 803729A8 38E0000C */ li r7, 0xc /* 803729AC 38600030 */ li r3, 0x30 /* 803729B0 48000004 */ b lbl_803729b4 lbl_803729b4: /* 803729B4 48000004 */ b lbl_803729b8 lbl_803729b8: /* 803729B8 3863FFFC */ addi r3, r3, -0x4 /* 803729BC 7CA6182E */ lwzx r5, r6, r3 /* 803729C0 38E7FFFF */ addi r7, r7, -0x1 /* 803729C4 7C002800 */ cmpw r0, r5 /* 803729C8 4180FFF0 */ blt+ lbl_803729b8 /* 803729CC 90E40010 */ stw r7, 0x10(r4) /* 803729D0 7C66182E */ lwzx r3, r6, r3 /* 803729D4 7C630050 */ subf r3, r3, r0 /* 803729D8 38030001 */ addi r0, r3, 0x1 /* 803729DC 9004000C */ stw r0, 0xc(r4) /* 803729E0 4E800020 */ blr .size func_80372848, . - func_80372848 .global func_803729e4 .type func_803729e4, @function func_803729e4: /* 803729E4 7C0802A6 */ mflr r0 /* 803729E8 90010004 */ stw r0, 4(r1) /* 803729EC 9421FFC8 */ stwu r1, -0x38(r1) /* 803729F0 BF21001C */ stmw r25, 0x1c(r1) /* 803729F4 7C7D1B78 */ mr r29, r3 /* 803729F8 7C9E2378 */ mr r30, r4 /* 803729FC 7CBF2B78 */ mr r31, r5 /* 80372A00 3F608000 */ lis r27, 0x8000 /* 80372A04 801B00F8 */ lwz r0, 0xf8(r27) /* 80372A08 7FA3EB78 */ mr r3, r29 /* 80372A0C 7FC4F378 */ mr r4, r30 /* 80372A10 5406F0BE */ srwi r6, r0, 2 /* 80372A14 38A00000 */ li r5, 0x0 /* 80372A18 48020DB5 */ bl func_803937cc /* 80372A1C 7C7A1B78 */ mr r26, r3 /* 80372A20 38A00000 */ li r5, 0x0 /* 80372A24 7C992378 */ mr r25, r4 /* 80372A28 6F448000 */ xoris r4, r26, 0x8000 /* 80372A2C 6CA38000 */ xoris r3, r5, 0x8000 /* 80372A30 7C05C810 */ subfc r0, r5, r25 /* 80372A34 7C632110 */ subfe r3, r3, r4 /* 80372A38 7C642110 */ subfe r3, r4, r4 /* 80372A3C 7C6300D0 */ neg r3, r3 /* 80372A40 2C030000 */ cmpwi r3, 0x0 /* 80372A44 41820014 */ beq- lbl_80372a58 /* 80372A48 801B00F8 */ lwz r0, 0xf8(r27) /* 80372A4C 5400F0BE */ srwi r0, r0, 2 /* 80372A50 7F390014 */ addc r25, r25, r0 /* 80372A54 7F5A2914 */ adde r26, r26, r5 lbl_80372a58: /* 80372A58 38800008 */ li r4, 0x8 /* 80372A5C 7C7A21D6 */ mullw r3, r26, r4 /* 80372A60 7C192016 */ mulhwu r0, r25, r4 /* 80372A64 3F608000 */ lis r27, 0x8000 /* 80372A68 80DB00F8 */ lwz r6, 0xf8(r27) /* 80372A6C 3CA0431C */ lis r5, 0x431c /* 80372A70 38A5DE83 */ addi r5, r5, -0x217d /* 80372A74 54C6F0BE */ srwi r6, r6, 2 /* 80372A78 7CA53016 */ mulhwu r5, r5, r6 /* 80372A7C 54A68BFE */ srwi r6, r5, 0xf /* 80372A80 3B800000 */ li r28, 0x0 /* 80372A84 7C630214 */ add r3, r3, r0 /* 80372A88 7C19E1D6 */ mullw r0, r25, r28 /* 80372A8C 7C9921D6 */ mullw r4, r25, r4 /* 80372A90 7C630214 */ add r3, r3, r0 /* 80372A94 38A00000 */ li r5, 0x0 /* 80372A98 48020B19 */ bl func_803935b0 /* 80372A9C 38A00000 */ li r5, 0x0 /* 80372AA0 38C003E8 */ li r6, 0x3e8 /* 80372AA4 48020D29 */ bl func_803937cc /* 80372AA8 909F0024 */ stw r4, 0x24(r31) /* 80372AAC 3C601062 */ lis r3, 0x1062 /* 80372AB0 38A34DD3 */ addi r5, r3, 0x4dd3 /* 80372AB4 801B00F8 */ lwz r0, 0xf8(r27) /* 80372AB8 7F43D378 */ mr r3, r26 /* 80372ABC 7F24CB78 */ mr r4, r25 /* 80372AC0 5400F0BE */ srwi r0, r0, 2 /* 80372AC4 7C050016 */ mulhwu r0, r5, r0 /* 80372AC8 5406D1BE */ srwi r6, r0, 6 /* 80372ACC 38A00000 */ li r5, 0x0 /* 80372AD0 48020AE1 */ bl func_803935b0 /* 80372AD4 38A00000 */ li r5, 0x0 /* 80372AD8 38C003E8 */ li r6, 0x3e8 /* 80372ADC 48020CF1 */ bl func_803937cc /* 80372AE0 909F0020 */ stw r4, 0x20(r31) /* 80372AE4 7FD9F010 */ subfc r30, r25, r30 /* 80372AE8 7FBAE910 */ subfe r29, r26, r29 /* 80372AEC 801B00F8 */ lwz r0, 0xf8(r27) /* 80372AF0 3CA00001 */ lis r5, 1 /* 80372AF4 3B255180 */ addi r25, r5, 0x5180 /* 80372AF8 7FA3EB78 */ mr r3, r29 /* 80372AFC 5406F0BE */ srwi r6, r0, 2 /* 80372B00 7FC4F378 */ mr r4, r30 /* 80372B04 38A00000 */ li r5, 0x0 /* 80372B08 48020AA9 */ bl func_803935b0 /* 80372B0C 7F26CB78 */ mr r6, r25 /* 80372B10 38A00000 */ li r5, 0x0 /* 80372B14 48020A9D */ bl func_803935b0 /* 80372B18 3CA0000B */ lis r5, 0xb /* 80372B1C 801B00F8 */ lwz r0, 0xf8(r27) /* 80372B20 38A52575 */ addi r5, r5, 0x2575 /* 80372B24 7F442814 */ addc r26, r4, r5 /* 80372B28 5406F0BE */ srwi r6, r0, 2 /* 80372B2C 7C03E114 */ adde r0, r3, r28 /* 80372B30 7FA3EB78 */ mr r3, r29 /* 80372B34 7FC4F378 */ mr r4, r30 /* 80372B38 38A00000 */ li r5, 0x0 /* 80372B3C 48020A75 */ bl func_803935b0 /* 80372B40 7F26CB78 */ mr r6, r25 /* 80372B44 38A00000 */ li r5, 0x0 /* 80372B48 48020C85 */ bl func_803937cc /* 80372B4C 7C9B2378 */ mr r27, r4 /* 80372B50 2C1B0000 */ cmpwi r27, 0x0 /* 80372B54 40800010 */ bge- lbl_80372b64 /* 80372B58 3F7B0001 */ addis r27, r27, 1 /* 80372B5C 3B5AFFFF */ addi r26, r26, -0x1 /* 80372B60 3B7B5180 */ addi r27, r27, 0x5180 lbl_80372b64: /* 80372B64 7F43D378 */ mr r3, r26 /* 80372B68 7FE4FB78 */ mr r4, r31 /* 80372B6C 4BFFFCDD */ bl func_80372848 /* 80372B70 3C608889 */ lis r3, 0x8889 /* 80372B74 38A38889 */ addi r5, r3, -0x7777 /* 80372B78 7C05D896 */ mulhw r0, r5, r27 /* 80372B7C 7C80DA14 */ add r4, r0, r27 /* 80372B80 7C802E70 */ srawi r0, r4, 5 /* 80372B84 54030FFE */ srwi r3, r0, 0x1f /* 80372B88 7CE01A14 */ add r7, r0, r3 /* 80372B8C 7C053896 */ mulhw r0, r5, r7 /* 80372B90 7C003A14 */ add r0, r0, r7 /* 80372B94 7C052E70 */ srawi r5, r0, 5 /* 80372B98 7C002E70 */ srawi r0, r0, 5 /* 80372B9C 54030FFE */ srwi r3, r0, 0x1f /* 80372BA0 7C601A14 */ add r3, r0, r3 /* 80372BA4 7C802E70 */ srawi r0, r4, 5 /* 80372BA8 54A60FFE */ srwi r6, r5, 0x1f /* 80372BAC 1C83003C */ mulli r4, r3, 0x3c /* 80372BB0 54030FFE */ srwi r3, r0, 0x1f /* 80372BB4 7CA53214 */ add r5, r5, r6 /* 80372BB8 7C001A14 */ add r0, r0, r3 /* 80372BBC 90BF0008 */ stw r5, 8(r31) /* 80372BC0 1C00003C */ mulli r0, r0, 0x3c /* 80372BC4 7C643850 */ subf r3, r4, r7 /* 80372BC8 907F0004 */ stw r3, 4(r31) /* 80372BCC 7C00D850 */ subf r0, r0, r27 /* 80372BD0 901F0000 */ stw r0, 0(r31) /* 80372BD4 BB21001C */ lmw r25, 0x1c(r1) /* 80372BD8 8001003C */ lwz r0, 0x3c(r1) /* 80372BDC 38210038 */ addi r1, r1, 0x38 /* 80372BE0 7C0803A6 */ mtlr r0 /* 80372BE4 4E800020 */ blr .size func_803729e4, . - func_803729e4