Function at 0x1400544f0
Capabilities:
Check os version

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov qword [rsp + 0xd0], 0xfffffffffffffffe
mov r15, rcx
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x14005452e
mov rax, qword [rcx]
call qword [rax + 0xb0]
jmp 0x1400561be
cmp qword [r15 + 0x10], 0
je 0x1400561be
mov rcx, r15
call fcn.140054390
mov rcx, qword [r15 + 0x10]
test byte [rcx + 0xc], 8
je 0x1400545a7
mov rcx, qword [rcx + 0x1a20]
test rcx, rcx
je 0x1400545a7
mov rax, rcx
test rcx, rcx
je 0x1400545a1
mov rcx, qword [rcx]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x14005458a
cmp dword [rax + 0xb8], 8
jne 0x14005458a
cmp dword [rax + 0x48], 0
jne 0x14005458a
mov rax, qword [rax + 0xc8]
mov rdx, qword [rax + 0x10]
test rdx, rdx
jne 0x140054591
test rcx, rcx
je 0x1400545a7
jmp 0x140054557
mov dword [rdx + 0x34], 0
mov dword [rdx + 0x30], 0
jmp 0x1400545a7
call fcn.1401e7838
int3
mov rbp, qword [r15 + 0x10]
mov eax, dword [rbp + 0xc]
test al, 0x20
jne 0x1400545bc
bt eax, 0xb
jae 0x1400546d9
mov dword [rsp + 0x138], 0
mov rbp, qword [rbp + 0x1a20]
test rbp, rbp
je 0x1400546d9
nop
nop
nop
mov rsi, rbp
test rbp, rbp
je 0x1400546d3
mov rbp, qword [rbp]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x1400546c3
test byte [rsi + 0x178], 8
je 0x1400546c3
mov eax, dword [rsi + 0x17c]
test al, 0x20
jne 0x140054634
test al, 0x40
jne 0x140054634
test al, al
js 0x140054634
bt dword [rsi + 0x180], 0x12
jb 0x140054634
mov rax, qword [r15 + 0x10]
test byte [rax + 0xc], 0x20
jne 0x1400546c3
mov rdi, qword [rsi + 0x100]
test rdi, rdi
je 0x14005466b
mov rbx, rdi
test rdi, rdi
je 0x1400546cd
mov rdi, qword [rdi]
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140054666
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
cmp eax, 1
je 0x14005466d
test rdi, rdi
jne 0x140054640
xor ebx, ebx
mov dword [rsp + 0x20], 0
lea r9, str._a__
lea r8, str._a__
xor edx, edx
mov rcx, rbx
call fcn.140216fa0
mov rdi, rax
test rax, rax
je 0x1400546c3
cmp dword [rsi + 0x48], 0
je 0x1400546c3
lea rdx, [rsp + 0x138]
mov rcx, rax
call fcn.14016d6e0
test eax, eax
jne 0x1400546c3
cmp dword [rsp + 0x138], eax
jne 0x1400546c3
lea edx, [rax + 1]
mov rcx, rdi
call fcn.14016d850
test rbp, rbp
je 0x1400546d9
jmp 0x1400545e0
call fcn.1401e7838
int3
call fcn.1401e7838
int3
mov rax, qword [r15 + 0x10]
mov ecx, dword [rax + 0x10]
lea rsi, [0x140260b08]
or r14, 0xffffffffffffffff
mov r13d, 4
mov dword [rsp + 0x140], r13d
test cl, 8
jne 0x14005470d
test cl, 0x10
jne 0x14005470d
bt ecx, 0xe
jae 0x140054cc8
cmp dword [0x140311024], 0
jne 0x14005472d
mov dword [0x140311020], 0x114
lea rcx, [0x140311020]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [0x140311024], 6
jne 0x140054cc8
cmp dword [0x140311028], 0
jne 0x140054cc8
call fcn.1401e9268
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140054766
mov ecx, 0x80004005
call fcn.140003c70
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x40], rax
mov r12, rsi
shr r12, 0x10
jne 0x1400547a2
movzx edi, si
mov ecx, edi
call fcn.1401eb134
test rax, rax
je 0x1400547c2
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400074b0
jmp 0x1400547c2
xor eax, eax
mov rcx, r14
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.140007720
nop
mov rax, qword [r15 + 0x10]
mov ecx, dword [rax + 0x10]
test cl, 8
je 0x1400547fc
xor eax, eax
mov rcx, r14
lea rdi, str.SetSpeakersAsDefaultAt1stPlugIn
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetSpeakersAsDefaultAt1stPlugIn
lea rcx, [rsp + 0x40]
call fcn.140007720
mov ebp, 1
jmp 0x140054868
test cl, 0x10
je 0x14005482f
xor eax, eax
mov rcx, r14
lea rdi, str.SetHDMIAsDefaultAt1stPlugIn
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetHDMIAsDefaultAt1stPlugIn
lea rcx, [rsp + 0x40]
call fcn.140007720
mov ebp, 9
jmp 0x140054868
bt ecx, 0xe
jae 0x140054861
xor eax, eax
mov rcx, r14
lea rdi, str.SetFrontMicAsDefaultAt1stPlugIn
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetFrontMicAsDefaultAt1stPlugIn
lea rcx, [rsp + 0x40]
call fcn.140007720
mov ebp, r13d
jmp 0x140054868
mov ebp, dword [rsp + 0x130]
xor r9d, r9d
mov r8, qword [rsp + 0x40]
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401ee9b4
test eax, eax
jne 0x140054ca7
mov rax, qword [r15 + 0x10]
mov rsi, qword [rax + 0x1a20]
test rsi, rsi
je 0x140054ca0
mov rbx, qword [rsi + 0x10]
mov rsi, qword [rsi]
test rbx, rbx
je 0x140054896
cmp dword [rbx + 0xb8], ebp
jne 0x140054896
mov rax, qword [r15 + 0x10]
bt dword [rax + 0x10], 0xe
jae 0x140054a80
call fcn.1401e9268
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
je 0x140054af1
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
add rax, 0x18
mov qword [rsp + 0x148], rax
test r12, r12
jne 0x14005491c
lea rax, [0x140260b08]
movzx edi, ax
mov ecx, edi
call fcn.1401eb134
test rax, rax
je 0x140054943
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x148]
call fcn.1400074b0
jmp 0x140054943
xor eax, eax
mov rcx, r14
lea rdx, [0x140260b08]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x148]
call fcn.140007720
nop
mov rax, qword [rbx]
lea rdx, [rsp + 0x148]
mov rcx, rbx
call qword [rax + 0x28]
test eax, eax
jne 0x140054985
mov rdx, qword [rsp + 0x148]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140054896
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140054896
mov rcx, qword [rsp + 0x148]
movsxd rdi, dword [rcx - 0x10]
mov edx, 1
sub edx, dword [rcx - 8]
mov eax, dword [rcx - 0xc]
sub eax, edi
or eax, edx
jge 0x1400549b9
mov edx, edi
lea rcx, [rsp + 0x148]
call fcn.140003c90
mov rcx, qword [rsp + 0x148]
lea eax, [rdi + 1]
movsxd rdx, eax
call fcn.1402173a0
test edi, edi
js 0x140054ae6
mov rax, qword [rsp + 0x148]
cmp edi, dword [rax - 0xc]
jg 0x140054ae6
mov dword [rax - 0x10], edi
mov rax, qword [rsp + 0x148]
mov word [rax + rdi*2], 0
mov rax, qword [rsp + 0x148]
cmp dword [rax - 0x10], 0
jge 0x140054a01
mov edx, r14d
jmp 0x140054a33
lea rdx, str.FRONTMICINWAVE
mov rcx, rax
call fcn.140217480
mov rdx, rax
test rax, rax
jne 0x140054a25
mov edx, r14d
mov rax, qword [rsp + 0x148]
jmp 0x140054a33
mov rax, qword [rsp + 0x148]
sub rdx, rax
sar rdx, 1
xor ecx, ecx
cmp edx, 0xffffffff
setne cl
test ecx, ecx
jne 0x140054a64
lea rdx, [rax - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140054896
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x140054896
lea rdx, [rax - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140054a80
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rbx + 0x100]
test rdi, rdi
je 0x140054ab7
nop
mov rbx, rdi
test rdi, rdi
je 0x140054afc
mov rdi, qword [rdi]
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140054ab2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
cmp eax, 5
je 0x140054ab9
test rdi, rdi
jne 0x140054a90
xor ebx, ebx
mov dword [rsp + 0x20], 0
lea r9, str._a__
lea r8, str._a__
xor edx, edx
mov rcx, rbx
call fcn.140216fa0
mov rbx, rax
test rax, rax
jne 0x140054b02
jmp 0x140054896
mov ecx, 0x80070057
call fcn.140003c70
nop
mov ecx, 0x80004005
call fcn.140003c70
int3
call fcn.1401e7838
int3
cmp qword [rax + 0x30], 0
je 0x140054b82
mov qword [rsp + 0x88], 0
lea rax, [rsp + 0x88]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140054b55
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140054b82
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140054b82
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x88]
mov rdi, qword [rcx]
xor r8d, r8d
mov rdx, qword [rax + 0x28]
call qword [rdi + 0x60]
nop
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140054b82
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
cmp qword [rbx + 0x30], 0
je 0x140054c05
mov qword [rsp + 0xb8], 0
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140054bd5
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x140054c05
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140054c05
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0xb8]
mov rdi, qword [rcx]
mov r8d, 1
mov rdx, qword [rax + 0x28]
call qword [rdi + 0x60]
nop
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x140054c05
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
cmp qword [rbx + 0x30], 0
je 0x140054c79
mov qword [rsp + 0x78], 0
lea rax, [rsp + 0x78]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140054c4f
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140054c79
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140054c79
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x78]
mov rdi, qword [rcx]
mov r8d, 2
mov rdx, qword [rax + 0x28]
call qword [rdi + 0x60]
nop
mov rcx, qword [rsp + 0x78]
test rcx, rcx
je 0x140054c79
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9d, 1
mov r8, qword [rsp + 0x40]
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401eea54
lea rsi, [0x140260b08]
jmp 0x140054ca7
lea rsi, [0x140260b08]
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140054cc8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r15 + 0x10]
test byte [rax + 0x28], 0x10
je 0x1400550a5
call fcn.1401e9268
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x140054cf5
mov ecx, 0x80004005
call fcn.140003c70
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x48], rdi
test rsi, 0xffffffffffff0000
jne 0x140054d36
movzx ebx, si
mov ecx, ebx
call fcn.1401eb134
test rax, rax
je 0x140054d5a
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1400074b0
mov rdi, qword [rsp + 0x48]
jmp 0x140054d5a
xor eax, eax
mov rcx, r14
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x48]
call fcn.140007720
mov rdi, qword [rsp + 0x48]
mov rax, qword [r15 + 0x10]
test byte [rax + 0x28], 0x10
je 0x140054d98
xor eax, eax
mov rcx, r14
lea rdi, str.SetSpeakersAsDefaultAt1stPlugIn
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetSpeakersAsDefaultAt1stPlugIn
lea rcx, [rsp + 0x48]
call fcn.140007720
mov r13d, 1
mov rdi, qword [rsp + 0x48]
jmp 0x140054da0
mov r13d, dword [rsp + 0x130]
xor r9d, r9d
mov r8, rdi
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401ee9b4
test eax, eax
jne 0x14005507b
mov rax, qword [r15 + 0x10]
mov r12, qword [rax + 0x1a20]
test r12, r12
je 0x14005507b
nop
nop
nop
mov rbx, r12
test r12, r12
je 0x140055075
mov r12, qword [r12]
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140054e65
cmp dword [rbx + 0xb8], r13d
jne 0x140054e65
cmp dword [rbx + 0x58], 1
jne 0x140054e65
mov rbx, qword [rbx + 0x100]
test rbx, rbx
je 0x140054e3b
mov rsi, rbx
test rbx, rbx
je 0x140054e73
mov rbx, qword [rbx]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x140054e36
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
cmp eax, 5
je 0x140054e3d
test rbx, rbx
jne 0x140054e14
xor esi, esi
mov dword [rsp + 0x20], 0
lea r9, str._a__
lea r8, str._a__
xor edx, edx
mov rcx, rsi
call fcn.140216fa0
mov rbp, rax
test rax, rax
jne 0x140054e79
test r12, r12
je 0x14005506c
jmp 0x140054de0
call fcn.1401e7838
int3
xor r13d, r13d
mov r12d, r13d
nop
cmp qword [rbp + 0x30], 0
jne 0x140054e8f
mov ebx, r13d
jmp 0x140054f0f
mov qword [rsp + 0xa8], r13
lea rax, [rsp + 0xa8]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140054eda
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140054ed5
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov ebx, r13d
jmp 0x140054f0f
mov rax, qword [rbp + 0x30]
mov rcx, qword [rsp + 0xa8]
mov r9, qword [rcx]
xor r8d, r8d
mov rdx, qword [rax + 0x28]
call qword [r9 + 0x60]
mov ebx, r13d
test eax, eax
setns bl
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140054f0f
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
cmp qword [rbp + 0x30], 0
jne 0x140054f1b
mov esi, r13d
jmp 0x140054f90
mov qword [rsp + 0x60], r13
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140054f5d
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140054f58
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov esi, r13d
jmp 0x140054f90
mov rax, qword [rbp + 0x30]
mov rcx, qword [rsp + 0x60]
mov r9, qword [rcx]
mov r8d, 1
mov rdx, qword [rax + 0x28]
call qword [r9 + 0x60]
mov esi, r13d
test eax, eax
setns sil
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140054f90
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
and ebx, esi
cmp qword [rbp + 0x30], 0
jne 0x140054fa1
mov esi, r13d
jmp 0x140055025
mov qword [rsp + 0xc8], r13
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140054fec
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x140054fe7
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov esi, r13d
jmp 0x140055025
mov rax, qword [rbp + 0x30]
mov rcx, qword [rsp + 0xc8]
mov r9, qword [rcx]
mov r8d, 2
mov rdx, qword [rax + 0x28]
call qword [r9 + 0x60]
mov esi, r13d
test eax, eax
setns sil
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x140055025
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
and ebx, esi
jne 0x140055032
lea ecx, [rbx + 0xa]
call qword [sym.imp.KERNEL32.dll_Sleep]
add r12d, 1
test ebx, ebx
jne 0x140055044
cmp r12d, 5
jb 0x140054e80
mov r9d, r13d
test ebx, ebx
setne r9b
mov r8, rdi
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401eea54
lea rsi, [0x140260b08]
jmp 0x14005507b
lea rsi, [0x140260b08]
jmp 0x14005507b
call fcn.1401e7838
nop
lea rdx, [rdi - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14005509f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r13d, 4
jmp 0x1400550a5
mov r13d, 4
mov rax, qword [r15 + 0x10]
bt dword [rax + 0x28], 0xb
jae 0x1400553e9
call fcn.1401e9268
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400550d3
mov ecx, 0x80004005
call fcn.140003c70
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x38], rdi
test rsi, 0xffffffffffff0000
jne 0x140055114
movzx ebx, si
mov ecx, ebx
call fcn.1401eb134
test rax, rax
je 0x140055138
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.1400074b0
mov rdi, qword [rsp + 0x38]
jmp 0x140055138
xor eax, eax
mov rcx, r14
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x38]
call fcn.140007720
mov rdi, qword [rsp + 0x38]
mov rax, qword [r15 + 0x10]
bt dword [rax + 0x28], 0xb
jae 0x140055171
xor eax, eax
mov rcx, r14
lea rdi, str.SetMicAsDefaultAt1stPlugIn
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetMicAsDefaultAt1stPlugIn
lea rcx, [rsp + 0x38]
call fcn.140007720
mov rdi, qword [rsp + 0x38]
jmp 0x140055179
mov r13d, dword [rsp + 0x130]
mov rax, qword [r15 + 0x10]
mov rbp, qword [rax + 0x1a20]
test rbp, rbp
je 0x1400553cd
nop
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.1400073d0
nop
mov rsi, rbp
test rbp, rbp
je 0x1400553c7
mov rbp, qword [rbp]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
jne 0x1400551e1
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400553a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400553a3
cmp dword [rsi + 0xb8], r13d
jne 0x140055382
cmp dword [rsi + 0x58], 1
jne 0x140055382
mov edx, 5
mov rcx, rsi
call fcn.140015e70
mov rcx, rax
mov dword [rsp + 0x20], 0
lea r9, str._a__
lea r8, str._a__
xor edx, edx
call fcn.140216fa0
mov r12, rax
test rax, rax
jne 0x140055257
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400553a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400553a3
lea rcx, [rdi - 0x18]
mov rbx, qword [rsp + 0x30]
add rbx, 0xffffffffffffffe8
cmp rcx, rbx
je 0x1400552b6
cmp dword [rbx + 0x10], 0
jl 0x1400552a5
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400552a5
call fcn.140007340
mov rdi, rax
mov ecx, r14d
lock xadd dword [rbx + 0x10], ecx
add ecx, 0xffffffff
test ecx, ecx
jg 0x14005529a
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rdi + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x1400552b6
mov r8d, dword [rdi - 0x10]
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140007720
lea rdx, [0x140264b58]
lea rcx, [rsp + 0x30]
call fcn.14001c2f0
lea rdx, [rsi + 0x28]
lea rcx, [rsp + 0x30]
call fcn.140007140
xor r9d, r9d
mov r8, qword [rsp + 0x30]
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401ee9b4
test eax, eax
je 0x14005531e
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400553a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400553a3
mov rcx, r12
call fcn.14005fe70
mov edi, eax
mov rcx, r12
call fcn.14005ff30
and edi, eax
mov rcx, r12
call fcn.140060000
and edi, eax
mov r9d, 0
setne r9b
mov r8, qword [rsp + 0x30]
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401eea54
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400553a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x1400553a3
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400553a3
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test rbp, rbp
je 0x1400553b9
mov rdi, qword [rsp + 0x38]
lea rsi, [0x140260b08]
jmp 0x140055190
mov rdi, qword [rsp + 0x38]
lea rsi, [0x140260b08]
jmp 0x1400553cd
call fcn.1401e7838
nop
lea rdx, [rdi - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400553e9
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r15 + 0x10]
bt dword [rax + 0x10], 0xf
jae 0x14005555d
cmp dword [0x140311024], 0
jne 0x140055418
mov dword [0x140311020], 0x114
lea rcx, [0x140311020]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [0x140311024], 6
jne 0x14005555d
cmp dword [0x140311028], 0
jne 0x14005555d
xor r9d, r9d
lea r8, str.SetSpkAsDefaultAt1stSPDIFPlugIn
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401ee9b4
test eax, eax
jne 0x14005555d
mov rax, qword [r15 + 0x10]
mov rdi, qword [rax + 0x1a20]
mov rcx, rdi
test rdi, rdi
je 0x14005555d
nop
mov rax, rcx
test rcx, rcx
je 0x140055557
mov rcx, qword [rcx]
mov rax, qword [rax + 0x10]
test rax, rax
je 0x14005549d
cmp dword [rax + 0xb8], 8
jne 0x14005549d
cmp dword [rax + 0x48], 0
je 0x14005549d
cmp dword [rax + 0x58], 1
je 0x1400554a8
test rcx, rcx
je 0x14005555d
jmp 0x140055470
test rdi, rdi
je 0x14005555d
mov rcx, rdi
test rdi, rdi
je 0x140055551
mov rdi, qword [rdi]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140055510
cmp dword [rcx + 0xb8], 1
jne 0x140055510
cmp dword [rcx + 0x48], 0
je 0x140055510
cmp dword [rcx + 0x58], 1
jne 0x140055510
mov edx, 5
call fcn.140015e70
mov rcx, rax
mov dword [rsp + 0x20], 0
lea r9, str._a__
lea r8, str._a__
xor edx, edx
call fcn.140216fa0
mov rbx, rax
test rax, rax
jne 0x140055517
test rdi, rdi
je 0x14005555d
jmp 0x1400554b1
mov rcx, rax
call fcn.14005fe70
mov rcx, rbx
call fcn.14005ff30
mov rcx, rbx
call fcn.140060000
mov r9d, 1
lea r8, str.SetSpkAsDefaultAt1stSPDIFPlugIn
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401eea54
jmp 0x14005555d
call fcn.1401e7838
int3
call fcn.1401e7838
int3
mov rax, qword [r15 + 0x10]
bt dword [rax + 0x2c], 0xa
jae 0x1400559bd
cmp dword [0x140311024], 0
jne 0x14005558c
mov dword [0x140311020], 0x114
lea rcx, [0x140311020]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [0x140311024], 6
jne 0x1400559bd
cmp dword [0x140311028], 1
jne 0x1400559e6
call fcn.1401e9268
mov rdx, rax
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400555c5
mov ecx, 0x80004005
call fcn.140003c70
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov r15, rsi
shr r15, 0x10
jne 0x140055601
movzx edi, si
mov ecx, edi
call fcn.1401eb134
test rax, rax
je 0x140055621
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.1400074b0
jmp 0x140055621
xor eax, eax
mov rcx, r14
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x50]
call fcn.140007720
nop
mov r12d, r14d
mov rbx, qword [rsp + 0x130]
mov rax, qword [rbx + 0x10]
bt dword [rax + 0x2c], 0xa
jae 0x14005566a
xor eax, eax
mov rcx, r14
lea rdi, str.SetWId1EDigitalOutAsDefCommDev
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetWId1EDigitalOutAsDefCommDev
lea rcx, [rsp + 0x50]
call fcn.140007720
mov r13d, 8
lea r12d, [r13 + 0x16]
jmp 0x140055672
mov r13d, dword [rsp + 0x130]
xor r9d, r9d
mov r8, qword [rsp + 0x50]
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401ee9b4
test eax, eax
jne 0x14005598a
mov rax, qword [rbx + 0x10]
mov rbp, qword [rax + 0x1a20]
movsxd r14, r12d
test rbp, rbp
je 0x140055986
nop
call fcn.1401e9268
xor ecx, ecx
test rax, rax
setne cl
test ecx, ecx
je 0x14005597b
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x98], rdi
test r15, r15
jne 0x14005570f
movzx ebx, si
mov ecx, ebx
call fcn.1401eb134
test rax, rax
je 0x140055743
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x98]
call fcn.1400074b0
mov rdi, qword [rsp + 0x98]
or rsi, 0xffffffffffffffff
jmp 0x140055747
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
lea rdx, [0x140260b08]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x98]
call fcn.140007720
mov rdi, qword [rsp + 0x98]
jmp 0x140055747
or rsi, 0xffffffffffffffff
mov rbx, rbp
test rbp, rbp
je 0x140055975
mov rbp, qword [rbp]
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x140055784
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14005588f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005588f
cmp dword [rbx + 0xb8], r13d
jne 0x140055874
cmp dword [rbx + 0x58], 1
jne 0x140055874
cmp r14, 0xffffffffffffffff
je 0x140055857
cmp dword [rbx + 0x5c], 0xffffffff
jne 0x140055857
xor ecx, ecx
mov edx, dword [rbx + 0x214]
test edx, edx
je 0x140055857
lea rax, [rbx + 0x218]
cmp dword [rax], r12d
je 0x1400557d8
add ecx, 1
add rax, 4
cmp ecx, edx
jb 0x1400557c6
jmp 0x140055857
mov rbx, qword [rbx + 0x100]
test rbx, rbx
je 0x14005580f
mov rsi, rbx
test rbx, rbx
je 0x1400558a4
mov rbx, qword [rbx]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x14005580a
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
cmp eax, 5
je 0x140055811
test rbx, rbx
jne 0x1400557e4
xor esi, esi
mov dword [rsp + 0x20], 0
lea r9, str._a__
lea r8, str._a__
xor edx, edx
mov rcx, rsi
call fcn.140216fa0
mov rbx, rax
test rax, rax
jne 0x1400558aa
lea rdx, [rdi - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14005588f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005588f
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14005588f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005588f
lea rdx, [rdi - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14005588f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test rbp, rbp
je 0x14005596f
lea rsi, [0x140260b08]
jmp 0x1400556b0
call fcn.1401e7838
int3
cmp qword [rax + 0x30], 0
jne 0x1400558b5
xor ebx, ebx
jmp 0x14005592b
mov qword [rsp + 0x68], 0
lea rax, [rsp + 0x68]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x1400558fa
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400558f6
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor ebx, ebx
jmp 0x14005592b
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x68]
mov r9, qword [rcx]
mov r8d, 2
mov rdx, qword [rax + 0x28]
call qword [r9 + 0x60]
xor ebx, ebx
test eax, eax
setns bl
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x14005592b
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
xor r9d, r9d
test ebx, ebx
setne r9b
mov r8, qword [rsp + 0x50]
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401eea54
nop
lea rdx, [rdi - 0x18]
or r14, 0xffffffffffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14005598a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14005598a
or r14, 0xffffffffffffffff
jmp 0x14005598a
call fcn.1401e7838
nop
mov ecx, 0x80004005
call fcn.140003c70
int3
or r14, 0xffffffffffffffff
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x1400559b5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r15, qword [rsp + 0x130]
jmp 0x1400559bd
mov r15, qword [rsp + 0x130]
cmp dword [0x140311024], 0
jne 0x1400559dd
mov dword [0x140311020], 0x114
lea rcx, [0x140311020]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [0x140311024], 6
jne 0x1400559f1
cmp dword [0x140311028], 1
jae 0x140055a08
jmp 0x1400559fa
cmp dword [0x140311024], 6
ja 0x140055a08
mov rax, qword [r15 + 0x10]
bt dword [rax + 0x108], 0x12
jae 0x140055a3e
mov rax, qword [r15 + 0x10]
mov rdi, qword [rax + 0x1a20]
test rdi, rdi
je 0x140055a3e
mov rcx, rdi
test rdi, rdi
je 0x140055a38
mov rdi, qword [rdi]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140055a31
call fcn.140045ab0
test rdi, rdi
jne 0x140055a18
jmp 0x140055a3e
call fcn.1401e7838
int3
mov rcx, qword [r15 + 0x10]
bt dword [rcx + 0x28], 0xc
jae 0x140055cbd
cmp dword [r15 + 0x78], 0
je 0x140055cb8
movsxd rax, dword [r15 + 0x74]
cmp eax, 0xffffffff
je 0x140055cb3
imul rax, rax, 0xa4
mov ebp, dword [rax + rcx + 0x5f8]
mov r12d, dword [rax + rcx + 0x608]
mov rsi, qword [rcx + 0x1a20]
xor r13d, r13d
test rsi, rsi
je 0x140055cc2
mov rdi, qword [rsi + 0x10]
mov rsi, qword [rsi]
test rdi, rdi
je 0x140055a85
cmp dword [rdi + 0x58], r13d
je 0x140055a85
cmp r12d, dword [rdi + 0x5c]
jne 0x140055a85
mov ecx, r13d
mov edx, dword [rdi + 0x214]
test edx, edx
je 0x140055a85
lea rax, [rdi + 0x218]
nop
nop
cmp dword [rax], ebp
je 0x140055ad1
add ecx, 1
add rax, 4
cmp ecx, edx
jb 0x140055ac0
jmp 0x140055a85
mov rdi, qword [rdi + 0x100]
test rdi, rdi
je 0x140055b07
nop
mov rbx, rdi
test rdi, rdi
je 0x140055b34
mov rdi, qword [rdi]
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140055b02
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
cmp eax, 5
je 0x140055b0a
test rdi, rdi
jne 0x140055ae0
mov rbx, r13
mov dword [rsp + 0x20], r13d
lea r9, str._a__
lea r8, str._a__
xor edx, edx
mov rcx, rbx
call fcn.140216fa0
mov rbx, rax
test rax, rax
jne 0x140055b3a
jmp 0x140055a85
call fcn.1401e7838
int3
cmp qword [rax + 0x30], r13
je 0x140055bac
xor r12d, r12d
mov qword [rsp + 0x70], r12
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [r12 + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140055b83
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140055baf
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140055baf
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x70]
mov rdi, qword [rcx]
xor r8d, r8d
mov rdx, qword [rax + 0x28]
call qword [rdi + 0x60]
nop
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x140055baf
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140055baf
xor r12d, r12d
cmp qword [rbx + 0x30], 0
je 0x140055c2e
mov qword [rsp + 0x80], r12
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140055bfe
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140055c2e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140055c2e
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x80]
mov rdi, qword [rcx]
mov r8d, 1
mov rdx, qword [rax + 0x28]
call qword [rdi + 0x60]
nop
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x140055c2e
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
cmp qword [rbx + 0x30], 0
je 0x140055cad
mov qword [rsp + 0x90], r12
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140055c7d
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x140055cad
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140055cad
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x90]
mov rdi, qword [rcx]
mov r8d, 2
mov rdx, qword [rax + 0x28]
call qword [rdi + 0x60]
nop
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x140055cad
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov dword [r15 + 0x78], r12d
jmp 0x140055cc5
xor r12d, r12d
jmp 0x140055cc5
xor r12d, r12d
jmp 0x140055cc5
xor r12d, r12d
jmp 0x140055cc5
xor r12d, r12d
mov rdi, qword [r15 + 0x10]
test byte [rdi + 0x2c], 0x80
je 0x140055db2
mov rdi, qword [rdi + 0x1a20]
test rdi, rdi
je 0x140055d15
nop
mov rcx, rdi
test rdi, rdi
je 0x140055d0f
mov rdi, qword [rdi]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140055d08
cmp dword [rcx + 0xb8], 4
jne 0x140055d08
cmp dword [rcx + 0x58], 1
jne 0x140055d08
call fcn.140019ee0
test rdi, rdi
jne 0x140055ce0
jmp 0x140055d15
call fcn.1401e7838
int3
mov rcx, qword [r15 + 0x10]
mov eax, dword [rcx + 0x234]
bt eax, 0xe
jae 0x140055d75
shr eax, 0xd
and eax, 1
je 0x140055d75
mov rdi, qword [rcx + 0x1a20]
test rdi, rdi
je 0x140055db2
nop
nop
mov rcx, rdi
test rdi, rdi
je 0x140055d6f
mov rdi, qword [rdi]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140055d68
cmp dword [rcx + 0xb8], 4
jne 0x140055d68
cmp dword [rcx + 0x58], 1
jne 0x140055d68
call fcn.1400199d0
test rdi, rdi
jne 0x140055d40
jmp 0x140055db2
call fcn.1401e7838
int3
mov rax, qword [rcx + 0x1a20]
test rax, rax
je 0x140055db2
mov rcx, rax
test rax, rax
je 0x140055dac
mov rax, qword [rax]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x140055d9e
cmp dword [rcx + 0xb8], 4
je 0x140055da5
test rax, rax
je 0x140055db2
jmp 0x140055d81
call fcn.1400199d0
jmp 0x140055db2
call fcn.1401e7838
int3
mov rcx, qword [r15 + 0x10]
test byte [rcx + 0x34], 0x80
je 0x140055dc1
call fcn.140047bb0
mov rcx, qword [r15 + 0x10]
test byte [rcx + 0x34], 0x40
je 0x140055dd0
call fcn.140047a60
mov rax, qword [r15]
mov rcx, r15
call qword [rax + 0x148]
mov rdx, qword [r15 + 0x10]
test byte [rdx + 0x190], 8
je 0x14005617d
mov eax, dword [0x140311024]
test eax, eax
jne 0x140055e14
mov dword [0x140311020], 0x114
lea rcx, [0x140311020]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov eax, dword [0x140311024]
cmp eax, 6
jne 0x14005617d
cmp dword [0x140311028], 0
jne 0x14005617d
call fcn.1401e9268
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x140055e4a
mov ecx, 0x80004005
call fcn.140003c70
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x58], rdi
lea rdx, [0x140260b08]
test rdx, 0xffffffffffff0000
jne 0x140055e92
movzx ebx, dx
mov ecx, ebx
call fcn.1401eb134
test rax, rax
je 0x140055eb3
mov r8d, ebx
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400074b0
mov rdi, qword [rsp + 0x58]
jmp 0x140055eb3
xor eax, eax
mov rcx, r14
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x58]
call fcn.140007720
mov rdi, qword [rsp + 0x58]
mov rax, qword [r15 + 0x10]
test byte [rax + 0x190], 8
je 0x140055ef3
xor eax, eax
mov rcx, r14
lea rdi, str.SetDefaultInternalMicrophoneDevice
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.SetDefaultInternalMicrophoneDevice
lea rcx, [rsp + 0x58]
call fcn.140007720
mov rdi, qword [rsp + 0x58]
mov esi, 4
jmp 0x140055f01
mov esi, dword [rsp + 0x130]
mov dword [rsp + 0x140], esi
xor r9d, r9d
mov r8, rdi
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401ee9b4
test eax, eax
jne 0x140056161
mov rax, qword [r15 + 0x10]
mov rbp, qword [rax + 0x1a20]
nop
test rbp, rbp
je 0x140056161
mov rbx, qword [rbp + 0x10]
mov rbp, qword [rbp]
test rbx, rbx
je 0x140055f30
cmp dword [rbx + 0xb8], esi
jne 0x140055f30
mov rcx, rbx
call fcn.14001b6c0
test eax, eax
je 0x140055f30
mov rbx, qword [rbx + 0x100]
test rbx, rbx
je 0x140055f8d
mov rsi, rbx
test rbx, rbx
je 0x140055fc1
mov rbx, qword [rbx]
mov rsi, qword [rsi + 0x10]
test rsi, rsi
je 0x140055f88
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
cmp eax, 5
je 0x140055f90
test rbx, rbx
jne 0x140055f66
mov rsi, r12
mov dword [rsp + 0x20], r12d
lea r9, str._a__
lea r8, str._a__
xor edx, edx
mov rcx, rsi
call fcn.140216fa0
mov rbx, rax
test rax, rax
jne 0x140055fc7
mov esi, dword [rsp + 0x140]
jmp 0x140055f30
call fcn.1401e7838
int3
cmp qword [rax + 0x30], 0
je 0x140056044
mov qword [rsp + 0xa0], r12
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140056016
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x140056044
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140056044
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0xa0]
mov r9, qword [rcx]
xor r8d, r8d
mov rdx, qword [rax + 0x28]
call qword [r9 + 0x60]
nop
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x140056044
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
cmp qword [rbx + 0x30], 0
je 0x1400560c4
mov qword [rsp + 0xb0], r12
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140056093
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x1400560c4
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x1400560c4
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0xb0]
mov r9, qword [rcx]
mov r8d, 1
mov rdx, qword [rax + 0x28]
call qword [r9 + 0x60]
nop
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
je 0x1400560c4
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
cmp qword [rbx + 0x30], 0
je 0x140056144
mov qword [rsp + 0xc0], r12
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea r9, [0x140260ad8]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x140260a78]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x140056113
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x140056144
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140056144
mov rax, qword [rbx + 0x30]
mov rcx, qword [rsp + 0xc0]
mov r10, qword [rcx]
mov r8d, 2
mov rdx, qword [rax + 0x28]
call qword [r10 + 0x60]
nop
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x140056144
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov r9d, 1
mov r8, rdi
lea rdx, str.General
lea rcx, [0x1403149a0]
call fcn.1401eea54
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], r14d
add r14d, 0xffffffff
test r14d, r14d
jg 0x14005617d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rax, qword [r15 + 0x10]
mov rdi, qword [rax + 0x1a20]
test rdi, rdi
je 0x1400561be
nop
mov rcx, rdi
test rdi, rdi
je 0x1400561b8
mov rdi, qword [rdi]
mov rcx, qword [rcx + 0x10]
test rcx, rcx
je 0x1400561b1
cmp dword [rcx + 0x58], 1
jne 0x1400561b1
xor edx, edx
call fcn.14001a7f0
test rdi, rdi
jne 0x140056190
jmp 0x1400561be
call fcn.1401e7838
int3
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret