Function at 0x408658
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0xa4
mov eax, dword [0x438060]
push ebx
push esi
push edi
xor eax, ebp
push 0x26
mov dword [ebp + 0x74], eax
mov esi, ecx
pop ecx
xor eax, eax
lea edi, [ebp - 0x24]
rep stosd dword es:[edi], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], 0x9c
call edi
test eax, eax
mov dword [ebp - 0x2c], eax
jne 0x4086ab
lea eax, [ebp - 0x28]
push eax
mov dword [ebp - 0x28], 0x94
call edi
test eax, eax
je 0x4089e9
mov eax, dword [ebp - 0x18]
sub eax, 0
je 0x4089f6
dec eax
je 0x408993
dec eax
jne 0x4089e9
xor ebx, ebx
inc ebx
cmp dword [ebp - 0x24], 6
jne 0x40880b
cmp dword [ebp - 0x20], 2
jne 0x408717
cmp byte [ebp + 0x72], bl
jne 0x4086fa
call fcn.0042d323
test al, al
je 0x4086f0
push str.Windows_8_x64
jmp 0x4089fb
push str.Windows_8_x86
jmp 0x4089fb
call fcn.0042d323
test al, al
je 0x40870d
push str.Windows_Server_2012_x64
jmp 0x4089fb
cmp dword [ebp - 0x24], 6
jne 0x40880b
cmp dword [ebp - 0x20], ebx
jne 0x40878a
cmp byte [ebp + 0x72], bl
jne 0x40875c
call fcn.0042d323
test al, al
movzx eax, word [ebp + 0x6c]
je 0x408745
dec eax
je 0x40873b
push str.Windows_7_x64
jmp 0x4089fb
push str.Windows_7_x64_Service_Pack_1
jmp 0x4089fb
dec eax
je 0x408752
push str.Windows_7_x86
jmp 0x4089fb
push str.Windows_7_x86_Service_Pack_1
jmp 0x4089fb
call fcn.0042d323
test al, al
je 0x408780
movzx eax, word [ebp + 0x6c]
dec eax
je 0x408776
push str.Windows_Server_2008_R2_x64
jmp 0x4089fb
push str.Windows_Server_2008_R2_x64_Service_Pack_1
jmp 0x4089fb
cmp dword [ebp - 0x24], 6
jne 0x40880b
cmp dword [ebp - 0x20], 0
jne 0x4089e9
cmp byte [ebp + 0x72], bl
jne 0x4087ee
call fcn.0042d323
test al, al
movzx eax, word [ebp + 0x6c]
je 0x4087ca
dec eax
je 0x4087c0
dec eax
je 0x4087b6
push str.Windows_Vista_x64
jmp 0x4089fb
push str.Windows_Vista_x64_Service_Pack_2
jmp 0x4089fb
push str.Windows_Vista_x64_Service_Pack_1
jmp 0x4089fb
dec eax
je 0x4087e4
dec eax
je 0x4087da
push str.Windows_Vista_x86
jmp 0x4089fb
push str.Windows_Vista_x86_Service_Pack_2
jmp 0x4089fb
push str.Windows_Vista_x86_Service_Pack_1
jmp 0x4089fb
call fcn.0042d323
test al, al
je 0x408801
push str.Windows_Server_2008_x64
jmp 0x4089fb
push str.Windows_Server_2008_x86
jmp 0x4089fb
cmp dword [ebp - 0x24], 5
jne 0x408933
cmp dword [ebp - 0x20], 2
jne 0x4088a1
cmp byte [ebp + 0x72], bl
jne 0x40884c
movzx eax, word [ebp + 0x6c]
dec eax
je 0x408842
dec eax
je 0x408838
push str.Windows_XP_x64
jmp 0x4089fb
push str.Windows_XP_x64_Service_Pack_2
jmp 0x4089fb
push str.Windows_XP_x64_Service_Pack_1
jmp 0x4089fb
call fcn.0042d323
test al, al
movzx eax, word [ebp + 0x6c]
je 0x40887d
dec eax
je 0x408873
dec eax
je 0x408869
push str.Windows_Server_2003_x64
jmp 0x4089fb
push str.Windows_Server_2003_x64_Service_Pack_2
jmp 0x4089fb
push str.Windows_Server_2003_x64_Service_Pack_1
jmp 0x4089fb
dec eax
je 0x408897
dec eax
je 0x40888d
push str.Windows_Server_2003_x86
jmp 0x4089fb
push str.Windows_Server_2003_x86_Service_Pack_2
jmp 0x4089fb
push str.Windows_Server_2003_x86_Service_Pack_1
jmp 0x4089fb
cmp dword [ebp - 0x20], ebx
jne 0x4088e1
cmp dword [ebp - 0x2c], 0
je 0x4088b9
movzx eax, word [ebp + 0x6c]
dec eax
je 0x4088d7
dec eax
je 0x4088cd
dec eax
je 0x4088c3
push str.Windows_XP_x86
jmp 0x4089fb
push str.Windows_XP_x86_Service_Pack_3
jmp 0x4089fb
push str.Windows_XP_x86_Service_Pack_2
jmp 0x4089fb
push str.Windows_XP_x86_Service_Pack_1
jmp 0x4089fb
cmp dword [ebp - 0x20], 0
jne 0x4089e9
cmp dword [ebp - 0x2c], 0
je 0x408901
movzx eax, word [ebp + 0x6c]
dec eax
je 0x408929
dec eax
je 0x40891f
dec eax
je 0x408915
dec eax
je 0x40890b
push str.Windows_2000
jmp 0x4089fb
push str.Windows_2000_Service_Pack_4
jmp 0x4089fb
push str.Windows_2000_Service_Pack_3
jmp 0x4089fb
push str.Windows_2000_Service_Pack_2
jmp 0x4089fb
push str.Windows_2000_Service_Pack_1
jmp 0x4089fb
cmp dword [ebp - 0x24], 4
ja 0x4089e9
cmp dword [ebp - 0x2c], 0
je 0x408959
movzx eax, word [ebp + 0x6c]
dec eax
je 0x40898c
dec eax
je 0x408985
dec eax
je 0x40897e
dec eax
je 0x408977
dec eax
je 0x40896d
dec eax
je 0x408963
push str.Windows_NT_4.0
jmp 0x4089fb
push str.Windows_NT_4.0_Service_Pack_6
jmp 0x4089fb
push str.Windows_NT_4.0_Service_Pack_5
jmp 0x4089fb
push str.Windows_NT_4.0_Service_Pack_4
jmp 0x4089fb
push str.Windows_NT_4.0_Service_Pack_3
jmp 0x4089fb
push str.Windows_NT_4.0_Service_Pack_2
jmp 0x4089fb
push str.Windows_NT_4.0_Service_Pack_1
jmp 0x4089fb
cmp dword [ebp - 0x24], 4
jne 0x4089e9
cmp dword [ebp - 0x20], 0
jne 0x4089bc
cmp dword [ebp - 0x1c], 0x3b6
jbe 0x4089af
push str.Windows_95_OSR
jmp 0x4089fb
cmp byte [ebp - 0x13], 0x43
jne 0x4089f6
push str.Windows_95_OSR2.5
jmp 0x4089fb
cmp dword [ebp - 0x20], 0xa
jne 0x4089dc
cmp byte [ebp - 0x13], 0x41
je 0x4089d5
cmp byte [ebp - 0x13], 0x42
je 0x4089d5
push str.Windows_98
jmp 0x4089fb
push str.Windows_98_SE
jmp 0x4089fb
cmp dword [ebp - 0x20], 0x5a
jne 0x4089e9
push str.Windows_Millennium
jmp 0x4089fb
push dword [0x43825c]
call fcn.004015d9
jmp 0x408a00
push str.Windows_95
call fcn.00404463
mov ecx, dword [ebp + 0x74]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0042e08a
add ebp, 0x78
leave
ret