Function at 0x14003f690
Capabilities:
Create process on windows
Get uefi variable
Log keystrokes via application hook
Print debug messages
Query or enumerate registry value
Set registry value

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x590
mov qword [rsp + 0x180], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rax, qword [0x1400f0bc8]
xor rax, rsp
mov qword [rsp + 0x580], rax
mov rsi, rcx
xor eax, eax
or rbp, 0xffffffffffffffff
mov rcx, rbp
lea rdi, str.c:_templog.txt
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rdx, str.c:_templog.txt
lea rcx, [0x1400fb390]
call fcn.140001bd0
lea rcx, str.CRtHDVBgProcWnd::Init__n
call fcn.1400022c0
lea rcx, str.CRtHDVBgProcWnd::Init__n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
xor ebx, ebx
mov dword [0x1400f9e3c], ebx
mov rcx, rsi
call fcn.140044b40
mov rdi, qword [0x1400fb380]
cmp dword [rdi - 0x10], ebx
je 0x14003f7b6
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [rdi - 8], ebx
jl 0x14003f759
cmp rax, qword [rdi - 0x18]
jne 0x14003f759
lea rbx, [rdi - 0x18]
lock add dword [rdi - 8], 1
jmp 0x14003f796
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [rdi - 0x10]
call qword [rax]
mov rbx, rax
test rax, rax
jne 0x14003f775
call fcn.140001a80
int3
mov eax, dword [rdi - 0x10]
mov dword [rbx + 8], eax
mov eax, dword [rdi - 0x10]
add eax, 1
movsxd rdx, eax
add rdx, rdx
mov r8, rdi
lea rcx, [rbx + 0x18]
mov r9, rdx
call fcn.14008e450
lea rax, [rbx + 0x18]
mov qword [rsp + 0x118], rax
lea rcx, [rsp + 0x118]
call fcn.140018160
xor eax, eax
jmp 0x14004143f
cmp qword [rsi + 0xcd0], rbx
jle 0x14003f7cb
lea rcx, [rsi + 0xcb8]
call fcn.140062de4
cmp dword [0x1400fb36c], ebx
je 0x14003fb34
lea rcx, [rsp + 0x58]
call fcn.140016cc0
nop
xor eax, eax
mov rcx, rbp
lea rsi, str.RealtekAudioHDA_
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov r13, rsi
mov rax, qword [rsp + 0x58]
sub r13, rax
sar r13, 1
mov r14d, dword [rax - 0x10]
lea edi, [r14 + rcx - 1]
mov r12d, 1
mov edx, r12d
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x14003f838
mov edx, edi
lea rcx, [rsp + 0x58]
call fcn.140001970
mov rax, qword [rsp + 0x58]
cmp r13, r14
ja 0x14003f841
lea rsi, [rax + r13*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rax + r14*2]
mov r9, rdx
mov r8, rsi
call fcn.14008e450
test edi, edi
js 0x14003fb29
mov rax, qword [rsp + 0x58]
cmp edi, dword [rax - 0xc]
jg 0x14003fb29
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x58]
mov word [rax + rcx*2], 0
xor eax, eax
mov rcx, rbp
lea r13, str.RAVCpl64.exe
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov rsi, r13
mov rax, qword [rsp + 0x58]
sub rsi, rax
sar rsi, 1
mov r14d, dword [rax - 0x10]
lea edi, [r14 + rcx - 1]
sub r12d, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, r12d
jge 0x14003f8cc
mov edx, edi
lea rcx, [rsp + 0x58]
call fcn.140001970
mov rax, qword [rsp + 0x58]
cmp rsi, r14
ja 0x14003f8d5
lea r13, [rax + rsi*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rax + r14*2]
mov r9, rdx
mov r8, r13
call fcn.14008e450
test edi, edi
js 0x14003fb1e
mov rax, qword [rsp + 0x58]
cmp edi, dword [rax - 0xc]
jg 0x14003fb1e
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x58]
mov word [rax + rcx*2], 0
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14003f930
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xf0], rax
mov r8, qword [rsp + 0x58]
lea rdx, str.__s_
lea rcx, [rsp + 0xf0]
call fcn.140001e50
mov r12, qword [rsp + 0xf0]
mov rcx, qword [r12 - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [r12 - 8], 0
jl 0x14003f991
cmp rax, qword [r12 - 0x18]
jne 0x14003f991
lea rsi, [r12 - 0x18]
lock add dword [r12 - 8], 1
jmp 0x14003f9d5
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [r12 - 0x10]
call qword [rax]
mov rsi, rax
test rax, rax
jne 0x14003f9af
call fcn.140001a80
int3
mov eax, dword [r12 - 0x10]
mov dword [rsi + 8], eax
mov eax, dword [r12 - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, r12
add rdx, rdx
lea rcx, [rsi + 0x18]
call fcn.14008e450
add rsi, 0x18
mov qword [rsp + 0x140], rsi
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14003fa00
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x90], rdi
lea rdx, [0x1400c8bf4]
test rdx, 0xffffffffffff0000
jne 0x14003fa53
movzx r13d, dx
mov ecx, r13d
call fcn.140062704
test rax, rax
je 0x14003fa7a
mov r8d, r13d
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.140001fe0
mov rdi, qword [rsp + 0x90]
jmp 0x14003fa7a
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x90]
call fcn.140001bd0
mov rdi, qword [rsp + 0x90]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8, rsi
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
lea rdx, [rdi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003fab4
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x140]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003fad8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, ebp
lock xadd dword [r12 - 8], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003faf9
mov rcx, qword [r12 - 0x18]
mov rax, qword [rcx]
lea rdx, [r12 - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14003fb17
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
mov ecx, 0x80070057
call fcn.140001950
int3
mov ecx, 0x80070057
call fcn.140001950
nop
cmp dword [0x1400fb370], ebx
je 0x14003fe9d
lea rcx, [rsp + 0x50]
call fcn.140016cc0
nop
xor eax, eax
mov rcx, rbp
lea rsi, str.RealtekAudioHDA_
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov r13, rsi
mov rax, qword [rsp + 0x50]
sub r13, rax
sar r13, 1
mov r14d, dword [rax - 0x10]
lea edi, [r14 + rcx - 1]
mov r12d, 1
mov edx, r12d
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x14003fba1
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.140001970
mov rax, qword [rsp + 0x50]
cmp r13, r14
ja 0x14003fbaa
lea rsi, [rax + r13*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rax + r14*2]
mov r9, rdx
mov r8, rsi
call fcn.14008e450
test edi, edi
js 0x14003fe92
mov rax, qword [rsp + 0x50]
cmp edi, dword [rax - 0xc]
jg 0x14003fe92
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x50]
mov word [rax + rcx*2], 0
xor eax, eax
mov rcx, rbp
lea r13, str.EP64.exe
mov rdi, r13
repne scasw ax, word [rdi]
not rcx
lea r15, [rcx - 1]
mov rsi, r13
mov rax, qword [rsp + 0x50]
sub rsi, rax
sar rsi, 1
mov r14d, dword [rax - 0x10]
lea edi, [r14 + rcx - 1]
sub r12d, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, r12d
jge 0x14003fc35
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.140001970
mov rax, qword [rsp + 0x50]
cmp rsi, r14
ja 0x14003fc3e
lea r13, [rax + rsi*2]
movsxd rdx, r15d
add rdx, rdx
lea rcx, [rax + r14*2]
mov r9, rdx
mov r8, r13
call fcn.14008e450
test edi, edi
js 0x14003fe87
mov rax, qword [rsp + 0x50]
cmp edi, dword [rax - 0xc]
jg 0x14003fe87
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov rax, qword [rsp + 0x50]
mov word [rax + rcx*2], 0
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14003fc99
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xc0], rax
mov r8, qword [rsp + 0x50]
lea rdx, str.__s_
lea rcx, [rsp + 0xc0]
call fcn.140001e50
mov r12, qword [rsp + 0xc0]
mov rcx, qword [r12 - 0x18]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
cmp dword [r12 - 8], 0
jl 0x14003fcfa
cmp rax, qword [r12 - 0x18]
jne 0x14003fcfa
lea rsi, [r12 - 0x18]
lock add dword [r12 - 8], 1
jmp 0x14003fd3e
mov rax, qword [rax]
mov r8d, 2
mov edx, dword [r12 - 0x10]
call qword [rax]
mov rsi, rax
test rax, rax
jne 0x14003fd18
call fcn.140001a80
int3
mov eax, dword [r12 - 0x10]
mov dword [rsi + 8], eax
mov eax, dword [r12 - 0x10]
add eax, 1
movsxd rdx, eax
lea r9, [rdx + rdx]
mov r8, r12
add rdx, rdx
lea rcx, [rsi + 0x18]
call fcn.14008e450
add rsi, 0x18
mov qword [rsp + 0xd8], rsi
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14003fd69
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x88], rdi
lea rdx, [0x1400c8bf4]
test rdx, 0xffffffffffff0000
jne 0x14003fdbc
movzx r13d, dx
mov ecx, r13d
call fcn.140062704
test rax, rax
je 0x14003fde3
mov r8d, r13d
mov rdx, rax
lea rcx, [rsp + 0x88]
call fcn.140001fe0
mov rdi, qword [rsp + 0x88]
jmp 0x14003fde3
xor eax, eax
mov rcx, rbp
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x88]
call fcn.140001bd0
mov rdi, qword [rsp + 0x88]
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8, rsi
lea rdx, str.open
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
lea rdx, [rdi - 0x18]
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003fe1d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0xd8]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003fe41
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, ebp
lock xadd dword [r12 - 8], eax
add eax, 0xffffffff
test eax, eax
jg 0x14003fe62
mov rcx, qword [r12 - 0x18]
mov rax, qword [rcx]
lea rdx, [r12 - 0x18]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14003fe80
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
mov ecx, 0x80070057
call fcn.140001950
int3
mov ecx, 0x80070057
call fcn.140001950
nop
mov r12d, 1
cmp dword [0x1400fb35c], ebx
jne 0x14003febb
cmp dword [0x1400fb360], ebx
jne 0x14003febb
cmp dword [0x1400fb378], ebx
je 0x14003fec2
mov dword [0x1400fb37c], r12d
cmp dword [0x1400fb2c4], ebx
je 0x14003fef3
lea rcx, [rsi + 0x868]
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 2]
call fcn.140034a70
mov rcx, rsi
call fcn.1400555f0
xor eax, eax
jmp 0x14004143f
mov rcx, rsi
call fcn.140044c40
cmp dword [0x1400fb35c], ebx
jne 0x14003ff13
cmp dword [0x1400fb360], ebx
jne 0x14003ff13
cmp dword [0x1400fb378], ebx
je 0x14003ff79
lea rdi, [rsi + 0x868]
lea rax, [rsi + 0xa40]
test rdi, rdi
je 0x14003ff39
test rax, rax
je 0x14003ff39
mov qword [rsi + 0x4e0], rdi
mov qword [rsi + 0x4e8], rax
call fcn.1400719e8
test rax, rax
je 0x14003ff5a
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xe8]
test rax, rax
je 0x14003ff5a
mov rax, qword [rax + 0x40]
jmp 0x14003ff5d
mov rax, rbx
mov qword [rdi + 0x88], rax
mov qword [rdi + 0xa0], rax
mov dword [0x1400f9e38], ebx
mov rcx, rsi
call fcn.140055970
bt dword [rsi + 0xa58], 0x1d
jae 0x140040011
cmp dword [0x1400fb338], ebx
jne 0x14003ff97
cmp dword [0x1400fb34c], ebx
je 0x140040011
mov ecx, 0x30
call fcn.1400622f0
mov qword [rsp + 0xd8], rax
test rax, rax
je 0x14003ffb9
mov rcx, rax
call fcn.140025b10
mov rbx, rax
test rbx, rbx
je 0x14004000a
mov rcx, rbx
call fcn.140025c20
test eax, eax
je 0x14003fff8
mov rcx, rbx
call fcn.140025d40
test eax, eax
je 0x14003fff8
cmp dword [rbx + 0x14], 0
je 0x14003fff8
lea rdx, [rbx + 0x28]
lea rcx, [rsp + 0x120]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
mov edx, r12d
mov rcx, rbx
call fcn.140041710
xor eax, eax
jmp 0x14004143f
xor eax, eax
jmp 0x14004143f
cmp dword [0x1400fb344], ebx
je 0x140040167
mov rcx, qword [rsi + 0x490]
test rcx, rcx
je 0x140040031
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
mov qword [rsi + 0x490], rbx
mov ecx, 0x138
call fcn.1400622f0
mov qword [rsp + 0x120], rax
test rax, rax
je 0x14004005f
mov r8b, 1
mov rdx, rsi
mov rcx, rax
call fcn.14002fab0
jmp 0x140040062
mov rax, rbx
mov qword [rsi + 0x490], rax
xor ecx, ecx
mov qword [rsp + 0x1d0], rcx
mov qword [rsp + 0x1d8], rcx
mov qword [rsp + 0x1e0], rcx
mov qword [rsp + 0x1e8], rcx
mov qword [rsp + 0x1f0], rcx
mov qword [rsp + 0x1f8], rcx
mov qword [rsp + 0x200], rcx
mov qword [rsp + 0x208], rcx
lea rdx, [rsp + 0x1d0]
mov rcx, rax
call fcn.140032490
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x1400400da
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xb0], rax
lea rdx, [rsp + 0x1d0]
lea rcx, [rsp + 0xb0]
call fcn.140058a40
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x130]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
mov rcx, qword [rsi + 0x490]
test rcx, rcx
je 0x14004013f
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
mov qword [rsi + 0x490], rbx
mov rdx, qword [rsp + 0xb0]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140040160
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
cmp dword [0x1400fb354], ebx
je 0x140040425
mov rcx, qword [rsi + 0x490]
test rcx, rcx
je 0x140040187
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
mov qword [rsi + 0x490], rbx
mov ecx, 0x138
call fcn.1400622f0
mov qword [rsp + 0x130], rax
test rax, rax
je 0x1400401b5
mov r8b, 1
mov rdx, rsi
mov rcx, rax
call fcn.14002fab0
jmp 0x1400401b8
mov rax, rbx
mov qword [rsi + 0x490], rax
xor ecx, ecx
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rcx
mov qword [rsp + 0x220], rcx
mov qword [rsp + 0x228], rcx
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x238], rcx
mov qword [rsp + 0x240], rcx
mov qword [rsp + 0x248], rcx
lea rdx, [rsp + 0x210]
mov rcx, rax
call fcn.140032490
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x140040230
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0x60], rax
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x60]
call fcn.140058a40
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x178]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
cmp eax, 1
jne 0x1400402c2
lea rcx, str.CRtHDVBgProcWnd::Init_WriteR0Registry_true_n
call fcn.1400022c0
mov rcx, qword [rsi + 0x490]
test rcx, rcx
je 0x14004029d
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
mov qword [rsi + 0x490], rbx
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400402bb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
xor eax, eax
mov dword [rsp + 0xf8], eax
mov dword [rsp + 0xfc], eax
mov dword [rsp + 0x100], eax
mov dword [rsp + 0x104], eax
mov dword [rsp + 0x108], eax
mov dword [rsp + 0x10c], eax
mov dword [rsp + 0x110], eax
lea rcx, [rsi + 0xa40]
lea rdx, [rsp + 0x1a0]
call fcn.14005e5a0
lea rdx, [rsp + 0xf8]
mov rcx, rax
call fcn.14001b8b0
mov edi, eax
mov edx, eax
lea rcx, str.first_time_getR0_d_n
call fcn.1400022c0
test edi, edi
je 0x1400403ec
lea rdx, [rsp + 0x1b0]
lea rcx, [rsp + 0xf8]
mov rax, qword [rcx]
mov qword [rdx], rax
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov rax, qword [rcx + 0x10]
mov qword [rdx + 0x10], rax
mov eax, dword [rcx + 0x18]
mov dword [rdx + 0x18], eax
lea r8, [rsp + 0x1b0]
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.140057e70
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x160]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.140058550
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x188]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
mov rcx, qword [rsi + 0x490]
test rcx, rcx
je 0x1400403c7
mov rax, qword [rcx]
mov edx, r12d
call qword [rax]
mov qword [rsi + 0x490], rbx
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x1400403e5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
xor r9d, r9d
mov edx, 0x3ef
mov r8d, 0x4e20
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_SetTimer]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140040425
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp dword [0x1400fb374], 0
je 0x14004047c
mov dword [rsi + 0x508], ebx
mov rcx, rsi
call fcn.140055b00
test eax, eax
je 0x140040454
mov dword [rsi + 0x508], r12d
mov edx, r12d
mov rcx, rsi
call fcn.140055ef0
jmp 0x140040464
mov dword [rsi + 0x508], ebx
xor edx, edx
mov rcx, rsi
call fcn.140055ef0
xor r9d, r9d
mov edx, 0x3f1
mov r8d, 0x1388
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_SetTimer]
cmp dword [0x1400fb368], 0
je 0x14004049d
xor r9d, r9d
mov edx, 0x3f0
mov r8d, 0x7530
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_SetTimer]
cmp dword [0x1400fb348], 0
je 0x140040596
mov rcx, rsi
call fcn.140056950
mov r9d, 0x104
lea r8, [rsp + 0x470]
lea rdx, str.DDE3B212_51F2_40C2_B51F_43268123D113
lea rcx, str.Real_AMP
call qword [sym.imp.KERNEL32.dll_GetFirmwareEnvironmentVariableA]
movsxd r12, eax
test eax, eax
jne 0x1400404e1
call qword [sym.imp.KERNEL32.dll_GetLastError]
call fcn.1400628f8
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x1400404fe
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
add rax, 0x18
mov qword [rsp + 0xa0], rax
lea rdx, [rsp + 0x470]
lea rcx, [rsp + 0xa0]
call fcn.140058a40
mov rdi, qword [rsp + 0xa0]
test r12d, r12d
je 0x140040555
test r12d, r12d
js 0x14004054a
cmp r12d, dword [rdi - 0xc]
jg 0x14004054a
mov dword [rdi - 0x10], r12d
mov word [rdi + r12*2], 0
jmp 0x140040555
mov ecx, 0x80070057
call fcn.140001950
int3
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x170]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x14004058f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
cmp dword [0x1400fb350], 0
je 0x14004073d
mov ecx, 0x30
call fcn.1400622f0
mov qword [rsp + 0x68], rax
test rax, rax
je 0x1400405c4
mov rcx, rax
call fcn.140025b10
mov r13, rax
jmp 0x1400405c7
mov r13, rbx
test r13, r13
je 0x140040736
mov rcx, r13
call fcn.140001000
test eax, eax
je 0x14004060a
mov edx, 0x40
mov rcx, r13
call fcn.140001120
lea rdx, [r13 + 0x28]
lea rcx, [rsp + 0x198]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
jmp 0x140040724
xor edx, edx
mov r8d, 0x104
lea rcx, [rsp + 0x250]
call fcn.140092640
call fcn.1400628f8
mov rcx, rax
test rax, rax
setne bl
test ebx, ebx
jne 0x14004063c
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x68], rdi
mov rcx, rsi
call fcn.140056950
mov r9d, 0x104
lea r8, [rsp + 0x250]
lea rdx, str.B870EF1B_1810_4A27_B2C3_EC2DCA72B027
lea rcx, str.RLKCODEC
call qword [sym.imp.KERNEL32.dll_GetFirmwareEnvironmentVariableA]
mov ebx, eax
test eax, eax
jne 0x140040686
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x14004070b
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x250]
repne scasb al, byte [rdi]
not rcx
lea rdi, [rcx - 1]
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x68]
call fcn.140058a40
test ebx, ebx
je 0x1400406d9
test edi, edi
js 0x1400406ce
mov rax, qword [rsp + 0x68]
cmp edi, dword [rax - 0xc]
jg 0x1400406ce
mov dword [rax - 0x10], edi
movsxd rcx, edi
mov word [rax + rcx*2], 0
jmp 0x1400406d9
mov ecx, 0x80070057
call fcn.140001950
int3
xor edx, edx
lea r8d, [rdx + 2]
lea rcx, [rsp + 0x68]
call fcn.14003e3e0
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x148]
call fcn.140010c50
mov rdx, rax
mov rcx, rsi
call fcn.1400569f0
mov rdi, qword [rsp + 0x68]
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140040724
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov edx, r12d
mov rcx, r13
call fcn.140041710
xor eax, eax
jmp 0x14004143f
xor eax, eax
jmp 0x14004143f
cmp dword [0x1400fb358], 0
je 0x14004099f
xor edx, edx
mov r8d, 0x104
lea rcx, [rsp + 0x360]
call fcn.140092640
call fcn.1400628f8
mov rdx, rax
mov ecx, ebx
test rax, rax
setne cl
test ecx, ecx
jne 0x14004077e
mov ecx, 0x80004005
call fcn.140001950
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x80], rdi
mov rcx, rsi
call fcn.140056950
mov r9d, 0x104
lea r8, [rsp + 0x360]
lea rdx, str.B870EF1B_1810_4A27_B2C3_EC2DCA72B027
lea rcx, str.RLKCODEC
call qword [sym.imp.KERNEL32.dll_GetFirmwareEnvironmentVariableA]
mov r13d, eax
test eax, eax
jne 0x1400407cf
call qword [sym.imp.KERNEL32.dll_GetLastError]
jmp 0x14004095f
xor eax, eax
mov rcx, rbp
lea rdi, [rsp + 0x360]
repne scasb al, byte [rdi]
not rcx
lea rsi, [rcx - 1]
lea rdx, [rsp + 0x360]
lea rcx, [rsp + 0x80]
call fcn.140058a40
mov rdi, qword [rsp + 0x80]
test r13d, r13d
je 0x140040829
test esi, esi
js 0x14004081e
cmp esi, dword [rdi - 0xc]
jg 0x14004081e
mov dword [rdi - 0x10], esi
movsxd rax, esi
mov word [rdi + rax*2], 0
jmp 0x140040829
mov ecx, 0x80070057
call fcn.140001950
nop
mov qword [rsp + 0xd0], rbx
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
lea rdx, str.SOFTWARERealtekRealtekEffectsDriver
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140040871
mov rsi, qword [rsp + 0xd0]
mov qword [rsp + 0xc8], rsi
jmp 0x1400408d6
mov qword [rsp + 0xe8], rbx
lea rax, [rsp + 0x138]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0x2001f
mov dword [rsp + 0x20], ebx
xor r9d, r9d
xor r8d, r8d
lea rdx, str.SOFTWARERealtekRealtekEffectsDriver
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyExW]
test eax, eax
jne 0x14004097f
mov rsi, qword [rsp + 0xe8]
mov qword [rsp + 0xc8], rsi
cmp dword [rdi - 8], 1
jle 0x1400408f4
mov edx, dword [rdi - 0x10]
lea rcx, [rsp + 0x80]
call fcn.1400019d0
mov rdi, qword [rsp + 0x80]
mov eax, ebx
test rdi, rdi
setne al
test eax, eax
jne 0x14004090b
mov ecx, 0x80004005
call fcn.140001950
int3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea eax, [rax + rax + 2]
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rdi
mov r9d, r12d
xor r8d, r8d
lea rdx, str.MAXIM_CAL
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
test rsi, rsi
je 0x140040950
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rsi, rbx
mov qword [rsp + 0xc8], rbx
test rsi, rsi
je 0x14004095f
mov rcx, rsi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140040978
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140040998
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
xor eax, eax
jmp 0x14004143f
test byte [rsi + 0xb9c], 1
je 0x140040ab7
mov edi, ebx
nop
lea rdx, [rsp + 0x78]
lea rcx, [rsi + 0xa40]
call fcn.14005e5a0
nop
lea rdx, [0x1400c8d94]
lea rcx, [rsp + 0x98]
call fcn.140058980
nop
lea rcx, [rsp + 0x78]
call fcn.140010640
mov rdx, qword [rsp + 0x98]
test rdx, rdx
je 0x140040a10
mov rcx, qword [rsp + 0x78]
cmp dword [rcx - 0x10], 0
jl 0x140040a10
call fcn.14008ed80
test rax, rax
je 0x140040a10
sub rax, qword [rsp + 0x78]
sar rax, 1
cmp eax, 0xffffffff
jne 0x140040a75
mov ecx, 0xbb8
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, rsi
call fcn.140044c40
nop
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140040a48
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140040a68
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add edi, 1
cmp edi, 0xa
jge 0x140040ab7
jmp 0x1400409b0
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov eax, ebp
lock xadd dword [rdx + 0x10], eax
add eax, 0xffffffff
test eax, eax
jg 0x140040a99
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebp
add ebp, 0xffffffff
test ebp, ebp
jg 0x140040ab7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [rsi + 0xb70]
shr eax, 9
and eax, 1
mov dword [rsi + 0x1208], eax
cmp dword [0x1400fb2b8], 0
je 0x140040b0b
mov rcx, rsi
call fcn.140055340
cmp dword [0x1400fb298], 0
jne 0x140040afc
cmp dword [0x1400fb2ac], 0
jne 0x140040afc
lea rcx, [0x1400fb100]
call fcn.14003e350
test eax, eax
je 0x140040b04
mov rcx, rsi
call fcn.140044480
xor eax, eax
jmp 0x14004143f
lea rcx, [0x1400fb100]
call fcn.14003e350
test eax, eax
jne 0x140041435
cmp dword [0x1400fb298], eax
jne 0x140041435
cmp dword [0x1400fb2ac], eax
jne 0x140041435
cmp dword [0x1400fb2b4], eax
je 0x140040b65
lea rcx, [rsi + 0xa40]
lea rdx, [rsp + 0x1a8]
call fcn.14005e5a0
mov edx, r12d
mov rcx, rax
call fcn.14002d2a0
xor eax, eax
jmp 0x14004143f
mov dword [rsi + 0x670], 0x67
mov dword [rsi + 0x674], 0x66
cmp dword [0x1400fb2fc], 0
je 0x140040c1b
add rsi, 0x868
je 0x140040c14
call fcn.14005d580
lea rcx, [rsi + 0x190]
call fcn.140034400
mov ebp, dword [rsi + 0x138]
test ebp, ebp
je 0x140040c03
nop
cmp ebx, dword [rsi + 0x138]
jae 0x140040bf4
mov edx, ebx
lea rcx, [rsi + 0x120]
call fcn.140062edc
test rax, rax
je 0x140040bfd
mov rdi, qword [rax + 0x10]
test rdi, rdi
je 0x140040bf4
lea rdx, [rsp + 0x190]
mov rcx, rdi
call fcn.14003a360
mov rcx, rax
call fcn.14005d000
mov rcx, rdi
call fcn.14005cb90
add ebx, 1
cmp ebx, ebp
jae 0x140040c03
jmp 0x140040bb0
call fcn.140062484
int3
mov rax, qword [rsi + 0x190]
lea rcx, [rsi + 0x190]
call qword [rax + 0x28]
xor eax, eax
jmp 0x14004143f
cmp dword [0x1400fb320], 0
je 0x140040c31
call fcn.1400193d0
test eax, eax
je 0x14004143f
cmp dword [0x1400fb330], 0
je 0x140040c50
cmp dword [0x1400f9f6c], 0
je 0x140040c50
call fcn.1400193d0
test eax, eax
je 0x14004143f
cmp dword [0x1400fb248], 0
je 0x140040c8a
lea rdi, [0x1400f31f0]
mov ebp, 0x26
mov rdx, qword [rdi]
test rdx, rdx
je 0x140040c79
lea rcx, [rsi + 0xcb8]
call fcn.140063030
add rdi, 8
sub rbp, 1
jne 0x140040c65
mov dword [rsi + 0x11d4], r12d
cmp dword [0x1400fb244], 0
je 0x140040c9b
mov rcx, rsi
call fcn.14004c1e0
cmp dword [0x1400fb2e0], 0
je 0x140040ccf
mov rcx, rsi
call fcn.14004c280
bt dword [rsi + 0xaf4], 0x1d
jae 0x140040cbe
mov rcx, rsi
call fcn.14004c660
test byte [rsi + 0xb5c], 0x80
je 0x140040ccf
mov rcx, rsi
call fcn.140052750
cmp dword [0x1400fb2e8], 0
je 0x140040cfe
mov dword [rsi + 0x11d4], r12d
mov rdx, qword [0x1400f26f0]
test rdx, rdx
je 0x140040cf7
lea rcx, [rsi + 0xcb8]
call fcn.140063030
mov dword [rsi + 0x11d4], r12d
cmp dword [0x1400fb2e4], 0
je 0x140040d0e
mov dword [rsi + 0x11d4], r12d
cmp dword [0x1400fb24c], 0
je 0x140040d29
xor edx, edx
mov rcx, rsi
call fcn.14004c6f0
mov rcx, rsi
call fcn.14004f570
cmp dword [0x1400fb250], 0
je 0x140040d45
mov edx, r12d
mov rcx, rsi
call fcn.14004c6f0
mov rcx, rsi
call fcn.14004f620
cmp dword [0x1400fb254], 0
je 0x140040d60
xor edx, edx
mov rcx, rsi
call fcn.14004c6f0
mov rcx, rsi
call fcn.14004f4e0
lea rcx, [0x1400fb100]
call fcn.14003e2f0
test eax, eax
jne 0x140040d80
cmp dword [0x1400fb260], eax
jne 0x140040d80
cmp dword [0x1400fb334], eax
je 0x140040d88
mov rcx, rsi
call fcn.140044660
cmp dword [0x1400fb258], 0
je 0x140040dfb
mov dword [rsi + 0xcb0], r12d
lea rdi, [0x1400f2600]
mov ebp, SafeArrayGetDim
mov rdx, qword [rdi]
test rdx, rdx
je 0x140040db8
lea rcx, [rsi + 0xcb8]
call fcn.140063030
add rdi, 8
sub rbp, 1
jne 0x140040da4
mov dword [rsi + 0x11d4], r12d
lea rcx, [rsi + 0xa40]
lea rdx, [rsp + 0x150]
call fcn.14005e5a0
mov rdx, rax
lea rcx, [rsi + 0xd10]
call fcn.140023bc0
mov dword [rsi + 0xdf8], r12d
mov rcx, rsi
call fcn.140051c90
cmp dword [0x1400fb2d8], 0
je 0x140040e3d
lea rcx, [rsi + 0x10e0]
call fcn.14005ab20
mov rax, qword [rsi + 0x1110]
test rax, rax
je 0x140040e2b
xor r8d, r8d
mov rdx, rsi
lea rcx, [0x140052f30]
call rax
mov rcx, rsi
call fcn.140052f50
xor edx, edx
mov rcx, rsi
call fcn.140051a80
cmp dword [0x1400fb2dc], 0
je 0x140041057
mov edx, r12d
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetDim
call qword [sym.imp.USER32.dll_ChangeWindowMessageFilter]
movzx edx, word [rsi + 0xa42]
cmp edx, 0x1025
je 0x140040e8c
cmp edx, 0x17aa
jne 0x140040e93
mov dword [0x1400fa6a8], 0xff
mov dword [0x1400fa6ac], 0x71
mov dword [rsi + 0x11b0], r12d
jmp 0x140040e93
mov dword [rsi + 0x11b4], r12d
lea rcx, [rsi + 0xc20]
cmp dword [rcx], 0
jne 0x140040fd2
cmp dword [rsi + 0xc24], 0
jne 0x140040fd2
cmp dword [rsi + 0xc28], 0
jne 0x140040fd2
cmp dword [rsi + 0xc2c], 0
jne 0x140040fd2
mov ecx, dword [rsi + 0xbe8]
test ecx, ecx
je 0x140040ef7
movzx eax, byte [rsi + 0xbe9]
mov dword [0x1400faeb0], eax
movzx eax, cl
mov dword [0x1400faeb4], eax
mov rcx, rsi
call fcn.140052270
jmp 0x14004102f
bt dword [rsi + 0xb6c], 0xc
jae 0x140040f1a
mov dword [0x1400fa6a8], 0xff
mov dword [0x1400fa6ac], 2
jmp 0x14004102f
movzx eax, word [rsi + 0xa40]
shl edx, 0x10
or eax, edx
sub eax, 0x17aa215e
je 0x140040f9d
sub eax, 0x5a
je 0x140040f6d
sub eax, 0x17bd
jne 0x14004102f
movzx eax, word [rsi + 0xa44]
cmp ax, 0x4010
je 0x140040f54
cmp ax, 0x4012
jne 0x14004102f
mov dword [0x1400fa6a8], 0xff
mov dword [0x1400fa6ac], 0x71
jmp 0x14004102f
movzx eax, word [rsi + 0xa44]
cmp ax, 0x21bd
je 0x140040f84
cmp ax, 0x21bf
jne 0x14004102f
mov dword [0x1400fa6a8], 0xff
mov dword [0x1400fa6ac], 0x71
jmp 0x14004102f
movzx eax, word [rsi + 0xa44]
cmp ax, 0x21a3
je 0x140040fbc
cmp ax, 0x21a5
je 0x140040fbc
cmp ax, 0x21ba
je 0x140040fbc
cmp ax, 0x21bc
jne 0x14004102f
mov dword [0x1400fa6a8], 0xff
mov dword [0x1400fa6ac], 0x71
jmp 0x14004102f
mov dword [0x1400faed8], ebx
mov rdx, rbx
mov edi, 4
lea r8, [0x140000000]
nop
nop
nop
movzx eax, byte [rcx + 1]
mov dword [rdx + r8 + 0xfaeb8], eax
movzx eax, byte [rcx]
mov dword [rdx + r8 + 0xfaec8], eax
add rdx, 4
add rcx, 4
sub rdi, 1
jne 0x140040ff0
cmp dword [0x1400faec0], edi
jne 0x14004102f
mov eax, ebx
cmp dword [0x1400faec4], ebx
cmovne eax, r12d
mov dword [0x1400faed8], eax
cmp qword [0x1400f9f70], 0
jne 0x140041057
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x140051d90]
lea ecx, [r9 + 0xd]
call qword [sym.imp.USER32.dll_SetWindowsHookExW]
mov qword [0x1400f9f70], rax
bt dword [rsi + 0xaf4], 0xf
jae 0x140041152
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0xe0], rbx
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x20], rax
mov r9d, 0x2001f
xor r8d, r8d
lea rdx, [0x1400c8d98]
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x140041138
mov rbx, qword [rsp + 0xe0]
mov qword [rsp + 0x158], rbx
mov dword [rsp + 0xac], 4
lea rax, [rsp + 0xac]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x128]
xor r8d, r8d
lea rdx, str.Logoff
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
cmp dword [rsp + 0x70], 2
jne 0x140041138
mov edx, r12d
mov rcx, rsi
call fcn.140052980
mov dword [rsp + 0xb8], r12d
mov dword [rsp + 0x28], 4
lea rax, [rsp + 0xb8]
mov qword [rsp + 0x20], rax
mov r9d, 4
xor r8d, r8d
lea rdx, str.Logoff
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
xor edx, edx
mov rcx, qword [rsi + 0x40]
call sub.WTSAPI32.dll_WTSRegisterSessionNotification
nop
test rbx, rbx
je 0x140041152
mov rcx, rbx
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rsi
call fcn.140049f80
cmp dword [0x1400fb248], 0
je 0x14004116b
mov rcx, rsi
call fcn.140043ec0
lea rcx, [0x1400fb100]
call fcn.14003e2f0
test eax, eax
jne 0x140041183
cmp dword [0x1400fb260], eax
je 0x14004118b
mov rcx, rsi
call fcn.1400443c0
cmp dword [0x1400fb2f0], 0
je 0x1400411a3
mov dword [rsi + 0x11d4], r12d
mov rcx, rsi
call fcn.140053070
cmp dword [0x1400fb2f4], 0
jne 0x1400411be
cmp dword [0x1400fb2f8], 0
jne 0x1400411be
cmp dword [0x1400fb2cc], 0
je 0x1400411c5
mov dword [rsi + 0x11d4], r12d
cmp dword [0x1400fb324], 0
jne 0x1400411d7
cmp dword [0x1400fb308], 0
je 0x1400411f1
mov qword [rsi + 0xd00], rsi
lea rdx, [rsi + 0xcf8]
lea rcx, [rsi + 0x868]
call fcn.140034cd0
cmp dword [0x1400fb300], 0
je 0x140041220
lea rcx, [rsi + 0xcb8]
lea rdx, [0x1400c15c8]
call fcn.140063030
mov dword [rsi + 0x11d4], r12d
lea rcx, [rsi + 0x868]
call fcn.14005b1e0
mov rcx, rsi
call fcn.140043a60
cmp dword [0x1400fb314], 0
je 0x14004123d
lea rcx, [rsi + 0x868]
call fcn.1400235a0
cmp dword [rsi + 0xe20], 0
je 0x14004124e
mov rcx, rsi
call fcn.140043540
cmp dword [0x1400fb308], 0
je 0x1400412a4
test byte [rsi + 0xae8], 8
je 0x1400412a4
mov rcx, rsi
call fcn.1400437c0
lea rdi, [rsi + 0x1210]
cmp qword [rdi], 0
jne 0x1400412a4
mov qword [rsp + 0x20], rdi
lea r9, [0x1400c9ea0]
xor edx, edx
lea r8d, [rdx + 0x17]
lea rcx, [0x1400c9ed0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400412a4
mov edx, dword [rsi + 0x40]
call fcn.14003e4c0
cmp dword [0x1400fb328], 0
je 0x140041305
lea rcx, [rsi + 0x868]
call fcn.1400364c0
test rax, rax
je 0x1400412c9
mov rdx, rax
mov rcx, rsi
call fcn.140053cc0
mov dword [rsi + 0xcb0], r12d
lea rdi, [0x1400f2690]
mov ebx, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
nop
mov rdx, qword [rdi]
test rdx, rdx
je 0x1400412f4
lea rcx, [rsi + 0xcb8]
call fcn.140063030
add rdi, 8
sub rbx, 1
jne 0x1400412e0
mov dword [rsi + 0x11d4], r12d
cmp dword [0x1400fb2a8], 0
je 0x140041341
lea rcx, [rsi + 0xcb8]
lea rdx, [0x1400c1178]
call fcn.140063030
mov dword [rsi + 0x11d4], r12d
lea rcx, [rsi + 0x868]
call fcn.140036100
test rax, rax
je 0x140041341
mov rcx, rax
call fcn.14005af90
cmp dword [0x1400fb318], 0
je 0x140041364
lea rcx, [rsi + 0xcb8]
lea rdx, [0x1400c1178]
call fcn.140063030
mov dword [rsi + 0x11d4], r12d
cmp dword [rsi + 0x11d4], 0
je 0x140041387
mov qword [rsi + 0xcf0], rsi
lea rcx, [rsi + 0x868]
lea rdx, [rsi + 0xca8]
call fcn.140034cd0
mov rcx, rsi
call fcn.1400433a0
cmp dword [0x1400fb2c0], 0
je 0x1400413bd
cmp qword [0x1400f9f78], 0
jne 0x1400413bd
xor r8d, r8d
lea rdx, [0x1400c0210]
mov rcx, qword [rsi + 0x40]
call qword [sym.imp.USER32.dll_RegisterPowerSettingNotification]
mov qword [0x1400f9f78], rax
mov eax, dword [0x1400fb2c8]
test eax, eax
je 0x1400413d5
mov dword [0x1400f9e3c], eax
mov rcx, rsi
call fcn.140056060
cmp dword [0x1400fb378], 0
je 0x140041430
lea rcx, [rsi + 0x868]
mov r8d, r12d
xor edx, edx
call fcn.140035c70
test byte [rax + 0x180], 8
je 0x140041430
lea rdx, str.DolbyEnable
lea rcx, [rsp + 0x168]
call fcn.140001f00
lea r8, [rsp + 0xa8]
mov rdx, rax
lea rcx, str.SOFTWAREDolbyDAX
call fcn.140015f60
mov edx, dword [rsp + 0xa8]
mov dword [rsi + 0x1228], edx
mov eax, r12d
jmp 0x14004143f
mov rcx, rsi
call fcn.140044480
xor eax, eax
mov rcx, qword [rsp + 0x580]
xor rcx, rsp
call fcn.14008e430
lea r11, [rsp + 0x590]
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