Function at 0x100044ac
Capabilities:
Check os version
Get system information on windows

Disassembly:
push 0x160
mov eax, 0x1001954f
call fcn.1001504a
mov eax, dword [ebp + 8]
and dword [ebp - 0x148], 0
mov esi, 0x11c
push esi
mov dword [ebp - 0x138], eax
lea eax, [ebp - 0x12c]
push 0
push eax
call fcn.10009710
add esp, 0xc
lea eax, [ebp - 0x12c]
push eax
mov dword [ebp - 0x12c], esi
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x100045ba
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push str.GetNativeSystemInfo
mov esi, str.kernel32.dll
push esi
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x10004528
lea ecx, [ebp - 0x16c]
push ecx
call eax
jmp 0x10004535
lea eax, [ebp - 0x16c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [ebp - 0x11c], 2
jne 0x100045ba
cmp dword [ebp - 0x128], 4
jbe 0x100045ba
push str.GetProductInfo
push esi
call edi
push eax
call ebx
xor edi, edi
cmp eax, edi
je 0x100045b2
lea ecx, [ebp - 0x140]
push ecx
push edi
push edi
push dword [ebp - 0x124]
push dword [ebp - 0x128]
call eax
push 0x1001d3c0
lea eax, [ebp - 0x130]
push eax
call fcn.100030ea
push 5
pop esi
mov dword [ebp - 4], edi
cmp dword [ebp - 0x128], 6
push 0xa
pop ebx
jne 0x1000462d
cmp dword [ebp - 0x124], edi
jne 0x100045da
cmp byte [ebp - 0x12], 1
lea eax, [ebp - 0x130]
jne 0x100045cf
push esi
push str.Vista
jmp 0x100045d5
mov dword [ebp - 0x140], edi
jmp 0x1000456f
push 0x1001d3c0
push dword [ebp - 0x138]
call fcn.100030ea
jmp 0x1000480c
push ebx
push str.Server2008
call fcn.10004178
cmp dword [ebp - 0x124], 1
jne 0x10004604
cmp byte [ebp - 0x12], 1
lea eax, [ebp - 0x130]
jne 0x100045f8
push 4
push str.Win7
jmp 0x100045ff
push 0xc
push str.Server2008R2
call fcn.10004178
cmp dword [ebp - 0x124], 2
jne 0x1000462d
cmp byte [ebp - 0x12], 1
lea eax, [ebp - 0x130]
jne 0x10004622
push 4
push str.Win8
jmp 0x10004628
push ebx
push str.Server2012
call fcn.10004178
cmp dword [ebp - 0x128], esi
jne 0x100046bc
cmp dword [ebp - 0x124], 2
jne 0x10004674
cmp byte [ebp - 0x12], 1
jne 0x1000465b
cmp word [ebp - 0x16c], 9
jne 0x1000465b
push 8
push str.WinXPx64
jmp 0x10004661
push ebx
push str.Server2003
lea eax, [ebp - 0x130]
call fcn.10004178
cmp dword [ebp - 0x128], esi
jne 0x100046bc
cmp dword [ebp - 0x124], 1
jne 0x10004696
push esi
push str.WinXP
lea eax, [ebp - 0x130]
call fcn.10004178
cmp dword [ebp - 0x128], esi
jne 0x100046bc
cmp dword [ebp - 0x124], edi
jne 0x100046bc
cmp byte [ebp - 0x12], 1
push ebx
lea eax, [ebp - 0x130]
jne 0x100046b2
push str.Win2000Pro
jmp 0x100046b7
push str.Server2000
call fcn.10004178
mov eax, dword [0x10021038]
mov edi, 0x10021038
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x13c], eax
mov byte [ebp - 4], 1
mov eax, dword [0x10021038]
mov ecx, edi
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x134], eax
mov byte [ebp - 4], 2
push 3
pop ebx
cmp dword [ebp - 0x128], esi
jne 0x1000471a
cmp dword [ebp - 0x124], 2
jne 0x10004747
cmp byte [ebp - 0x12], 1
jne 0x10004747
cmp word [ebp - 0x16c], 9
jne 0x10004747
push 0x1001d6a4
jmp 0x1000473c
cmp dword [ebp - 0x128], 6
jb 0x10004747
cmp word [ebp - 0x16c], 9
je 0x10004713
cmp word [ebp - 0x16c], 0
jne 0x10004747
push 0x1001d6ac
lea eax, [ebp - 0x134]
call fcn.1000267d
movzx eax, word [ebp - 0x16]
push eax
movzx eax, word [ebp - 0x18]
push eax
push dword [ebp - 0x134]
lea eax, [ebp - 0x13c]
push dword [ebp - 0x140]
push dword [ebp - 0x124]
push dword [ebp - 0x128]
push 0x77
push str._c_d._d_p_d__s_SP_d._d
call fcn.10004e94
add esp, 0x20
push 0x1001d6e4
lea eax, [ebp - 0x144]
push eax
call fcn.1000238f
lea eax, [ebp - 0x144]
push eax
lea eax, [ebp - 0x148]
push eax
lea edi, [ebp - 0x130]
mov byte [ebp - 4], bl
call fcn.10002455
lea ecx, [ebp - 0x13c]
push ecx
push dword [ebp - 0x138]
mov edi, eax
mov byte [ebp - 4], 4
call fcn.10002455
mov eax, dword [ebp - 0x148]
add esp, 0x10
add eax, 0xfffffff0
call fcn.10002ace
mov eax, dword [ebp - 0x144]
add eax, 0xfffffff0
call fcn.10002ace
mov eax, dword [ebp - 0x134]
add eax, 0xfffffff0
call fcn.10002ace
mov eax, dword [ebp - 0x13c]
add eax, 0xfffffff0
call fcn.10002ace
mov eax, dword [ebp - 0x130]
add eax, 0xfffffff0
call fcn.10002ace
mov eax, dword [ebp - 0x138]
call fcn.10015094
ret 4