Function at 0x1400a3440
Capabilities:
Create thread

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xb8]
sub rsp, 0x1b8
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov rax, qword [0x140150010]
xor rax, rsp
mov qword [rbp + 0xa0], rax
mov esi, r9d
mov dword [rsp + 0x44], esi
mov r13, r8
mov r15, rcx
mov ebx, dword [rbp + 0x128]
mov r14, qword [rbp + 0x120]
mov r12, qword [rbp + 0x130]
xor edi, edi
mov dword [rsp + 0x40], edi
mov dword [r12], edi
cmp edx, 0x10000101
ja 0x1400a3b12
je 0x1400a3a63
lea eax, [rdx - 0x10000001]
cmp eax, 9
ja case.default.0x1400a3b44
lea rcx, [0x140000000]
mov eax, dword [rcx + rax*4 + 0xa4598]
add rax, rcx
jmp rax
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], esi
mov r9, r13
xor r8d, r8d
mov rcx, r15
call fcn.1400a45f0
jmp 0x1400a455d
test r14, r14
jne 0x1400a351c
lea r8d, [r14 + 0x32]
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.14005c7e0
xor eax, eax
jmp 0x1400a455d
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je case.default.0x1400a3b44
mov rcx, rax
call fcn.140016580
mov dword [rsp + 0x44], eax
cmp ebx, 4
mov r8, rbx
jbe 0x1400a354c
mov r8d, 4
mov r8d, r8d
mov dword [r12], r8d
lea rdx, [rsp + 0x44]
mov rcx, r14
call fcn.1400c1190
jmp case.default.0x1400a3b44
test r13, r13
jne 0x1400a3570
lea r8d, [r13 + 0x3f]
jmp 0x1400a3502
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
mov rbx, rax
test rax, rax
je case.default.0x1400a3b44
mov dword [rbp - 0x14], edi
mov r8, rsi
mov rdx, r13
lea rcx, [rbp - 0x14]
call fcn.1400c1190
mov edx, dword [rbp - 0x14]
mov rcx, rbx
call fcn.1400165c0
mov eax, 1
jmp 0x1400a455d
mov qword [rbp], rdi
mov qword [rbp - 0x40], rdi
test r14, r14
jne 0x1400a35c6
lea r8d, [r14 + 0x52]
jmp 0x1400a3647
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
lea rax, [rbp]
mov qword [rsp + 0x20], rax
lea r9, [0x1400de5e8]
mov esi, 1
mov r8d, esi
xor edx, edx
lea rcx, [0x1400de5f8]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoCreateInstance]
test eax, eax
jns 0x1400a3604
lea r8d, [rsi + 0x56]
jmp 0x1400a3622
mov rcx, qword [rbp]
mov rax, qword [rcx]
lea r9, [rbp - 0x40]
xor r8d, r8d
mov rdx, r15
call qword [rax + 0x20]
test eax, eax
jns 0x1400a363a
mov r8d, 0x5b
mov r9d, eax
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_ERROR_0x_X_
call fcn.14005c7e0
jmp 0x1400a3695
mov r15, qword [rbp - 0x40]
test r15, r15
jne 0x1400a365c
lea r8d, [r15 + 0x5c]
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.14005c7e0
jmp 0x1400a3695
mov rdx, r15
mov rcx, r14
cmp word [r15 + 0x10], 0x16
mov r8d, 0x28
je 0x1400a3676
mov r8d, SafeArrayUnaccessData
cmp ebx, r8d
cmovbe r8, rbx
mov r8d, r8d
mov dword [r12], r8d
call fcn.1400c1190
mov rcx, r15
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoTaskMemFree]
mov rdi, rsi
mov rcx, qword [rbp]
test rcx, rcx
je 0x1400a455a
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x1400a455a
mov qword [rbp - 0x10], rdi
test r13, r13
jne 0x1400a36d2
lea r8d, [r13 + 0x73]
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.14005c7e0
jmp 0x1400a3766
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
lea r9, [0x1400de5e8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1400de5f8]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoCreateInstance]
test eax, eax
jns 0x1400a3717
mov r9d, eax
mov r8d, 0x77
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_ERROR_0x_X_
call fcn.14005c7e0
jmp 0x1400a3766
mov rcx, qword [rbp - 0x10]
mov rax, qword [rcx]
xor r9d, r9d
mov r8, r13
mov rdx, r15
call qword [rax + 0x28]
test eax, eax
jns 0x1400a375e
cmp word [r13 + 0xe], 0x20
jne 0x1400a375e
mov dword [r13 + 0xc], 0x180006
mov eax, dword [r13 + 4]
lea ecx, [rax + rax*2]
add ecx, ecx
mov dword [r13 + 8], ecx
mov rcx, qword [rbp - 0x10]
mov rax, qword [rcx]
xor r9d, r9d
mov r8, r13
mov rdx, r15
call qword [rax + 0x28]
not eax
mov edi, eax
shr rdi, 0x1f
mov rcx, qword [rbp - 0x10]
test rcx, rcx
je 0x1400a455a
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x1400a455a
test r13, r13
jne 0x1400a378e
mov r8d, 0x8b
jmp 0x1400a3502
mov dword [rbp - 0x18], edi
cmp esi, 4
mov r8, rsi
jbe 0x1400a379f
mov r8d, 4
mov rdx, r13
lea rcx, [rbp - 0x18]
call fcn.1400c1190
mov qword [rbp + 8], rdi
lea rax, [rbp + 8]
mov qword [rsp + 0x20], rax
lea r9, [0x1400de5e8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1400de5f8]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoCreateInstance]
test eax, eax
jns 0x1400a37f4
mov r9d, eax
mov r8d, 0x92
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_ERROR_0x_X_
call fcn.14005c7e0
jmp 0x1400a380b
mov rcx, qword [rbp + 8]
mov rax, qword [rcx]
mov r8d, dword [rbp - 0x18]
mov rdx, r15
call qword [rax + 0x60]
test eax, eax
setns dil
mov rcx, qword [rbp + 8]
test rcx, rcx
je 0x1400a455a
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x1400a455a
test r13, r13
jne 0x1400a3833
mov r8d, 0x9b
jmp 0x1400a3502
mov dword [rbp - 0x1c], edi
cmp esi, 4
mov r8, rsi
jbe 0x1400a3844
mov r8d, 4
mov rdx, r13
lea rcx, [rbp - 0x1c]
call fcn.1400c1190
mov qword [rbp + 0x10], rdi
lea rax, [rbp + 0x10]
mov qword [rsp + 0x20], rax
lea r9, [0x1400de5e8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1400de5f8]
call qword [sym.imp.api_ms_win_core_com_l1_1_0.dll_CoCreateInstance]
test eax, eax
jns 0x1400a3899
mov r9d, eax
mov r8d, 0xa2
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_RETURN_FALSE_ON_ERROR_0x_X_
call fcn.14005c7e0
jmp 0x1400a38b0
mov rcx, qword [rbp + 0x10]
mov rax, qword [rcx]
mov r8d, dword [rbp - 0x1c]
mov rdx, r15
call qword [rax + 0x68]
test eax, eax
setns dil
mov rcx, qword [rbp + 0x10]
test rcx, rcx
je 0x1400a455a
mov rdx, qword [rcx]
call qword [rdx + 0x10]
jmp 0x1400a455a
test r14, r14
jne 0x1400a38d8
mov r8d, 0xaa
jmp 0x1400a3502
mov rsi, rdi
mov r13d, 0x64
mov r8d, r13d
xor edx, edx
lea rcx, [rbp + 0x30]
call fcn.1400c0ee0
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a3913
mov rcx, rax
call fcn.14000ee30
mov rsi, rax
test rax, rax
je 0x1400a3954
jmp 0x1400a392c
lea r8, [rbp + 0x30]
mov edx, 2
mov rcx, r15
call fcn.14000ee70
test eax, eax
je 0x1400a3954
lea rsi, [rbp + 0x30]
mov r8, rbx
cmp ebx, r13d
ja 0x1400a3937
mov r13, rbx
mov dword [r12], r13d
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
mov rdx, rsi
mov rcx, r14
call fcn.1400c1190
mov eax, dword [r12]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rsi
mov r8d, 0xc8
lea rcx, str._s__d_SRV_CMD_GetApoCapability_EpId_s_pAPOFXCAPS3_x_ulBytesReturned_d
jmp 0x1400a4542
call fcn.14000b1e0
test dword [rax + reloc.OLEAUT32.dll_LPSAFEARRAY_UserUnmarshal], 0x100
jne 0x1400a35a6
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a39ae
mov rdx, r15
lea rcx, [rbp - 0x80]
call fcn.140004560
mov rcx, rax
call fcn.1400588d0
mov r9d, dword [r12]
mov r8d, 0xdb
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_ulBytesReturned_d
call fcn.14005c7e0
jmp case.default.0x1400a3b44
test r14, r14
jne 0x1400a39e0
mov r8d, 0xe3
jmp 0x1400a3502
mov r8, rbx
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov dword [rsp + 0x50], edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a3515
mov rdx, r15
lea rcx, [rsp + 0x78]
call fcn.140004560
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x70]
mov rcx, rax
call fcn.1400581e0
test eax, eax
je 0x1400a3515
lea rdx, [rbp - 0x70]
mov rcx, r14
cmp dword [rsp + 0x50], edi
mov r8d, 0x28
jne 0x1400a3a46
mov r8d, SafeArrayUnaccessData
cmp ebx, r8d
cmovbe r8, rbx
mov r8d, r8d
mov dword [r12], r8d
call fcn.1400c1190
mov eax, 1
jmp 0x1400a455d
test r14, r14
jne 0x1400a3a73
mov r8d, 0x114
jmp 0x1400a3502
mov r13d, edi
mov dword [rsp + 0x54], edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a3ae9
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a3ab6
cmp dword [rax + 0x2c], edi
je 0x1400a3ab6
mov esi, 1
cmp dword [rax + 0xe8], edi
cmove r13d, esi
mov dword [rsp + 0x54], r13d
mov rax, rbx
cmp ebx, 4
mov r8, rbx
jbe 0x1400a3ac7
mov r8d, 4
mov dword [r12], r8d
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rsp + 0x54]
mov rcx, r14
call fcn.1400c1190
mov r8d, reloc.OLEAUT32.dll_LPSAFEARRAY_UserMarshal
lea rcx, str._s__d_bMicBoostSup_d_ulBytesReturned_d
mov r9d, r13d
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
lea rdx, str.ServiceCommandForAudioDevice
call fcn.14005c7e0
jmp case.default.0x1400a3b44
cmp edx, 0x10000230
ja case.default.0x1400a3b44
je 0x1400a423a
add edx, 0xeffffefe
cmp edx, 8
ja case.default.0x1400a3b44
lea rcx, [0x140000000]
mov eax, dword [rcx + rdx*4 + 0xa45c0]
add rax, rcx
jmp rax
test r14, r14
jne 0x1400a3b56
mov r8d, 0x128
jmp 0x1400a3502
xorps xmm0, xmm0
movss dword [rbp - 0x28], xmm0
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a3bd0
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a3bd0
cmp dword [rax + 0x2c], edi
je 0x1400a3bd0
cmp dword [rax + 0xe8], edi
jne 0x1400a3bd0
lea rdx, [rbp - 0x28]
mov rcx, rax
call fcn.14006d1d0
test eax, eax
je 0x1400a3bd0
mov rax, rbx
cmp ebx, 4
mov r8, rbx
jbe 0x1400a3baf
mov r8d, 4
mov dword [r12], r8d
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rbp - 0x28]
mov rcx, r14
call fcn.1400c1190
movss xmm3, dword [rbp - 0x28]
cvtps2pd xmm3, xmm3
mov eax, dword [r12]
mov dword [rsp + 0x20], eax
movq r9, xmm3
mov r8d, 0x13c
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_GetLevelDB_f_ulBytesReturned_d
call fcn.14005c7e0
jmp case.default.0x1400a3b44
test r13, r13
jne 0x1400a3c13
mov r8d, 0x141
jmp 0x1400a3502
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je case.default.0x1400a3b44
lea rcx, [rax + 0xc8]
call fcn.1400101c0
mov rbx, rax
test rax, rax
je case.default.0x1400a3b44
cmp dword [rax + 0x2c], edi
je case.default.0x1400a3b44
cmp dword [rax + 0xe8], edi
jne case.default.0x1400a3b44
xorps xmm0, xmm0
movss dword [rbp - 0x2c], xmm0
cmp esi, 4
mov r8, rsi
jbe 0x1400a3c6c
mov r8d, 4
mov rdx, r13
lea rcx, [rbp - 0x2c]
call fcn.1400c1190
movss xmm1, dword [rbp - 0x2c]
mov rcx, rbx
call fcn.14006d4c0
movsxd rbx, eax
movss xmm3, dword [rbp - 0x2c]
cvtps2pd xmm3, xmm3
mov ecx, dword [r12]
mov dword [rsp + 0x20], ecx
movq r9, xmm3
mov r8d, 0x14d
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_SetfLevelDB_f_ulBytesReturned_d
call fcn.14005c7e0
mov rax, rbx
jmp 0x1400a455d
test r14, r14
jne 0x1400a3cce
mov r8d, 0x155
jmp 0x1400a3502
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
mov rsi, rax
test rax, rax
je 0x1400a3d76
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a3d54
cmp dword [rax + 0x2c], edi
je 0x1400a3d54
cmp dword [rax + 0xe8], edi
jne 0x1400a3d54
xor ecx, ecx
mov qword [rbp + 0x18], rcx
mov dword [rbp + 0x20], ecx
lea r9, [rbp + 0x20]
lea r8, [rbp + 0x1c]
lea rdx, [rbp + 0x18]
mov rcx, rax
call fcn.14006d020
test eax, eax
je 0x1400a3d54
mov r8, rbx
cmp ebx, 0xc
mov rax, rbx
jbe 0x1400a3d36
mov eax, SafeArrayDestroy
mov dword [r12], eax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rbp + 0x18]
mov rcx, r14
call fcn.1400c1190
mov rcx, qword [rsi + 0x10]
sub rcx, 0x18
call fcn.140006ba0
add rax, 0x18
mov qword [rsp + 0x48], rax
mov esi, 1
mov rbx, qword [rsp + 0x68]
jmp 0x1400a3dd0
call fcn.140004f00
mov rcx, rax
test rax, rax
je 0x1400a458b
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x68], rax
lea rdx, str.Cant_Find_AudioDevice
lea rcx, [rsp + 0x68]
call fcn.1400046a0
test al, al
jne 0x1400a3dc3
mov r8d, SafeArrayGetElement
lea rdx, str.Cant_Find_AudioDevice
lea rcx, [rsp + 0x68]
call fcn.140004940
nop
mov esi, 2
mov rbx, qword [rsp + 0x68]
mov rax, rbx
mov dword [rsp + 0x40], esi
mov qword [rsp + 0x38], rax
mov eax, dword [r12]
mov dword [rsp + 0x30], eax
xorps xmm3, xmm3
movups xmmword [rsp + 0x20], xmm3
movq r9, xmm3
mov r8d, 0x16d
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_fLevelMinDB_f_fLevelMaxDB_f_fStepping_f_ulBytesReturned_d_EpId_s
call fcn.14005c7e0
nop
mov r14, 0xffffffffffffffff
test sil, 2
je 0x1400a3e3a
and esi, 0xfffffffd
mov dword [rsp + 0x40], esi
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400a3e36
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov esi, dword [rsp + 0x40]
test sil, 1
je case.default.0x1400a3b44
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg case.default.0x1400a3b44
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp case.default.0x1400a3b44
test r14, r14
jne 0x1400a3e7b
mov r8d, 0x173
jmp 0x1400a3502
mov r13d, edi
mov dword [rsp + 0x58], edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a3ee9
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a3eb6
mov esi, 1
cmp dword [rax + 0x20], edi
cmovne r13d, esi
mov dword [rsp + 0x58], r13d
mov rax, rbx
cmp ebx, 4
mov r8, rbx
jbe 0x1400a3ec7
mov r8d, 4
mov dword [r12], r8d
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rsp + 0x58]
mov rcx, r14
call fcn.1400c1190
mov r8d, 0x182
jmp 0x1400a3aef
test r14, r14
jne 0x1400a3f04
mov r8d, 0x187
jmp 0x1400a3502
mov dword [rbp - 0x30], edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a3fc9
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a3fc9
cmp dword [rax + 0x20], edi
je 0x1400a3fc9
mov qword [rbp - 0x48], rdi
lea r9, [rbp - 0x48]
lea r8, [0x1400e1c88]
mov edx, dword [rax + 0x18]
mov rcx, rax
call fcn.14006d6d0
test eax, eax
jne 0x1400a3f74
mov r8d, reloc.OLEAUT32.dll_LPSAFEARRAY_Size
lea rdx, str.CMMLineControl::GetBoostAgc
lea rcx, str._s__d_RETURN_FALSE_ON_FALSE
call fcn.14005c7e0
jmp 0x1400a3fc9
mov rcx, qword [rbp - 0x48]
mov rax, qword [rcx]
lea rdx, [rbp - 0x30]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
mov esi, eax
mov rcx, qword [rbp - 0x48]
test rcx, rcx
je 0x1400a3f93
mov rdx, qword [rcx]
call qword [rdx + 0x10]
test esi, esi
js 0x1400a3fc9
mov rax, rbx
cmp ebx, 4
mov r8, rbx
jbe 0x1400a3fa8
mov r8d, 4
mov dword [r12], r8d
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rbp - 0x30]
mov rcx, r14
call fcn.1400c1190
mov r9d, dword [rbp - 0x30]
mov r8d, reloc.OLEAUT32.dll_SafeArrayCopyData
lea rcx, str._s__d_GetAgcEnable_d_ulBytesReturned_d
jmp 0x1400a3af9
test r13, r13
jne 0x1400a3fef
mov r8d, 0x1a0
jmp 0x1400a3502
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je case.default.0x1400a3b44
lea rcx, [rax + 0xc8]
call fcn.1400101c0
mov r14, rax
test rax, rax
je case.default.0x1400a3b44
cmp dword [rax + 0x20], edi
je case.default.0x1400a3b44
mov dword [rbp - 0x20], edi
cmp esi, 4
mov r8, rsi
jbe 0x1400a4037
mov r8d, 4
mov rdx, r13
lea rcx, [rbp - 0x20]
call fcn.1400c1190
mov edx, dword [rbp - 0x20]
mov rcx, r14
call fcn.14006cf40
movsxd rdi, eax
mov ecx, dword [r12]
mov dword [rsp + 0x20], ecx
mov r9d, dword [rbp - 0x20]
mov r8d, 0x1ae
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_SetAgcEnable_d_ulBytesReturned_d
call fcn.14005c7e0
jmp 0x1400a455a
test r14, r14
jne 0x1400a408b
mov r8d, 0x1b6
jmp 0x1400a3502
mov r13d, edi
mov dword [rsp + 0x5c], edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a40f9
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a40c6
mov esi, 1
cmp dword [rax + 0x3c], edi
cmovne r13d, esi
mov dword [rsp + 0x5c], r13d
mov rax, rbx
cmp ebx, 4
mov r8, rbx
jbe 0x1400a40d7
mov r8d, 4
mov dword [r12], r8d
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rsp + 0x5c]
mov rcx, r14
call fcn.1400c1190
mov r8d, 0x1c5
lea rcx, str._s__d_bEarProtectSup_d_ulBytesReturned_d
jmp 0x1400a3af6
test r14, r14
jne 0x1400a411b
mov r8d, 0x1ca
jmp 0x1400a3502
mov dword [rbp - 0x34], edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a4188
lea rcx, [rax + 0xc8]
call fcn.1400101c0
test rax, rax
je 0x1400a4188
cmp dword [rax + 0x3c], edi
je 0x1400a4188
lea rdx, [rbp - 0x34]
mov rcx, rax
call fcn.14006d510
test eax, eax
je 0x1400a4188
mov rax, rbx
cmp ebx, 4
mov r8, rbx
jbe 0x1400a4167
mov r8d, 4
mov dword [r12], r8d
mov r8, rax
xor edx, edx
mov rcx, r14
call fcn.1400c0ee0
mov r8d, dword [r12]
lea rdx, [rbp - 0x34]
mov rcx, r14
call fcn.1400c1190
mov r9d, dword [rbp - 0x34]
mov r8d, 0x1dd
lea rcx, str._s__d_GetEarProtectEnable_d_ulBytesReturned_d
jmp 0x1400a3af9
test r13, r13
jne 0x1400a41ae
mov r8d, 0x1e2
jmp 0x1400a3502
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je case.default.0x1400a3b44
lea rcx, [rax + 0xc8]
call fcn.1400101c0
mov r14, rax
test rax, rax
je case.default.0x1400a3b44
cmp dword [rax + 0x3c], edi
je case.default.0x1400a3b44
mov dword [rbp - 0x24], edi
cmp esi, 4
mov r8, rsi
jbe 0x1400a41f6
mov r8d, 4
mov rdx, r13
lea rcx, [rbp - 0x24]
call fcn.1400c1190
mov edx, dword [rbp - 0x24]
mov rcx, r14
call fcn.14006d5f0
movsxd rdi, eax
mov ecx, dword [r12]
mov dword [rsp + 0x20], ecx
mov r9d, dword [rbp - 0x24]
mov r8d, 0x1f0
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_SetEarProtectEnable_d_ulBytesReturned_d
call fcn.14005c7e0
jmp 0x1400a455a
test r13, r13
jne 0x1400a424a
mov r8d, 0x200
jmp 0x1400a3502
mov dword [rbp - 0x38], 0x63
mov r14d, edi
call fcn.14000b4c0
mov rdx, r15
call fcn.14008cc20
test rax, rax
je 0x1400a4527
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x64], edi
add rax, 0x10
mov qword [rsp + 0x48], rax
mov esi, 1
mov r9d, esi
lea r8, [rsp + 0x60]
lea rdx, [0x1400d9bc0]
mov rcx, rax
call fcn.1400031c0
mov r14d, eax
mov dword [rsp + 0x28], eax
mov ebx, dword [rsp + 0x60]
mov dword [rsp + 0x20], ebx
mov r9, r15
mov r8d, 0x20c
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_EpId_s_PKEY_RTK_BSS_PURE_MODE_d_bSuccess_d
call fcn.14005c7e0
test r14d, r14d
je 0x1400a4527
cmp ebx, 2
jne 0x1400a4527
mov r9d, esi
lea r8, [rsp + 0x64]
lea rdx, [0x1400d9b60]
mov rcx, qword [rsp + 0x48]
call fcn.1400031c0
mov r14d, eax
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x28], eax
mov ebx, dword [rsp + 0x64]
mov dword [rsp + 0x20], ebx
mov r9, r15
mov r8d, 0x212
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_EpId_s_dwSpeakerTraceEnable_d_bSuccess_d
call fcn.14005c7e0
test r14d, r14d
je 0x1400a4527
cmp ebx, esi
jne 0x1400a4527
mov eax, dword [rsp + 0x44]
cmp eax, 4
mov r8d, eax
jbe 0x1400a433d
lea r8d, [rsi + 3]
mov rdx, r13
lea rcx, [rbp - 0x38]
call fcn.1400c1190
mov dword [rsp + 0x28], r14d
mov r13d, dword [rbp - 0x38]
mov dword [rsp + 0x20], r13d
mov r9, r15
mov r8d, 0x218
lea rdx, str.ServiceCommandForAudioDevice
lea rcx, str._s__d_EpId_s_bEnroll_d_bSuccess_d
call fcn.14005c7e0
mov rbx, qword [0x140159ce8]
test rbx, rbx
jne 0x1400a443a
mov eax, esi
lock xadd dword [0x140159eb4], eax
test eax, eax
jne 0x1400a4410
lea rcx, [0x140159cf0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_InitializeCriticalSection]
lea rcx, [0x140159cf0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
lea ecx, [rbx + 0x18]
call fcn.1400bac44
mov rbx, rax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rbx + 0x10], rax
mov qword [rbx], rdi
mov qword [rbx + 8], rdi
call fcn.140004f00
mov rcx, rax
test rax, rax
je 0x1400a4580
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbx + 0x10], rax
mov qword [0x140159ce8], rbx
lea rcx, [0x140159cf0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
mov rbx, qword [0x140159ce8]
jmp 0x1400a4436
lea rcx, [0x140159cf0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_EnterCriticalSection]
lea rcx, [0x140159cf0]
call qword [sym.imp.api_ms_win_core_synch_l1_1_0.dll_LeaveCriticalSection]
mov rbx, qword [0x140159ce8]
test rbx, rbx
je 0x1400a4410
mov r13d, dword [rbp - 0x38]
mov r9d, r13d
mov r8d, 0xce
lea rdx, str.CRtkBssGen5SpkTrackEnroll::SpkTrackEnrollControl
lea rcx, str._s__d_bStart___d
call fcn.14005c7e0
mov dword [rbp - 8], edi
lea rdx, str.CRtkBssGen5SpkTrackEnroll::SpkTrackEnrollControl
test r13d, r13d
je 0x1400a44e4
mov r9d, dword [0x140157dc0]
mov r8d, 0xd4
lea rcx, str._s__d_m_bStop___d
call fcn.14005c7e0
mov dword [0x140157dc0], edi
lea rcx, [rbx + 0x10]
call fcn.140004a60
test r15, r15
jne 0x1400a4497
mov r14d, edi
jmp 0x1400a44aa
mov r14, 0xffffffffffffffff
nop
inc r14
cmp word [r15 + r14*2], di
jne 0x1400a44a0
mov r8d, r14d
mov rdx, r15
lea rcx, [rbx + 0x10]
call fcn.140004940
lea rax, [rbp - 8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
mov r9, rbx
lea r8, [0x14009bcd0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_processthreads_l1_1_0.dll_CreateThread]
mov qword [rbx], rax
mov r14d, dword [rsp + 0x70]
jmp 0x1400a4505
mov r8d, 0xdd
lea rcx, str._s__d_m_bStop__TRUE
call fcn.14005c7e0
mov dword [0x140157dc0], esi
lea rcx, [rbx + 0x10]
call fcn.140004a60
mov r9d, dword [0x140157dc0]
mov r8d, 0xe2
lea rdx, str.CRtkBssGen5SpkTrackEnroll::SpkTrackEnrollControl
lea rcx, str._s__d_m_bStop___d
call fcn.14005c7e0
jmp 0x1400a452b
mov r13d, dword [rbp - 0x38]
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x20], r13d
mov r8d, 0x21f
lea rcx, str._s__d_EpId_s_bEnroll_d_bSuccess_d
mov r9, r15
lea rdx, str.ServiceCommandForAudioDevice
call fcn.14005c7e0
cmp dword [r12], 0
seta dil
mov rax, rdi
mov rcx, qword [rbp + 0xa0]
xor rcx, rsp
call fcn.1400ba610
add rsp, 0x1b8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.140005030
int3
mov ecx, 0x80004005
call fcn.140005030
int3