Function at 0x4f64c8
Capabilities:
Capture microphone audio

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb8
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x148], ecx
mov dword [ebp - 0x144], ecx
mov dword [ebp - 0x140], ecx
mov dword [ebp - 0x13c], ecx
mov dword [ebp - 0x130], ecx
mov dword [ebp - 0x12c], ecx
mov dword [ebp - 0x128], ecx
mov dword [ebp - 0x124], ecx
mov byte [ebp - 1], dl
mov ebx, eax
xor eax, eax
push ebp
push 0x4f6872
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, ebx
call fcn.004f5ff8
cmp al, byte [ebp - 1]
je 0x4f6844
cmp byte [ebp - 1], 0
jne 0x4f6559
mov byte [ebx + 0xa0], 1
mov eax, dword [ebx + 0x40]
push eax
call sub.winmm.dll_waveInReset
mov eax, dword [ebx + 0x40]
push eax
call sub.winmm.dll_waveInClose
xor eax, eax
mov dword [ebx + 0x40], eax
mov eax, ebx
call fcn.004f606c
jmp 0x4f6844
mov eax, dword [0x56b030]
cmp byte [eax], 0
jne 0x4f6594
lea edx, [ebp - 0x124]
mov eax, 0x4f6888
call fcn.004f0434
mov edx, dword [ebp - 0x124]
lea eax, [ebp - 0x120]
mov ecx, 0xff
call fcn.00405654
lea eax, [ebp - 0x120]
call fcn.004c9068
mov byte [ebx + 0xa0], 0
lea eax, [ebp - 0x1e]
xor ecx, ecx
mov edx, 0x12
call fcn.00403ac0
mov word [ebp - 0x1e], 1
mov word [ebp - 0x1c], 1
mov eax, dword [ebx + 0x48]
mov dword [ebp - 0x1a], eax
mov ax, 0x10
mov word [ebp - 0x10], ax
movzx edx, word [ebp - 0x1c]
movzx eax, ax
imul edx, eax
shr edx, 3
mov word [ebp - 0x12], dx
movzx eax, dx
imul dword [ebp - 0x1a]
mov dword [ebp - 0x16], eax
mov word [ebp - 0xe], 0
mov eax, ebx
call fcn.004f5f44
mov eax, dword [ebx + 0x44]
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
jne 0x4f6628
lea edx, [ebp - 0x128]
mov eax, 0x4f68a8
call fcn.004f0434
mov edx, dword [ebp - 0x128]
lea eax, [ebp - 0x120]
mov ecx, 0xff
call fcn.00405654
lea eax, [ebp - 0x120]
call fcn.004c9068
cmp dword [ebx + 0x4c], 0
jne 0x4f6640
xor edx, edx
mov eax, dword [ebx + 0x44]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 8], eax
jmp 0x4f66e0
mov dword [ebp - 8], 0xffffffff
mov eax, dword [ebx + 0x44]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x4f668f
inc eax
mov dword [ebp - 0xc], eax
xor esi, esi
lea ecx, [ebp - 0x12c]
mov edx, esi
mov eax, dword [ebx + 0x44]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x12c]
mov edx, dword [ebx + 0x4c]
call fcn.004057c4
jne 0x4f6689
mov edx, esi
mov eax, dword [ebx + 0x44]
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [ebp - 8], eax
jmp 0x4f668f
inc esi
dec dword [ebp - 0xc]
jne 0x4f665a
cmp dword [ebp - 8], 0
jge 0x4f66e0
lea edx, [ebp - 0x130]
mov eax, 0x4f68d0
call fcn.004f0434
mov edx, dword [ebp - 0x130]
lea eax, [ebp - 0x120]
mov ecx, 0xff
call fcn.00405654
lea eax, [ebp - 0x120]
push eax
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0x138], eax
mov byte [ebp - 0x134], 0xb
lea edx, [ebp - 0x138]
xor ecx, ecx
pop eax
call fcn.004c8fc8
push 0x30004
push ebx
push 0x4f6000
lea eax, [ebp - 0x1e]
push eax
mov eax, dword [ebp - 8]
push eax
lea eax, [ebx + 0x40]
push eax
call sub.winmm.dll_waveInOpen
test eax, eax
je 0x4f6735
lea edx, [ebp - 0x13c]
mov eax, 0x4f68ec
call fcn.004f0434
lea eax, [ebp - 0x13c]
mov edx, dword [ebx + 0x4c]
call fcn.00405680
mov ecx, dword [ebp - 0x13c]
mov dl, 1
mov eax, dword [0x40b6f8]
call fcn.004110b0
call fcn.00404cf0
mov edx, 0xa
mov eax, ebx
call fcn.004f604c
xor esi, esi
mov eax, dword [ebx + 0x9c]
push eax
lea eax, [ebx + esi*4 + 0x90]
mov ecx, 1
mov edx, dword [0x4f0054]
call fcn.004069b8
add esp, 4
mov eax, dword [ebx + esi*4 + 0x90]
mov edi, esi
shl edi, 2
mov dword [ebx + edi*8 + 0x50], eax
mov eax, dword [ebx + esi*4 + 0x90]
call fcn.004067dc
add eax, eax
mov dword [ebx + edi*8 + 0x54], eax
xor eax, eax
mov dword [ebx + edi*8 + 0x60], eax
mov dword [ebx + edi*8 + 0x5c], esi
push 0x20
lea eax, [ebx + edi*8 + 0x50]
push eax
mov eax, dword [ebx + 0x40]
push eax
call sub.winmm.dll_waveInPrepareHeader
test eax, eax
je 0x4f67cb
lea edx, [ebp - 0x140]
mov eax, 0x4f6910
call fcn.004f0434
mov ecx, dword [ebp - 0x140]
mov dl, 1
mov eax, dword [0x40b6f8]
call fcn.004110b0
call fcn.00404cf0
push 0x20
lea eax, [ebx + edi*8 + 0x50]
push eax
mov eax, dword [ebx + 0x40]
push eax
call sub.winmm.dll_waveInAddBuffer
test eax, eax
je 0x4f6806
lea edx, [ebp - 0x144]
mov eax, 0x4f6938
call fcn.004f0434
mov ecx, dword [ebp - 0x144]
mov dl, 1
mov eax, dword [0x40b6f8]
call fcn.004110b0
call fcn.00404cf0
inc esi
cmp esi, 2
jne 0x4f6743
mov eax, dword [ebx + 0x40]
push eax
call sub.winmm.dll_waveInStart
test eax, eax
je 0x4f6844
lea edx, [ebp - 0x148]
mov eax, 0x4f695c
call fcn.004f0434
mov ecx, dword [ebp - 0x148]
mov dl, 1
mov eax, dword [0x40b6f8]
call fcn.004110b0
call fcn.00404cf0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4f6879
lea eax, [ebp - 0x148]
mov edx, 4
call fcn.004053c0
lea eax, [ebp - 0x130]
mov edx, 4
call fcn.004053c0
ret