Function at 0x140006510
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov rdi, rcx
mov qword [rbp - 0x10], rcx
lea rdx, str.advapi32.dll
add rcx, 0xa0
call fcn.1400070f0
nop
lea rsi, [rdi + 0xa8]
lea rdx, str.setupapi.dll
mov rcx, rsi
call fcn.1400070f0
nop
lea rdx, str.newdev.dll
lea rcx, [rdi + 0xb0]
call fcn.1400070f0
nop
lea rdx, str.cfgmgr32.dll
lea rcx, [rdi + 0xb8]
call fcn.1400070f0
nop
lea rcx, [rdi + 0xc0]
lea rdx, str.printui.dll
call fcn.1400070f0
nop
lea rdx, str.winspool.drv
lea rcx, [rdi + 0xc8]
call fcn.1400070f0
nop
xor ebx, ebx
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
lea r8d, [rbx + 0x10]
lea rdx, str.OpenProcessToken
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x1400065f9
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400065fc
mov rax, rbx
mov qword [rdi + 8], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14000663b
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006636
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000707e
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x13
lea rdx, str.GetTokenInformation
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x140006683
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006686
mov rax, rbx
mov qword [rdi], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400066c4
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400066bf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007084
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x34
lea rdx, str.ConvertStringSecurityDescriptorToSecurityDescriptorW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x14000670c
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14000670f
mov rax, rbx
mov qword [rdi + 0x10], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14000674e
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006749
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000708a
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x13
lea rdx, str.SetupDiGetINFClassW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006792
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006795
mov rax, rbx
mov qword [rdi + 0x18], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400067d4
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400067cf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007090
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x1b
lea rdx, str.SetupDiCreateDeviceInfoList
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006818
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14000681b
mov rax, rbx
mov qword [rdi + 0x20], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14000685a
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006855
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007096
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x18
lea rdx, str.SetupDiCreateDeviceInfoW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x14000689e
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400068a1
mov rax, rbx
mov qword [rdi + 0x28], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400068e0
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400068db
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000709c
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x21
lea rdx, str.SetupDiSetDeviceRegistryPropertyW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006924
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006927
mov rax, rbx
mov qword [rdi + 0x30], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006966
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006961
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070a2
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x19
lea rdx, [0x140054b70]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400069aa
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400069ad
mov rax, rbx
mov qword [rdi + 0x38], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400069ec
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400069e7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070a8
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x16
lea rdx, [0x140054b90]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006a30
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006a33
mov rax, rbx
mov qword [rdi + 0x40], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006a72
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006a6d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070ae
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x15
lea rdx, [0x140054ba8]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006ab6
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006ab9
mov rax, rbx
mov qword [rdi + 0x48], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006af8
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006af3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070b4
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x1f
lea rdx, [0x140054bc0]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006b3c
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006b3f
mov rax, rbx
mov qword [rdi + 0x50], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006b7e
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006b79
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070ba
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x21
lea rdx, [0x140054be0]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006bc2
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006bc5
mov rax, rbx
mov qword [rdi + 0x58], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006c04
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006bff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070c0
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x1d
lea rdx, [0x140054c08]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006c48
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006c4b
mov rax, rbx
mov qword [rdi + 0x60], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006c8a
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006c85
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070c6
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x22
lea rdx, str.UpdateDriverForPlugAndPlayDevicesW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xb0]
test rcx, rcx
je 0x140006cd2
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006cd5
mov rax, rbx
mov qword [rdi + 0x68], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006d14
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006d0f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070cc
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x14
lea rdx, [0x140054c50]
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x140006d5c
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006d5f
mov rax, rbx
mov qword [rdi + 0x70], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006d9e
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006d99
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070d2
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x15
lea rdx, str.CM_Locate_DevNode_ExW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x140006de6
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006de9
mov rax, rbx
mov qword [rdi + 0x78], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006e28
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006e23
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070d8
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x19
lea rdx, str.CM_Reenumerate_DevNode_Ex
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x140006e70
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006e73
mov rax, rbx
mov qword [rdi + 0x80], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006eb5
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006eb0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070de
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0xd
lea rdx, str.PrintUIEntryW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xc0]
test rcx, rcx
je 0x140006efd
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006f00
mov rax, rbx
mov qword [rdi + 0x88], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006f42
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006f3d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070e4
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x1b
lea rdx, str.UploadPrinterDriverPackageW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xc8]
test rcx, rcx
je 0x140006f8a
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006f8d
mov rax, rbx
mov qword [rdi + 0x90], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006fcf
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006fca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400070ea
call fcn.14001f130
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov r8d, 0x20
lea rdx, str.InstallPrinterDriverFromPackageW
lea rcx, [rbp - 0x30]
call fcn.1400055d0
mov rcx, qword [rdi + 0xc8]
test rcx, rcx
je 0x140007018
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rbx, rax
mov qword [rdi + 0x98], rbx
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007057
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007051
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007078
call fcn.14001f130
nop
mov rax, rdi
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.14002ad18
nop
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3
call fcn.14002ad18
int3