Function at 0x40a5ac
Capabilities:
Capture microphone audio

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0
push esi
mov esi, dword [ebp + 8]
push str.PreferredOnly
push str.Playback
push str.Record
push str.SoftwareMicrosoftMultimediaSound_Mapper
push 0x80000001
push dword [ebp + 0xc]
push esi
call fcn.0040a09c
add esp, 0x1c
cmp dword [esi], 0
jne 0x40a7e0
push ebx
push edi
push 0x12
lea eax, [ebp - 0x18]
push 0
push eax
call fcn.00410eb0
mov eax, 0x2b11
add esp, 0xc
mov word [ebp - 0x18], 1
mov word [ebp - 0x16], 1
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
mov word [ebp - 0xc], 1
mov word [ebp - 0xa], 8
call dword [sym.imp.WINMM.dll_waveInGetNumDevs]
mov ebx, dword [sym.imp.WINMM.dll_waveInGetDevCapsA]
mov edi, eax
xor esi, esi
test edi, edi
jbe 0x40a663
lea eax, [ebp - 0x6c]
push 0x30
push eax
push esi
call ebx
test eax, eax
jne 0x40a656
lea eax, [ebp - 0x64]
push 0x20
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x10
push eax
call fcn.004121b0
add esp, 0xc
test eax, eax
je 0x40a65b
inc esi
cmp esi, edi
jb 0x40a630
cmp esi, edi
jb 0x40a6f0
xor esi, esi
push 0x21
lea eax, [ebp - 0x3c]
push esi
push eax
call fcn.00410eb0
add esp, 0xc
test edi, edi
jbe 0x40a6db
lea eax, [ebp - 0x6c]
push 0x30
push eax
push esi
call ebx
test eax, eax
jne 0x40a6b2
cmp byte [ebp - 0x3c], al
jne 0x40a69a
lea eax, [ebp - 0x64]
push 0x21
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp + 8]
push esi
push eax
call dword [sym.imp.WINMM.dll_waveInOpen]
test eax, eax
je 0x40a6b9
inc esi
cmp esi, edi
jb 0x40a678
jmp 0x40a6d7
push dword [ebp + 8]
call dword [sym.imp.WINMM.dll_waveInClose]
lea eax, [ebp - 0x64]
push 0x20
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x10
push eax
call fcn.00411e70
add esp, 0xc
cmp esi, edi
jb 0x40a6f0
lea eax, [ebp - 0x3c]
push 0x20
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x10
push eax
call fcn.00411e70
add esp, 0xc
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
mov ebx, dword [sym.imp.WINMM.dll_waveOutGetDevCapsA]
mov edi, eax
xor esi, esi
test edi, edi
jbe 0x40a73d
lea eax, [ebp - 0xa0]
push 0x34
push eax
push esi
call ebx
test eax, eax
jne 0x40a730
lea eax, [ebp - 0x98]
push 0x20
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x31
push eax
call fcn.004121b0
add esp, 0xc
test eax, eax
je 0x40a735
inc esi
cmp esi, edi
jb 0x40a704
cmp esi, edi
jb 0x40a7d3
xor esi, esi
push 0x21
lea eax, [ebp - 0x3c]
push esi
push eax
call fcn.00410eb0
add esp, 0xc
test edi, edi
jbe 0x40a7be
lea eax, [ebp - 0xa0]
push 0x34
push eax
push esi
call ebx
test eax, eax
jne 0x40a792
cmp byte [ebp - 0x3c], al
jne 0x40a77a
lea eax, [ebp - 0x98]
push 0x21
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
xor eax, eax
push eax
push eax
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 4]
push esi
push eax
call dword [sym.imp.WINMM.dll_waveOutOpen]
test eax, eax
je 0x40a799
inc esi
cmp esi, edi
jb 0x40a752
jmp 0x40a7ba
push dword [ebp - 4]
call dword [sym.imp.WINMM.dll_waveOutClose]
lea eax, [ebp - 0x98]
push 0x20
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x31
push eax
call fcn.00411e70
add esp, 0xc
cmp esi, edi
jb 0x40a7d3
lea eax, [ebp - 0x3c]
push 0x20
push eax
mov eax, dword [ebp + 0xc]
add eax, 0x31
push eax
call fcn.00411e70
add esp, 0xc
mov eax, dword [ebp + 0xc]
pop edi
pop ebx
and byte [eax + 0x30], 0
and byte [eax + 0x51], 0
pop esi
leave
ret