Function at 0x4c7680
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57495e
mov eax, dword fs:[0]
push eax
sub esp, 0x80
mov eax, dword [0x5e2320]
xor eax, esp
mov dword [esp + 0x78], eax
push ebx
push esi
push edi
mov eax, dword [0x5e2320]
xor eax, esp
push eax
lea eax, [esp + 0x90]
mov dword fs:[0], eax
mov edi, ecx
mov ebx, dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::Timer::killTimer_void_]
lea ecx, [edi + 0x188]
call ebx
lea ecx, [edi + 0x18c]
call ebx
mov esi, dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::CHttpDownloader::stop_void_]
mov ecx, 0x5fc298
call esi
mov ecx, dword [0x5fc304]
test ecx, ecx
je 0x4c76fd
push 1
call fcn.005219d0
mov dword [0x5fc304], 0
mov al, byte [0x5fc315]
mov ecx, 0x5fbdc0
mov byte [esp + 0x17], al
call esi
mov ecx, 0x5fbfc4
call esi
mov ebx, dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::Task::stop_void_]
mov ecx, 0x5fc02c
call ebx
mov ecx, dword [0x5fb968]
mov byte [0x5fb6d4], 1
test ecx, ecx
je 0x4c7744
mov edx, dword [ecx]
cmp ecx, 0x5fb958
setne al
movzx eax, al
push eax
call dword [edx + 0x10]
xor eax, eax
mov dword [0x5fb968], 0
mov dword [esp + 0x54], 7
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
push 0xffffffffffffffff
push eax
push 0x5fb90c
lea ecx, [esp + 0x4c]
mov dword [esp + 0xa4], eax
call fcn.0040ba20
mov ecx, 0x5fb8a0
call esi
mov ecx, 0x5fb908
call ebx
cmp dword [edi + 0x194], 0
mov al, byte [0x5fb909]
mov byte [esp + 0x16], al
je 0x4c78ac
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
mov eax, dword [eax + 0x20]
call eax
test al, al
je 0x4c7824
mov ecx, dword [edi + 0x194]
call fcn.00521870
push eax
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x4c7824
mov esi, dword [edi + 0x194]
push str.rightbar
lea ecx, [esi + 0x2c]
call fcn.0051a540
push str.rightbar_smallIcon
lea ecx, [esi + 0x2c]
call fcn.0051a540
mov ecx, eax
mov edx, dword [eax]
mov eax, dword [edx + 0xdc]
call eax
mov byte [esp + 0x18], al
mov eax, dword [edi + 0x194]
mov ecx, dword [eax + 0x530]
test ecx, ecx
je 0x4c780c
mov eax, dword [ecx]
call dword [eax]
jmp 0x4c780e
xor eax, eax
push dword [esp + 0x18]
mov ecx, dword [edi + 0x194]
push eax
call fcn.00521870
push eax
call fcn.00499c30
mov esi, dword [edi + 0x194]
mov ecx, dword [esi + 0x540]
test ecx, ecx
je 0x4c783d
push 0
push 0
call fcn.00522160
mov ecx, dword [esi + 0x544]
test ecx, ecx
je 0x4c7850
push 0
push 0
call fcn.00522160
mov ecx, dword [edi + 0x194]
push 0
push 0
call fcn.00522160
mov ecx, dword [0x5fb708]
mov eax, 0x51
mov esi, dword [edi + 0x194]
mov word [esp + 0x24], ax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x18]
push eax
push str.hotkeySettings.bossKey
lea eax, [esp + 0x28]
mov dword [esp + 0x20], 2
push eax
call fcn.00428770
push 0x4d0
mov ecx, esi
call fcn.00521870
push eax
call dword [sym.imp.USER32.dll_UnregisterHotKey]
mov esi, dword [sym.imp.dnutility.dll_void___cdecl_utility_log_char_const___int__wchar_t_const__]
push str.exit_player_of_0
push 0x17a
push str.CPlayerImpl::_exit
call esi
mov ecx, dword [edi + 0x198]
add esp, 0xc
test ecx, ecx
je 0x4c78df
call fcn.004f0bc0
mov dword [edi + 0x198], 0
push str.exit_player_of_1
push 0x180
push str.CPlayerImpl::_exit
call esi
mov ecx, dword [edi + 0x190]
add esp, 0xc
test ecx, ecx
je 0x4c790b
mov eax, dword [ecx]
call dword [eax]
mov dword [edi + 0x190], 0
push str.exit_player_of_2
push 0x186
push str.CPlayerImpl::_exit
call esi
mov ecx, dword [edi + 0x194]
add esp, 0xc
test ecx, ecx
je 0x4c792e
call fcn.004d11a0
push str.exit_player_of_3
push 0x18b
push str.CPlayerImpl::_exit
call esi
mov ecx, dword [edi + 0x194]
add esp, 0xc
test ecx, ecx
je 0x4c7953
push 1
call fcn.005219d0
mov ebx, dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::ThreadBase::stop_unsigned_int_]
mov ecx, 0x5fc1a0
push 0x3e8
call ebx
push 0x3e8
mov ecx, 0x5fc190
call ebx
push 0x3e8
mov ecx, 0x5fc1b0
call ebx
push 0x3e8
mov ecx, 0x5fc1c0
call ebx
mov ecx, 0x5fc18c
call dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::Task::stop_void_]
push str.quit_package_config
push 0x192
push str.CPlayerImpl::_exit
call esi
mov eax, dword [0x609b28]
add esp, 0xc
test al, 1
jne 0x4c79db
or eax, 1
mov dword [0x609b28], eax
mov byte [esp + 0x98], 1
call fcn.00483eb0
push 0x57e610
call fcn.005601b4
add esp, 4
mov byte [esp + 0x98], 0
push 0xa
mov ecx, 0x609c40
call ebx
push str.post_quit_message
push 0x195
push str.CPlayerImpl::_exit
call esi
mov eax, dword [edi + 4]
lea ecx, [edi + 4]
add esp, 0xc
push 0
push 0
push 0x2553
call dword [eax + 0x34]
push str.exit_player_of_4
push 0x198
push str.CPlayerImpl::_exit
call esi
add esp, 0xc
push str.clear_mutex
push 0x1eb
push str.CCmdLineMgr::clearMutex
call esi
add esp, 0xc
lea ecx, [edi + 0x10]
push 0xffffffffffffffff
call fcn.004a2810
lea ecx, [edi + 0x88]
call dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::WindowIPC::destroy_void_]
mov eax, dword [edi + 0x90]
test eax, eax
je 0x4c7a63
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x90], 0
push str.exit_player_of_5
push 0x19b
push str.CPlayerImpl::_exit
call esi
add esp, 0xc
lea ecx, [edi + 0x184]
call dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::Timer::killTimer_void_]
push str.end_exit_player.
push 0x19e
push str.CPlayerImpl::_exit
call esi
add esp, 0xc
lea ecx, [edi + 0x182]
call dword [sym.imp.dnutility.dll_public:_void___thiscall_utility::Task::stop_void_]
call dword [sym.imp.dnutility.dll_void___cdecl_utility::_StopPostToMainThread_void_]
mov ecx, dword [0x5fb708]
call fcn.00506670
push 0
call dword [sym.imp.USER32.dll_PostQuitMessage]
cmp byte [esp + 0x17], 0
mov edi, dword [sym.imp.dnutility.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_utility::ufile::applicationDir_void_]
mov ebx, dword [sym.imp.dnutility.dll_public:_static_bool___cdecl_utility::process::shell_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___bool__bool_]
mov esi, dword [sym.imp.MSVCR120.dll_void___cdecl_operator_delete_void__]
je 0x4c7b9d
lea eax, [esp + 0x28]
push eax
call edi
add esp, 4
push 0x13
push str.updatednupdate.exe
lea ecx, [esp + 0x30]
mov byte [esp + 0xa0], 2
call fcn.004259e0
push str.__path
lea ecx, [esp + 0x5c]
call fcn.0040bf00
lea eax, [esp + 0x70]
mov byte [esp + 0x98], 3
push eax
call edi
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x64]
mov byte [esp + 0xa4], 4
call fcn.00428a70
mov byte [esp + 0x98], 3
cmp dword [esp + 0x84], 8
jb 0x4c7b4c
push dword [esp + 0x70]
call esi
add esp, 4
push 0
push 1
lea eax, [esp + 0x60]
push eax
lea eax, [esp + 0x34]
push eax
call ebx
add esp, 0x10
cmp dword [esp + 0x6c], 8
jb 0x4c7b6f
push dword [esp + 0x58]
call esi
add esp, 4
xor eax, eax
mov dword [esp + 0x6c], 7
mov byte [esp + 0x98], al
cmp dword [esp + 0x3c], 8
mov dword [esp + 0x68], 0
mov word [esp + 0x58], ax
jb 0x4c7b9d
push dword [esp + 0x28]
call esi
add esp, 4
cmp byte [esp + 0x16], 0
je 0x4c7c1f
cmp dword [esp + 0x50], 0
je 0x4c7c1f
push str.__path
lea ecx, [esp + 0x2c]
call fcn.0040bf00
lea eax, [esp + 0x70]
mov byte [esp + 0x98], 5
push eax
call edi
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0xa4], 6
call fcn.00428a70
mov byte [esp + 0x98], 5
cmp dword [esp + 0x84], 8
jb 0x4c7bfc
push dword [esp + 0x70]
call esi
add esp, 4
push 0
push 1
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x4c]
push eax
call ebx
add esp, 0x10
cmp dword [esp + 0x3c], 8
jb 0x4c7c1f
push dword [esp + 0x28]
call esi
add esp, 4
cmp dword [esp + 0x54], 8
jb 0x4c7c2f
push dword [esp + 0x40]
call esi
add esp, 4
mov ecx, dword [esp + 0x90]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x78]
xor ecx, esp
call fcn.005600c0
mov esp, ebp
pop ebp
ret