Function at 0x1400b3820
Capabilities:
Print debug messages

Disassembly:
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x2150
call fcn.14011c260
sub rsp, rax
mov qword [rsp + 0x70], 0xfffffffffffffffe
mov qword [rsp + 0x2188], rbx
mov qword [rsp + 0x2190], rbp
mov qword [rsp + 0x2198], rsi
mov rax, qword [0x14016adb0]
xor rax, rsp
mov qword [rsp + 0x2140], rax
mov r12, rcx
xor ecx, ecx
mov dword [rsp + 0x48], ecx
xor eax, eax
mov dword [rsp + 0x50], eax
lea rcx, [r12 + 0x140]
call fcn.1400daae8
mov ebx, eax
mov dword [rsp + 0x40], eax
xor r15d, r15d
xor r14d, r14d
lea rcx, [r12 + 0x140]
call fcn.1400daae8
test eax, eax
jle 0x1400b42b9
cmp r15d, ebx
jge 0x1400b3e70
test r14, r14
js 0x1400b3e6a
cmp r14, qword [r12 + 0x258]
jge 0x1400b3e6a
mov rax, qword [r12 + 0x250]
mov r13, qword [rax + r14*8]
mov qword [rsp + 0x68], r13
xor eax, eax
test r13, r13
setne al
test eax, eax
je 0x1400b3e64
test r13, r13
je 0x1400b3e39
movsxd rbp, dword [r13 + 0x14c]
mov rdi, qword [r12 + 0x110]
xor edx, edx
mov r8d, 0x828
lea rcx, [rsp + 0x1910]
call fcn.1400fce30
test ebp, ebp
js 0x1400b3988
mov rax, rbp
cmp rbp, qword [rdi + 0xac0]
jge 0x1400b3988
cmp rax, qword [rdi + 0xac0]
jge 0x1400b394b
test ebp, ebp
js 0x1400b394b
mov rcx, qword [rdi + 0xab0]
test ebp, ebp
je 0x1400b394d
nop
sub rax, 1
mov rcx, qword [rcx]
jne 0x1400b3940
jmp 0x1400b394d
xor ecx, ecx
mov rdx, qword [rcx + 0x10]
test rdx, rdx
jne 0x1400b3973
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x1910]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x1400b39a3
lea rcx, [rsp + 0x80]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x1400b39a3
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x1910]
mov r8d, 0x828
call fcn.1400fd180
or esi, 0xffffffff
mov ebx, dword [rsp + 0x494]
cmp dword [rdi + 0x8b4], 0
jne 0x1400b39ba
or esi, esi
jmp 0x1400b3a26
mov ecx, ebx
sub ecx, 8
je 0x1400b3a17
sub ecx, 1
je 0x1400b3a07
sub ecx, 1
je 0x1400b39f7
sub ecx, 2
je 0x1400b39e7
cmp ecx, 1
je 0x1400b39da
or esi, 0xffffffff
jmp 0x1400b3a26
cmp dword [rdi + 0xa9c], 0
je 0x1400b3a26
xor esi, esi
jmp 0x1400b3a26
cmp dword [rdi + 0xa98], 0
je 0x1400b3a26
mov esi, 3
jmp 0x1400b3a26
cmp dword [rdi + 0xa94], 0
je 0x1400b3a26
mov esi, 2
jmp 0x1400b3a26
cmp dword [rdi + 0xaa0], 0
je 0x1400b3a26
mov esi, 4
jmp 0x1400b3a26
cmp dword [rdi + 0xa90], 0
mov eax, 1
cmovne esi, eax
cmp ebx, 0x10
je 0x1400b3b19
mov dword [rsp + 0x54], 4
test ebp, ebp
js 0x1400b3b19
mov rax, rbp
cmp rbp, qword [rdi + 0xac0]
jge 0x1400b3b19
cmp rax, qword [rdi + 0xac0]
jge 0x1400b3a72
test ebp, ebp
js 0x1400b3a72
mov rcx, qword [rdi + 0xab0]
test ebp, ebp
je 0x1400b3a74
sub rax, 1
mov rcx, qword [rcx]
jne 0x1400b3a67
jmp 0x1400b3a74
xor ecx, ecx
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x1400b3b19
cmp qword [rcx + 0x828], 0
je 0x1400b3b19
mov rcx, qword [rcx + 0x828]
mov rax, qword [rcx]
lea rdx, [rsp + 0x54]
call qword [rax + 0x30]
cmp dword [rsp + 0x54], 1
jne 0x1400b3b19
mov rax, qword [r12 + 0x110]
cmp dword [rax + 0x8b4], 0
je 0x1400b3e35
cmp dword [rax + 0x874], 0
je 0x1400b3e2f
cmp esi, 0xffffffff
je 0x1400b3e29
cmp ebx, 8
jne 0x1400b3aea
cmp dword [rax + 0x2154c], 0
je 0x1400b3b40
mov ebx, dword [rsp + 0x40]
jmp 0x1400b3e39
cmp ebx, 0xa
jne 0x1400b3b01
cmp dword [rax + 0x21500], 0
je 0x1400b3b40
mov ebx, dword [rsp + 0x40]
jmp 0x1400b3e39
cmp ebx, 0xc
jne 0x1400b3e23
cmp dword [rax + 0x214b4], 0
jne 0x1400b3e1d
jmp 0x1400b3b40
test ebx, ebx
jne 0x1400b3b27
mov dword [rsp + 0x48], 1
jmp 0x1400b3b48
cmp ebx, 8
je 0x1400b3b40
cmp ebx, 0xa
je 0x1400b3b40
cmp ebx, 0xc
je 0x1400b3b40
cmp ebx, 0xd
je 0x1400b3b40
cmp ebx, 1
jne 0x1400b3b48
mov dword [rsp + 0x50], 1
mov rbx, qword [r12 + 0x2a20]
call fcn.1400de224
mov rcx, qword [rax + 0xc8]
mov r8d, r15d
mov rdx, rbx
mov rcx, qword [rcx]
call fcn.1400b4bf0
mov rdx, r13
lea rcx, [r12 + 0x140]
call fcn.1400db820
mov rbx, qword [r12 + 0x2a20]
call fcn.1400de224
mov rcx, qword [rax + 0xc8]
mov rdx, rbx
mov rcx, qword [rcx]
call fcn.1400b4aa0
test eax, eax
jne 0x1400b3baf
lea rcx, [r12 + 0x2a18]
call fcn.1400defd0
jmp 0x1400b3dec
xor r13d, r13d
xor ebp, ebp
lea rbx, [r12 + 0x140]
mov rcx, rbx
call fcn.1400daae8
test eax, eax
jle 0x1400b3dd7
nop
test rbp, rbp
js 0x1400b3e5e
cmp rbp, qword [r12 + 0x258]
jge 0x1400b3e5e
mov rax, qword [r12 + 0x250]
mov rsi, qword [rax + rbp*8]
xor eax, eax
test rsi, rsi
setne al
test eax, eax
je 0x1400b3e58
mov qword [rsp + 0x60], 0
lea rax, [0x1401202e8]
mov qword [rsp + 0x58], rax
test rsi, rsi
je 0x1400b3daf
cmp dword [rsi + 0x140], 1
jne 0x1400b3daf
movsxd rdi, dword [rsi + 0x14c]
mov rbx, qword [r12 + 0x110]
xor edx, edx
mov r8d, 0x828
lea rcx, [rsp + 0x8b0]
call fcn.1400fce30
test edi, edi
js 0x1400b3cc8
mov rax, rdi
cmp rdi, qword [rbx + 0xac0]
jge 0x1400b3cc8
cmp rax, qword [rbx + 0xac0]
jge 0x1400b3c8b
test edi, edi
js 0x1400b3c8b
mov rcx, qword [rbx + 0xab0]
test edi, edi
je 0x1400b3c8d
nop
nop
sub rax, 1
mov rcx, qword [rcx]
jne 0x1400b3c80
jmp 0x1400b3c8d
xor ecx, ecx
mov rdx, qword [rcx + 0x10]
test rdx, rdx
jne 0x1400b3cb3
lea rcx, [rsp + 0x10e0]
lea rdx, [rsp + 0x8b0]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x1400b3ce3
lea rcx, [rsp + 0x10e0]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x1400b3ce3
lea rcx, [rsp + 0x10e0]
lea rdx, [rsp + 0x8b0]
mov r8d, 0x828
call fcn.1400fd180
cmp dword [rsi + 0x1808], 0
je 0x1400b3d3e
movsxd rax, dword [rsp + 0x14f4]
mov rcx, qword [r12 + rax*8 + 0x2aa8]
call fcn.1400cfdc0
test rax, rax
jne 0x1400b3d0a
xor edi, edi
jmp 0x1400b3d0e
mov rdi, qword [rax + 8]
mov rbx, qword [r12 + 0x2a20]
call fcn.1400de224
mov rcx, qword [rax + 0xc8]
mov qword [rsp + 0x20], 0
mov r9, rdi
mov r8d, r13d
mov rdx, rbx
mov rcx, qword [rcx]
call fcn.1400b4d50
jmp 0x1400b3d8f
movsxd rax, dword [rsp + 0x14f4]
mov rcx, qword [r12 + rax*8 + 0x2a28]
call fcn.1400cfdc0
test rax, rax
jne 0x1400b3d5c
xor edi, edi
jmp 0x1400b3d60
mov rdi, qword [rax + 8]
mov rbx, qword [r12 + 0x2a20]
call fcn.1400de224
mov rcx, qword [rax + 0xc8]
mov qword [rsp + 0x20], 0
mov r9, rdi
mov r8d, r13d
mov rdx, rbx
mov rcx, qword [rcx]
call fcn.1400b4d50
nop
lea rax, [0x1401202e8]
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x58]
call fcn.1400027d0
lea rbx, [r12 + 0x140]
jmp 0x1400b3dbe
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x58]
call fcn.1400027d0
add r13d, 1
add rbp, 1
mov rcx, rbx
call fcn.1400daae8
cmp r13d, eax
jl 0x1400b3bd0
lea rdx, [r12 + 0x2a18]
mov rcx, rbx
call fcn.140024710
mov r13, qword [rsp + 0x68]
mov rax, qword [r13]
mov edx, 1
mov rcx, r13
call qword [rax + reloc.DSOUND.dll_DirectSoundCaptureEnumerateW]
sub r15d, 1
sub r14, 1
mov ebx, dword [rsp + 0x40]
sub ebx, 1
mov dword [rsp + 0x40], ebx
lea rcx, [r12 + 0x140]
call fcn.1400daae8
jmp 0x1400b3e39
mov ebx, dword [rsp + 0x40]
jmp 0x1400b3e39
mov ebx, dword [rsp + 0x40]
jmp 0x1400b3e39
mov ebx, dword [rsp + 0x40]
jmp 0x1400b3e39
mov ebx, dword [rsp + 0x40]
jmp 0x1400b3e39
mov ebx, dword [rsp + 0x40]
add r15d, 1
add r14, 1
lea rcx, [r12 + 0x140]
call fcn.1400daae8
cmp r15d, eax
jge 0x1400b3e70
jmp 0x1400b38a7
call fcn.1400d1dcc
int3
call fcn.1400d1dcc
int3
call fcn.1400d1dcc
int3
call fcn.1400d1dcc
int3
movsxd rcx, dword [rsp + 0x48]
test ecx, ecx
jne 0x1400b3e87
mov eax, dword [rsp + 0x50]
test eax, eax
je 0x1400b42b9
jmp 0x1400b3e8b
mov eax, dword [rsp + 0x50]
xor r13d, r13d
xor ebp, ebp
mov r15, rcx
movsxd r14, eax
lea rcx, [r12 + 0x140]
call fcn.1400daae8
test eax, eax
jle 0x1400b42b9
nop
nop
test rbp, rbp
js 0x1400b42b3
cmp rbp, qword [r12 + 0x258]
jge 0x1400b42b3
mov rax, qword [r12 + 0x250]
mov rsi, qword [rax + rbp*8]
test rsi, rsi
je 0x1400b42ad
movsxd rbx, dword [rsi + 0x14c]
mov rdi, qword [r12 + 0x110]
xor edx, edx
mov r8d, 0x828
lea rcx, [rsp + 0x8b0]
call fcn.1400fce30
test ebx, ebx
js 0x1400b3f78
mov rax, rbx
cmp rbx, qword [rdi + 0xac0]
jge 0x1400b3f78
cmp rbx, qword [rdi + 0xac0]
jge 0x1400b3f3b
test ebx, ebx
js 0x1400b3f3b
mov rcx, qword [rdi + 0xab0]
test ebx, ebx
je 0x1400b3f3d
nop
nop
sub rax, 1
mov rcx, qword [rcx]
jne 0x1400b3f30
jmp 0x1400b3f3d
xor ecx, ecx
mov rdx, qword [rcx + 0x10]
test rdx, rdx
jne 0x1400b3f63
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x8b0]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x1400b3f93
lea rcx, [rsp + 0x80]
mov r8d, 0x828
call fcn.1400fd180
jmp 0x1400b3f93
lea rcx, [rsp + 0x80]
lea rdx, [rsp + 0x8b0]
mov r8d, 0x828
call fcn.1400fd180
mov ebx, dword [rsp + 0x494]
test r15, r15
je 0x1400b3fdf
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [rdi + 0xa88]
call fcn.140087d00
cmp eax, 0xffffffff
jne 0x1400b3fdf
cmp ebx, 8
je 0x1400b3fca
cmp ebx, 0xa
je 0x1400b3fca
cmp ebx, 0xc
je 0x1400b3fca
cmp ebx, 0xd
jne 0x1400b3fdf
xor r9d, r9d
xor r8d, r8d
mov edx, 0xbde
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
test r14, r14
je 0x1400b428d
cmp ebx, 9
jne 0x1400b4002
xor r9d, r9d
xor r8d, r8d
mov edx, 0xbed
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_SendMessageW]
mov rax, qword [r12 + 0x110]
cmp dword [rax + 0x21544], 0
je 0x1400b4029
cmp dword [rax + 0x2154c], 0
je 0x1400b4029
cmp dword [rax + 0x2153c], 7
jne 0x1400b40f7
cmp dword [rax + 0x214f8], 0
je 0x1400b4048
cmp dword [rax + 0x21500], 0
je 0x1400b4048
cmp dword [rax + 0x214f0], 6
jne 0x1400b40f7
lea rbx, [rax + 0xf8]
lea r8, [rbx + 0x8dc]
lea rdx, [rbx + 0x24]
mov rcx, rbx
call fcn.140097c60
cmp dword [rbx + 0x8ec], 1
jne 0x1400b408e
mov rax, qword [r12 + 0x110]
cmp dword [rax + 0x214ac], 0
je 0x1400b408e
cmp dword [rax + 0x214b4], 0
je 0x1400b408e
cmp dword [rax + 0x214a4], 5
jne 0x1400b40f7
mov rbx, qword [r12 + 0x110]
lea r8, [rbx + 0x9d4]
lea rdx, [rbx + 0x11c]
lea rcx, [rbx + 0xf8]
call fcn.140097c60
cmp dword [rbx + 0x9e4], 1
je 0x1400b41c4
mov rax, qword [r12 + 0x110]
cmp dword [rax + 0x214ac], 0
je 0x1400b41c4
cmp dword [rax + 0x214b4], 0
je 0x1400b41c4
mov ecx, dword [rax + 0x214a4]
cmp ecx, 5
je 0x1400b41c4
cmp ecx, 4
je 0x1400b41c4
mov ecx, 1
mov dword [rsp + 0x48], ecx
mov rcx, qword [rax + 0x110]
test rcx, rcx
je 0x1400b428d
add rcx, 4
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400b415a
lea rcx, str.ActiveSpeaker:_CreateFile:_INVALID_HANDLE_VALUE_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400b428d
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x54]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 4
lea r8, [rsp + 0x48]
mov edx, 0x1d6068
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1400b41b6
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.ActiveSpeaker:_DeviceIoControl:_IOCTL_HDAUD_SET_VIA_SPKRS_ALWAYS_ACTIVE_failed_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400b428d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400b428d
mov rax, qword [r12 + 0x110]
mov dword [rsp + 0x48], 0
mov rcx, qword [rax + 0x110]
test rcx, rcx
je 0x1400b428d
add rcx, 4
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x1400b422b
lea rcx, str.ActiveSpeaker:_CreateFile:_INVALID_HANDLE_VALUE_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400b428d
mov qword [rsp + 0x38], 0
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 4
lea r8, [rsp + 0x48]
mov edx, 0x1d6068
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x1400b4284
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, str.ActiveSpeaker:_DeviceIoControl:_IOCTL_HDAUD_SET_VIA_SPKRS_ALWAYS_ACTIVE_failed_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x1400b428d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add r13d, 1
add rbp, 1
lea rcx, [r12 + 0x140]
call fcn.1400daae8
cmp r13d, eax
jl 0x1400b3eb0
jmp 0x1400b42b9
call fcn.1400d1dcc
int3
call fcn.1400d1dcc
int3
mov rax, qword [r12 + 0x110]
cmp dword [rax + 0x2672c], 0
je 0x1400b4348
xor edi, edi
xor ebx, ebx
lea r13, [r12 + 0x140]
mov rcx, r13
call fcn.1400daae8
test eax, eax
jle 0x1400b4350
test rbx, rbx
js 0x1400b4342
cmp rbx, qword [r12 + 0x258]
jge 0x1400b4342
mov rax, qword [r12 + 0x250]
mov rcx, qword [rax + rbx*8]
test rcx, rcx
je 0x1400b433c
cmp dword [rcx + 0x568], 0
je 0x1400b4320
add edi, 1
add rbx, 1
mov rcx, r13
call fcn.1400daae8
cmp edi, eax
jl 0x1400b42e2
jmp 0x1400b4350
mov rcx, qword [rcx + 0x2950]
test rcx, rcx
je 0x1400b4350
cmp dword [rcx + 0x1d8], 1
jne 0x1400b4350
call fcn.1400589c0
jmp 0x1400b4350
call fcn.1400d1dcc
int3
call fcn.1400d1dcc
int3
lea r13, [r12 + 0x140]
mov rcx, qword [r12 + 0x110]
call fcn.14001e080
mov rcx, r13
call fcn.1400daae8
test eax, eax
jne 0x1400b4391
cmp dword [r12 + 0x2d8], eax
je 0x1400b4391
xor edx, edx
mov rcx, r13
call fcn.1400da218
mov dword [r12 + 0x2d8], 0
mov rcx, r12
call fcn.1400ae240
xor eax, eax
mov rcx, qword [rsp + 0x2140]
xor rcx, rsp
call fcn.1400f9790
lea r11, [rsp + 0x2150]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret