Function at 0x4c3218
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff24
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd4], eax
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xcc], eax
mov dword [ebp - 4], eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x4c369f
push dword fs:[eax]
mov dword fs:[eax], esp
or edi, 0xffffffff
or esi, 0xffffffff
xor ebx, ebx
lea edx, [ebp - 4]
mov eax, dword [0x5422b0]
mov eax, dword [eax]
call fcn.0040b488
mov eax, dword [0x542b98]
mov eax, dword [eax]
dec eax
je 0x4c3285
dec eax
je 0x4c330f
jmp case.default.0x4c34ea
mov eax, dword [0x54284c]
mov eax, dword [eax]
sub eax, 0xa
jb 0x4c329d
sub eax, 0x50
jb 0x4c32c9
je 0x4c3308
jmp case.default.0x4c34ea
mov eax, dword [ebp - 4]
mov edx, 0x4c36b8
call fcn.00404f20
je 0x4c32bb
mov eax, dword [ebp - 4]
mov edx, 0x4c36c4
call fcn.00404f20
jne 0x4c32c2
mov bl, 2
jmp case.default.0x4c34ea
mov bl, 1
jmp case.default.0x4c34ea
cmp dword [0x547bdc], 0x4005a
jne 0x4c32dc
mov bl, 5
jmp case.default.0x4c34ea
mov eax, dword [ebp - 4]
mov edx, 0x4c36d0
call fcn.00404f20
je 0x4c32fa
mov eax, dword [ebp - 4]
mov edx, 0x4c36b8
call fcn.00404f20
jne 0x4c3301
mov bl, 4
jmp case.default.0x4c34ea
mov bl, 3
jmp case.default.0x4c34ea
mov bl, 5
jmp case.default.0x4c34ea
mov eax, dword [0x542314]
mov eax, dword [eax]
add eax, 0xfffffffd
cmp eax, 7
ja case.default.0x4c34ea
jmp dword [eax*4 + 0x4c3329]
mov eax, dword [0x54284c]
mov eax, dword [eax]
dec eax
je 0x4c3362
sub eax, 4
je 0x4c3369
sub eax, 0x2e
je 0x4c3370
jmp case.default.0x4c34ea
mov bl, 6
jmp case.default.0x4c34ea
mov bl, 7
jmp case.default.0x4c34ea
mov bl, 8
jmp case.default.0x4c34ea
mov bl, 9
jmp case.default.0x4c34ea
mov eax, dword [0x54284c]
mov eax, dword [eax]
sub eax, 1
jb 0x4c3394
je 0x4c339b
dec eax
je 0x4c33a2
jmp case.default.0x4c34ea
mov bl, 0xa
jmp case.default.0x4c34ea
mov bl, 0xb
jmp case.default.0x4c34ea
mov dword [ebp - 0xc8], 0x9c
xor eax, eax
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x2c]
call fcn.004c3a6c
push 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x4c33cb
mov bl, 0xe
jmp case.default.0x4c34ea
cmp word [ebp - 0x2c], 0
je 0x4c33ef
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c33ef
cmp byte [ebp - 0x2e], 1
jne 0x4c33ef
mov bl, 0xd
jmp case.default.0x4c34ea
mov bl, 0xc
jmp case.default.0x4c34ea
mov eax, dword [0x54284c]
cmp dword [eax], 2
jne 0x4c34d7
push 0
lea eax, [ebp - 8]
push eax
mov ecx, 0x4c36dc
mov edx, 0x4c36f0
mov eax, 0x80000002
call fcn.004c2d88
lea edx, [ebp - 0xcc]
mov eax, dword [0x542794]
call fcn.004071ac
mov eax, dword [ebp - 0xcc]
mov edx, dword [ebp - 8]
call fcn.00405118
dec eax
je 0x4c3460
lea edx, [ebp - 0xd0]
mov eax, dword [0x542858]
call fcn.004071ac
mov eax, dword [ebp - 0xd0]
mov edx, dword [ebp - 8]
call fcn.00405118
dec eax
jne 0x4c3467
mov esi, 3
jmp 0x4c34df
lea edx, [ebp - 0xd4]
mov eax, dword [0x542a6c]
call fcn.004071ac
mov eax, dword [ebp - 0xd4]
mov edx, dword [ebp - 8]
call fcn.00405118
dec eax
je 0x4c34a9
lea edx, [ebp - 0xd8]
mov eax, dword [0x542ad8]
call fcn.004071ac
mov eax, dword [ebp - 0xd8]
mov edx, dword [ebp - 8]
call fcn.00405118
dec eax
jne 0x4c34b0
mov esi, 2
jmp 0x4c34df
call fcn.004c3740
mov edi, eax
cmp edi, 6
jne 0x4c34c3
mov esi, 4
jmp 0x4c34df
cmp edi, 0xa
jne 0x4c34cd
or esi, 0xffffffff
jmp 0x4c34df
mov esi, dword [0x54284c]
mov esi, dword [esi]
jmp 0x4c34df
mov esi, dword [0x54284c]
mov esi, dword [esi]
mov eax, esi
cmp eax, 4
ja case.default.0x4c34ea
jmp dword [eax*4 + 0x4c34f1]
mov dword [ebp - 0xc8], 0x9c
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c352c
cmp byte [ebp - 0x2e], 1
jne 0x4c352c
mov bl, 0xf
jmp case.default.0x4c34ea
mov bl, 0x10
jmp case.default.0x4c34ea
mov dword [ebp - 0xc8], 0x9c
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c355a
cmp byte [ebp - 0x2e], 1
jne 0x4c355a
mov bl, 0x11
jmp case.default.0x4c34ea
mov bl, 0x12
jmp case.default.0x4c34ea
mov dword [ebp - 0xc8], 0x9c
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c3585
cmp byte [ebp - 0x2e], 1
jne 0x4c3585
mov bl, 0x13
jmp case.default.0x4c34ea
mov bl, 0x15
jmp case.default.0x4c34ea
mov dword [ebp - 0xc8], 0x9c
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c35ad
cmp byte [ebp - 0x2e], 1
jne 0x4c35ad
mov bl, 0x16
jmp case.default.0x4c34ea
mov bl, 0x18
jmp case.default.0x4c34ea
mov dword [ebp - 0xc8], 0x9c
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c35d5
cmp byte [ebp - 0x2e], 1
jne 0x4c35d5
mov bl, 0x19
jmp case.default.0x4c34ea
mov bl, 0x1a
jmp case.default.0x4c34ea
mov edi, dword [0x542314]
mov edi, dword [edi]
mov esi, dword [0x54284c]
mov esi, dword [esi]
cmp edi, 0xa
jl 0x4c3674
sub edi, 0xa
jne 0x4c3674
cmp esi, 0xffffffff
jne 0x4c3603
call fcn.004c38d4
mov esi, eax
sub esi, 1
jae 0x4c3674
mov dword [ebp - 0xc8], 0x9c
lea eax, [ebp - 0xc8]
push eax
call sub.kernel32.dll_GetVersionExA_1
test eax, eax
je 0x4c362c
cmp byte [ebp - 0x2e], 1
jne 0x4c362c
mov bl, 0x19
jmp 0x4c3674
push 0x4c3728
lea eax, [ebp - 0xdc]
push eax
mov ecx, 0x4c3734
mov edx, 0x4c36f0
mov eax, 0x80000002
call fcn.004c2d88
mov eax, dword [ebp - 0xdc]
or edx, 0xffffffff
call fcn.0040ba10
sub eax, 0x647
je 0x4c366a
sub eax, 0xca
je 0x4c366e
jmp 0x4c3672
mov bl, 0x1a
jmp 0x4c3674
mov bl, 0x1b
jmp 0x4c3674
mov bl, 0x1c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c36a6
lea eax, [ebp - 0xdc]
mov edx, 5
call fcn.00404b38
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404b38
ret