Function at 0x41028f
Capabilities:
Check os version

Disassembly:
push ebp
lea ebp, [esp - 0x78]
sub esp, 0x120
mov eax, dword [0x458090]
xor eax, ebp
mov dword [ebp + 0x74], eax
push ebx
push edi
push 0x118
lea eax, [ebp - 0xa4]
push 0
push eax
call fcn.004315c0
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
add esp, 0xc
lea eax, [ebp - 0xa8]
push eax
mov dword [ebp - 0xa8], 0x11c
call edi
mov ebx, eax
test ebx, ebx
jne 0x4102fc
lea eax, [ebp - 0xa8]
push eax
mov dword [ebp - 0xa8], 0x114
call edi
test eax, eax
jne 0x4102fc
push 0x44bcd0
jmp 0x4106d7
mov eax, dword [ebp - 0x98]
xor edx, edx
sub eax, edx
je 0x4106d2
dec eax
mov ecx, dword [ebp - 0xa4]
je 0x410655
dec eax
jne 0x4102f2
cmp ecx, 6
jne 0x41049a
mov eax, dword [ebp - 0xa0]
cmp eax, 3
jne 0x410366
cmp byte [ebp + 0x72], 1
jne 0x410354
mov eax, esi
cmp byte [0x45b009], dl
je 0x41034a
push str.Windows_8.1_x64
jmp 0x4106d9
push str.Windows_8.1_x86
jmp 0x4106d9
cmp byte [0x45b009], dl
je 0x4102f2
push str.Windows_Server_2012_R2_x64
jmp 0x4106d7
cmp eax, 2
jne 0x4103a5
cmp byte [ebp + 0x72], 1
jne 0x41038f
mov eax, esi
cmp byte [0x45b009], dl
je 0x410385
push str.Windows_8_x64
jmp 0x4106d9
push str.Windows_8_x86
jmp 0x4106d9
cmp byte [0x45b009], dl
je 0x4102f2
push str.Windows_Server_2012_x64
jmp 0x4106d7
cmp eax, 1
jne 0x410416
cmp byte [ebp + 0x72], al
jne 0x4103ed
movzx eax, word [ebp + 0x6c]
cmp byte [0x45b009], dl
je 0x4103d4
dec eax
mov eax, esi
je 0x4103ca
push str.Windows_7_x64
jmp 0x4106d9
push str.Windows_7_x64_Service_Pack_1
jmp 0x4106d9
dec eax
mov eax, esi
je 0x4103e3
push str.Windows_7_x86
jmp 0x4106d9
push str.Windows_7_x86_Service_Pack_1
jmp 0x4106d9
cmp byte [0x45b009], dl
je 0x4102f2
movzx eax, word [ebp + 0x6c]
dec eax
mov eax, esi
je 0x41040c
push str.Windows_Server_2008_R2_x64
jmp 0x4106d9
push str.Windows_Server_2008_R2_x64_Service_Pack_1
jmp 0x4106d9
cmp eax, edx
jne 0x4102f2
cmp byte [ebp + 0x72], 1
jne 0x41047c
movzx eax, word [ebp + 0x6c]
cmp byte [0x45b009], dl
je 0x410456
dec eax
je 0x41044c
dec eax
mov eax, esi
je 0x410442
push str.Windows_Vista_x64
jmp 0x4106d9
push str.Windows_Vista_x64_Service_Pack_2
jmp 0x4106d9
push str.Windows_Vista_x64_Service_Pack_1
jmp 0x4106d7
dec eax
je 0x410472
dec eax
mov eax, esi
je 0x410468
push str.Windows_Vista_x86
jmp 0x4106d9
push str.Windows_Vista_x86_Service_Pack_2
jmp 0x4106d9
push str.Windows_Vista_x86_Service_Pack_1
jmp 0x4106d7
mov eax, esi
cmp byte [0x45b009], dl
je 0x410490
push str.Windows_Server_2008_x64
jmp 0x4106d9
push str.Windows_Server_2008_x86
jmp 0x4106d9
cmp ecx, 5
jne 0x4105e0
cmp dword [ebp - 0xa0], 2
jne 0x410534
cmp byte [ebp + 0x72], 1
movzx eax, word [ebp + 0x6c]
jne 0x4104e0
dec eax
je 0x4104d6
dec eax
mov eax, esi
je 0x4104cc
push str.Windows_XP_x64
jmp 0x4106d9
push str.Windows_XP_x64_Service_Pack_2
jmp 0x4106d9
push str.Windows_XP_x64_Service_Pack_1
jmp 0x4106d7
cmp byte [0x45b009], dl
je 0x41050e
dec eax
je 0x410504
dec eax
mov eax, esi
je 0x4104fa
push str.Windows_Server_2003_x64
jmp 0x4106d9
push str.Windows_Server_2003_x64_Service_Pack_2
jmp 0x4106d9
push str.Windows_Server_2003_x64_Service_Pack_1
jmp 0x4106d7
dec eax
je 0x41052a
dec eax
mov eax, esi
je 0x410520
push str.Windows_Server_2003_x86
jmp 0x4106d9
push str.Windows_Server_2003_x86_Service_Pack_2
jmp 0x4106d9
push str.Windows_Server_2003_x86_Service_Pack_1
jmp 0x4106d7
cmp dword [ebp - 0xa0], 1
jne 0x410582
cmp ebx, edx
jne 0x41054b
push str.Windows_XP_x86
jmp 0x4106d7
movzx eax, word [ebp + 0x6c]
dec eax
je 0x410578
dec eax
je 0x41056e
dec eax
mov eax, esi
je 0x410564
push str.Windows_XP_x86
jmp 0x4106d9
push str.Windows_XP_x86_Service_Pack_3
jmp 0x4106d9
push str.Windows_XP_x86_Service_Pack_2
jmp 0x4106d7
push str.Windows_XP_x86_Service_Pack_1
jmp 0x4106d7
cmp dword [ebp - 0xa0], edx
jne 0x4102f2
cmp ebx, edx
jne 0x41059c
push str.Windows_2000
jmp 0x4106d7
movzx eax, word [ebp + 0x6c]
dec eax
je 0x4105d6
dec eax
je 0x4105cc
dec eax
je 0x4105c2
dec eax
mov eax, esi
je 0x4105b8
push str.Windows_2000
jmp 0x4106d9
push str.Windows_2000_Service_Pack_4
jmp 0x4106d9
push str.Windows_2000_Service_Pack_3
jmp 0x4106d7
push str.Windows_2000_Service_Pack_2
jmp 0x4106d7
push str.Windows_2000_Service_Pack_1
jmp 0x4106d7
cmp ecx, 4
ja 0x4102f2
cmp ebx, edx
jne 0x4105f7
push str.Windows_NT_4.0
jmp 0x4106d7
movzx eax, word [ebp + 0x6c]
dec eax
je 0x41064b
dec eax
je 0x410641
dec eax
je 0x410637
dec eax
je 0x41062d
dec eax
je 0x410623
dec eax
mov eax, esi
je 0x410619
push str.Windows_NT_4.0
jmp 0x4106d9
push str.Windows_NT_4.0_Service_Pack_6
jmp 0x4106d9
push str.Windows_NT_4.0_Service_Pack_5
jmp 0x4106d7
push str.Windows_NT_4.0_Service_Pack_4
jmp 0x4106d7
push str.Windows_NT_4.0_Service_Pack_3
jmp 0x4106d7
push str.Windows_NT_4.0_Service_Pack_2
jmp 0x4106d7
push str.Windows_NT_4.0_Service_Pack_1
jmp 0x4106d7
cmp ecx, 4
jne 0x4102f2
cmp dword [ebp - 0xa0], edx
jne 0x410693
cmp dword [ebp - 0x9c], 0x3b6
jbe 0x410679
push str.Windows_95_OSR
jmp 0x4106d7
cmp word [ebp - 0x92], 0x43
mov eax, esi
jne 0x41068c
push str.Windows_95_OSR2.5
jmp 0x4106d9
push str.Windows_95
jmp 0x4106d9
cmp dword [ebp - 0xa0], 0xa
jne 0x4106be
cmp word [ebp - 0x92], 0x41
je 0x4106b7
cmp word [ebp - 0x92], 0x42
je 0x4106b7
push str.Windows_98
jmp 0x4106d7
push str.Windows_98_SE
jmp 0x4106d7
cmp dword [ebp - 0xa0], 0x5a
jne 0x4102f2
push str.Windows_Millennium
jmp 0x4106d7
push str.Windows_95
mov eax, esi
call fcn.004044e8
mov ecx, dword [ebp + 0x74]
pop edi
xor ecx, ebp
mov eax, esi
pop ebx
call fcn.0043159b
add ebp, 0x78
leave
ret