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.14000b2fc
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 [0x1402489c0], 0
jne 0x140001c62
mov dword [0x1402489b0], 0x94
lea rcx, [0x1402489b0]
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [rdi + 0x48], 0
mov dword [rdi + 8], 0
cmp dword [0x1402488e4], 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 [0x140248988], rax
lea rdx, str.CM_Get_Child
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248990], rax
lea rdx, str.CM_Get_Sibling
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248998], rax
lea rdx, str.CM_Get_DevNode_Registry_PropertyA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402489a0], rax
lea rdx, str.CM_Get_Parent
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402489a8], rax
lea rdx, str.CM_Get_DevNode_Status
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402488e8], rax
lea rdx, str.CM_Disable_DevNode
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402488f0], rax
lea rdx, str.CM_Enable_DevNode
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248908], 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 [0x140248968], rax
lea rdx, str.SetupDiEnumDeviceInfo
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248970], rax
lea rdx, str.SetupDiDestroyDeviceInfoList
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248978], rax
lea rdx, str.SetupDiGetDeviceRegistryPropertyA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248980], rax
lea rdx, str.SetupDiSetClassInstallParamsA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1402488f8], rax
lea rdx, str.SetupDiCallClassInstaller
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248900], rax
lea rdx, str.SetupDiGetDeviceInstallParamsA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248960], rax
lea rdx, str.CM_Enumerate_Classes
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248910], rax
lea rdx, str.SetupDiClassNameFromGuidA
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248918], rax
lea rdx, str.SetupDiOpenClassRegKey
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248920], rax
lea rdx, str.CM_Connect_MachineA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248928], rax
lea rdx, str.CM_Locate_DevNode_ExA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248930], rax
lea rdx, str.CM_Disconnect_Machine
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248938], rax
lea rdx, str.CM_Get_Child_Ex
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248940], rax
lea rdx, str.CM_Get_Sibling_Ex
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248948], rax
lea rdx, str.CM_Get_Parent_Ex
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248950], rax
lea rdx, str.CM_Get_DevNode_Registry_Property_ExA
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x140248958], rax
cmp qword [0x140248988], 0
je 0x14000201d
cmp qword [0x140248990], 0
je 0x14000201d
cmp qword [0x140248998], 0
je 0x14000201d
cmp qword [0x1402489a0], 0
je 0x14000201d
cmp qword [0x140248968], 0
je 0x14000201d
cmp qword [0x140248970], 0
je 0x14000201d
cmp qword [0x140248978], 0
je 0x14000201d
cmp qword [0x140248980], 0
je 0x14000201d
cmp qword [0x1402488e8], 0
je 0x14000201d
cmp qword [0x1402489a8], 0
je 0x14000201d
cmp qword [0x140248910], 0
je 0x14000201d
cmp qword [0x140248918], 0
je 0x14000201d
cmp qword [0x140248920], 0
je 0x14000201d
cmp qword [0x140248928], 0
je 0x14000201d
cmp qword [0x140248930], 0
je 0x14000201d
cmp qword [0x140248938], 0
je 0x14000201d
cmp qword [0x140248940], 0
je 0x14000201d
cmp qword [0x140248948], 0
je 0x14000201d
test rax, rax
je 0x14000201d
cmp qword [0x1402488f0], 0
je 0x14000201d
cmp qword [0x140248900], 0
je 0x14000201d
cmp qword [0x140248908], 0
je 0x14000201d
cmp qword [0x140248960], 0
je 0x14000201d
cmp qword [0x1402488f8], 0
je 0x14000201d
cmp qword [0x140248950], 0
mov dword [0x1402488e4], 1
jne 0x140002027
mov dword [0x1402488e4], 0
mov rax, rdi
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret