Function at 0x140020280
Capabilities:
Capture microphone audio

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3a0
movaps xmmword [rsp + 0x390], xmm6
mov rax, qword [0x14009d438]
xor rax, rsp
mov qword [rsp + 0x380], rax
mov r15d, dword [rsp + 0x410]
mov r14, rdx
mov rbp, qword [rsp + 0x408]
mov ebx, r8d
mov r12, rcx
mov qword [rsp + 0x48], rcx
xor r13d, r13d
mov dword [rsp + 0x40], r15d
mov rcx, r14
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call fcn.14001f980
mov edi, dword [rsp + 0x420]
mov esi, eax
test eax, eax
jne 0x1400204a4
lea ecx, [r15*8]
call fcn.14001e890
mov qword [r14 + 8], rax
test rax, rax
jne 0x14002031d
mov esi, 0xffffd8f8
jmp 0x1400204a4
mov dword [r14 + 0x10], r15d
test r15d, r15d
jle 0x140020363
mov rcx, r15
mov rdx, r13
test edi, edi
je 0x140020350
mov rax, qword [r14 + 8]
lea rdx, [rdx + 8]
mov qword [rdx + rax - 8], r13
sub rcx, 1
jne 0x140020330
jmp 0x140020363
mov rax, qword [r14 + 8]
lea rdx, [rdx + 8]
mov qword [rdx + rax - 8], r13
sub rcx, 1
jne 0x140020350
test bl, 0x10
je 0x14002036f
mov esi, 0x92
jmp 0x140020387
test bl, 0x20
je 0x14002037b
mov esi, 0x164
jmp 0x140020387
mov ecx, 8
call fcn.140038e80
mov esi, eax
test r15d, r15d
jle 0x14002056b
movsd xmm6, qword [rsp + 0x400]
nop dword [rax]
movsxd rcx, dword [rbp]
xor ebx, ebx
mov rax, qword [r12 + 0x118]
movsxd r15, r13d
shl r15, 3
mov r12d, dword [rax + rcx*4]
nop dword [rax]
test ebx, ebx
je 0x1400203e5
cmp ebx, 1
jne 0x14002040c
mov edx, dword [rbp + 4]
lea r8d, [rbx + 7]
mov r9d, esi
movsd qword [rsp + 0x20], xmm6
lea rcx, [rsp + 0x50]
call fcn.140038d80
jmp 0x14002040c
mov eax, dword [rsp + 0x418]
lea rcx, [rsp + 0x50]
mov edx, dword [rbp + 4]
mov r9d, esi
mov dword [rsp + 0x28], eax
mov r8d, 8
movsd qword [rsp + 0x20], xmm6
call fcn.140038df0
mov rcx, qword [r14 + 8]
lea r8, [rsp + 0x50]
mov r9, qword [r14]
add rcx, r15
mov dword [rsp + 0x28], 0x50000
mov edx, r12d
mov qword [rsp + 0x20], 0
test edi, edi
je 0x14002043b
call qword [sym.imp.WINMM.dll_waveInOpen]
jmp 0x140020441
call qword [sym.imp.WINMM.dll_waveOutOpen]
mov edi, eax
test eax, eax
je 0x14002045c
test ebx, ebx
jne 0x14002047f
mov edi, dword [rsp + 0x420]
mov ebx, 1
jmp 0x1400203c0
inc r13d
add rbp, 8
cmp r13d, dword [rsp + 0x40]
jge 0x14002056b
mov edi, dword [rsp + 0x420]
mov r12, qword [rsp + 0x48]
jmp 0x1400203a0
mov eax, edi
sub eax, 2
je 0x1400204eb
sub eax, 2
je 0x1400204e4
sub eax, 2
je 0x1400204e4
cmp eax, 1
jne 0x1400204eb
mov esi, 0xffffd8f8
xor r13d, r13d
mov edi, dword [rsp + 0x420]
cmp qword [r14 + 8], 0
je 0x140020594
mov eax, dword [r14 + 0x10]
sub eax, 1
movsxd rbx, eax
js 0x140020587
nop
mov rax, qword [r14 + 8]
mov rcx, qword [rax + rbx*8]
test edi, edi
je 0x140020572
test rcx, rcx
je 0x14002057d
call qword [sym.imp.WINMM.dll_waveInClose]
jmp 0x14002057d
mov esi, 0xffffd8ff
jmp 0x14002049a
cmp dword [rsp + 0x420], 0
lea rdx, [rsp + 0x180]
mov esi, 0xffffd8f1
mov r8d, 0x100
mov ecx, edi
je 0x140020563
call qword [sym.imp.WINMM.dll_waveInGetErrorTextW]
xor r13d, r13d
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], r13
lea r8, [rsp + 0x180]
mov qword [rsp + 0x30], r13
mov edx, 0x240
mov dword [rsp + 0x28], 0x100
xor ecx, ecx
lea r9d, [r13 - 1]
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea r8, [rsp + 0x80]
mov edx, edi
lea ecx, [r13 + 2]
call fcn.14001dd00
jmp 0x14002049d
call qword [sym.imp.WINMM.dll_waveOutGetErrorTextW]
jmp 0x140020510
xor eax, eax
jmp 0x1400205f9
test rcx, rcx
je 0x14002057d
call qword [sym.imp.WINMM.dll_waveOutClose]
sub rbx, 1
jns 0x1400204c0
mov rcx, qword [r14 + 8]
call fcn.14001e8a0
mov qword [r14 + 8], r13
mov rcx, qword [r14]
test rcx, rcx
je 0x1400205f7
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
jne 0x1400205f4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov qword [rsp + 0x30], r13
mov r9d, 0x400
mov ebx, eax
mov dword [rsp + 0x28], r13d
lea rax, [rsp + 0x40]
mov r8d, ebx
xor edx, edx
mov qword [rsp + 0x20], rax
mov ecx, 0x1100
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov r8, qword [rsp + 0x40]
mov edx, ebx
mov ecx, 2
call fcn.14001dd00
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [r14], r13
mov eax, esi
mov rcx, qword [rsp + 0x380]
xor rcx, rsp
call fcn.14003ca20
mov rbx, qword [rsp + 0x3f0]
movaps xmm6, xmmword [rsp + 0x390]
add rsp, 0x3a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret