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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59df78
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 0x51c232
cmp eax, 1
je 0x51c232
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 1
je 0x51c232
test eax, eax
jne 0x51c9d2
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 0x51c9bd
cmp dword [ebp - 0x30], 0
je 0x51c9bd
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x38], 0
jb 0x51c278
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x5c]
call fcn.004bf790
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x51c293
mov ecx, dword [eax]
jmp 0x51c295
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 0x51c978
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x51c978
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 0x51c93e
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x34], 0
jb 0x51c2fd
mov edi, dword [edi]
push edi
lea ecx, [ebp - 0x50]
call fcn.004bf790
mov esi, eax
push 0x5e5e70
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.004dea80
mov byte [ebp - 4], 2
mov edx, dword [esi]
test edx, edx
je 0x51c327
mov edx, dword [edx]
jmp 0x51c329
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x51c333
mov ecx, dword [eax]
jmp 0x51c335
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.004bf840
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.004bf840
test esi, esi
js 0x51c93e
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51c93e
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 0x51c3c5
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 0x51c8b6
test eax, eax
js 0x51c8b6
mov eax, dword [ebp + 8]
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x51c892
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 0x51c422
mov eax, dword [esi]
jmp 0x51c424
mov eax, esi
push eax
lea ecx, [ebp - 0x50]
call fcn.004bf790
mov byte [ebp - 4], 5
mov eax, dword [eax]
test eax, eax
je 0x51c43b
mov ecx, dword [eax]
jmp 0x51c43d
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.004bf840
test edi, edi
js 0x51c86a
mov cx, word [ebp - 0x78]
movzx eax, cx
add eax, 0xfffffffe
cmp eax, 0xe
ja case.0x51c48b.4
movzx eax, byte [eax + 0x51ca04]
jmp dword [eax*4 + 0x51c9f4]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x51c49d
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xffffffff
jne 0x51c4a6
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xbaadf00d
jne 0x51c4b2
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xdddddddd
jne 0x51c4be
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xfeeefeee
jne 0x51c4ca
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xabababab
jne 0x51c4d6
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xcdcdcdcd
jne 0x51c4e2
mov dl, 1
jmp 0x51c4f7
cmp ecx, 0xcccccccc
jne 0x51c4ee
mov dl, 1
jmp 0x51c4f7
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 0x51c538
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 0x51c574
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 0x51c581
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 0x51c865
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 0x51c5ee
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 0x51c62a
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 0x51c637
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 0x51c865
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 0x51c6a9
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 0x51c6eb
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 0x51c6f8
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 0x51c865
test cl, 0x1b
je 0x51c86a
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x51c86a
cmp ecx, 0xffffffff
je 0x51c86a
cmp ecx, 0xbaadf00d
je 0x51c86a
cmp ecx, 0xdddddddd
je 0x51c86a
cmp ecx, 0xfeeefeee
je 0x51c86a
cmp ecx, 0xabababab
je 0x51c86a
cmp ecx, 0xcdcdcdcd
je 0x51c86a
cmp ecx, 0xcccccccc
je 0x51c86a
cmp ecx, 0xfdfdfdfd
je 0x51c86a
call fcn.0051c160
cmp eax, 1
jne 0x51c86a
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 0x51c847
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 0x51c83e
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 0x51c7d2
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 0x51c401
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 0x51c8b9
mov edx, dword [ebp - 0x48]
jmp 0x51c3a0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x51c8d3
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 0x51c8e7
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 0x51c8fe
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 0x51c915
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a143c]
call esi
call fcn.0051ba90
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.004bf840
mov eax, esi
jmp 0x51c9d5
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.0051ba90
lea ecx, [ebp - 0x5c]
or esi, 0xffffffff
call fcn.004bf840
mov eax, esi
jmp 0x51c9d5
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 0x51c9a0
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.004bf840
mov eax, esi
jmp 0x51c9d5
cmp dword [0x611858], 0
jle 0x51c9d2
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.0053b206
mov esp, ebp
pop ebp
ret