2024-06-23 17:36:53 +08:00

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