Function at 0x4cde50
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x7a8
mov eax, dword [0x4f72bc]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x9c
lea eax, [ebp - 0x7a0]
push 0
push eax
mov byte [ebp - 0x204], 0
call fcn.004d29c0
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
add esp, 0xc
lea ecx, [ebp - 0x7a0]
push ecx
mov dword [ebp - 0x7a0], 0x9c
call esi
mov edi, eax
test edi, edi
jne 0x4cdeca
lea edx, [ebp - 0x7a0]
push edx
mov dword [ebp - 0x7a0], 0x94
call esi
test eax, eax
jne 0x4cdeca
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x790]
sub eax, 0
je 0x4ce656
dec eax
je 0x4ce4d9
dec eax
jne 0x4ce694
mov esi, 5
cmp dword [ebp - 0x79c], esi
jne 0x4cdf6d
cmp dword [ebp - 0x798], 2
jne 0x4cdf1f
push str.Windows_Server_2003_family_
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4cdf6d
cmp dword [ebp - 0x798], 1
jne 0x4cdf4a
push str.Windows_XP
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4cdf6d
cmp dword [ebp - 0x798], 0
jne 0x4cdf98
push str.Windows_2000
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], 4
ja 0x4cdf90
push str.Windows_NT
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4cdfb2
push str.Windows_XP
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
mov esi, 6
cmp dword [ebp - 0x79c], esi
jne 0x4cdfd9
push str.Windows_Vista
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], 7
jne 0x4ce009
cmp dword [ebp - 0x798], 3
jne 0x4ce08a
push str.Windows_XP
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4ce08a
cmp dword [ebp - 0x798], 1
jne 0x4ce03c
push str.Windows_7
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4ce08a
cmp dword [ebp - 0x798], 2
jne 0x4ce067
push str.Windows_8
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4ce08a
cmp dword [ebp - 0x798], 3
jne 0x4ce08a
push str.Windows_8.1
mov edx, 0x7ffffffe
mov eax, 0x200
lea ecx, [ebp - 0x204]
call fcn.004010b0
movzx eax, word [ebp - 0x70c]
dec eax
mov edx, 0x200
je 0x4ce0f6
dec eax
je 0x4ce0d6
dec eax
lea eax, [ebp - 0x204]
je 0x4ce0c0
cmp byte [eax], 0
je 0x4ce0b3
inc eax
dec edx
jne 0x4ce0a5
jmp 0x4ce133
test edx, edx
je 0x4ce133
push 0x4e6f20
jmp 0x4ce114
cmp byte [eax], 0
je 0x4ce0cb
inc eax
dec edx
jne 0x4ce0c0
jmp 0x4ce133
test edx, edx
je 0x4ce133
push str.SP3
jmp 0x4ce114
lea eax, [ebp - 0x204]
lea esp, [esp]
cmp byte [eax], 0
je 0x4ce0eb
inc eax
dec edx
jne 0x4ce0e0
jmp 0x4ce133
test edx, edx
je 0x4ce133
push str.SP2
jmp 0x4ce114
lea eax, [ebp - 0x204]
lea esp, [esp]
cmp byte [eax], 0
je 0x4ce10b
inc eax
dec edx
jne 0x4ce100
jmp 0x4ce133
test edx, edx
je 0x4ce133
push str.SP1
mov ecx, 0x200
sub ecx, edx
mov eax, 0x200
sub eax, ecx
mov edx, 0x7fffffff
lea ecx, [ebp + ecx - 0x204]
call fcn.004010b0
push 0x56
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x4ce183
mov edx, 0x200
lea eax, [ebp - 0x204]
lea ebx, [ebx]
cmp byte [eax], 0
je 0x4ce15b
inc eax
dec edx
jne 0x4ce150
jmp 0x4ce183
test edx, edx
je 0x4ce183
mov ecx, 0x200
sub ecx, edx
mov eax, 0x200
sub eax, ecx
push str.Tablet_PC_Edition
lea ecx, [ebp + ecx - 0x204]
mov edx, 0x7fffffff
call fcn.004010b0
movzx eax, byte [ebp - 0x706]
mov ecx, dword [ebp - 0x794]
push eax
mov eax, dword [ebp - 0x798]
push ecx
mov ecx, dword [ebp - 0x79c]
lea edx, [ebp - 0x78c]
push edx
push eax
push ecx
push str.Major___d__Minor__d___CSD_s___Build_d_Product_Type__d
lea edx, [ebp - 0x704]
push 0x200
push edx
call fcn.00402ee0
add esp, 0x20
test edi, edi
je 0x4ce404
mov al, byte [ebp - 0x706]
cmp al, 1
jne 0x4ce241
cmp dword [ebp - 0x79c], 4
jne 0x4ce206
mov edx, 0x200
lea eax, [ebp - 0x204]
cmp byte [eax], 0
je 0x4ce1f4
inc eax
dec edx
jne 0x4ce1e6
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Workstation_4.0
jmp 0x4ce675
test dword [ebp - 0x708], 0x200
je 0x4ce694
mov edx, 0x200
lea eax, [ebp - 0x204]
cmp byte [eax], 0
je 0x4ce22f
inc eax
dec edx
jne 0x4ce221
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Home_Edition
jmp 0x4ce675
cmp al, 3
je 0x4ce24d
cmp al, 2
jne 0x4ce694
cmp dword [ebp - 0x79c], 5
jne 0x4ce3b0
mov eax, dword [ebp - 0x798]
cmp eax, 2
jne 0x4ce320
mov eax, dword [ebp - 0x708]
mov edx, 0x200
test al, al
jns 0x4ce2a0
lea eax, [ebp - 0x204]
mov edi, edi
cmp byte [eax], 0
je 0x4ce28e
inc eax
dec edx
jne 0x4ce280
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Datacenter_Edition
jmp 0x4ce675
test al, 2
je 0x4ce2d0
lea eax, [ebp - 0x204]
lea ebx, [ebx]
cmp byte [eax], 0
je 0x4ce2be
inc eax
dec edx
jne 0x4ce2b0
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Enterprise_Edition
jmp 0x4ce675
mov ecx, 0x400
cmp ax, cx
lea eax, [ebp - 0x204]
jne 0x4ce300
cmp byte [eax], 0
je 0x4ce2ee
inc eax
dec edx
jne 0x4ce2e0
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Web_Edition
jmp 0x4ce675
cmp byte [eax], 0
je 0x4ce30e
inc eax
dec edx
jne 0x4ce300
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Standard_Edition
jmp 0x4ce675
test eax, eax
jne 0x4ce3b0
mov al, byte [ebp - 0x708]
mov edx, 0x200
test al, al
jns 0x4ce360
lea eax, [ebp - 0x204]
lea ecx, [ecx]
cmp byte [eax], 0
je 0x4ce34e
inc eax
dec edx
jne 0x4ce340
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Datacenter_Server
jmp 0x4ce675
test al, 2
lea eax, [ebp - 0x204]
je 0x4ce390
lea ebx, [ebx]
cmp byte [eax], 0
je 0x4ce37e
inc eax
dec edx
jne 0x4ce370
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Advanced_Server
jmp 0x4ce675
cmp byte [eax], 0
je 0x4ce39e
inc eax
dec edx
jne 0x4ce390
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Server
jmp 0x4ce675
test byte [ebp - 0x708], 2
mov edx, 0x200
lea eax, [ebp - 0x204]
je 0x4ce3e4
cmp byte [eax], 0
je 0x4ce3d2
inc eax
dec edx
jne 0x4ce3c4
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Server_4.0__Enterprise_Edition
jmp 0x4ce675
cmp byte [eax], 0
je 0x4ce3f2
inc eax
dec edx
jne 0x4ce3e4
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Server_4.0
jmp 0x4ce675
lea edx, [ebp - 0x7a4]
push edx
push 1
push 0
push str.SYSTEMCurrentControlSetControlProductOptions
mov esi, 0x100
push CreateStatusWindowA
mov dword [ebp - 0x7a8], esi
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x4cdeb8
mov edx, dword [ebp - 0x7a4]
lea eax, [ebp - 0x7a8]
push eax
lea ecx, [ebp - 0x304]
push ecx
push 0
push 0
push str.ProductType
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x4cdeb8
cmp dword [ebp - 0x7a8], esi
ja 0x4cdeb8
mov eax, dword [ebp - 0x7a4]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x798]
mov edx, dword [ebp - 0x79c]
push ecx
push edx
push str._d._d
lea eax, [ebp - 0x504]
push 0x200
push eax
call fcn.00402ee0
add esp, 0x14
mov edx, 0x200
lea eax, [ebp - 0x204]
lea esp, [esp]
cmp byte [eax], 0
je 0x4ce4be
inc eax
dec edx
jne 0x4ce4b0
jmp 0x4ce694
test edx, edx
je 0x4ce694
mov ecx, 0x200
sub ecx, edx
lea edx, [ebp - 0x504]
push edx
jmp 0x4ce67c
mov esi, 4
cmp dword [ebp - 0x79c], esi
jne 0x4ce694
cmp dword [ebp - 0x798], 0
jne 0x4ce58f
mov eax, 0x200
lea ecx, [ebp - 0x204]
cmp byte [ecx], 0
je 0x4ce50d
inc ecx
dec eax
jne 0x4ce502
jmp 0x4ce535
test eax, eax
je 0x4ce535
mov ecx, 0x200
sub ecx, eax
mov eax, 0x200
sub eax, ecx
push str.Microsoft_Windows_95
lea ecx, [ebp + ecx - 0x204]
mov edx, 0x7fffffff
call fcn.004010b0
mov al, byte [ebp - 0x78b]
cmp al, 0x43
je 0x4ce543
cmp al, 0x42
jne 0x4ce583
mov eax, 0x200
lea ecx, [ebp - 0x204]
mov edi, edi
cmp byte [ecx], 0
je 0x4ce55b
inc ecx
dec eax
jne 0x4ce550
jmp 0x4ce583
test eax, eax
je 0x4ce583
mov ecx, 0x200
sub ecx, eax
mov eax, 0x200
sub eax, ecx
push str.OSR2
lea ecx, [ebp + ecx - 0x204]
mov edx, 0x7fffffff
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4ce694
cmp dword [ebp - 0x798], 0xa
jne 0x4ce62b
mov eax, 0x200
lea ecx, [ebp - 0x204]
cmp byte [ecx], 0
je 0x4ce5b2
inc ecx
dec eax
jne 0x4ce5a7
jmp 0x4ce5da
test eax, eax
je 0x4ce5da
mov ecx, 0x200
sub ecx, eax
mov eax, 0x200
sub eax, ecx
push str.Microsoft_Windows_98
lea ecx, [ebp + ecx - 0x204]
mov edx, 0x7fffffff
call fcn.004010b0
cmp byte [ebp - 0x78b], 0x41
jne 0x4ce623
mov eax, 0x200
lea ecx, [ebp - 0x204]
mov edi, edi
cmp byte [ecx], 0
je 0x4ce5fb
inc ecx
dec eax
jne 0x4ce5f0
jmp 0x4ce623
test eax, eax
je 0x4ce623
mov ecx, 0x200
sub ecx, eax
mov eax, 0x200
sub eax, ecx
push 0x4f43f0
lea ecx, [ebp + ecx - 0x204]
mov edx, 0x7fffffff
call fcn.004010b0
cmp dword [ebp - 0x79c], esi
jne 0x4ce694
cmp dword [ebp - 0x798], 0x5a
jne 0x4ce694
mov edx, 0x200
lea eax, [ebp - 0x204]
nop
cmp byte [eax], 0
je 0x4ce64b
inc eax
dec edx
jne 0x4ce640
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Microsoft_Windows_Millennium_Edition
jmp 0x4ce675
mov edx, 0x200
lea eax, [ebp - 0x204]
cmp byte [eax], 0
je 0x4ce66c
inc eax
dec edx
jne 0x4ce661
jmp 0x4ce694
test edx, edx
je 0x4ce694
push str.Microsoft_Win32s
mov ecx, 0x200
sub ecx, edx
mov eax, 0x200
sub eax, ecx
mov edx, 0x7fffffff
lea ecx, [ebp + ecx - 0x204]
call fcn.004010b0
lea eax, [ebp - 0x204]
push eax
mov edx, 0x7ffffffe
mov eax, 0x200
mov ecx, ebx
call fcn.004010b0
lea ecx, [ebp - 0x204]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.004cf2b6
mov esp, ebp
pop ebp
ret