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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1002ddd9
mov eax, dword fs:[0]
push eax
sub esp, 0x1ac
mov eax, dword [0x1003bcc8]
xor eax, ebp
mov dword [ebp - 0x58], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x18c], ecx
lea ecx, [ebp - 0x180]
call fcn.10001520
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.10001520
mov byte [ebp - 4], 1
xor eax, eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
push 0x11c
push 0
lea ecx, [ebp - 0x17c]
push ecx
call fcn.1001abd0
add esp, 0xc
mov dword [ebp - 0x17c], 0x11c
lea edx, [ebp - 0x17c]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
jne 0x10005c49
mov dword [ebp - 0x17c], 0x114
lea eax, [ebp - 0x17c]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
push str.GetNativeSystemInfo
push 0x1003347c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0
je 0x10005c72
lea ecx, [ebp - 0x54]
push ecx
call dword [ebp - 0x20]
jmp 0x10005c7c
lea edx, [ebp - 0x54]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x178]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x174]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x170]
mov dword [ebp - 0x30], edx
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0x28]
push ecx
lea edx, [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x18c]
call fcn.10005b00
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x28]
push ecx
mov edx, dword [ebp - 0x18]
push edx
push str.OS_Version:__d._d__bulid__lu__r_n
mov eax, dword [ebp + 8]
push eax
call fcn.100013b0
add esp, 0x14
mov ecx, dword [ebp - 0x16c]
mov dword [ebp - 0x190], ecx
cmp dword [ebp - 0x190], 0
je 0x100062c6
cmp dword [ebp - 0x190], 1
je 0x10006176
cmp dword [ebp - 0x190], 2
je 0x10005d02
jmp 0x100062da
mov edx, dword [ebp - 0x18]
mov dword [ebp - 0x194], edx
mov eax, dword [ebp - 0x194]
sub eax, 4
mov dword [ebp - 0x194], eax
cmp dword [ebp - 0x194], 6
ja case.0x10005d2d.3
mov ecx, dword [ebp - 0x194]
jmp dword [ecx*4 + 0x10006360]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x198], edx
cmp dword [ebp - 0x198], 0
je 0x10005d5a
cmp dword [ebp - 0x198], 0xa
je 0x10005d90
cmp dword [ebp - 0x198], 0x5a
je 0x10005da2
jmp 0x10005db2
cmp dword [ebp - 0x16c], 2
jne 0x10005d75
push str.Microsoft_Windows_NT_4.0
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005d8e
cmp dword [ebp - 0x16c], 1
jne 0x10005d8e
push 0x1003350c
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005db2
push 0x10033538
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005db2
push str.Microsoft_Windows_Me
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005d2d.3
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0x19c], 0
je 0x10005de0
cmp dword [ebp - 0x19c], 1
je 0x10005df2
cmp dword [ebp - 0x19c], 2
je 0x10005e04
jmp 0x10005e62
push str.Microsoft_Windows_2000
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005e62
push str.Microsoft_Windows_XP
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005e62
movzx ecx, byte [ebp - 0x62]
cmp ecx, 1
jne 0x10005e28
movzx edx, word [ebp - 0x54]
cmp edx, 9
jne 0x10005e28
push str.Microsoft_Windows_XP_Professional_x64_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005e62
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x10005e46
push str.Microsoft_Windows_Server_2003
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005e62
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x10005e62
push str.Microsoft_Windows_Server_2003_R2
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005d2d.3
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1a0], eax
cmp dword [ebp - 0x1a0], 3
ja case.default.0x10005e83
mov ecx, dword [ebp - 0x1a0]
jmp dword [ecx*4 + 0x1000637c]
movzx edx, byte [ebp - 0x62]
cmp edx, 1
jne 0x10005ea5
push str.Microsoft_Windows_Vista
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005eb5
push str.Microsoft_Windows_Server_2008
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.default.0x10005e83
movzx eax, byte [ebp - 0x62]
cmp eax, 1
jne 0x10005ed5
push str.Microsoft_Windows_7
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005ee5
push str.Microsoft_Windows_Server_2008_R2
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.default.0x10005e83
movzx ecx, byte [ebp - 0x62]
cmp ecx, 1
jne 0x10005f02
push str.Microsoft_Windows_8
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10005f12
push str.Microsoft_Windows_Server_2012
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.default.0x10005e83
movzx edx, byte [ebp - 0x62]
cmp edx, 1
jne 0x10005f2f
push str.Microsoft_Windows_8.1
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.default.0x10005e83
push str.Microsoft_Windows_Server_2012_R2
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005d2d.3
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x1a4], eax
cmp dword [ebp - 0x1a4], 0
je 0x10005f55
jmp case.0x10005d2d.3
movzx ecx, byte [ebp - 0x62]
cmp ecx, 1
jne 0x10005f70
push str.Microsoft_Windows_10
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005d2d.3
push str.Microsoft_Windows_Server_2016_Technical_Preview
lea ecx, [ebp - 0x180]
call fcn.10003bf0
push 0x10033908
lea ecx, [ebp - 0x180]
call fcn.10003bf0
push str.GetProductInfo
push 0x1003391c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
je case.0x10005ff8.4
lea edx, [ebp - 0x10]
push edx
push 0
push 0
mov eax, dword [ebp - 0x174]
push eax
mov ecx, dword [ebp - 0x178]
push ecx
call dword [ebp - 0x1c]
mov edx, dword [ebp - 0x10]
mov dword [ebp - 0x1a8], edx
mov eax, dword [ebp - 0x1a8]
sub eax, 1
mov dword [ebp - 0x1a8], eax
cmp dword [ebp - 0x1a8], 0x18
ja case.0x10005ff8.4
mov ecx, dword [ebp - 0x1a8]
jmp dword [ecx*4 + 0x1000638c]
push str.Ultimate_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Home_Premium_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Home_Basic_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push 0x100339b0
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Business_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Starter_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Cluster_Server_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Datacenter_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Datacenter_Edition__core_installation_
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Enterprise_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Enterprise_Edition__core_installation_
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Enterprise_Edition_for_Itanium_based_Systems
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Small_Business_Server
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Small_Business_Server_Premium_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Standard_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Standard_Edition__core_installation_
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp case.0x10005ff8.4
push str.Web_Server_Edition
lea ecx, [ebp - 0x180]
call fcn.10003bf0
lea edx, [ebp - 0x168]
push edx
push 0x10033cac
lea eax, [ebp - 0x14]
push eax
call fcn.100013b0
add esp, 0xc
lea ecx, [ebp - 0x14]
push ecx
lea ecx, [ebp - 0x180]
call fcn.10003bd0
jmp 0x100062da
cmp dword [ebp - 0x178], 4
jne 0x1000620a
cmp dword [ebp - 0x174], 0
jne 0x1000620a
push str.Microsoft_Windows_95
lea edx, [ebp - 0x180]
push edx
call fcn.100013b0
add esp, 8
movzx eax, word [ebp - 0x166]
cmp eax, 0x43
je 0x100061b8
movzx ecx, word [ebp - 0x166]
cmp ecx, 0x42
jne 0x1000620a
push str.OSR2
lea edx, [ebp - 0x180]
push edx
lea eax, [ebp - 0x184]
push eax
call fcn.10003ed0
add esp, 0xc
mov dword [ebp - 0x1ac], eax
mov ecx, dword [ebp - 0x1ac]
mov dword [ebp - 0x1b0], ecx
mov byte [ebp - 4], 2
mov edx, dword [ebp - 0x1b0]
push edx
lea ecx, [ebp - 0x180]
call fcn.10004940
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x184]
call fcn.100013e0
cmp dword [ebp - 0x178], 4
jne 0x1000629e
cmp dword [ebp - 0x174], 0xa
jne 0x1000629e
push str.Microsoft_Windows_98
lea eax, [ebp - 0x180]
push eax
call fcn.100013b0
add esp, 8
movzx ecx, word [ebp - 0x166]
cmp ecx, 0x41
je 0x1000624c
movzx edx, word [ebp - 0x166]
cmp edx, 0x42
jne 0x1000629e
push 0x10033d18
lea eax, [ebp - 0x180]
push eax
lea ecx, [ebp - 0x188]
push ecx
call fcn.10003ed0
add esp, 0xc
mov dword [ebp - 0x1b4], eax
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - 0x1b8], edx
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x1b8]
push eax
lea ecx, [ebp - 0x180]
call fcn.10004940
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x188]
call fcn.100013e0
cmp dword [ebp - 0x178], 4
jne 0x100062c4
cmp dword [ebp - 0x174], 0x5a
jne 0x100062c4
push str.Microsoft_Windows_Millennium_Edition_n
lea ecx, [ebp - 0x180]
push ecx
call fcn.100013b0
add esp, 8
jmp 0x100062da
push str.Microsoft_Win32s_n
lea edx, [ebp - 0x180]
push edx
call fcn.100013b0
add esp, 8
cmp dword [ebp - 0x178], 6
jb 0x10006316
movzx eax, word [ebp - 0x54]
cmp eax, 9
jne 0x100062fe
push str.__64_bit
lea ecx, [ebp - 0x180]
call fcn.10003bf0
jmp 0x10006316
movzx ecx, word [ebp - 0x54]
test ecx, ecx
jne 0x10006316
push str.__32_bit
lea ecx, [ebp - 0x180]
call fcn.10003bf0
lea edx, [ebp - 0x180]
push edx
mov ecx, dword [ebp + 8]
call fcn.10003bd0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.100013e0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x180]
call fcn.100013e0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x58]
xor ecx, ebp
call fcn.100184dc
mov esp, ebp
pop ebp
ret 8