Function at 0x180012d10
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x180185680]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov r12, rcx
mov qword [rbp - 0x20], rdx
xor edi, edi
lea rcx, str.setupapi.dll
mov ebx, edi
mov r15d, edi
mov r13, r8
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x180012e3e
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea r14, [r13 + 0x820]
test rax, rax
je 0x180012dac
mov rdx, qword [rbp - 0x20]
lea rcx, [rbp - 0x14]
mov dword [rsp + 0x38], edi
lea r9, [rbp - 0x18]
mov qword [rsp + 0x30], rcx
lea r8, [0x180155288]
mov dword [rsp + 0x28], 0x10
mov rcx, r12
mov qword [rsp + 0x20], r14
call rax
mov r15d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r15d, r15d
je 0x180012e3e
cmp dword [rbp - 0x18], 0xd
jne 0x180012e3e
lea rcx, str.setupapi.dll
mov ebx, 1
mov r15d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x180012e37
lea rdx, str.SetupDiGetClassPropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180012e23
lea rcx, [rbp - 0x14]
mov dword [rsp + 0x30], ebx
mov qword [rsp + 0x28], rcx
lea r9, [r13 + 0x146c]
mov edx, ebx
mov dword [rsp + 0x20], ebx
mov rcx, r14
lea r8, [rbp - 0x18]
lea rdx, [0x1801551e0]
call rax
mov r15d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r15d, r15d
je 0x180012e37
cmp dword [rbp - 0x18], 0x11
je 0x180012e3e
mov byte [r13 + 0x146c], dil
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x180012ec1
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180012ea3
mov dword [rsp + 0x38], edi
lea rdx, [rbp - 0x14]
mov qword [rsp + 0x30], rdx
lea rcx, [r13 + 0x830]
mov rdx, qword [rbp - 0x20]
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x208
lea r8, [0x1801552a0]
mov qword [rsp + 0x20], rcx
mov rcx, r12
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r15d, 1
test r14d, r14d
je 0x180012ec7
cmp dword [rbp - 0x18], 0xd
cmove ebx, r15d
jmp 0x180012ec7
mov r15d, 1
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x180012f42
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180012f2c
mov dword [rsp + 0x38], edi
lea rdx, [rbp - 0x14]
mov qword [rsp + 0x30], rdx
lea rcx, [r13 + 0xa38]
mov rdx, qword [rbp - 0x20]
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x208
lea r8, [0x1801552b8]
mov qword [rsp + 0x20], rcx
mov rcx, r12
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r14d, r14d
je 0x180012f42
cmp dword [rbp - 0x18], 0x12
cmove ebx, r15d
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x180012fbd
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180012fa7
mov dword [rsp + 0x38], edi
lea rdx, [rbp - 0x14]
mov qword [rsp + 0x30], rdx
lea rcx, [r13 + 0x410]
mov rdx, qword [rbp - 0x20]
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x410
lea r8, [0x180155240]
mov qword [rsp + 0x20], rcx
mov rcx, r12
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r14d, r14d
je 0x180012fbd
cmp dword [rbp - 0x18], 0x12
cmove ebx, r15d
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x180013038
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180013022
mov dword [rsp + 0x38], edi
lea rdx, [rbp - 0x14]
mov qword [rsp + 0x30], rdx
lea rcx, [r13 + 0x208]
mov rdx, qword [rbp - 0x20]
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x208
lea r8, [0x1801551f8]
mov qword [rsp + 0x20], rcx
mov rcx, r12
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r14d, r14d
je 0x180013038
cmp dword [rbp - 0x18], 0x12
cmove ebx, r15d
lea rcx, str.setupapi.dll
mov r15d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov r14, rax
test rax, rax
je 0x1800130d6
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rsi, [r13 + 0x1050]
test rax, rax
je 0x1800130a1
mov rdx, qword [rbp - 0x20]
lea rcx, [rbp - 0x14]
mov dword [rsp + 0x38], edi
lea r9, [rbp - 0x18]
mov qword [rsp + 0x30], rcx
lea r8, [0x180155228]
mov dword [rsp + 0x28], 0x10
mov rcx, r12
mov qword [rsp + 0x20], rsi
call rax
mov r15d, eax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r15d, r15d
je 0x1800130d6
cmp dword [rbp - 0x18], 0xd
jne 0x1800130d6
mov rcx, rsi
call fcn.180012ad0
mov r8, rax
lea rcx, [r13 + 0x1060]
mov edx, 0x103
call fcn.1801259f0
mov ebx, 1
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x1800131ce
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov r15, qword [rbp - 0x20]
test rax, rax
je 0x18001313b
mov dword [rsp + 0x38], edi
lea rcx, [rbp - 0x14]
mov qword [rsp + 0x30], rcx
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x208
lea r8, [0x180155258]
mov rcx, r12
mov qword [rsp + 0x20], r13
mov rdx, r15
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r14d, r14d
je 0x1800131ce
cmp dword [rbp - 0x18], 0x12
jne 0x1800131ce
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x1800131ce
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1800131b0
mov dword [rsp + 0x38], edi
lea rcx, [rbp - 0x14]
mov qword [rsp + 0x30], rcx
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x208
lea r8, [0x1801552d0]
mov rcx, r12
mov qword [rsp + 0x20], r13
mov rdx, r15
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov r15d, 1
test r14d, r14d
je 0x1800131d4
cmp dword [rbp - 0x18], 0x12
cmove ebx, r15d
jmp 0x1800131d4
mov r15d, 1
lea rcx, str.setupapi.dll
mov r14d, edi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x18001324f
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x180013239
mov dword [rsp + 0x38], edi
lea rdx, [rbp - 0x14]
mov qword [rsp + 0x30], rdx
lea rcx, [r13 + 0xe48]
mov rdx, qword [rbp - 0x20]
lea r9, [rbp - 0x18]
mov dword [rsp + 0x28], 0x208
lea r8, [0x180155210]
mov qword [rsp + 0x20], rcx
mov rcx, r12
call rax
mov r14d, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test r14d, r14d
je 0x18001324f
cmp dword [rbp - 0x18], 0x12
cmove ebx, r15d
lea rcx, str.setupapi.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x1800132c5
lea rdx, str.SetupDiGetDevicePropertyW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x1800132b0
mov rdx, qword [rbp - 0x20]
lea r9, [rbp - 0x14]
mov dword [rsp + 0x38], edi
lea r8, [r13 + 0xc40]
mov qword [rsp + 0x30], r9
mov rcx, r12
mov dword [rsp + 0x28], 0x208
lea r9, [rbp - 0x18]
mov qword [rsp + 0x20], r8
lea r8, [0x180155270]
call rax
mov edi, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
test edi, edi
je 0x1800132c5
cmp dword [rbp - 0x18], 0x12
cmove ebx, r15d
mov eax, ebx
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.18010faf0
mov rbx, qword [rsp + 0xb8]
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret