Function at 0x60583c
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea0
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x160], eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x605cf0
push dword fs:[eax]
mov dword fs:[eax], esp
or edi, 0xffffffff
or esi, 0xffffffff
xor ebx, ebx
lea eax, [ebp - 0x150]
call fcn.00430c30
mov eax, dword [ebp - 0x150]
lea edx, [ebp - 4]
call fcn.0042771c
call fcn.00430c04
dec eax
je 0x6058b4
dec eax
je 0x60593c
jmp case.default.0x605b25
call fcn.00430c20
sub eax, 0xa
jb 0x6058ca
sub eax, 0x50
jb 0x6058f6
je 0x605935
jmp case.default.0x605b25
mov eax, dword [ebp - 4]
mov edx, 0x605d0c
call fcn.0040c6d4
je 0x6058e8
mov eax, dword [ebp - 4]
mov edx, 0x605d1c
call fcn.0040c6d4
jne 0x6058ef
mov bl, 2
jmp case.default.0x605b25
mov bl, 1
jmp case.default.0x605b25
cmp dword [0x7c1260], 0x4005a
jne 0x605909
mov bl, 5
jmp case.default.0x605b25
mov eax, dword [ebp - 4]
mov edx, 0x605d2c
call fcn.0040c6d4
je 0x605927
mov eax, dword [ebp - 4]
mov edx, 0x605d0c
call fcn.0040c6d4
jne 0x60592e
mov bl, 4
jmp case.default.0x605b25
mov bl, 3
jmp case.default.0x605b25
mov bl, 5
jmp case.default.0x605b25
call fcn.00430c18
add eax, 0xfffffffd
cmp eax, 7
ja case.default.0x605b25
jmp dword [eax*4 + 0x605954]
call fcn.00430c20
dec eax
je 0x60598b
sub eax, 4
je 0x605992
sub eax, 0x2e
je 0x605999
jmp case.default.0x605b25
mov bl, 6
jmp case.default.0x605b25
mov bl, 7
jmp case.default.0x605b25
mov bl, 8
jmp case.default.0x605b25
mov bl, 9
jmp case.default.0x605b25
call fcn.00430c20
sub eax, 1
jb 0x6059bb
je 0x6059c2
dec eax
je 0x6059c9
jmp case.default.0x605b25
mov bl, 0xa
jmp case.default.0x605b25
mov bl, 0xb
jmp case.default.0x605b25
mov dword [ebp - 0x14c], 0x11c
xor eax, eax
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
call fcn.00606f38
push 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x6059f2
mov bl, 0xe
jmp case.default.0x605b25
cmp word [ebp - 0x30], 0
je 0x605a16
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605a16
cmp byte [ebp - 0x32], 1
jne 0x605a16
mov bl, 0xd
jmp case.default.0x605b25
mov bl, 0xc
jmp case.default.0x605b25
call fcn.00430c20
cmp eax, 2
jne 0x605b13
lea eax, [ebp - 8]
call fcn.00606114
lea edx, [ebp - 0x154]
mov eax, dword [0x737e50]
call fcn.00411e64
mov eax, dword [ebp - 0x154]
mov ecx, 1
mov esi, dword [ebp - 8]
mov edx, esi
call fcn.0040c868
dec eax
jne 0x605a5f
mov al, 1
jmp 0x605a85
lea edx, [ebp - 0x158]
mov eax, dword [0x737f60]
call fcn.00411e64
mov eax, dword [ebp - 0x158]
mov ecx, 1
mov edx, esi
call fcn.0040c868
dec eax
sete al
test al, al
je 0x605a93
mov esi, 3
jmp 0x605b1a
lea edx, [ebp - 0x15c]
mov eax, dword [0x738290]
call fcn.00411e64
mov eax, dword [ebp - 0x15c]
mov ecx, 1
mov edx, esi
call fcn.0040c868
dec eax
jne 0x605abc
mov al, 1
jmp 0x605ae2
lea edx, [ebp - 0x160]
mov eax, dword [0x738328]
call fcn.00411e64
mov eax, dword [ebp - 0x160]
mov ecx, 1
mov edx, esi
call fcn.0040c868
dec eax
sete al
test al, al
je 0x605aed
mov esi, 2
jmp 0x605b1a
call fcn.00606334
mov edi, eax
cmp edi, 6
jne 0x605b00
mov esi, 4
jmp 0x605b1a
cmp edi, 0xa
jne 0x605b0a
or esi, 0xffffffff
jmp 0x605b1a
call fcn.00430c20
mov esi, eax
jmp 0x605b1a
call fcn.00430c20
mov esi, eax
mov eax, esi
cmp eax, 4
ja case.default.0x605b25
jmp dword [eax*4 + 0x605b2c]
mov dword [ebp - 0x14c], 0x11c
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605b67
cmp byte [ebp - 0x32], 1
jne 0x605b67
mov bl, 0xf
jmp case.default.0x605b25
mov bl, 0x10
jmp case.default.0x605b25
mov dword [ebp - 0x14c], 0x11c
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605b95
cmp byte [ebp - 0x32], 1
jne 0x605b95
mov bl, 0x11
jmp case.default.0x605b25
mov bl, 0x12
jmp case.default.0x605b25
mov dword [ebp - 0x14c], 0x11c
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605bc0
cmp byte [ebp - 0x32], 1
jne 0x605bc0
mov bl, 0x13
jmp case.default.0x605b25
mov bl, 0x15
jmp case.default.0x605b25
mov dword [ebp - 0x14c], 0x11c
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605be8
cmp byte [ebp - 0x32], 1
jne 0x605be8
mov bl, 0x16
jmp case.default.0x605b25
mov bl, 0x18
jmp case.default.0x605b25
mov dword [ebp - 0x14c], 0x11c
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605c10
cmp byte [ebp - 0x32], 1
jne 0x605c10
mov bl, 0x19
jmp case.default.0x605b25
mov bl, 0x1a
jmp case.default.0x605b25
call fcn.00430c18
mov edi, eax
call fcn.00430c20
mov esi, eax
cmp edi, 0xa
jl 0x605cc3
sub edi, 0xa
jne 0x605cc3
cmp esi, 0xffffffff
jne 0x605c40
call fcn.00606564
mov esi, eax
sub esi, 1
jae 0x605cc3
mov dword [ebp - 0x14c], 0x11c
lea eax, [ebp - 0x14c]
push eax
call sub.kernel32.dll_GetVersionExW
test eax, eax
je 0x605c79
cmp byte [ebp - 0x32], 1
jne 0x605c79
call fcn.006061d0
cmp eax, 0x55f0
jl 0x605c75
mov bl, 0x1d
jmp 0x605cc3
mov bl, 0x19
jmp 0x605cc3
push 0
lea eax, [ebp - 0xc]
push eax
mov ecx, 0x605d3c
mov edx, 0x605d4c
mov eax, 0x605d6c
call fcn.00604764
or edx, 0xffffffff
mov eax, dword [ebp - 0xc]
call fcn.004281dc
sub eax, 0x647
je 0x605cb5
sub eax, 0xca
je 0x605cb9
sub eax, 0xc8
je 0x605cbd
jmp 0x605cc1
mov bl, 0x1a
jmp 0x605cc3
mov bl, 0x1b
jmp 0x605cc3
mov bl, 0x1e
jmp 0x605cc3
mov bl, 0x1c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x605cf7
lea eax, [ebp - 0x160]
mov edx, 5
call fcn.0040b51c
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.0040b51c
pop eax
jmp eax