; 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