Function at 0x40cb30
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4a0
mov eax, dword [0x42d120]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov esi, ecx
xor edi, edi
cmp dword [esi + 0xc4], edi
je 0x40ce6e
movzx eax, word [esi + 0xa0]
push ebx
push eax
call fcn.0040caf0
movzx ecx, byte [esi + 0x9a]
mov edx, dword [esi + 0x10]
push eax
mov eax, dword [esi + 8]
push ecx
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
lea edx, [ebp - 0x404]
push str.Version:__i._i__Platform:__i___Product_Type:__i___IsIA64__:__i___Proc_Arch:__i
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov edx, dword [esi + 4]
add esp, 0x20
lea ebx, [edi + 2]
cmp edx, 4
jne 0x40cbae
cmp dword [esi + 8], edi
jne 0x40cbae
mov ecx, 1
cmp dword [esi + 0x10], ecx
jne 0x40cbb3
mov edi, ecx
jmp 0x40cdd8
mov ecx, 1
cmp edx, 4
jne 0x40cbe2
cmp dword [esi + 8], 0xa
jne 0x40cbca
cmp dword [esi + 0x10], ecx
jne 0x40cbca
mov edi, ebx
jmp 0x40cdd8
cmp edx, 4
jne 0x40cbe2
cmp dword [esi + 8], 0x5a
jne 0x40cbe2
cmp dword [esi + 0x10], ecx
jne 0x40cbe2
lea edi, [edx - 1]
jmp 0x40cdd8
cmp edx, 3
jne 0x40cbfa
cmp dword [esi + 8], 0x33
jne 0x40cbfa
cmp dword [esi + 0x10], ebx
jne 0x40cbfa
lea edi, [edx + 1]
jmp 0x40cdd8
cmp edx, 4
jne 0x40cc11
cmp dword [esi + 8], edi
jne 0x40cc11
cmp dword [esi + 0x10], ebx
jne 0x40cc11
lea edi, [edx + 1]
jmp 0x40cdd8
cmp edx, 5
jne 0x40ccc4
cmp dword [esi + 8], edi
jne 0x40cc2c
cmp dword [esi + 0x10], ebx
jne 0x40cc2c
lea edi, [edx + 1]
jmp 0x40cdd8
cmp edx, 5
jne 0x40ccc4
cmp dword [esi + 8], ecx
jne 0x40cc4b
cmp dword [esi + 0x10], ebx
jne 0x40cdd8
lea edi, [edx + 2]
jmp 0x40cdd8
cmp edx, 5
jne 0x40ccc4
cmp dword [esi + 8], ebx
jne 0x40ccc4
cmp dword [esi + 0x10], ebx
jne 0x40ccc4
mov al, byte [esi + 0x9a]
cmp al, 1
jne 0x40cc8e
mov ecx, esi
call fcn.0040cb10
test eax, eax
je 0x40cc77
lea edi, [edx + 4]
jmp 0x40cdd8
call fcn.0040caf0
test eax, eax
je 0x40cdd8
mov edi, 8
jmp 0x40cdd8
cmp al, 3
je 0x40cc9a
cmp al, bl
jne 0x40cdd8
mov ecx, esi
call fcn.0040cb10
test eax, eax
je 0x40ccaf
mov edi, 0xc
jmp 0x40cdd8
call fcn.0040caf0
mov edi, eax
neg edi
sbb edi, edi
neg edi
add edi, 0xa
jmp 0x40cdd8
cmp edx, 6
jne 0x40ce5b
cmp dword [esi + 8], edi
jne 0x40ccf2
cmp byte [esi + 0x9a], 1
jne 0x40ccf2
mov ecx, esi
call fcn.0040cb10
mov edi, eax
neg edi
sbb edi, edi
and edi, ebx
add edi, 0xd
jmp 0x40cdd8
cmp edx, 6
jne 0x40ce5b
cmp dword [esi + 8], edi
jne 0x40cd38
mov al, byte [esi + 0x9a]
cmp al, 3
je 0x40cd0e
cmp al, bl
jne 0x40cd38
mov ecx, esi
call fcn.0040cb10
test eax, eax
je 0x40cd23
mov edi, 0x11
jmp 0x40cdd8
call fcn.0040caf0
mov edi, eax
neg edi
sbb edi, edi
and edi, ebx
add edi, 0x10
jmp 0x40cdd8
cmp edx, 6
jne 0x40ce5b
cmp dword [esi + 8], ecx
jne 0x40cd71
cmp byte [esi + 0x9a], 1
jne 0x40cd71
mov ecx, esi
call fcn.0040cb10
test eax, eax
je 0x40cd5f
lea edi, [edx + 0xe]
jmp 0x40cdd8
call fcn.0040caf0
mov edi, eax
neg edi
sbb edi, edi
and edi, ebx
add edi, 0x13
jmp 0x40cdd8
cmp edx, 6
jne 0x40ce5b
cmp dword [esi + 8], ecx
jne 0x40cdaa
cmp byte [esi + 0x9a], 1
je 0x40cdaa
mov ecx, esi
call fcn.0040cb10
test eax, eax
je 0x40cd98
lea edi, [edx + 0x11]
jmp 0x40cdd8
call fcn.0040caf0
mov edi, eax
neg edi
sbb edi, edi
and edi, ebx
add edi, 0x16
jmp 0x40cdd8
cmp edx, 6
jne 0x40ce5b
cmp dword [esi + 8], ebx
jne 0x40cdd8
mov ecx, esi
call fcn.0040cb10
test eax, eax
je 0x40cdc8
lea edi, [edx + 0x14]
jmp 0x40cdd8
call fcn.0040caf0
mov edi, eax
neg edi
sbb edi, edi
and edi, ebx
add edi, 0x19
cmp edx, 6
jne 0x40ce5b
cmp dword [esi + 8], 0
jne 0x40ce5b
push 3
push ebx
push 0
mov dword [ebp - 0x498], ebx
mov ebx, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push 0
mov dword [ebp - 0x4a0], 0x9c
mov dword [ebp - 0x49c], edx
mov byte [ebp - 0x406], 1
call ebx
push 3
push 1
push edx
push eax
call ebx
push 3
push 0x80
push edx
push eax
call ebx
push edx
push eax
push 0x83
lea eax, [ebp - 0x4a0]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoA]
test eax, eax
je 0x40ce5b
mov ecx, esi
call fcn.0040cb10
neg eax
sbb eax, eax
pop ebx
neg eax
pop edi
add eax, 0x19
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040ea2d
mov esp, ebp
pop ebp
ret
pop ebx
mov eax, edi
pop edi
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0040ea2d
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
xor ecx, ebp
pop esi
call fcn.0040ea2d
mov esp, ebp
pop ebp
ret