.include "macros.inc" .section .text, "ax" .global modf modf: /* 8039485C 003917BC 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80394860 003917C0 D8 21 00 08 */ stfd f1, 8(r1) /* 80394864 003917C4 80 A1 00 08 */ lwz r5, 8(r1) /* 80394868 003917C8 80 C1 00 0C */ lwz r6, 0xc(r1) /* 8039486C 003917CC 54 A4 65 7E */ rlwinm r4, r5, 0xc, 0x15, 0x1f /* 80394870 003917D0 38 E4 FC 01 */ addi r7, r4, -1023 /* 80394874 003917D4 2C 07 00 14 */ cmpwi r7, 0x14 /* 80394878 003917D8 40 80 00 70 */ bge lbl_803948E8 /* 8039487C 003917DC 2C 07 00 00 */ cmpwi r7, 0 /* 80394880 003917E0 40 80 00 18 */ bge lbl_80394898 /* 80394884 003917E4 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 /* 80394888 003917E8 38 00 00 00 */ li r0, 0 /* 8039488C 003917EC 90 83 00 00 */ stw r4, 0(r3) /* 80394890 003917F0 90 03 00 04 */ stw r0, 4(r3) /* 80394894 003917F4 48 00 00 BC */ b lbl_80394950 lbl_80394898: /* 80394898 003917F8 3C 80 00 10 */ lis r4, 0x000FFFFF@ha /* 8039489C 003917FC 38 04 FF FF */ addi r0, r4, 0x000FFFFF@l /* 803948A0 00391800 7C 04 3E 30 */ sraw r4, r0, r7 /* 803948A4 00391804 7C A0 20 38 */ and r0, r5, r4 /* 803948A8 00391808 7C C0 03 79 */ or. r0, r6, r0 /* 803948AC 0039180C 40 82 00 20 */ bne lbl_803948CC /* 803948B0 00391810 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 /* 803948B4 00391814 38 00 00 00 */ li r0, 0 /* 803948B8 00391818 90 81 00 08 */ stw r4, 8(r1) /* 803948BC 0039181C 90 01 00 0C */ stw r0, 0xc(r1) /* 803948C0 00391820 D8 23 00 00 */ stfd f1, 0(r3) /* 803948C4 00391824 C8 21 00 08 */ lfd f1, 8(r1) /* 803948C8 00391828 48 00 00 88 */ b lbl_80394950 lbl_803948CC: /* 803948CC 0039182C 7C A4 20 78 */ andc r4, r5, r4 /* 803948D0 00391830 38 00 00 00 */ li r0, 0 /* 803948D4 00391834 90 83 00 00 */ stw r4, 0(r3) /* 803948D8 00391838 90 03 00 04 */ stw r0, 4(r3) /* 803948DC 0039183C C8 03 00 00 */ lfd f0, 0(r3) /* 803948E0 00391840 FC 21 00 28 */ fsub f1, f1, f0 /* 803948E4 00391844 48 00 00 6C */ b lbl_80394950 lbl_803948E8: /* 803948E8 00391848 2C 07 00 33 */ cmpwi r7, 0x33 /* 803948EC 0039184C 40 81 00 20 */ ble lbl_8039490C /* 803948F0 00391850 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 /* 803948F4 00391854 38 00 00 00 */ li r0, 0 /* 803948F8 00391858 90 81 00 08 */ stw r4, 8(r1) /* 803948FC 0039185C 90 01 00 0C */ stw r0, 0xc(r1) /* 80394900 00391860 D8 23 00 00 */ stfd f1, 0(r3) /* 80394904 00391864 C8 21 00 08 */ lfd f1, 8(r1) /* 80394908 00391868 48 00 00 48 */ b lbl_80394950 lbl_8039490C: /* 8039490C 0039186C 38 07 FF EC */ addi r0, r7, -20 /* 80394910 00391870 38 80 FF FF */ li r4, -1 /* 80394914 00391874 7C 84 04 30 */ srw r4, r4, r0 /* 80394918 00391878 7C C0 20 39 */ and. r0, r6, r4 /* 8039491C 0039187C 40 82 00 20 */ bne lbl_8039493C /* 80394920 00391880 54 A4 00 00 */ rlwinm r4, r5, 0, 0, 0 /* 80394924 00391884 38 00 00 00 */ li r0, 0 /* 80394928 00391888 90 81 00 08 */ stw r4, 8(r1) /* 8039492C 0039188C 90 01 00 0C */ stw r0, 0xc(r1) /* 80394930 00391890 D8 23 00 00 */ stfd f1, 0(r3) /* 80394934 00391894 C8 21 00 08 */ lfd f1, 8(r1) /* 80394938 00391898 48 00 00 18 */ b lbl_80394950 lbl_8039493C: /* 8039493C 0039189C 90 A3 00 00 */ stw r5, 0(r3) /* 80394940 003918A0 7C C0 20 78 */ andc r0, r6, r4 /* 80394944 003918A4 90 03 00 04 */ stw r0, 4(r3) /* 80394948 003918A8 C8 03 00 00 */ lfd f0, 0(r3) /* 8039494C 003918AC FC 21 00 28 */ fsub f1, f1, f0 lbl_80394950: /* 80394950 003918B0 38 21 00 10 */ addi r1, r1, 0x10 /* 80394954 003918B4 4E 80 00 20 */ blr