Function at 0x100003490
Capabilities:
Query or enumerate registry value

Disassembly:
mov eax, 0x1108
call fcn.100006f00
sub rsp, rax
mov qword [rsp + 0x1100], rbx
mov qword [rsp + 0x10f8], rsi
mov qword [rsp + 0x10f0], rdi
mov qword [rsp + 0x10e8], r12
mov r12, rcx
mov qword [rsp + 0x10e0], r13
mov r13, r8
mov rsi, rdx
lea rcx, [rsp + 0x50]
mov r8d, 0x248
xor edx, edx
mov qword [rsp + 0x10d8], r14
xor r14d, r14d
call sub.msvcrt.dll_memset
lea r8, [rsp + 0x50]
mov rdx, rsi
mov rcx, r12
mov dword [rsp + 0x50], 0x248
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceInstallParamsW]
test eax, eax
je 0x10000353b
or dword [rsp + 0x58], 0x4000800
lea r8, [rsp + 0x50]
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsW]
mov r8d, 1
mov rdx, rsi
test eax, eax
mov rcx, r12
je 0x10000356a
call qword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
jne 0x100003542
xor eax, eax
jmp 0x1000038d9
xor r9d, r9d
mov r8d, 1
mov rdx, rsi
mov rcx, r12
mov qword [rsp + 0x20], r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
test eax, eax
setne r14b
mov eax, r14d
jmp 0x1000038d9
and dword [rsp + 0x58], 0xfbfff7ff
xor r9d, r9d
mov dword [rsp + 0x28], 0x20019
mov dword [rsp + 0x20], 2
call qword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
cmp rax, 0xffffffffffffffff
mov rdi, rax
jne 0x10000359c
mov rcx, rax
jmp 0x1000038c1
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x40]
lea rdx, [0x1000014d0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x8c]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x44], 0x208
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1000038be
cmp dword [rsp + 0x40], 1
jne 0x1000038be
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x40]
lea rdx, [0x1000014b0]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x2a0]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x44], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1000038be
cmp dword [rsp + 0x40], 1
jne 0x1000038be
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x40]
lea rdx, [0x100001498]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x8a0]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x44], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1000038be
cmp dword [rsp + 0x40], 1
jne 0x1000038be
lea rax, [rsp + 0x44]
lea r9, [rsp + 0x40]
lea rdx, [0x100001480]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x4a0]
xor r8d, r8d
mov rcx, rdi
mov dword [rsp + 0x44], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
test ebx, ebx
jne 0x1000038c7
cmp dword [rsp + 0x40], 1
jne 0x1000038c7
lea rax, [rsp + 0x6a0]
mov qword [rsp + 0x30], r14
xor r9d, r9d
mov r8d, 0xb
mov rdx, rsi
mov rcx, r12
mov dword [rsp + 0x28], 0x200
mov qword [rsp + 0x20], rax
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
je 0x1000038c7
or dword [rsp + 0x54], 0x10000
or dword [rsp + 0x58], 0x800
lea r8, [rsp + 0x50]
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceInstallParamsW]
test eax, eax
je 0x1000038c7
mov r8d, 1
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupDiBuildDriverInfoList]
test eax, eax
je 0x1000038c7
xor r9d, r9d
mov r8d, 1
mov rdx, rsi
mov rcx, r12
mov ebx, r14d
mov qword [rsp + 0x20], r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
test eax, eax
je 0x10000389c
lea rdi, [r13 + 0x210]
nop
nop
nop
lea r8, [rsp + 0x6a0]
mov rax, rdi
sub r8, rdi
nop
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x1000037a4
add rax, 2
test ecx, ecx
jne 0x100003790
test edx, edx
jne 0x100003878
lea rax, [r13 + 0x410]
lea r8, [rsp + 0x2a0]
sub r8, rax
nop
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x1000037d4
add rax, 2
test ecx, ecx
jne 0x1000037c0
test edx, edx
jne 0x100003878
lea r9, [rsp + 0xaa0]
mov r8, r13
mov rdx, rsi
mov rcx, r12
mov qword [rsp + 0x28], r14
mov dword [rsp + 0xaa0], 0x630
mov dword [rsp + 0x20], 0x630
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDriverInfoDetailW]
test eax, eax
jne 0x10000381a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x7a
jne 0x100003878
lea rax, [rsp + 0xac0]
lea r8, [rsp + 0x8a0]
sub r8, rax
nop
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x100003844
add rax, 2
test ecx, ecx
jne 0x100003830
test edx, edx
jne 0x100003878
lea rax, [rsp + 0xec8]
lea r8, [rsp + 0x4a0]
sub r8, rax
nop
nop
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x100003874
add rax, 2
test ecx, ecx
jne 0x100003860
test edx, edx
je 0x1000038b3
inc ebx
mov r8d, 1
mov rdx, rsi
mov rcx, r12
mov r9d, ebx
mov qword [rsp + 0x20], r13
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDriverInfoW]
test eax, eax
jne 0x100003780
mov r8d, 1
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDriverInfoList]
mov eax, r14d
jmp 0x1000038c9
mov r14d, 1
mov eax, r14d
jmp 0x1000038c9
mov rcx, rdi
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov rdi, qword [rsp + 0x10f0]
mov rbx, qword [rsp + 0x1100]
mov r14, qword [rsp + 0x10d8]
mov r13, qword [rsp + 0x10e0]
mov r12, qword [rsp + 0x10e8]
mov rsi, qword [rsp + 0x10f8]
add rsp, 0x1108
ret