Function at 0x4062e8
Capabilities:
Check mutex on windows
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc88
mov eax, dword [0x413004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
xor ebx, ebx
push 0x3fe
lea eax, [ebp - 0x482]
push ebx
push eax
mov word [ebp - 0x484], bx
call fcn.00406e20
push 0xa
pop ecx
mov esi, str.SmartPlayer_Lite.exe
lea edi, [ebp - 0xc84]
rep movsd dword es:[edi], dword [esi]
push 0x3d6
lea eax, [ebp - 0xc5a]
push ebx
push eax
movsw word es:[edi], word [esi]
call fcn.00406e20
push 0x3fe
lea eax, [ebp - 0x882]
push ebx
push eax
mov word [ebp - 0x884], bx
call fcn.00406e20
push 0x7f
lea eax, [ebp - 0x83]
push ebx
push eax
mov byte [ebp - 0x84], bl
call fcn.00406e20
push str.start_7zUnzip_main_
call fcn.0040597f
add esp, 0x34
push 1
push 0x1a
lea eax, [ebp - 0x484]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
mov esi, 0x1ff
jne 0x4063a8
push 0x411824
lea eax, [ebp - 0x484]
push esi
push eax
call fcn.0040594d
add esp, 0xc
push str.SPTemp
lea eax, [ebp - 0x484]
push eax
push str._s_s
push esi
push eax
call fcn.0040594d
add esp, 0x14
call fcn.00406252
push str.smartplayerclient
push 1
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0xc88], eax
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
mov edi, 0xb7
cmp eax, edi
je 0x406531
push 0x4117b8
push 1
push 0
call ebx
mov ebx, eax
call esi
cmp eax, edi
je 0x406531
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ebx, [ebp - 0x884]
call fcn.00405995
test eax, eax
je 0x40642a
push str.can_not_get_module_path_
jmp 0x406577
lea eax, [ebp - 0x884]
push eax
push str.7zDecode_start______s_n
call fcn.00407069
mov ebx, dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
pop ecx
pop ecx
push 0
lea eax, [ebp - 0x484]
push eax
call ebx
test eax, eax
jne 0x4064c0
call esi
cmp eax, edi
jne 0x4064c0
lea eax, [ebp - 0x484]
push eax
call fcn.0040605d
test eax, eax
pop ecx
je 0x4064b5
push 0xc8
call dword [sym.imp.KERNEL32.dll_Sleep]
push 0
lea eax, [ebp - 0x484]
push eax
call ebx
test eax, eax
jne 0x4064c0
lea eax, [ebp - 0x484]
push eax
call fcn.00405969
pop ecx
call esi
push eax
lea eax, [ebp - 0x84]
push str.CreateDirectory_failed__lastError_d
push eax
call fcn.00406e9a
lea eax, [ebp - 0x84]
push eax
call fcn.0040597f
add esp, 0x10
jmp 0x4064c0
push str.Remove_directory_failed_
call fcn.0040597f
pop ecx
lea ecx, [ebp - 0x484]
call fcn.00405a37
test eax, eax
je 0x4064d9
push str.load_zip_resource_failed_
jmp 0x406577
lea ecx, [ebp - 0x484]
call fcn.00405b92
test eax, eax
jne 0x406522
push str.Extract7zZip_succeed_
call fcn.0040597f
lea eax, [ebp - 0xc84]
push eax
lea esi, [ebp - 0x884]
lea ecx, [ebp - 0x484]
call fcn.00406188
mov esi, eax
test esi, esi
pop ecx
pop ecx
je 0x40651b
push 0xffffffffffffffff
push esi
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push str.exit_main_
call fcn.0040597f
xor eax, eax
inc eax
jmp 0x40657e
mov eax, dword [ebp - 0xc88]
cmp eax, 1
jne 0x40654f
push 0x804
push 0
push 0x41183c
push str.SmartPlayer_Lite
jmp 0x40656a
neg eax
sbb eax, eax
and eax, 0x3fb
add eax, 0x409
push eax
push 0
push str.Prompt
push str.SmartPlayer_Lite_already_exists_
push 0
call dword [sym.imp.USER32.dll_MessageBoxExW]
push str.app_running_
call fcn.0040597f
xor eax, eax
pop ecx
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040658e
leave
ret