Function at 0x4097b0
Capabilities:
Check os version
Connect to wmi namespace via wbemlocator
Get disk size
Get hostname
Get memory capacity
Reference wmi statements

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x43611a
mov eax, dword fs:[0]
push eax
sub esp, 0x1b4
mov eax, dword [0x44a068]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x19c], esi
mov dword [ebp - 0x1a0], esi
push 0
mov dword [ebp - 0x1c0], esi
lea edi, [esi + 4]
push 0
mov dword [esi], 0
mov dword [edi], 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
push 0
push 0
push 0
push 3
push 0
push 0
push 0
push 0xffffffffffffffff
push 0
call dword [sym.imp.ole32.dll_CoInitializeSecurity]
push esi
push 0x43b688
push 1
push 0
push 0x43b678
call dword [sym.imp.ole32.dll_CoCreateInstance]
push str.ROOTCIMV2
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov ecx, dword [ebp - 0x19c]
mov esi, eax
push edi
push 0
push 0
mov eax, dword [ecx]
push 0
push 0
push 0
mov ecx, dword [eax]
push 0
push esi
push eax
call dword [ecx + 0xc]
push 0
push 0
push 3
push 3
push 0
push 0
push 0xa
push dword [edi]
call dword [sym.imp.ole32.dll_CoSetProxyBlanket]
push esi
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov dword [ebp - 4], 0
xor edx, edx
mov ecx, dword [ebp - 0x19c]
mov dword [ecx + 0x18], 0
mov dword [ecx + 0x1c], 7
mov word [ecx + 8], dx
lea edi, [ecx + 0x20]
xor eax, eax
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], 7
mov word [edi], ax
lea eax, [ecx + 0x38]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1a4], eax
mov word [eax], dx
lea eax, [ecx + 0x50]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1a8], eax
mov word [eax], dx
lea eax, [ecx + 0x68]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1ac], eax
mov word [eax], dx
lea eax, [ecx + 0x80]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1b0], eax
mov word [eax], dx
lea eax, [ecx + 0x98]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1b4], eax
mov word [eax], dx
lea eax, [ecx + 0xb0]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1b8], eax
mov word [eax], dx
lea eax, [ecx + 0xc8]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x18], eax
mov word [eax], dx
lea eax, [ecx + 0xe0]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x134], eax
mov word [eax], dx
lea eax, [ecx + 0xf8]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x13c], eax
mov word [eax], dx
lea eax, [ecx + 0x110]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1bc], eax
mov word [eax], dx
lea eax, [ecx + 0x128]
xor ecx, ecx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 7
mov dword [ebp - 0x1a0], eax
mov word [eax], cx
lea eax, [ebp - 0x198]
mov byte [ebp - 4], 0xd
push eax
call fcn.004088a0
mov ecx, dword [ebp - 0x19c]
mov esi, eax
add ecx, 8
cmp ecx, esi
je 0x409a07
call fcn.00403530
movups xmm0, xmmword [esi]
mov ecx, dword [ebp - 0x19c]
xor eax, eax
movups xmmword [ecx + 8], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ecx + 0x18], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409a47
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409a3d
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a40b
push edx
push ecx
call fcn.00419245
add esp, 8
lea eax, [ebp - 0x14]
mov dword [ebp - 0x14], 0x10
push eax
lea eax, [ebp - 0x160]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
xor eax, eax
mov dword [ebp - 0x188], 0
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x184], 7
mov word [ebp - 0x198], ax
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x409a85
sub ecx, edx
lea eax, [ebp - 0x160]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x198]
call fcn.00404540
lea eax, [ebp - 0x198]
cmp edi, eax
je 0x409ad1
mov ecx, edi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [edi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [edi + 0x10], xmm0
jmp 0x409b11
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409b11
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409b07
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a410
push edx
push ecx
call fcn.00419245
add esp, 8
push 0x110
lea eax, [ebp - 0x12c]
push 0
push eax
call fcn.0041b2d0
add esp, 0xc
mov dword [ebp - 0x130], 0x114
lea eax, [ebp - 0x130]
push eax
call dword [sym.imp.ntdll.dll_RtlGetVersion]
mov eax, dword [ebp - 0x12c]
cmp eax, 0xa
jne 0x409b90
xor eax, eax
mov dword [ebp - 0x188], 0
cmp dword [ebp - 0x124], 0x55f0
lea ecx, [ebp - 0x198]
mov dword [ebp - 0x184], 7
mov word [ebp - 0x198], ax
jb 0x409b84
push 0x15
push str.Windows_11_or_Greater
jmp 0x409c63
push 0xa
push str.Windows_10
jmp 0x409c63
cmp eax, 6
jne 0x409bea
mov eax, dword [ebp - 0x128]
sub eax, 1
je 0x409bd8
sub eax, 1
je 0x409bc3
sub eax, 1
jne 0x409c39
push str.Windows_8.1
lea ecx, [ebp - 0x198]
call fcn.004035d0
jmp 0x409c68
push str.Windows_8
lea ecx, [ebp - 0x198]
call fcn.004035d0
jmp 0x409c68
push str.Windows_7
lea ecx, [ebp - 0x198]
call fcn.004035d0
jmp 0x409c68
cmp eax, 5
jne 0x409c39
mov eax, dword [ebp - 0x128]
cmp eax, 2
jne 0x409c0c
push str.Windows_XP_64_Bit_Edition
lea ecx, [ebp - 0x198]
call fcn.004035d0
jmp 0x409c68
cmp eax, 1
jne 0x409c23
push str.Windows_XP
lea ecx, [ebp - 0x198]
call fcn.004035d0
jmp 0x409c68
test eax, eax
jne 0x409c39
push str.Windows_2000
lea ecx, [ebp - 0x198]
call fcn.004035d0
jmp 0x409c68
xor eax, eax
mov dword [ebp - 0x188], 0
push 0xf
mov dword [ebp - 0x184], 7
lea ecx, [ebp - 0x198]
mov word [ebp - 0x198], ax
push str.Unknown_Version
call fcn.00404540
mov esi, dword [ebp - 0x1a4]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x409c98
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x409cd8
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409cd8
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409cce
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a415
push edx
push ecx
call fcn.00419245
add esp, 8
lea eax, [ebp - 0x180]
mov dword [ebp - 0x180], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
push 0xb0
lea eax, [ebp - 0xcc]
push 0
push eax
call fcn.0041b2d0
add esp, 4
lea ecx, [ebp - 0xcc]
call fcn.0040be40
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x178]
mov eax, dword [ebp - 0x174]
shrd ecx, eax, 0x14
shr eax, 0x14
push eax
push ecx
lea ecx, [ebp - 0xbc]
call fcn.0040c610
mov edx, 0x444884
mov ecx, eax
call fcn.00406250
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040dc40
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
call fcn.004089a0
mov esi, dword [ebp - 0x1a8]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x409d91
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x409dd1
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409dd1
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409dc7
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a41a
push edx
push ecx
call fcn.00419245
add esp, 8
lea eax, [ebp - 0x198]
push eax
call fcn.00408a60
mov edi, dword [ebp - 0x1ac]
mov esi, eax
cmp edi, esi
je 0x409e13
mov ecx, edi
call fcn.00403530
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409e53
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409e49
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a41f
push edx
push ecx
call fcn.00419245
add esp, 8
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push 0
call esi
push 1
mov edi, eax
call esi
push 0xb0
mov esi, eax
lea eax, [ebp - 0xcc]
push 0
push eax
call fcn.0041b2d0
add esp, 4
lea ecx, [ebp - 0xcc]
call fcn.0040be40
push esi
push edi
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 0xf
call fcn.0040cad0
mov edx, 0x4448e8
mov ecx, eax
call fcn.00406250
mov ecx, eax
call fcn.0040cad0
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040dc40
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
call fcn.004089a0
mov esi, dword [ebp - 0x1b0]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x409efb
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x409f3b
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409f3b
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409f31
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a424
push edx
push ecx
call fcn.00419245
add esp, 8
lea eax, [ebp - 0x198]
push eax
call fcn.00408d10
mov edi, dword [ebp - 0x1b4]
mov esi, eax
cmp edi, esi
je 0x409f7d
mov ecx, edi
call fcn.00403530
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x409fbd
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x409fb3
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a429
push edx
push ecx
call fcn.00419245
add esp, 8
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push str.SELECT__FROM_Win32_ComputerSystem
call esi
push 0x444a38
mov edi, eax
call esi
mov ecx, dword [ebp - 0x19c]
mov esi, eax
push esi
push edi
lea eax, [ebp - 0x198]
push eax
call fcn.004082b0
push edi
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call edi
push esi
call edi
mov esi, dword [ebp - 0x1b8]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x40a025
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x40a065
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40a065
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a05b
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a42e
push edx
push ecx
call fcn.00419245
add esp, 8
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push str.SELECT__FROM_Win32_ComputerSystem
call esi
push 0x444a54
mov edi, eax
call esi
mov ecx, dword [ebp - 0x19c]
mov esi, eax
push esi
push edi
lea eax, [ebp - 0x198]
push eax
call fcn.004082b0
push edi
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call edi
push esi
call edi
mov esi, dword [ebp - 0x18]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x40a0ca
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x40a10a
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40a10a
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a100
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a433
push edx
push ecx
call fcn.00419245
add esp, 8
mov ecx, dword [ebp - 0x19c]
lea eax, [ebp - 0x198]
push eax
call fcn.004090d0
mov edi, dword [ebp - 0x134]
mov esi, eax
cmp edi, esi
je 0x40a152
mov ecx, edi
call fcn.00403530
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40a192
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a188
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a438
push edx
push ecx
call fcn.00419245
add esp, 8
mov esi, dword [sym.imp.OLEAUT32.dll_SysReAllocString]
push str.SELECT__FROM_Win32_Processor
call esi
push str.Name
mov edi, eax
call esi
mov ecx, dword [ebp - 0x19c]
mov esi, eax
push esi
push edi
lea eax, [ebp - 0x198]
push eax
call fcn.004082b0
push edi
mov edi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
call edi
push esi
call edi
mov esi, dword [ebp - 0x13c]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x40a1fa
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x40a23a
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40a23a
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a230
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a43d
push edx
push ecx
call fcn.00419245
add esp, 8
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x138]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0x444ba8
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
push 0xb0
lea eax, [ebp - 0xcc]
push 0
push eax
call fcn.0041b2d0
add esp, 4
lea ecx, [ebp - 0xcc]
call fcn.0040be40
mov byte [ebp - 4], 0x10
mov edx, 0x444bc0
mov ecx, dword [ebp - 0x140]
mov eax, dword [ebp - 0x13c]
shrd ecx, eax, 0x1e
shr eax, 0x1e
push eax
mov eax, dword [ebp - 0x134]
push ecx
mov ecx, dword [ebp - 0x138]
shrd ecx, eax, 0x1e
shr eax, 0x1e
push eax
push ecx
lea ecx, [ebp - 0xbc]
call fcn.00406250
mov ecx, eax
call fcn.0040c610
mov edx, 0x444bb8
mov ecx, eax
call fcn.00406250
mov ecx, eax
call fcn.0040c610
mov edx, 0x444bb0
mov ecx, eax
call fcn.00406250
lea eax, [ebp - 0x198]
push eax
lea ecx, [ebp - 0xb4]
call fcn.0040dc40
lea ecx, [ebp - 0xcc]
mov byte [ebp - 4], 0xd
call fcn.004089a0
mov esi, dword [ebp - 0x1bc]
lea eax, [ebp - 0x198]
cmp esi, eax
je 0x40a32d
mov ecx, esi
call fcn.00403530
movups xmm0, xmmword [ebp - 0x198]
movups xmmword [esi], xmm0
movq xmm0, qword [ebp - 0x188]
movq qword [esi + 0x10], xmm0
jmp 0x40a36d
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40a36d
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a363
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a442
push edx
push ecx
call fcn.00419245
add esp, 8
lea ecx, [ebp - 0x198]
call fcn.00408400
mov edi, dword [ebp - 0x1a0]
mov esi, eax
cmp edi, esi
je 0x40a3ae
mov ecx, edi
call fcn.00403530
movups xmm0, xmmword [esi]
xor eax, eax
movups xmmword [edi], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [edi + 0x10], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 7
mov word [esi], ax
mov edx, dword [ebp - 0x184]
cmp edx, 8
jb 0x40a3ea
mov ecx, dword [ebp - 0x198]
lea edx, [edx*2 + 2]
mov eax, ecx
cmp edx, 0x1000
jb 0x40a3e0
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x40a447
push edx
push ecx
call fcn.00419245
add esp, 8
mov eax, dword [ebp - 0x19c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00419004
mov esp, ebp
pop ebp
ret
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
call fcn.0041f2d0
int3