Function at 0x1400e07d0
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov r14, rdx
mov rbx, rcx
test rdx, rdx
je 0x1400e0aeb
cmp qword [rcx + 0x30], 0
je 0x1400e0aeb
mov r8, rdx
mov r13d, 1
mov r9d, r13d
lea rdx, [0x140396130]
call fcn.140101c50
test eax, eax
jne 0x1400e0aed
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x90]
add rcx, 0xb8
mov dword [rbx + 0x2a0], r13d
xor r8d, r8d
mov dword [rbx + 0x2a4], r13d
call qword [sym.imp.DSOUND.dll_DirectSoundCaptureCreate]
test eax, eax
js 0x1400e0aeb
mov eax, 2
mov dword [rbx + 0x244], 0x100004
xor esi, esi
mov word [rbx + 0x23a], ax
lea r12, [rbx + 0x238]
mov dword [rbx + 0x23c], 0xbb80
mov word [r12], r13w
lea ebp, [rax + 2]
mov dword [rbx + 0x240], 0x2ee00
cmp dword [rbx + 0x2a4], esi
jle 0x1400e0924
lea rbp, [rbx + 0x1a8]
lea rdi, [rbx + 0xa8]
nop dword [rax]
mov eax, dword [rbx + 0x240]
xor edx, edx
imul eax, dword [rbx + 0x2a0]
inc esi
xor r9d, r9d
div dword [rbx + 0x2a4]
xor edx, edx
imul eax, esi
lea r8d, [rax - 1]
mov dword [rdi], r8d
mov eax, dword [rbx + 0x240]
imul eax, dword [rbx + 0x2a0]
movzx ecx, word [rbx + 0x244]
div dword [rbx + 0x2a4]
xor edx, edx
div ecx
xor ecx, ecx
sub r8d, edx
xor edx, edx
mov dword [rdi], r8d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rbp], rax
lea rbp, [rbp + 8]
mov qword [rdi + 8], rax
lea rdi, [rdi + 0x10]
cmp esi, dword [rbx + 0x2a4]
jl 0x1400e08b0
mov ebp, 4
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
movsxd rcx, dword [rbx + 0x2a4]
mov qword [rbx + rcx*8 + 0x1a8], rax
movsxd rax, dword [rbx + 0x2a4]
add rax, rax
mov dword [rbx + rax*8 + 0x98], 0xffffffff
cmp qword [rbx + 0x90], 0
je 0x1400e0aeb
xor eax, eax
mov rcx, rbx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rbx + 0x298], rax
call fcn.1400e0420
mov ecx, dword [rbx + 0x240]
lea r8, [rbx + 0x98]
imul ecx, dword [rbx + 0x2a0]
mov eax, 0x10624dd3
mov dword [rsp + 0x40], 0x28
xor r9d, r9d
mov qword [rsp + 0x50], r12
mul ecx
mov rcx, qword [rbx + 0x90]
shr edx, 6
mov dword [rsp + 0x48], edx
lea rdx, [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + 0x18]
test eax, eax
js 0x1400e0aeb
mov eax, dword [rbx + 0x2a4]
xor esi, esi
inc eax
test eax, eax
jle 0x1400e0a11
lea rdi, [rbx + 0x1a8]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400e09ff
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov eax, dword [rbx + 0x2a4]
inc esi
inc eax
add rdi, 8
cmp esi, eax
jl 0x1400e09f1
mov rcx, qword [rbx + 0x98]
lea r8, [rbx + 0xa0]
lea rdx, [0x1403921c8]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
js 0x1400e0aeb
mov rcx, qword [rbx + 0xa0]
lea r8, [rbx + 0xa8]
mov edx, dword [rbx + 0x2a4]
mov rax, qword [rcx]
call qword [rax + 0x18]
test eax, eax
js 0x1400e0aeb
mov qword [rsp + 0x28], 0
lea rcx, [0x1400e0520]
xor r9d, r9d
mov dword [rsp + 0x20], ebp
xor r8d, r8d
mov rdx, rbx
call fcn.140164718
mov rbp, rax
test rax, rax
je 0x1400e0aeb
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdx, qword [rbp + 0x58]
lea r9, [rbx + 0x250]
mov rcx, rax
mov dword [rsp + 0x30], 2
xor eax, eax
mov r8, rdi
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov rcx, qword [rbp + 0x58]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, qword [rbx + 0x98]
xor edx, edx
mov rax, qword [rcx]
call qword [rax + 0x48]
test eax, eax
js 0x1400e0aeb
mov r9d, r13d
lea rdx, [0x140396130]
mov r8, r14
mov rcx, rbx
call fcn.140101c50
jmp 0x1400e0aed
xor eax, eax
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret