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

Disassembly:
push 0x134
mov eax, 0x451403
call fcn.0043a3ed
mov eax, dword [ebp + 8]
mov dword [ebp - 0x134], eax
add eax, 0x44
mov eax, dword [eax]
mov eax, dword [eax - 0xc]
test eax, eax
je 0x407fdb
xor eax, eax
inc eax
jmp 0x4082ed
push 0x458ff4
lea ecx, [ebp - 0x130]
call fcn.00401527
and dword [ebp - 4], 0
mov edx, 0x459458
mov esi, 0x46fa78
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x13c], eax
mov edx, str.7MsiUrl
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x138], eax
mov edx, str.8MsiUrl
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x12c], eax
mov dword [ebp - 0x128], 0x114
mov edi, 0x110
push edi
push 0
lea eax, [ebp - 0x124]
push eax
call fcn.00435760
add esp, 0xc
lea eax, [ebp - 0x128]
push eax
mov ebx, dword [sym.imp.KERNEL32.dll_GetVersionExW]
call ebx
cmp dword [ebp - 0x124], 6
jne 0x40807f
cmp dword [ebp - 0x120], 0
jne 0x40807f
cmp dword [ebp - 0x13c], 0
je 0x40807f
push 0x459458
jmp 0x40810b
mov dword [ebp - 0x128], 0x114
push edi
push 0
lea eax, [ebp - 0x124]
push eax
call fcn.00435760
add esp, 0xc
lea eax, [ebp - 0x128]
push eax
call ebx
cmp dword [ebp - 0x124], 6
jne 0x4080c6
cmp dword [ebp - 0x120], 1
jne 0x4080c6
cmp dword [ebp - 0x138], 0
je 0x4080c6
push str.7MsiUrl
jmp 0x40810b
mov dword [ebp - 0x128], 0x114
push edi
push 0
lea eax, [ebp - 0x124]
push eax
call fcn.00435760
add esp, 0xc
lea eax, [ebp - 0x128]
push eax
call ebx
cmp dword [ebp - 0x124], 6
jne 0x408116
cmp dword [ebp - 0x120], 2
jne 0x408116
cmp dword [ebp - 0x12c], 0
je 0x408116
push str.8MsiUrl
lea ecx, [ebp - 0x130]
call fcn.00401644
mov edi, str.x64MsiUrl
mov edx, edi
mov ecx, esi
call fcn.00402da6
mov ebx, eax
call fcn.0041317c
test al, al
je 0x40813f
test ebx, ebx
je 0x40813f
push edi
lea ecx, [ebp - 0x130]
call fcn.00401644
mov ebx, 0x4594a4
mov edx, ebx
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x12c], eax
mov edi, dword [sym.imp.KERNEL32.dll_GetUserDefaultUILanguage]
call edi
cmp ax, 0x407
jne 0x408176
cmp dword [ebp - 0x12c], 0
je 0x408176
push ebx
lea ecx, [ebp - 0x130]
call fcn.00401644
mov ebx, 0x4594b8
mov edx, ebx
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x12c], eax
call edi
cmp ax, 0x40c
jne 0x4081a7
cmp dword [ebp - 0x12c], 0
je 0x4081a7
push ebx
lea ecx, [ebp - 0x130]
call fcn.00401644
mov ebx, 0x4594cc
mov edx, ebx
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x12c], eax
call edi
cmp ax, 0x411
jne 0x4081d8
cmp dword [ebp - 0x12c], 0
je 0x4081d8
push ebx
lea ecx, [ebp - 0x130]
call fcn.00401644
mov ebx, 0x4594e0
mov edx, ebx
mov ecx, esi
call fcn.00402da6
mov dword [ebp - 0x12c], eax
call edi
cmp ax, 0x40a
je 0x4081fc
call edi
cmp ax, 0xc0a
jne 0x408211
cmp dword [ebp - 0x12c], 0
je 0x408211
push ebx
lea ecx, [ebp - 0x130]
call fcn.00401644
mov edi, 0x4594f4
mov edx, edi
mov ecx, esi
call fcn.00402da6
mov esi, eax
push str.2.2.21642.48889
mov ecx, 0x46f96c
call fcn.00401e7a
test eax, eax
jne 0x408244
test esi, esi
je 0x408244
push edi
lea ecx, [ebp - 0x130]
call fcn.00401644
mov byte [ebp - 4], 1
mov esi, dword [ebp - 0x134]
lea edi, [esi + 0x64]
cmp dword [edi], 0
jne 0x4082a6
and dword [esi + 0x74], 0
mov dword [esi + 0x78], 0x64
push 0xbb9
push esi
push 0x19
pop ebx
call fcn.00408ea2
push 1
push edi
push 0x459528
push dword [ebp - 0x130]
lea eax, [ebp - 0x12c]
push eax
push esi
call fcn.0040754b
mov byte [ebp - 4], 2
push eax
lea ecx, [esi + 0x44]
call fcn.00401aeb
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x12c]
call fcn.00401b60
and dword [ebp - 4], 0
jmp 0x4082cd
mov eax, dword [esi + 0x44]
mov eax, dword [eax - 0xc]
xor ecx, ecx
test eax, eax
setne cl
mov esi, ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x130]
call fcn.00401b60
mov eax, esi
call fcn.0043a449
ret 4