/* decodeSZP__9JKRDecompFPUcPUcUlUl __ct__9JKRDecompFl::decodeSZP(unsigned char *, unsigned char *, unsigned long, unsigned long) */ /* JKRDecomp_NS_decodeSZP */ /* 802DBA58 002D8998 94 21 FF E0 */ stwu r1, -0x20(r1) /* 802DBA5C 002D899C 7C 08 02 A6 */ mflr r0 /* 802DBA60 002D89A0 90 01 00 24 */ stw r0, 0x24(r1) /* 802DBA64 002D89A4 39 61 00 20 */ addi r11, r1, 0x20 /* 802DBA68 002D89A8 48 08 67 6D */ bl _savegpr_27 /* 802DBA6C 002D89AC 89 23 00 07 */ lbz r9, 7(r3) /* 802DBA70 002D89B0 89 03 00 06 */ lbz r8, 6(r3) /* 802DBA74 002D89B4 88 E3 00 04 */ lbz r7, 4(r3) /* 802DBA78 002D89B8 88 03 00 05 */ lbz r0, 5(r3) /* 802DBA7C 002D89BC 54 00 80 1E */ slwi r0, r0, 0x10 /* 802DBA80 002D89C0 50 E0 C0 0E */ rlwimi r0, r7, 0x18, 0, 7 /* 802DBA84 002D89C4 51 00 44 2E */ rlwimi r0, r8, 8, 0x10, 0x17 /* 802DBA88 002D89C8 7D 20 03 78 */ or r0, r9, r0 /* 802DBA8C 002D89CC 89 43 00 0B */ lbz r10, 0xb(r3) /* 802DBA90 002D89D0 89 23 00 0A */ lbz r9, 0xa(r3) /* 802DBA94 002D89D4 89 03 00 08 */ lbz r8, 8(r3) /* 802DBA98 002D89D8 88 E3 00 09 */ lbz r7, 9(r3) /* 802DBA9C 002D89DC 54 E7 80 1E */ slwi r7, r7, 0x10 /* 802DBAA0 002D89E0 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7 /* 802DBAA4 002D89E4 51 27 44 2E */ rlwimi r7, r9, 8, 0x10, 0x17 /* 802DBAA8 002D89E8 7D 49 3B 78 */ or r9, r10, r7 /* 802DBAAC 002D89EC 89 83 00 0F */ lbz r12, 0xf(r3) /* 802DBAB0 002D89F0 89 43 00 0E */ lbz r10, 0xe(r3) /* 802DBAB4 002D89F4 89 03 00 0C */ lbz r8, 0xc(r3) /* 802DBAB8 002D89F8 88 E3 00 0D */ lbz r7, 0xd(r3) /* 802DBABC 002D89FC 54 E7 80 1E */ slwi r7, r7, 0x10 /* 802DBAC0 002D8A00 51 07 C0 0E */ rlwimi r7, r8, 0x18, 0, 7 /* 802DBAC4 002D8A04 51 47 44 2E */ rlwimi r7, r10, 8, 0x10, 0x17 /* 802DBAC8 002D8A08 7D 8C 3B 78 */ or r12, r12, r7 /* 802DBACC 002D8A0C 39 00 00 00 */ li r8, 0 /* 802DBAD0 002D8A10 39 40 00 00 */ li r10, 0 /* 802DBAD4 002D8A14 38 E0 00 10 */ li r7, 0x10 /* 802DBAD8 002D8A18 28 05 00 00 */ cmplwi r5, 0 /* 802DBADC 002D8A1C 41 82 01 20 */ beq lbl_802DBBFC /* 802DBAE0 002D8A20 7C 06 00 40 */ cmplw r6, r0 /* 802DBAE4 002D8A24 41 81 01 18 */ bgt lbl_802DBBFC /* 802DBAE8 002D8A28 7C 9F 23 78 */ mr r31, r4 /* 802DBAEC 002D8A2C 7D 83 62 14 */ add r12, r3, r12 lbl_802DBAF0: /* 802DBAF0 002D8A30 28 0A 00 00 */ cmplwi r10, 0 /* 802DBAF4 002D8A34 40 82 00 30 */ bne lbl_802DBB24 /* 802DBAF8 002D8A38 7D 43 3A 14 */ add r10, r3, r7 /* 802DBAFC 002D8A3C 8B CA 00 03 */ lbz r30, 3(r10) /* 802DBB00 002D8A40 8B AA 00 02 */ lbz r29, 2(r10) /* 802DBB04 002D8A44 89 6A 00 00 */ lbz r11, 0(r10) /* 802DBB08 002D8A48 89 4A 00 01 */ lbz r10, 1(r10) /* 802DBB0C 002D8A4C 55 4A 80 1E */ slwi r10, r10, 0x10 /* 802DBB10 002D8A50 51 6A C0 0E */ rlwimi r10, r11, 0x18, 0, 7 /* 802DBB14 002D8A54 53 AA 44 2E */ rlwimi r10, r29, 8, 0x10, 0x17 /* 802DBB18 002D8A58 7F CB 53 78 */ or r11, r30, r10 /* 802DBB1C 002D8A5C 39 40 00 20 */ li r10, 0x20 /* 802DBB20 002D8A60 38 E7 00 04 */ addi r7, r7, 4 lbl_802DBB24: /* 802DBB24 002D8A64 55 7D 00 01 */ rlwinm. r29, r11, 0, 0, 0 /* 802DBB28 002D8A68 41 82 00 34 */ beq lbl_802DBB5C /* 802DBB2C 002D8A6C 28 06 00 00 */ cmplwi r6, 0 /* 802DBB30 002D8A70 40 82 00 18 */ bne lbl_802DBB48 /* 802DBB34 002D8A74 8B AC 00 00 */ lbz r29, 0(r12) /* 802DBB38 002D8A78 9B BF 00 00 */ stb r29, 0(r31) /* 802DBB3C 002D8A7C 34 A5 FF FF */ addic. r5, r5, -1 /* 802DBB40 002D8A80 40 82 00 0C */ bne lbl_802DBB4C /* 802DBB44 002D8A84 48 00 00 B8 */ b lbl_802DBBFC lbl_802DBB48: /* 802DBB48 002D8A88 38 C6 FF FF */ addi r6, r6, -1 lbl_802DBB4C: /* 802DBB4C 002D8A8C 39 08 00 01 */ addi r8, r8, 1 /* 802DBB50 002D8A90 3B FF 00 01 */ addi r31, r31, 1 /* 802DBB54 002D8A94 39 8C 00 01 */ addi r12, r12, 1 /* 802DBB58 002D8A98 48 00 00 94 */ b lbl_802DBBEC lbl_802DBB5C: /* 802DBB5C 002D8A9C 7F A3 4A 14 */ add r29, r3, r9 /* 802DBB60 002D8AA0 8B DD 00 00 */ lbz r30, 0(r29) /* 802DBB64 002D8AA4 8B 9D 00 01 */ lbz r28, 1(r29) /* 802DBB68 002D8AA8 53 DC 44 2E */ rlwimi r28, r30, 8, 0x10, 0x17 /* 802DBB6C 002D8AAC 57 9D 05 3E */ clrlwi r29, r28, 0x14 /* 802DBB70 002D8AB0 7F 7D 40 50 */ subf r27, r29, r8 /* 802DBB74 002D8AB4 7F 9C 66 71 */ srawi. r28, r28, 0xc /* 802DBB78 002D8AB8 39 29 00 02 */ addi r9, r9, 2 /* 802DBB7C 002D8ABC 40 82 00 14 */ bne lbl_802DBB90 /* 802DBB80 002D8AC0 8B AC 00 00 */ lbz r29, 0(r12) /* 802DBB84 002D8AC4 3B 9D 00 12 */ addi r28, r29, 0x12 /* 802DBB88 002D8AC8 39 8C 00 01 */ addi r12, r12, 1 /* 802DBB8C 002D8ACC 48 00 00 08 */ b lbl_802DBB94 lbl_802DBB90: /* 802DBB90 002D8AD0 3B 9C 00 02 */ addi r28, r28, 2 lbl_802DBB94: /* 802DBB94 002D8AD4 7F A8 00 50 */ subf r29, r8, r0 /* 802DBB98 002D8AD8 7C 1C E8 00 */ cmpw r28, r29 /* 802DBB9C 002D8ADC 40 81 00 08 */ ble lbl_802DBBA4 /* 802DBBA0 002D8AE0 7F BC EB 78 */ mr r28, r29 lbl_802DBBA4: /* 802DBBA4 002D8AE4 7F C4 42 14 */ add r30, r4, r8 /* 802DBBA8 002D8AE8 7F 89 03 A6 */ mtctr r28 /* 802DBBAC 002D8AEC 2C 1C 00 00 */ cmpwi r28, 0 /* 802DBBB0 002D8AF0 40 81 00 3C */ ble lbl_802DBBEC lbl_802DBBB4: /* 802DBBB4 002D8AF4 28 06 00 00 */ cmplwi r6, 0 /* 802DBBB8 002D8AF8 40 82 00 1C */ bne lbl_802DBBD4 /* 802DBBBC 002D8AFC 3B BB FF FF */ addi r29, r27, -1 /* 802DBBC0 002D8B00 7F A4 E8 AE */ lbzx r29, r4, r29 /* 802DBBC4 002D8B04 9B BE 00 00 */ stb r29, 0(r30) /* 802DBBC8 002D8B08 34 A5 FF FF */ addic. r5, r5, -1 /* 802DBBCC 002D8B0C 40 82 00 0C */ bne lbl_802DBBD8 /* 802DBBD0 002D8B10 48 00 00 2C */ b lbl_802DBBFC lbl_802DBBD4: /* 802DBBD4 002D8B14 38 C6 FF FF */ addi r6, r6, -1 lbl_802DBBD8: /* 802DBBD8 002D8B18 39 08 00 01 */ addi r8, r8, 1 /* 802DBBDC 002D8B1C 3B FF 00 01 */ addi r31, r31, 1 /* 802DBBE0 002D8B20 3B DE 00 01 */ addi r30, r30, 1 /* 802DBBE4 002D8B24 3B 7B 00 01 */ addi r27, r27, 1 /* 802DBBE8 002D8B28 42 00 FF CC */ bdnz lbl_802DBBB4 lbl_802DBBEC: /* 802DBBEC 002D8B2C 55 6B 08 3C */ slwi r11, r11, 1 /* 802DBBF0 002D8B30 7C 08 00 00 */ cmpw r8, r0 /* 802DBBF4 002D8B34 39 4A FF FF */ addi r10, r10, -1 /* 802DBBF8 002D8B38 41 80 FE F8 */ blt lbl_802DBAF0 lbl_802DBBFC: /* 802DBBFC 002D8B3C 39 61 00 20 */ addi r11, r1, 0x20 /* 802DBC00 002D8B40 48 08 66 21 */ bl _restgpr_27 /* 802DBC04 002D8B44 80 01 00 24 */ lwz r0, 0x24(r1) /* 802DBC08 002D8B48 7C 08 03 A6 */ mtlr r0 /* 802DBC0C 002D8B4C 38 21 00 20 */ addi r1, r1, 0x20 /* 802DBC10 002D8B50 4E 80 00 20 */ blr