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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59fa08
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x6091d4]
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 0x51dbc2
cmp eax, 1
je 0x51dbc2
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 1
je 0x51dbc2
test eax, eax
jne 0x51e362
inc dword [0x613bb0]
lea eax, [ebp - 0x30]
push eax
push 0x5c4bf8
push 1
push 0
push 0x5c4be8
mov dword [ebp - 0x30], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x51e34d
cmp dword [ebp - 0x30], 0
je 0x51e34d
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x38], 0
jb 0x51dc08
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x5c]
call fcn.004c00a0
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x51dc23
mov ecx, dword [eax]
jmp 0x51dc25
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 [0x5a343c]
call esi
mov ebx, eax
test ebx, ebx
js 0x51e308
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x51e308
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 0x51e2ce
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x34], 0
jb 0x51dc8d
mov edi, dword [edi]
push edi
lea ecx, [ebp - 0x50]
call fcn.004c00a0
mov esi, eax
push 0x5e8164
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.004e47b0
mov byte [ebp - 4], 2
mov edx, dword [esi]
test edx, edx
je 0x51dcb7
mov edx, dword [edx]
jmp 0x51dcb9
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x51dcc3
mov ecx, dword [eax]
jmp 0x51dcc5
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 [0x5a343c]
call esi
lea ecx, [ebp - 0x4c]
mov esi, eax
call fcn.004c0150
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.004c0150
test esi, esi
js 0x51e2ce
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51e2ce
xor edx, edx
mov dword [ebp - 0x44], 0x5e18c4
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 0x51dd55
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a343c]
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 [0x5a343c]
call esi
cmp dword [ebp - 0x4c], 0
je 0x51e246
test eax, eax
js 0x51e246
mov eax, dword [ebp + 8]
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x51e222
push esi
lea ecx, [ebp - 0x28]
call fcn.004af860
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 4
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
cmp dword [esi + 0x14], 8
jb 0x51ddb2
mov eax, dword [esi]
jmp 0x51ddb4
mov eax, esi
push eax
lea ecx, [ebp - 0x50]
call fcn.004c00a0
mov byte [ebp - 4], 5
mov eax, dword [eax]
test eax, eax
je 0x51ddcb
mov ecx, dword [eax]
jmp 0x51ddcd
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 [0x5a343c]
call edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
mov edi, eax
call fcn.004c0150
test edi, edi
js 0x51e1fa
mov cx, word [ebp - 0x78]
movzx eax, cx
add eax, 0xfffffffe
cmp eax, 0xe
ja case.0x51de1b.4
movzx eax, byte [eax + 0x51e394]
jmp dword [eax*4 + 0x51e384]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x51de2d
mov dl, 1
jmp 0x51de87
cmp ecx, 0xffffffff
jne 0x51de36
mov dl, 1
jmp 0x51de87
cmp ecx, 0xbaadf00d
jne 0x51de42
mov dl, 1
jmp 0x51de87
cmp ecx, 0xdddddddd
jne 0x51de4e
mov dl, 1
jmp 0x51de87
cmp ecx, 0xfeeefeee
jne 0x51de5a
mov dl, 1
jmp 0x51de87
cmp ecx, 0xabababab
jne 0x51de66
mov dl, 1
jmp 0x51de87
cmp ecx, 0xcdcdcdcd
jne 0x51de72
mov dl, 1
jmp 0x51de87
cmp ecx, 0xcccccccc
jne 0x51de7e
mov dl, 1
jmp 0x51de87
cmp ecx, 0xfdfdfdfd
sete dl
test dl, dl
mov eax, 0x5e1894
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 0x51dec8
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 [0x5a343c]
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.004afa10
mov eax, dword [ebp - 0x7c]
cmp eax, dword [edi + 4]
jne 0x51df04
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.004b2c40
mov eax, dword [ebp - 0x94]
jmp 0x51df11
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 [0x5a343c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd4], 0x5e18c4
jmp 0x51e1f5
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 0x51df7e
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 [0x5a343c]
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.004afa10
mov eax, dword [ebp - 0x80]
cmp eax, dword [edi + 4]
jne 0x51dfba
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.004b2c40
mov eax, dword [ebp - 0x9c]
jmp 0x51dfc7
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 [0x5a343c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xb0], 0x5e18c4
jmp 0x51e1f5
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 0x51e039
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 [0x5a343c]
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.004afa10
mov eax, dword [ebp - 0x84]
cmp eax, dword [edi + 4]
jne 0x51e07b
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.004b2c40
mov eax, dword [ebp - 0xa4]
jmp 0x51e088
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 [0x5a343c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xbc], 0x5e18c4
jmp 0x51e1f5
test cl, 0x1b
je 0x51e1fa
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x51e1fa
cmp ecx, 0xffffffff
je 0x51e1fa
cmp ecx, 0xbaadf00d
je 0x51e1fa
cmp ecx, 0xdddddddd
je 0x51e1fa
cmp ecx, 0xfeeefeee
je 0x51e1fa
cmp ecx, 0xabababab
je 0x51e1fa
cmp ecx, 0xcdcdcdcd
je 0x51e1fa
cmp ecx, 0xcccccccc
je 0x51e1fa
cmp ecx, 0xfdfdfdfd
je 0x51e1fa
call fcn.0051daf0
cmp eax, 1
jne 0x51e1fa
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x68], 0x5e18c4
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 0x51e1d7
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 0x51e1ce
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], 0x5e18c4
call fcn.004ab230
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x70]
inc edi
cmp edi, dword [ecx + 0x10]
jb 0x51e162
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], 0x5e18c4
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 0x51dd91
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 [0x5a343c]
mov ecx, ebx
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51e249
mov edx, dword [ebp - 0x48]
jmp 0x51dd30
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x51e263
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x51e277
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x51e28e
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x51e2a5
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
call fcn.0051d420
xor esi, esi
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], 0x5e18c4
call fcn.004ab230
lea ecx, [ebp - 0x5c]
call fcn.004c0150
mov eax, esi
jmp 0x51e365
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
call fcn.0051d420
lea ecx, [ebp - 0x5c]
or esi, 0xffffffff
call fcn.004c0150
mov eax, esi
jmp 0x51e365
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5a343c]
call esi
cmp dword [0x613bb0], 0
jle 0x51e330
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x613bb0]
or esi, 0xffffffff
lea ecx, [ebp - 0x5c]
cmp ebx, 0x80070005
mov eax, 0xffffffea
cmove esi, eax
call fcn.004c0150
mov eax, esi
jmp 0x51e365
cmp dword [0x613bb0], 0
jle 0x51e362
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x613bb0]
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.0053cb86
mov esp, ebp
pop ebp
ret