Function at 0x413f60
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x140
mov eax, dword [0x44b464]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push 0x98
lea eax, [ebp - 0x9c]
mov dword [0x44be30], 0
push 0
push eax
call fcn.00422c80
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [ebp - 0xa0]
add esp, 0xc
mov dword [ebp - 0xa0], 0x9c
push eax
call esi
test eax, eax
jne 0x413fe1
push 0x98
push eax
lea eax, [ebp - 0x9c]
push eax
call fcn.00422c80
add esp, 0xc
mov dword [ebp - 0xa0], 0x94
lea eax, [ebp - 0xa0]
push eax
call esi
test eax, eax
je 0x4142f2
cmp dword [ebp - 0x90], 2
jne 0x4142f2
cmp dword [ebp - 0x9c], 6
ja 0x41400a
jne 0x41410c
cmp dword [ebp - 0x98], 2
jb 0x414119
push ebx
push 1
push 2
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov esi, dword [ebp - 0x9c]
mov ebx, eax
mov dword [ebp - 0x140], edx
cmp esi, 9
ja 0x41410b
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
nop word [eax + eax]
push 0x94
lea eax, [ebp - 0x134]
push 0
push eax
call fcn.00422c80
add esp, 0xc
mov dword [ebp - 0x13c], 0x9c
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x138], esi
push dword [ebp - 0x140]
push ebx
push 2
push eax
call edi
test eax, eax
jne 0x414087
inc esi
cmp esi, 9
jbe 0x414040
jmp 0x41410a
cmp dword [ebp - 0x9c], esi
jae 0x41409f
mov dword [ebp - 0x9c], esi
mov dword [ebp - 0x98], 0
push 1
push 1
push 0
push 0
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov esi, dword [ebp - 0x98]
mov ebx, eax
mov dword [ebp - 0x140], edx
cmp esi, 9
ja 0x41410a
push 0x9c
lea eax, [ebp - 0x13c]
push 0
push eax
call fcn.00422c80
add esp, 0xc
mov dword [ebp - 0x13c], 0x9c
lea eax, [ebp - 0x13c]
mov dword [ebp - 0x134], esi
push dword [ebp - 0x140]
push ebx
push 1
push eax
call edi
test eax, eax
jne 0x414104
inc esi
cmp esi, 9
jbe 0x4140c0
jmp 0x41410a
mov dword [ebp - 0x98], esi
pop edi
pop ebx
cmp dword [ebp - 0x9c], 0xf
ja 0x4142f2
mov eax, dword [ebp - 0x98]
cmp eax, 0xf
ja 0x4142f2
mov edx, dword [ebp - 0x9c]
mov ecx, 1
cmp cl, byte [ebp - 6]
sbb ecx, ecx
shl edx, 4
or edx, eax
inc ecx
lea eax, [edx - 0x50]
cmp eax, 0x50
ja case.0x414151.83
movzx eax, byte [eax + 0x414328]
jmp dword [eax*4 + 0x414304]
mov dword [0x44be30], 1
mov esi, str.2000
jmp 0x414236
mov dword [0x44be30], 2
mov esi, 0x43f7ac
jmp 0x414236
mov dword [0x44be30], 3
mov esi, str.2003
jmp 0x414236
test ecx, ecx
mov dword [0x44be30], 4
mov esi, str.Vista
mov eax, str.2008
cmove esi, eax
jmp 0x414236
test ecx, ecx
mov dword [0x44be30], 5
mov esi, 0x43f7c8
mov eax, str.2008_R2
cmove esi, eax
jmp 0x414236
test ecx, ecx
mov dword [0x44be30], 6
mov esi, 0x43f7d4
mov eax, str.2012
cmove esi, eax
jmp 0x414236
test ecx, ecx
mov dword [0x44be30], 7
mov esi, 0x43f7e0
mov eax, str.2012_R2
cmove esi, eax
jmp 0x414236
test ecx, ecx
mov dword [0x44be30], 8
mov esi, 0x43f7ec
mov eax, str.2016
cmove esi, eax
jmp 0x414236
cmp edx, 0x50
jb 0x4142f2
mov dword [0x44be30], 9
mov esi, str.11_or_later
xor ecx, ecx
mov dword [ebp - 0x140], ecx
cmp dword [0x44be58], ecx
je 0x414260
lea eax, [ebp - 0x140]
push eax
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [0x44be58]
mov ecx, dword [ebp - 0x140]
test ecx, ecx
mov eax, str.64_bit
mov cx, word [ebp - 0xa]
mov edx, str.32_bit
cmove eax, edx
push eax
test cx, cx
je 0x4142a8
movzx eax, cx
push eax
movzx eax, word [ebp - 0xc]
push eax
push esi
push str.Windows__s_SP_u._u__s
push str.get_windows_version
push 4
push 0
call fcn.0040fc50
add esp, 0x20
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421767
mov esp, ebp
pop ebp
ret
mov cx, word [ebp - 0xc]
test cx, cx
je 0x4142db
movzx eax, cx
push eax
push esi
push str.Windows__s_SP_u__s
push str.get_windows_version
push 4
push 0
call fcn.0040fc50
add esp, 0x1c
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00421767
mov esp, ebp
pop ebp
ret
push esi
push str.Windows__s__s
push str.get_windows_version
push 4
push 0
call fcn.0040fc50
add esp, 0x18
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.00421767
mov esp, ebp
pop ebp
ret