Function at 0x1400896b0
Capabilities:
Print debug messages

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rsp + 0xa0], rbx
mov r13, rdx
mov rbp, rcx
lea rcx, str.CDtsHPSetting::InitSetting_start_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
test r13, r13
jne 0x1400896f0
xor eax, eax
jmp 0x140089fab
mov qword [rbp + 0x20], r13
mov rdx, r13
mov rcx, rbp
call fcn.140053b10
mov rcx, qword [rbp + 0x20]
mov rax, qword [rcx]
lea rdx, [rbp + 0x30]
call qword [rax + 0x70]
mov rdx, qword [0x140206cc8]
add dword [rdx + 0x1c34], 1
test rdx, rdx
je 0x140089731
bt dword [rdx + 0x1b0], 9
jae 0x140089731
mov dword [rbp + 0x3c], 1
mov ecx, dword [rbp + 0x3c]
lea rdx, [0x140207f00]
lea rax, [0x140207e20]
test ecx, ecx
cmovne rax, rdx
mov qword [rbp + 0x40], rax
mov eax, 9
mov edx, 0x15
test ecx, ecx
cmovne eax, edx
mov dword [rbp + 0x48], eax
call fcn.140129a50
mov rdx, rax
xor r12d, r12d
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140089781
mov ecx, 0x80004005
call fcn.140002d80
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0xb8], rax
mov dword [rsp + 0xa8], r12d
call fcn.140129a50
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x1400897be
mov ecx, 0x80004005
call fcn.140002d80
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xb0], rbx
lea rdx, [0x14017f438]
or rsi, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x140089813
movzx edi, dx
mov ecx, edi
call fcn.140138984
test rax, rax
je 0x14008983a
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0xb0]
call fcn.140004d70
mov rbx, qword [rsp + 0xb0]
jmp 0x14008983a
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0xb0]
call fcn.1400032e0
mov rbx, qword [rsp + 0xb0]
mov r14d, r12d
mov eax, dword [r13 + 0x320]
shr eax, 0x1b
and eax, 1
mov dword [rbp + 0x38], eax
je 0x1400898c7
lea rax, [rbp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [0x140193528]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1401934d8]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x1400898ba
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140089892
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x1400898b3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
lea rcx, str.controller.CoCreateInstance___uuidof_DTSAPOIntelDSP__:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea rdi, [rbp + 0x58]
mov qword [rsp + 0x20], rdi
lea r9, [0x140193538]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1401934e8]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140089932
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14008990a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x14008992b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
lea rcx, str.pSRSApoSystem.CoCreateInstance___uuidof_SRSAPOSystem__:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rdi]
mov rax, qword [rcx]
xor edx, edx
call qword [rax + 0x20]
test eax, eax
jns 0x140089992
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14008996a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x14008998b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
lea rcx, str.pSRSApoSystem__InitializeSystem_:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rdi]
mov rax, qword [rcx]
lea rdx, [rbp + 0x60]
call qword [rax + 0x18]
test eax, eax
jns 0x1400899f4
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400899cc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x1400899ed
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
mov rdi, qword [rbp + 0x20]
mov rax, qword [rdi + 0x118]
cmp dword [rax - 8], 1
jle 0x140089a14
mov edx, dword [rax - 0x10]
lea rcx, [rdi + 0x118]
call fcn.140002e00
mov r8, qword [rdi + 0x118]
lea rdx, str.m_sEndPointId__s_r_n
lea rcx, [rsp + 0xb8]
call fcn.140004be0
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rbp + 0x60]
mov rax, qword [rcx]
lea r8, [rbp + 0x68]
lea rdx, [0x1401934f8]
call qword [rax]
mov r8d, eax
lea rdx, str.pSRSEpEnum__QueryInterface___uuidof_ISRSEndpointInfo___x_r_n
lea rcx, [rsp + 0xb8]
call fcn.140004be0
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r15, qword [rbp + 0x60]
mov rdi, qword [rbp + 0x20]
mov rax, qword [rdi + 0x118]
cmp dword [rax - 8], 1
jle 0x140089a9a
mov edx, dword [rax - 0x10]
lea rcx, [rdi + 0x118]
call fcn.140002e00
mov rax, qword [r15]
lea r8, [rbp + 0x68]
mov rdx, qword [rdi + 0x118]
mov rcx, r15
call qword [rax + 0x28]
test eax, eax
jns 0x140089af6
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140089ace
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x140089aef
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
mov rcx, qword [rbp + 0x68]
mov rax, qword [rcx]
mov edx, r12d
cmp dword [rbp + 0x38], edx
setne dl
call qword [rax + 0x58]
lea rcx, str.pSRSEpInfo__SetConfig_:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rbp + 0x68]
mov rax, qword [rcx]
lea r8, [rbp + 0x70]
lea rdx, [0x140193508]
call qword [rax]
test eax, eax
jne 0x140089dfd
lea rcx, str.pSRSEpInfo__QueryInterface___uuidof_ISRSEndpointInfo5__:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rbp + 0x70]
mov rax, qword [rcx]
lea rdx, [rbp + 0x78]
call qword [rax + 0x88]
mov rcx, qword [rbp + 0x70]
mov rax, qword [rcx]
lea rdx, [rbp + 0x88]
call qword [rax + 0x48]
test eax, eax
jne 0x140089c1b
mov rcx, qword [rbp + 0x88]
mov rax, qword [rcx]
lea rdx, [rsp + 0xa8]
call qword [rax + 0x30]
xor eax, eax
mov rcx, rsi
lea rdi, [0x14017f438]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x14017f438]
lea rcx, [rsp + 0xb0]
call fcn.1400032e0
mov rcx, qword [rbp + 0x88]
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
call qword [rax + 0x20]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
jne 0x140089bc9
mov ecx, r12d
jmp 0x140089bdb
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov r8d, ecx
lea rcx, [rsp + 0xb0]
call fcn.1400032e0
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x50]
call fcn.140002f10
mov rdx, rax
mov rcx, rbp
call fcn.14008a140
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rbx, qword [rsp + 0xb0]
mov rcx, qword [rbp + 0x70]
lea rdi, [rbp + 0x80]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 0x30]
mov r13d, r12d
lea rax, [rbp + 0x90]
mov qword [rsp + 0x40], rax
nop
mov rcx, qword [rdi]
movsxd rax, r13d
lea r14, [rbp + rax*8 + 0x90]
mov rax, qword [rcx]
mov rdx, r14
call qword [rax + 0x18]
mov r15d, eax
test eax, eax
jne 0x140089dce
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rbx]
mov rax, qword [rcx]
lea rdx, [rsp + 0xa8]
call qword [rax + 0x30]
xor eax, eax
mov rcx, rsi
lea rdi, [0x14017f438]
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, [0x14017f438]
lea rcx, [rsp + 0xb0]
call fcn.1400032e0
mov rcx, qword [rbx]
mov rax, qword [rcx]
lea rdx, [rsp + 0x30]
call qword [rax + 0x20]
mov rdx, qword [rsp + 0x30]
test rdx, rdx
jne 0x140089cbf
mov ecx, r12d
jmp 0x140089cd1
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov r8d, ecx
lea rcx, [rsp + 0xb0]
call fcn.1400032e0
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x58]
call fcn.140002f10
mov r8d, r13d
mov rdx, rax
mov rcx, rbp
call fcn.14008a050
call fcn.140129a50
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
je 0x140089de5
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov r9, qword [rsp + 0xb0]
cmp dword [r9 - 8], 1
jle 0x140089d5c
mov edx, dword [r9 - 0x10]
lea rcx, [rsp + 0xb0]
call fcn.140002e00
mov r9, qword [rsp + 0xb0]
mov rax, qword [r14]
mov qword [rsp + 0x20], rax
mov r8d, r13d
lea rdx, str._RTK__DTS_get_mode___d___s_point_x_r_n
lea rcx, [rsp + 0x38]
call fcn.140004be0
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add r13d, 1
add rbx, 8
mov qword [rsp + 0x40], rbx
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140089dbf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0xb0]
lea rdi, [rbp + 0x80]
jmp 0x140089dce
mov rbx, qword [rsp + 0xb0]
lea rdi, [rbp + 0x80]
mov r14d, 1
mov dword [rbp + 0x198], r14d
test r15d, r15d
jne 0x140089df0
jmp 0x140089c40
mov ecx, 0x80004005
call fcn.140002d80
int3
lea rcx, str.pSRSAPOOpModeEnumerator__Next_:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [rbp + 0x38], 0
je 0x140089f5c
lea rdi, [rbp + 0x138]
mov qword [rsp + 0x20], rdi
lea r9, [0x140193548]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1401934d8]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140089e75
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140089e4d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x140089e6e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
lea rcx, str.pDTSAPOIntelDSP3.CoCreateInstance____uuidof_DTSAPOIntelDSP__:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov r13, qword [rdi]
mov rdi, qword [rbp + 0x20]
mov rax, qword [rdi + 0x118]
cmp dword [rax - 8], 1
jle 0x140089ea5
mov edx, dword [rax - 0x10]
lea rcx, [rdi + 0x118]
call fcn.140002e00
mov rax, qword [r13]
mov rdx, qword [rdi + 0x118]
mov rcx, r13
call qword [rax + 0x58]
mov r11d, eax
mov r8, qword [rbp + 0x20]
mov rdx, qword [r8 + 0x118]
test rdx, rdx
je 0x140089ee2
xor eax, eax
mov rcx, rsi
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
mov r12, rcx
test ecx, ecx
js 0x140089f51
cmp r12d, dword [rdx - 0xc]
jg 0x140089f51
mov dword [rdx - 0x10], r12d
movsxd rcx, r12d
mov rax, qword [r8 + 0x118]
mov word [rax + rcx*2], 0
test r11d, r11d
jns 0x140089f42
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140089f1d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x140089f3e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x140089fab
lea rcx, str.pDTSAPOIntelDSP3__put_dspDeviceId_:_Success_r_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140089f5c
mov ecx, 0x80070057
call fcn.140002d80
int3
mov edx, dword [rbp + 0x194]
mov rcx, rbp
call fcn.14008a2f0
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140089f87
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xb8]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
add esi, 0xffffffff
test esi, esi
jg 0x140089fa8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r14d
mov rbx, qword [rsp + 0xa0]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret