Function at 0x40541e
Capabilities:
Check os version

Disassembly:
push ebp
sub esp, 0x208
lea ebp, [esp - 4]
mov eax, dword [0x40e1ec]
xor eax, ebp
mov dword [ebp + 0x208], eax
push 0x1c
mov eax, 0x4087a7
call fcn.0040741f
xor ebx, ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 4], ebx
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.TTUtilWidget.dll_int___cdecl_Util::Module::GetBinPath_wchar_t___]
lea ecx, [ebp - 0x1c]
mov dword [esp], str.SkinInstaller.exe
call fcn.0040150a
mov byte [ebp - 4], 1
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x18]
push eax
call fcn.004038cf
add esp, 0xc
mov byte [ebp - 4], 2
mov eax, dword [eax]
cmp eax, ebx
je 0x405488
mov eax, dword [eax]
jmp 0x40548a
xor eax, eax
push eax
lea ecx, [ebp - 0x24]
call fcn.00401ce9
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x18]
cmp ecx, ebx
je 0x4054a6
call fcn.004017c1
mov dword [ebp - 0x18], ebx
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x4054b9
call fcn.004017c1
mov dword [ebp - 0x1c], ebx
push str.PluginInstaller.exe
lea ecx, [ebp - 0x1c]
call fcn.0040150a
mov byte [ebp - 4], 6
lea eax, [ebp - 0x1c]
push eax
push dword [ebp - 0x28]
lea eax, [ebp - 0x18]
push eax
call fcn.004038cf
add esp, 0xc
mov byte [ebp - 4], 7
mov eax, dword [eax]
cmp eax, ebx
je 0x4054eb
mov eax, dword [eax]
jmp 0x4054ed
xor eax, eax
push eax
lea ecx, [ebp - 0x20]
call fcn.00401ce9
mov byte [ebp - 4], 9
mov ecx, dword [ebp - 0x18]
cmp ecx, ebx
je 0x405509
call fcn.004017c1
mov dword [ebp - 0x18], ebx
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x1c]
cmp ecx, ebx
je 0x40551c
call fcn.004017c1
mov dword [ebp - 0x1c], ebx
push 0x206
lea eax, [ebp + 2]
push ebx
push eax
mov word [ebp], bx
call sub.MSVCR80.dll_memset
add esp, 0xc
push 0x104
lea eax, [ebp]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push str..tts
mov esi, SysReAllocStringLen
lea eax, [ebp - 0x18]
push esi
push eax
mov dword [ebp - 0x1c], 1
call fcn.0040534c
add esp, 0xc
mov byte [ebp - 4], 0xb
mov edi, str.ttsfile
push edi
mov ecx, eax
call fcn.00402fab
test eax, eax
setne byte [ebp - 0xd]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x18]
call fcn.00403496
cmp byte [ebp - 0xd], 0
je 0x40558c
mov dword [ebp - 0x1c], ebx
push str..ttp
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0040534c
add esp, 0xc
mov byte [ebp - 4], 0xc
push str.ttpfile
mov ecx, eax
call fcn.00402fab
test eax, eax
setne byte [ebp - 0xd]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x18]
call fcn.00403496
cmp byte [ebp - 0xd], 0
je 0x4055c9
mov dword [ebp - 0x1c], ebx
lea ecx, [ebp - 0x14]
call fcn.0040187a
mov byte [ebp - 4], 0xd
push dword [ebp - 0x24]
mov ebx, str.__s_____1_
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00401cb6
push str.ttsfile_shellopencommand
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0040534c
add esp, 0x18
mov byte [ebp - 4], 0xe
push dword [ebp - 0x14]
mov ecx, eax
call fcn.00402fab
test eax, eax
setne byte [ebp - 0xd]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x18]
call fcn.00403496
cmp byte [ebp - 0xd], 0
je 0x405623
and dword [ebp - 0x1c], 0
push dword [ebp - 0x20]
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00401cb6
push str.ttpfile_shellopencommand
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0040534c
add esp, 0x18
mov byte [ebp - 4], 0xf
push dword [ebp - 0x14]
mov ecx, eax
call fcn.00402fab
test eax, eax
setne byte [ebp - 0xd]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x18]
call fcn.00403496
cmp byte [ebp - 0xd], 0
je 0x40566c
and dword [ebp - 0x1c], 0
lea eax, [ebp]
push eax
lea eax, [ebp - 0x14]
push str._s__320
push eax
call fcn.00401cb6
push str.ttsfileDefaultIcon
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0040534c
add esp, 0x18
mov byte [ebp - 4], 0x10
push dword [ebp - 0x14]
mov ecx, eax
call fcn.00402fab
test eax, eax
setne byte [ebp - 0xd]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x18]
call fcn.00403496
cmp byte [ebp - 0xd], 0
je 0x4056ba
and dword [ebp - 0x1c], 0
lea eax, [ebp]
push eax
lea eax, [ebp - 0x14]
push str._s__321
push eax
call fcn.00401cb6
push str.ttpfileDefaultIcon
lea eax, [ebp - 0x18]
push esi
push eax
call fcn.0040534c
add esp, 0x18
mov byte [ebp - 4], 0x11
push dword [ebp - 0x14]
mov ecx, eax
call fcn.00402fab
test eax, eax
setne byte [ebp - 0xd]
mov byte [ebp - 4], 0xd
lea ecx, [ebp - 0x18]
call fcn.00403496
cmp byte [ebp - 0xd], 0
je 0x405708
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x1c], 0
je 0x40572f
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x14]
call fcn.00403496
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20]
call fcn.00403496
mov byte [ebp - 4], 0
jmp 0x405845
push edi
push str..tts
push esi
call fcn.004028e3
push str.ttpfile
mov edi, eax
push str..ttp
push esi
and edi, 1
call fcn.004028e3
push dword [ebp - 0x24]
and edi, eax
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00401cb6
push dword [ebp - 0x14]
push str.ttsfile_shellopencommand
push esi
call fcn.004028e3
push dword [ebp - 0x20]
and edi, eax
lea eax, [ebp - 0x14]
push ebx
push eax
call fcn.00401cb6
push dword [ebp - 0x14]
push str.ttpfile_shellopencommand
push esi
call fcn.004028e3
and edi, eax
add esp, 0x48
lea eax, [ebp]
push eax
lea eax, [ebp - 0x14]
push str._s__320
push eax
call fcn.00401cb6
push dword [ebp - 0x14]
push str.ttsfileDefaultIcon
push esi
call fcn.004028e3
and edi, eax
lea eax, [ebp]
push eax
lea eax, [ebp - 0x14]
push str._s__321
push eax
call fcn.00401cb6
push dword [ebp - 0x14]
push str.ttpfileDefaultIcon
push esi
call fcn.004028e3
add esp, 0x30
and edi, eax
jne 0x40570e
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
push 0x40
push 0x40a95c
jae 0x4057f4
push 0x40a8d0
jmp 0x4057f9
push 0x40a848
call dword [sym.imp.TTUtilWidget.dll_struct_HWND______cdecl_Util::Module::GetMainWindowHandler_void_]
push eax
call dword [sym.imp.USER32.dll_MessageBoxW]
mov esi, dword [sym.imp.TTUtilWidget.dll_struct_HINSTANCE______cdecl_Util::Module::ShellExecute_tt_struct_HWND_____wchar_t_const___wchar_t_const___wchar_t_const___wchar_t_const___int_]
xor ebx, ebx
push ebx
push ebx
push ebx
push dword [ebp - 0x24]
mov edi, str.runas
push edi
push ebx
call esi
push ebx
push ebx
push ebx
push dword [ebp - 0x20]
push edi
push ebx
call esi
add esp, 0x30
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x14]
call fcn.00403496
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x20]
call fcn.00403496
mov byte [ebp - 4], bl
lea ecx, [ebp - 0x24]
call fcn.00403496
or dword [ebp - 4], 0xffffffff
push dword [ebp - 0x28]
call dword [sym.imp.OLEAUT32.dll_SysStringLen]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x208]
xor ecx, ebp
call fcn.00407410
add ebp, 0x20c
leave
ret