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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5b0eea
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x639354]
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 0x5dfe34
push 1
push 0
push 0x5dfe24
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
jns 0x52fd08
mov dword [ebx], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0xf
mov byte [ebx], 0
mov dword [ebp - 4], 1
jmp 0x52fea6
mov dword [ebp - 0x98], 0
mov edi, dword [ebp - 0x9c]
push 0x5d8dbc
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 0x52fd95
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 0x52fd89
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 5
jmp 0x52fea6
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 0x52fdf0
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 0x52fde4
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 7
jmp 0x52fea6
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 0x5d8e10
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 0x52febf
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 0x52fe8b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0xc
test eax, eax
je 0x52fe9f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0xd
mov eax, dword [ebp - 0x9c]
test eax, eax
je 0x53046f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x53046f
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 0x5303e2
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 0x5303c8
cmp dword [ebp - 0xa4], 0
je 0x5303c8
push str.SerialNumber
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
push eax
call fcn.005304a0
mov edi, eax
add esp, 0xc
lea eax, [ebp - 0x48]
cmp eax, edi
je 0x52ffec
cmp ebx, 0x10
jb 0x52ffb8
lea ecx, [ebx + 1]
mov eax, esi
cmp ecx, 0x1000
jb 0x52ffae
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53048d
push ecx
push esi
call fcn.0055c524
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.00437c40
mov edi, dword [ebp - 0x38]
test edi, edi
jne 0x530025
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0x13
test eax, eax
je 0x530012
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x94]
test eax, eax
jne 0x52ff20
jmp 0x5303e2
push str.Model
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
push eax
call fcn.005304a0
mov edx, eax
add esp, 0xc
lea eax, [ebp - 0x78]
cmp eax, edx
je 0x530084
mov eax, dword [edx]
mov ecx, dword [edx + 4]
dec edx
add al, 0x89
test dword [eax - 1], edx
invalid
dec dword [ecx + 0x428b8845]
or byte [ecx + 0x428b9045], cl
or al, 0x89
inc ebp
xchg esp, 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 0x53008d
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0xb0], eax
lea ecx, [ebp - 0x90]
call fcn.00437c40
push str.FirmwareRevision
push dword [ebp - 0xa0]
lea eax, [ebp - 0x90]
push eax
call fcn.005304a0
mov edx, eax
add esp, 0xc
lea eax, [ebp - 0x60]
cmp eax, edx
je 0x5300f7
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 0x530100
mov eax, dword [ebp - 0x60]
mov dword [ebp - 0xac], eax
lea ecx, [ebp - 0x90]
call fcn.00437c40
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0x14
test eax, eax
je 0x53011f
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 0x5301c8
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 0x5301c8
test edx, edx
je 0x53017f
cmp ecx, 0x1e
ja 0x53017f
push ecx
push edx
lea eax, [ebp - 0x30]
push eax
call fcn.00560500
add esp, 0xc
jmp 0x5301c3
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 0x5301ae
call fcn.0056b02e
mov dword [eax], 0x16
jmp 0x5301be
cmp ecx, 0x1e
jbe 0x5301c8
call fcn.0056b02e
mov dword [eax], 0x22
call fcn.0056af54
mov eax, 4
mov ecx, dword [ebp - 0x50]
test ecx, ecx
je 0x53023e
cmp ecx, 4
cmovl eax, ecx
cmp dword [ebp - 0x4c], 0x10
lea ecx, [ebp - 0x60]
cmovae ecx, dword [ebp - 0xac]
test eax, eax
je 0x53023e
test ecx, ecx
je 0x530200
cmp eax, 0x1a
ja 0x530200
push eax
push ecx
lea eax, [ebp - 0x2c]
push eax
call fcn.00560500
add esp, 0xc
jmp 0x53023e
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 0x530229
call fcn.0056b02e
mov dword [eax], 0x16
jmp 0x530239
cmp eax, 0x1a
jbe 0x53023e
call fcn.0056b02e
mov dword [eax], 0x22
call fcn.0056af54
mov eax, 0x14
lea ecx, [ebp - 0x48]
cmp edi, eax
cmovl eax, edi
cmp ebx, 0x10
cmovae ecx, esi
test eax, eax
je 0x5302a9
test ecx, ecx
je 0x53026e
cmp eax, 0x16
ja 0x53026e
push eax
push ecx
lea eax, [ebp - 0x28]
push eax
call fcn.00560500
add esp, 0xc
jmp 0x5302a9
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 0x530294
call fcn.0056b02e
mov dword [eax], 0x16
jmp 0x5302a4
cmp eax, 0x16
jbe 0x5302a9
call fcn.0056b02e
mov dword [eax], 0x22
call fcn.0056af54
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 0x5302d0
sub ecx, edx
lea eax, [ebp - 0x30]
push ecx
push eax
mov ecx, ebx
call fcn.00438630
mov ecx, dword [ebp - 0x34]
mov byte [ebp - 4], 0xf
cmp ecx, 0x10
jb 0x53031a
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x530310
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53048d
push ecx
push esi
call fcn.0055c524
add esp, 8
mov eax, dword [ebp - 0x4c]
mov byte [ebp - 4], 0xe
cmp eax, 0x10
jb 0x530357
mov edx, dword [ebp - 0xac]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x53034d
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53048d
push ecx
push edx
call fcn.0055c524
add esp, 8
mov eax, dword [ebp - 0x64]
mov byte [ebp - 4], 8
cmp eax, 0x10
jb 0x530394
mov edx, dword [ebp - 0xb0]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x53038a
mov edx, dword [edx - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53048d
push ecx
push edx
call fcn.0055c524
add esp, 8
mov eax, dword [ebp - 0x94]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x5303a8
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0x1a
test eax, eax
je 0x5303bc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov dword [ebp - 4], 0x1b
jmp 0x52fea6
mov eax, dword [ebp - 0xa0]
mov byte [ebp - 4], 0x12
test eax, eax
je 0x5303dc
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 0x530436
inc ecx
mov eax, esi
cmp ecx, 0x1000
jb 0x530426
mov esi, dword [esi - 4]
add ecx, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x53048d
push ecx
push esi
call fcn.0055c524
mov eax, dword [ebp - 0x94]
add esp, 8
mov byte [ebp - 4], 0x16
test eax, eax
je 0x530444
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x98]
mov byte [ebp - 4], 0x17
test eax, eax
je 0x530458
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x9c]
mov dword [ebp - 4], 0x18
test ecx, ecx
je 0x53046f
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.0055c3a9
mov esp, ebp
pop ebp
ret
call fcn.0056af64
int3