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 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365
| .text:76B2D038 .text:76B2D038 ; =============== S U B R O U T I N E ======================================= .text:76B2D038 .text:76B2D038 ; Attributes: bp-based frame .text:76B2D038 .text:76B2D038 ; int __stdcall midiOutPlayNextPolyEvent(WPARAM wParam) .text:76B2D038 _midiOutPlayNextPolyEvent@4 proc near ; CODE XREF: midiOutTimerTick(x,x,x,x,x)+4A↓p .text:76B2D038 .text:76B2D038 var_14= dword ptr -14h .text:76B2D038 var_10= dword ptr -10h .text:76B2D038 hmo= dword ptr -0Ch .text:76B2D038 var_8= dword ptr -8 .text:76B2D038 var_1= byte ptr -1 .text:76B2D038 wParam= dword ptr 8 .text:76B2D038 .text:76B2D038 8B FF mov edi, edi .text:76B2D03A 55 push ebp .text:76B2D03B 8B EC mov ebp, esp .text:76B2D03D 83 EC 14 sub esp, 14h .text:76B2D040 57 push edi .text:76B2D041 8B 7D 08 mov edi, [ebp+wParam] .text:76B2D044 83 7F 34 00 cmp dword ptr [edi+34h], 0 .text:76B2D048 0F 85 3E 02 00 00 jnz loc_76B2D28C .text:76B2D048 .text:76B2D04E 53 push ebx .text:76B2D04F 56 push esi .text:76B2D04F .text:76B2D050 .text:76B2D050 loc_76B2D050: ; CODE XREF: midiOutPlayNextPolyEvent(x)+33↓j .text:76B2D050 ; midiOutPlayNextPolyEvent(x)+24C↓j .text:76B2D050 8B 77 3C mov esi, [edi+3Ch] .text:76B2D053 85 F6 test esi, esi .text:76B2D055 0F 84 2F 02 00 00 jz loc_76B2D28A .text:76B2D055 .text:76B2D05B 57 push edi .text:76B2D05C E8 29 FA FF FF call _midiOutScheduleNextEvent@4 ; midiOutScheduleNextEvent(x) .text:76B2D05C .text:76B2D061 85 C0 test eax, eax .text:76B2D063 75 08 jnz short loc_76B2D06D .text:76B2D063 .text:76B2D065 57 push edi ; wParam .text:76B2D066 E8 5C FA FF FF call _midiOutDequeueAndCallback@4 ; midiOutDequeueAndCallback(x) .text:76B2D066 .text:76B2D06B EB E3 jmp short loc_76B2D050 .text:76B2D06B .text:76B2D06D ; --------------------------------------------------------------------------- .text:76B2D06D .text:76B2D06D loc_76B2D06D: ; CODE XREF: midiOutPlayNextPolyEvent(x)+2B↑j .text:76B2D06D 8B 0E mov ecx, [esi] .text:76B2D06F 8B 46 24 mov eax, [esi+24h] .text:76B2D072 8B 04 01 mov eax, [ecx+eax] .text:76B2D075 8B 57 7C mov edx, [edi+7Ch] .text:76B2D078 03 C2 add eax, edx .text:76B2D07A 3B 87 80 00 00 00 cmp eax, [edi+80h] .text:76B2D080 89 4D 08 mov [ebp+wParam], ecx .text:76B2D083 89 47 74 mov [edi+74h], eax .text:76B2D086 0F 8F FE 01 00 00 jg loc_76B2D28A .text:76B2D086 .text:76B2D08C 8B 56 24 mov edx, [esi+24h] .text:76B2D08F 89 47 7C mov [edi+7Ch], eax .text:76B2D092 83 46 24 04 add dword ptr [esi+24h], 4 .text:76B2D096 8B 5E 24 mov ebx, [esi+24h] .text:76B2D099 8B 0C 0B mov ecx, [ebx+ecx] .text:76B2D09C 51 push ecx .text:76B2D09D 83 C3 04 add ebx, 4 .text:76B2D0A0 57 push edi .text:76B2D0A1 89 55 F0 mov [ebp+var_10], edx .text:76B2D0A4 89 4D EC mov [ebp+var_14], ecx .text:76B2D0A7 89 5E 24 mov [esi+24h], ebx .text:76B2D0AA E8 48 F7 FF FF call _mseIDtoHMidi@8 ; mseIDtoHMidi(x,x) .text:76B2D0AA .text:76B2D0AF 89 45 F4 mov [ebp+hmo], eax .text:76B2D0B2 8B 45 08 mov eax, [ebp+wParam] .text:76B2D0B5 8B 0C 03 mov ecx, [ebx+eax] .text:76B2D0B8 83 C3 04 add ebx, 4 .text:76B2D0BB 8B C1 mov eax, ecx .text:76B2D0BD 89 5E 24 mov [esi+24h], ebx .text:76B2D0C0 C1 E8 18 shr eax, 18h .text:76B2D0C3 81 E1 FF FF FF 00 and ecx, 0FFFFFFh .text:76B2D0C9 33 DB xor ebx, ebx .text:76B2D0CB 39 5D F4 cmp [ebp+hmo], ebx .text:76B2D0CE 88 45 0B mov byte ptr [ebp+wParam+3], al .text:76B2D0D1 89 4D F8 mov [ebp+var_8], ecx .text:76B2D0D4 74 2A jz short loc_76B2D100 .text:76B2D0D4 .text:76B2D0D6 A8 40 test al, 40h .text:76B2D0D8 74 26 jz short loc_76B2D100 .text:76B2D0D8 .text:76B2D0DA 8B 45 F0 mov eax, [ebp+var_10] .text:76B2D0DD 53 push ebx ; dwParam2 .text:76B2D0DE 56 push esi ; dwParam1 .text:76B2D0DF 89 46 1C mov [esi+1Ch], eax .text:76B2D0E2 FF 77 4C push dword ptr [edi+4Ch] ; dwUser .text:76B2D0E5 0F B7 47 4A movzx eax, word ptr [edi+4Ah] .text:76B2D0E9 68 CA 03 00 00 push 3CAh ; dwMsg .text:76B2D0EE FF 77 04 push dword ptr [edi+4] ; hDevice .text:76B2D0F1 50 push eax ; dwFlags .text:76B2D0F2 FF 77 44 push dword ptr [edi+44h] ; dwCallback .text:76B2D0F5 E8 9F 83 FE FF call _DriverCallback@28 ; DriverCallback(x,x,x,x,x,x,x) .text:76B2D0F5 .text:76B2D0FA 8A 45 0B mov al, byte ptr [ebp+wParam+3] .text:76B2D0FD 8B 4D F8 mov ecx, [ebp+var_8] .text:76B2D0FD .text:76B2D100 .text:76B2D100 loc_76B2D100: ; CODE XREF: midiOutPlayNextPolyEvent(x)+9C↑j .text:76B2D100 ; midiOutPlayNextPolyEvent(x)+A0↑j .text:76B2D100 24 BF and al, 0BFh .text:76B2D102 0F B6 D0 movzx edx, al .text:76B2D105 2B D3 sub edx, ebx .text:76B2D107 0F 84 A9 00 00 00 jz loc_76B2D1B6 .text:76B2D107 .text:76B2D10D 4A dec edx .text:76B2D10E 0F 84 91 00 00 00 jz loc_76B2D1A5 .text:76B2D10E .text:76B2D114 83 EA 7F sub edx, 7Fh .text:76B2D117 74 16 jz short loc_76B2D12F .text:76B2D117 .text:76B2D119 84 C0 test al, al .text:76B2D11B 0F 89 55 01 00 00 jns loc_76B2D276 .text:76B2D11B .text:76B2D121 83 C1 03 add ecx, 3 .text:76B2D124 83 E1 FC and ecx, 0FFFFFFFCh .text:76B2D127 01 4E 24 add [esi+24h], ecx .text:76B2D12A E9 47 01 00 00 jmp loc_76B2D276 .text:76B2D12A .text:76B2D12F ; --------------------------------------------------------------------------- .text:76B2D12F .text:76B2D12F loc_76B2D12F: ; CODE XREF: midiOutPlayNextPolyEvent(x)+DF↑j .text:76B2D12F 83 C1 03 add ecx, 3 .text:76B2D132 83 E1 FC and ecx, 0FFFFFFFCh .text:76B2D135 01 4E 24 add [esi+24h], ecx .text:76B2D138 33 C9 xor ecx, ecx .text:76B2D13A 41 inc ecx .text:76B2D13B 83 7D EC FF cmp [ebp+var_14], 0FFFFFFFFh .text:76B2D13F 8B C1 mov eax, ecx .text:76B2D141 75 06 jnz short loc_76B2D149 .text:76B2D141 .text:76B2D143 8B 87 8C 00 00 00 mov eax, [edi+8Ch] .text:76B2D143 .text:76B2D149 .text:76B2D149 loc_76B2D149: ; CODE XREF: midiOutPlayNextPolyEvent(x)+109↑j .text:76B2D149 8B 5E 18 mov ebx, [esi+18h] .text:76B2D14C 83 A7 88 00 00 00 00 and dword ptr [edi+88h], 0 .text:76B2D153 83 4F 08 20 or dword ptr [edi+8], 20h .text:76B2D157 85 C0 test eax, eax .text:76B2D159 89 4F 34 mov [edi+34h], ecx .text:76B2D15C 74 31 jz short loc_76B2D18F .text:76B2D15C .text:76B2D15E 89 45 08 mov [ebp+wParam], eax .text:76B2D15E .text:76B2D161 .text:76B2D161 loc_76B2D161: ; CODE XREF: midiOutPlayNextPolyEvent(x)+155↓j .text:76B2D161 8B 73 04 mov esi, [ebx+4] .text:76B2D164 8D 46 40 lea eax, [esi+40h] .text:76B2D167 89 43 04 mov [ebx+4], eax .text:76B2D16A FF 76 20 push dword ptr [esi+20h] .text:76B2D16D 57 push edi .text:76B2D16E E8 84 F6 FF FF call _mseIDtoHMidi@8 ; mseIDtoHMidi(x,x) .text:76B2D16E .text:76B2D173 85 C0 test eax, eax .text:76B2D175 74 13 jz short loc_76B2D18A .text:76B2D175 .text:76B2D177 6A 40 push 40h ; '@' ; cbmh .text:76B2D179 56 push esi ; pmh .text:76B2D17A 50 push eax ; hmo .text:76B2D17B E8 39 C0 FF FF call _midiOutLongMsg@12 ; midiOutLongMsg(x,x,x) .text:76B2D17B .text:76B2D180 85 C0 test eax, eax .text:76B2D182 75 06 jnz short loc_76B2D18A .text:76B2D182 .text:76B2D184 FF 87 88 00 00 00 inc dword ptr [edi+88h] .text:76B2D184 .text:76B2D18A .text:76B2D18A loc_76B2D18A: ; CODE XREF: midiOutPlayNextPolyEvent(x)+13D↑j .text:76B2D18A ; midiOutPlayNextPolyEvent(x)+14A↑j .text:76B2D18A FF 4D 08 dec [ebp+wParam] .text:76B2D18D 75 D2 jnz short loc_76B2D161 .text:76B2D18D .text:76B2D18F .text:76B2D18F loc_76B2D18F: ; CODE XREF: midiOutPlayNextPolyEvent(x)+124↑j .text:76B2D18F 83 BF 88 00 00 00 00 cmp dword ptr [edi+88h], 0 .text:76B2D196 75 04 jnz short loc_76B2D19C .text:76B2D196 .text:76B2D198 83 67 34 00 and dword ptr [edi+34h], 0 .text:76B2D198 .text:76B2D19C .text:76B2D19C loc_76B2D19C: ; CODE XREF: midiOutPlayNextPolyEvent(x)+15E↑j .text:76B2D19C 83 67 08 DF and dword ptr [edi+8], 0FFFFFFDFh .text:76B2D1A0 E9 D1 00 00 00 jmp loc_76B2D276 .text:76B2D1A0 .text:76B2D1A5 ; --------------------------------------------------------------------------- .text:76B2D1A5 .text:76B2D1A5 loc_76B2D1A5: ; CODE XREF: midiOutPlayNextPolyEvent(x)+D6↑j .text:76B2D1A5 FF 77 7C push dword ptr [edi+7Ch] .text:76B2D1A8 89 4F 30 mov [edi+30h], ecx .text:76B2D1AB 57 push edi .text:76B2D1AC E8 73 F8 FF FF call _midiOutSetClockRate@8 ; midiOutSetClockRate(x,x) .text:76B2D1AC .text:76B2D1B1 E9 C0 00 00 00 jmp loc_76B2D276 .text:76B2D1B1 .text:76B2D1B6 ; --------------------------------------------------------------------------- .text:76B2D1B6 .text:76B2D1B6 loc_76B2D1B6: ; CODE XREF: midiOutPlayNextPolyEvent(x)+CF↑j .text:76B2D1B6 39 5D F4 cmp [ebp+hmo], ebx .text:76B2D1B9 8B B7 84 00 00 00 mov esi, [edi+84h] .text:76B2D1BF 0F 84 B1 00 00 00 jz loc_76B2D276 .text:76B2D1BF .text:76B2D1C5 84 C9 test cl, cl .text:76B2D1C7 8A C1 mov al, cl .text:76B2D1C9 8B D9 mov ebx, ecx .text:76B2D1CB 78 16 js short loc_76B2D1E3 .text:76B2D1CB .text:76B2D1CD 8A 47 54 mov al, [edi+54h] .text:76B2D1D0 88 4D 0B mov byte ptr [ebp+wParam+3], cl .text:76B2D1D3 0F B6 D0 movzx edx, al .text:76B2D1D6 C1 E1 08 shl ecx, 8 .text:76B2D1D9 C1 EB 08 shr ebx, 8 .text:76B2D1DC 0B CA or ecx, edx .text:76B2D1DE 89 4D F8 mov [ebp+var_8], ecx .text:76B2D1E1 EB 0E jmp short loc_76B2D1F1 .text:76B2D1E1 .text:76B2D1E3 ; --------------------------------------------------------------------------- .text:76B2D1E3 .text:76B2D1E3 loc_76B2D1E3: ; CODE XREF: midiOutPlayNextPolyEvent(x)+193↑j .text:76B2D1E3 8B D1 mov edx, ecx .text:76B2D1E5 C1 EA 08 shr edx, 8 .text:76B2D1E8 88 4F 54 mov [edi+54h], cl .text:76B2D1EB 88 55 0B mov byte ptr [ebp+wParam+3], dl .text:76B2D1EE C1 EB 10 shr ebx, 10h .text:76B2D1EE .text:76B2D1F1 .text:76B2D1F1 loc_76B2D1F1: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1A9↑j .text:76B2D1F1 8A D0 mov dl, al .text:76B2D1F3 80 E2 F0 and dl, 0F0h .text:76B2D1F6 80 FA 90 cmp dl, 90h .text:76B2D1F9 88 55 FF mov [ebp+var_1], dl .text:76B2D1FC 74 05 jz short loc_76B2D203 .text:76B2D1FC .text:76B2D1FE 80 FA 80 cmp dl, 80h .text:76B2D201 75 5C jnz short loc_76B2D25F .text:76B2D201 .text:76B2D203 .text:76B2D203 loc_76B2D203: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1C4↑j .text:76B2D203 0F B6 55 0B movzx edx, byte ptr [ebp+wParam+3] .text:76B2D207 83 E0 0F and eax, 0Fh .text:76B2D20A C1 E0 07 shl eax, 7 .text:76B2D20D 03 C2 add eax, edx .text:76B2D20F 99 cdq .text:76B2D210 2B C2 sub eax, edx .text:76B2D212 D1 F8 sar eax, 1 .text:76B2D214 80 7D FF 80 cmp [ebp+var_1], 80h .text:76B2D218 74 2A jz short loc_76B2D244 .text:76B2D218 .text:76B2D21A 84 DB test bl, bl .text:76B2D21C 74 26 jz short loc_76B2D244 .text:76B2D21C .text:76B2D21E 03 F0 add esi, eax .text:76B2D220 F6 45 0B 01 test byte ptr [ebp+wParam+3], 1 .text:76B2D224 8A 06 mov al, [esi] .text:76B2D226 8A D0 mov dl, al .text:76B2D228 74 0C jz short loc_76B2D236 .text:76B2D228 .text:76B2D22A 80 E2 F0 and dl, 0F0h .text:76B2D22D 80 FA F0 cmp dl, 0F0h .text:76B2D230 74 2D jz short loc_76B2D25F .text:76B2D230 .text:76B2D232 04 10 add al, 10h .text:76B2D234 EB 0A jmp short loc_76B2D240 .text:76B2D234 .text:76B2D236 ; --------------------------------------------------------------------------- .text:76B2D236 .text:76B2D236 loc_76B2D236: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1F0↑j .text:76B2D236 80 E2 0F and dl, 0Fh .text:76B2D239 80 FA 0F cmp dl, 0Fh .text:76B2D23C 74 21 jz short loc_76B2D25F .text:76B2D23C .text:76B2D23E FE C0 inc al .text:76B2D23E .text:76B2D240 .text:76B2D240 loc_76B2D240: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1FC↑j .text:76B2D240 88 06 mov [esi], al .text:76B2D242 EB 1B jmp short loc_76B2D25F .text:76B2D242 .text:76B2D244 ; --------------------------------------------------------------------------- .text:76B2D244 .text:76B2D244 loc_76B2D244: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1E0↑j .text:76B2D244 ; midiOutPlayNextPolyEvent(x)+1E4↑j .text:76B2D244 F6 45 0B 01 test byte ptr [ebp+wParam+3], 1 .text:76B2D248 8D 14 30 lea edx, [eax+esi] .text:76B2D24B 8A 02 mov al, [edx] .text:76B2D24D 74 08 jz short loc_76B2D257 .text:76B2D24D .text:76B2D24F A8 F0 test al, 0F0h .text:76B2D251 74 0C jz short loc_76B2D25F .text:76B2D251 .text:76B2D253 2C 10 sub al, 10h .text:76B2D255 EB 06 jmp short loc_76B2D25D .text:76B2D255 .text:76B2D257 ; --------------------------------------------------------------------------- .text:76B2D257 .text:76B2D257 loc_76B2D257: ; CODE XREF: midiOutPlayNextPolyEvent(x)+215↑j .text:76B2D257 A8 0F test al, 0Fh .text:76B2D259 74 04 jz short loc_76B2D25F .text:76B2D259 .text:76B2D25B FE C8 dec al .text:76B2D25B .text:76B2D25D .text:76B2D25D loc_76B2D25D: ; CODE XREF: midiOutPlayNextPolyEvent(x)+21D↑j .text:76B2D25D 88 02 mov [edx], al .text:76B2D25D .text:76B2D25F .text:76B2D25F loc_76B2D25F: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1C9↑j .text:76B2D25F ; midiOutPlayNextPolyEvent(x)+1F8↑j .text:76B2D25F ; midiOutPlayNextPolyEvent(x)+204↑j .text:76B2D25F ; midiOutPlayNextPolyEvent(x)+20A↑j .text:76B2D25F ; midiOutPlayNextPolyEvent(x)+219↑j .text:76B2D25F ; midiOutPlayNextPolyEvent(x)+221↑j .text:76B2D25F 51 push ecx ; dwMsg .text:76B2D260 FF 75 F4 push [ebp+hmo] ; hmo .text:76B2D263 E8 CA BE FF FF call _midiOutShortMsg@8 ; midiOutShortMsg(x,x) .text:76B2D263 .text:76B2D268 EB 0C jmp short loc_76B2D276 .text:76B2D268 .text:76B2D26A ; --------------------------------------------------------------------------- .text:76B2D26A .text:76B2D26A loc_76B2D26A: ; CODE XREF: midiOutPlayNextPolyEvent(x)+246↓j .text:76B2D26A 57 push edi ; wParam .text:76B2D26B E8 57 F8 FF FF call _midiOutDequeueAndCallback@4 ; midiOutDequeueAndCallback(x) .text:76B2D26B .text:76B2D270 83 7F 3C 00 cmp dword ptr [edi+3Ch], 0 .text:76B2D274 74 0A jz short loc_76B2D280 .text:76B2D274 .text:76B2D276 .text:76B2D276 loc_76B2D276: ; CODE XREF: midiOutPlayNextPolyEvent(x)+E3↑j .text:76B2D276 ; midiOutPlayNextPolyEvent(x)+F2↑j .text:76B2D276 ; midiOutPlayNextPolyEvent(x)+168↑j .text:76B2D276 ; midiOutPlayNextPolyEvent(x)+179↑j .text:76B2D276 ; midiOutPlayNextPolyEvent(x)+187↑j .text:76B2D276 ; midiOutPlayNextPolyEvent(x)+230↑j .text:76B2D276 57 push edi .text:76B2D277 E8 0E F8 FF FF call _midiOutScheduleNextEvent@4 ; midiOutScheduleNextEvent(x) .text:76B2D277 .text:76B2D27C 85 C0 test eax, eax .text:76B2D27E 74 EA jz short loc_76B2D26A .text:76B2D27E .text:76B2D280 .text:76B2D280 loc_76B2D280: ; CODE XREF: midiOutPlayNextPolyEvent(x)+23C↑j .text:76B2D280 83 7F 34 00 cmp dword ptr [edi+34h], 0 .text:76B2D284 0F 84 C6 FD FF FF jz loc_76B2D050 .text:76B2D284 .text:76B2D28A .text:76B2D28A loc_76B2D28A: ; CODE XREF: midiOutPlayNextPolyEvent(x)+1D↑j .text:76B2D28A ; midiOutPlayNextPolyEvent(x)+4E↑j .text:76B2D28A 5E pop esi .text:76B2D28B 5B pop ebx .text:76B2D28B .text:76B2D28C .text:76B2D28C loc_76B2D28C: ; CODE XREF: midiOutPlayNextPolyEvent(x)+10↑j .text:76B2D28C 5F pop edi .text:76B2D28D C9 leave .text:76B2D28E C2 04 00 retn 4 .text:76B2D28E .text:76B2D28E _midiOutPlayNextPolyEvent@4 endp .text:76B2D28E .text:76B2D28E ; ----------------------------------------------------------------------
|