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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5a3c88
mov eax, dword fs:[0]
push eax
sub esp, 0xc8
mov eax, dword [0x6121d4]
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 0x521c82
cmp eax, 1
je 0x521c82
push 0
push 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
cmp eax, 1
je 0x521c82
test eax, eax
jne 0x522422
inc dword [0x61ce18]
lea eax, [ebp - 0x30]
push eax
push 0x5cc528
push 1
push 0
push 0x5cc518
mov dword [ebp - 0x30], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x52240d
cmp dword [ebp - 0x30], 0
je 0x52240d
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x38], 0
jb 0x521cc8
mov esi, dword [esi]
push esi
lea ecx, [ebp - 0x5c]
call fcn.004c3b90
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0x5c]
test eax, eax
je 0x521ce3
mov ecx, dword [eax]
jmp 0x521ce5
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 [0x5aa43c]
call esi
mov ebx, eax
test ebx, ebx
js 0x5223c8
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x5223c8
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 0x52238e
cmp dword [edi + 0x14], 8
mov dword [ebp - 0x34], 0
jb 0x521d4d
mov edi, dword [edi]
push edi
lea ecx, [ebp - 0x50]
call fcn.004c3b90
mov esi, eax
push 0x5f0214
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 1
call fcn.004e8980
mov byte [ebp - 4], 2
mov edx, dword [esi]
test edx, edx
je 0x521d77
mov edx, dword [edx]
jmp 0x521d79
xor edx, edx
mov eax, dword [eax]
test eax, eax
je 0x521d83
mov ecx, dword [eax]
jmp 0x521d85
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 [0x5aa43c]
call esi
lea ecx, [ebp - 0x4c]
mov esi, eax
call fcn.004c3c40
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0
call fcn.004c3c40
test esi, esi
js 0x52238e
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x52238e
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 0x521e15
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5aa43c]
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 [0x5aa43c]
call esi
cmp dword [ebp - 0x4c], 0
je 0x522306
test eax, eax
js 0x522306
mov eax, dword [ebp + 8]
mov esi, dword [eax]
cmp esi, dword [eax + 4]
je 0x5222e2
push esi
lea ecx, [ebp - 0x28]
call fcn.004b2260
lea eax, [ebp - 0x78]
mov byte [ebp - 4], 4
push eax
call dword [sym.imp.OLEAUT32.dll_VariantClear]
cmp dword [esi + 0x14], 8
jb 0x521e72
mov eax, dword [esi]
jmp 0x521e74
mov eax, esi
push eax
lea ecx, [ebp - 0x50]
call fcn.004c3b90
mov byte [ebp - 4], 5
mov eax, dword [eax]
test eax, eax
je 0x521e8b
mov ecx, dword [eax]
jmp 0x521e8d
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 [0x5aa43c]
call edi
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 4
mov edi, eax
call fcn.004c3c40
test edi, edi
js 0x5222ba
mov cx, word [ebp - 0x78]
movzx eax, cx
add eax, 0xfffffffe
cmp eax, 0xe
ja case.0x521edb.4
movzx eax, byte [eax + 0x522454]
jmp dword [eax*4 + 0x522444]
mov ecx, dword [ebp - 0x70]
test ecx, ecx
jne 0x521eed
mov dl, 1
jmp 0x521f47
cmp ecx, 0xffffffff
jne 0x521ef6
mov dl, 1
jmp 0x521f47
cmp ecx, 0xbaadf00d
jne 0x521f02
mov dl, 1
jmp 0x521f47
cmp ecx, 0xdddddddd
jne 0x521f0e
mov dl, 1
jmp 0x521f47
cmp ecx, 0xfeeefeee
jne 0x521f1a
mov dl, 1
jmp 0x521f47
cmp ecx, 0xabababab
jne 0x521f26
mov dl, 1
jmp 0x521f47
cmp ecx, 0xcdcdcdcd
jne 0x521f32
mov dl, 1
jmp 0x521f47
cmp ecx, 0xcccccccc
jne 0x521f3e
mov dl, 1
jmp 0x521f47
cmp ecx, 0xfdfdfdfd
sete dl
test dl, dl
mov eax, 0x5e91b4
cmove eax, ecx
lea ecx, [ebp - 0xd4]
push eax
call fcn.004acb20
mov dword [ebp - 0x2c], eax
mov byte [ebp - 4], 6
cmp dword [ebp - 0x40], 2
je 0x521f88
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 [0x5aa43c]
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.004b24e0
mov eax, dword [ebp - 0x7c]
cmp eax, dword [edi + 4]
jne 0x521fc4
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.004b7ea0
mov eax, dword [ebp - 0x94]
jmp 0x521fd1
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 [0x5aa43c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xd4]
mov dword [ebp - 0xd4], vtable.WaJson.0
jmp 0x5222b5
mov eax, dword [ebp - 0x70]
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004acbe0
mov byte [ebp - 4], 8
cmp dword [ebp - 0x40], 2
je 0x52203e
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 [0x5aa43c]
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.004b24e0
mov eax, dword [ebp - 0x80]
cmp eax, dword [edi + 4]
jne 0x52207a
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.004b7ea0
mov eax, dword [ebp - 0x9c]
jmp 0x522087
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 [0x5aa43c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 9
lea ecx, [ebp - 0xb0]
mov dword [ebp - 0xb0], vtable.WaJson.0
jmp 0x5222b5
movsx eax, word [ebp - 0x70]
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004acbe0
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x40], 2
je 0x5220f9
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 [0x5aa43c]
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.004b24e0
mov eax, dword [ebp - 0x84]
cmp eax, dword [edi + 4]
jne 0x52213b
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.004b7ea0
mov eax, dword [ebp - 0xa4]
jmp 0x522148
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 [0x5aa43c]
mov ecx, ebx
call edi
mov byte [ebp - 4], 0xb
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0xbc], vtable.WaJson.0
jmp 0x5222b5
test cl, 0x1b
je 0x5222ba
mov ecx, dword [ebp - 0x70]
test ecx, ecx
je 0x5222ba
cmp ecx, 0xffffffff
je 0x5222ba
cmp ecx, 0xbaadf00d
je 0x5222ba
cmp ecx, 0xdddddddd
je 0x5222ba
cmp ecx, 0xfeeefeee
je 0x5222ba
cmp ecx, 0xabababab
je 0x5222ba
cmp ecx, 0xcdcdcdcd
je 0x5222ba
cmp ecx, 0xcccccccc
je 0x5222ba
cmp ecx, 0xfdfdfdfd
je 0x5222ba
call fcn.00521bb0
cmp eax, 1
jne 0x5222ba
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 0x522297
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 0x52228e
mov eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
push eax
call fcn.004acbe0
lea eax, [ebp - 0xc8]
mov byte [ebp - 4], 0xd
push eax
lea ecx, [ebp - 0x68]
call fcn.004adc50
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0xc8]
mov dword [ebp - 0xc8], vtable.WaJson.0
call fcn.004adb30
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x70]
inc edi
cmp edi, dword [ecx + 0x10]
jb 0x522222
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x28]
push eax
lea ecx, [ebp - 0x44]
call fcn.004adec0
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x68]
mov dword [ebp - 0x68], vtable.WaJson.0
call fcn.004adb30
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.OLEAUT32.dll_VariantCopy]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 3
call fcn.004ab5f0
mov eax, dword [ebp + 8]
add esi, 0x18
cmp esi, dword [eax + 4]
jne 0x521e51
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 [0x5aa43c]
mov ecx, ebx
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x522309
mov edx, dword [ebp - 0x48]
jmp 0x521df0
mov ecx, dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
test edx, edx
je 0x522323
mov eax, dword [edx]
push edx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x522337
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov ecx, dword [ebp - 0x38]
test ecx, ecx
je 0x52234e
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov ecx, dword [ebp - 0x30]
test ecx, ecx
je 0x522365
mov eax, dword [ecx]
push ecx
mov esi, dword [eax + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
call fcn.005214e0
xor esi, esi
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x44]
mov dword [ebp - 0x44], vtable.WaJson.0
call fcn.004adb30
lea ecx, [ebp - 0x5c]
call fcn.004c3c40
mov eax, esi
jmp 0x522425
mov eax, dword [ebp - 0x38]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
call fcn.005214e0
lea ecx, [ebp - 0x5c]
or esi, 0xffffffff
call fcn.004c3c40
mov eax, esi
jmp 0x522425
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [eax]
mov esi, dword [ecx + 8]
mov ecx, esi
call dword [0x5aa43c]
call esi
cmp dword [0x61ce18], 0
jle 0x5223f0
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x61ce18]
or esi, 0xffffffff
lea ecx, [ebp - 0x5c]
cmp ebx, 0x80070005
mov eax, 0xffffffea
cmove esi, eax
call fcn.004c3c40
mov eax, esi
jmp 0x522425
cmp dword [0x61ce18], 0
jle 0x522422
call dword [sym.imp.ole32.dll_CoUninitialize]
dec dword [0x61ce18]
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.00540c56
mov esp, ebp
pop ebp
ret