Function at 0x408f40
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x56b88b
mov eax, dword fs:[0]
push eax
sub esp, 0x154
mov eax, dword [0x5ce180]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x130], ecx
push 0x11c
push 0
lea eax, [ebp - 0x12c]
push eax
call fcn.0054eba0
add esp, 0xc
mov dword [ebp - 0x12c], 0x11c
lea ecx, [ebp - 0x12c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
mov dword [ebp - 0x144], eax
cmp dword [ebp - 0x144], 0
jne 0x408fcd
mov dword [ebp - 0x12c], 0x114
lea edx, [ebp - 0x12c]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x408fcd
jmp 0x4094fb
mov eax, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x128]
mov dword [eax + 0xc], ecx
mov edx, dword [ebp - 0x130]
mov eax, dword [ebp - 0x124]
mov dword [edx + 0x10], eax
mov ecx, dword [ebp - 0x130]
mov edx, dword [ebp - 0x120]
mov dword [ecx + 0x14], edx
mov eax, dword [ebp - 0x11c]
mov dword [ebp - 0x138], eax
cmp dword [ebp - 0x138], 0
je 0x4094db
cmp dword [ebp - 0x138], 1
je 0x409397
cmp dword [ebp - 0x138], 2
je 0x40902e
jmp 0x4094fb
cmp dword [ebp - 0x128], 4
ja 0x409050
push str.Microsoft_Windows_NT
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
nop
jmp 0x409228
cmp dword [ebp - 0x128], 5
jne 0x409087
cmp dword [ebp - 0x124], 0
jne 0x409087
push str.Microsoft_Windows_2000
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 4], 7
jmp 0x409228
cmp dword [ebp - 0x128], 5
jne 0x4090be
cmp dword [ebp - 0x124], 1
jne 0x4090be
push str.Microsoft_Windows_XP
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov edx, dword [ebp - 0x130]
mov dword [edx + 4], 8
jmp 0x409228
cmp dword [ebp - 0x128], 6
jne 0x4090f5
cmp dword [ebp - 0x124], 0
jne 0x4090f5
push str.Microsoft_Windows_Vista
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov eax, dword [ebp - 0x130]
mov dword [eax + 4], 9
jmp 0x409228
cmp dword [ebp - 0x128], 6
jne 0x40912c
cmp dword [ebp - 0x124], 1
jne 0x40912c
push str.Microsoft_Windows_7
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 4], 0xa
jmp 0x409228
cmp dword [ebp - 0x128], 6
jne 0x409163
cmp dword [ebp - 0x124], 2
jne 0x409163
push str.Microsoft_Windows_8
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov edx, dword [ebp - 0x130]
mov dword [edx + 4], 0xb
jmp 0x409228
cmp dword [ebp - 0x128], 0xa
jne 0x40919d
cmp dword [ebp - 0x120], 0x55f0
jae 0x40919d
push str.Microsoft_Windows_10
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov eax, dword [ebp - 0x130]
mov dword [eax + 4], 0xc
jmp 0x409228
cmp dword [ebp - 0x128], 0xb
je 0x4091bb
cmp dword [ebp - 0x128], 0xa
jne 0x4091dd
cmp dword [ebp - 0x120], 0x55f0
jb 0x4091dd
push str.Microsoft_Windows_11
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 4], 0xd
jmp 0x409228
cmp dword [ebp - 0x128], 0xb
jbe 0x409208
push str.Microsoft_Windows
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov edx, dword [ebp - 0x130]
mov dword [edx + 4], 0xe
jmp 0x409228
push str.Unknown_Windows
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov eax, dword [ebp - 0x130]
mov dword [eax + 4], 0
cmp dword [ebp - 0x128], 4
ja 0x409309
lea ecx, [ebp - 0x13c]
call fcn.0040e280
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x120]
and ecx, 0xffff
push ecx
lea edx, [ebp - 0x118]
push edx
mov eax, dword [ebp - 0x124]
push eax
mov ecx, dword [ebp - 0x128]
push ecx
push str.version__d._d__s__Build__d_
lea edx, [ebp - 0x13c]
push edx
call fcn.0040e570
add esp, 0x18
mov eax, dword [ebp - 0x130]
add eax, 8
mov dword [ebp - 0x148], eax
lea ecx, [ebp - 0x13c]
push ecx
mov ecx, dword [ebp - 0x148]
call fcn.00408e00
nop
cmp dword [ebp - 0x128], 4
jne 0x4092b7
mov edx, dword [ebp - 0x130]
mov dword [edx + 4], 6
jmp 0x4092d6
cmp dword [ebp - 0x128], 3
jne 0x4092d6
cmp dword [ebp - 0x124], 0x33
jne 0x4092d6
mov eax, dword [ebp - 0x130]
mov dword [eax + 4], 5
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x13c]
sub ecx, 0x10
mov dword [ebp - 0x14c], ecx
mov edx, dword [ebp - 0x14c]
mov dword [ebp - 0x150], edx
mov ecx, dword [ebp - 0x150]
call fcn.00404020
nop
jmp 0x409392
lea ecx, [ebp - 0x140]
call fcn.0040e280
mov dword [ebp - 4], 1
mov eax, dword [ebp - 0x120]
and eax, 0xffff
push eax
lea ecx, [ebp - 0x118]
push ecx
push str._s__Build__d_
lea edx, [ebp - 0x140]
push edx
call fcn.0040e570
add esp, 0x10
mov eax, dword [ebp - 0x130]
add eax, 8
mov dword [ebp - 0x154], eax
lea ecx, [ebp - 0x140]
push ecx
mov ecx, dword [ebp - 0x154]
call fcn.00408e00
nop
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x140]
sub edx, 0x10
mov dword [ebp - 0x158], edx
mov eax, dword [ebp - 0x158]
mov dword [ebp - 0x15c], eax
mov ecx, dword [ebp - 0x15c]
call fcn.00404020
nop
jmp 0x4094fb
cmp dword [ebp - 0x128], 4
jne 0x40944b
cmp dword [ebp - 0x124], 0
jne 0x40944b
push str.Microsoft_Windows_95
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
nop
mov ecx, 2
shl ecx, 0
movzx edx, word [ebp + ecx - 0x118]
cmp edx, 0x43
jne 0x4093f0
push str.OSR2
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
nop
jmp 0x40943e
mov eax, 2
shl eax, 0
mov cx, word [ebp + eax - 0x118]
mov word [ebp - 0x134], cx
mov edx, dword [ebp - 0x130]
add edx, 8
mov dword [ebp - 0x160], edx
movzx eax, word [ebp - 0x134]
push eax
mov ecx, dword [ebp - 0x160]
call fcn.004050a0
nop
push 0x57bd60
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
nop
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 4], 2
cmp dword [ebp - 0x128], 4
jne 0x4094a7
cmp dword [ebp - 0x124], 0xa
jne 0x4094a7
push str.Microsoft_Windows_98
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
nop
mov edx, 2
shl edx, 0
movzx eax, word [ebp + edx - 0x118]
cmp eax, 0x41
jne 0x40949a
push 0x57bf88
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
nop
mov ecx, dword [ebp - 0x130]
mov dword [ecx + 4], 3
cmp dword [ebp - 0x128], 4
jne 0x4094d9
cmp dword [ebp - 0x124], 0x5a
jne 0x4094d9
push str.Microsoft_Windows_Me
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov edx, dword [ebp - 0x130]
mov dword [edx + 4], 4
jmp 0x4094fb
push str.Microsoft_Win32s
mov ecx, dword [ebp - 0x130]
add ecx, 8
call fcn.00408d10
mov eax, dword [ebp - 0x130]
mov dword [eax + 4], 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0054c4e2
mov esp, ebp
pop ebp