/[openvortex]/alsa/pci/au88x0/au88x0_synth.c
ViewVC logotype

Diff of /alsa/pci/au88x0/au88x0_synth.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by vizard, Tue Apr 15 22:01:03 2003 UTC revision 1.2 by mjander, Fri Jul 4 03:33:02 2003 UTC
# Line 2  Line 2 
2   * Someday its supposed to make use of the WT DMA engine   * Someday its supposed to make use of the WT DMA engine
3   * for a Wavetable synthesizer.   * for a Wavetable synthesizer.
4   */   */
5    #if 0
6    #include "au88x0.h"
7    
8    int  vortex_GetReg(vortex_t *vortex, char a, int *b) {
9            int eax, esi;
10            
11            if (a != 4) {
12                    if (a == 7)
13                            return 0;
14                    return hwread(vortex->mmio, (*b << 0xf) + 0x10);
15            }
16            esi = b[1];
17            eax = ((((a & 0x1f) + b[1]) / 32) & 0xff) << 0xb;
18            if (esi < 0)
19                    esi = ((esi-1)|0x0FFFFFFE0)+1;
20            esi &= 0xff;
21            hwread(vortex->mmio, ((eax + esi) << 4) + 0x20c);
22                    
23            return 8;
24    }
25    
26    /*
27     WT hardware abstraction layer generic register interface.
28     a: type of register or register set to be accessed.
29     b: Register offset
30     c: Register value (or values) to be written.
31    */
32    int  vortex_SetReg(vortex_t *vortex, unsigned char a, int b, unsigned long *c) {
33            int  ecx, edx, esp4, eax;
34            
35            ecx = b;
36            if (ecx >= 0x40)
37                    return 0;
38            
39            eax = ecx;
40            /* cdq: 64 bit sign extender */
41            if (eax<0)
42                    edx = 0xffffffff & 0x1f;
43            else
44                    edx = 0;
45            eax += edx;
46            edx = ecx & 0x8000001f;
47            eax = (eax / 32) | ((char)b);
48            if (eax < 0)
49                    edx = ((edx-1)|0x0FFFFFFE0)+1;
50            
51            esp4 = (char)edx;
52            
53            if ((char)eax >= 2)
54                    return 0;
55            
56            eax = a & 0xff;
57            
58            if (eax > 0xc)
59                    return 0;
60            
61            switch (eax) {
62                    case 0 :
63                            eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
64                            hwwrite(vortex->mmio, 0x180 + (eax << 2), *c);
65                            return 0xc;
66                    break;
67                    case 1 :
68                            edx = ((b & 0xff) << 0xd) + (esp4 & 0xff);
69                            hwwrite(vortex->mmio, 0x20 + (edx << 4), *c);
70                            return 0xc;                    
71                    break;
72                    case 2 :
73                            eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
74                            hwwrite(vortex->mmio, 0x204 + (eax << 2), *c);
75                            return 0xc;
76                    break;
77                    case 3 :
78                            eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
79                            hwwrite(vortex->mmio, 0x208 + (eax << 2), *c);
80                            return 0xc;
81                    break;
82                    case 4 :
83                            eax = ((b & 0xff) << 0xb) + (esp4 & 0xff);
84                            hwwrite(vortex->mmio, 0x20c + (eax << 2), *c);
85                            return 0xc;
86                    break;
87                    case 6 :
88                            edx = ((b & 0xff) << 0xd) + (esp4 & 0xff);
89                            hwwrite(vortex->mmio, 0x100 + (edx << 4), *c);
90                            return 0xc;                    
91                    break;
92                    case 0xb :
93                            {
94                                    int ebx, esi, edi;
95                                    
96                                    edx = ((b & 0xff) << 0xb) + (esp4 & 0xff);
97                                    ebx = b + &esp4;
98                                    esi = ebx << 4;
99                                    edi = c[3];
100                                    
101                                    hwwrite(vortex->mmio, 0x40 + esi, edi);
102                                    hwwrite(vortex->mmio, 0x408 + esi, edi);
103                                    hwwrite(vortex->mmio, 0x404 + esi, edi);
104                                    hwwrite(vortex->mmio, 0x40 + (ebx << 4), edi);
105                                    return 0xc;                    
106                            }
107                    break;
108                    case 5 :
109                            ecx = (ecx << 0xf) + 0x4;
110                    break;
111                    case 8 :
112                            ecx = (ecx << 0xf) + 0x14;
113                    break;
114                    case 9 :
115                            ecx = (ecx << 0xf) + 0xc;
116                    break;
117                    case 0xa :
118                            ecx = (ecx << 0xf) + 0x0;
119                    break;
120                    case 0xc :
121                            ecx = (ecx << 0xf) + 0x8;
122                    break;          
123            }
124            eax = ecx;
125            hwwrite(vortex->mmio, eax, *c);
126    }
127    
128    void vortex_InitializeWTRegs(vortex_t * vortex) {
129            
130            
131            
132    }
133    
134    #endif
135    /*
136    CSynth constructor
137    
138    ; public: class Asp4SynthTopology * __thiscall Asp4Topology::AllocSynth(class CResource *)
139    
140    ?AllocSynth@Asp4Topology@@QAEPAVAsp4SynthTopology@@PAVCResource@@@Z proc near
141                                            ; CODE XREF: CAsp4Core::SetWavetableTopology(int)+3Fp
142                                            ; .text:0002565Dp
143    
144    var_14          = dword ptr -14h
145    var_10          = dword ptr -10h
146    var_C           = dword ptr -0Ch
147    var_8           = dword ptr -8
148    var_4           = dword ptr -4
149    arg_0           = dword ptr  4
150    
151                    sub     esp, 14h
152                    push    ebx
153                    push    ebp
154                    push    esi
155                    push    edi
156                    mov     edi, ecx
157                    push    70h
158                    call    ??2@YAPAXI@Z    ; operator new(uint)
159    
160                    add     esp, 4
161                    test    eax, eax
162                    jz      short loc_2F3BA
163    
164                    mov     ebp, [esp+24h+arg_0]
165                    push    edi
166                    push    ebp
167                    mov     ecx, eax
168                    call    ??0Asp4SynthTopology@@QAE@PAVCResource@@PAVAsp4Topology@@@Z ; Asp4SynthTopology::Asp4SynthTopology(CResource *,Asp4Topology *)
169    
170                    mov     esi, eax
171                    test    esi, esi
172                    jnz     short loc_2F3C6
173    
174    
175    loc_2F3BA:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+15j
176                    pop     edi
177                    pop     esi
178                    pop     ebp
179                    xor     eax, eax
180                    pop     ebx
181                    add     esp, 14h
182                    retn    4
183    
184    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
185    
186    loc_2F3C6:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+28j
187                    mov     eax, [ebp+3A4h]
188                    mov     ecx, [ebp+3ACh]
189                    mov     ebx, [ebp+3A8h]
190                    lea     edx, [esp+24h+var_14]
191                    push    edx
192                    push    offset aA_0     ; "A"
193                    push    offset asc_814A0 ; "s"
194                    push    80000002h
195                    mov     [esp+34h+var_4], eax
196                    mov     [esp+34h+arg_0], ecx
197                    call    _AspReadRegDwordValue@16
198    
199                    test    eax, eax
200                    jz      short loc_2F403
201    
202                    mov     eax, [esp+24h+var_14]
203                    jmp     short loc_2F41C
204    
205    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
206    
207    loc_2F403:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+6Bj
208                    cmp     ebx, 0C8h
209                    jb      short loc_2F41A
210    
211                    mov     eax, [esp+24h+arg_0]
212                    test    eax, eax
213                    jz      short loc_2F41A
214    
215                    mov     eax, 1
216                    jmp     short loc_2F41C
217    
218    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
219    
220    loc_2F41A:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+79j
221                                            ; Asp4Topology::AllocSynth(CResource *)+81j
222                    xor     eax, eax
223    
224    loc_2F41C:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+71j
225                                            ; Asp4Topology::AllocSynth(CResource *)+88j
226                    lea     ecx, [esp+24h+var_14]
227                    mov     [edi+88h], eax
228                    push    ecx
229                    push    offset asc_81514 ; "S"
230                    push    offset asc_81528 ; "s"
231                    push    80000002h
232                    call    _AspReadRegDwordValue@16
233    
234                    test    eax, eax
235                    jz      short loc_2F44B
236    
237                    mov     edx, [esp+24h+var_14]
238                    mov     [edi+8Ch], edx
239                    jmp     short loc_2F46A
240    
241    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
242    
243    loc_2F44B:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+ADj
244                    cmp     ebx, 0C8h
245                    jb      short loc_2F462
246    
247                    mov     eax, [esp+24h+arg_0]
248                    test    eax, eax
249                    jz      short loc_2F462
250    
251                    mov     eax, 1
252                    jmp     short loc_2F464
253    
254    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
255    
256    loc_2F462:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+C1j
257                                            ; Asp4Topology::AllocSynth(CResource *)+C9j
258                    xor     eax, eax
259    
260    loc_2F464:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+D0j
261                    mov     [edi+8Ch], eax
262    
263    loc_2F46A:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+B9j
264                    lea     eax, [esp+24h+var_14]
265                    push    eax
266                    push    offset asc_8159C ; "H"
267                    push    offset asc_815B8 ; "s"
268                    push    80000002h
269                    call    _AspReadRegDwordValue@16
270    
271                    test    eax, eax
272                    jz      short loc_2F493
273    
274                    mov     ecx, [esp+24h+var_14]
275                    mov     [edi+90h], ecx
276                    jmp     short loc_2F49D
277    
278    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
279    
280    loc_2F493:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+F5j
281                    mov     dword ptr [edi+90h], 1
282    
283    loc_2F49D:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+101j
284                    lea     edx, [esp+24h+var_14]
285                    push    edx
286                    push    offset aG_15    ; "G"
287                    push    offset asc_81640 ; "s"
288                    push    80000002h
289                    call    _AspReadRegDwordValue@16
290    
291                    test    eax, eax
292                    jz      short loc_2F4C8
293    
294                    mov     eax, [esp+24h+var_14]
295                    lea     ebx, [edi+94h]
296                    mov     [ebx], eax
297                    jmp     short loc_2F4F9
298    
299    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
300    
301    loc_2F4C8:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+128j
302                    cmp     [esp+24h+var_4], 6
303                    jnb     short loc_2F4ED
304    
305                    cmp     ebx, 0C8h
306                    jb      short loc_2F4ED
307    
308                    mov     eax, [esp+24h+arg_0]
309                    test    eax, eax
310                    jz      short loc_2F4ED
311    
312                    lea     ebx, [edi+94h]
313                    mov     dword ptr [ebx], 1
314                    jmp     short loc_2F4F9
315    
316    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
317    
318    loc_2F4ED:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+13Dj
319                                            ; Asp4Topology::AllocSynth(CResource *)+145j ...
320                    lea     ebx, [edi+94h]
321                    mov     dword ptr [ebx], 0
322    
323    loc_2F4F9:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+136j
324                                            ; Asp4Topology::AllocSynth(CResource *)+15Bj
325                    xor     eax, eax
326                    mov     dword ptr [edi+9Ch], 3E8h
327                    mov     [esp+24h+var_10], eax
328                    mov     [esp+24h+var_C], eax
329                    cmp     dword ptr [edi+64h], 0FFFFFFFFh
330                    jnz     short loc_2F564
331    
332                    lea     ecx, [esp+24h+var_10]
333                    push    0FFFFFFFFh
334                    push    ecx
335                    push    81h
336                    mov     ecx, ebp
337                    call    ?SearchMixerOutputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerOutputChannel(_eReservedFor,ulong *,ulong)
338    
339                    test    eax, eax
340                    jnz     short loc_2F564
341    
342                    lea     edx, [esp+24h+var_C]
343                    push    0FFFFFFFFh
344                    push    edx
345                    push    65h
346                    mov     ecx, ebp
347                    call    ?SearchMixerInputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerInputChannel(_eReservedFor,ulong *,ulong)
348    
349                    test    eax, eax
350                    jnz     short loc_2F564
351    
352                    mov     eax, [esp+24h+var_10]
353                    mov     edx, [esp+24h+var_C]
354                    add     eax, 420h
355                    mov     ecx, [edi+74h]
356                    shl     eax, 5
357                    add     eax, edx
358                    shl     eax, 2
359                    push    eax
360                    call    ?ReadDWORD@CAsp4HwIO@@QAEKK@Z ; CAsp4HwIO::ReadDWORD(ulong)
361    
362                    and     eax, 0FFh
363                    mov     [edi+64h], eax
364    
365    loc_2F564:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+181j
366                                            ; Asp4Topology::AllocSynth(CResource *)+198j ...
367                    cmp     dword ptr [edi+68h], 0FFFFFFFFh
368                    jnz     short loc_2F5BB
369    
370                    lea     ecx, [esp+24h+var_10]
371                    push    0FFFFFFFFh
372                    push    ecx
373                    push    82h
374                    mov     ecx, ebp
375                    call    ?SearchMixerOutputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerOutputChannel(_eReservedFor,ulong *,ulong)
376    
377                    test    eax, eax
378                    jnz     short loc_2F5BB
379    
380                    lea     edx, [esp+24h+var_C]
381                    push    0FFFFFFFFh
382                    push    edx
383                    push    66h
384                    mov     ecx, ebp
385                    call    ?SearchMixerInputChannel@CResource@@QAEJW4_eReservedFor@@PAKK@Z ; CResource::SearchMixerInputChannel(_eReservedFor,ulong *,ulong)
386    
387                    test    eax, eax
388                    jnz     short loc_2F5BB
389    
390                    mov     eax, [esp+24h+var_10]
391                    mov     edx, [esp+24h+var_C]
392                    add     eax, 420h
393                    mov     ecx, [edi+74h]
394                    shl     eax, 5
395                    add     eax, edx
396                    shl     eax, 2
397                    push    eax
398                    call    ?ReadDWORD@CAsp4HwIO@@QAEKK@Z ; CAsp4HwIO::ReadDWORD(ulong)
399    
400                    and     eax, 0FFh
401                    mov     [edi+68h], eax
402    
403    loc_2F5BB:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+1D8j
404                                            ; Asp4Topology::AllocSynth(CResource *)+1EFj ...
405                    mov     ecx, [ebp+0C4h]
406                    lea     edx, [esp+24h+var_8]
407                    push    edx
408                    push    66h
409                    push    82h
410                    mov     [esp+30h+var_8], 0
411                    call    ?IsInputVolPending@CAsp4Mixer@@QAEHW4_eReservedFor@@0PAK@Z ; CAsp4Mixer::IsInputVolPending(_eReservedFor,_eReservedFor,ulong *)
412    
413                    test    eax, eax
414                    jz      short loc_2F5F0
415    
416                    mov     eax, [esp+24h+var_8]
417                    push    eax
418                    call    ?LinearFrac2WtFP@@YGEK@Z ; LinearFrac2WtFP(ulong)
419    
420                    and     eax, 0FFh
421                    mov     [edi+68h], eax
422    
423    loc_2F5F0:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+24Cj
424                    mov     ecx, [ebp+0C4h]
425                    lea     edx, [esp+24h+var_8]
426                    push    edx
427                    push    65h
428                    push    81h
429                    call    ?IsInputVolPending@CAsp4Mixer@@QAEHW4_eReservedFor@@0PAK@Z ; CAsp4Mixer::IsInputVolPending(_eReservedFor,_eReservedFor,ulong *)
430    
431                    test    eax, eax
432                    jz      short loc_2F61D
433    
434                    mov     eax, [esp+24h+var_8]
435                    push    eax
436                    call    ?LinearFrac2WtFP@@YGEK@Z ; LinearFrac2WtFP(ulong)
437    
438                    and     eax, 0FFh
439                    mov     [edi+64h], eax
440    
441    loc_2F61D:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+279j
442                    mov     ecx, [ebx]
443                    mov     edx, [edi+90h]
444                    mov     eax, [edi+8Ch]
445                    push    ecx
446                    mov     ecx, [edi+88h]
447                    push    edx
448                    push    eax
449                    push    ecx
450                    mov     ecx, esi
451                    call    ?Create@Asp4SynthTopology@@QAEHHHHH@Z ; Asp4SynthTopology::Create(int,int,int,int)
452    
453                    test    eax, eax
454                    jnz     loc_2F719
455    
456                    mov     ecx, esi
457                    call    ??1Asp4SynthTopology@@QAE@XZ ; Asp4SynthTopology::~Asp4SynthTopology(void)
458    
459                    push    esi
460                    call    ??3@YAXPAX@Z    ; operator delete(void *)
461    
462                    add     esp, 4
463                    lea     eax, [edi+88h]
464                    lea     esi, [edi+8Ch]
465                    mov     dword ptr [ebx], 0
466                    push    eax
467                    push    offset asc_816B4 ; "A"
468                    push    offset asc_816E0 ; "s"
469                    push    80000002h
470                    mov     dword ptr [eax], 0
471                    mov     dword ptr [esi], 0
472                    call    _AspSetRegDwordValue@16
473    
474                    push    esi
475                    push    offset asc_81754 ; "S"
476                    push    offset asc_81768 ; "s"
477                    push    80000002h
478                    call    _AspSetRegDwordValue@16
479    
480                    push    ebx
481                    push    offset aG_16    ; "G"
482                    push    offset asc_817F0 ; "s"
483                    push    80000002h
484                    call    _AspSetRegDwordValue@16
485    
486                    push    70h
487                    call    ??2@YAPAXI@Z    ; operator new(uint)
488    
489                    add     esp, 4
490                    test    eax, eax
491                    jz      short loc_2F6CE
492    
493                    push    edi
494                    push    ebp
495                    mov     ecx, eax
496                    call    ??0Asp4SynthTopology@@QAE@PAVCResource@@PAVAsp4Topology@@@Z ; Asp4SynthTopology::Asp4SynthTopology(CResource *,Asp4Topology *)
497    
498                    mov     esi, eax
499                    test    esi, esi
500                    jnz     short loc_2F6DA
501    
502    
503    loc_2F6CE:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+32Dj
504                    pop     edi
505                    pop     esi
506                    pop     ebp
507                    xor     eax, eax
508                    pop     ebx
509                    add     esp, 14h
510                    retn    4
511    
512    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
513    
514    loc_2F6DA:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+33Cj
515                    mov     edx, [ebx]
516                    mov     eax, [edi+90h]
517                    mov     ecx, [edi+8Ch]
518                    push    edx
519                    mov     edx, [edi+88h]
520                    push    eax
521                    push    ecx
522                    push    edx
523                    mov     ecx, esi
524                    call    ?Create@Asp4SynthTopology@@QAEHHHHH@Z ; Asp4SynthTopology::Create(int,int,int,int)
525    
526                    test    eax, eax
527                    jnz     short loc_2F719
528    
529                    mov     ecx, esi
530                    call    ??1Asp4SynthTopology@@QAE@XZ ; Asp4SynthTopology::~Asp4SynthTopology(void)
531    
532                    push    esi
533                    call    ??3@YAXPAX@Z    ; operator delete(void *)
534    
535                    add     esp, 4
536                    xor     eax, eax
537                    pop     edi
538                    pop     esi
539                    pop     ebp
540                    pop     ebx
541                    add     esp, 14h
542                    retn    4
543    
544    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
545    
546    loc_2F719:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+2AEj
547                                            ; Asp4Topology::AllocSynth(CResource *)+36Bj
548                    mov     eax, [edi+90h]
549                    test    eax, eax
550                    jz      loc_2F823
551    
552                    mov     eax, [esi+8]
553                    mov     ecx, edi
554                    add     al, 50h
555                    push    eax
556                    push    62h
557                    push    11h
558                    push    1
559                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
560    
561                    mov     ecx, [esi+0Ch]
562                    add     cl, 50h
563                    push    ecx
564                    push    63h
565                    push    11h
566                    push    1
567                    mov     ecx, edi
568                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
569    
570                    mov     edx, [esi+18h]
571                    mov     ecx, edi
572                    add     dl, 50h
573                    push    edx
574                    push    0A2h
575                    push    11h
576                    push    1
577                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
578    
579                    mov     eax, [esi+1Ch]
580                    mov     ecx, edi
581                    add     al, 50h
582                    push    eax
583                    push    0A3h
584                    push    11h
585                    push    1
586                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
587    
588                    push    2
589                    push    1
590                    mov     ecx, ebp
591                    call    ?GetWTRefCount@CResource@@QAEKHW4WTSOURCE@@@Z ; CResource::GetWTRefCount(int,WTSOURCE)
592    
593                    test    eax, eax
594                    jnz     short loc_2F7CF
595    
596                    mov     eax, [edi+194h]
597                    test    eax, eax
598                    jnz     short loc_2F7CF
599    
600                    mov     ecx, [esi+18h]
601                    push    ecx
602                    mov     ecx, [esi+38h]
603                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
604    
605                    mov     edx, [esi+1Ch]
606                    mov     ecx, [esi+3Ch]
607                    push    edx
608                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
609    
610                    mov     ecx, [esi+40h]
611                    test    ecx, ecx
612                    jz      short loc_2F7CF
613    
614                    mov     eax, [esi+44h]
615                    test    eax, eax
616                    jz      short loc_2F7CF
617    
618                    mov     eax, [esi+18h]
619                    push    eax
620                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
621    
622                    mov     ecx, [esi+1Ch]
623                    push    ecx
624                    mov     ecx, [esi+44h]
625                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
626    
627    
628    loc_2F7CF:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+3F8j
629                                            ; Asp4Topology::AllocSynth(CResource *)+402j ...
630                    push    2
631                    push    0
632                    mov     ecx, ebp
633                    call    ?GetWTRefCount@CResource@@QAEKHW4WTSOURCE@@@Z ; CResource::GetWTRefCount(int,WTSOURCE)
634    
635                    test    eax, eax
636                    jnz     short loc_2F823
637    
638                    mov     eax, [edi+190h]
639                    test    eax, eax
640                    jnz     short loc_2F823
641    
642                    mov     edx, [esi+8]
643                    mov     ecx, [esi+38h]
644                    push    edx
645                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
646    
647                    mov     eax, [esi+0Ch]
648                    mov     ecx, [esi+3Ch]
649                    push    eax
650                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
651    
652                    mov     ecx, [esi+40h]
653                    test    ecx, ecx
654                    jz      short loc_2F823
655    
656                    mov     eax, [esi+44h]
657                    test    eax, eax
658                    jz      short loc_2F823
659    
660                    mov     edx, [esi+8]
661                    push    edx
662                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
663    
664                    mov     eax, [esi+0Ch]
665                    mov     ecx, [esi+44h]
666                    push    eax
667                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
668    
669    
670    loc_2F823:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+391j
671                                            ; Asp4Topology::AllocSynth(CResource *)+44Cj ...
672                    mov     eax, [edi+8Ch]
673                    test    eax, eax
674                    jnz     short loc_2F83B
675    
676                    mov     eax, [edi+88h]
677                    test    eax, eax
678                    jz      loc_2FB41
679    
680    
681    loc_2F83B:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+49Bj
682                    mov     ecx, [esi+10h]
683                    push    ecx
684                    mov     ecx, [esi+38h]
685                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
686    
687                    mov     edx, [esi+14h]
688                    mov     ecx, [esi+3Ch]
689                    push    edx
690                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
691    
692                    mov     ecx, [esi+40h]
693                    test    ecx, ecx
694                    jz      short loc_2F876
695    
696                    mov     eax, [esi+44h]
697                    test    eax, eax
698                    jz      short loc_2F876
699    
700                    mov     eax, [esi+10h]
701                    push    eax
702                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
703    
704                    mov     ecx, [esi+14h]
705                    push    ecx
706                    mov     ecx, [esi+44h]
707                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
708    
709    
710    loc_2F876:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+4C8j
711                                            ; Asp4Topology::AllocSynth(CResource *)+4CFj
712                    mov     eax, [esi+28h]
713                    mov     ecx, ebp
714                    push    eax
715                    call    ?GetInputChannelRefCount@CResource@@QAEKK@Z ; CResource::GetInputChannelRefCount(ulong)
716    
717                    cmp     eax, 1
718                    jnz     short loc_2F8C4
719    
720                    mov     edx, [esi+28h]
721                    mov     ecx, edi
722                    add     dl, 50h
723                    push    edx
724                    push    64h
725                    push    11h
726                    push    eax
727                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
728    
729                    mov     eax, [esi+20h]
730                    mov     ecx, edi
731                    add     al, 50h
732                    push    eax
733                    push    65h
734                    push    11h
735                    push    1
736                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
737    
738                    mov     ecx, [esi+28h]
739                    push    ecx
740                    mov     ecx, [esi+34h]
741                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
742    
743                    mov     edx, [esi+20h]
744                    mov     ecx, [esi+30h]
745                    push    edx
746                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
747    
748    
749    loc_2F8C4:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+4F4j
750                    mov     eax, [esi+2Ch]
751                    mov     ecx, ebp
752                    push    eax
753                    call    ?GetInputChannelRefCount@CResource@@QAEKK@Z ; CResource::GetInputChannelRefCount(ulong)
754    
755                    cmp     eax, 1
756                    jnz     short loc_2F919
757    
758                    mov     eax, [esi+2Ch]
759                    mov     ecx, edi
760                    add     al, 50h
761                    push    eax
762                    push    0A4h
763                    push    11h
764                    push    1
765                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
766    
767                    mov     ecx, [esi+24h]
768                    add     cl, 50h
769                    push    ecx
770                    push    0A5h
771                    push    11h
772                    push    1
773                    mov     ecx, edi
774                    call    ?Route@Asp4Topology@@QAEXHEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar)
775    
776                    mov     edx, [esi+2Ch]
777                    mov     ecx, [esi+34h]
778                    push    edx
779                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
780    
781                    mov     eax, [esi+24h]
782                    mov     ecx, [esi+30h]
783                    push    eax
784                    call    ?EnableInput@CAsp4Mix@@QAEXH@Z ; CAsp4Mix::EnableInput(int)
785    
786    
787    loc_2F919:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+542j
788                    mov     ecx, [esi+50h]
789                    mov     edx, [esi+30h]
790                    mov     eax, [esi+34h]
791                    push    ecx
792                    push    edx
793                    push    eax
794                    push    11h
795                    push    1
796                    mov     ecx, edi
797                    call    ?Connection@Asp4Topology@@QAEXHEPAVCAsp4Mix@@0PAVCAsp4AdbDma@@@Z ; Asp4Topology::Connection(int,uchar,CAsp4Mix *,int,CAsp4AdbDma *)
798    
799                    mov     ecx, [esi+50h]
800                    test    ecx, ecx
801                    jz      loc_2FA2D
802    
803                    mov     edx, [ecx]
804                    push    0
805                    push    0
806                    push    1
807                    push    8
808                    push    0
809                    push    0
810                    call    dword ptr [edx+4]
811    
812                    mov     eax, [esi+50h]
813                    push    56FFFFFFh
814                    mov     ecx, [eax+4]
815                    lea     edx, ds:27800h[ecx*8]
816                    mov     ecx, [edi+74h]
817                    push    edx
818                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
819    
820                    mov     eax, [esi+50h]
821                    push    74FFFFFFh
822                    mov     ecx, [eax+4]
823                    lea     edx, ds:27804h[ecx*8]
824                    mov     ecx, [edi+74h]
825                    push    edx
826                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
827    
828                    mov     eax, [esi+60h]
829                    mov     ecx, [eax+4]
830                    mov     eax, [esi+50h]
831                    mov     edx, [ecx+1Ch]
832                    mov     ecx, [eax+4]
833                    add     ecx, 2740h
834                    shl     edx, 0Ch
835                    shl     ecx, 4
836                    push    edx
837                    push    ecx
838                    mov     ecx, [edi+74h]
839                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
840    
841                    mov     edx, [esi+60h]
842                    mov     eax, [edx+4]
843                    mov     edx, [esi+50h]
844                    mov     ecx, [eax+20h]
845                    mov     eax, [edx+4]
846                    shl     eax, 4
847                    shl     ecx, 0Ch
848                    add     eax, (offset loc_27402+2)
849                    push    ecx
850                    mov     ecx, [edi+74h]
851                    push    eax
852                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
853    
854                    mov     ecx, [esi+60h]
855                    mov     edx, [ecx+4]
856                    mov     ecx, [esi+50h]
857                    mov     eax, [edx+24h]
858                    mov     edx, [ecx+4]
859                    mov     ecx, [edi+74h]
860                    shl     edx, 4
861                    shl     eax, 0Ch
862                    add     edx, offset nullsub_2
863                    push    eax
864                    push    edx
865                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
866    
867                    mov     eax, [esi+60h]
868                    mov     ecx, [eax+4]
869                    mov     eax, [esi+50h]
870                    mov     edx, [ecx+28h]
871                    mov     ecx, [eax+4]
872                    shl     ecx, 4
873                    shl     edx, 0Ch
874                    add     ecx, offset dword_2740C
875                    push    edx
876                    push    ecx
877                    mov     ecx, [edi+74h]
878                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
879    
880                    mov     edx, [esi+50h]
881                    push    0
882                    mov     eax, [edx+4]
883                    lea     ecx, ds:27C00h[eax*4]
884                    push    ecx
885                    mov     ecx, [edi+74h]
886                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
887    
888    
889    loc_2FA2D:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+5A5j
890                    mov     edx, [esi+14h]
891                    mov     eax, [esi+10h]
892                    mov     ecx, [esi+54h]
893                    add     dl, 50h
894                    push    edx
895                    add     al, 50h
896                    mov     edx, [ecx+4]
897                    push    eax
898                    push    edx
899                    push    11h
900                    push    1
901                    mov     ecx, edi
902                    call    ?Route@Asp4Topology@@QAEXHEEEE@Z ; Asp4Topology::Route(int,uchar,uchar,uchar,uchar)
903    
904                    mov     ecx, [esi+54h]
905                    push    0
906                    push    0
907                    push    1
908                    mov     eax, [ecx]
909                    push    8
910                    push    1
911                    push    0
912                    call    dword ptr [eax+4]
913    
914                    mov     ecx, [esi+54h]
915                    push    56FFFFFFh
916                    mov     edx, [ecx+4]
917                    mov     ecx, [edi+74h]
918                    lea     eax, ds:27800h[edx*8]
919                    push    eax
920                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
921    
922                    mov     ecx, [esi+54h]
923                    push    74FFFFFFh
924                    mov     edx, [ecx+4]
925                    mov     ecx, [edi+74h]
926                    lea     eax, ds:27804h[edx*8]
927                    push    eax
928                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
929    
930                    mov     ecx, [esi+64h]
931                    mov     edx, [ecx+4]
932                    mov     ecx, [esi+54h]
933                    mov     eax, [edx+1Ch]
934                    mov     edx, [ecx+4]
935                    mov     ecx, [edi+74h]
936                    add     edx, 2740h
937                    shl     eax, 0Ch
938                    shl     edx, 4
939                    push    eax
940                    push    edx
941                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
942    
943                    mov     eax, [esi+64h]
944                    mov     ecx, [eax+4]
945                    mov     eax, [esi+54h]
946                    mov     edx, [ecx+20h]
947                    mov     ecx, [eax+4]
948                    shl     ecx, 4
949                    shl     edx, 0Ch
950                    add     ecx, (offset loc_27402+2)
951                    push    edx
952                    push    ecx
953                    mov     ecx, [edi+74h]
954                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
955    
956                    mov     edx, [esi+64h]
957                    mov     eax, [edx+4]
958                    mov     edx, [esi+54h]
959                    mov     ecx, [eax+24h]
960                    mov     eax, [edx+4]
961                    shl     eax, 4
962                    shl     ecx, 0Ch
963                    add     eax, offset nullsub_2
964                    push    ecx
965                    mov     ecx, [edi+74h]
966                    push    eax
967                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
968    
969                    mov     ecx, [esi+64h]
970                    mov     edx, [ecx+4]
971                    mov     ecx, [esi+54h]
972                    mov     eax, [edx+28h]
973                    mov     edx, [ecx+4]
974                    shl     eax, 0Ch
975                    shl     edx, 4
976                    push    eax
977                    add     edx, offset dword_2740C
978                    mov     ecx, [edi+74h]
979                    push    edx
980                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
981    
982                    mov     eax, [esi+54h]
983                    push    0
984                    mov     ecx, [eax+4]
985                    lea     edx, ds:27C00h[ecx*4]
986                    mov     ecx, [edi+74h]
987                    push    edx
988                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
989    
990    
991    loc_2FB41:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+4A5j
992                    mov     ecx, [esi+38h]
993                    mov     ebx, [esi+10h]
994                    mov     eax, [edi+64h]
995                    mov     edx, [ecx+8]
996                    mov     ecx, [edi+74h]
997                    add     edx, 420h
998                    push    eax
999                    shl     edx, 5
1000                    add     edx, ebx
1001                    shl     edx, 2
1002                    push    edx
1003                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1004    
1005                    mov     ecx, [esi+3Ch]
1006                    mov     eax, [edi+68h]
1007                    push    eax
1008                    mov     eax, [esi+14h]
1009                    mov     edx, [ecx+8]
1010                    mov     ecx, [edi+74h]
1011                    add     edx, 420h
1012                    shl     edx, 5
1013                    add     edx, eax
1014                    shl     edx, 2
1015                    push    edx
1016                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1017    
1018                    mov     eax, [esi+40h]
1019                    test    eax, eax
1020                    jz      short loc_2FBDC
1021    
1022                    mov     ecx, [esi+44h]
1023                    test    ecx, ecx
1024                    jz      short loc_2FBDC
1025    
1026                    mov     edx, [eax+8]
1027                    mov     eax, [esi+10h]
1028                    mov     ecx, [edi+64h]
1029                    add     edx, 420h
1030                    shl     edx, 5
1031                    add     edx, eax
1032                    push    ecx
1033                    mov     ecx, [edi+74h]
1034                    shl     edx, 2
1035                    push    edx
1036                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1037    
1038                    mov     ecx, [esi+44h]
1039                    mov     ebx, [esi+14h]
1040                    mov     eax, [edi+68h]
1041                    mov     edx, [ecx+8]
1042                    mov     ecx, [edi+74h]
1043                    add     edx, 420h
1044                    push    eax
1045                    shl     edx, 5
1046                    add     edx, ebx
1047                    shl     edx, 2
1048                    push    edx
1049                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1050    
1051    
1052    loc_2FBDC:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+7FEj
1053                                            ; Asp4Topology::AllocSynth(CResource *)+805j
1054                    mov     ecx, [esi+38h]
1055                    mov     ebx, [esi+8]
1056                    mov     eax, [edi+64h]
1057                    mov     edx, [ecx+8]
1058                    mov     ecx, [edi+74h]
1059                    add     edx, 420h
1060                    push    eax
1061                    shl     edx, 5
1062                    add     edx, ebx
1063                    shl     edx, 2
1064                    push    edx
1065                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1066    
1067                    mov     ecx, [esi+3Ch]
1068                    mov     eax, [edi+68h]
1069                    push    eax
1070                    mov     eax, [esi+0Ch]
1071                    mov     edx, [ecx+8]
1072                    mov     ecx, [edi+74h]
1073                    add     edx, 420h
1074                    shl     edx, 5
1075                    add     edx, eax
1076                    shl     edx, 2
1077                    push    edx
1078                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1079    
1080                    mov     eax, [esi+40h]
1081                    test    eax, eax
1082                    jz      short loc_2FC77
1083    
1084                    mov     ecx, [esi+44h]
1085                    test    ecx, ecx
1086                    jz      short loc_2FC77
1087    
1088                    mov     edx, [eax+8]
1089                    mov     eax, [esi+8]
1090                    mov     ecx, [edi+64h]
1091                    add     edx, 420h
1092                    shl     edx, 5
1093                    add     edx, eax
1094                    push    ecx
1095                    mov     ecx, [edi+74h]
1096                    shl     edx, 2
1097                    push    edx
1098                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1099    
1100                    mov     ecx, [esi+44h]
1101                    mov     ebx, [esi+0Ch]
1102                    mov     eax, [edi+68h]
1103                    mov     edx, [ecx+8]
1104                    mov     ecx, [edi+74h]
1105                    add     edx, 420h
1106                    push    eax
1107                    shl     edx, 5
1108                    add     edx, ebx
1109                    shl     edx, 2
1110                    push    edx
1111                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1112    
1113    
1114    loc_2FC77:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+899j
1115                                            ; Asp4Topology::AllocSynth(CResource *)+8A0j
1116                    mov     ecx, [esi+38h]
1117                    mov     ebx, [esi+18h]
1118                    mov     eax, [edi+64h]
1119                    mov     edx, [ecx+8]
1120                    mov     ecx, [edi+74h]
1121                    add     edx, 420h
1122                    push    eax
1123                    shl     edx, 5
1124                    add     edx, ebx
1125                    shl     edx, 2
1126                    push    edx
1127                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1128    
1129                    mov     ecx, [esi+3Ch]
1130                    mov     eax, [edi+68h]
1131                    push    eax
1132                    mov     eax, [esi+1Ch]
1133                    mov     edx, [ecx+8]
1134                    mov     ecx, [edi+74h]
1135                    add     edx, 420h
1136                    shl     edx, 5
1137                    add     edx, eax
1138                    shl     edx, 2
1139                    push    edx
1140                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1141    
1142                    mov     eax, [esi+40h]
1143                    test    eax, eax
1144                    jz      short loc_2FD12
1145    
1146                    mov     ecx, [esi+44h]
1147                    test    ecx, ecx
1148                    jz      short loc_2FD12
1149    
1150                    mov     edx, [eax+8]
1151                    mov     eax, [esi+18h]
1152                    mov     ecx, [edi+64h]
1153                    add     edx, 420h
1154                    shl     edx, 5
1155                    add     edx, eax
1156                    push    ecx
1157                    mov     ecx, [edi+74h]
1158                    shl     edx, 2
1159                    push    edx
1160                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1161    
1162                    mov     ecx, [esi+44h]
1163                    mov     ebx, [esi+1Ch]
1164                    mov     eax, [edi+68h]
1165                    mov     edx, [ecx+8]
1166                    mov     ecx, [edi+74h]
1167                    add     edx, 420h
1168                    push    eax
1169                    shl     edx, 5
1170                    add     edx, ebx
1171                    shl     edx, 2
1172                    push    edx
1173                    call    ?Write@CAsp4HwIO@@QAEXKK@Z ; CAsp4HwIO::Write(ulong,ulong)
1174    
1175    
1176    loc_2FD12:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+934j
1177                                            ; Asp4Topology::AllocSynth(CResource *)+93Bj
1178                    mov     eax, [edi+8Ch]
1179                    test    eax, eax
1180                    jnz     short loc_2FD26
1181    
1182                    mov     eax, [edi+88h]
1183                    test    eax, eax
1184                    jz      short loc_2FD72
1185    
1186    
1187    loc_2FD26:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+98Aj
1188                    mov     eax, [esi+28h]
1189                    mov     ecx, [esi+34h]
1190                    push    8
1191                    push    eax
1192                    call    ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
1193    
1194                    mov     ecx, [esi+2Ch]
1195                    push    8
1196                    push    ecx
1197                    mov     ecx, [esi+34h]
1198                    call    ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
1199    
1200                    mov     edx, [esi+20h]
1201                    mov     ecx, [esi+30h]
1202                    push    8
1203                    push    edx
1204                    call    ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
1205    
1206                    mov     eax, [esi+24h]
1207                    mov     ecx, [esi+30h]
1208                    push    8
1209                    push    eax
1210                    call    ?SetInputVolumeByte@CAsp4Mix@@QAEXHE@Z ; CAsp4Mix::SetInputVolumeByte(int,uchar)
1211    
1212                    mov     ecx, [esi+30h]
1213                    push    8
1214                    call    ?SetVolumeByte@CAsp4Mix@@QAEXE@Z ; CAsp4Mix::SetVolumeByte(uchar)
1215    
1216                    mov     ecx, [esi+34h]
1217                    push    8
1218                    call    ?SetVolumeByte@CAsp4Mix@@QAEXE@Z ; CAsp4Mix::SetVolumeByte(uchar)
1219    
1220    
1221    loc_2FD72:                              ; CODE XREF: Asp4Topology::AllocSynth(CResource *)+994j
1222                    mov     [edi+7Ch], esi
1223                    mov     eax, esi
1224                    pop     edi
1225                    pop     esi
1226                    pop     ebp
1227                    pop     ebx
1228                    add     esp, 14h
1229                    retn    4
1230    
1231    ?AllocSynth@Asp4Topology@@QAEPAVAsp4SynthTopology@@PAVCResource@@@Z endp ; sp = -30h
1232    
1233    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1234                    align 10h
1235    
1236    ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
1237    
1238    
1239    ; public: void __thiscall Asp4Topology::DeleteSynth(void)
1240    
1241    ?DeleteSynth@Asp4Topology@@QAEXXZ proc near
1242                                            ; CODE XREF: CAsp4Core::SetWavetableTopology(int)+25p
1243                                            ; .text:0002564Bp
1244                    push    esi
1245                    push    edi
1246                    mov     edi, ecx
1247                    mov     esi, [edi+7Ch]
1248                    test    esi, esi
1249                    jz      short loc_2FDAB
1250    
1251                    mov     ecx, esi
1252                    call    ??1Asp4SynthTopology@@QAE@XZ ; Asp4SynthTopology::~Asp4SynthTopology(void)
1253    
1254                    push    esi
1255                    call    ??3@YAXPAX@Z    ; operator delete(void *)
1256    
1257                    add     esp, 4
1258    
1259    loc_2FDAB:                              ; CODE XREF: Asp4Topology::DeleteSynth(void)+9j
1260                    mov     dword ptr [edi+7Ch], 0
1261                    pop     edi
1262                    pop     esi
1263                    retn
1264    
1265    ?DeleteSynth@Asp4Topology@@QAEXXZ endp
1266    
1267    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1268                    align 10h
1269    
1270    ; public: static void __cdecl Asp4Topology::Appy_Handler(void *,unsigned long)
1271    ?Appy_Handler@Asp4Topology@@SAXPAXK@Z:
1272                    retn
1273    
1274    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1275                    align 10h
1276    
1277    ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
1278    
1279    
1280    ; public: void __thiscall Asp4Topology::Route(int,unsigned char,unsigned char,unsigned char)
1281    
1282    ?Route@Asp4Topology@@QAEXHEEE@Z proc near
1283                                            ; CODE XREF: Asp4Topology::MakeDefaultConnections(void)+2Ap
1284                                            ; Asp4Topology::MakeDefaultConnections(void)+75p ...
1285    
1286    arg_0           = dword ptr  8
1287    arg_4           = dword ptr  0Ch
1288    arg_8           = dword ptr  10h
1289    arg_C           = dword ptr  14h
1290    
1291                    push    ebx
1292                    mov     ebx, [esp+arg_8]
1293                    push    ebp
1294                    push    esi
1295                    push    edi
1296                    mov     edi, ebx
1297                    mov     esi, ecx
1298                    and     edi, 0FFh
1299                    mov     eax, [esp+0Ch+arg_8]
1300                    mov     ecx, edi
1301                    and     ah, 0
1302                    shl     ecx, 8
1303                    or      eax, ecx
1304                    mov     [esp+0Ch+arg_8], eax
1305                    mov     edx, [esp+0Ch+arg_8]
1306                    mov     eax, [esp+0Ch+arg_C]
1307                    and     dl, 0
1308                    and     eax, 0FFh
1309                    or      edx, eax
1310                    mov     [esp+0Ch+arg_8], edx
1311                    mov     eax, [esp+0Ch+arg_0]
1312                    test    eax, eax
1313                    jz      short loc_2FE74
1314    
1315                    mov     ebp, [esp+0Ch+arg_4]
1316                    lea     ecx, [esp+0Ch+arg_8]
1317                    push    1
1318                    push    ecx
1319                    mov     ecx, [esi+6Ch]
1320                    push    ebp
1321                    call    ?AddRoutes@CAsp4Adb@@QAEXEPATADBRamLink@@H@Z ; CAsp4Adb::AddRoutes(uchar,ADBRamLink *,int)
1322    
1323                    cmp     bl, 20h
1324                    jb      short loc_2FE4D
1325    
1326                    lea     edx, [edi-20h]
1327                    cmp     edx, 10h
1328                    jge     short loc_2FE4D
1329    
1330                    mov     eax, [esi+70h]
1331                    sub     bl, 20h
1332                    push    ebp
1333                    push    ebx
1334                    mov     ecx, [eax+0C8h]
1335                    call    ?AddWTD@CAsp4SrcBlock@@QAEHEE@Z ; CAsp4SrcBlock::AddWTD(uchar,uchar)
1336    
1337                    pop     edi
1338                    pop     esi
1339                    pop     ebp
1340                    pop     ebx
1341                    retn    10h
1342    
1343    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1344    
1345    loc_2FE4D:                              ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+59j
1346                                            ; Asp4Topology::Route(int,uchar,uchar,uchar)+61j
1347                    cmp     bl, 30h
1348                    jb      short loc_2FECE
1349    
1350                    add     edi, 0FFFFFFD0h
1351                    cmp     edi, 10h
1352                    jge     short loc_2FECE
1353    
1354                    mov     ecx, [esi+70h]
1355                    sub     bl, 30h
1356                    push    ebp
1357                    push    ebx
1358                    mov     ecx, [ecx+0C4h]
1359                    call    ?AddWTD@CAsp4Mixer@@QAEHEE@Z ; CAsp4Mixer::AddWTD(uchar,uchar)
1360    
1361                    pop     edi
1362                    pop     esi
1363                    pop     ebp
1364                    pop     ebx
1365                    retn    10h
1366    
1367    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1368    
1369    loc_2FE74:                              ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+40j
1370                    mov     eax, [esp+0Ch+arg_8]
1371                    mov     ebp, [esp+0Ch+arg_4]
1372                    mov     ecx, [esi+6Ch]
1373                    push    eax
1374                    push    eax
1375                    push    ebp
1376                    call    ?DeleteRoutes@CAsp4Adb@@QAEXETADBRamLink@@0@Z ; CAsp4Adb::DeleteRoutes(uchar,ADBRamLink,uchar)
1377    
1378                    cmp     bl, 20h
1379                    jb      short loc_2FEAE
1380    
1381                    lea     edx, [edi-20h]
1382                    cmp     edx, 10h
1383                    jge     short loc_2FEAE
1384    
1385                    mov     eax, [esi+70h]
1386                    sub     bl, 20h
1387                    push    ebp
1388                    push    ebx
1389                    mov     ecx, [eax+0C8h]
1390                    call    ?DeleteWTD@CAsp4SrcBlock@@QAEHEE@Z ; CAsp4SrcBlock::DeleteWTD(uchar,uchar)
1391    
1392                    pop     edi
1393                    pop     esi
1394                    pop     ebp
1395                    pop     ebx
1396                    retn    10h
1397    
1398    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1399    
1400    loc_2FEAE:                              ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+BAj
1401                                            ; Asp4Topology::Route(int,uchar,uchar,uchar)+C2j
1402                    cmp     bl, 30h
1403                    jb      short loc_2FECE
1404    
1405                    add     edi, 0FFFFFFD0h
1406                    cmp     edi, 10h
1407                    jge     short loc_2FECE
1408    
1409                    mov     ecx, [esi+70h]
1410                    sub     bl, 30h
1411                    push    ebp
1412                    push    ebx
1413                    mov     ecx, [ecx+0C4h]
1414                    call    ?DeleteWTD@CAsp4Mixer@@QAEHEE@Z ; CAsp4Mixer::DeleteWTD(uchar,uchar)
1415    
1416    
1417    loc_2FECE:                              ; CODE XREF: Asp4Topology::Route(int,uchar,uchar,uchar)+80j
1418                                            ; Asp4Topology::Route(int,uchar,uchar,uchar)+88j ...
1419                    pop     edi
1420                    pop     esi
1421                    pop     ebp
1422                    pop     ebx
1423                    retn    10h
1424    
1425    ?Route@Asp4Topology@@QAEXHEEE@Z endp
1426    
1427    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1428                    align 10h
1429    
1430    
1431    
1432    
1433    */
1434    
1435    /*
1436    
1437    
1438    
1439    ; public: void __thiscall CWTHal::SetReg(unsigned char,int,unsigned short)
1440    
1441    ?SetReg@CWTHal@@QAEXEHG@Z proc near     ; CODE XREF: Asp4Synth::WTTimerCallback(ulong)+E45p
1442                                            ; Asp4Synth::WTTimerCallback(ulong)+1294p
1443    
1444    arg_0           = dword ptr  0Ch
1445    arg_4           = dword ptr  10h
1446    arg_8           = dword ptr  14h
1447    
1448                    push    ecx
1449                    push    esi
1450                    mov     esi, [esp+arg_4]
1451                    cmp     esi, 40h
1452                    jge     loc_54507
1453    
1454                    mov     eax, esi
1455                    cdq
1456                    and     edx, 1Fh
1457                    add     eax, edx
1458                    mov     edx, esi
1459                    sar     eax, 5
1460                    and     edx, 8000001Fh
1461                    mov     byte ptr [esp+arg_4], al
1462                    jns     short loc_5448D
1463    
1464                    dec     edx
1465                    or      edx, 0FFFFFFE0h
1466                    inc     edx
1467    
1468    loc_5448D:                              ; CODE XREF: CWTHal::SetReg(uchar,int,ushort)+26j
1469                    cmp     al, 2
1470                    mov     [esp+4], dl
1471                    jnb     short loc_54507
1472    
1473                    mov     eax, [esp+arg_0]
1474                    and     eax, 0FFh
1475                    sub     eax, 20h
1476                    jz      short loc_544D9
1477    
1478                    dec     eax
1479                    jnz     short loc_54507
1480    
1481                    mov     eax, [esp+arg_4]
1482                    mov     edx, [esp+4]
1483                    and     eax, 0FFh
1484                    and     edx, 0FFh
1485                    shl     eax, 0Bh
1486                    add     eax, edx
1487                    mov     edx, [esp+arg_8]
1488                    shl     eax, 4
1489                    add     eax, 208h
1490                    push    edx
1491                    push    eax
1492                    mov     eax, [ecx]
1493                    push    eax
1494                    call    ?WriteWORD@CAsp4HIO@@QAGXKG@Z ; CAsp4HIO::WriteWORD(ulong,ushort)
1495    
1496                    pop     esi
1497                    pop     ecx
1498                    retn    0Ch
1499    
1500    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1501    
1502    loc_544D9:                              ; CODE XREF: CWTHal::SetReg(uchar,int,ushort)+41j
1503                    mov     eax, [esp+arg_4]
1504                    mov     edx, [esp+4]
1505                    and     eax, 0FFh
1506                    and     edx, 0FFh
1507                    shl     eax, 0Bh
1508                    add     eax, edx
1509                    mov     edx, [esp+arg_8]
1510                    shl     eax, 4
1511                    add     eax, 20Ah
1512                    push    edx
1513                    push    eax
1514                    mov     eax, [ecx]
1515                    push    eax
1516                    call    ?WriteWORD@CAsp4HIO@@QAGXKG@Z ; CAsp4HIO::WriteWORD(ulong,ushort)
1517    
1518    
1519    loc_54507:                              ; CODE XREF: CWTHal::SetReg(uchar,int,ushort)+9j
1520                                            ; CWTHal::SetReg(uchar,int,ushort)+33j ...
1521                    pop     esi
1522                    pop     ecx
1523                    retn    0Ch
1524    
1525    ?SetReg@CWTHal@@QAEXEHG@Z endp
1526    
1527    ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
1528                    align 8
1529    
1530    ; ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ S U B R O U T I N E ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ
1531    
1532    
1533    ; public: void __thiscall CWTHal::InitializeWTRegs(void)
1534    
1535    ?InitializeWTRegs@CWTHal@@QAEXXZ proc near ; CODE XREF: Asp4Synth::init(void)+242p
1536    
1537    var_10          = dword ptr -10h
1538    var_C           = dword ptr -0Ch
1539    var_8           = dword ptr -8
1540    var_4           = dword ptr -4
1541    
1542                    sub     esp, 10h
1543                    push    ebx
1544                    push    ebp
1545                    push    esi
1546                    xor     ebx, ebx
1547                    push    edi
1548                    mov     esi, ecx
1549                    mov     [esp+20h+var_10], ebx
1550                    mov     eax, [esp+20h+var_10]
1551                    and     al, 0E3h
1552                    or      al, 22h
1553                    mov     [esp+20h+var_10], eax
1554                    mov     ecx, [esp+20h+var_10]
1555                    and     ecx, 0FFFFFEBFh
1556                    or      cl, 80h
1557                    mov     [esp+20h+var_10], ecx
1558                    mov     edx, [esp+20h+var_10]
1559                    or      dh, 2
1560                    mov     [esp+20h+var_10], edx
1561                    mov     eax, [esp+20h+var_10]
1562                    and     al, 0FEh
1563                    mov     [esp+20h+var_10], eax
1564                    mov     ecx, [esp+20h+var_10]
1565                    and     ch, 0FBh
1566                    or      ch, 18h
1567                    mov     [esp+20h+var_10], ecx
1568                    mov     [esp+20h+var_8], ebx
1569                    mov     edx, [esp+20h+var_8]
1570                    mov     [esp+20h+var_C], edx
1571                    mov     eax, [esp+20h+var_C]
1572                    mov     [esp+20h+var_4], eax
1573                    mov     word ptr [esp+20h+var_4+2], 1000h
1574                    mov     eax, 83h
1575                    mov     word ptr [esp+20h+var_C+2], ax
1576                    mov     word ptr [esp+20h+var_8+2], ax
1577                    xor     edi, edi
1578                    mov     ebp, 2
1579    
1580    loc_54590:                              ; CODE XREF: CWTHal::InitializeWTRegs(void)+C9j
1581                    push    ebx
1582                    push    edi
1583                    push    0Ch
1584                    mov     ecx, esi
1585                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1586    
1587                    mov     ecx, [esp+20h+var_10]
1588                    push    ecx
1589                    push    edi
1590                    push    0Ah
1591                    mov     ecx, esi
1592                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1593    
1594                    mov     edx, [esp+20h+var_4]
1595                    push    edx
1596                    push    edi
1597                    push    9
1598                    mov     ecx, esi
1599                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1600    
1601                    mov     eax, [esp+20h+var_C]
1602                    push    eax
1603                    push    edi
1604                    push    8
1605                    mov     ecx, esi
1606                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1607    
1608                    mov     ecx, [esp+20h+var_8]
1609                    push    ecx
1610                    push    edi
1611                    push    5
1612                    mov     ecx, esi
1613                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1614    
1615                    inc     edi
1616                    dec     ebp
1617                    jnz     short loc_54590
1618    
1619                    mov     eax, ?g_num_hw_voices@@3HA ; int g_num_hw_voices
1620                    xor     bl, bl
1621                    test    eax, eax
1622                    jle     short loc_5463D
1623    
1624                    xor     edi, edi
1625    
1626    loc_545E8:                              ; CODE XREF: CWTHal::InitializeWTRegs(void)+12Bj
1627                    push    0
1628                    push    edi
1629                    push    4
1630                    mov     ecx, esi
1631                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1632    
1633                    push    0
1634                    push    edi
1635                    push    3
1636                    mov     ecx, esi
1637                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1638    
1639                    push    0
1640                    push    edi
1641                    push    2
1642                    mov     ecx, esi
1643                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1644    
1645                    push    0
1646                    push    edi
1647                    push    1
1648                    mov     ecx, esi
1649                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1650    
1651                    push    0
1652                    push    edi
1653                    push    0Bh
1654                    mov     ecx, esi
1655                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1656    
1657                    mov     eax, ?g_num_hw_voices@@3HA ; int g_num_hw_voices
1658                    inc     bl
1659                    mov     byte ptr [esp+20h+var_4], bl
1660                    mov     edi, [esp+20h+var_4]
1661                    and     edi, 0FFh
1662                    cmp     edi, eax
1663                    jl      short loc_545E8
1664    
1665    
1666    loc_5463D:                              ; CODE XREF: CWTHal::InitializeWTRegs(void)+D4j
1667                    mov     edx, [esp+20h+var_10]
1668                    or      edx, 1
1669                    mov     [esp+20h+var_10], edx
1670                    xor     edi, edi
1671                    mov     ebx, 2
1672    
1673    loc_5464F:                              ; CODE XREF: CWTHal::InitializeWTRegs(void)+150j
1674                    mov     eax, [esp+20h+var_10]
1675                    push    eax
1676                    push    edi
1677                    push    0Ah
1678                    mov     ecx, esi
1679                    call    ?SetReg@CWTHal@@QAEXEHK@Z ; CWTHal::SetReg(uchar,int,ulong)
1680    
1681                    inc     edi
1682                    dec     ebx
1683                    jnz     short loc_5464F
1684    
1685                    pop     edi
1686                    pop     esi
1687                    pop     ebp
1688                    pop     ebx
1689                    add     esp, 10h
1690                    retn
1691    
1692    ?InitializeWTRegs@CWTHal@@QAEXXZ endp
1693    
1694    
1695    
1696    */

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26