Function at 0x1000464e0
Capabilities:
Query or enumerate registry value

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2f0
mov qword [rsp + 0xa0], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov rax, qword [0x100081138]
xor rax, rsp
mov qword [rsp + 0x2e0], rax
mov rbx, r8
mov qword [rsp + 0x68], rbx
mov edi, edx
mov r12, rcx
mov qword [rsp + 0x98], rcx
lea rcx, [rsp + 0x40]
call fcn.10001e06c
nop
xor r13d, r13d
lea rcx, [rsp + 0x70]
call fcn.10001e06c
nop
lea rcx, [rsp + 0x60]
call fcn.10001e06c
nop
xor r15d, r15d
xor r14d, r14d
mov qword [rsp + 0x88], r14
and qword [rsp + 0x50], r14
mov rax, qword [r12]
cmp dword [rax - 0x10], r14d
je 0x100046b55
mov rcx, r12
call fcn.10002fbcc
test al, al
je 0x100046b55
test rbx, rbx
jne 0x1000465ae
lea rcx, [rsp + 0x60]
call fcn.10001f3ec
nop
lea rcx, [rsp + 0x70]
call fcn.10001f3ec
nop
lea rcx, [rsp + 0x40]
call fcn.10001f3ec
lea eax, [rbx + 0x57]
jmp 0x100046b7a
and dword [rbx], r14d
call fcn.1000309d4
mov esi, 2
lea ebp, [rsi - 1]
cmp eax, ebp
je 0x1000465dd
cmp eax, esi
je 0x1000465dd
cmp eax, 3
je 0x1000465d9
cmp eax, 4
je 0x1000465d9
cmp eax, 5
je 0x1000465d9
mov ebx, esi
jmp 0x1000465df
mov ebx, ebp
jmp 0x1000465df
xor ebx, ebx
lea rdx, [rsp + 0x40]
mov rcx, r12
call fcn.1000453d0
test eax, eax
jne 0x100046609
mov r8, qword [r12]
lea rdx, [0x10000f410]
mov ecx, esi
call fcn.100037e18
xor edi, edi
jmp 0x100046b31
test ebx, ebx
jne 0x100046615
lea edi, [rbx + 0x32]
jmp 0x100046b31
cmp ebx, ebp
jne 0x10004667c
lea rax, [rsp + 0x78]
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x78]
call fcn.10001e09c
nop
mov rcx, rax
call fcn.10004552c
test eax, eax
je 0x100046657
mov r8, qword [rsp + 0x40]
lea rdx, [0x10000f470]
mov ecx, ebp
call fcn.100037e18
jmp 0x100046719
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r9, qword [rsp + 0x40]
lea r8, [0x10000f4a8]
mov edx, eax
mov ecx, 3
call fcn.100037ee8
jmp 0x100046b31
cmp ebx, esi
jne 0x100046719
lea rcx, [0x10000f3d8]
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r14, rax
mov qword [rsp + 0x88], rax
test rax, rax
jne 0x1000466ae
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x100046b22
lea rdx, [0x10000f4d8]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rsp + 0x50], rax
test rax, rax
jne 0x1000466d5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x100046b22
mov edx, edi
lea rcx, [rsp + 0x40]
call fcn.100049604
mov edi, eax
test eax, eax
jne 0x1000466fc
mov r8, qword [rsp + 0x40]
lea rdx, [0x10000f4e8]
mov ecx, ebp
call fcn.100037e18
jmp 0x100046719
mov r9, qword [rsp + 0x40]
lea r8, [0x10000f528]
mov edx, eax
mov ecx, 3
call fcn.100037ee8
jmp 0x100046b22
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call fcn.10002f82c
test al, al
jne 0x10004673b
mov edi, 0x57
jmp 0x100046b22
mov r9d, 4
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.SETUPAPI.dll_SetupDiGetClassDevsW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x100046764
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
jmp 0x100046b22
xor edi, edi
mov dword [rsp + 0x78], edi
mov dword [rsp + 0xa8], 0x20
movsxd rax, ebx
mov qword [rsp + 0x58], rax
lea r8, [rsp + 0xa8]
xor edx, edx
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
je 0x100046ae5
mov rbx, qword [rsp + 0x60]
mov esi, dword [rsp + 0x78]
mov r12, qword [rsp + 0x68]
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
jmp 0x1000467b7
mov r13d, dword [rsp + 0x68]
inc r13d
mov dword [rsp + 0x68], r13d
mov dword [rsp + 0x28], 0x20019
mov dword [rsp + 0x20], 2
xor r9d, r9d
lea r8d, [r9 + 1]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiOpenDevRegKey]
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x100046aa5
mov dword [rsp + 0x84], 0x208
mov dword [rsp + 0x80], 1
lea rax, [rsp + 0x84]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0xd0]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
xor r8d, r8d
lea rdx, [0x10000f560]
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x100046a98
or dword [rsp + 0x28], 0xffffffff
mov qword [rsp + 0x20], rbx
or r9d, 0xffffffff
lea r8, [rsp + 0xd0]
lea edx, [rax + 1]
lea ecx, [rax + 0x7f]
call qword [sym.imp.KERNEL32.dll_CompareStringW]
cmp eax, 2
jne 0x100046a98
lea rcx, [rsp + 0x50]
call fcn.10001e06c
nop
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call fcn.100048ba4
xor r9d, r9d
mov r8d, dword [rsp + 0xbc]
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x94]
call qword [sym.imp.SETUPAPI.dll_CM_Get_DevNode_Status]
cmp eax, 0xd
je 0x1000469bf
cmp eax, 0x25
je 0x1000469bf
and dword [rsp + 0x48], 0
cmp r14, 1
jne 0x1000468e9
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call fcn.1000484dc
mov esi, eax
jmp 0x100046951
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
and dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0xa8]
mov rdx, rbp
xor ecx, ecx
call rdi
test eax, eax
jne 0x100046951
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
cmp eax, 0xe0000203
jne 0x100046951
lea rax, [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 4
xor r9d, r9d
lea r8, [rsp + 0xa8]
mov rdx, rbp
xor ecx, ecx
call rdi
test eax, eax
jne 0x10004694f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x100046951
xor esi, esi
test esi, esi
jne 0x100046973
mov r8, qword [rsp + 0x50]
cmp dword [r8 - 0x10], esi
je 0x10004696e
lea rdx, [0x10000f6b0]
xor ecx, ecx
call fcn.100037e18
inc r15d
jmp 0x1000469a7
mov r9, qword [rsp + 0x50]
cmp dword [r9 - 0x10], 0
jne 0x100046994
lea r8, [0x10000f5f8]
mov edx, esi
mov ecx, 3
call fcn.100037ee8
jmp 0x1000469a7
lea r8, [0x10000f720]
mov edx, esi
mov ecx, 3
call fcn.100037ee8
cmp dword [rsp + 0x48], 0
je 0x100046a8e
mov dword [r12], 1
jmp 0x100046a8e
and dword [rsp + 0x58], 0
and qword [rsp + 0x30], 0
mov esi, 4
mov dword [rsp + 0x28], esi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
lea r8d, [rsi + 6]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiGetDeviceRegistryPropertyW]
test eax, eax
je 0x100046a2e
or dword [rsp + 0x58], 0x20
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x58]
lea r8d, [rsi + 6]
lea rdx, [rsp + 0xa8]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiSetDeviceRegistryPropertyW]
test eax, eax
je 0x100046a24
xor esi, esi
jmp 0x100046a3a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x100046a36
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jne 0x100046a59
mov r8, qword [rsp + 0x50]
cmp dword [r8 - 0x10], 0
je 0x100046a54
lea rdx, [0x10000f570]
xor ecx, ecx
call fcn.100037e18
inc r15d
jmp 0x100046a8e
mov r9, qword [rsp + 0x50]
cmp dword [r9 - 0x10], 0
jne 0x100046a7a
lea r8, [0x10000f5f8]
mov edx, esi
mov ecx, 3
call fcn.100037ee8
jmp 0x100046a8e
lea r8, [0x10000f630]
mov edx, esi
mov ecx, 3
call fcn.100037ee8
nop
lea rcx, [rsp + 0x50]
call fcn.10001f3ec
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
or r13, 0xffffffffffffffff
lea r8, [rsp + 0xa8]
mov edx, dword [rsp + 0x68]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiEnumDeviceInfo]
test eax, eax
jne 0x1000467b2
cmp r13, 0xffffffffffffffff
mov edi, dword [rsp + 0x78]
mov r12, qword [rsp + 0x98]
mov r14, qword [rsp + 0x88]
je 0x100046ae5
mov rcx, r13
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, rbp
call qword [sym.imp.SETUPAPI.dll_SetupDiDestroyDeviceInfoList]
test r15d, r15d
je 0x100046b0d
mov r9, qword [r12]
mov r8d, r15d
lea rdx, [0x10000f780]
mov ecx, 1
call fcn.100037e18
jmp 0x100046b22
mov r8, qword [r12]
lea rdx, [0x10000f7e0]
mov ecx, 1
call fcn.100037e18
test r14, r14
je 0x100046b31
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
nop
lea rcx, [rsp + 0x60]
call fcn.10001f3ec
nop
lea rcx, [rsp + 0x70]
call fcn.10001f3ec
nop
lea rcx, [rsp + 0x40]
call fcn.10001f3ec
mov eax, edi
jmp 0x100046b7a
lea rcx, [rsp + 0x60]
call fcn.10001f3ec
nop
lea rcx, [rsp + 0x70]
call fcn.10001f3ec
nop
lea rcx, [rsp + 0x40]
call fcn.10001f3ec
mov eax, 0x57
mov rcx, qword [rsp + 0x2e0]
xor rcx, rsp
call fcn.10005cbe0
mov rbx, qword [rsp + 0x348]
add rsp, 0x2f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret