Function at 0x1402409f0
Capabilities:
Reference wmi statements

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
movaps xmmword [rsp + 0x100], xmm7
movaps xmmword [rsp + 0xf0], xmm6
mov rsi, rcx
mov rax, qword [0x14040b018]
xor rax, rsp
mov qword [rsp + 0xe8], rax
lea rax, [rsp + 0xe0]
mov qword [rax], 0
mov qword [rsp + 0x20], rax
lea rcx, [0x1403aab50]
lea r9, [0x1403e5138]
xor edx, edx
mov r8d, 1
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x140240f23
xor ebx, ebx
lea r15, [rsp + 0xd8]
mov qword [r15], rbx
mov rdi, qword [rsp + 0xe0]
lea rax, str.ROOTCIMV2
lea rdx, [rsp + 0xc8]
mov qword [rdx], rax
mov qword [rdx + 8], 0xa
lea r14, [rsp + 0x70]
mov rcx, r14
call fcn.140207850
mov rdx, qword [r14]
mov rax, qword [rdi]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x40], r15
xorps xmm0, xmm0
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x20], rbx
mov dword [rsp + 0x28], 0x80
mov rcx, rdi
xor r8d, r8d
xor r9d, r9d
call qword [case.0x1403339d6.0]
mov ebx, eax
mov rcx, r14
call fcn.1402078a0
test ebx, ebx
js 0x1402410b8
mov rcx, qword [rsp + 0xd8]
mov eax, 3
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], eax
mov dword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov edx, 0xa
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x140240f2a
xor r14d, r14d
lea r12, [rsp + 0xc0]
mov qword [r12], r14
mov rbx, qword [rsp + 0xd8]
lea rax, str.SELECT__FROM_Win32_DiskDrive
lea rdx, [rsp + 0xb0]
mov qword [rdx], rax
mov qword [rdx + 8], 0x1d
lea rdi, [rsp + 0x70]
mov rcx, rdi
call fcn.140207850
mov r15, qword [rdi]
lea rax, [0x1403e5148]
lea rdx, [rsp + 0xa0]
mov qword [rdx], rax
mov qword [rdx + 8], 3
lea r13, [rsp + 0x50]
mov rcx, r13
call fcn.140207850
mov rdx, qword [r13]
mov rax, qword [rbx]
mov rax, qword [rax + 0xa0]
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r14
mov rcx, rbx
mov r8, r15
mov r9d, 0x20
call qword [case.0x1403339d6.0]
mov ebx, eax
mov rcx, r13
call fcn.1402078a0
mov rcx, rdi
call fcn.1402078a0
test ebx, ebx
js 0x140241092
mov dword [rsp + 0x9c], 0
mov rcx, qword [rsp + 0xc0]
mov ebx, 0x80004005
test rcx, rcx
je 0x140241092
lea r14, [rsp + 0x9c]
lea r15, [rsp + 0x90]
movaps xmm6, xmmword [0x1403df810]
xorps xmm7, xmm7
xor eax, eax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x90], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x20], r14
mov r12d, 1
mov edx, 0xffffffff
mov r8d, 1
mov r9, r15
call qword [case.0x1403339d6.0]
mov ebp, eax
test eax, eax
js 0x140240e27
cmp dword [rsp + 0x9c], 0
mov rdi, qword [rsp + 0x90]
mov r12d, 3
je 0x140240e47
test rdi, rdi
je 0x140240e47
movaps xmmword [rsp + 0x70], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x80], rax
mov word [rsp + 0x70], 0
lea rcx, [rsp + 0x70]
call fcn.140224f60
mov rcx, qword [rdi]
mov r10, qword [rcx + 0x20]
movups xmmword [rsp + 0x20], xmm7
mov rcx, rdi
lea rdx, str.DeviceId
xor r8d, r8d
mov r9, rax
mov rax, r10
call qword [case.0x1403339d6.0]
mov ebp, eax
test eax, eax
js 0x140240e2c
cmp word [rsp + 0x70], 8
mov r12d, 2
jne 0x140240e35
mov rdx, qword [rsp + 0x78]
test rdx, rdx
je 0x140240e35
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x60], rax
movaps xmmword [rsp + 0x50], xmm6
lea rdi, [rsp + 0x50]
mov rcx, rdi
call fcn.14036ecf0
cmp byte [rsp + 0x67], 0
jns 0x140240d13
mov rdi, qword [rsp + 0x50]
mov r8d, 0x19
mov rcx, rdi
lea rdx, str..PHYSICALDRIVE0
call fcn.14034faa8
test eax, eax
je 0x140240e8d
movzx r10d, byte [rsp + 0x67]
lea rax, [rsp + 0x50]
test r10b, r10b
jns 0x140240d4a
mov rax, qword [rsp + 0x50]
mov r10, qword [rsp + 0x58]
mov r12d, 2
cmp r10, 0xd
jl 0x140240eba
lea rcx, [rax + r10*2]
lea rdx, [rax + r10*2]
add rdx, 0xfffffffffffffffe
add r10, r10
mov r8, rax
shr r10, 1
add r10, 0xfffffffffffffff4
xor r9d, r9d
cmp word [r8 + r9], 0x50
je 0x140240d8c
add r9, 2
dec r10
jne 0x140240d76
jmp 0x140240eba
mov r10, r8
add r10, r9
je 0x140240eba
cmp word [r8 + r9 + 2], 0x48
jne 0x140240e08
cmp word [r8 + r9 + 4], 0x59
jne 0x140240e08
cmp word [r8 + r9 + 6], 0x53
jne 0x140240e08
cmp word [r8 + r9 + 8], 0x49
jne 0x140240e08
cmp word [r8 + r9 + 0xa], 0x43
jne 0x140240e08
cmp word [r8 + r9 + 0xc], 0x41
jne 0x140240e08
cmp word [r8 + r9 + 0xe], 0x4c
jne 0x140240e08
cmp word [r8 + r9 + 0x10], 0x44
jne 0x140240e08
cmp word [r8 + r9 + 0x12], 0x52
jne 0x140240e08
cmp word [r8 + r9 + 0x14], 0x49
jne 0x140240e08
cmp word [r8 + r9 + 0x16], 0x56
jne 0x140240e08
cmp word [r8 + r9 + 0x18], 0x45
je 0x140240ed4
mov r10, rdx
sub r10, r8
add r8, r9
add r8, 2
sub r10, r9
cmp r10, 0x1a
jge 0x140240d6c
jmp 0x140240eba
mov r13d, ebp
jmp 0x140240e3f
mov r12d, 1
mov r13d, ebp
lea rcx, [rsp + 0x70]
call sub.OLEAUT32.dll_VariantCopy
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x140240e68
mov qword [rsp + 0x90], 0
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
mov rcx, rdi
call qword [case.0x1403339d6.0]
test r12d, r12d
je 0x140240e77
cmp r12d, 2
jne 0x140240f31
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
jne 0x140240c0e
jmp 0x140240f3b
mov rdx, qword [rsp + 0x90]
mov rcx, qword [rsp + 0xd8]
mov r8, rsi
call fcn.140240700
mov ebp, eax
xor eax, eax
test ebp, ebp
setns al
mov ecx, 0
cmovns ebp, ecx
lea r12d, [rax + rax*2]
cmp byte [rsp + 0x67], 0
jns 0x140240e35
mov rcx, qword [rsp + 0x50]
call fcn.1403336f4
jmp 0x140240e35
cmp r10, rcx
je 0x140240eba
sub rax, r8
add rax, 0xfffffffffffffffe
cmp rax, r9
je 0x140240eba
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x140240f02
mov rax, qword [rdi]
mov rax, qword [rax + 8]
mov rcx, rdi
call qword [case.0x1403339d6.0]
cmp qword [rsp + 0x48], 0
je 0x140240f1c
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1403339d6.0]
mov qword [rsp + 0x48], rdi
jmp 0x140240eba
mov ebx, eax
jmp 0x1402410de
mov ebx, eax
jmp 0x1402410b8
cmp r12d, 3
jne 0x140241075
cmp dword [rsp + 0x9c], 0
mov rdi, qword [rsp + 0x48]
jne 0x140240f68
test rdi, rdi
je 0x140241092
mov rcx, qword [rsp + 0xd8]
mov rdx, rdi
mov r8, rsi
call fcn.140240700
mov ebp, eax
mov r13d, ebp
test ebp, ebp
js 0x14024107a
movzx ebx, byte [rsi + 0x17]
mov r14, rsi
test bl, bl
jns 0x140240f85
mov r14, qword [rsi]
mov rbx, qword [rsi + 8]
lea rdi, [r14 + rbx*2]
test rbx, rbx
je 0x140240fb1
lea r15, [rbx + rbx]
xor r12d, r12d
movzx ecx, word [r14 + r12]
call fcn.1403541c0
test eax, eax
jne 0x140240fb6
add r12, 2
cmp r15, r12
jne 0x140240f95
mov rbx, rdi
jmp 0x140240ff5
mov rbx, r14
jmp 0x140240fec
lea rax, [rbx*2 - 2]
lea rbx, [r14 + r12]
cmp rax, r12
je 0x140240fec
add r12, 2
movzx ebp, word [r14 + r12]
movzx ecx, bp
call fcn.1403541c0
test eax, eax
jne 0x140240fe3
mov word [rbx], bp
add rbx, 2
add r12, 2
cmp r15, r12
jne 0x140240fcb
cmp rdi, rbx
jb 0x14024113a
movzx eax, byte [rsi + 0x17]
mov r14, rsi
mov r15, rax
test al, al
jns 0x14024100a
mov r14, qword [rsi]
mov r15, qword [rsi + 8]
mov rdx, rbx
sub rdx, r14
sar rdx, 1
mov r8, r15
sub r8, rdx
jb 0x140241192
sub rdi, rbx
xor r13d, r13d
sar rdi, 1
je 0x140241075
cmp rdi, 0xffffffffffffffff
je 0x14024119a
cmp r8, rdi
cmovb rdi, r8
jbe 0x140241053
sub r8, rdi
lea rcx, [r14 + rdx*2]
lea rdx, [rcx + rdi*2]
add r8, r8
call fcn.140336540
mov al, byte [rsi + 0x17]
sub r15, rdi
test al, al
js 0x14024106a
cmp r15, 0xb
jae 0x140241166
mov byte [rsi + 0x17], r15b
jmp 0x14024106e
mov qword [rsi + 8], r15
mov word [r14 + r15*2], 0
mov rdi, qword [rsp + 0x48]
test rdi, rdi
je 0x14024108f
mov rax, qword [rdi]
mov rax, qword [rax + 0x10]
mov rcx, rdi
call qword [case.0x1403339d6.0]
mov ebx, r13d
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x1402410b8
mov qword [rsp + 0xc0], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1403339d6.0]
mov rcx, qword [rsp + 0xd8]
test rcx, rcx
je 0x1402410de
mov qword [rsp + 0xd8], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1403339d6.0]
mov rcx, qword [rsp + 0xe0]
test rcx, rcx
je 0x140241104
mov qword [rsp + 0xe0], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1403339d6.0]
mov rcx, qword [rsp + 0xe8]
xor rcx, rsp
call fcn.140334bf0
mov eax, ebx
movaps xmm6, xmmword [rsp + 0xf0]
movaps xmm7, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, str.string::erase_first__last__called_with_invalid_range
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str........._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__first_____last
mov r8d, 0xbfc
call fcn.14036f7d0
lea rax, str.__s_should_never_be_greater_than_or_equal_to_the_short_string_capacity
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str........._buildtools_third_partylibc_trunkinclude_string
lea r9, str.__s_____min_cap
mov r8d, 0x6c7
call fcn.14036f7d0
mov rcx, rsi
call fcn.14036f3f0
mov rcx, rsi
call fcn.140371690
jmp 0x140241075