Function at 0x1031731
Capabilities:
Capture microphone audio

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x10372b8]
push ebx
push esi
mov ebx, ecx
mov ecx, dword [0x10376c0]
push edi
mov dword [ebp - 4], eax
call fcn.010299bc
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 0x10318ed
cmp dword [ebx + 8], edi
je 0x10318ed
cmp dword [0x103769c], edi
jne 0x10317af
call fcn.010292bb
test eax, eax
jl 0x1031943
cmp esi, edi
je 0x1031851
push dword [esi + 4]
mov ecx, dword [0x10373f8]
push dword [esi]
call fcn.0101de89
cmp eax, edi
je 0x1031851
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [0x10373f8]
push eax
call fcn.0101e5a2
test eax, eax
je 0x10317ef
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, 0x1004654
xor eax, eax
repe cmpsd dword [esi], dword es:[edi]
jne 0x1031803
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.010313b6
push eax
call fcn.0102e6db
test ax, ax
jne 0x1031824
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 0x103184a
cmp eax, esi
jl 0x103184a
inc esi
xor edi, edi
jmp 0x1031883
xor edi, edi
jmp 0x10318ef
call fcn.0102e593
push eax
call fcn.0102e6db
cmp ax, di
jne 0x1031864
push 0x20
pop eax
mov esi, dword [ebx + 4]
mov edi, dword [esi]
push eax
call fcn.0102e593
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 0x10318ef
cmp dword [ebx + 0x20], edi
jne 0x10318ef
call dword [sym.imp.WINMM.dll_waveInGetNumDevs]
test eax, eax
je 0x10318ed
mov ecx, dword [0x10373d8]
call fcn.01013d2d
test eax, eax
jne 0x10318ef
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 0x10318ed
push dword [ebp - 0x20]
call dword [sym.imp.WINMM.dll_waveInClose]
call dword [sym.imp.WINMM.dll_waveOutGetNumDevs]
test eax, eax
je 0x10318ef
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 0x10318ed
push dword [ebp - 0x1c]
call dword [sym.imp.WINMM.dll_waveOutClose]
jmp 0x10318ef
xor esi, esi
cmp dword [ebx + 0xc], edi
je 0x1031928
cmp dword [ebx + 8], edi
je 0x1031928
mov eax, dword [ebx + 4]
mov ecx, dword [eax]
push esi
push eax
call dword [ecx + 0x2c]
test eax, eax
jge 0x1031909
xor esi, esi
cmp dword [ebx + 0x20], esi
je 0x103192b
cmp dword [ebp + 0xc], 0xffffffff
je 0x1031923
push dword [ebp + 0xc]
mov ecx, dword [0x10373fc]
push esi
call fcn.01022d83
mov dword [ebx + 0x20], esi
jmp 0x103192b
mov dword [ebx + 0x20], edi
mov ecx, dword [0x1037cfc]
cmp ecx, edi
je 0x1031943
mov ebx, dword [ebx + 0x24]
cmp ebx, dword [ebp - 0x18]
je 0x1031943
push ebx
call fcn.0103311e
mov ecx, dword [ebp - 4]
call fcn.01034a90
pop edi
pop esi
pop ebx
leave
ret 8