Function at 0x1030f40
Capabilities:
Capture microphone audio

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x10372d8]
push ebx
push esi
mov ebx, ecx
mov ecx, dword [0x10376e0]
push edi
mov dword [ebp - 4], eax
call fcn.0102955d
mov esi, eax
mov eax, 0x1f40
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov eax, dword [ebx + 0x24]
xor edi, edi
cmp dword [ebx + 0xc], edi
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 8]
mov word [ebp - 0x34], 1
mov word [ebp - 0x32], 1
mov word [ebp - 0x28], 1
mov word [ebp - 0x26], 8
mov word [ebp - 0x24], di
mov dword [ebx + 0x24], eax
je 0x10310fc
cmp dword [ebx + 8], edi
je 0x10310fc
cmp dword [0x10376bc], edi
jne 0x1030fbe
call fcn.01028e3c
test eax, eax
jl 0x1031152
cmp esi, edi
je 0x1031060
push dword [esi + 4]
mov ecx, dword [0x1037418]
push dword [esi]
call fcn.0101d9dc
cmp eax, edi
je 0x1031060
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [0x1037418]
push eax
call fcn.0101e0ca
test eax, eax
je 0x1030ffe
mov dword [ebp + 8], edi
xor eax, eax
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
push 4
pop ecx
lea edi, [ebp - 0x14]
mov esi, 0x10045ec
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x1031012
and dword [ebp + 8], eax
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov ecx, ebx
movsd dword es:[edi], dword [esi]
call fcn.01030bc5
push eax
call fcn.0102e1de
test ax, ax
jne 0x1031033
push 0x20
pop eax
mov ecx, dword [ebx + 4]
mov edx, dword [ecx]
push eax
sub esp, 0x10
mov edi, esp
lea esi, [ebp - 0x14]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ecx
movsd dword es:[edi], dword [esi]
call dword [edx + 0x40]
xor esi, esi
cmp dword [ebp + 8], esi
je 0x1031059
cmp eax, esi
jl 0x1031059
inc esi
xor edi, edi
jmp 0x1031092
xor edi, edi
jmp 0x10310fe
call fcn.0102e096
push eax
call fcn.0102e1de
cmp ax, di
jne 0x1031073
push 0x20
pop eax
mov esi, dword [ebx + 4]
mov edi, dword [esi]
push eax
call fcn.0102e096
push eax
push esi
call dword [edi + 0x50]
xor ecx, ecx
test eax, eax
setge cl
xor edi, edi
mov esi, ecx
cmp esi, edi
je 0x10310fe
cmp dword [ebx + 0x20], edi
jne 0x10310fe
call dword [sym.imp.WINMM.dll_waveInGetNumDevs]
test eax, eax
je 0x10310fc
mov ecx, dword [0x10373f8]
call fcn.01013911
test eax, eax
jne 0x10310fe
push edi
push edi
push edi
lea eax, [ebp - 0x34]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x20]
push eax
call dword [sym.imp.WINMM.dll_waveInOpen]
test eax, eax
jne 0x10310fc
push dword [ebp - 0x20]
call dword [sym.imp.WINMM.dll_waveInClose]
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
test eax, eax
je 0x10310fe
push edi
push edi
push edi
lea eax, [ebp - 0x34]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x1c]
push eax
call dword [sym.imp.WINMM.dll_waveOutOpen]
test eax, eax
jne 0x10310fc
push dword [ebp - 0x1c]
call dword [sym.imp.WINMM.dll_waveOutClose]
jmp 0x10310fe
xor esi, esi
cmp dword [ebx + 0xc], edi
je 0x1031137
cmp dword [ebx + 8], edi
je 0x1031137
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x1031118
xor esi, esi
cmp dword [ebx + 0x20], esi
je 0x103113a
cmp dword [ebp + 0xc], 0xffffffff
je 0x1031132
push dword [ebp + 0xc]
mov ecx, dword [0x103741c]
push esi
call fcn.010228ed
mov dword [ebx + 0x20], esi
jmp 0x103113a
mov dword [ebx + 0x20], edi
mov ecx, dword [0x1037d1c]
cmp ecx, edi
je 0x1031152
mov ebx, dword [ebx + 0x24]
cmp ebx, dword [ebp - 0x18]
je 0x1031152
push ebx
call fcn.010328e6
mov ecx, dword [ebp - 4]
call fcn.01034242
pop edi
pop esi
pop ebx
leave
ret 8