1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global CXGetUncompressedSize
CXGetUncompressedSize:
/* 802A270C 0029E36C 80 A3 00 00 */ lwz r5, 0(r3)
/* 802A2710 0029E370 54 A4 42 1E */ rlwinm r4, r5, 8, 8, 0xf
/* 802A2714 0029E374 54 A0 C4 2E */ rlwinm r0, r5, 0x18, 0x10, 0x17
/* 802A2718 0029E378 50 A4 C0 0E */ rlwimi r4, r5, 0x18, 0, 7
/* 802A271C 0029E37C 50 A0 46 3E */ rlwimi r0, r5, 8, 0x18, 0x1f
/* 802A2720 0029E380 7C 80 03 78 */ or r0, r4, r0
/* 802A2724 0029E384 54 00 C2 3F */ rlwinm. r0, r0, 0x18, 8, 0x1f
/* 802A2728 0029E388 40 82 00 1C */ bne lbl_802A2744
/* 802A272C 0029E38C 80 83 00 04 */ lwz r4, 4(r3)
/* 802A2730 0029E390 54 83 42 1E */ rlwinm r3, r4, 8, 8, 0xf
/* 802A2734 0029E394 54 80 C4 2E */ rlwinm r0, r4, 0x18, 0x10, 0x17
/* 802A2738 0029E398 50 83 C0 0E */ rlwimi r3, r4, 0x18, 0, 7
/* 802A273C 0029E39C 50 80 46 3E */ rlwimi r0, r4, 8, 0x18, 0x1f
/* 802A2740 0029E3A0 7C 60 03 78 */ or r0, r3, r0
lbl_802A2744:
/* 802A2744 0029E3A4 7C 03 03 78 */ mr r3, r0
/* 802A2748 0029E3A8 4E 80 00 20 */ blr
.global CXUncompressLZ
CXUncompressLZ:
/* 802A274C 0029E3AC 80 A3 00 00 */ lwz r5, 0(r3)
/* 802A2750 0029E3B0 38 E3 00 04 */ addi r7, r3, 4
/* 802A2754 0029E3B4 54 A3 42 1E */ rlwinm r3, r5, 8, 8, 0xf
/* 802A2758 0029E3B8 54 A0 C4 2E */ rlwinm r0, r5, 0x18, 0x10, 0x17
/* 802A275C 0029E3BC 50 A3 C0 0E */ rlwimi r3, r5, 0x18, 0, 7
/* 802A2760 0029E3C0 50 A0 46 3E */ rlwimi r0, r5, 8, 0x18, 0x1f
/* 802A2764 0029E3C4 7C 60 03 78 */ or r0, r3, r0
/* 802A2768 0029E3C8 54 08 C2 3F */ rlwinm. r8, r0, 0x18, 8, 0x1f
/* 802A276C 0029E3CC 40 82 00 20 */ bne lbl_802A278C
/* 802A2770 0029E3D0 80 A7 00 00 */ lwz r5, 0(r7)
/* 802A2774 0029E3D4 38 E7 00 04 */ addi r7, r7, 4
/* 802A2778 0029E3D8 54 A3 42 1E */ rlwinm r3, r5, 8, 8, 0xf
/* 802A277C 0029E3DC 54 A0 C4 2E */ rlwinm r0, r5, 0x18, 0x10, 0x17
/* 802A2780 0029E3E0 50 A3 C0 0E */ rlwimi r3, r5, 0x18, 0, 7
/* 802A2784 0029E3E4 50 A0 46 3E */ rlwimi r0, r5, 8, 0x18, 0x1f
/* 802A2788 0029E3E8 7C 68 03 78 */ or r8, r3, r0
lbl_802A278C:
/* 802A278C 0029E3EC 38 00 00 04 */ li r0, 4
/* 802A2790 0029E3F0 48 00 00 E4 */ b lbl_802A2874
lbl_802A2794:
/* 802A2794 0029E3F4 89 47 00 00 */ lbz r10, 0(r7)
/* 802A2798 0029E3F8 39 20 00 00 */ li r9, 0
/* 802A279C 0029E3FC 7C 09 03 A6 */ mtctr r0
/* 802A27A0 0029E400 38 E7 00 01 */ addi r7, r7, 1
lbl_802A27A4:
/* 802A27A4 0029E404 55 43 06 31 */ rlwinm. r3, r10, 0, 0x18, 0x18
/* 802A27A8 0029E408 40 82 00 1C */ bne lbl_802A27C4
/* 802A27AC 0029E40C 88 67 00 00 */ lbz r3, 0(r7)
/* 802A27B0 0029E410 39 08 FF FF */ addi r8, r8, -1
/* 802A27B4 0029E414 38 E7 00 01 */ addi r7, r7, 1
/* 802A27B8 0029E418 98 64 00 00 */ stb r3, 0(r4)
/* 802A27BC 0029E41C 38 84 00 01 */ addi r4, r4, 1
/* 802A27C0 0029E420 48 00 00 3C */ b lbl_802A27FC
lbl_802A27C4:
/* 802A27C4 0029E424 88 C7 00 00 */ lbz r6, 0(r7)
/* 802A27C8 0029E428 88 67 00 01 */ lbz r3, 1(r7)
/* 802A27CC 0029E42C 38 E7 00 02 */ addi r7, r7, 2
/* 802A27D0 0029E430 7C C5 26 70 */ srawi r5, r6, 4
/* 802A27D4 0029E434 50 C3 45 2E */ rlwimi r3, r6, 8, 0x14, 0x17
/* 802A27D8 0029E438 38 C5 00 03 */ addi r6, r5, 3
/* 802A27DC 0029E43C 38 A3 00 01 */ addi r5, r3, 1
/* 802A27E0 0029E440 7D 06 40 50 */ subf r8, r6, r8
lbl_802A27E4:
/* 802A27E4 0029E444 7C 65 20 50 */ subf r3, r5, r4
/* 802A27E8 0029E448 34 C6 FF FF */ addic. r6, r6, -1
/* 802A27EC 0029E44C 88 63 00 00 */ lbz r3, 0(r3)
/* 802A27F0 0029E450 98 64 00 00 */ stb r3, 0(r4)
/* 802A27F4 0029E454 38 84 00 01 */ addi r4, r4, 1
/* 802A27F8 0029E458 41 81 FF EC */ bgt lbl_802A27E4
lbl_802A27FC:
/* 802A27FC 0029E45C 2C 08 00 00 */ cmpwi r8, 0
/* 802A2800 0029E460 41 82 00 74 */ beq lbl_802A2874
/* 802A2804 0029E464 55 4A 08 3C */ slwi r10, r10, 1
/* 802A2808 0029E468 55 43 06 31 */ rlwinm. r3, r10, 0, 0x18, 0x18
/* 802A280C 0029E46C 40 82 00 1C */ bne lbl_802A2828
/* 802A2810 0029E470 88 67 00 00 */ lbz r3, 0(r7)
/* 802A2814 0029E474 39 08 FF FF */ addi r8, r8, -1
/* 802A2818 0029E478 38 E7 00 01 */ addi r7, r7, 1
/* 802A281C 0029E47C 98 64 00 00 */ stb r3, 0(r4)
/* 802A2820 0029E480 38 84 00 01 */ addi r4, r4, 1
/* 802A2824 0029E484 48 00 00 3C */ b lbl_802A2860
lbl_802A2828:
/* 802A2828 0029E488 88 C7 00 00 */ lbz r6, 0(r7)
/* 802A282C 0029E48C 88 67 00 01 */ lbz r3, 1(r7)
/* 802A2830 0029E490 38 E7 00 02 */ addi r7, r7, 2
/* 802A2834 0029E494 7C C5 26 70 */ srawi r5, r6, 4
/* 802A2838 0029E498 50 C3 45 2E */ rlwimi r3, r6, 8, 0x14, 0x17
/* 802A283C 0029E49C 38 C5 00 03 */ addi r6, r5, 3
/* 802A2840 0029E4A0 38 A3 00 01 */ addi r5, r3, 1
/* 802A2844 0029E4A4 7D 06 40 50 */ subf r8, r6, r8
lbl_802A2848:
/* 802A2848 0029E4A8 7C 65 20 50 */ subf r3, r5, r4
/* 802A284C 0029E4AC 34 C6 FF FF */ addic. r6, r6, -1
/* 802A2850 0029E4B0 88 63 00 00 */ lbz r3, 0(r3)
/* 802A2854 0029E4B4 98 64 00 00 */ stb r3, 0(r4)
/* 802A2858 0029E4B8 38 84 00 01 */ addi r4, r4, 1
/* 802A285C 0029E4BC 41 81 FF EC */ bgt lbl_802A2848
lbl_802A2860:
/* 802A2860 0029E4C0 2C 08 00 00 */ cmpwi r8, 0
/* 802A2864 0029E4C4 41 82 00 10 */ beq lbl_802A2874
/* 802A2868 0029E4C8 55 4A 08 3C */ slwi r10, r10, 1
/* 802A286C 0029E4CC 39 29 00 01 */ addi r9, r9, 1
/* 802A2870 0029E4D0 42 00 FF 34 */ bdnz lbl_802A27A4
lbl_802A2874:
/* 802A2874 0029E4D4 2C 08 00 00 */ cmpwi r8, 0
/* 802A2878 0029E4D8 40 82 FF 1C */ bne lbl_802A2794
/* 802A287C 0029E4DC 4E 80 00 20 */ blr
|