Function at 0x514fa0
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x596778
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x5ff1d4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov esi, ecx
mov eax, dword [ebp + 0xc]
push 2
push 0
mov dword [ebp - 0x58], eax
call dword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
je 0x515002
cmp eax, 1
je 0x515002
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 1
je 0x515002
test eax, eax
jne 0x5157a2
inc dword [0x6093e0]
lea eax, [ebp - 0x30]
push eax
push 0x5bbb08
push 1
push 0
push 0x5bbaf8
mov dword [ebp - 0x30], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x51578d
cmp dword [ebp - 0x30], 0
je 0x51578d
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x38], 0
jb 0x515048
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x5c]
call fcn.004baa50
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x515063
mov ecx, dword [eax]
jmp 0x515065
xor ecx, ecx
mov eax, dword [ebp - 0x30]
lea edx, [ebp - 0x38]
push edx
push 0
push 0
mov esi, dword [eax]
push 0x80
push 0
push 0
mov esi, dword [esi + 0xc]
push 0
push ecx
push eax
mov ecx, esi
call dword [0x59a43c]
call esi
mov ebx, eax
test ebx, ebx
js 0x515748
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x515748
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push ecx
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
js 0x51570e
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x34], 0
jb 0x5150cd
mov edi, dword [edi]
push edi
lea ecx, [ebp - 0x50]
call fcn.004baa50
mov esi, eax
push 0x5de9d4
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.004d9d60
mov byte [ebp - 4], 2
mov edx, dword [esi]
test edx, edx
je 0x5150f7
mov edx, dword [edx]
jmp 0x5150f9
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x515103
mov ecx, dword [eax]
jmp 0x515105
xor ecx, ecx
mov eax, dword [ebp - 0x38]
lea edi, [ebp - 0x34]
push edi
push 0
push 0x30
mov esi, dword [eax]
push edx
push ecx
push eax
mov esi, dword [esi + 0x50]
mov ecx, esi
call dword [0x59a43c]
call esi
lea ecx, [ebp - 0x4c]
mov esi, eax
call fcn.004bab00
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.004bab00
test esi, esi
js 0x51570e
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51570e
xor edx, edx
mov dword [ebp - 0x44], vtable.WaJson.0
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x48], edx
mov byte [ebp - 0x3c], dl
mov dword [ebp - 0x40], 5
mov ebx, dword [ebp - 0x58]
mov byte [ebp - 4], 3
nop dword [eax + eax]
mov dword [ebp - 0x4c], 0
test edx, edx
je 0x515195
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x48], 0
mov esi, dword [ecx]
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x48]
push eax
mov esi, dword [esi + 0x10]
push 1
push 0xffffffffffffffff
push ecx
mov ecx, esi
call dword [0x59a43c]
call esi
cmp dword [ebp - 0x4c], 0
je 0x515686
test eax, eax
js 0x515686
mov eax, dword [ebp + 8]
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x515662
push esi
lea ecx, [ebp - 0x28]
call fcn.004aa340
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 4
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
cmp dword [esi + 0x14], 8
jb 0x5151f2
mov eax, dword [esi]
jmp 0x5151f4
mov eax, esi
push eax
lea ecx, [ebp - 0x50]
call fcn.004baa50
mov byte [ebp - 4], 5
mov eax, dword [eax]
test eax, eax
je 0x51520b
mov ecx, dword [eax]
jmp 0x51520d
xor ecx, ecx
mov eax, dword [ebp - 0x48]
lea edx, [ebp - 0x78]
push 0
push 0
push edx
mov edi, dword [eax]
push 0
push ecx
push eax
mov edi, dword [edi + 0x10]
mov ecx, edi
call dword [0x59a43c]
call edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
mov edi, eax
call fcn.004bab00
test edi, edi
js 0x51563a
mov cx, word [ebp - 0x78]
movzx eax, cx
add eax, 0xfffffffe
cmp eax, 0xe
ja case.0x51525b.4
movzx eax, byte [eax + 0x5157d4]
jmp dword [eax*4 + 0x5157c4]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x51526d
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xffffffff
jne 0x515276
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xbaadf00d
jne 0x515282
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xdddddddd
jne 0x51528e
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xfeeefeee
jne 0x51529a
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xabababab
jne 0x5152a6
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xcdcdcdcd
jne 0x5152b2
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xcccccccc
jne 0x5152be
mov dl, 1
jmp 0x5152c7
cmp ecx, 0xfdfdfdfd
sete dl
test dl, dl
mov eax, 0x5d843c
cmove eax, ecx
lea ecx, [ebp - 0xd4]
push eax
call fcn.004a5630
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x40], 2
je 0x515308
mov ecx, dword [ebp - 0x44]
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x54], 2
mov edi, dword [ecx + 0x48]
mov ecx, edi
call dword [0x59a43c]
lea ecx, [ebp - 0x44]
call edi
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x7c]
mov ecx, edi
push eax
call fcn.004aa4f0
mov eax, dword [ebp - 0x7c]
cmp eax, dword [edi + 4]
jne 0x515344
lea eax, [ebp - 0x28]
push ecx
mov dword [ebp - 0x54], eax
lea eax, [ebp - 0x54]
push eax
push ecx
lea eax, [ebp - 0x94]
mov ecx, edi
push eax
call fcn.004ad720
mov eax, dword [ebp - 0x94]
jmp 0x515351
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0
push dword [ebp - 0x2c]
lea ebx, [eax + 0x20]
mov eax, dword [ebx]
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [0x59a43c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd4], vtable.WaJson.0
jmp 0x515635
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004a56f0
mov byte [ebp - 4], 8
cmp dword [ebp - 0x40], 2
je 0x5153be
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 2
push eax
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x48]
mov ecx, edi
call dword [0x59a43c]
lea ecx, [ebp - 0x44]
call edi
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x80]
mov ecx, edi
push eax
call fcn.004aa4f0
mov eax, dword [ebp - 0x80]
cmp eax, dword [edi + 4]
jne 0x5153fa
lea eax, [ebp - 0x28]
push ecx
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
push ecx
lea eax, [ebp - 0x9c]
mov ecx, edi
push eax
call fcn.004ad720
mov eax, dword [ebp - 0x9c]
jmp 0x515407
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0
lea ebx, [eax + 0x20]
mov eax, dword [ebx]
lea ecx, [ebp - 0xb0]
push ecx
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [0x59a43c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xb0], vtable.WaJson.0
jmp 0x515635
movsx eax, word [ebp - 0x70]
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004a56f0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x40], 2
je 0x515479
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x2c], 2
push eax
mov eax, dword [ebp - 0x44]
mov edi, dword [eax + 0x48]
mov ecx, edi
call dword [0x59a43c]
lea ecx, [ebp - 0x44]
call edi
mov edi, dword [ebp - 0x3c]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x84]
mov ecx, edi
push eax
call fcn.004aa4f0
mov eax, dword [ebp - 0x84]
cmp eax, dword [edi + 4]
jne 0x5154bb
lea eax, [ebp - 0x28]
push ecx
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
push ecx
lea eax, [ebp - 0xa4]
mov ecx, edi
push eax
call fcn.004ad720
mov eax, dword [ebp - 0xa4]
jmp 0x5154c8
mov dword [ebp - 0xa4], eax
mov byte [ebp - 0xa0], 0
lea ebx, [eax + 0x20]
mov eax, dword [ebx]
lea ecx, [ebp - 0xbc]
push ecx
mov edi, dword [eax + 0x1c]
mov ecx, edi
call dword [0x59a43c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xbc], vtable.WaJson.0
jmp 0x515635
test cl, 0x1b
je 0x51563a
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x51563a
cmp ecx, 0xffffffff
je 0x51563a
cmp ecx, 0xbaadf00d
je 0x51563a
cmp ecx, 0xdddddddd
je 0x51563a
cmp ecx, 0xfeeefeee
je 0x51563a
cmp ecx, 0xabababab
je 0x51563a
cmp ecx, 0xcdcdcdcd
je 0x51563a
cmp ecx, 0xcccccccc
je 0x51563a
cmp ecx, 0xfdfdfdfd
je 0x51563a
call fcn.00514f20
cmp eax, 1
jne 0x51563a
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x68], vtable.WaJson.0
mov byte [ebp - 0x60], 0
mov dword [ebp - 0x64], 5
mov byte [ebp - 4], 0xc
xor edi, edi
mov ecx, dword [ebp - 0x70]
cmp dword [ecx + 0x10], edi
jbe 0x515617
mov eax, dword [ecx + 0x14]
add eax, edi
mov dword [ebp - 0x88], eax
lea eax, [ebp - 0x8c]
push eax
lea eax, [ebp - 0x88]
push eax
push ecx
call dword [sym.imp.OLEAUT32.dll_SafeArrayPutElement]
test eax, eax
js 0x51560e
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004a56f0
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x68]
call fcn.004a6770
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc8], vtable.WaJson.0
call fcn.004a6650
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x70]
inc edi
cmp edi, dword [ecx + 0x10]
jb 0x5155a2
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x44]
call fcn.004a69e0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], vtable.WaJson.0
call fcn.004a6650
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.004a4880
mov eax, dword [ebp + 8]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x5151d1
mov ebx, dword [ebp - 0x58]
mov eax, dword [ebx]
lea ecx, [ebp - 0x44]
push ecx
mov esi, dword [eax + 0x6c]
mov ecx, esi
call dword [0x59a43c]
mov ecx, ebx
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x515689
mov edx, dword [ebp - 0x48]
jmp 0x515170
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x5156a3
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x5156b7
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x5156ce
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x5156e5
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
call fcn.00514850
xor esi, esi
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], vtable.WaJson.0
call fcn.004a6650
lea ecx, [ebp - 0x5c]
call fcn.004bab00
mov eax, esi
jmp 0x5157a5
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
call fcn.00514850
lea ecx, [ebp - 0x5c]
or esi, 0xffffffff
call fcn.004bab00
mov eax, esi
jmp 0x5157a5
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x59a43c]
call esi
cmp dword [0x6093e0], 0
jle 0x515770
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x6093e0]
or esi, 0xffffffff
lea ecx, [ebp - 0x5c]
cmp ebx, 0x80070005
mov eax, 0xffffffea
cmove esi, eax
call fcn.004bab00
mov eax, esi
jmp 0x5157a5
cmp dword [0x6093e0], 0
jle 0x5157a2
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x6093e0]
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00533fc6
mov esp, ebp
pop ebp
ret