Function at 0x413a3a
Capabilities:
Check os version
Identify system language via api

Disassembly:
push ebp
sub esp, 0x114
lea ebp, [esp - 4]
mov eax, dword [0x463e00]
xor eax, ebp
mov dword [ebp + 0x114], eax
push 0x60
mov eax, 0x44acdd
call fcn.004346d9
mov esi, ecx
mov dword [ebp - 0x28], esi
push 0x456130
lea ecx, [ebp - 0x18]
call fcn.00401553
and dword [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00401b10
mov byte [ebp - 4], 1
mov dword [ebp], 0x114
mov ebx, 0x110
push ebx
push 0
lea eax, [ebp + 4]
push eax
call fcn.00430590
add esp, 0xc
lea eax, [ebp]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
call edi
cmp dword [ebp + 4], 6
jne 0x413ad4
cmp dword [ebp + 8], 0
jne 0x413ad4
lea eax, [ebp - 0x1c]
push eax
push str.VistaMsiUrl
mov ecx, 0x468838
call fcn.00423e36
test eax, eax
je 0x413ad4
push str.VistaMsiUrl
jmp 0x413b5b
mov dword [ebp], 0x114
push ebx
push 0
lea eax, [ebp + 4]
push eax
call fcn.00430590
add esp, 0xc
lea eax, [ebp]
push eax
call edi
cmp dword [ebp + 4], 6
jne 0x413b1a
cmp dword [ebp + 8], 1
jne 0x413b1a
lea eax, [ebp - 0x1c]
push eax
push str.7MsiUrl
mov ecx, 0x468838
call fcn.00423e36
test eax, eax
je 0x413b1a
push str.7MsiUrl
jmp 0x413b5b
mov dword [ebp], 0x114
push ebx
push 0
lea eax, [ebp + 4]
push eax
call fcn.00430590
add esp, 0xc
lea eax, [ebp]
push eax
call edi
cmp dword [ebp + 4], 6
jne 0x413b63
cmp dword [ebp + 8], 2
jne 0x413b63
lea eax, [ebp - 0x1c]
push eax
mov edi, str.8MsiUrl
push edi
mov ecx, 0x468838
call fcn.00423e36
test eax, eax
je 0x413b63
push edi
lea ecx, [ebp - 0x18]
call fcn.0040166e
call fcn.0040c62f
mov edi, 0x468838
test al, al
je 0x413b8f
lea eax, [ebp - 0x1c]
push eax
mov ebx, str.x64MsiUrl
push ebx
mov ecx, edi
call fcn.00423e36
test eax, eax
je 0x413b8f
push ebx
lea ecx, [ebp - 0x18]
call fcn.0040166e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, 0x407
jne 0x413bb9
lea eax, [ebp - 0x1c]
push eax
mov ebx, 0x4564c8
push ebx
mov ecx, edi
call fcn.00423e36
test eax, eax
je 0x413bb9
push ebx
lea ecx, [ebp - 0x18]
call fcn.0040166e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, 0x40c
jne 0x413be3
lea eax, [ebp - 0x1c]
push eax
mov ebx, 0x4564dc
push ebx
mov ecx, edi
call fcn.00423e36
test eax, eax
je 0x413be3
push ebx
lea ecx, [ebp - 0x18]
call fcn.0040166e
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, 0x411
jne 0x413c0d
lea eax, [ebp - 0x1c]
push eax
mov ebx, 0x4564f0
push ebx
mov ecx, edi
call fcn.00423e36
test eax, eax
je 0x413c0d
push ebx
lea ecx, [ebp - 0x18]
call fcn.0040166e
push str.2.2.21642.48889
mov ecx, 0x46877c
call fcn.00402435
test eax, eax
jne 0x413c3e
lea eax, [ebp - 0x1c]
push eax
mov ebx, 0x456504
push ebx
mov ecx, edi
call fcn.00423e36
test eax, eax
je 0x413c3e
push ebx
lea ecx, [ebp - 0x18]
call fcn.0040166e
mov byte [ebp - 4], 2
or edi, 0xffffffff
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x30], edi
and dword [esi + 0x14], 0
mov dword [esi + 0x18], 0x64
push 0xbb9
push esi
push 0x19
pop ebx
call fcn.00414023
push 0x4539a4
lea ecx, [ebp - 0x34]
call fcn.00401553
mov byte [ebp - 4], 3
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x40]
push eax
call fcn.004128d7
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x34]
call fcn.00409dbd
push 1
lea eax, [ebp - 0x40]
push eax
push 0x456518
push dword [ebp - 0x18]
push esi
call fcn.00412d20
mov dword [ebp - 0x34], eax
xor ebx, ebx
cmp eax, edi
je 0x413cc9
cmp byte [esi + 0x75], bl
jne 0x413cba
mov ecx, esi
call fcn.004138c9
mov dword [ebp - 0x2c], eax
cmp byte [esi + 0x7d], bl
jne 0x413cc9
mov ecx, esi
call fcn.00413997
mov dword [ebp - 0x30], eax
xor eax, eax
cmp dword [ebp - 0x34], edi
setne al
mov dword [ebp - 0x14], eax
push 0x32
pop edi
cmp eax, ebx
je 0x413d05
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], edi
push 0xbba
push esi
mov ebx, edi
call fcn.00414023
lea eax, [ebp - 0x40]
push eax
push str..msi
push dword [ebp - 0x34]
push esi
call fcn.00412e22
mov dword [ebp - 0x14], eax
xor ebx, ebx
cmp dword [ebp - 0x2c], 0xffffffff
je 0x413d15
cmp byte [esi + 0x75], bl
jne 0x413d15
xor eax, eax
inc eax
jmp 0x413d17
xor eax, eax
mov dword [ebp - 0x24], eax
lea ecx, [ebp - 0x4c]
call fcn.00424e5c
mov byte [ebp - 4], 6
mov byte [ebp - 4], 7
cmp dword [ebp - 0x14], ebx
je 0x413d5e
cmp dword [ebp - 0x24], ebx
je 0x413d5e
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
push 0xbba
push esi
mov ebx, edi
call fcn.00414023
lea eax, [esi + 0x70]
push eax
push str..exe
push dword [ebp - 0x2c]
push esi
call fcn.00412e22
mov dword [ebp - 0x24], eax
xor ebx, ebx
mov dword [ebp - 4], 6
jmp 0x413d82
mov byte [ebp - 4], 5
call fcn.00424e72
cmp dword [ebp - 0x30], 0xffffffff
je 0x413d9b
cmp byte [esi + 0x7d], bl
jne 0x413d9b
xor eax, eax
inc eax
jmp 0x413d9d
xor eax, eax
mov dword [ebp - 0x20], eax
lea ecx, [ebp - 0x58]
call fcn.00424e5c
mov byte [ebp - 4], 9
mov byte [ebp - 4], 0xa
cmp dword [ebp - 0x14], ebx
je 0x413de4
cmp dword [ebp - 0x20], ebx
je 0x413de4
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
push 0xbba
push esi
mov ebx, edi
call fcn.00414023
lea eax, [esi + 0x78]
push eax
push str..exe
push dword [ebp - 0x30]
push esi
call fcn.00412e22
mov dword [ebp - 0x20], eax
xor ebx, ebx
mov dword [ebp - 4], 9
jmp 0x413e08
mov byte [ebp - 4], 5
call fcn.00424e72
lea ecx, [esi + 0x1c]
mov eax, dword [ecx]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp dword [ebp - 0x14], ebx
je 0x413e32
mov ecx, esi
call fcn.00413fdf
test eax, eax
mov dword [ebp - 0x14], 1
je 0x413e35
mov dword [ebp - 0x14], ebx
cmp dword [ebp - 0x24], ebx
je 0x413e44
cmp byte [esi + 0x74], bl
je 0x413e44
xor eax, eax
inc eax
jmp 0x413e46
xor eax, eax
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x20], ebx
je 0x413e58
cmp byte [esi + 0x7c], bl
je 0x413e58
xor eax, eax
inc eax
jmp 0x413e5a
xor eax, eax
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x14], ebx
je 0x413e8a
mov dword [esi + 0x14], ebx
mov dword [esi + 0x18], edi
push 0xbbb
push esi
push 0x4b
pop ebx
call fcn.00414023
push 0x456518
push dword [ebp - 0x34]
mov ecx, esi
call fcn.0041300b
mov dword [ebp - 0x14], eax
xor ebx, ebx
lea ecx, [ebp - 0x38]
call fcn.00424e5c
mov byte [ebp - 4], 0xc
mov byte [ebp - 4], 0xd
cmp dword [ebp - 0x14], ebx
je 0x413ecc
cmp dword [ebp - 0x24], ebx
je 0x413ecc
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
push 0xbbb
push esi
push 0x4b
pop ebx
call fcn.00414023
push 0x456488
push dword [ebp - 0x2c]
mov ecx, esi
call fcn.0041300b
mov dword [ebp - 0x24], eax
xor ebx, ebx
mov dword [ebp - 4], 0xc
jmp 0x413ef0
mov byte [ebp - 4], 5
call fcn.00424e72
lea ecx, [ebp - 0x64]
call fcn.00424e5c
mov byte [ebp - 4], 0xf
mov byte [ebp - 4], 0x10
cmp dword [ebp - 0x14], ebx
je 0x413f39
cmp dword [ebp - 0x20], ebx
je 0x413f39
mov dword [esi + 0x14], edi
mov dword [esi + 0x18], edi
push 0xbbb
push esi
push 0x4b
pop ebx
call fcn.00414023
push 0x45614c
push dword [ebp - 0x30]
mov ecx, esi
call fcn.0041300b
mov dword [ebp - 0x20], eax
mov dword [ebp - 4], 0xf
jmp 0x413f58
mov byte [ebp - 4], 5
call fcn.00424e72
push 0xbbc
push esi
push 0x64
pop ebx
call fcn.00414023
push 0
mov ecx, esi
call fcn.00413704
mov byte [ebp - 4], 2
lea eax, [ebp - 0x40]
push eax
call fcn.00414f3e
mov dword [ebp - 4], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x1c]
call fcn.00409dbd
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00409dbd
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x114]
xor ecx, ebp
call fcn.0043013e
add ebp, 0x118
leave
ret