Function at 0x140038930
Capabilities:
Resume thread

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov rdi, rcx
call fcn.140038d70
mov rcx, rdi
call fcn.140030b90
mov rcx, rdi
call fcn.140031540
cmp dword [0x1402ea824], 0
je 0x140038a85
mov ecx, 0x90
call fcn.14004a560
mov qword [rbp + 0x38], rax
test rax, rax
je 0x14003898b
mov rcx, rax
call fcn.140029ed0
mov rbx, rax
jmp 0x14003898d
xor ebx, ebx
test rbx, rbx
je 0x140038a85
lea rax, [rbp + 0x38]
mov qword [rbp + 0x40], rax
call fcn.14004aa80
mov rcx, rax
test rax, rax
je 0x140038d45
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp + 0x38], rax
lea rsi, str.SOFTWAREDolbyDolbyDigitalPlusDynamicKeys
mov rdx, rsi
lea rcx, [rbp + 0x38]
call fcn.1400050a0
test al, al
jne 0x1400389fa
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x1400389e0
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp + 0x38]
call fcn.1400054e0
nop
lea rdx, [rbp + 0x38]
mov rcx, rbx
call fcn.14002a010
lea rax, [rbp + 0x40]
mov qword [rbp + 0x48], rax
call fcn.14004aa80
mov rcx, rax
test rax, rax
je 0x140038d50
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp + 0x40], rax
lea rsi, str.DD0DF94B_53A2_4A92_854E_91F42E28FD7B_1
mov rdx, rsi
lea rcx, [rbp + 0x40]
call fcn.1400050a0
test al, al
jne 0x140038a6a
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x140038a50
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp + 0x40]
call fcn.1400054e0
nop
lea rdx, [rbp + 0x40]
mov rcx, rbx
call fcn.14002a180
lea rcx, [rdi + 0x1030]
mov rdx, rbx
call fcn.1400283f0
mov rcx, rdi
call fcn.140030d90
mov rcx, rdi
call fcn.140031130
mov rcx, rdi
call fcn.140031340
cmp dword [0x1402ea860], 0
je 0x140038bc5
mov ecx, 0x90
call fcn.14004a560
mov qword [rbp + 0x48], rax
test rax, rax
je 0x140038aca
mov rcx, rax
call fcn.140029ed0
mov rbx, rax
jmp 0x140038acc
xor ebx, ebx
test rbx, rbx
je 0x140038bc5
lea rax, [rbp + 0x48]
mov qword [rbp - 0x28], rax
call fcn.14004aa80
mov rcx, rax
test rax, rax
je 0x140038d5b
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp + 0x48], rax
lea rsi, str.SOFTWARERealtekAudio
mov rdx, rsi
lea rcx, [rbp + 0x48]
call fcn.1400050a0
test al, al
jne 0x140038b3a
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x140038b20
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp + 0x48]
call fcn.1400054e0
nop
lea rdx, [rbp + 0x48]
mov rcx, rbx
call fcn.14002a010
lea rax, [rbp - 0x30]
mov qword [rbp - 0x28], rax
call fcn.14004aa80
mov rcx, rax
test rax, rax
je 0x140038d34
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rbp - 0x30], rax
lea rsi, str.Hpltoggle
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.1400050a0
test al, al
jne 0x140038baa
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp word [rsi + rax*2], 0
jne 0x140038b90
mov r8d, eax
mov rdx, rsi
lea rcx, [rbp - 0x30]
call fcn.1400054e0
nop
lea rdx, [rbp - 0x30]
mov rcx, rbx
call fcn.14002a180
lea rcx, [rdi + 0x1030]
mov rdx, rbx
call fcn.1400283f0
lea rcx, [rdi + 0xc00]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r14, qword [rdi + 0xb98]
xor ebx, ebx
test r14d, r14d
je 0x140038c5e
cmp ebx, dword [rdi + 0xb98]
jae 0x140038c57
mov edx, ebx
lea rcx, [rdi + 0xb80]
call fcn.14004bdbc
test rax, rax
je 0x140038d3f
mov rcx, qword [rax + 0x10]
test rcx, rcx
je 0x140038c57
mov rcx, qword [rcx]
sub rcx, 0x18
call fcn.140004c20
mov rsi, rax
lea rcx, [rax + 0x18]
mov qword [rbp - 0x18], rcx
mov rcx, rax
call fcn.140004c20
add rax, 0x18
mov qword [rbp - 0x28], rax
lea rdx, [rbp - 0x28]
mov rcx, rdi
call fcn.140039fe0
nop
mov eax, 0xffffffff
lock xadd dword [rsi + 0x10], eax
sub eax, 1
jg 0x140038c57
mov rcx, qword [rsi]
mov rax, qword [rcx]
mov rdx, rsi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
inc ebx
cmp ebx, r14d
jb 0x140038be0
lea rcx, [rdi + 0xbf0]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov qword [rdi + 0x1088], rdi
lea rsi, [rdi + 0x1030]
cmp qword [rsi + 0x40], 0
jne 0x140038c94
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsi + 0x40], rax
cmp qword [rsi + 0x48], 0
jne 0x140038caf
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsi + 0x48], rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
lea rcx, [0x1400286d0]
call fcn.14005cd14
mov r14, rax
test rax, rax
je 0x140038d29
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov dword [rsp + 0x30], 2
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
lea r9, [rsi + 0x38]
mov r8, rbx
mov rdx, qword [r14 + 0x58]
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov rcx, qword [r14 + 0x58]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov dword [rsi + 0x50], 1
add rsp, 0x70
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov ecx, 0x80004005
call fcn.140005680
int3
call fcn.14004b6d4
int3
mov ecx, 0x80004005
call fcn.140005680
int3
mov ecx, 0x80004005
call fcn.140005680
int3
mov ecx, 0x80004005
call fcn.140005680
int3