Function at 0x4c3d14
Capabilities:
Capture microphone audio

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [rbp + 0x10]
mov qword [rbp - 0x10], rax
push rax
push 0x1803660
call fcn.0040b260
pop rcx
mov rax, qword [rbp + 0x20]
cmp qword [rax + 0x28], 0
je 0x4c3d49
mov rax, qword [rbp + 0x20]
cmp qword [rax + 0x10], 0
jne 0x4c3d5b
push rax
push 0x1803660
call fcn.0040ba36
pop rcx
xor eax, eax
leave
ret 0x18
mov dword [rbp - 8], 0
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41b6
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41b6
imul ebx, ebx, 0x30
mov eax, dword [rax + rbx + 0x20]
and eax, 1
mov rbx, qword [rbp - 0x18]
lock dec dword [rbx]
cmp eax, 0
jne 0x4c3dc2
mov rax, qword [rbp + 0x20]
test byte [rax + 0x38], 0xff
jne 0x4c3dbd
push rax
push qword [rbp + 0x20]
call fcn.00539ca4
pop rcx
jmp 0x4c41a3
mov eax, dword [rbp - 8]
cmp eax, dword [rbp + 0x18]
je 0x4c41a3
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41b8
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41b8
imul ebx, ebx, 0x30
mov rsi, qword [rbp + 0x20]
mov eax, dword [rax + rbx + 0x14]
sub eax, dword [rsi + 0x40]
mov rbx, qword [rbp - 0x18]
lock dec dword [rbx]
mov dword [rbp - 4], eax
mov eax, dword [rbp + 0x18]
sub eax, dword [rbp - 8]
cmp eax, dword [rbp - 4]
jae 0x4c3e2b
mov eax, dword [rbp + 0x18]
sub eax, dword [rbp - 8]
mov dword [rbp - 4], eax
mov eax, dword [rbp - 4]
mov dword [rbp - 0x14], eax
mov eax, dword [rbp + 0x18]
sub eax, dword [rbp - 0x14]
jb 0x4c41ba
cmp eax, dword [rbp - 8]
jb 0x4c41ba
mov rax, qword [rbp + 0x10]
mov ebx, dword [rbp - 8]
mov rsi, qword [rbp + 0x20]
mov rsi, qword [rsi + 0x30]
lock inc dword [rsi]
cmp dword [rsi + 4], 0x98
jne 0x4c41ba
mov qword [rbp - 0x20], rsi
mov rdi, qword [rbp + 0x20]
mov rsi, qword [rsi + 8]
mov ecx, dword [rsi]
mov edi, dword [rdi + 0x3c]
cmp edi, ecx
jae 0x4c41ba
imul edi, edi, 0x30
mov rcx, qword [rbp + 0x20]
mov rsi, qword [rsi + rdi + 8]
movsxd rdi, dword [rcx + 0x40]
mov ecx, dword [rbp - 4]
cmp ecx, dword [rbp - 0x14]
jne 0x4c41ba
mov r8d, ecx
lea rdx, [rsi + rdi]
lea rcx, [rax + rbx]
sub rsp, 0x20
call qword [sym.imp.KERNEL32.DLL_RtlMoveMemory]
add rsp, 0x20
mov rax, qword [rbp - 0x20]
lock dec dword [rax]
mov rax, qword [rbp + 0x20]
mov ebx, dword [rbp - 4]
add dword [rax + 0x40], ebx
mov eax, dword [rbp - 4]
add dword [rbp - 8], eax
mov rax, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x20]
mov rbx, qword [rbx + 0x30]
lock inc dword [rbx]
cmp dword [rbx + 4], 0x98
jne 0x4c41bc
mov qword [rbp - 0x18], rbx
mov rsi, qword [rbp + 0x20]
mov rbx, qword [rbx + 8]
mov edi, dword [rbx]
mov esi, dword [rsi + 0x3c]
cmp esi, edi
jae 0x4c41bc
imul esi, esi, 0x30
mov ebx, dword [rbx + rsi + 0x14]
mov rsi, qword [rbp - 0x18]
lock dec dword [rsi]
cmp ebx, dword [rax + 0x40]
jne 0x4c419e
push rax
push 0x30
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41be
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41be
imul ebx, ebx, 0x30
mov rsi, qword [rbp - 0x18]
lock dec dword [rsi]
lea rax, [rax + rbx + 8]
push rax
mov rax, qword [rbp + 0x20]
push qword [rax + 0x10]
mov rcx, qword [rsp]
mov rdx, qword [rsp + 8]
mov r8d, dword [rsp + 0x10]
call qword [sym.imp.Winmm.dll_waveInUnprepareHeader]
add rsp, 0x20
cmp eax, 0
jne 0x4c41c0
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41c2
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41c2
imul ebx, ebx, 0x30
lea rcx, [rax + rbx + 8]
mov edx, 0x30
sub rsp, 0x20
call qword [sym.imp.KERNEL32.DLL_RtlZeroMemory]
add rsp, 0x20
mov rax, qword [rbp - 0x18]
lock dec dword [rax]
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41c4
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41c4
imul ebx, ebx, 0x30
mov rsi, qword [rbp + 0x20]
mov rsi, qword [rsi + 0x28]
lock inc dword [rsi]
cmp dword [rsi + 4], 1
jne 0x4c41c4
mov qword [rbp - 0x20], rsi
mov rdi, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x20]
mov edi, dword [rdi + 0x3c]
imul edi, dword [rcx + 0x1c]
mov rsi, qword [rsi + 8]
mov ecx, dword [rsi]
cmp edi, ecx
jae 0x4c41c4
mov rcx, qword [rbp - 0x20]
lock dec dword [rcx]
lea rsi, [rsi + rdi + 4]
mov qword [rax + rbx + 8], rsi
mov rax, qword [rbp - 0x18]
lock dec dword [rax]
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41c6
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41c6
imul ebx, ebx, 0x30
mov rsi, qword [rbp + 0x20]
mov esi, dword [rsi + 0x1c]
mov dword [rax + rbx + 0x10], esi
mov rax, qword [rbp - 0x18]
lock dec dword [rax]
push rax
push 0x30
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41c8
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41c8
imul ebx, ebx, 0x30
mov rsi, qword [rbp - 0x18]
lock dec dword [rsi]
lea rax, [rax + rbx + 8]
push rax
mov rax, qword [rbp + 0x20]
push qword [rax + 0x10]
mov rcx, qword [rsp]
mov rdx, qword [rsp + 8]
mov r8d, dword [rsp + 0x10]
call qword [sym.imp.Winmm.dll_waveInPrepareHeader]
add rsp, 0x20
cmp eax, 0
jne 0x4c41ca
push rax
push 0x30
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x30]
lock inc dword [rax]
cmp dword [rax + 4], 0x98
jne 0x4c41cc
mov qword [rbp - 0x18], rax
mov rbx, qword [rbp + 0x20]
mov rax, qword [rax + 8]
mov esi, dword [rax]
mov ebx, dword [rbx + 0x3c]
cmp ebx, esi
jae 0x4c41cc
imul ebx, ebx, 0x30
mov rsi, qword [rbp - 0x18]
lock dec dword [rsi]
lea rax, [rax + rbx + 8]
push rax
mov rax, qword [rbp + 0x20]
push qword [rax + 0x10]
mov rcx, qword [rsp]
mov rdx, qword [rsp + 8]
mov r8d, dword [rsp + 0x10]
call qword [sym.imp.Winmm.dll_waveInAddBuffer]
add rsp, 0x20
cmp eax, 0
jne 0x4c41ce
mov rax, qword [rbp + 0x20]
inc dword [rax + 0x3c]
mov rax, qword [rbp + 0x20]
mov rbx, qword [rbp + 0x20]
mov eax, dword [rax + 0x3c]
cmp eax, dword [rbx + 0x20]
jne 0x4c4193
mov rax, qword [rbp + 0x20]
mov dword [rax + 0x3c], 0
mov rax, qword [rbp + 0x20]
mov dword [rax + 0x40], 0
jmp 0x4c3d62
push rax
push 0x1803660
call fcn.0040ba36
pop rcx
mov eax, dword [rbp - 8]
leave
ret 0x18
int 5
int 5
int 5
int 5
int 5
int 5
int 5
int 5
int 5
int 5
int 5
int 5
int 5