Function at 0x664400
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffea4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x15c], eax
mov dword [ebp - 0x158], eax
mov dword [ebp - 0x154], eax
mov dword [ebp - 0x150], eax
mov dword [ebp - 0x14c], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x664850
push dword fs:[eax]
mov dword fs:[eax], esp
or edi, 0xffffffff
or esi, 0xffffffff
xor ebx, ebx
lea eax, [ebp - 0x14c]
call fcn.0042e3b4
mov eax, dword [ebp - 0x14c]
lea edx, [ebp - 4]
call fcn.00425e58
call fcn.0042e378
dec eax
je 0x664475
dec eax
je 0x6644fd
jmp case.default.0x6646e7
call fcn.0042e3a0
sub eax, 0xa
jb 0x66448b
sub eax, 0x50
jb 0x6644b7
je 0x6644f6
jmp case.default.0x6646e7
mov eax, dword [ebp - 4]
mov edx, 0x66486c
call fcn.0040b690
je 0x6644a9
mov eax, dword [ebp - 4]
mov edx, 0x66487c
call fcn.0040b690
jne 0x6644b0
mov bl, 2
jmp case.default.0x6646e7
mov bl, 1
jmp case.default.0x6646e7
cmp dword [0x6da9c0], 0x4005a
jne 0x6644ca
mov bl, 5
jmp case.default.0x6646e7
mov eax, dword [ebp - 4]
mov edx, 0x66488c
call fcn.0040b690
je 0x6644e8
mov eax, dword [ebp - 4]
mov edx, 0x66486c
call fcn.0040b690
jne 0x6644ef
mov bl, 4
jmp case.default.0x6646e7
mov bl, 3
jmp case.default.0x6646e7
mov bl, 5
jmp case.default.0x6646e7
call fcn.0042e38c
add eax, 0xfffffffd
cmp eax, 7
ja case.default.0x6646e7
jmp dword [eax*4 + 0x664515]
call fcn.0042e3a0
dec eax
je 0x66454c
sub eax, 4
je 0x664553
sub eax, 0x2e
je 0x66455a
jmp case.default.0x6646e7
mov bl, 6
jmp case.default.0x6646e7
mov bl, 7
jmp case.default.0x6646e7
mov bl, 8
jmp case.default.0x6646e7
mov bl, 9
jmp case.default.0x6646e7
call fcn.0042e3a0
sub eax, 1
jb 0x66457c
je 0x664583
dec eax
je 0x66458a
jmp case.default.0x6646e7
mov bl, 0xa
jmp case.default.0x6646e7
mov bl, 0xb
jmp case.default.0x6646e7
mov dword [ebp - 0x148], 0x11c
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
call fcn.00664d18
push 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x6645b3
mov bl, 0xe
jmp case.default.0x6646e7
cmp word [ebp - 0x2c], 0
je 0x6645d7
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x6645d7
cmp byte [ebp - 0x2e], 1
jne 0x6645d7
mov bl, 0xd
jmp case.default.0x6646e7
mov bl, 0xc
jmp case.default.0x6646e7
call fcn.0042e3a0
cmp eax, 2
jne 0x6646d5
push 0
lea eax, [ebp - 8]
push eax
mov ecx, 0x66489c
mov edx, 0x6648c0
mov eax, 0x80000002
call fcn.006674fc
lea edx, [ebp - 0x150]
mov eax, dword [0x6d37d4]
call fcn.004100a8
mov eax, dword [ebp - 0x150]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
je 0x664652
lea edx, [ebp - 0x154]
mov eax, dword [0x6d38a8]
call fcn.004100a8
mov eax, dword [ebp - 0x154]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
jne 0x66465c
mov esi, 3
jmp 0x6646dc
lea edx, [ebp - 0x158]
mov eax, dword [0x6d3b38]
call fcn.004100a8
mov eax, dword [ebp - 0x158]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
je 0x6646a8
lea edx, [ebp - 0x15c]
mov eax, dword [0x6d3bc4]
call fcn.004100a8
mov eax, dword [ebp - 0x15c]
mov ecx, 1
mov edx, dword [ebp - 8]
call fcn.0040b8d8
dec eax
jne 0x6646af
mov esi, 2
jmp 0x6646dc
call fcn.0066491c
mov edi, eax
cmp edi, 6
jne 0x6646c2
mov esi, 4
jmp 0x6646dc
cmp edi, 0xa
jne 0x6646cc
or esi, 0xffffffff
jmp 0x6646dc
call fcn.0042e3a0
mov esi, eax
jmp 0x6646dc
call fcn.0042e3a0
mov esi, eax
mov eax, esi
cmp eax, 4
ja case.default.0x6646e7
jmp dword [eax*4 + 0x6646ee]
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x664729
cmp byte [ebp - 0x2e], 1
jne 0x664729
mov bl, 0xf
jmp case.default.0x6646e7
mov bl, 0x10
jmp case.default.0x6646e7
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x664757
cmp byte [ebp - 0x2e], 1
jne 0x664757
mov bl, 0x11
jmp case.default.0x6646e7
mov bl, 0x12
jmp case.default.0x6646e7
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x664782
cmp byte [ebp - 0x2e], 1
jne 0x664782
mov bl, 0x13
jmp case.default.0x6646e7
mov bl, 0x15
jmp case.default.0x6646e7
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x6647aa
cmp byte [ebp - 0x2e], 1
jne 0x6647aa
mov bl, 0x16
jmp case.default.0x6646e7
mov bl, 0x18
jmp case.default.0x6646e7
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x6647d2
cmp byte [ebp - 0x2e], 1
jne 0x6647d2
mov bl, 0x19
jmp case.default.0x6646e7
mov bl, 0x1a
jmp case.default.0x6646e7
call fcn.0042e38c
mov edi, eax
call fcn.0042e3a0
mov esi, eax
cmp edi, 0xa
jl 0x664825
sub edi, 0xa
jne 0x664825
cmp esi, 0xffffffff
jne 0x6647fa
call fcn.00664b14
mov esi, eax
sub esi, 1
jae 0x664825
mov dword [ebp - 0x148], 0x11c
lea eax, [ebp - 0x148]
push eax
call sub.KERNEL32.DLL_GetVersionExW
test eax, eax
je 0x664823
cmp byte [ebp - 0x2e], 1
jne 0x664823
mov bl, 0x19
jmp 0x664825
mov bl, 0x1a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x664857
lea eax, [ebp - 0x15c]
mov edx, 5
call fcn.0040a830
lea eax, [ebp - 8]
mov edx, 2
call fcn.0040a830
ret