Function at 0x140001bd0
Capabilities:
Link many functions at runtime

Disassembly:
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
mov rdi, rcx
lea rax, vtable.CDeviceManager.0
mov qword [rcx], rax
lea rbx, [rcx + 0x10]
mov qword [rsp + 0x40], rbx
xor edx, edx
mov rcx, rbx
call fcn.14000b080
nop
lea rax, vtable.CCriticalSection.0
mov qword [rbx], rax
lea rcx, [rbx + 0x10]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
test eax, eax
jne 0x140001c42
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jle 0x140001c38
movzx eax, ax
or eax, 0x80070000
test eax, eax
jns 0x140001c42
mov ecx, eax
call fcn.140001980
nop
cmp dword [0x1402478c0], 0
jne 0x140001c62
mov dword [0x1402478b0], 0x94
lea rcx, [0x1402478b0]
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [rdi + 0x48], 0
mov dword [rdi + 8], 0
cmp dword [0x1402477e4], 0
jne 0x140002027
lea rcx, str.cfgmgr32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rbx, rax
test rax, rax
je 0x140002027
lea rdx, str.CM_Locate_DevNodeA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247888], rax
lea rdx, str.CM_Get_Child
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247890], rax
lea rdx, str.CM_Get_Sibling
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247898], rax
lea rdx, str.CM_Get_DevNode_Registry_PropertyA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402478a0], rax
lea rdx, str.CM_Get_Parent
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402478a8], rax
lea rdx, str.CM_Get_DevNode_Status
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402477e8], rax
lea rdx, str.CM_Disable_DevNode
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402477f0], rax
lea rdx, str.CM_Enable_DevNode
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247808], rax
lea rcx, str.setupapi.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rsi, rax
test rax, rax
je 0x140002027
lea rdx, str.SetupDiGetClassDevsA
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247868], rax
lea rdx, str.SetupDiEnumDeviceInfo
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247870], rax
lea rdx, str.SetupDiDestroyDeviceInfoList
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247878], rax
lea rdx, str.SetupDiGetDeviceRegistryPropertyA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247880], rax
lea rdx, str.SetupDiSetClassInstallParamsA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402477f8], rax
lea rdx, str.SetupDiCallClassInstaller
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247800], rax
lea rdx, str.SetupDiGetDeviceInstallParamsA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247860], rax
lea rdx, str.CM_Enumerate_Classes
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247810], rax
lea rdx, str.SetupDiClassNameFromGuidA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247818], rax
lea rdx, str.SetupDiOpenClassRegKey
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247820], rax
lea rdx, str.CM_Connect_MachineA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247828], rax
lea rdx, str.CM_Locate_DevNode_ExA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247830], rax
lea rdx, str.CM_Disconnect_Machine
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247838], rax
lea rdx, str.CM_Get_Child_Ex
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247840], rax
lea rdx, str.CM_Get_Sibling_Ex
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247848], rax
lea rdx, str.CM_Get_Parent_Ex
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247850], rax
lea rdx, str.CM_Get_DevNode_Registry_Property_ExA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140247858], rax
cmp qword [0x140247888], 0
je 0x14000201d
cmp qword [0x140247890], 0
je 0x14000201d
cmp qword [0x140247898], 0
je 0x14000201d
cmp qword [0x1402478a0], 0
je 0x14000201d
cmp qword [0x140247868], 0
je 0x14000201d
cmp qword [0x140247870], 0
je 0x14000201d
cmp qword [0x140247878], 0
je 0x14000201d
cmp qword [0x140247880], 0
je 0x14000201d
cmp qword [0x1402477e8], 0
je 0x14000201d
cmp qword [0x1402478a8], 0
je 0x14000201d
cmp qword [0x140247810], 0
je 0x14000201d
cmp qword [0x140247818], 0
je 0x14000201d
cmp qword [0x140247820], 0
je 0x14000201d
cmp qword [0x140247828], 0
je 0x14000201d
cmp qword [0x140247830], 0
je 0x14000201d
cmp qword [0x140247838], 0
je 0x14000201d
cmp qword [0x140247840], 0
je 0x14000201d
cmp qword [0x140247848], 0
je 0x14000201d
test rax, rax
je 0x14000201d
cmp qword [0x1402477f0], 0
je 0x14000201d
cmp qword [0x140247800], 0
je 0x14000201d
cmp qword [0x140247808], 0
je 0x14000201d
cmp qword [0x140247860], 0
je 0x14000201d
cmp qword [0x1402477f8], 0
je 0x14000201d
cmp qword [0x140247850], 0
mov dword [0x1402477e4], 1
jne 0x140002027
mov dword [0x1402477e4], 0
mov rax, rdi
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret