Function at 0x423936
Capabilities:
Check os version
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
push esi
push edi
mov esi, 0x94
xor edi, edi
push esi
lea eax, [ebp - 0xb4]
push edi
mov dword [ebp - 0x20], ecx
push eax
call fcn.00427c50
add esp, 0xc
lea eax, [ebp - 0xb4]
mov dword [ebp - 0xb4], esi
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x42397e
inc dword [0x482640]
jmp 0x423d34
push 0x482dec
lea ecx, [ebp - 0xc]
mov dword [ebp - 0x10], edi
call fcn.0041eb84
push 9
lea ecx, [ebp - 0xc]
call fcn.0041ed24
cmp dword [ebp - 0xa4], edi
mov esi, str._SP_d
jne 0x4239b8
push edi
push str.Windows_32s
lea ecx, [ebp - 0xc]
call fcn.0041ed73
jmp 0x423b29
cmp dword [ebp - 0xa4], 1
jne 0x423a26
cmp dword [ebp - 0xac], 0x5a
je 0x4239ea
cmp dword [ebp - 0xb0], 4
jne 0x4239ea
cmp dword [ebp - 0xac], edi
push edi
jne 0x4239e3
push str.Windows_95
jmp 0x4239f0
push str.Windows_98
jmp 0x4239f0
push edi
push str.Windows_ME
lea ecx, [ebp - 0xc]
call fcn.0041ed73
mov eax, dword [ebp - 0xa8]
and eax, 0xffff
push eax
lea eax, [ebp - 0xc]
push dword [ebp - 0xac]
push dword [ebp - 0xb0]
push str.___d._d._d_
push eax
call fcn.0041f193
add esp, 0x14
jmp 0x423b29
cmp dword [ebp - 0xa4], 2
jne 0x423b29
cmp dword [ebp - 0xb0], 5
jne 0x423a6c
cmp dword [ebp - 0xac], edi
jne 0x423a4c
push edi
push str.Windows_2000
jmp 0x423a5b
cmp dword [ebp - 0xac], 1
push edi
jne 0x423a65
push str.Windows_XP
lea ecx, [ebp - 0xc]
call fcn.0041ed73
jmp 0x423aa9
push str.Windows_2003
jmp 0x423a5b
cmp dword [ebp - 0xb0], 6
jne 0x423a8c
cmp dword [ebp - 0xac], edi
push edi
jne 0x423a85
push str.Windows_Vista
jmp 0x423a5b
push str.Windows_7
jmp 0x423a5b
push dword [ebp - 0xac]
lea eax, [ebp - 0xc]
push dword [ebp - 0xb0]
push str.Windows_NT__d._d
push eax
call fcn.0041f193
add esp, 0x10
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], edi
push eax
mov eax, dword [0x483658]
or al, 1
mov dword [ebp - 0x1c], 4
push eax
push edi
push str.SystemCurrentControlSetControlWindows
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x423b29
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x14]
push eax
push edi
push edi
push str.CSDVersion
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x423b08
mov eax, dword [ebp - 0x14]
cmp ax, 0xff
mov dword [ebp - 0x10], eax
jbe 0x423b08
xor ecx, ecx
mov cl, ah
movzx ax, cl
mov word [ebp - 0x10], ax
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp word [ebp - 0x10], di
jbe 0x423b29
movzx eax, word [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push esi
push eax
call fcn.0041f193
add esp, 0xc
cmp dword [0x482490], edi
push edi
jne 0x423b39
push 0x431d00
jmp 0x423b3e
push str._tWin
lea ecx, [ebp - 0xc]
call fcn.0041ed73
mov al, byte [0x482490]
test al, 1
je 0x423b6a
cmp dword [0x482494], 0x3e8
push edi
jbe 0x423b63
push str.95__OSR2__
jmp 0x423b93
push 0x431ce8
jmp 0x423b93
test al, 2
je 0x423b89
cmp dword [0x482494], 0x8ad
push edi
jbe 0x423b82
push str.98_SE_
jmp 0x423b93
push 0x431cdc
jmp 0x423b93
test al, 8
je 0x423b9b
push edi
push 0x431cd8
lea ecx, [ebp - 0xc]
call fcn.0041ed73
test byte [0x482490], 4
je 0x423c48
mov eax, dword [0x482498]
cmp eax, 5
jne 0x423bd8
mov eax, dword [0x48249c]
cmp eax, edi
jne 0x423bcb
push edi
push str.2000
lea ecx, [ebp - 0xc]
call fcn.0041ed73
jmp 0x423c23
cmp eax, 1
jne 0x423c23
push edi
push 0x431ccc
jmp 0x423bc1
cmp eax, 6
jne 0x423bf4
cmp dword [0x48249c], edi
push edi
jne 0x423bed
push str.Vista
jmp 0x423bc1
push 0x431cc0
jmp 0x423bc1
push edi
push 0x431cbc
lea ecx, [ebp - 0xc]
call fcn.0041ed73
mov eax, dword [0x482498]
cmp eax, edi
je 0x423c23
push dword [0x48249c]
push eax
lea eax, [ebp - 0xc]
push str.__d._d
push eax
call fcn.0041f193
add esp, 0x10
mov eax, dword [0x4824a0]
cmp eax, edi
jbe 0x423c3a
push eax
lea eax, [ebp - 0xc]
push esi
push eax
call fcn.0041f193
add esp, 0xc
push edi
push 0x431cb0
lea ecx, [ebp - 0xc]
call fcn.0041ed73
mov eax, dword [ebp - 0xc]
push ebx
dec eax
push 1
push eax
lea ecx, [ebp - 0xc]
call fcn.0041f0d5
push 9
lea ecx, [ebp - 0xc]
call fcn.0041ed24
mov eax, dword [0x482490]
xor bl, bl
cmp dword [ebp - 0xa4], 1
jne 0x423cb3
mov edx, dword [ebp - 0xa8]
mov ecx, dword [0x482494]
test al, 1
je 0x423c92
mov esi, edx
and esi, 0xffff
cmp esi, ecx
jb 0x423c92
inc bl
xor edi, edi
test al, 2
je 0x423cfb
and edx, 0xffff
cmp edx, 0x7ce
jb 0x423cfb
cmp edx, ecx
jb 0x423cfb
cmp dword [ebp - 0xac], 1
jb 0x423cfb
mov bl, 1
cmp dword [ebp - 0xa4], 2
jne 0x423cfb
mov ecx, dword [0x482498]
mov edx, eax
and edx, 4
je 0x423cd1
cmp dword [ebp - 0xb0], ecx
ja 0x423cf9
cmp edx, edi
je 0x423cfb
cmp dword [ebp - 0xb0], ecx
jne 0x423cfb
mov ecx, dword [0x48249c]
cmp dword [ebp - 0xac], ecx
ja 0x423cf9
jne 0x423cfb
movzx ecx, word [ebp - 0x10]
cmp ecx, dword [0x4824a0]
jb 0x423cfb
mov bl, 1
cmp eax, edi
jne 0x423d01
mov bl, 1
test bl, bl
pop ebx
je 0x423d0d
push 0x482ccc
jmp 0x423d18
inc dword [0x482638]
push 0x482cb4
lea ecx, [ebp - 0xc]
call fcn.0041edf1
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0xc]
push eax
call fcn.004221e9
lea ecx, [ebp - 0xc]
call fcn.0041ebe6
pop edi
pop esi
leave
ret