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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
|
.include "macros.inc"
.section .text, "ax" # 0x80006980 - 0x803E1E60
.global Setup__Q44nw4r3snd6detail14StrmBufferPoolFPvUli
Setup__Q44nw4r3snd6detail14StrmBufferPoolFPvUli:
/* 8037CAC4 00378724 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8037CAC8 00378728 7C 08 02 A6 */ mflr r0
/* 8037CACC 0037872C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8037CAD0 00378730 39 61 00 20 */ addi r11, r1, 0x20
/* 8037CAD4 00378734 4B E4 A6 55 */ bl _savegpr_27
/* 8037CAD8 00378738 2C 06 00 00 */ cmpwi r6, 0
/* 8037CADC 0037873C 7C 7B 1B 78 */ mr r27, r3
/* 8037CAE0 00378740 7C 9C 23 78 */ mr r28, r4
/* 8037CAE4 00378744 7C BD 2B 78 */ mr r29, r5
/* 8037CAE8 00378748 7C DE 33 78 */ mr r30, r6
/* 8037CAEC 0037874C 41 82 00 40 */ beq lbl_8037CB2C
/* 8037CAF0 00378750 4B EF 1C 6D */ bl OSDisableInterrupts
/* 8037CAF4 00378754 7C 9D F3 96 */ divwu r4, r29, r30
/* 8037CAF8 00378758 38 00 00 00 */ li r0, 0
/* 8037CAFC 0037875C 7C 7F 1B 78 */ mr r31, r3
/* 8037CB00 00378760 93 9B 00 00 */ stw r28, 0(r27)
/* 8037CB04 00378764 38 7B 00 14 */ addi r3, r27, 0x14
/* 8037CB08 00378768 93 BB 00 04 */ stw r29, 4(r27)
/* 8037CB0C 0037876C 90 9B 00 08 */ stw r4, 8(r27)
/* 8037CB10 00378770 38 80 00 00 */ li r4, 0
/* 8037CB14 00378774 38 A0 00 04 */ li r5, 4
/* 8037CB18 00378778 93 DB 00 0C */ stw r30, 0xc(r27)
/* 8037CB1C 0037877C 90 1B 00 10 */ stw r0, 0x10(r27)
/* 8037CB20 00378780 4B C8 75 E5 */ bl memset
/* 8037CB24 00378784 7F E3 FB 78 */ mr r3, r31
/* 8037CB28 00378788 4B EF 1C 5D */ bl OSRestoreInterrupts
lbl_8037CB2C:
/* 8037CB2C 0037878C 39 61 00 20 */ addi r11, r1, 0x20
/* 8037CB30 00378790 4B E4 A6 45 */ bl _restgpr_27
/* 8037CB34 00378794 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8037CB38 00378798 7C 08 03 A6 */ mtlr r0
/* 8037CB3C 0037879C 38 21 00 20 */ addi r1, r1, 0x20
/* 8037CB40 003787A0 4E 80 00 20 */ blr
.global Shutdown__Q44nw4r3snd6detail14StrmBufferPoolFv
Shutdown__Q44nw4r3snd6detail14StrmBufferPoolFv:
/* 8037CB44 003787A4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037CB48 003787A8 7C 08 02 A6 */ mflr r0
/* 8037CB4C 003787AC 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037CB50 003787B0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037CB54 003787B4 7C 7F 1B 78 */ mr r31, r3
/* 8037CB58 003787B8 4B EF 1C 05 */ bl OSDisableInterrupts
/* 8037CB5C 003787BC 38 00 00 00 */ li r0, 0
/* 8037CB60 003787C0 90 1F 00 00 */ stw r0, 0(r31)
/* 8037CB64 003787C4 90 1F 00 04 */ stw r0, 4(r31)
/* 8037CB68 003787C8 90 1F 00 08 */ stw r0, 8(r31)
/* 8037CB6C 003787CC 90 1F 00 0C */ stw r0, 0xc(r31)
/* 8037CB70 003787D0 4B EF 1C 15 */ bl OSRestoreInterrupts
/* 8037CB74 003787D4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037CB78 003787D8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037CB7C 003787DC 7C 08 03 A6 */ mtlr r0
/* 8037CB80 003787E0 38 21 00 10 */ addi r1, r1, 0x10
/* 8037CB84 003787E4 4E 80 00 20 */ blr
.global Alloc__Q44nw4r3snd6detail14StrmBufferPoolFv
Alloc__Q44nw4r3snd6detail14StrmBufferPoolFv:
/* 8037CB88 003787E8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037CB8C 003787EC 7C 08 02 A6 */ mflr r0
/* 8037CB90 003787F0 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037CB94 003787F4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037CB98 003787F8 7C 7F 1B 78 */ mr r31, r3
/* 8037CB9C 003787FC 4B EF 1B C1 */ bl OSDisableInterrupts
/* 8037CBA0 00378800 80 9F 00 0C */ lwz r4, 0xc(r31)
/* 8037CBA4 00378804 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 8037CBA8 00378808 7C 00 20 00 */ cmpw r0, r4
/* 8037CBAC 0037880C 41 80 00 10 */ blt lbl_8037CBBC
/* 8037CBB0 00378810 4B EF 1B D5 */ bl OSRestoreInterrupts
/* 8037CBB4 00378814 38 60 00 00 */ li r3, 0
/* 8037CBB8 00378818 48 00 00 A0 */ b lbl_8037CC58
lbl_8037CBBC:
/* 8037CBBC 0037881C 38 04 00 07 */ addi r0, r4, 7
/* 8037CBC0 00378820 39 00 00 00 */ li r8, 0
/* 8037CBC4 00378824 54 04 00 38 */ rlwinm r4, r0, 0, 0, 0x1c
/* 8037CBC8 00378828 7C 84 1E 70 */ srawi r4, r4, 3
/* 8037CBCC 0037882C 38 00 00 08 */ li r0, 8
/* 8037CBD0 00378830 7C E4 01 94 */ addze r7, r4
/* 8037CBD4 00378834 48 00 00 74 */ b lbl_8037CC48
lbl_8037CBD8:
/* 8037CBD8 00378838 7C DF 42 14 */ add r6, r31, r8
/* 8037CBDC 0037883C 88 A6 00 14 */ lbz r5, 0x14(r6)
/* 8037CBE0 00378840 28 05 00 FF */ cmplwi r5, 0xff
/* 8037CBE4 00378844 41 82 00 60 */ beq lbl_8037CC44
/* 8037CBE8 00378848 39 20 00 01 */ li r9, 1
/* 8037CBEC 0037884C 39 40 00 00 */ li r10, 0
/* 8037CBF0 00378850 7C 09 03 A6 */ mtctr r0
lbl_8037CBF4:
/* 8037CBF4 00378854 7C A4 48 39 */ and. r4, r5, r9
/* 8037CBF8 00378858 40 82 00 40 */ bne lbl_8037CC38
/* 8037CBFC 0037885C 88 86 00 14 */ lbz r4, 0x14(r6)
/* 8037CC00 00378860 55 00 18 38 */ slwi r0, r8, 3
/* 8037CC04 00378864 7C 0A 02 14 */ add r0, r10, r0
/* 8037CC08 00378868 7C 84 4B 78 */ or r4, r4, r9
/* 8037CC0C 0037886C 98 86 00 14 */ stb r4, 0x14(r6)
/* 8037CC10 00378870 80 9F 00 08 */ lwz r4, 8(r31)
/* 8037CC14 00378874 80 BF 00 10 */ lwz r5, 0x10(r31)
/* 8037CC18 00378878 7C 84 01 D6 */ mullw r4, r4, r0
/* 8037CC1C 0037887C 80 1F 00 00 */ lwz r0, 0(r31)
/* 8037CC20 00378880 38 A5 00 01 */ addi r5, r5, 1
/* 8037CC24 00378884 90 BF 00 10 */ stw r5, 0x10(r31)
/* 8037CC28 00378888 7F E4 02 14 */ add r31, r4, r0
/* 8037CC2C 0037888C 4B EF 1B 59 */ bl OSRestoreInterrupts
/* 8037CC30 00378890 7F E3 FB 78 */ mr r3, r31
/* 8037CC34 00378894 48 00 00 24 */ b lbl_8037CC58
lbl_8037CC38:
/* 8037CC38 00378898 55 29 0E 3C */ rlwinm r9, r9, 1, 0x18, 0x1e
/* 8037CC3C 0037889C 39 4A 00 01 */ addi r10, r10, 1
/* 8037CC40 003788A0 42 00 FF B4 */ bdnz lbl_8037CBF4
lbl_8037CC44:
/* 8037CC44 003788A4 39 08 00 01 */ addi r8, r8, 1
lbl_8037CC48:
/* 8037CC48 003788A8 7C 08 38 00 */ cmpw r8, r7
/* 8037CC4C 003788AC 41 80 FF 8C */ blt lbl_8037CBD8
/* 8037CC50 003788B0 4B EF 1B 35 */ bl OSRestoreInterrupts
/* 8037CC54 003788B4 38 60 00 00 */ li r3, 0
lbl_8037CC58:
/* 8037CC58 003788B8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037CC5C 003788BC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037CC60 003788C0 7C 08 03 A6 */ mtlr r0
/* 8037CC64 003788C4 38 21 00 10 */ addi r1, r1, 0x10
/* 8037CC68 003788C8 4E 80 00 20 */ blr
.global Free__Q44nw4r3snd6detail14StrmBufferPoolFPv
Free__Q44nw4r3snd6detail14StrmBufferPoolFPv:
/* 8037CC6C 003788CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8037CC70 003788D0 7C 08 02 A6 */ mflr r0
/* 8037CC74 003788D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 8037CC78 003788D8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8037CC7C 003788DC 7C 9F 23 78 */ mr r31, r4
/* 8037CC80 003788E0 93 C1 00 08 */ stw r30, 8(r1)
/* 8037CC84 003788E4 7C 7E 1B 78 */ mr r30, r3
/* 8037CC88 003788E8 4B EF 1A D5 */ bl OSDisableInterrupts
/* 8037CC8C 003788EC 80 BE 00 00 */ lwz r5, 0(r30)
/* 8037CC90 003788F0 38 80 00 01 */ li r4, 1
/* 8037CC94 003788F4 80 1E 00 08 */ lwz r0, 8(r30)
/* 8037CC98 003788F8 7C A5 F8 50 */ subf r5, r5, r31
/* 8037CC9C 003788FC 7C A5 03 96 */ divwu r5, r5, r0
/* 8037CCA0 00378900 54 A0 E8 FE */ srwi r0, r5, 3
/* 8037CCA4 00378904 7C DE 02 14 */ add r6, r30, r0
/* 8037CCA8 00378908 54 A0 07 7E */ clrlwi r0, r5, 0x1d
/* 8037CCAC 0037890C 88 A6 00 14 */ lbz r5, 0x14(r6)
/* 8037CCB0 00378910 7C 80 00 30 */ slw r0, r4, r0
/* 8037CCB4 00378914 7C A0 00 78 */ andc r0, r5, r0
/* 8037CCB8 00378918 98 06 00 14 */ stb r0, 0x14(r6)
/* 8037CCBC 0037891C 80 9E 00 10 */ lwz r4, 0x10(r30)
/* 8037CCC0 00378920 38 04 FF FF */ addi r0, r4, -1
/* 8037CCC4 00378924 90 1E 00 10 */ stw r0, 0x10(r30)
/* 8037CCC8 00378928 4B EF 1A BD */ bl OSRestoreInterrupts
/* 8037CCCC 0037892C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8037CCD0 00378930 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8037CCD4 00378934 83 C1 00 08 */ lwz r30, 8(r1)
/* 8037CCD8 00378938 7C 08 03 A6 */ mtlr r0
/* 8037CCDC 0037893C 38 21 00 10 */ addi r1, r1, 0x10
/* 8037CCE0 00378940 4E 80 00 20 */ blr
|