Function at 0x401588
Capabilities:
Capture microphone audio

Disassembly:
push ebp
mov ebp, esp
push ebx
sub esp, 0x54
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
lea ebx, [edx + eax]
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call sym.operator_new___unsigned_int_
mov dword [ebx], eax
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
test eax, eax
jne 0x4015f4
mov dword [esp + 4], str.Erreur_dallocation_de_memoire_pour_le_buffer
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
mov eax, 1
jmp 0x401896
mov dword [ebp - 0xc], 0
mov eax, dword [ebp + 0x18]
mov edx, sym.__Z14waveInCallbackP9HWAVEIN__jmmm_20
mov dword [esp + 0x14], 0x30000
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xffffffff
lea eax, [ebp - 0xc]
mov dword [esp], eax
call sym._waveInOpen_24
sub esp, 0x18
test eax, eax
setne al
test al, al
je 0x401683
mov dword [esp + 4], str.Impossible_douvrir_lentree_audio
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sym._free
mov eax, 1
jmp 0x401896
mov ecx, 0
mov eax, 0x20
and eax, 0xfffffffc
mov edx, eax
mov eax, 0
mov dword [ebp + eax - 0x2c], ecx
add eax, 4
cmp eax, edx
jb 0x401697
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
movzx eax, word [eax + 0xc]
movzx eax, ax
imul eax, dword [ebp + 0x14]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], 0x20
lea edx, [ebp - 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._waveInPrepareHeader_12
sub esp, 0xc
test eax, eax
setne al
test al, al
je 0x401747
mov dword [esp + 4], str.Erreur_de_preparation_de_lentete_audio
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._waveInClose_4
sub esp, 4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sym._free
mov eax, 1
jmp 0x401896
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], 0x20
lea edx, [ebp - 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._waveInAddBuffer_12
sub esp, 0xc
test eax, eax
setne al
test al, al
je 0x4017c5
mov dword [esp + 4], str.Erreur_de_preparation_de_lentete_audio
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._waveInClose_4
sub esp, 4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sym._free
mov eax, 1
jmp 0x401896
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._waveInStart_4
sub esp, 4
test eax, eax
setne al
test al, al
je 0x40184e
mov dword [esp + 4], str.Erreur_de_dmarrage_de_lenregistrement.
mov dword [esp], sym.imp.libstdc_6.dll_std::cerr
call sym.std::basic_ostream_char__std::char_traits_char____std::operator____std::char_traits_char____std::basic_ostream_char__std::char_traits_char_____char_const_
mov dword [esp], sym.std::basic_ostream_char__std::char_traits_char____std::endl_char__std::char_traits_char____std::basic_ostream_char__std::char_traits_char____
mov ecx, eax
call sym.std::ostream::operator___std::ostream____std::ostream__
sub esp, 4
mov eax, dword [ebp - 0xc]
mov dword [esp + 8], 0x20
lea edx, [ebp - 0x2c]
mov dword [esp + 4], edx
mov dword [esp], eax
call sym._waveInUnprepareHeader_12
sub esp, 0xc
mov eax, dword [ebp - 0xc]
mov dword [esp], eax
call sym._waveInClose_4
sub esp, 4
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov dword [esp], eax
call sym._free
mov eax, 1
jmp 0x401896
mov eax, dword [ebp + 0x18]
movzx eax, byte [eax]
test al, al
je 0x40185a
jmp 0x40184e
mov eax, dword [ebp + 0x20]
mov eax, dword [eax]
lea edx, [eax*4]
mov eax, dword [ebp + 0xc]
add eax, edx
mov eax, dword [eax]
mov edx, dword [ebp + 0x24]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x14]
mov dword [esp], eax
call sym.startBufferAnalysisThread_int__int__int__unsigned_char__bool_
mov eax, 0
mov ebx, dword [ebp - 4]
leave
ret