Function at 0x4146d0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov eax, dword [0x4cc99c]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x12c], eax
test esi, esi
je 0x414a1a
test edi, edi
je 0x414a1a
test eax, eax
je 0x414a1a
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_lstrcpyW]
push str.unknown_Windows_version
push esi
call ebx
lea eax, [ebp - 0x118]
push eax
mov dword [edi], 0
mov dword [ebp - 0x118], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x414743
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
movzx edx, word [ebp - 0x10c]
mov ecx, dword [ebp - 0x108]
mov eax, dword [ebp - 0x110]
push edx
push eax
mov dword [ebp - 0x128], ecx
mov ecx, dword [ebp - 0x114]
push ecx
mov dword [ebp - 0x124], edx
mov edx, dword [ebp - 0x12c]
push str._u._u._u
push edx
mov dword [ebp - 0x11c], eax
mov dword [ebp - 0x120], ecx
call dword [sym.imp.USER32.dll_wsprintfW]
mov eax, dword [ebp - 0x128]
add esp, 0x14
cmp eax, 1
jne 0x4148f9
cmp dword [ebp - 0x120], 4
jne 0x414a06
mov ecx, dword [ebp - 0x11c]
mov eax, dword [ebp - 0x124]
cmp ecx, 0xa
jae 0x414842
cmp eax, 0x3b6
jne 0x4147e6
push str.Windows_95
push esi
call ebx
mov dword [edi], 1
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
lea edx, [eax - 0x3b7]
cmp edx, 0x81
ja 0x414816
push str.Windows_95_SP1
push esi
call ebx
mov dword [edi], 2
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 0x438
jbe 0x41483f
push str.Windows_95_OSR2
push esi
call ebx
mov dword [edi], 3
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp ecx, 0xa
jne 0x4148ce
cmp eax, 0x7ce
jne 0x414871
push str.Windows_98
push esi
call ebx
mov dword [edi], 4
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
lea ecx, [eax - 0x7cf]
cmp ecx, 0xb7
ja 0x4148a1
push str.Windows_98_SP1
push esi
call ebx
mov dword [edi], 5
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 0x887
jb 0x414a06
push str.Windows_98_SE
push esi
call ebx
mov dword [edi], 6
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp ecx, 0x5a
jne 0x414a06
push str.Windows_ME
push esi
call ebx
mov dword [edi], 7
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x4149f3
mov eax, dword [ebp - 0x120]
cmp eax, 3
jne 0x41493c
cmp dword [ebp - 0x11c], 0x33
jne 0x414a06
push str.Windows_NT_3.51
push esi
call ebx
mov dword [edi], 0x65
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 4
jne 0x414970
cmp dword [ebp - 0x11c], 0
jne 0x414a06
push str.Windows_NT_4
push esi
call ebx
mov dword [edi], 0x66
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 5
jne 0x414a06
mov eax, dword [ebp - 0x11c]
test eax, eax
jne 0x4149a5
push str.Windows_2000
push esi
call ebx
mov dword [edi], 0x67
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 1
jne 0x4149cc
push str.Windows_XP
push esi
call ebx
mov dword [edi], 0x68
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 2
jne 0x414a06
push str.Windows_2003_Server
push esi
call ebx
mov dword [edi], 0x69
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
cmp eax, 3
jne 0x414a06
push str.Windows_CE
push esi
call ebx
mov dword [edi], 0xc9
mov eax, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00497792
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor eax, eax
call fcn.00497792
mov esp, ebp
pop ebp
ret