1755 lines
51 KiB
Plaintext
1755 lines
51 KiB
Plaintext
; Listing generated by Microsoft (R) Optimizing Compiler Version 12.00.9044.0
|
|
|
|
TITLE C:\Users\Administrator\Desktop\GHOST\common\Audio.cpp
|
|
.386P
|
|
include listing.inc
|
|
if @Version gt 510
|
|
.model FLAT
|
|
else
|
|
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
|
|
_TEXT ENDS
|
|
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
|
|
_DATA ENDS
|
|
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
CONST ENDS
|
|
_BSS SEGMENT DWORD USE32 PUBLIC 'BSS'
|
|
_BSS ENDS
|
|
$$SYMBOLS SEGMENT BYTE USE32 'DEBSYM'
|
|
$$SYMBOLS ENDS
|
|
_TLS SEGMENT DWORD USE32 PUBLIC 'TLS'
|
|
_TLS ENDS
|
|
rdata$r SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
rdata$r ENDS
|
|
; COMDAT _IsEqualGUID
|
|
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
|
|
_TEXT ENDS
|
|
; COMDAT _==
|
|
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
|
|
_TEXT ENDS
|
|
; COMDAT ??_GCAudio@@UAEPAXI@Z
|
|
_TEXT SEGMENT PARA USE32 PUBLIC 'CODE'
|
|
_TEXT ENDS
|
|
; COMDAT ??_R2CAudio@@8
|
|
rdata$r SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
rdata$r ENDS
|
|
; COMDAT ??_7CAudio@@6B@
|
|
CONST SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
CONST ENDS
|
|
; COMDAT ??_R0?AVCAudio@@@8
|
|
_DATA SEGMENT DWORD USE32 PUBLIC 'DATA'
|
|
_DATA ENDS
|
|
; COMDAT ??_R1A@?0A@A@CAudio@@8
|
|
rdata$r SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
rdata$r ENDS
|
|
; COMDAT ??_R4CAudio@@6B@
|
|
rdata$r SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
rdata$r ENDS
|
|
; COMDAT ??_R3CAudio@@8
|
|
rdata$r SEGMENT DWORD USE32 PUBLIC 'CONST'
|
|
rdata$r ENDS
|
|
FLAT GROUP _DATA, CONST, _BSS, rdata$r
|
|
ASSUME CS: FLAT, DS: FLAT, SS: FLAT
|
|
endif
|
|
|
|
INCLUDELIB LIBCMT
|
|
INCLUDELIB OLDNAMES
|
|
|
|
PUBLIC ??_R4CAudio@@6B@ ; CAudio::`RTTI Complete Object Locator'
|
|
PUBLIC ??_R0?AVCAudio@@@8 ; CAudio `RTTI Type Descriptor'
|
|
PUBLIC ??_R3CAudio@@8 ; CAudio::`RTTI Class Hierarchy Descriptor'
|
|
PUBLIC ??_R2CAudio@@8 ; CAudio::`RTTI Base Class Array'
|
|
PUBLIC ??_R1A@?0A@A@CAudio@@8 ; CAudio::`RTTI Base Class Descriptor at (0,-1,0,0)'
|
|
PUBLIC ??0CAudio@@QAE@XZ ; CAudio::CAudio
|
|
PUBLIC ??_7CAudio@@6B@ ; CAudio::`vftable'
|
|
PUBLIC ??_GCAudio@@UAEPAXI@Z ; CAudio::`scalar deleting destructor'
|
|
PUBLIC ??_ECAudio@@UAEPAXI@Z ; CAudio::`vector deleting destructor'
|
|
EXTRN ??_7type_info@@6B@:DWORD ; type_info::`vftable'
|
|
EXTRN ??2@YAPAXI@Z:NEAR ; operator new
|
|
EXTRN __imp__CreateEventA@16:NEAR
|
|
EXTRN _va_g729a_init_encoder:NEAR
|
|
EXTRN _va_g729a_init_decoder:NEAR
|
|
; COMDAT ??_7CAudio@@6B@
|
|
; File C:\Users\Administrator\Desktop\GHOST\common\Audio.cpp
|
|
CONST SEGMENT
|
|
??_7CAudio@@6B@ DD FLAT:??_R4CAudio@@6B@ ; CAudio::`vftable'
|
|
DD FLAT:??_ECAudio@@UAEPAXI@Z
|
|
CONST ENDS
|
|
; COMDAT ??_R4CAudio@@6B@
|
|
rdata$r SEGMENT
|
|
??_R4CAudio@@6B@ DD 00H ; CAudio::`RTTI Complete Object Locator'
|
|
DD 00H
|
|
DD 00H
|
|
DD FLAT:??_R0?AVCAudio@@@8
|
|
DD FLAT:??_R3CAudio@@8
|
|
rdata$r ENDS
|
|
; COMDAT ??_R0?AVCAudio@@@8
|
|
_DATA SEGMENT
|
|
??_R0?AVCAudio@@@8 DD FLAT:??_7type_info@@6B@ ; CAudio `RTTI Type Descriptor'
|
|
DD 00H
|
|
DB '.?AVCAudio@@', 00H
|
|
_DATA ENDS
|
|
; COMDAT ??_R3CAudio@@8
|
|
rdata$r SEGMENT
|
|
??_R3CAudio@@8 DD 00H ; CAudio::`RTTI Class Hierarchy Descriptor'
|
|
DD 00H
|
|
DD 01H
|
|
DD FLAT:??_R2CAudio@@8
|
|
rdata$r ENDS
|
|
; COMDAT ??_R2CAudio@@8
|
|
rdata$r SEGMENT
|
|
??_R2CAudio@@8 DD FLAT:??_R1A@?0A@A@CAudio@@8 ; CAudio::`RTTI Base Class Array'
|
|
rdata$r ENDS
|
|
; COMDAT ??_R1A@?0A@A@CAudio@@8
|
|
rdata$r SEGMENT
|
|
??_R1A@?0A@A@CAudio@@8 DD FLAT:??_R0?AVCAudio@@@8 ; CAudio::`RTTI Base Class Descriptor at (0,-1,0,0)'
|
|
DD 00H
|
|
DD 00H
|
|
DD 0ffffffffH
|
|
DD 00H
|
|
DD 00H
|
|
; Function compile flags: /Ogsawpy
|
|
rdata$r ENDS
|
|
_TEXT SEGMENT
|
|
??0CAudio@@QAE@XZ PROC NEAR ; CAudio::CAudio
|
|
; _this$ = ecx
|
|
; Line 20
|
|
00000 51 push ecx
|
|
00001 53 push ebx
|
|
00002 55 push ebp
|
|
00003 56 push esi
|
|
; Line 21
|
|
00004 33 db xor ebx, ebx
|
|
00006 57 push edi
|
|
00007 8b 3d 00 00 00
|
|
00 mov edi, DWORD PTR __imp__CreateEventA@16
|
|
0000d 53 push ebx
|
|
0000e 8b f1 mov esi, ecx
|
|
00010 53 push ebx
|
|
00011 53 push ebx
|
|
00012 53 push ebx
|
|
00013 c7 06 00 00 00
|
|
00 mov DWORD PTR [esi], OFFSET FLAT:??_7CAudio@@6B@ ; CAudio::`vftable'
|
|
00019 ff d7 call edi
|
|
; Line 22
|
|
0001b 53 push ebx
|
|
0001c 53 push ebx
|
|
0001d 53 push ebx
|
|
0001e 53 push ebx
|
|
0001f 89 46 24 mov DWORD PTR [esi+36], eax
|
|
00022 ff d7 call edi
|
|
00024 89 46 28 mov DWORD PTR [esi+40], eax
|
|
; Line 23
|
|
00027 89 5e 30 mov DWORD PTR [esi+48], ebx
|
|
; Line 24
|
|
0002a 89 5e 1c mov DWORD PTR [esi+28], ebx
|
|
; Line 25
|
|
0002d 89 5e 20 mov DWORD PTR [esi+32], ebx
|
|
; Line 26
|
|
00030 c7 46 04 80 3e
|
|
00 00 mov DWORD PTR [esi+4], 16000 ; 00003e80H
|
|
; Line 28
|
|
00037 88 5e 48 mov BYTE PTR [esi+72], bl
|
|
; Line 29
|
|
0003a 88 5e 49 mov BYTE PTR [esi+73], bl
|
|
0003d 8d 6e 08 lea ebp, DWORD PTR [esi+8]
|
|
00040 c7 44 24 10 02
|
|
00 00 00 mov DWORD PTR -4+[esp+20], 2
|
|
$L74959:
|
|
; Line 33
|
|
00048 ff 76 04 push DWORD PTR [esi+4]
|
|
0004b e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
|
|
; Line 34
|
|
00050 6a 20 push 32 ; 00000020H
|
|
00052 89 45 00 mov DWORD PTR [ebp], eax
|
|
00055 e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
|
|
; Line 36
|
|
0005a 8b 7d 00 mov edi, DWORD PTR [ebp]
|
|
0005d 89 45 2c mov DWORD PTR [ebp+44], eax
|
|
00060 8b 4e 04 mov ecx, DWORD PTR [esi+4]
|
|
00063 33 c0 xor eax, eax
|
|
00065 8b d1 mov edx, ecx
|
|
00067 c1 e9 02 shr ecx, 2
|
|
0006a f3 ab rep stosd
|
|
0006c 8b ca mov ecx, edx
|
|
0006e 83 e1 03 and ecx, 3
|
|
00071 f3 aa rep stosb
|
|
; Line 38
|
|
00073 ff 76 04 push DWORD PTR [esi+4]
|
|
00076 e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
|
|
; Line 39
|
|
0007b 6a 20 push 32 ; 00000020H
|
|
0007d 89 45 08 mov DWORD PTR [ebp+8], eax
|
|
00080 e8 00 00 00 00 call ??2@YAPAXI@Z ; operator new
|
|
; Line 40
|
|
00085 8b 7d 08 mov edi, DWORD PTR [ebp+8]
|
|
00088 89 45 34 mov DWORD PTR [ebp+52], eax
|
|
0008b 8b 4e 04 mov ecx, DWORD PTR [esi+4]
|
|
0008e 33 c0 xor eax, eax
|
|
00090 8b d1 mov edx, ecx
|
|
00092 83 c4 10 add esp, 16 ; 00000010H
|
|
00095 c1 e9 02 shr ecx, 2
|
|
00098 f3 ab rep stosd
|
|
0009a 8b ca mov ecx, edx
|
|
0009c 83 c5 04 add ebp, 4
|
|
0009f 83 e1 03 and ecx, 3
|
|
000a2 ff 4c 24 10 dec DWORD PTR -4+[esp+20]
|
|
000a6 f3 aa rep stosb
|
|
000a8 75 9e jne SHORT $L74959
|
|
; Line 42
|
|
000aa 89 5e 2c mov DWORD PTR [esi+44], ebx
|
|
; Line 44
|
|
000ad e8 00 00 00 00 call _va_g729a_init_encoder
|
|
; Line 45
|
|
000b2 e8 00 00 00 00 call _va_g729a_init_decoder
|
|
; Line 46
|
|
000b7 8b c6 mov eax, esi
|
|
000b9 5f pop edi
|
|
000ba 5e pop esi
|
|
000bb 5d pop ebp
|
|
000bc 5b pop ebx
|
|
000bd 59 pop ecx
|
|
000be c3 ret 0
|
|
??0CAudio@@QAE@XZ ENDP ; CAudio::CAudio
|
|
_TEXT ENDS
|
|
PUBLIC ??1CAudio@@UAE@XZ ; CAudio::~CAudio
|
|
EXTRN ??3@YAXPAX@Z:NEAR ; operator delete
|
|
; Function compile flags: /Ogsawpy
|
|
; COMDAT ??_GCAudio@@UAEPAXI@Z
|
|
_TEXT SEGMENT
|
|
___flags$ = 8
|
|
??_GCAudio@@UAEPAXI@Z PROC NEAR ; CAudio::`scalar deleting destructor', COMDAT
|
|
; _this$ = ecx
|
|
00000 56 push esi
|
|
00001 8b f1 mov esi, ecx
|
|
00003 e8 00 00 00 00 call ??1CAudio@@UAE@XZ ; CAudio::~CAudio
|
|
00008 f6 44 24 08 01 test BYTE PTR ___flags$[esp], 1
|
|
0000d 74 07 je SHORT $L74973
|
|
0000f 56 push esi
|
|
00010 e8 00 00 00 00 call ??3@YAXPAX@Z ; operator delete
|
|
00015 59 pop ecx
|
|
$L74973:
|
|
00016 8b c6 mov eax, esi
|
|
00018 5e pop esi
|
|
00019 c2 04 00 ret 4
|
|
??_GCAudio@@UAEPAXI@Z ENDP ; CAudio::`scalar deleting destructor'
|
|
_TEXT ENDS
|
|
EXTRN __imp__waveOutClose@4:NEAR
|
|
EXTRN __imp__waveOutUnprepareHeader@12:NEAR
|
|
EXTRN __imp__waveOutReset@4:NEAR
|
|
EXTRN __imp__waveInClose@4:NEAR
|
|
EXTRN __imp__waveInUnprepareHeader@12:NEAR
|
|
EXTRN __imp__waveInStop@4:NEAR
|
|
EXTRN __imp__waveInReset@4:NEAR
|
|
EXTRN __imp__TerminateThread@8:NEAR
|
|
EXTRN __imp__CloseHandle@4:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
??1CAudio@@UAE@XZ PROC NEAR ; CAudio::~CAudio
|
|
; _this$ = ecx
|
|
; Line 49
|
|
000bf 53 push ebx
|
|
000c0 56 push esi
|
|
000c1 8b f1 mov esi, ecx
|
|
000c3 57 push edi
|
|
; Line 50
|
|
000c4 80 7e 48 00 cmp BYTE PTR [esi+72], 0
|
|
000c8 c7 06 00 00 00
|
|
00 mov DWORD PTR [esi], OFFSET FLAT:??_7CAudio@@6B@ ; CAudio::`vftable'
|
|
000ce 74 3f je SHORT $L74977
|
|
; Line 52
|
|
000d0 ff 76 18 push DWORD PTR [esi+24]
|
|
000d3 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInStop@4
|
|
; Line 53
|
|
000d9 ff 76 18 push DWORD PTR [esi+24]
|
|
000dc ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInReset@4
|
|
000e2 6a 02 push 2
|
|
000e4 8d 7e 34 lea edi, DWORD PTR [esi+52]
|
|
000e7 5b pop ebx
|
|
$L74979:
|
|
; Line 55
|
|
000e8 6a 20 push 32 ; 00000020H
|
|
000ea ff 37 push DWORD PTR [edi]
|
|
000ec ff 76 18 push DWORD PTR [esi+24]
|
|
000ef ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInUnprepareHeader@12
|
|
000f5 83 c7 04 add edi, 4
|
|
000f8 4b dec ebx
|
|
000f9 75 ed jne SHORT $L74979
|
|
; Line 56
|
|
000fb ff 76 18 push DWORD PTR [esi+24]
|
|
000fe ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInClose@4
|
|
; Line 57
|
|
00104 6a ff push -1
|
|
00106 ff 76 30 push DWORD PTR [esi+48]
|
|
00109 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__TerminateThread@8
|
|
$L74977:
|
|
; Line 60
|
|
0010f 80 7e 49 00 cmp BYTE PTR [esi+73], 0
|
|
00113 74 2b je SHORT $L74983
|
|
; Line 62
|
|
00115 ff 76 44 push DWORD PTR [esi+68]
|
|
00118 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutReset@4
|
|
0011e 6a 02 push 2
|
|
00120 8d 7e 34 lea edi, DWORD PTR [esi+52]
|
|
00123 5b pop ebx
|
|
$L74985:
|
|
; Line 64
|
|
00124 6a 20 push 32 ; 00000020H
|
|
00126 ff 37 push DWORD PTR [edi]
|
|
00128 ff 76 44 push DWORD PTR [esi+68]
|
|
0012b ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutUnprepareHeader@12
|
|
00131 83 c7 04 add edi, 4
|
|
00134 4b dec ebx
|
|
00135 75 ed jne SHORT $L74985
|
|
; Line 65
|
|
00137 ff 76 44 push DWORD PTR [esi+68]
|
|
0013a ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutClose@4
|
|
$L74983:
|
|
; Line 69
|
|
00140 6a 02 push 2
|
|
00142 8d 7e 34 lea edi, DWORD PTR [esi+52]
|
|
00145 5b pop ebx
|
|
$L74990:
|
|
; Line 71
|
|
00146 ff 77 d4 push DWORD PTR [edi-44]
|
|
00149 e8 00 00 00 00 call ??3@YAXPAX@Z ; operator delete
|
|
; Line 72
|
|
0014e ff 37 push DWORD PTR [edi]
|
|
00150 e8 00 00 00 00 call ??3@YAXPAX@Z ; operator delete
|
|
; Line 74
|
|
00155 ff 77 dc push DWORD PTR [edi-36]
|
|
00158 e8 00 00 00 00 call ??3@YAXPAX@Z ; operator delete
|
|
; Line 75
|
|
0015d ff 77 08 push DWORD PTR [edi+8]
|
|
00160 e8 00 00 00 00 call ??3@YAXPAX@Z ; operator delete
|
|
00165 83 c4 10 add esp, 16 ; 00000010H
|
|
00168 83 c7 04 add edi, 4
|
|
0016b 4b dec ebx
|
|
0016c 75 d8 jne SHORT $L74990
|
|
; Line 78
|
|
0016e ff 76 24 push DWORD PTR [esi+36]
|
|
00171 8b 3d 00 00 00
|
|
00 mov edi, DWORD PTR __imp__CloseHandle@4
|
|
00177 ff d7 call edi
|
|
; Line 79
|
|
00179 ff 76 28 push DWORD PTR [esi+40]
|
|
0017c ff d7 call edi
|
|
; Line 80
|
|
0017e ff 76 30 push DWORD PTR [esi+48]
|
|
00181 ff d7 call edi
|
|
00183 5f pop edi
|
|
00184 5e pop esi
|
|
00185 5b pop ebx
|
|
; Line 81
|
|
00186 c3 ret 0
|
|
??1CAudio@@UAE@XZ ENDP ; CAudio::~CAudio
|
|
_TEXT ENDS
|
|
PUBLIC ?getRecordBuffer@CAudio@@QAEPAEPAK@Z ; CAudio::getRecordBuffer
|
|
PUBLIC ?InitializeWaveIn@CAudio@@AAE_NXZ ; CAudio::InitializeWaveIn
|
|
EXTRN __imp__SetEvent@4:NEAR
|
|
EXTRN __imp__WaitForSingleObject@8:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_lpdwBytes$ = 8
|
|
?getRecordBuffer@CAudio@@QAEPAEPAK@Z PROC NEAR ; CAudio::getRecordBuffer
|
|
; _this$ = ecx
|
|
; Line 85
|
|
00187 56 push esi
|
|
00188 8b f1 mov esi, ecx
|
|
0018a 57 push edi
|
|
; Line 87
|
|
0018b 80 7e 48 00 cmp BYTE PTR [esi+72], 0
|
|
0018f 75 09 jne SHORT $L75001
|
|
00191 e8 00 00 00 00 call ?InitializeWaveIn@CAudio@@AAE_NXZ ; CAudio::InitializeWaveIn
|
|
00196 84 c0 test al, al
|
|
; Line 89
|
|
00198 74 08 je SHORT $L75301
|
|
$L75001:
|
|
; Line 91
|
|
0019a 8b 7c 24 0c mov edi, DWORD PTR _lpdwBytes$[esp+4]
|
|
0019e 85 ff test edi, edi
|
|
001a0 75 04 jne SHORT $L75002
|
|
$L75301:
|
|
; Line 93
|
|
001a2 33 c0 xor eax, eax
|
|
001a4 eb 20 jmp SHORT $L75000
|
|
$L75002:
|
|
; Line 95
|
|
001a6 ff 76 28 push DWORD PTR [esi+40]
|
|
001a9 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__SetEvent@4
|
|
; Line 96
|
|
001af 6a ff push -1
|
|
001b1 ff 76 24 push DWORD PTR [esi+36]
|
|
001b4 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__WaitForSingleObject@8
|
|
; Line 97
|
|
001ba 8b 46 04 mov eax, DWORD PTR [esi+4]
|
|
001bd 89 07 mov DWORD PTR [edi], eax
|
|
; Line 98
|
|
001bf 8b 46 1c mov eax, DWORD PTR [esi+28]
|
|
001c2 8b 44 86 08 mov eax, DWORD PTR [esi+eax*4+8]
|
|
$L75000:
|
|
001c6 5f pop edi
|
|
001c7 5e pop esi
|
|
; Line 99
|
|
001c8 c2 04 00 ret 4
|
|
?getRecordBuffer@CAudio@@QAEPAEPAK@Z ENDP ; CAudio::getRecordBuffer
|
|
_TEXT ENDS
|
|
PUBLIC ?playBuffer@CAudio@@QAE_NPAEK@Z ; CAudio::playBuffer
|
|
PUBLIC ?InitializeWaveOut@CAudio@@AAE_NXZ ; CAudio::InitializeWaveOut
|
|
EXTRN __imp__waveOutWrite@12:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_lpWaveBuffer$ = 8
|
|
_dwBytes$ = 12
|
|
?playBuffer@CAudio@@QAE_NPAEK@Z PROC NEAR ; CAudio::playBuffer
|
|
; _this$ = ecx
|
|
; Line 102
|
|
001cb 53 push ebx
|
|
001cc 8b d9 mov ebx, ecx
|
|
; Line 103
|
|
001ce 80 7b 49 00 cmp BYTE PTR [ebx+73], 0
|
|
001d2 75 09 jne SHORT $L75008
|
|
001d4 e8 00 00 00 00 call ?InitializeWaveOut@CAudio@@AAE_NXZ ; CAudio::InitializeWaveOut
|
|
001d9 84 c0 test al, al
|
|
001db 74 52 je SHORT $L75007
|
|
$L75008:
|
|
001dd 55 push ebp
|
|
; Line 107
|
|
001de 33 ed xor ebp, ebp
|
|
001e0 39 6c 24 10 cmp DWORD PTR _dwBytes$[esp+4], ebp
|
|
001e4 76 46 jbe SHORT $L75012
|
|
001e6 8b 4b 04 mov ecx, DWORD PTR [ebx+4]
|
|
001e9 56 push esi
|
|
001ea 57 push edi
|
|
$L75010:
|
|
; Line 109
|
|
001eb 8b 43 20 mov eax, DWORD PTR [ebx+32]
|
|
001ee 8b 74 24 14 mov esi, DWORD PTR _lpWaveBuffer$[esp+12]
|
|
; Line 110
|
|
001f2 6a 20 push 32 ; 00000020H
|
|
001f4 8b 7c 83 10 mov edi, DWORD PTR [ebx+eax*4+16]
|
|
001f8 8b c1 mov eax, ecx
|
|
001fa c1 e9 02 shr ecx, 2
|
|
001fd f3 a5 rep movsd
|
|
001ff 8b c8 mov ecx, eax
|
|
00201 83 e1 03 and ecx, 3
|
|
00204 f3 a4 rep movsb
|
|
00206 8b 43 20 mov eax, DWORD PTR [ebx+32]
|
|
00209 ff 74 83 3c push DWORD PTR [ebx+eax*4+60]
|
|
0020d ff 73 44 push DWORD PTR [ebx+68]
|
|
00210 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutWrite@12
|
|
00216 8b 4b 04 mov ecx, DWORD PTR [ebx+4]
|
|
; Line 111
|
|
00219 33 c0 xor eax, eax
|
|
0021b 40 inc eax
|
|
0021c 03 e9 add ebp, ecx
|
|
0021e 2b 43 20 sub eax, DWORD PTR [ebx+32]
|
|
00221 3b 6c 24 18 cmp ebp, DWORD PTR _dwBytes$[esp+12]
|
|
00225 89 43 20 mov DWORD PTR [ebx+32], eax
|
|
00228 72 c1 jb SHORT $L75010
|
|
0022a 5f pop edi
|
|
0022b 5e pop esi
|
|
$L75012:
|
|
; Line 114
|
|
0022c b0 01 mov al, 1
|
|
0022e 5d pop ebp
|
|
$L75007:
|
|
0022f 5b pop ebx
|
|
; Line 115
|
|
00230 c2 08 00 ret 8
|
|
?playBuffer@CAudio@@QAE_NPAEK@Z ENDP ; CAudio::playBuffer
|
|
_TEXT ENDS
|
|
PUBLIC ?SetDeviceType@CAudio@@QAEXPAUtWAVEFORMATEX@@@Z ; CAudio::SetDeviceType
|
|
PUBLIC ?waveInCallBack@CAudio@@CGKPAX@Z ; CAudio::waveInCallBack
|
|
EXTRN __imp__waveInGetNumDevs@0:NEAR
|
|
EXTRN __imp__waveInOpen@24:NEAR
|
|
EXTRN __imp__waveInPrepareHeader@12:NEAR
|
|
EXTRN __imp__waveInAddBuffer@12:NEAR
|
|
EXTRN __imp__waveInStart@4:NEAR
|
|
EXTRN __imp__CreateThread@24:NEAR
|
|
EXTRN __imp__ResumeThread@4:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_waveform$ = -28
|
|
_dwThreadID$ = -4
|
|
?InitializeWaveIn@CAudio@@AAE_NXZ PROC NEAR ; CAudio::InitializeWaveIn
|
|
; _this$ = ecx
|
|
; Line 118
|
|
00233 55 push ebp
|
|
00234 8b ec mov ebp, esp
|
|
00236 83 ec 1c sub esp, 28 ; 0000001cH
|
|
00239 53 push ebx
|
|
0023a 56 push esi
|
|
0023b 57 push edi
|
|
0023c 8b f1 mov esi, ecx
|
|
; Line 119
|
|
0023e ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInGetNumDevs@0
|
|
00244 85 c0 test eax, eax
|
|
; Line 120
|
|
00246 74 45 je SHORT $L75308
|
|
; Line 123
|
|
00248 8d 45 e4 lea eax, DWORD PTR _waveform$[ebp]
|
|
0024b 8b ce mov ecx, esi
|
|
0024d 50 push eax
|
|
0024e e8 00 00 00 00 call ?SetDeviceType@CAudio@@QAEXPAUtWAVEFORMATEX@@@Z ; CAudio::SetDeviceType
|
|
; Line 127
|
|
00253 8d 45 fc lea eax, DWORD PTR _dwThreadID$[ebp]
|
|
00256 33 ff xor edi, edi
|
|
00258 50 push eax
|
|
00259 6a 04 push 4
|
|
0025b 56 push esi
|
|
0025c 68 00 00 00 00 push OFFSET FLAT:?waveInCallBack@CAudio@@CGKPAX@Z ; CAudio::waveInCallBack
|
|
00261 57 push edi
|
|
00262 57 push edi
|
|
00263 89 7d fc mov DWORD PTR _dwThreadID$[ebp], edi
|
|
00266 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__CreateThread@24
|
|
; Line 129
|
|
0026c 68 00 00 02 00 push 131072 ; 00020000H
|
|
00271 57 push edi
|
|
00272 ff 75 fc push DWORD PTR _dwThreadID$[ebp]
|
|
00275 89 46 30 mov DWORD PTR [esi+48], eax
|
|
00278 8d 45 e4 lea eax, DWORD PTR _waveform$[ebp]
|
|
0027b 8d 5e 18 lea ebx, DWORD PTR [esi+24]
|
|
0027e 50 push eax
|
|
0027f ff 76 2c push DWORD PTR [esi+44]
|
|
00282 53 push ebx
|
|
00283 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInOpen@24
|
|
; Line 131
|
|
00289 85 c0 test eax, eax
|
|
0028b 74 04 je SHORT $L75025
|
|
$L75308:
|
|
; Line 133
|
|
0028d 32 c0 xor al, al
|
|
0028f eb 5a jmp SHORT $L75016
|
|
$L75025:
|
|
; Line 135
|
|
00291 8d 7e 34 lea edi, DWORD PTR [esi+52]
|
|
00294 c7 45 f8 02 00
|
|
00 00 mov DWORD PTR -8+[ebp], 2
|
|
$L75027:
|
|
; Line 137
|
|
0029b 8b 07 mov eax, DWORD PTR [edi]
|
|
0029d 8b 4f d4 mov ecx, DWORD PTR [edi-44]
|
|
; Line 142
|
|
002a0 6a 20 push 32 ; 00000020H
|
|
002a2 50 push eax
|
|
002a3 ff 33 push DWORD PTR [ebx]
|
|
002a5 89 08 mov DWORD PTR [eax], ecx
|
|
002a7 8b 4e 04 mov ecx, DWORD PTR [esi+4]
|
|
002aa 89 48 04 mov DWORD PTR [eax+4], ecx
|
|
002ad 83 60 10 00 and DWORD PTR [eax+16], 0
|
|
002b1 83 60 14 00 and DWORD PTR [eax+20], 0
|
|
002b5 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInPrepareHeader@12
|
|
002bb 83 c7 04 add edi, 4
|
|
002be ff 4d f8 dec DWORD PTR -8+[ebp]
|
|
002c1 75 d8 jne SHORT $L75027
|
|
; Line 145
|
|
002c3 8b 46 1c mov eax, DWORD PTR [esi+28]
|
|
002c6 6a 20 push 32 ; 00000020H
|
|
002c8 ff 74 86 34 push DWORD PTR [esi+eax*4+52]
|
|
002cc ff 33 push DWORD PTR [ebx]
|
|
002ce ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInAddBuffer@12
|
|
; Line 147
|
|
002d4 ff 76 30 push DWORD PTR [esi+48]
|
|
002d7 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__ResumeThread@4
|
|
; Line 149
|
|
002dd ff 33 push DWORD PTR [ebx]
|
|
002df ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInStart@4
|
|
; Line 151
|
|
002e5 c6 46 48 01 mov BYTE PTR [esi+72], 1
|
|
; Line 153
|
|
002e9 b0 01 mov al, 1
|
|
$L75016:
|
|
002eb 5f pop edi
|
|
002ec 5e pop esi
|
|
002ed 5b pop ebx
|
|
; Line 155
|
|
002ee c9 leave
|
|
002ef c3 ret 0
|
|
?InitializeWaveIn@CAudio@@AAE_NXZ ENDP ; CAudio::InitializeWaveIn
|
|
_TEXT ENDS
|
|
PUBLIC ?FindMixernIndex@@YAHPAD@Z ; FindMixernIndex
|
|
EXTRN __imp__mixerGetLineInfoA@12:NEAR
|
|
EXTRN __imp__mixerGetNumDevs@0:NEAR
|
|
EXTRN __imp__mixerGetDevCapsA@12:NEAR
|
|
EXTRN __imp__mixerOpen@20:NEAR
|
|
EXTRN __imp__mixerClose@4:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_szPname$ = 8
|
|
_mxcaps$ = -56
|
|
_hMixer$ = -8
|
|
_i$ = -4
|
|
_mxl$75045 = -224
|
|
?FindMixernIndex@@YAHPAD@Z PROC NEAR ; FindMixernIndex
|
|
; Line 158
|
|
002f0 55 push ebp
|
|
002f1 8b ec mov ebp, esp
|
|
002f3 81 ec e0 00 00
|
|
00 sub esp, 224 ; 000000e0H
|
|
002f9 53 push ebx
|
|
002fa 56 push esi
|
|
002fb 57 push edi
|
|
; Line 159
|
|
002fc 6a 0b push 11 ; 0000000bH
|
|
002fe 33 db xor ebx, ebx
|
|
00300 59 pop ecx
|
|
00301 33 c0 xor eax, eax
|
|
00303 8d 7d ca lea edi, DWORD PTR _mxcaps$[ebp+2]
|
|
00306 66 89 5d c8 mov WORD PTR _mxcaps$[ebp], bx
|
|
; Line 160
|
|
0030a 89 5d f8 mov DWORD PTR _hMixer$[ebp], ebx
|
|
0030d f3 ab rep stosd
|
|
0030f 66 ab stosw
|
|
; Line 162
|
|
00311 89 5d fc mov DWORD PTR _i$[ebp], ebx
|
|
00314 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetNumDevs@0
|
|
0031a 85 c0 test eax, eax
|
|
0031c 0f 86 d6 00 00
|
|
00 jbe $L75041
|
|
$L75039:
|
|
; Line 164
|
|
00322 8d 45 c8 lea eax, DWORD PTR _mxcaps$[ebp]
|
|
00325 6a 30 push 48 ; 00000030H
|
|
00327 50 push eax
|
|
00328 ff 75 fc push DWORD PTR _i$[ebp]
|
|
0032b ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetDevCapsA@12
|
|
00331 85 c0 test eax, eax
|
|
00333 0f 85 ad 00 00
|
|
00 jne $L75040
|
|
; Line 165
|
|
00339 53 push ebx
|
|
0033a 53 push ebx
|
|
0033b 53 push ebx
|
|
0033c 8d 45 f8 lea eax, DWORD PTR _hMixer$[ebp]
|
|
0033f ff 75 fc push DWORD PTR _i$[ebp]
|
|
00342 50 push eax
|
|
00343 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerOpen@20
|
|
00349 85 c0 test eax, eax
|
|
0034b 0f 85 95 00 00
|
|
00 jne $L75040
|
|
; Line 167
|
|
00351 6a 22 push 34 ; 00000022H
|
|
00353 8d bd 40 ff ff
|
|
ff lea edi, DWORD PTR _mxl$75045[ebp+32]
|
|
00359 59 pop ecx
|
|
0035a c7 85 20 ff ff
|
|
ff a8 00 00 00 mov DWORD PTR _mxl$75045[ebp], 168 ; 000000a8H
|
|
00364 89 9d 24 ff ff
|
|
ff mov DWORD PTR _mxl$75045[ebp+4], ebx
|
|
0036a 89 9d 28 ff ff
|
|
ff mov DWORD PTR _mxl$75045[ebp+8], ebx
|
|
00370 89 9d 2c ff ff
|
|
ff mov DWORD PTR _mxl$75045[ebp+12], ebx
|
|
00376 89 9d 30 ff ff
|
|
ff mov DWORD PTR _mxl$75045[ebp+16], ebx
|
|
0037c 89 9d 34 ff ff
|
|
ff mov DWORD PTR _mxl$75045[ebp+20], ebx
|
|
00382 c7 85 38 ff ff
|
|
ff 07 00 00 00 mov DWORD PTR _mxl$75045[ebp+24], 7
|
|
0038c 89 9d 3c ff ff
|
|
ff mov DWORD PTR _mxl$75045[ebp+28], ebx
|
|
; Line 168
|
|
00392 6a 03 push 3
|
|
00394 f3 ab rep stosd
|
|
00396 8d 85 20 ff ff
|
|
ff lea eax, DWORD PTR _mxl$75045[ebp]
|
|
0039c 50 push eax
|
|
0039d ff 75 f8 push DWORD PTR _hMixer$[ebp]
|
|
003a0 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineInfoA@12
|
|
003a6 85 c0 test eax, eax
|
|
003a8 74 0b je SHORT $L75048
|
|
; Line 169
|
|
003aa ff 75 f8 push DWORD PTR _hMixer$[ebp]
|
|
003ad ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerClose@4
|
|
; Line 170
|
|
003b3 eb 31 jmp SHORT $L75040
|
|
$L75048:
|
|
; Line 173
|
|
003b5 8b 75 08 mov esi, DWORD PTR _szPname$[ebp]
|
|
003b8 8d 45 d0 lea eax, DWORD PTR _mxcaps$[ebp+8]
|
|
$L75313:
|
|
003bb 8a 10 mov dl, BYTE PTR [eax]
|
|
003bd 8a ca mov cl, dl
|
|
003bf 3a 16 cmp dl, BYTE PTR [esi]
|
|
003c1 75 1a jne SHORT $L75314
|
|
003c3 3a cb cmp cl, bl
|
|
003c5 74 12 je SHORT $L75315
|
|
003c7 8a 50 01 mov dl, BYTE PTR [eax+1]
|
|
003ca 8a ca mov cl, dl
|
|
003cc 3a 56 01 cmp dl, BYTE PTR [esi+1]
|
|
003cf 75 0c jne SHORT $L75314
|
|
003d1 40 inc eax
|
|
003d2 40 inc eax
|
|
003d3 46 inc esi
|
|
003d4 46 inc esi
|
|
003d5 3a cb cmp cl, bl
|
|
003d7 75 e2 jne SHORT $L75313
|
|
$L75315:
|
|
003d9 33 c0 xor eax, eax
|
|
003db eb 05 jmp SHORT $L75316
|
|
$L75314:
|
|
003dd 1b c0 sbb eax, eax
|
|
003df 83 d8 ff sbb eax, -1
|
|
$L75316:
|
|
003e2 3b c3 cmp eax, ebx
|
|
003e4 74 1a je SHORT $L75311
|
|
$L75040:
|
|
; Line 162
|
|
003e6 ff 45 fc inc DWORD PTR _i$[ebp]
|
|
003e9 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetNumDevs@0
|
|
003ef 39 45 fc cmp DWORD PTR _i$[ebp], eax
|
|
003f2 0f 82 2a ff ff
|
|
ff jb $L75039
|
|
$L75041:
|
|
; Line 180
|
|
003f8 83 c8 ff or eax, -1
|
|
$L75035:
|
|
003fb 5f pop edi
|
|
003fc 5e pop esi
|
|
003fd 5b pop ebx
|
|
; Line 181
|
|
003fe c9 leave
|
|
003ff c3 ret 0
|
|
$L75311:
|
|
; Line 175
|
|
00400 ff 75 f8 push DWORD PTR _hMixer$[ebp]
|
|
00403 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerClose@4
|
|
; Line 177
|
|
00409 8b 45 fc mov eax, DWORD PTR _i$[ebp]
|
|
0040c eb ed jmp SHORT $L75035
|
|
?FindMixernIndex@@YAHPAD@Z ENDP ; FindMixernIndex
|
|
_TEXT ENDS
|
|
PUBLIC ?ActiveMixerInputChannel@CAudio@@QAE_NPADH@Z ; CAudio::ActiveMixerInputChannel
|
|
EXTRN _free:NEAR
|
|
EXTRN _malloc:NEAR
|
|
EXTRN __imp__mixerGetLineControlsA@12:NEAR
|
|
EXTRN __imp__mixerGetControlDetailsA@12:NEAR
|
|
EXTRN __imp__mixerSetControlDetails@12:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_szMixerDevice$ = 8
|
|
_nMixerLineIndex$ = 12
|
|
_hMixer$ = 8
|
|
_mxc$ = -364
|
|
_mxl$ = -216
|
|
_mxlc$ = -48
|
|
_mxcdlts$ = 12
|
|
_mxcd$ = -24
|
|
?ActiveMixerInputChannel@CAudio@@QAE_NPADH@Z PROC NEAR ; CAudio::ActiveMixerInputChannel
|
|
; _this$ = ecx
|
|
; Line 184
|
|
0040e 55 push ebp
|
|
0040f 8b ec mov ebp, esp
|
|
00411 81 ec 6c 01 00
|
|
00 sub esp, 364 ; 0000016cH
|
|
00417 53 push ebx
|
|
00418 57 push edi
|
|
; Line 185
|
|
00419 ff 75 08 push DWORD PTR _szMixerDevice$[ebp]
|
|
0041c e8 00 00 00 00 call ?FindMixernIndex@@YAHPAD@Z ; FindMixernIndex
|
|
00421 8b d0 mov edx, eax
|
|
00423 59 pop ecx
|
|
; Line 186
|
|
00424 83 fa ff cmp edx, -1
|
|
; Line 187
|
|
00427 74 77 je SHORT $L75326
|
|
; Line 190
|
|
00429 6a 23 push 35 ; 00000023H
|
|
0042b 33 db xor ebx, ebx
|
|
0042d 59 pop ecx
|
|
0042e 33 c0 xor eax, eax
|
|
00430 8d bd 9c fe ff
|
|
ff lea edi, DWORD PTR _mxc$[ebp+8]
|
|
00436 c7 85 94 fe ff
|
|
ff 94 00 00 00 mov DWORD PTR _mxc$[ebp], 148 ; 00000094H
|
|
00440 89 9d 98 fe ff
|
|
ff mov DWORD PTR _mxc$[ebp+4], ebx
|
|
; Line 191
|
|
00446 6a 22 push 34 ; 00000022H
|
|
00448 f3 ab rep stosd
|
|
0044a 59 pop ecx
|
|
0044b 8d bd 48 ff ff
|
|
ff lea edi, DWORD PTR _mxl$[ebp+32]
|
|
00451 c7 85 28 ff ff
|
|
ff a8 00 00 00 mov DWORD PTR _mxl$[ebp], 168 ; 000000a8H
|
|
0045b 89 9d 2c ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+4], ebx
|
|
00461 89 9d 30 ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+8], ebx
|
|
00467 89 9d 34 ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+12], ebx
|
|
0046d 89 9d 38 ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+16], ebx
|
|
00473 89 9d 3c ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+20], ebx
|
|
00479 c7 85 40 ff ff
|
|
ff 07 00 00 00 mov DWORD PTR _mxl$[ebp+24], 7
|
|
00483 89 9d 44 ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+28], ebx
|
|
; Line 192
|
|
00489 53 push ebx
|
|
0048a 53 push ebx
|
|
0048b f3 ab rep stosd
|
|
0048d 53 push ebx
|
|
0048e 8d 45 08 lea eax, DWORD PTR _hMixer$[ebp]
|
|
00491 52 push edx
|
|
00492 50 push eax
|
|
00493 89 5d 08 mov DWORD PTR _hMixer$[ebp], ebx
|
|
00496 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerOpen@20
|
|
0049c 85 c0 test eax, eax
|
|
0049e 74 07 je SHORT $L75063
|
|
$L75326:
|
|
; Line 193
|
|
004a0 32 c0 xor al, al
|
|
004a2 e9 74 01 00 00 jmp $L75054
|
|
$L75063:
|
|
004a7 56 push esi
|
|
; Line 195
|
|
004a8 8b 35 00 00 00
|
|
00 mov esi, DWORD PTR __imp__mixerGetLineInfoA@12
|
|
004ae 8d 85 28 ff ff
|
|
ff lea eax, DWORD PTR _mxl$[ebp]
|
|
004b4 6a 03 push 3
|
|
004b6 50 push eax
|
|
004b7 ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
004ba ff d6 call esi
|
|
004bc 85 c0 test eax, eax
|
|
004be 0f 85 4b 01 00
|
|
00 jne $L75321
|
|
; Line 201
|
|
004c4 8b 85 34 ff ff
|
|
ff mov eax, DWORD PTR _mxl$[ebp+12]
|
|
004ca 33 ff xor edi, edi
|
|
004cc 89 45 d4 mov DWORD PTR _mxlc$[ebp+4], eax
|
|
004cf 8b 85 94 fe ff
|
|
ff mov eax, DWORD PTR _mxc$[ebp]
|
|
004d5 89 45 e0 mov DWORD PTR _mxlc$[ebp+16], eax
|
|
004d8 8d 85 94 fe ff
|
|
ff lea eax, DWORD PTR _mxc$[ebp]
|
|
004de 89 45 e4 mov DWORD PTR _mxlc$[ebp+20], eax
|
|
; Line 202
|
|
004e1 8b 45 0c mov eax, DWORD PTR _nMixerLineIndex$[ebp]
|
|
004e4 47 inc edi
|
|
004e5 89 85 30 ff ff
|
|
ff mov DWORD PTR _mxl$[ebp+8], eax
|
|
; Line 203
|
|
004eb 8d 85 28 ff ff
|
|
ff lea eax, DWORD PTR _mxl$[ebp]
|
|
004f1 57 push edi
|
|
004f2 50 push eax
|
|
004f3 c7 45 d0 18 00
|
|
00 00 mov DWORD PTR _mxlc$[ebp], 24 ; 00000018H
|
|
004fa ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
004fd c7 45 d8 01 00
|
|
01 71 mov DWORD PTR _mxlc$[ebp+8], 1895890945 ; 71010001H
|
|
00504 89 7d dc mov DWORD PTR _mxlc$[ebp+12], edi
|
|
00507 ff d6 call esi
|
|
00509 85 c0 test eax, eax
|
|
0050b 0f 85 fe 00 00
|
|
00 jne $L75321
|
|
; Line 208
|
|
00511 8d 45 d0 lea eax, DWORD PTR _mxlc$[ebp]
|
|
00514 6a 02 push 2
|
|
00516 50 push eax
|
|
00517 ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
0051a ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineControlsA@12
|
|
00520 85 c0 test eax, eax
|
|
00522 74 1e je SHORT $L75073
|
|
; Line 211
|
|
00524 8d 45 d0 lea eax, DWORD PTR _mxlc$[ebp]
|
|
00527 6a 02 push 2
|
|
00529 50 push eax
|
|
0052a c7 45 d8 01 00
|
|
01 70 mov DWORD PTR _mxlc$[ebp+8], 1879113729 ; 70010001H
|
|
00531 ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
00534 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineControlsA@12
|
|
0053a 85 c0 test eax, eax
|
|
0053c 0f 85 cd 00 00
|
|
00 jne $L75321
|
|
$L75073:
|
|
; Line 217
|
|
00542 8b 85 a4 fe ff
|
|
ff mov eax, DWORD PTR _mxc$[ebp+16]
|
|
00548 3b c3 cmp eax, ebx
|
|
0054a 0f 84 bf 00 00
|
|
00 je $L75321
|
|
; Line 222
|
|
00550 c1 e0 02 shl eax, 2
|
|
00553 50 push eax
|
|
00554 e8 00 00 00 00 call _malloc
|
|
00559 8b f0 mov esi, eax
|
|
; Line 223
|
|
0055b 8b 85 a4 fe ff
|
|
ff mov eax, DWORD PTR _mxc$[ebp+16]
|
|
00561 8d 04 c0 lea eax, DWORD PTR [eax+eax*8]
|
|
00564 c1 e0 03 shl eax, 3
|
|
00567 50 push eax
|
|
00568 e8 00 00 00 00 call _malloc
|
|
0056d 59 pop ecx
|
|
0056e 89 45 0c mov DWORD PTR _mxcdlts$[ebp], eax
|
|
00571 59 pop ecx
|
|
; Line 224
|
|
00572 89 45 fc mov DWORD PTR _mxcd$[ebp+20], eax
|
|
00575 8b 8d 98 fe ff
|
|
ff mov ecx, DWORD PTR _mxc$[ebp+4]
|
|
; Line 225
|
|
0057b 8d 45 e8 lea eax, DWORD PTR _mxcd$[ebp]
|
|
0057e 57 push edi
|
|
0057f 50 push eax
|
|
00580 ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
00583 89 4d ec mov DWORD PTR _mxcd$[ebp+4], ecx
|
|
00586 8b 8d a4 fe ff
|
|
ff mov ecx, DWORD PTR _mxc$[ebp+16]
|
|
0058c c7 45 e8 18 00
|
|
00 00 mov DWORD PTR _mxcd$[ebp], 24 ; 00000018H
|
|
00593 89 7d f0 mov DWORD PTR _mxcd$[ebp+8], edi
|
|
00596 89 4d f4 mov DWORD PTR _mxcd$[ebp+12], ecx
|
|
00599 c7 45 f8 48 00
|
|
00 00 mov DWORD PTR _mxcd$[ebp+16], 72 ; 00000048H
|
|
005a0 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetControlDetailsA@12
|
|
005a6 85 c0 test eax, eax
|
|
005a8 75 55 jne SHORT $L75091
|
|
; Line 227
|
|
005aa 8b 8d a4 fe ff
|
|
ff mov ecx, DWORD PTR _mxc$[ebp+16]
|
|
005b0 8b fe mov edi, esi
|
|
005b2 f3 ab rep stosd
|
|
; Line 228
|
|
005b4 39 85 a4 fe ff
|
|
ff cmp DWORD PTR _mxc$[ebp+16], eax
|
|
005ba 76 43 jbe SHORT $L75091
|
|
; Line 227
|
|
005bc 8b 4d 0c mov ecx, DWORD PTR _mxcdlts$[ebp]
|
|
$L75089:
|
|
; Line 230
|
|
005bf 8b 11 mov edx, DWORD PTR [ecx]
|
|
005c1 3b 95 34 ff ff
|
|
ff cmp edx, DWORD PTR _mxl$[ebp+12]
|
|
005c7 74 0e je SHORT $L75319
|
|
005c9 40 inc eax
|
|
005ca 83 c1 48 add ecx, 72 ; 00000048H
|
|
005cd 3b 85 a4 fe ff
|
|
ff cmp eax, DWORD PTR _mxc$[ebp+16]
|
|
005d3 72 ea jb SHORT $L75089
|
|
005d5 eb 28 jmp SHORT $L75091
|
|
$L75319:
|
|
; Line 232
|
|
005d7 c7 04 86 01 00
|
|
00 00 mov DWORD PTR [esi+eax*4], 1
|
|
; Line 235
|
|
005de 8d 45 e8 lea eax, DWORD PTR _mxcd$[ebp]
|
|
005e1 6a 00 push 0
|
|
005e3 50 push eax
|
|
005e4 ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
005e7 89 75 fc mov DWORD PTR _mxcd$[ebp+20], esi
|
|
005ea c7 45 f8 04 00
|
|
00 00 mov DWORD PTR _mxcd$[ebp+16], 4
|
|
005f1 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerSetControlDetails@12
|
|
005f7 8b d8 mov ebx, eax
|
|
005f9 f7 db neg ebx
|
|
005fb 1a db sbb bl, bl
|
|
005fd fe c3 inc bl
|
|
$L75091:
|
|
; Line 240
|
|
005ff 56 push esi
|
|
00600 e8 00 00 00 00 call _free
|
|
; Line 241
|
|
00605 ff 75 0c push DWORD PTR _mxcdlts$[ebp]
|
|
00608 e8 00 00 00 00 call _free
|
|
0060d 59 pop ecx
|
|
0060e 59 pop ecx
|
|
$L75321:
|
|
; Line 242
|
|
0060f ff 75 08 push DWORD PTR _hMixer$[ebp]
|
|
00612 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerClose@4
|
|
; Line 244
|
|
00618 8a c3 mov al, bl
|
|
0061a 5e pop esi
|
|
$L75054:
|
|
0061b 5f pop edi
|
|
0061c 5b pop ebx
|
|
; Line 245
|
|
0061d c9 leave
|
|
0061e c2 08 00 ret 8
|
|
?ActiveMixerInputChannel@CAudio@@QAE_NPADH@Z ENDP ; CAudio::ActiveMixerInputChannel
|
|
_TEXT ENDS
|
|
PUBLIC ?EnumerateInputLines@CAudio@@QAEHPAD0@Z ; CAudio::EnumerateInputLines
|
|
_DATA SEGMENT
|
|
$SG75153 DB '@', 00H
|
|
; Function compile flags: /Ogsawpy
|
|
_DATA ENDS
|
|
_TEXT SEGMENT
|
|
_szPname$ = 8
|
|
_str$ = 12
|
|
_mxcaps$ = -296
|
|
_hMixer$ = -4
|
|
_nRet$ = -20
|
|
_i$ = -8
|
|
_mxl$75112 = -248
|
|
_mxc$75117 = -444
|
|
_mxlc$75119 = -80
|
|
_mxcd$75126 = -44
|
|
_mxcdlts$75128 = -16
|
|
_mxcdbls$75134 = -48
|
|
_dwConnections$75140 = -52
|
|
_dwDestination$75141 = -56
|
|
_j$75142 = -12
|
|
?EnumerateInputLines@CAudio@@QAEHPAD0@Z PROC NEAR ; CAudio::EnumerateInputLines
|
|
; _this$ = ecx
|
|
; Line 248
|
|
00621 55 push ebp
|
|
00622 8b ec mov ebp, esp
|
|
00624 81 ec bc 01 00
|
|
00 sub esp, 444 ; 000001bcH
|
|
0062a 56 push esi
|
|
; Line 249
|
|
0062b 33 f6 xor esi, esi
|
|
0062d 39 75 0c cmp DWORD PTR _str$[ebp], esi
|
|
00630 0f 84 21 03 00
|
|
00 je $L75101
|
|
00636 39 75 08 cmp DWORD PTR _szPname$[ebp], esi
|
|
00639 0f 84 18 03 00
|
|
00 je $L75101
|
|
0063f 57 push edi
|
|
; Line 252
|
|
00640 6a 0b push 11 ; 0000000bH
|
|
00642 59 pop ecx
|
|
00643 33 c0 xor eax, eax
|
|
00645 8d bd da fe ff
|
|
ff lea edi, DWORD PTR _mxcaps$[ebp+2]
|
|
0064b 66 89 b5 d8 fe
|
|
ff ff mov WORD PTR _mxcaps$[ebp], si
|
|
; Line 254
|
|
00652 83 4d ec ff or DWORD PTR _nRet$[ebp], -1
|
|
00656 89 75 fc mov DWORD PTR _hMixer$[ebp], esi
|
|
00659 f3 ab rep stosd
|
|
0065b 66 ab stosw
|
|
; Line 256
|
|
0065d 89 75 f8 mov DWORD PTR _i$[ebp], esi
|
|
00660 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetNumDevs@0
|
|
00666 85 c0 test eax, eax
|
|
00668 0f 86 e3 02 00
|
|
00 jbe $L75108
|
|
0066e 53 push ebx
|
|
0066f 8b 1d 00 00 00
|
|
00 mov ebx, DWORD PTR __imp__mixerClose@4
|
|
00675 eb 02 jmp SHORT $L75106
|
|
$L75340:
|
|
00677 33 f6 xor esi, esi
|
|
$L75106:
|
|
; Line 258
|
|
00679 8d 85 d8 fe ff
|
|
ff lea eax, DWORD PTR _mxcaps$[ebp]
|
|
0067f 6a 30 push 48 ; 00000030H
|
|
00681 50 push eax
|
|
00682 ff 75 f8 push DWORD PTR _i$[ebp]
|
|
00685 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetDevCapsA@12
|
|
0068b 85 c0 test eax, eax
|
|
0068d 0f 85 ab 02 00
|
|
00 jne $L75107
|
|
; Line 260
|
|
00693 56 push esi
|
|
00694 56 push esi
|
|
00695 56 push esi
|
|
00696 8d 45 fc lea eax, DWORD PTR _hMixer$[ebp]
|
|
00699 ff 75 f8 push DWORD PTR _i$[ebp]
|
|
0069c 50 push eax
|
|
0069d ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerOpen@20
|
|
006a3 85 c0 test eax, eax
|
|
006a5 0f 85 93 02 00
|
|
00 jne $L75107
|
|
; Line 263
|
|
006ab 6a 22 push 34 ; 00000022H
|
|
006ad 8d bd 28 ff ff
|
|
ff lea edi, DWORD PTR _mxl$75112[ebp+32]
|
|
006b3 59 pop ecx
|
|
006b4 c7 85 08 ff ff
|
|
ff a8 00 00 00 mov DWORD PTR _mxl$75112[ebp], 168 ; 000000a8H
|
|
006be 89 b5 0c ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+4], esi
|
|
006c4 89 b5 10 ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+8], esi
|
|
006ca 89 b5 14 ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+12], esi
|
|
006d0 89 b5 18 ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+16], esi
|
|
006d6 89 b5 1c ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+20], esi
|
|
006dc c7 85 20 ff ff
|
|
ff 07 00 00 00 mov DWORD PTR _mxl$75112[ebp+24], 7
|
|
006e6 89 b5 24 ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+28], esi
|
|
; Line 264
|
|
006ec 6a 03 push 3
|
|
006ee f3 ab rep stosd
|
|
006f0 8d 85 08 ff ff
|
|
ff lea eax, DWORD PTR _mxl$75112[ebp]
|
|
006f6 50 push eax
|
|
006f7 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
006fa ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineInfoA@12
|
|
00700 85 c0 test eax, eax
|
|
; Line 267
|
|
00702 0f 85 31 02 00
|
|
00 jne $L75342
|
|
; Line 270
|
|
00708 8b 75 08 mov esi, DWORD PTR _szPname$[ebp]
|
|
0070b 8d 85 e0 fe ff
|
|
ff lea eax, DWORD PTR _mxcaps$[ebp+8]
|
|
$L75335:
|
|
00711 8a 10 mov dl, BYTE PTR [eax]
|
|
00713 8a ca mov cl, dl
|
|
00715 3a 16 cmp dl, BYTE PTR [esi]
|
|
00717 75 1a jne SHORT $L75336
|
|
00719 84 c9 test cl, cl
|
|
0071b 74 12 je SHORT $L75337
|
|
0071d 8a 50 01 mov dl, BYTE PTR [eax+1]
|
|
00720 8a ca mov cl, dl
|
|
00722 3a 56 01 cmp dl, BYTE PTR [esi+1]
|
|
00725 75 0c jne SHORT $L75336
|
|
00727 40 inc eax
|
|
00728 40 inc eax
|
|
00729 46 inc esi
|
|
0072a 46 inc esi
|
|
0072b 84 c9 test cl, cl
|
|
0072d 75 e2 jne SHORT $L75335
|
|
$L75337:
|
|
0072f 33 c0 xor eax, eax
|
|
00731 eb 05 jmp SHORT $L75338
|
|
$L75336:
|
|
00733 1b c0 sbb eax, eax
|
|
00735 83 d8 ff sbb eax, -1
|
|
$L75338:
|
|
00738 85 c0 test eax, eax
|
|
; Line 273
|
|
0073a 0f 85 f9 01 00
|
|
00 jne $L75342
|
|
; Line 276
|
|
00740 21 85 48 fe ff
|
|
ff and DWORD PTR _mxc$75117[ebp+4], eax
|
|
00746 6a 23 push 35 ; 00000023H
|
|
00748 59 pop ecx
|
|
00749 8d bd 4c fe ff
|
|
ff lea edi, DWORD PTR _mxc$75117[ebp+8]
|
|
0074f c7 85 44 fe ff
|
|
ff 94 00 00 00 mov DWORD PTR _mxc$75117[ebp], 148 ; 00000094H
|
|
; Line 277
|
|
00759 6a 18 push 24 ; 00000018H
|
|
0075b f3 ab rep stosd
|
|
0075d 8b 85 14 ff ff
|
|
ff mov eax, DWORD PTR _mxl$75112[ebp+12]
|
|
00763 5f pop edi
|
|
00764 89 45 b4 mov DWORD PTR _mxlc$75119[ebp+4], eax
|
|
00767 8b 85 44 fe ff
|
|
ff mov eax, DWORD PTR _mxc$75117[ebp]
|
|
0076d 89 45 c0 mov DWORD PTR _mxlc$75119[ebp+16], eax
|
|
00770 8d 85 44 fe ff
|
|
ff lea eax, DWORD PTR _mxc$75117[ebp]
|
|
00776 89 45 c4 mov DWORD PTR _mxlc$75119[ebp+20], eax
|
|
; Line 278
|
|
00779 8d 45 b0 lea eax, DWORD PTR _mxlc$75119[ebp]
|
|
0077c 6a 02 push 2
|
|
0077e 33 f6 xor esi, esi
|
|
00780 50 push eax
|
|
00781 46 inc esi
|
|
00782 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
00785 89 7d b0 mov DWORD PTR _mxlc$75119[ebp], edi
|
|
00788 c7 45 b8 01 00
|
|
01 71 mov DWORD PTR _mxlc$75119[ebp+8], 1895890945 ; 71010001H
|
|
0078f 89 75 bc mov DWORD PTR _mxlc$75119[ebp+12], esi
|
|
00792 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineControlsA@12
|
|
00798 85 c0 test eax, eax
|
|
0079a 74 1e je SHORT $L75124
|
|
; Line 281
|
|
0079c 8d 45 b0 lea eax, DWORD PTR _mxlc$75119[ebp]
|
|
0079f 6a 02 push 2
|
|
007a1 50 push eax
|
|
007a2 c7 45 b8 01 00
|
|
01 70 mov DWORD PTR _mxlc$75119[ebp+8], 1879113729 ; 70010001H
|
|
007a9 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
007ac ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineControlsA@12
|
|
007b2 85 c0 test eax, eax
|
|
; Line 284
|
|
007b4 0f 85 7f 01 00
|
|
00 jne $L75342
|
|
$L75124:
|
|
; Line 287
|
|
007ba 8b 8d 54 fe ff
|
|
ff mov ecx, DWORD PTR _mxc$75117[ebp+16]
|
|
007c0 85 c9 test ecx, ecx
|
|
; Line 290
|
|
007c2 0f 84 71 01 00
|
|
00 je $L75342
|
|
; Line 293
|
|
007c8 8b 85 48 fe ff
|
|
ff mov eax, DWORD PTR _mxc$75117[ebp+4]
|
|
007ce 83 65 e0 00 and DWORD PTR _mxcd$75126[ebp+12], 0
|
|
007d2 89 7d d4 mov DWORD PTR _mxcd$75126[ebp], edi
|
|
007d5 89 45 d8 mov DWORD PTR _mxcd$75126[ebp+4], eax
|
|
007d8 33 c0 xor eax, eax
|
|
007da 8d 7d e4 lea edi, DWORD PTR _mxcd$75126[ebp+16]
|
|
007dd 89 75 dc mov DWORD PTR _mxcd$75126[ebp+8], esi
|
|
007e0 ab stosd
|
|
007e1 ab stosd
|
|
; Line 294
|
|
007e2 8d 04 c9 lea eax, DWORD PTR [ecx+ecx*8]
|
|
007e5 c1 e0 03 shl eax, 3
|
|
007e8 50 push eax
|
|
007e9 e8 00 00 00 00 call _malloc
|
|
; Line 298
|
|
007ee 8b 3d 00 00 00
|
|
00 mov edi, DWORD PTR __imp__mixerGetControlDetailsA@12
|
|
007f4 59 pop ecx
|
|
007f5 8b 8d 54 fe ff
|
|
ff mov ecx, DWORD PTR _mxc$75117[ebp+16]
|
|
007fb 89 45 f0 mov DWORD PTR _mxcdlts$75128[ebp], eax
|
|
007fe 89 45 e8 mov DWORD PTR _mxcd$75126[ebp+20], eax
|
|
00801 8d 45 d4 lea eax, DWORD PTR _mxcd$75126[ebp]
|
|
00804 56 push esi
|
|
00805 50 push eax
|
|
00806 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
00809 c7 45 e4 48 00
|
|
00 00 mov DWORD PTR _mxcd$75126[ebp+16], 72 ; 00000048H
|
|
00810 89 4d e0 mov DWORD PTR _mxcd$75126[ebp+12], ecx
|
|
00813 ff d7 call edi
|
|
00815 85 c0 test eax, eax
|
|
00817 74 05 je SHORT $L75133
|
|
; Line 300
|
|
00819 ff 75 f0 push DWORD PTR _mxcdlts$75128[ebp]
|
|
; Line 302
|
|
0081c eb 38 jmp SHORT $L75344
|
|
$L75133:
|
|
; Line 305
|
|
0081e 8b 85 54 fe ff
|
|
ff mov eax, DWORD PTR _mxc$75117[ebp+16]
|
|
00824 c1 e0 02 shl eax, 2
|
|
00827 50 push eax
|
|
00828 e8 00 00 00 00 call _malloc
|
|
0082d 8b f0 mov esi, eax
|
|
; Line 307
|
|
0082f 8b 85 54 fe ff
|
|
ff mov eax, DWORD PTR _mxc$75117[ebp+16]
|
|
00835 59 pop ecx
|
|
00836 89 45 e0 mov DWORD PTR _mxcd$75126[ebp+12], eax
|
|
; Line 309
|
|
00839 8d 45 d4 lea eax, DWORD PTR _mxcd$75126[ebp]
|
|
0083c 6a 00 push 0
|
|
0083e 50 push eax
|
|
0083f 89 75 d0 mov DWORD PTR _mxcdbls$75134[ebp], esi
|
|
00842 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
00845 c7 45 e4 04 00
|
|
00 00 mov DWORD PTR _mxcd$75126[ebp+16], 4
|
|
0084c 89 75 e8 mov DWORD PTR _mxcd$75126[ebp+20], esi
|
|
0084f ff d7 call edi
|
|
00851 85 c0 test eax, eax
|
|
00853 74 0b je SHORT $L75139
|
|
; Line 311
|
|
00855 56 push esi
|
|
$L75344:
|
|
00856 e8 00 00 00 00 call _free
|
|
; Line 313
|
|
0085b e9 d8 00 00 00 jmp $L75343
|
|
$L75139:
|
|
; Line 317
|
|
00860 8b 85 0c ff ff
|
|
ff mov eax, DWORD PTR _mxl$75112[ebp+4]
|
|
00866 8b 8d 28 ff ff
|
|
ff mov ecx, DWORD PTR _mxl$75112[ebp+32]
|
|
0086c 89 45 c8 mov DWORD PTR _dwDestination$75141[ebp], eax
|
|
; Line 319
|
|
0086f 33 c0 xor eax, eax
|
|
00871 85 c9 test ecx, ecx
|
|
00873 89 4d cc mov DWORD PTR _dwConnections$75140[ebp], ecx
|
|
00876 89 45 f4 mov DWORD PTR _j$75142[ebp], eax
|
|
00879 0f 86 aa 00 00
|
|
00 jbe $L75145
|
|
$L75143:
|
|
; Line 321
|
|
0087f 8b 4d c8 mov ecx, DWORD PTR _dwDestination$75141[ebp]
|
|
; Line 322
|
|
00882 89 85 10 ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+8], eax
|
|
; Line 323
|
|
00888 8d 85 08 ff ff
|
|
ff lea eax, DWORD PTR _mxl$75112[ebp]
|
|
0088e 6a 01 push 1
|
|
00890 50 push eax
|
|
00891 89 8d 0c ff ff
|
|
ff mov DWORD PTR _mxl$75112[ebp+4], ecx
|
|
00897 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
0089a ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetLineInfoA@12
|
|
008a0 85 c0 test eax, eax
|
|
008a2 75 75 jne SHORT $L75144
|
|
; Line 324
|
|
008a4 33 d2 xor edx, edx
|
|
008a6 39 95 54 fe ff
|
|
ff cmp DWORD PTR _mxc$75117[ebp+16], edx
|
|
008ac 76 6b jbe SHORT $L75144
|
|
008ae 8b 45 f0 mov eax, DWORD PTR _mxcdlts$75128[ebp]
|
|
$L75149:
|
|
; Line 326
|
|
008b1 8b 08 mov ecx, DWORD PTR [eax]
|
|
008b3 3b 8d 14 ff ff
|
|
ff cmp ecx, DWORD PTR _mxl$75112[ebp+12]
|
|
008b9 74 0e je SHORT $L75331
|
|
008bb 42 inc edx
|
|
008bc 83 c0 48 add eax, 72 ; 00000048H
|
|
008bf 3b 95 54 fe ff
|
|
ff cmp edx, DWORD PTR _mxc$75117[ebp+16]
|
|
008c5 72 ea jb SHORT $L75149
|
|
008c7 eb 50 jmp SHORT $L75144
|
|
$L75331:
|
|
; Line 328
|
|
008c9 8d bd 40 ff ff
|
|
ff lea edi, DWORD PTR _mxl$75112[ebp+56]
|
|
008cf 83 c9 ff or ecx, -1
|
|
008d2 33 c0 xor eax, eax
|
|
008d4 f2 ae repne scasb
|
|
008d6 f7 d1 not ecx
|
|
008d8 2b f9 sub edi, ecx
|
|
008da 8b f7 mov esi, edi
|
|
008dc 8b 7d 0c mov edi, DWORD PTR _str$[ebp]
|
|
008df 8b d9 mov ebx, ecx
|
|
008e1 83 c9 ff or ecx, -1
|
|
008e4 f2 ae repne scasb
|
|
008e6 8b cb mov ecx, ebx
|
|
008e8 4f dec edi
|
|
008e9 c1 e9 02 shr ecx, 2
|
|
008ec f3 a5 rep movsd
|
|
008ee 8b cb mov ecx, ebx
|
|
; Line 332
|
|
008f0 8b 1d 00 00 00
|
|
00 mov ebx, DWORD PTR __imp__mixerClose@4
|
|
008f6 83 e1 03 and ecx, 3
|
|
008f9 f3 a4 rep movsb
|
|
008fb 8b 7d 0c mov edi, DWORD PTR _str$[ebp]
|
|
008fe 83 c9 ff or ecx, -1
|
|
00901 f2 ae repne scasb
|
|
00903 4f dec edi
|
|
00904 be 00 00 00 00 mov esi, OFFSET FLAT:$SG75153
|
|
00909 66 a5 movsw
|
|
0090b 8b 75 d0 mov esi, DWORD PTR _mxcdbls$75134[ebp]
|
|
0090e 39 04 96 cmp DWORD PTR [esi+edx*4], eax
|
|
00911 74 06 je SHORT $L75144
|
|
00913 8b 45 f4 mov eax, DWORD PTR _j$75142[ebp]
|
|
00916 89 45 ec mov DWORD PTR _nRet$[ebp], eax
|
|
$L75144:
|
|
00919 8b 45 f4 mov eax, DWORD PTR _j$75142[ebp]
|
|
0091c 40 inc eax
|
|
0091d 3b 45 cc cmp eax, DWORD PTR _dwConnections$75140[ebp]
|
|
00920 89 45 f4 mov DWORD PTR _j$75142[ebp], eax
|
|
00923 0f 82 56 ff ff
|
|
ff jb $L75143
|
|
$L75145:
|
|
; Line 339
|
|
00929 56 push esi
|
|
0092a e8 00 00 00 00 call _free
|
|
; Line 340
|
|
0092f ff 75 f0 push DWORD PTR _mxcdlts$75128[ebp]
|
|
00932 e8 00 00 00 00 call _free
|
|
00937 59 pop ecx
|
|
$L75343:
|
|
00938 59 pop ecx
|
|
$L75342:
|
|
; Line 341
|
|
00939 ff 75 fc push DWORD PTR _hMixer$[ebp]
|
|
0093c ff d3 call ebx
|
|
$L75107:
|
|
0093e ff 45 f8 inc DWORD PTR _i$[ebp]
|
|
00941 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__mixerGetNumDevs@0
|
|
00947 39 45 f8 cmp DWORD PTR _i$[ebp], eax
|
|
0094a 0f 82 27 fd ff
|
|
ff jb $L75340
|
|
00950 5b pop ebx
|
|
$L75108:
|
|
; Line 343
|
|
00951 8b 45 ec mov eax, DWORD PTR _nRet$[ebp]
|
|
00954 5f pop edi
|
|
00955 eb 03 jmp SHORT $L75099
|
|
$L75101:
|
|
; Line 250
|
|
00957 83 c8 ff or eax, -1
|
|
$L75099:
|
|
0095a 5e pop esi
|
|
; Line 344
|
|
0095b c9 leave
|
|
0095c c2 08 00 ret 8
|
|
?EnumerateInputLines@CAudio@@QAEHPAD0@Z ENDP ; CAudio::EnumerateInputLines
|
|
; Function compile flags: /Ogsawpy
|
|
_pwfe$ = 8
|
|
?SetDeviceType@CAudio@@QAEXPAUtWAVEFORMATEX@@@Z PROC NEAR ; CAudio::SetDeviceType
|
|
; _this$ = ecx
|
|
; Line 349
|
|
0095f 8b 4c 24 04 mov ecx, DWORD PTR _pwfe$[esp-4]
|
|
00963 57 push edi
|
|
00964 33 c0 xor eax, eax
|
|
00966 8b f9 mov edi, ecx
|
|
00968 ab stosd
|
|
00969 ab stosd
|
|
0096a ab stosd
|
|
0096b ab stosd
|
|
0096c 66 ab stosw
|
|
; Line 356
|
|
0096e 66 83 61 10 00 and WORD PTR [ecx+16], 0
|
|
00973 66 c7 01 01 00 mov WORD PTR [ecx], 1
|
|
00978 c7 41 04 40 1f
|
|
00 00 mov DWORD PTR [ecx+4], 8000 ; 00001f40H
|
|
0097f 66 c7 41 0e 10
|
|
00 mov WORD PTR [ecx+14], 16 ; 00000010H
|
|
00985 66 c7 41 02 01
|
|
00 mov WORD PTR [ecx+2], 1
|
|
0098b 66 c7 41 0c 02
|
|
00 mov WORD PTR [ecx+12], 2
|
|
00991 c7 41 08 80 3e
|
|
00 00 mov DWORD PTR [ecx+8], 16000 ; 00003e80H
|
|
00998 5f pop edi
|
|
; Line 357
|
|
00999 c2 04 00 ret 4
|
|
?SetDeviceType@CAudio@@QAEXPAUtWAVEFORMATEX@@@Z ENDP ; CAudio::SetDeviceType
|
|
_TEXT ENDS
|
|
EXTRN __imp__waveOutGetNumDevs@0:NEAR
|
|
EXTRN __imp__waveOutOpen@24:NEAR
|
|
EXTRN __imp__waveOutPrepareHeader@12:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_waveform$ = -20
|
|
?InitializeWaveOut@CAudio@@AAE_NXZ PROC NEAR ; CAudio::InitializeWaveOut
|
|
; _this$ = ecx
|
|
; Line 360
|
|
0099c 83 ec 14 sub esp, 20 ; 00000014H
|
|
0099f 53 push ebx
|
|
009a0 55 push ebp
|
|
009a1 56 push esi
|
|
009a2 57 push edi
|
|
009a3 8b f1 mov esi, ecx
|
|
; Line 361
|
|
009a5 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutGetNumDevs@0
|
|
009ab 85 c0 test eax, eax
|
|
; Line 362
|
|
009ad 74 4a je SHORT $L75351
|
|
; Line 364
|
|
009af 6a 02 push 2
|
|
009b1 8d 56 10 lea edx, DWORD PTR [esi+16]
|
|
009b4 5b pop ebx
|
|
$L75165:
|
|
; Line 365
|
|
009b5 8b 4e 04 mov ecx, DWORD PTR [esi+4]
|
|
009b8 8b 3a mov edi, DWORD PTR [edx]
|
|
009ba 8b e9 mov ebp, ecx
|
|
009bc 33 c0 xor eax, eax
|
|
009be c1 e9 02 shr ecx, 2
|
|
009c1 f3 ab rep stosd
|
|
009c3 8b cd mov ecx, ebp
|
|
009c5 83 c2 04 add edx, 4
|
|
009c8 83 e1 03 and ecx, 3
|
|
009cb 4b dec ebx
|
|
009cc f3 aa rep stosb
|
|
009ce 75 e5 jne SHORT $L75165
|
|
; Line 368
|
|
009d0 8d 44 24 10 lea eax, DWORD PTR _waveform$[esp+36]
|
|
009d4 8b ce mov ecx, esi
|
|
009d6 50 push eax
|
|
009d7 e8 00 00 00 00 call ?SetDeviceType@CAudio@@QAEXPAUtWAVEFORMATEX@@@Z ; CAudio::SetDeviceType
|
|
; Line 371
|
|
009dc 33 c0 xor eax, eax
|
|
009de 8d 5e 44 lea ebx, DWORD PTR [esi+68]
|
|
009e1 50 push eax
|
|
009e2 50 push eax
|
|
009e3 50 push eax
|
|
009e4 8d 44 24 1c lea eax, DWORD PTR _waveform$[esp+48]
|
|
009e8 50 push eax
|
|
009e9 68 ff ff 00 00 push 65535 ; 0000ffffH
|
|
009ee 53 push ebx
|
|
009ef ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutOpen@24
|
|
; Line 372
|
|
009f5 85 c0 test eax, eax
|
|
009f7 74 04 je SHORT $L75174
|
|
$L75351:
|
|
; Line 373
|
|
009f9 32 c0 xor al, al
|
|
009fb eb 32 jmp SHORT $L75162
|
|
$L75174:
|
|
; Line 375
|
|
009fd 6a 02 push 2
|
|
009ff 8d 7e 3c lea edi, DWORD PTR [esi+60]
|
|
00a02 5d pop ebp
|
|
$L75175:
|
|
; Line 377
|
|
00a03 8b 07 mov eax, DWORD PTR [edi]
|
|
00a05 8b 4f d4 mov ecx, DWORD PTR [edi-44]
|
|
; Line 381
|
|
00a08 6a 20 push 32 ; 00000020H
|
|
00a0a 50 push eax
|
|
00a0b ff 33 push DWORD PTR [ebx]
|
|
00a0d 89 08 mov DWORD PTR [eax], ecx
|
|
00a0f 8b 4e 04 mov ecx, DWORD PTR [esi+4]
|
|
00a12 89 48 04 mov DWORD PTR [eax+4], ecx
|
|
00a15 83 60 10 00 and DWORD PTR [eax+16], 0
|
|
00a19 83 60 14 00 and DWORD PTR [eax+20], 0
|
|
00a1d ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveOutPrepareHeader@12
|
|
00a23 83 c7 04 add edi, 4
|
|
00a26 4d dec ebp
|
|
00a27 75 da jne SHORT $L75175
|
|
; Line 384
|
|
00a29 c6 46 49 01 mov BYTE PTR [esi+73], 1
|
|
; Line 385
|
|
00a2d b0 01 mov al, 1
|
|
$L75162:
|
|
00a2f 5f pop edi
|
|
00a30 5e pop esi
|
|
00a31 5d pop ebp
|
|
00a32 5b pop ebx
|
|
; Line 386
|
|
00a33 83 c4 14 add esp, 20 ; 00000014H
|
|
00a36 c3 ret 0
|
|
?InitializeWaveOut@CAudio@@AAE_NXZ ENDP ; CAudio::InitializeWaveOut
|
|
_TEXT ENDS
|
|
EXTRN __imp__GetMessageA@16:NEAR
|
|
EXTRN __imp__TranslateMessage@4:NEAR
|
|
EXTRN __imp__DispatchMessageA@4:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_Msg$ = -28
|
|
_lparam$ = 8
|
|
?waveInCallBack@CAudio@@CGKPAX@Z PROC NEAR ; CAudio::waveInCallBack
|
|
; Line 390
|
|
00a37 55 push ebp
|
|
00a38 8b ec mov ebp, esp
|
|
00a3a 83 ec 1c sub esp, 28 ; 0000001cH
|
|
00a3d 53 push ebx
|
|
00a3e 56 push esi
|
|
; Line 394
|
|
00a3f 33 db xor ebx, ebx
|
|
00a41 57 push edi
|
|
00a42 8b 3d 00 00 00
|
|
00 mov edi, DWORD PTR __imp__GetMessageA@16
|
|
00a48 53 push ebx
|
|
00a49 53 push ebx
|
|
00a4a 8d 45 e4 lea eax, DWORD PTR _Msg$[ebp]
|
|
00a4d 53 push ebx
|
|
00a4e 50 push eax
|
|
00a4f ff d7 call edi
|
|
00a51 85 c0 test eax, eax
|
|
00a53 74 66 je SHORT $L75355
|
|
00a55 8b 75 08 mov esi, DWORD PTR _lparam$[ebp]
|
|
$L75187:
|
|
; Line 396
|
|
00a58 81 7d e8 c0 03
|
|
00 00 cmp DWORD PTR _Msg$[ebp+4], 960 ; 000003c0H
|
|
00a5f 75 30 jne SHORT $L75192
|
|
; Line 399
|
|
00a61 ff 76 24 push DWORD PTR [esi+36]
|
|
00a64 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__SetEvent@4
|
|
; Line 401
|
|
00a6a 6a ff push -1
|
|
00a6c ff 76 28 push DWORD PTR [esi+40]
|
|
00a6f ff 15 00 00 00
|
|
00 call DWORD PTR __imp__WaitForSingleObject@8
|
|
; Line 403
|
|
00a75 33 c0 xor eax, eax
|
|
; Line 405
|
|
00a77 6a 20 push 32 ; 00000020H
|
|
00a79 40 inc eax
|
|
00a7a 2b 46 1c sub eax, DWORD PTR [esi+28]
|
|
00a7d 89 46 1c mov DWORD PTR [esi+28], eax
|
|
00a80 ff 74 86 34 push DWORD PTR [esi+eax*4+52]
|
|
00a84 ff 76 18 push DWORD PTR [esi+24]
|
|
00a87 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__waveInAddBuffer@12
|
|
; Line 406
|
|
00a8d 85 c0 test eax, eax
|
|
00a8f 75 33 jne SHORT $L75354
|
|
$L75192:
|
|
; Line 412
|
|
00a91 81 7d e8 bf 03
|
|
00 00 cmp DWORD PTR _Msg$[ebp+4], 959 ; 000003bfH
|
|
00a98 74 21 je SHORT $L75355
|
|
; Line 415
|
|
00a9a 8d 45 e4 lea eax, DWORD PTR _Msg$[ebp]
|
|
00a9d 50 push eax
|
|
00a9e ff 15 00 00 00
|
|
00 call DWORD PTR __imp__TranslateMessage@4
|
|
; Line 416
|
|
00aa4 8d 45 e4 lea eax, DWORD PTR _Msg$[ebp]
|
|
00aa7 50 push eax
|
|
00aa8 ff 15 00 00 00
|
|
00 call DWORD PTR __imp__DispatchMessageA@4
|
|
00aae 53 push ebx
|
|
00aaf 53 push ebx
|
|
00ab0 8d 45 e4 lea eax, DWORD PTR _Msg$[ebp]
|
|
00ab3 53 push ebx
|
|
00ab4 50 push eax
|
|
00ab5 ff d7 call edi
|
|
00ab7 85 c0 test eax, eax
|
|
00ab9 75 9d jne SHORT $L75187
|
|
$L75355:
|
|
; Line 419
|
|
00abb 33 c0 xor eax, eax
|
|
$L75182:
|
|
00abd 5f pop edi
|
|
00abe 5e pop esi
|
|
00abf 5b pop ebx
|
|
; Line 420
|
|
00ac0 c9 leave
|
|
00ac1 c2 04 00 ret 4
|
|
$L75354:
|
|
; Line 408
|
|
00ac4 83 c8 ff or eax, -1
|
|
00ac7 eb f4 jmp SHORT $L75182
|
|
?waveInCallBack@CAudio@@CGKPAX@Z ENDP ; CAudio::waveInCallBack
|
|
_TEXT ENDS
|
|
PUBLIC ?Compress@CAudio@@QAEHPAD0H@Z ; CAudio::Compress
|
|
EXTRN _va_g729a_encoder:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_pBuf$ = 8
|
|
_pDstBuf$ = 12
|
|
_nLen$ = 16
|
|
?Compress@CAudio@@QAEHPAD0H@Z PROC NEAR ; CAudio::Compress
|
|
; _this$ = ecx
|
|
; Line 430
|
|
00ac9 8b 44 24 0c mov eax, DWORD PTR _nLen$[esp-4]
|
|
00acd 56 push esi
|
|
00ace d1 e8 shr eax, 1
|
|
00ad0 33 f6 xor esi, esi
|
|
00ad2 57 push edi
|
|
00ad3 8b 7c 24 0c mov edi, DWORD PTR _pBuf$[esp+4]
|
|
; Line 431
|
|
00ad7 85 c0 test eax, eax
|
|
00ad9 7e 28 jle SHORT $L75208
|
|
00adb 53 push ebx
|
|
00adc 6a 50 push 80 ; 00000050H
|
|
00ade 48 dec eax
|
|
00adf 33 d2 xor edx, edx
|
|
00ae1 59 pop ecx
|
|
00ae2 f7 f1 div ecx
|
|
00ae4 8b d8 mov ebx, eax
|
|
00ae6 43 inc ebx
|
|
$L75207:
|
|
00ae7 8b 44 24 14 mov eax, DWORD PTR _pDstBuf$[esp+8]
|
|
00aeb 03 c6 add eax, esi
|
|
; Line 433
|
|
00aed 50 push eax
|
|
00aee 57 push edi
|
|
00aef e8 00 00 00 00 call _va_g729a_encoder
|
|
00af4 59 pop ecx
|
|
; Line 435
|
|
00af5 81 c7 a0 00 00
|
|
00 add edi, 160 ; 000000a0H
|
|
; Line 437
|
|
00afb 83 c6 0a add esi, 10 ; 0000000aH
|
|
00afe 4b dec ebx
|
|
00aff 59 pop ecx
|
|
00b00 75 e5 jne SHORT $L75207
|
|
00b02 5b pop ebx
|
|
$L75208:
|
|
; Line 440
|
|
00b03 8b c6 mov eax, esi
|
|
00b05 5f pop edi
|
|
00b06 5e pop esi
|
|
; Line 441
|
|
00b07 c2 0c 00 ret 12 ; 0000000cH
|
|
?Compress@CAudio@@QAEHPAD0H@Z ENDP ; CAudio::Compress
|
|
_TEXT ENDS
|
|
PUBLIC ?DeCompress@CAudio@@QAEHPAD0H@Z ; CAudio::DeCompress
|
|
EXTRN _va_g729a_decoder:NEAR
|
|
; Function compile flags: /Ogsawpy
|
|
_TEXT SEGMENT
|
|
_pBuf$ = 8
|
|
_pDstBuf$ = 12
|
|
_nLen$ = 16
|
|
_pBDstBuf$ = 8
|
|
?DeCompress@CAudio@@QAEHPAD0H@Z PROC NEAR ; CAudio::DeCompress
|
|
; _this$ = ecx
|
|
; Line 444
|
|
00b0a 55 push ebp
|
|
00b0b 8b ec mov ebp, esp
|
|
; Line 447
|
|
00b0d 8b 45 0c mov eax, DWORD PTR _pDstBuf$[ebp]
|
|
00b10 53 push ebx
|
|
00b11 8b 5d 08 mov ebx, DWORD PTR _pBuf$[ebp]
|
|
00b14 89 45 08 mov DWORD PTR _pBDstBuf$[ebp], eax
|
|
; Line 450
|
|
00b17 8b 45 10 mov eax, DWORD PTR _nLen$[ebp]
|
|
00b1a 57 push edi
|
|
00b1b 33 ff xor edi, edi
|
|
00b1d 85 c0 test eax, eax
|
|
00b1f 7e 2e jle SHORT $L75223
|
|
00b21 56 push esi
|
|
00b22 6a 0a push 10 ; 0000000aH
|
|
00b24 48 dec eax
|
|
00b25 33 d2 xor edx, edx
|
|
00b27 59 pop ecx
|
|
00b28 f7 f1 div ecx
|
|
00b2a 8b f0 mov esi, eax
|
|
00b2c 46 inc esi
|
|
00b2d 8d 3c b6 lea edi, DWORD PTR [esi+esi*4]
|
|
00b30 c1 e7 04 shl edi, 4
|
|
$L75222:
|
|
; Line 452
|
|
00b33 6a 00 push 0
|
|
00b35 ff 75 08 push DWORD PTR _pBDstBuf$[ebp]
|
|
00b38 53 push ebx
|
|
00b39 e8 00 00 00 00 call _va_g729a_decoder
|
|
; Line 457
|
|
00b3e 81 45 08 a0 00
|
|
00 00 add DWORD PTR _pBDstBuf$[ebp], 160 ; 000000a0H
|
|
00b45 83 c4 0c add esp, 12 ; 0000000cH
|
|
00b48 83 c3 0a add ebx, 10 ; 0000000aH
|
|
00b4b 4e dec esi
|
|
00b4c 75 e5 jne SHORT $L75222
|
|
00b4e 5e pop esi
|
|
$L75223:
|
|
; Line 459
|
|
00b4f 8d 04 3f lea eax, DWORD PTR [edi+edi]
|
|
00b52 5f pop edi
|
|
00b53 5b pop ebx
|
|
; Line 460
|
|
00b54 5d pop ebp
|
|
00b55 c2 0c 00 ret 12 ; 0000000cH
|
|
?DeCompress@CAudio@@QAEHPAD0H@Z ENDP ; CAudio::DeCompress
|
|
_TEXT ENDS
|
|
END
|