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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59e328
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x6071d4]
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 0x51c542
cmp eax, 1
je 0x51c542
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 1
je 0x51c542
test eax, eax
jne 0x51cce2
inc dword [0x611858]
lea eax, [ebp - 0x30]
push eax
push 0x5c2b98
push 1
push 0
push 0x5c2b88
mov dword [ebp - 0x30], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x51cccd
cmp dword [ebp - 0x30], 0
je 0x51cccd
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x38], 0
jb 0x51c588
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x5c]
call fcn.004bf850
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x51c5a3
mov ecx, dword [eax]
jmp 0x51c5a5
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 [0x5a143c]
call esi
mov ebx, eax
test ebx, ebx
js 0x51cc88
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x51cc88
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 0x51cc4e
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x34], 0
jb 0x51c60d
mov edi, dword [edi]
push edi
lea ecx, [ebp - 0x50]
call fcn.004bf850
mov esi, eax
push 0x5e5e70
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.004deb40
mov byte [ebp - 4], 2
mov edx, dword [esi]
test edx, edx
je 0x51c637
mov edx, dword [edx]
jmp 0x51c639
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x51c643
mov ecx, dword [eax]
jmp 0x51c645
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 [0x5a143c]
call esi
lea ecx, [ebp - 0x4c]
mov esi, eax
call fcn.004bf900
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.004bf900
test esi, esi
js 0x51cc4e
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51cc4e
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 0x51c6d5
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a143c]
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 [0x5a143c]
call esi
cmp dword [ebp - 0x4c], 0
je 0x51cbc6
test eax, eax
js 0x51cbc6
mov eax, dword [ebp + 8]
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x51cba2
push esi
lea ecx, [ebp - 0x28]
call fcn.004af080
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 4
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
cmp dword [esi + 0x14], 8
jb 0x51c732
mov eax, dword [esi]
jmp 0x51c734
mov eax, esi
push eax
lea ecx, [ebp - 0x50]
call fcn.004bf850
mov byte [ebp - 4], 5
mov eax, dword [eax]
test eax, eax
je 0x51c74b
mov ecx, dword [eax]
jmp 0x51c74d
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 [0x5a143c]
call edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
mov edi, eax
call fcn.004bf900
test edi, edi
js 0x51cb7a
mov cx, word [ebp - 0x78]
movzx eax, cx
add eax, 0xfffffffe
cmp eax, 0xe
ja case.0x51c79b.4
movzx eax, byte [eax + 0x51cd14]
jmp dword [eax*4 + 0x51cd04]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x51c7ad
mov dl, 1
jmp 0x51c807
cmp ecx, 0xffffffff
jne 0x51c7b6
mov dl, 1
jmp 0x51c807
cmp ecx, 0xbaadf00d
jne 0x51c7c2
mov dl, 1
jmp 0x51c807
cmp ecx, 0xdddddddd
jne 0x51c7ce
mov dl, 1
jmp 0x51c807
cmp ecx, 0xfeeefeee
jne 0x51c7da
mov dl, 1
jmp 0x51c807
cmp ecx, 0xabababab
jne 0x51c7e6
mov dl, 1
jmp 0x51c807
cmp ecx, 0xcdcdcdcd
jne 0x51c7f2
mov dl, 1
jmp 0x51c807
cmp ecx, 0xcccccccc
jne 0x51c7fe
mov dl, 1
jmp 0x51c807
cmp ecx, 0xfdfdfdfd
sete dl
test dl, dl
mov eax, 0x5df834
cmove eax, ecx
lea ecx, [ebp - 0xd4]
push eax
call fcn.004aa220
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x40], 2
je 0x51c848
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 [0x5a143c]
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.004af230
mov eax, dword [ebp - 0x7c]
cmp eax, dword [edi + 4]
jne 0x51c884
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.004b2460
mov eax, dword [ebp - 0x94]
jmp 0x51c891
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 [0x5a143c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd4], vtable.WaJson.0
jmp 0x51cb75
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004aa2e0
mov byte [ebp - 4], 8
cmp dword [ebp - 0x40], 2
je 0x51c8fe
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 [0x5a143c]
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.004af230
mov eax, dword [ebp - 0x80]
cmp eax, dword [edi + 4]
jne 0x51c93a
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.004b2460
mov eax, dword [ebp - 0x9c]
jmp 0x51c947
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 [0x5a143c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xb0], vtable.WaJson.0
jmp 0x51cb75
movsx eax, word [ebp - 0x70]
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004aa2e0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x40], 2
je 0x51c9b9
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 [0x5a143c]
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.004af230
mov eax, dword [ebp - 0x84]
cmp eax, dword [edi + 4]
jne 0x51c9fb
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.004b2460
mov eax, dword [ebp - 0xa4]
jmp 0x51ca08
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 [0x5a143c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xbc], vtable.WaJson.0
jmp 0x51cb75
test cl, 0x1b
je 0x51cb7a
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x51cb7a
cmp ecx, 0xffffffff
je 0x51cb7a
cmp ecx, 0xbaadf00d
je 0x51cb7a
cmp ecx, 0xdddddddd
je 0x51cb7a
cmp ecx, 0xfeeefeee
je 0x51cb7a
cmp ecx, 0xabababab
je 0x51cb7a
cmp ecx, 0xcdcdcdcd
je 0x51cb7a
cmp ecx, 0xcccccccc
je 0x51cb7a
cmp ecx, 0xfdfdfdfd
je 0x51cb7a
call fcn.0051c470
cmp eax, 1
jne 0x51cb7a
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 0x51cb57
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 0x51cb4e
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004aa2e0
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x68]
call fcn.004ab350
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc8], vtable.WaJson.0
call fcn.004ab230
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x70]
inc edi
cmp edi, dword [ecx + 0x10]
jb 0x51cae2
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x44]
call fcn.004ab5c0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], vtable.WaJson.0
call fcn.004ab230
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.004a9470
mov eax, dword [ebp + 8]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x51c711
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 [0x5a143c]
mov ecx, ebx
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51cbc9
mov edx, dword [ebp - 0x48]
jmp 0x51c6b0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x51cbe3
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51cbf7
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x51cc0e
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x51cc25
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
call fcn.0051bd90
xor esi, esi
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], vtable.WaJson.0
call fcn.004ab230
lea ecx, [ebp - 0x5c]
call fcn.004bf900
mov eax, esi
jmp 0x51cce5
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
call fcn.0051bd90
lea ecx, [ebp - 0x5c]
or esi, 0xffffffff
call fcn.004bf900
mov eax, esi
jmp 0x51cce5
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
cmp dword [0x611858], 0
jle 0x51ccb0
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x611858]
or esi, 0xffffffff
lea ecx, [ebp - 0x5c]
cmp ebx, 0x80070005
mov eax, 0xffffffea
cmove esi, eax
call fcn.004bf900
mov eax, esi
jmp 0x51cce5
cmp dword [0x611858], 0
jle 0x51cce2
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x611858]
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.0053b526
mov esp, ebp
pop ebp
ret