.include "macros.inc" .section .text, "ax" # 0x80006980 - 0x803E1E60 .global WENCGetEncodeData WENCGetEncodeData: /* 802ECA20 002E8680 94 21 FF 70 */ stwu r1, -0x90(r1) /* 802ECA24 002E8684 7C 08 02 A6 */ mflr r0 /* 802ECA28 002E8688 90 01 00 94 */ stw r0, 0x94(r1) /* 802ECA2C 002E868C 39 61 00 90 */ addi r11, r1, 0x90 /* 802ECA30 002E8690 4B ED A6 D5 */ bl _savegpr_18 /* 802ECA34 002E8694 3D 40 80 40 */ lis r10, lbl_80400004@ha /* 802ECA38 002E8698 85 2A E0 B8 */ lwzu r9, -0x1f48(r10) /* 802ECA3C 002E869C 39 66 00 01 */ addi r11, r6, 1 /* 802ECA40 002E86A0 7C 99 23 78 */ mr r25, r4 /* 802ECA44 002E86A4 55 64 0F FE */ srwi r4, r11, 0x1f /* 802ECA48 002E86A8 81 0A 00 04 */ lwz r8, lbl_80400004@l(r10) /* 802ECA4C 002E86AC 7C FF 3B 78 */ mr r31, r7 /* 802ECA50 002E86B0 80 0A 00 08 */ lwz r0, 8(r10) /* 802ECA54 002E86B4 7C 84 5A 14 */ add r4, r4, r11 /* 802ECA58 002E86B8 82 4A 00 0C */ lwz r18, 0xc(r10) /* 802ECA5C 002E86BC 83 6A 00 10 */ lwz r27, 0x10(r10) /* 802ECA60 002E86C0 7C DE 33 78 */ mr r30, r6 /* 802ECA64 002E86C4 83 4A 00 14 */ lwz r26, 0x14(r10) /* 802ECA68 002E86C8 7C 7C 1B 78 */ mr r28, r3 /* 802ECA6C 002E86CC 83 0A 00 18 */ lwz r24, 0x18(r10) /* 802ECA70 002E86D0 7C BD 2B 78 */ mr r29, r5 /* 802ECA74 002E86D4 82 EA 00 1C */ lwz r23, 0x1c(r10) /* 802ECA78 002E86D8 7C 85 0E 70 */ srawi r5, r4, 1 /* 802ECA7C 002E86DC 82 CA 00 20 */ lwz r22, 0x20(r10) /* 802ECA80 002E86E0 7F E3 FB 78 */ mr r3, r31 /* 802ECA84 002E86E4 82 AA 00 24 */ lwz r21, 0x24(r10) /* 802ECA88 002E86E8 38 80 00 00 */ li r4, 0 /* 802ECA8C 002E86EC 82 8A 00 28 */ lwz r20, 0x28(r10) /* 802ECA90 002E86F0 82 6A 00 2C */ lwz r19, 0x2c(r10) /* 802ECA94 002E86F4 81 8A 00 30 */ lwz r12, 0x30(r10) /* 802ECA98 002E86F8 81 6A 00 34 */ lwz r11, 0x34(r10) /* 802ECA9C 002E86FC 80 EA 00 38 */ lwz r7, 0x38(r10) /* 802ECAA0 002E8700 80 CA 00 3C */ lwz r6, 0x3c(r10) /* 802ECAA4 002E8704 91 21 00 08 */ stw r9, 8(r1) /* 802ECAA8 002E8708 91 01 00 0C */ stw r8, 0xc(r1) /* 802ECAAC 002E870C 90 01 00 10 */ stw r0, 0x10(r1) /* 802ECAB0 002E8710 92 41 00 14 */ stw r18, 0x14(r1) /* 802ECAB4 002E8714 93 61 00 18 */ stw r27, 0x18(r1) /* 802ECAB8 002E8718 93 41 00 1C */ stw r26, 0x1c(r1) /* 802ECABC 002E871C 93 01 00 20 */ stw r24, 0x20(r1) /* 802ECAC0 002E8720 92 E1 00 24 */ stw r23, 0x24(r1) /* 802ECAC4 002E8724 92 C1 00 28 */ stw r22, 0x28(r1) /* 802ECAC8 002E8728 92 A1 00 2C */ stw r21, 0x2c(r1) /* 802ECACC 002E872C 92 81 00 30 */ stw r20, 0x30(r1) /* 802ECAD0 002E8730 92 61 00 34 */ stw r19, 0x34(r1) /* 802ECAD4 002E8734 91 81 00 38 */ stw r12, 0x38(r1) /* 802ECAD8 002E8738 91 61 00 3C */ stw r11, 0x3c(r1) /* 802ECADC 002E873C 90 E1 00 40 */ stw r7, 0x40(r1) /* 802ECAE0 002E8740 90 C1 00 44 */ stw r6, 0x44(r1) /* 802ECAE4 002E8744 4B D1 76 21 */ bl memset /* 802ECAE8 002E8748 57 20 07 FF */ clrlwi. r0, r25, 0x1f /* 802ECAEC 002E874C 40 82 00 20 */ bne lbl_802ECB0C /* 802ECAF0 002E8750 39 60 00 00 */ li r11, 0 /* 802ECAF4 002E8754 39 80 00 7F */ li r12, 0x7f /* 802ECAF8 002E8758 38 A0 00 00 */ li r5, 0 /* 802ECAFC 002E875C 3B 60 00 00 */ li r27, 0 /* 802ECB00 002E8760 3B 40 00 00 */ li r26, 0 /* 802ECB04 002E8764 3B 20 00 00 */ li r25, 0 /* 802ECB08 002E8768 48 00 00 1C */ b lbl_802ECB24 lbl_802ECB0C: /* 802ECB0C 002E876C 81 7C 00 00 */ lwz r11, 0(r28) /* 802ECB10 002E8770 81 9C 00 04 */ lwz r12, 4(r28) /* 802ECB14 002E8774 80 BC 00 08 */ lwz r5, 8(r28) /* 802ECB18 002E8778 83 7C 00 0C */ lwz r27, 0xc(r28) /* 802ECB1C 002E877C 83 5C 00 10 */ lwz r26, 0x10(r28) /* 802ECB20 002E8780 83 3C 00 14 */ lwz r25, 0x14(r28) lbl_802ECB24: /* 802ECB24 002E8784 3C 60 00 01 */ lis r3, 0x0000FFFF@ha /* 802ECB28 002E8788 3B 01 00 08 */ addi r24, r1, 8 /* 802ECB2C 002E878C C8 42 A4 90 */ lfd f2, lbl_80642A90-_SDA2_BASE_(r2) /* 802ECB30 002E8790 38 83 FF FF */ addi r4, r3, 0x0000FFFF@l /* 802ECB34 002E8794 38 C0 00 00 */ li r6, 0 /* 802ECB38 002E8798 3C 00 FF FF */ lis r0, 0xffff /* 802ECB3C 002E879C 3E E0 43 30 */ lis r23, 0x4330 /* 802ECB40 002E87A0 7F C9 03 A6 */ mtctr r30 /* 802ECB44 002E87A4 2C 1E 00 00 */ cmpwi r30, 0 /* 802ECB48 002E87A8 40 81 01 7C */ ble lbl_802ECCC4 lbl_802ECB4C: /* 802ECB4C 002E87AC A8 BD 00 00 */ lha r5, 0(r29) /* 802ECB50 002E87B0 39 40 00 00 */ li r10, 0 /* 802ECB54 002E87B4 39 20 00 00 */ li r9, 0 /* 802ECB58 002E87B8 39 00 00 00 */ li r8, 0 /* 802ECB5C 002E87BC 7C 05 58 00 */ cmpw r5, r11 /* 802ECB60 002E87C0 38 E0 00 00 */ li r7, 0 /* 802ECB64 002E87C4 3B BD 00 02 */ addi r29, r29, 2 /* 802ECB68 002E87C8 40 80 00 08 */ bge lbl_802ECB70 /* 802ECB6C 002E87CC 38 E0 00 01 */ li r7, 1 lbl_802ECB70: /* 802ECB70 002E87D0 7E 6B 28 50 */ subf r19, r11, r5 /* 802ECB74 002E87D4 7E 65 FE 70 */ srawi r5, r19, 0x1f /* 802ECB78 002E87D8 7C BB 9A 78 */ xor r27, r5, r19 /* 802ECB7C 002E87DC 7F 65 D8 50 */ subf r27, r5, r27 /* 802ECB80 002E87E0 7C 1B 60 00 */ cmpw r27, r12 /* 802ECB84 002E87E4 41 80 00 0C */ blt lbl_802ECB90 /* 802ECB88 002E87E8 39 00 00 01 */ li r8, 1 /* 802ECB8C 002E87EC 7F 6C D8 50 */ subf r27, r12, r27 lbl_802ECB90: /* 802ECB90 002E87F0 55 85 0F FE */ srwi r5, r12, 0x1f /* 802ECB94 002E87F4 7C A5 62 14 */ add r5, r5, r12 /* 802ECB98 002E87F8 7C BA 0E 70 */ srawi r26, r5, 1 /* 802ECB9C 002E87FC 7C 1B D0 00 */ cmpw r27, r26 /* 802ECBA0 002E8800 41 80 00 0C */ blt lbl_802ECBAC /* 802ECBA4 002E8804 39 20 00 01 */ li r9, 1 /* 802ECBA8 002E8808 7F 7A D8 50 */ subf r27, r26, r27 lbl_802ECBAC: /* 802ECBAC 002E880C 57 45 0F FE */ srwi r5, r26, 0x1f /* 802ECBB0 002E8810 7C A5 D2 14 */ add r5, r5, r26 /* 802ECBB4 002E8814 7C B9 0E 70 */ srawi r25, r5, 1 /* 802ECBB8 002E8818 7C 1B C8 00 */ cmpw r27, r25 /* 802ECBBC 002E881C 41 80 00 0C */ blt lbl_802ECBC8 /* 802ECBC0 002E8820 39 40 00 01 */ li r10, 1 /* 802ECBC4 002E8824 7F 79 D8 50 */ subf r27, r25, r27 lbl_802ECBC8: /* 802ECBC8 002E8828 7E 99 51 D6 */ mullw r20, r25, r10 /* 802ECBCC 002E882C 54 E5 08 3C */ slwi r5, r7, 1 /* 802ECBD0 002E8830 57 33 0F FE */ srwi r19, r25, 0x1f /* 802ECBD4 002E8834 20 A5 00 01 */ subfic r5, r5, 1 /* 802ECBD8 002E8838 7E 73 CA 14 */ add r19, r19, r25 /* 802ECBDC 002E883C 7E AC 41 D6 */ mullw r21, r12, r8 /* 802ECBE0 002E8840 7E 73 0E 70 */ srawi r19, r19, 1 /* 802ECBE4 002E8844 7E DA 49 D6 */ mullw r22, r26, r9 /* 802ECBE8 002E8848 7E B4 AA 14 */ add r21, r20, r21 /* 802ECBEC 002E884C 7E D3 B2 14 */ add r22, r19, r22 /* 802ECBF0 002E8850 7E D5 B2 14 */ add r22, r21, r22 /* 802ECBF4 002E8854 7C A5 B1 D6 */ mullw r5, r5, r22 /* 802ECBF8 002E8858 7C 05 20 00 */ cmpw r5, r4 /* 802ECBFC 002E885C 40 81 00 08 */ ble lbl_802ECC04 /* 802ECC00 002E8860 38 A3 FF FF */ addi r5, r3, -1 lbl_802ECC04: /* 802ECC04 002E8864 7C 05 00 00 */ cmpw r5, r0 /* 802ECC08 002E8868 40 80 00 08 */ bge lbl_802ECC10 /* 802ECC0C 002E886C 3C A0 FF FF */ lis r5, 0xffff lbl_802ECC10: /* 802ECC10 002E8870 7D 6B 2A 14 */ add r11, r11, r5 /* 802ECC14 002E8874 2C 0B 7F FF */ cmpwi r11, 0x7fff /* 802ECC18 002E8878 40 81 00 08 */ ble lbl_802ECC20 /* 802ECC1C 002E887C 39 60 7F FF */ li r11, 0x7fff lbl_802ECC20: /* 802ECC20 002E8880 2C 0B 80 00 */ cmpwi r11, -32768 /* 802ECC24 002E8884 40 80 00 08 */ bge lbl_802ECC2C /* 802ECC28 002E8888 39 60 80 00 */ li r11, -32768 lbl_802ECC2C: /* 802ECC2C 002E888C 6D 8C 80 00 */ xoris r12, r12, 0x8000 /* 802ECC30 002E8890 55 12 10 3A */ slwi r18, r8, 2 /* 802ECC34 002E8894 91 81 00 4C */ stw r12, 0x4c(r1) /* 802ECC38 002E8898 54 D6 07 FE */ clrlwi r22, r6, 0x1f /* 802ECC3C 002E889C 55 29 08 3C */ slwi r9, r9, 1 /* 802ECC40 002E88A0 7D 0A 92 14 */ add r8, r10, r18 /* 802ECC44 002E88A4 92 E1 00 48 */ stw r23, 0x48(r1) /* 802ECC48 002E88A8 7D 09 42 14 */ add r8, r9, r8 /* 802ECC4C 002E88AC 55 08 18 38 */ slwi r8, r8, 3 /* 802ECC50 002E88B0 54 CC 0F FE */ srwi r12, r6, 0x1f /* 802ECC54 002E88B4 C8 21 00 48 */ lfd f1, 0x48(r1) /* 802ECC58 002E88B8 7D 29 92 14 */ add r9, r9, r18 /* 802ECC5C 002E88BC 7C 18 44 AE */ lfdx f0, r24, r8 /* 802ECC60 002E88C0 7D 0C 32 14 */ add r8, r12, r6 /* 802ECC64 002E88C4 FC 21 10 28 */ fsub f1, f1, f2 /* 802ECC68 002E88C8 7D 0C 0E 70 */ srawi r12, r8, 1 /* 802ECC6C 002E88CC 54 E8 18 38 */ slwi r8, r7, 3 /* 802ECC70 002E88D0 7C EA 4A 14 */ add r7, r10, r9 /* 802ECC74 002E88D4 7C E8 3A 14 */ add r7, r8, r7 /* 802ECC78 002E88D8 3A D6 FF FF */ addi r22, r22, -1 /* 802ECC7C 002E88DC FC 01 00 32 */ fmul f0, f1, f0 /* 802ECC80 002E88E0 56 C9 07 7A */ rlwinm r9, r22, 0, 0x1d, 0x1d /* 802ECC84 002E88E4 54 E7 06 3E */ clrlwi r7, r7, 0x18 /* 802ECC88 002E88E8 7D 1F 60 AE */ lbzx r8, r31, r12 /* 802ECC8C 002E88EC 7C E7 48 30 */ slw r7, r7, r9 /* 802ECC90 002E88F0 7D 07 3B 78 */ or r7, r8, r7 /* 802ECC94 002E88F4 FC 00 00 1E */ fctiwz f0, f0 /* 802ECC98 002E88F8 7C FF 61 AE */ stbx r7, r31, r12 /* 802ECC9C 002E88FC D8 01 00 50 */ stfd f0, 0x50(r1) /* 802ECCA0 002E8900 81 81 00 54 */ lwz r12, 0x54(r1) /* 802ECCA4 002E8904 2C 0C 00 7F */ cmpwi r12, 0x7f /* 802ECCA8 002E8908 41 81 00 08 */ bgt lbl_802ECCB0 /* 802ECCAC 002E890C 39 80 00 7F */ li r12, 0x7f lbl_802ECCB0: /* 802ECCB0 002E8910 2C 0C 60 00 */ cmpwi r12, 0x6000 /* 802ECCB4 002E8914 41 80 00 08 */ blt lbl_802ECCBC /* 802ECCB8 002E8918 39 80 60 00 */ li r12, 0x6000 lbl_802ECCBC: /* 802ECCBC 002E891C 38 C6 00 01 */ addi r6, r6, 1 /* 802ECCC0 002E8920 42 00 FE 8C */ bdnz lbl_802ECB4C lbl_802ECCC4: /* 802ECCC4 002E8924 91 7C 00 00 */ stw r11, 0(r28) /* 802ECCC8 002E8928 39 61 00 90 */ addi r11, r1, 0x90 /* 802ECCCC 002E892C 7F C3 F3 78 */ mr r3, r30 /* 802ECCD0 002E8930 91 9C 00 04 */ stw r12, 4(r28) /* 802ECCD4 002E8934 90 BC 00 08 */ stw r5, 8(r28) /* 802ECCD8 002E8938 93 7C 00 0C */ stw r27, 0xc(r28) /* 802ECCDC 002E893C 93 5C 00 10 */ stw r26, 0x10(r28) /* 802ECCE0 002E8940 93 3C 00 14 */ stw r25, 0x14(r28) /* 802ECCE4 002E8944 4B ED A4 6D */ bl _restgpr_18 /* 802ECCE8 002E8948 80 01 00 94 */ lwz r0, 0x94(r1) /* 802ECCEC 002E894C 7C 08 03 A6 */ mtlr r0 /* 802ECCF0 002E8950 38 21 00 90 */ addi r1, r1, 0x90 /* 802ECCF4 002E8954 4E 80 00 20 */ blr