Function at 0x412140
Capabilities:
Check mutex on windows
Check os version
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3d4
mov eax, dword [0x43fdf0]
xor eax, ebp
mov dword [ebp - 0xc], eax
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 8], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
push 0x404
call fcn.004127a0
add esp, 4
push 0
mov eax, dword [ebp + 8]
push eax
push 0
mov ecx, 0x441214
call fcn.004127d0
mov dword [ebp - 8], eax
call fcn.00411d80
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x130]
call fcn.00404910
push str._silence
lea ecx, [ebp - 0x130]
call fcn.00403630
xor edx, edx
cmp eax, 0xffffffff
setne dl
mov byte [ebp - 0x129], dl
xor eax, eax
je 0x41226d
mov ecx, dword [ebp + 8]
push ecx
call fcn.00411fe0
add esp, 4
mov byte [ebp - 0x131], al
movzx edx, byte [ebp - 0x131]
test edx, edx
jne 0x41226d
push str.Check_integrality_fail__please_download_from_official_website.
call fcn.004010c0
add esp, 4
lea ecx, [ebp - 0x188]
call fcn.004050d0
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x188]
call fcn.00412d40
cmp eax, 1
jne 0x412232
push 1
push 0
push 0
push str.http:__yydl.duowan.com_4_setup_YYSetup.exe
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
mov ecx, 0x441214
call fcn.00412920
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 0x3c8], 0
lea ecx, [ebp - 0x188]
call fcn.00405110
lea ecx, [ebp - 0x130]
call fcn.00403180
mov eax, dword [ebp - 0x3c8]
jmp 0x41246b
push 0x437df4
lea ecx, [ebp - 0x130]
call fcn.00403630
cmp eax, 0xffffffff
jne 0x4122f9
movzx eax, byte [ebp - 0x129]
test eax, eax
jne 0x4122f7
lea ecx, [ebp - 0x1b4]
call fcn.00403e20
push 0
call dword [sym.imp.USER32.dll_GetActiveWindow]
push eax
lea ecx, [ebp - 0x1b4]
call fcn.00412cc0
cmp eax, 1
je 0x4122ec
mov ecx, 0x441214
call fcn.00412920
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 0x3cc], 0
lea ecx, [ebp - 0x1b4]
call fcn.00403e50
lea ecx, [ebp - 0x130]
call fcn.00403180
mov eax, dword [ebp - 0x3cc]
jmp 0x41246b
lea ecx, [ebp - 0x1b4]
call fcn.00403e50
jmp 0x41230d
push str.0980E678_72D2_484b_B983_D4E17598D5B7
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x441200], eax
push 0x114
push 0
lea ecx, [ebp - 0x128]
push ecx
call fcn.00423050
add esp, 0xc
mov dword [ebp - 0x128], 0x114
lea edx, [ebp - 0x128]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x124], 6
jb 0x41242e
call fcn.00411e70
movzx eax, al
test eax, eax
je 0x4123ff
push 0x104
lea ecx, [ebp - 0x3c0]
push ecx
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea ecx, [ebp - 0x3c4]
call fcn.00403510
mov eax, dword [ebp + 0x10]
push eax
push str._admin__s
lea ecx, [ebp - 0x3c4]
push ecx
call fcn.0040a010
add esp, 0xc
push 1
push 0
lea ecx, [ebp - 0x3c4]
call fcn.00403550
push eax
lea edx, [ebp - 0x3c0]
push edx
push str.runas
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0x4e20
mov eax, dword [0x44120c]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, 0x441214
call fcn.00412920
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [ebp - 0x3d0], 0
lea ecx, [ebp - 0x3c4]
call fcn.00403180
lea ecx, [ebp - 0x130]
call fcn.00403180
mov eax, dword [ebp - 0x3d0]
jmp 0x41246b
push str.admin
lea ecx, [ebp - 0x130]
call fcn.00403630
cmp eax, 0xffffffff
je 0x41242e
mov ecx, dword [0x44120c]
push ecx
call dword [sym.imp.KERNEL32.dll_SetEvent]
push str.SetEvent__let_the_first_setup.exe_quit_in_win7_or_vista.
call fcn.004010c0
add esp, 4
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.00412090
add esp, 8
mov dword [ebp - 4], eax
mov ecx, 0x441214
call fcn.00412920
call dword [sym.imp.ole32.dll_CoUninitialize]
mov ecx, dword [ebp - 4]
mov dword [ebp - 0x3d4], ecx
lea ecx, [ebp - 0x130]
call fcn.00403180
mov eax, dword [ebp - 0x3d4]
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.00422e00
mov esp, ebp
pop ebp
ret 0x10