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

Disassembly:
push 0x194
mov eax, 0x44907e
call fcn.00432c5f
mov edi, ecx
mov dword [ebp - 0x13c], edi
push 0x453740
lea ecx, [ebp - 0x138]
call fcn.0040153f
and dword [ebp - 4], 0
lea ecx, [ebp - 0x140]
call fcn.00408a81
mov byte [ebp - 4], 1
mov dword [ebp - 0x130], 0x114
mov ebx, 0x110
push ebx
push 0
lea eax, [ebp - 0x12c]
push eax
call fcn.0042e720
add esp, 0xc
lea eax, [ebp - 0x130]
push eax
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
call esi
cmp dword [ebp - 0x12c], 6
jne 0x411f62
cmp dword [ebp - 0x128], 0
jne 0x411f62
lea eax, [ebp - 0x140]
push eax
push str.VistaMsiUrl
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x411f62
push str.VistaMsiUrl
jmp 0x41200d
mov dword [ebp - 0x130], 0x114
push ebx
push 0
lea eax, [ebp - 0x12c]
push eax
call fcn.0042e720
add esp, 0xc
lea eax, [ebp - 0x130]
push eax
call esi
cmp dword [ebp - 0x12c], 6
jne 0x411fba
cmp dword [ebp - 0x128], 1
jne 0x411fba
lea eax, [ebp - 0x140]
push eax
push str.7MsiUrl
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x411fba
push str.7MsiUrl
jmp 0x41200d
mov dword [ebp - 0x130], 0x114
push ebx
push 0
lea eax, [ebp - 0x12c]
push eax
call fcn.0042e720
add esp, 0xc
lea eax, [ebp - 0x130]
push eax
call esi
cmp dword [ebp - 0x12c], 6
jne 0x412018
cmp dword [ebp - 0x128], 2
jne 0x412018
lea eax, [ebp - 0x140]
push eax
mov esi, str.8MsiUrl
push esi
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x412018
push esi
lea ecx, [ebp - 0x138]
call fcn.00401629
call fcn.0040a4f1
test al, al
je 0x412048
lea eax, [ebp - 0x140]
push eax
mov esi, 0x4505b8
push esi
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x412048
push esi
lea ecx, [ebp - 0x138]
call fcn.00401629
call dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
cmp ax, 0x407
jne 0x41207b
lea eax, [ebp - 0x140]
push eax
mov esi, str.DeMsiUrl
push esi
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x41207b
push esi
lea ecx, [ebp - 0x138]
call fcn.00401629
push str.2.2.21642.48889
mov ecx, 0x46455c
call fcn.004025e1
test eax, eax
jne 0x4120b5
lea eax, [ebp - 0x140]
push eax
mov esi, str.AvgMsiUrl
push esi
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x4120b5
push esi
lea ecx, [ebp - 0x138]
call fcn.00401629
mov byte [ebp - 4], 2
or dword [ebp - 0x144], 0xffffffff
or dword [ebp - 0x150], 0xffffffff
and dword [edi + 0x14], 0
push 0x64
pop esi
mov dword [edi + 0x18], esi
push 0x19
mov ebx, 0xbb9
push ebx
push edi
call fcn.004125d6
push 0x4537b0
push dword [ebp - 0x138]
push edi
call fcn.0041137a
mov dword [ebp - 0x158], eax
lea ecx, [ebp - 0x168]
call fcn.0041bca9
mov byte [ebp - 4], 3
mov byte [ebp - 4], 4
and dword [ebp - 0x134], 0
lea eax, [ebp - 0x134]
push eax
push 0x44fb18
push 0x4645dc
call fcn.00403f28
cmp dword [ebp - 0x158], 0xffffffff
je 0x4121c8
cmp dword [ebp - 0x134], 0
je 0x4121c8
and dword [edi + 0x14], 0
mov dword [edi + 0x18], esi
push 0x19
push ebx
push edi
call fcn.004125d6
lea ecx, [ebp - 0x134]
call fcn.00408a81
mov byte [ebp - 4], 5
cmp dword [0x46454c], 2
jne 0x412183
lea eax, [ebp - 0x134]
push eax
mov esi, str.AvgUsUrl
push esi
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
jne 0x4121a7
cmp dword [0x46454c], 1
jne 0x4121b9
lea eax, [ebp - 0x134]
push eax
mov esi, 0x4537c0
push esi
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x4121b9
push 0x4537b8
push esi
push edi
call fcn.0041137a
mov dword [ebp - 0x144], eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x134]
call fcn.00408aab
mov dword [ebp - 4], 3
jmp 0x4121f5
mov byte [ebp - 4], 2
call fcn.0041bcbf
lea ecx, [ebp - 0x174]
call fcn.0041bca9
mov byte [ebp - 4], 7
mov byte [ebp - 4], 8
and dword [ebp - 0x148], 0
lea eax, [ebp - 0x148]
push eax
push 0x450218
push 0x4645dc
call fcn.00403f28
cmp dword [ebp - 0x158], 0xffffffff
je 0x41229f
cmp dword [ebp - 0x148], 0
je 0x41229f
push 0x32
pop esi
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
push 0x19
push ebx
push edi
call fcn.004125d6
lea ecx, [ebp - 0x148]
call fcn.00408a81
mov byte [ebp - 4], 9
lea eax, [ebp - 0x148]
push eax
mov ebx, str.BackupUrl
push ebx
mov ecx, 0x4645f8
call fcn.004226c2
test eax, eax
je 0x41228e
push 0x45339c
push ebx
push edi
call fcn.0041137a
mov dword [ebp - 0x150], eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x148]
call fcn.00408aab
jmp 0x4122a2
push 0x32
pop esi
mov dword [ebp - 4], 7
jmp 0x4122cd
mov byte [ebp - 4], 2
call fcn.0041bcbf
xor eax, eax
cmp dword [ebp - 0x158], 0xffffffff
setne al
mov dword [ebp - 0x134], eax
xor eax, eax
cmp dword [ebp - 0x144], 0xffffffff
setne al
mov dword [ebp - 0x154], eax
xor eax, eax
cmp dword [ebp - 0x150], 0xffffffff
setne al
mov dword [ebp - 0x14c], eax
xor ebx, ebx
cmp dword [ebp - 0x134], ebx
je 0x41233f
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], esi
push esi
push 0xbba
push edi
call fcn.004125d6
push str..msi
push dword [ebp - 0x158]
push edi
call fcn.004113d2
mov dword [ebp - 0x134], eax
lea ecx, [ebp - 0x180]
call fcn.0041bca9
mov byte [ebp - 4], 0xb
mov byte [ebp - 4], 0xc
cmp dword [ebp - 0x134], ebx
je 0x41238b
cmp dword [ebp - 0x154], ebx
je 0x41238b
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
push esi
push 0xbba
push edi
call fcn.004125d6
push str..exe
push dword [ebp - 0x144]
push edi
call fcn.004113d2
mov dword [ebp - 0x154], eax
mov dword [ebp - 4], 0xb
jmp 0x4123b6
mov byte [ebp - 4], 2
call fcn.0041bcbf
lea ecx, [ebp - 0x18c]
call fcn.0041bca9
mov byte [ebp - 4], 0xe
mov byte [ebp - 4], 0xf
cmp dword [ebp - 0x134], 0
je 0x41240d
cmp dword [ebp - 0x14c], 0
je 0x41240d
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
push esi
push 0xbba
push edi
call fcn.004125d6
push str..exe
push dword [ebp - 0x150]
push edi
call fcn.004113d2
mov dword [ebp - 0x14c], eax
mov dword [ebp - 4], 0xe
jmp 0x412438
mov byte [ebp - 4], 2
call fcn.0041bcbf
xor ebx, ebx
cmp dword [ebp - 0x134], ebx
je 0x412476
mov dword [edi + 0x14], ebx
mov dword [edi + 0x18], esi
push 0x4b
push 0xbbb
push edi
call fcn.004125d6
push 0x4537b0
push dword [ebp - 0x158]
mov ecx, edi
call fcn.00411586
mov dword [ebp - 0x134], eax
lea ecx, [ebp - 0x15c]
call fcn.0041bca9
mov byte [ebp - 4], 0x11
mov byte [ebp - 4], 0x12
cmp dword [ebp - 0x134], ebx
je 0x4124c4
cmp dword [ebp - 0x154], ebx
je 0x4124c4
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
push 0x4b
push 0xbbb
push edi
call fcn.004125d6
push 0x4537b8
push dword [ebp - 0x144]
mov ecx, edi
call fcn.00411586
mov dword [ebp - 0x154], eax
mov dword [ebp - 4], 0x11
jmp 0x4124ef
mov byte [ebp - 4], 2
call fcn.0041bcbf
lea ecx, [ebp - 0x198]
call fcn.0041bca9
mov byte [ebp - 4], 0x14
mov byte [ebp - 4], 0x15
cmp dword [ebp - 0x134], 0
je 0x412548
cmp dword [ebp - 0x14c], 0
je 0x412548
mov dword [edi + 0x14], esi
mov dword [edi + 0x18], esi
push 0x4b
push 0xbbb
push edi
call fcn.004125d6
push 0x45339c
push dword [ebp - 0x150]
mov ecx, edi
call fcn.00411586
mov dword [ebp - 0x14c], eax
mov dword [ebp - 4], 0x14
jmp 0x412570
mov byte [ebp - 4], 2
call fcn.0041bcbf
push 0x64
push 0xbbc
push edi
call fcn.004125d6
push 0
call fcn.00411ddd
mov dword [ebp - 4], 1
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x140]
call fcn.00408aab
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x138]
call fcn.00408aab
call fcn.00432cbb
ret