Function at 0x52a2a0
Capabilities:
Connect to wmi namespace via wbemlocator
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ac34a
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x63434c]
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 ebx, dword [ebp + 8]
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
mov dword [ebp - 0xa8], ebx
mov dword [ebp - 0xa4], ebx
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
mov dword [ebp - 0x9c], 0
lea eax, [ebp - 0x9c]
mov dword [ebp - 4], 0
push eax
push 0x5dac14
push 1
push 0
push 0x5dac04
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x52a348
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov dword [ebp - 4], 1
jmp 0x52a4e6
mov dword [ebp - 0x98], 0
mov edi, dword [ebp - 0x9c]
push 0x5d3b24
mov eax, dword [edi]
mov ebx, dword [eax + 0xc]
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov esi, eax
mov dword [ebp - 0xa4], esi
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 3
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push esi
push edi
call ebx
push esi
mov edi, eax
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
test edi, edi
jns 0x52a3d5
mov ebx, dword [ebp - 0xa8]
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 4
test eax, eax
je 0x52a3c9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 5
jmp 0x52a4e6
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [ebp - 0x98]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x52a430
mov ebx, dword [ebp - 0xa8]
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 6
test eax, eax
je 0x52a424
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 7
jmp 0x52a4e6
mov dword [ebp - 0x94], 0
mov eax, dword [ebp - 0x98]
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0xa4], eax
push str.SELECT__FROM_Win32_DiskDrive
mov eax, dword [eax]
mov ebx, dword [eax + 0x50]
call esi
mov edi, eax
mov dword [ebp - 0xb0], edi
push 0x5d3b78
call esi
mov esi, eax
mov dword [ebp - 0xac], esi
lea eax, [ebp - 0x94]
mov byte [ebp - 4], 0xa
push eax
push 0
push 0x30
push edi
push esi
push dword [ebp - 0xa4]
call ebx
push esi
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ebx, eax
call esi
push edi
call esi
test ebx, ebx
jns 0x52a4ff
mov ebx, dword [ebp - 0xa8]
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov eax, dword [ebp - 0x94]
mov byte [ebp - 4], 0xb
test eax, eax
je 0x52a4cb
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0xc
test eax, eax
je 0x52a4df
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x52aaaf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x52aaaf
mov dword [ebp - 0x78], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0xf
mov byte [ebp - 0x78], 0
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0xf
mov byte [ebp - 0x60], 0
xor edi, edi
mov dword [ebp - 0x48], 0
mov ebx, 0xf
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x34], ebx
mov byte [ebp - 0x48], 0
mov eax, dword [ebp - 0x94]
mov esi, dword [ebp - 0x48]
test eax, eax
je 0x52aa22
lea ebx, [ebx]
mov dword [ebp - 0xa0], 0
lea edx, [ebp - 0xa4]
mov dword [ebp - 0xa4], 0
mov ecx, dword [eax]
push edx
lea edx, [ebp - 0xa0]
mov byte [ebp - 4], 0x11
push edx
push 1
push 0xffffffffffffffff
push eax
call dword [ecx + 0x10]
test eax, eax
js 0x52aa08
cmp dword [ebp - 0xa4], 0
je 0x52aa08
push str.SerialNumber
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
push eax
call fcn.0052aae0
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x48]
cmp eax, edi
je 0x52a62c
cmp ebx, 0x10
jb 0x52a5f8
lea ecx, [ebx + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x52a5ee
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52aacd
push ecx
push esi
call fcn.00558004
add esp, 8
mov eax, dword [edi + 4]
mov esi, dword [edi]
mov ebx, dword [edi + 0x14]
mov dword [ebp - 0x44], eax
mov eax, dword [edi + 8]
mov dword [ebp - 0x40], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x3c], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], ebx
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 0xf
mov byte [edi], 0
lea ecx, [ebp - 0x90]
call fcn.00437be0
mov edi, dword [ebp - 0x38]
test edi, edi
jne 0x52a665
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0x13
test eax, eax
je 0x52a652
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x52a560
jmp 0x52aa22
push str.Model
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
push eax
call fcn.0052aae0
mov edx, eax
add esp, 0xc
lea eax, [ebp - 0x78]
cmp eax, edx
je 0x52a6c4
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xb0], eax
mov dword [ebp - 0x78], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x70], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x6c], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x68], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x64], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
jmp 0x52a6cd
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x90]
call fcn.00437be0
push str.FirmwareRevision
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
push eax
call fcn.0052aae0
mov edx, eax
add esp, 0xc
lea eax, [ebp - 0x60]
cmp eax, edx
je 0x52a737
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [ebp - 0xac], eax
mov dword [ebp - 0x60], eax
mov eax, dword [edx + 8]
mov dword [ebp - 0x58], eax
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x54], eax
mov eax, dword [edx + 0x10]
mov dword [ebp - 0x50], eax
mov eax, dword [edx + 0x14]
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x4c], eax
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0xf
mov byte [edx], 0
jmp 0x52a740
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0x90]
call fcn.00437be0
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x52a75f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov edx, dword [ebp - 0x68]
mov eax, 0x20202020
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov word [ebp - 0x14], ax
mov eax, 4
mov byte [ebp - 4], 0x10
test edx, edx
je 0x52a808
cmp edx, eax
mov ecx, eax
cmovl ecx, edx
cmp dword [ebp - 0x64], 0x10
lea edx, [ebp - 0x78]
cmovae edx, dword [ebp - 0xb0]
test ecx, ecx
je 0x52a808
test edx, edx
je 0x52a7bf
cmp ecx, 0x1e
ja 0x52a7bf
push ecx
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.0055bfb0
add esp, 0xc
jmp 0x52a803
xor ebx, ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x14], bx
mov ebx, dword [ebp - 0x34]
test edx, edx
jne 0x52a7ee
call fcn.00566ade
mov dword [eax], 0x16
jmp 0x52a7fe
cmp ecx, 0x1e
jbe 0x52a808
call fcn.00566ade
mov dword [eax], 0x22
call fcn.00566a04
mov eax, 4
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x52a87e
cmp ecx, 4
cmovl eax, ecx
cmp dword [ebp - 0x4c], 0x10
lea ecx, [ebp - 0x60]
cmovae ecx, dword [ebp - 0xac]
test eax, eax
je 0x52a87e
test ecx, ecx
je 0x52a840
cmp eax, 0x1a
ja 0x52a840
push eax
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.0055bfb0
add esp, 0xc
jmp 0x52a87e
xor edx, edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov word [ebp - 0x14], dx
test ecx, ecx
jne 0x52a869
call fcn.00566ade
mov dword [eax], 0x16
jmp 0x52a879
cmp eax, 0x1a
jbe 0x52a87e
call fcn.00566ade
mov dword [eax], 0x22
call fcn.00566a04
mov eax, 0x14
lea ecx, [ebp - 0x48]
cmp edi, eax
cmovl eax, edi
cmp ebx, 0x10
cmovae ecx, esi
test eax, eax
je 0x52a8e9
test ecx, ecx
je 0x52a8ae
cmp eax, 0x16
ja 0x52a8ae
push eax
push ecx
lea eax, [ebp - 0x28]
push eax
call fcn.0055bfb0
add esp, 0xc
jmp 0x52a8e9
xor edx, edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], edx
mov word [ebp - 0x14], dx
test ecx, ecx
jne 0x52a8d4
call fcn.00566ade
mov dword [eax], 0x16
jmp 0x52a8e4
cmp eax, 0x16
jbe 0x52a8e9
call fcn.00566ade
mov dword [eax], 0x22
call fcn.00566a04
mov ebx, dword [ebp - 0xa8]
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x14], 0
lea edx, [ecx + 1]
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52a910
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
mov ecx, ebx
call fcn.004385d0
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0xf
cmp ecx, 0x10
jb 0x52a95a
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x52a950
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52aacd
push ecx
push esi
call fcn.00558004
add esp, 8
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 0xe
cmp eax, 0x10
jb 0x52a997
mov edx, dword [ebp - 0xac]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x52a98d
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52aacd
push ecx
push edx
call fcn.00558004
add esp, 8
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 8
cmp eax, 0x10
jb 0x52a9d4
mov edx, dword [ebp - 0xb0]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x52a9ca
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52aacd
push ecx
push edx
call fcn.00558004
add esp, 8
mov eax, dword [ebp - 0x94]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x52a9e8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x52a9fc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x1b
jmp 0x52a4e6
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0x12
test eax, eax
je 0x52aa1c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x94]
mov ebx, dword [ebp - 0xa8]
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0xf
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
cmp ecx, 0x10
jb 0x52aa76
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x52aa66
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52aacd
push ecx
push esi
call fcn.00558004
mov eax, dword [ebp - 0x94]
add esp, 8
mov byte [ebp - 4], 0x16
test eax, eax
je 0x52aa84
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0x17
test eax, eax
je 0x52aa98
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 4], 0x18
test ecx, ecx
je 0x52aaaf
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov eax, ebx
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.00557e89
mov esp, ebp
pop ebp
ret
call fcn.00566a14
int3