Function at 0x4134a0
Capabilities:
Check os version
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2f8
mov eax, dword [0x4785c0]
xor eax, ebp
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x2f0], ecx
xor eax, eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
push 0x9c
push 0
lea ecx, [ebp - 0xd8]
push ecx
call fcn.00446170
add esp, 0xc
mov dword [ebp - 0xd8], 0x9c
lea edx, [ebp - 0xd8]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x413513
xor al, al
jmp 0x413e9f
push 0x469058
push 0x46906c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
je 0x41353c
lea eax, [ebp - 0x30]
push eax
call dword [ebp - 8]
jmp 0x413546
lea ecx, [ebp - 0x30]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx edx, word [ebp - 0x30]
cmp edx, 9
jne 0x413559
mov eax, dword [ebp - 0x2f0]
mov byte [eax + 0xc], 1
push 0x46907c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406a80
mov ecx, dword [ebp - 0xc8]
mov dword [ebp - 0x2f4], ecx
cmp dword [ebp - 0x2f4], 0
je 0x41359c
cmp dword [ebp - 0x2f4], 1
je 0x4135c1
cmp dword [ebp - 0x2f4], 2
je 0x413730
jmp 0x413e6a
push str.Win32s
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov edx, dword [ebp - 0x2f0]
mov dword [edx + 8], 1
jmp 0x413e9d
cmp dword [ebp - 0xd4], 4
jne 0x41362b
cmp dword [ebp - 0xd0], 0
jne 0x41362b
push str.Windows_95
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 3
movsx ecx, byte [ebp - 0xc3]
cmp ecx, 0x43
je 0x41360b
movsx edx, byte [ebp - 0xc3]
cmp edx, 0x42
jne 0x41362b
push str._OSR2
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 4
cmp dword [ebp - 0xd4], 4
jne 0x413689
cmp dword [ebp - 0xd0], 0xa
jne 0x413689
push str.Windows_98
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 5
movsx edx, byte [ebp - 0xc3]
cmp edx, 0x41
jne 0x413689
push 0x4690b0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 6
cmp dword [ebp - 0xd4], 4
jne 0x4136bb
cmp dword [ebp - 0xd0], 0x5a
jne 0x4136bb
push str.Windows_Me
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 7
mov dx, word [0x4690c0]
mov word [ebp - 0x1e0], dx
push 0x102
push 0
lea eax, [ebp - 0x1de]
push eax
call fcn.00446170
add esp, 0xc
lea ecx, [ebp - 0xc4]
push ecx
mov edx, dword [ebp - 0xcc]
and edx, 0xffff
push edx
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xd4]
push ecx
push str.Version__d._d_Build__d__s
lea edx, [ebp - 0x1e0]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea eax, [ebp - 0x1e0]
push eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x30
call fcn.00406a80
jmp 0x413e9d
cmp dword [ebp - 0xd4], 4
ja 0x413740
xor al, al
jmp 0x413e9f
cmp dword [ebp - 0xd4], 6
ja 0x41375b
cmp dword [ebp - 0xd4], 6
jne 0x413782
cmp dword [ebp - 0xd0], 2
jbe 0x413782
push str.Unknown_Windows_version__but_above_Windows_8
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406a80
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 0xe
mov al, 1
jmp 0x413e9f
cmp dword [ebp - 0xd4], 6
jne case.0x413901.4
cmp dword [ebp - 0xd0], 0
jne 0x4137e3
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x4137c3
push 0x469110
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 0xb
jmp 0x4137e3
push 0x469120
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 0xc
cmp dword [ebp - 0xd0], 1
jne 0x413837
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x413817
push 0x469138
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 0xd
jmp 0x413837
push str.Windows_Server_2008_R2
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 0xc
cmp dword [ebp - 0xd0], 2
jne 0x41388b
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x41386b
push str.Windows_8
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 0xe
jmp 0x41388b
push str.Windows_Server_8
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 0xf
push 0x46917c
push 0x46918c
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x2ec], eax
lea edx, [ebp - 4]
push edx
push 0
push 0
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xd4]
push ecx
call dword [ebp - 0x2ec]
test eax, eax
jne 0x4138cf
xor al, al
jmp 0x413e9f
mov edx, dword [ebp - 4]
mov dword [ebp - 0x2f8], edx
mov eax, dword [ebp - 0x2f8]
sub eax, 1
mov dword [ebp - 0x2f8], eax
cmp dword [ebp - 0x2f8], 0x2f
ja case.0x413901.4
mov ecx, dword [ebp - 0x2f8]
movzx edx, byte [ecx + 0x413efc]
jmp dword [edx*4 + 0x413eb0]
push 0x46919c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4691b0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4691c0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4691d8
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4691ec
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469200
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469214
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469224
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x46923c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469250
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469278
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x46928c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4692b4
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4692e4
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x4692fc
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469324
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469338
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp case.0x413901.4
push 0x469360
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
cmp dword [ebp - 0xd4], 5
jne 0x413cea
cmp dword [ebp - 0xd0], 2
jne 0x413cea
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x413aec
push 0x469374
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov eax, dword [ebp - 0x2f0]
mov dword [eax + 8], 0xa
jmp 0x413b9e
movzx ecx, word [ebp - 0x40]
and ecx, 0x2000
je 0x413b1d
push 0x469390
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov edx, dword [ebp - 0x2f0]
mov dword [edx + 8], 0xa
jmp 0x413b9e
movzx eax, word [ebp - 0x40]
and eax, 0x8000
je 0x413b4a
push str.Windows_Home_Server
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 0xa
jmp 0x413b9e
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x413b7e
movzx eax, word [ebp - 0x30]
cmp eax, 9
jne 0x413b7e
push 0x4693c0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 9
jmp 0x413b9e
push 0x4693e4
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov edx, dword [ebp - 0x2f0]
mov dword [edx + 8], 0xa
movzx eax, byte [ebp - 0x3e]
cmp eax, 1
je 0x413cea
movzx ecx, word [ebp - 0x30]
cmp ecx, 6
jne 0x413bf6
movzx edx, word [ebp - 0x40]
and edx, 0x80
je 0x413bd5
push 0x4693fc
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413bf1
movzx eax, word [ebp - 0x40]
and eax, 2
je 0x413bf1
push 0x46942c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413cea
movzx ecx, word [ebp - 0x30]
cmp ecx, 9
jne 0x413c56
movzx edx, word [ebp - 0x40]
and edx, 0x80
je 0x413c20
push 0x46945c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413c51
movzx eax, word [ebp - 0x40]
and eax, 2
je 0x413c3e
push 0x469474
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413c51
push 0x46948c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413cea
movzx ecx, word [ebp - 0x40]
and ecx, 0x4000
je 0x413c77
push 0x4694a4
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413cea
movzx edx, word [ebp - 0x40]
and edx, 0x80
je 0x413c98
push 0x4694bc
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413cea
movzx eax, word [ebp - 0x40]
and eax, 2
je 0x413cb6
push 0x4694d0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413cea
movzx ecx, word [ebp - 0x40]
and ecx, 0x400
je 0x413cd7
push 0x4694e4
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413cea
push 0x4694f0
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
cmp dword [ebp - 0xd4], 5
jne 0x413d4f
cmp dword [ebp - 0xd0], 1
jne 0x413d4f
push 0x469504
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov edx, dword [ebp - 0x2f0]
mov dword [edx + 8], 9
movzx eax, word [ebp - 0x40]
and eax, 0x200
je 0x413d3c
push 0x469510
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413d4f
push 0x469520
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
cmp dword [ebp - 0xd4], 5
jne 0x413df8
cmp dword [ebp - 0xd0], 0
jne 0x413df8
push 0x469530
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 8
movzx edx, byte [ebp - 0x3e]
cmp edx, 1
jne 0x413da7
push 0x469540
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413df8
movzx eax, word [ebp - 0x40]
and eax, 0x80
je 0x413dc7
push 0x469550
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413df8
movzx ecx, word [ebp - 0x40]
and ecx, 2
je 0x413de5
push 0x469564
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
jmp 0x413df8
push 0x469574
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406aa0
mov dx, word [0x46957c]
mov word [ebp - 0x2e8], dx
push 0x102
push 0
lea eax, [ebp - 0x2e6]
push eax
call fcn.00446170
add esp, 0xc
mov ecx, dword [ebp - 0xcc]
and ecx, 0xffff
push ecx
lea edx, [ebp - 0xc4]
push edx
mov eax, dword [ebp - 0xd0]
push eax
mov ecx, dword [ebp - 0xd4]
push ecx
push str.Version__d._d__s__Build__d_
lea edx, [ebp - 0x2e8]
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
lea eax, [ebp - 0x2e8]
push eax
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x30
call fcn.00406a80
jmp 0x413e9d
push 0x46959c
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x14
call fcn.00406a80
push 0x4695a4
mov ecx, dword [ebp - 0x2f0]
add ecx, 0x30
call fcn.00406a80
mov ecx, dword [ebp - 0x2f0]
mov dword [ecx + 8], 0
mov al, 1
mov ecx, dword [ebp - 0x34]
xor ecx, ebp
call fcn.00441de6
mov esp, ebp
pop ebp
ret