Function at 0x140006d30
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.140007900
nop
lea rsi, [rdi + 0xa8]
lea rdx, str.setupapi.dll
mov rcx, rsi
call fcn.140007900
nop
lea rdx, str.newdev.dll
lea rcx, [rdi + 0xb0]
call fcn.140007900
nop
lea rdx, str.cfgmgr32.dll
lea rcx, [rdi + 0xb8]
call fcn.140007900
nop
lea rcx, [rdi + 0xc0]
lea rdx, str.printui.dll
call fcn.140007900
nop
lea rdx, str.winspool.drv
lea rcx, [rdi + 0xc8]
call fcn.140007900
nop
xor ebx, ebx
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
lea r8d, [rbx + 0x10]
lea rdx, str.OpenProcessToken
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x140006e18
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006e1b
mov rax, rbx
mov qword [rdi + 8], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006e5a
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006e55
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000788a
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x13
lea rdx, str.GetTokenInformation
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x140006ea1
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006ea4
mov rax, rbx
mov qword [rdi], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006ee2
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006edd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007890
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x34
lea rdx, str.ConvertStringSecurityDescriptorToSecurityDescriptorW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x140006f29
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006f2c
mov rax, rbx
mov qword [rdi + 0x10], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006f6b
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006f66
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007896
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x13
lea rdx, str.SetupDiGetINFClassW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x140006fae
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140006fb1
mov rax, rbx
mov qword [rdi + 0x18], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140006ff0
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140006feb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000789c
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x1b
lea rdx, str.SetupDiCreateDeviceInfoList
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x140007033
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140007036
mov rax, rbx
mov qword [rdi + 0x20], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007075
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007070
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078a2
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x18
lea rdx, str.SetupDiCreateDeviceInfoW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400070b8
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400070bb
mov rax, rbx
mov qword [rdi + 0x28], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400070fa
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400070f5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078a8
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x21
lea rdx, str.SetupDiSetDeviceRegistryPropertyW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x14000713d
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140007140
mov rax, rbx
mov qword [rdi + 0x30], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14000717f
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000717a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078ae
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x19
lea rdx, [0x140052f40]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400071c2
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400071c5
mov rax, rbx
mov qword [rdi + 0x38], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007204
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400071ff
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078b4
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x16
lea rdx, [0x140052f60]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x140007247
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14000724a
mov rax, rbx
mov qword [rdi + 0x40], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007289
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007284
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078ba
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x15
lea rdx, [0x140052f78]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400072cc
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400072cf
mov rax, rbx
mov qword [rdi + 0x48], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14000730e
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007309
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078c0
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x1f
lea rdx, [0x140052f90]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x140007351
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140007354
mov rax, rbx
mov qword [rdi + 0x50], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007393
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000738e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078c6
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x21
lea rdx, [0x140052fb0]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x1400073d6
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400073d9
mov rax, rbx
mov qword [rdi + 0x58], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007418
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007413
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078cc
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x1d
lea rdx, [0x140052fd8]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rsi]
test rcx, rcx
je 0x14000745b
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14000745e
mov rax, rbx
mov qword [rdi + 0x60], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x14000749d
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007498
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078d2
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x22
lea rdx, str.UpdateDriverForPlugAndPlayDevicesW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xb0]
test rcx, rcx
je 0x1400074e4
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400074e7
mov rax, rbx
mov qword [rdi + 0x68], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007526
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007521
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078d8
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x14
lea rdx, [0x140053020]
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x14000756d
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140007570
mov rax, rbx
mov qword [rdi + 0x70], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400075af
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400075aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078de
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x15
lea rdx, str.CM_Locate_DevNode_ExW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x1400075f6
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x1400075f9
mov rax, rbx
mov qword [rdi + 0x78], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007638
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140007633
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078e4
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x19
lea rdx, str.CM_Reenumerate_DevNode_Ex
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xb8]
test rcx, rcx
je 0x14000767f
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x140007682
mov rax, rbx
mov qword [rdi + 0x80], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400076c4
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400076bf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078ea
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0xd
lea rdx, str.PrintUIEntryW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xc0]
test rcx, rcx
je 0x14000770b
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14000770e
mov rax, rbx
mov qword [rdi + 0x88], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x140007750
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000774b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078f0
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x1b
lea rdx, str.UploadPrinterDriverPackageW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xc8]
test rcx, rcx
je 0x140007797
lea rdx, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rdx, qword [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
jmp 0x14000779a
mov rax, rbx
mov qword [rdi + 0x90], rax
mov rdx, qword [rbp - 0x18]
cmp rdx, 0x10
jb 0x1400077dc
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400077d7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400078f6
call fcn.14001f834
mov qword [rbp - 0x20], rbx
mov qword [rbp - 0x18], 0xf
mov byte [rbp - 0x30], bl
mov r8d, 0x20
lea rdx, str.InstallPrinterDriverFromPackageW
lea rcx, [rbp - 0x30]
call fcn.140005a30
mov rcx, qword [rdi + 0xc8]
test rcx, rcx
je 0x140007824
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 0x140007863
inc rdx
mov rcx, qword [rbp - 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000785d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140007884
call fcn.14001f834
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.1400293c8
nop
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3
call fcn.1400293c8
int3