Function at 0x430730
Capabilities:
Check os version

Disassembly:
sub esp, 0xa8
push ebx
push ebp
mov ebp, dword [esp + 0xb4]
test ebp, ebp
je 0x430bfb
mov ebx, dword [esp + 0xb8]
test ebx, ebx
je 0x430bfb
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x430bfb
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
push str.unknown_Windows_version
push ebp
call esi
xor eax, eax
mov ecx, 0x27
lea edi, [esp + 0x1c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x1c]
push eax
mov dword [ebx], 0
mov dword [esp + 0x20], 0x9c
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x4307aa
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xa8
ret
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0xc4]
and edi, 0xffff
push edi
push eax
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x28]
push ecx
push str._u._u._u
push edx
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esp + 0xdc]
add esp, 0x14
lea eax, [esp + 0x30]
push eax
push ecx
call esi
mov eax, dword [esp + 0x18]
cmp eax, 1
jne 0x43092d
cmp dword [esp + 0x14], 4
jne 0x430beb
mov eax, dword [esp + 0x10]
cmp eax, 0xa
jae 0x43088c
cmp edi, 0x3b6
jne 0x43083b
push str.Windows_95
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 1
mov eax, 1
pop ebx
add esp, 0xa8
ret
jbe 0x430863
cmp edi, 0x438
ja 0x43086b
push str.Windows_95_SP1
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 2
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp edi, 0x438
jbe 0x430889
push str.Windows_95_OSR2
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 3
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 0xa
jne 0x430906
cmp edi, 0x7ce
jne 0x4308b4
push str.Windows_98
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 4
mov eax, 1
pop ebx
add esp, 0xa8
ret
jbe 0x4308dc
cmp edi, 0x887
jae 0x4308e8
push str.Windows_98_SP1
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 5
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp edi, 0x887
jb 0x430beb
push str.Windows_98_SE
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 6
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 0x5a
jne 0x430beb
push str.Windows_ME
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 7
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 2
jne 0x430bd8
mov eax, dword [esp + 0x14]
cmp eax, 3
jne 0x430968
cmp dword [esp + 0x10], 0x33
jne 0x430beb
push str.Windows_NT_3.51
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x65
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 4
jne 0x430997
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x430beb
push str.Windows_NT_4
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x66
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 5
jne 0x430a0c
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x4309c2
push str.Windows_2000
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x67
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 1
jne 0x4309e5
push str.Windows_XP
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x68
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 2
jne 0x430beb
push str.Windows_Server_2003
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x69
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 6
jne 0x430b7c
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x430a70
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x430a46
push str.Windows_Vista
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6a
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x430a52
cmp al, 3
jne 0x430beb
push str.Windows_Server_2008
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6b
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 1
jne 0x430ac8
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x430a9e
push str.Windows_7
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6c
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x430aaa
cmp al, 3
jne 0x430beb
push str.Windows_Server_2008_R2
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6d
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 2
jne 0x430b20
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x430af6
push str.Windows_8
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6e
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x430b02
cmp al, 3
jne 0x430beb
push str.Windows_Server_2012
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x6f
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 3
jne 0x430beb
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x430b52
push str.Windows_8.1
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x70
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x430b5e
cmp al, 3
jne 0x430beb
push str.Windows_Server_2012_R2
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x71
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 0xa
jne 0x430beb
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x430beb
mov al, byte [esp + 0xb6]
cmp al, 1
jne 0x430bb2
push str.Windows_10
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x72
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp al, 2
je 0x430bba
cmp al, 3
jne 0x430beb
push str.Windows_Server_10
push ebp
call esi
pop edi
pop esi
pop ebp
mov dword [ebx], 0x73
mov eax, 1
pop ebx
add esp, 0xa8
ret
cmp eax, 3
jne 0x430beb
push str.Windows_CE
push ebp
call esi
mov dword [ebx], 0xc9
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xa8
ret
pop ebp
xor eax, eax
pop ebx
add esp, 0xa8
ret