Function at 0x420880
Capabilities:
Check mutex on windows
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
push 0xffffffffffffffff
push 0x527b71
mov eax, dword fs:[0]
push eax
sub esp, 0x2e8
mov eax, dword [0x57f7a0]
xor eax, esp
mov dword [esp + 0x2b0], eax
push ebx
push esi
push edi
mov eax, dword [0x57f7a0]
xor eax, esp
push eax
lea eax, [esp + 0x2f8]
mov dword fs:[0], eax
mov ebx, ecx
push 0x11
xor eax, eax
mov dword [esp + 0x4c], 7
push str.check_os_version_
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
mov dword [esp + 0x300], 0
lea edx, [esp + 0x34]
mov ecx, dword [ebx + 0x24]
movsd xmm0, qword [0x568a80]
push edx
sub esp, 8
mov eax, dword [ecx]
movsd qword [esp], xmm0
call dword [eax + 8]
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x42092f
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
push 0x10
xor eax, eax
mov dword [esp + 0x4c], 7
push str.check_setup_exe.
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
mov dword [esp + 0x300], 1
lea edx, [esp + 0x34]
mov ecx, dword [ebx + 0x24]
movsd xmm0, qword [0x568a88]
push edx
sub esp, 8
mov eax, dword [ecx]
movsd qword [esp], xmm0
call dword [eax + 8]
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x42099c
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
cmp dword [ebx + 0x74], 0
jne 0x4209fd
push 0x555d38
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov esi, eax
test esi, esi
je 0x4209fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4209fd
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00414f50
mov al, byte [eax + 0xc9]
test al, al
jne 0x4209fd
push str.install_check_stop_of_2.
push 0x4a
push str.SetupChecker::execute
call fcn.00439030
mov ecx, dword [ebx + 0x24]
add esp, 0xc
mov eax, dword [ecx]
push 1
call dword [eax + 4]
jmp 0x421654
push 0x15
xor eax, eax
mov dword [esp + 0x4c], 7
push str.check_latest_version.
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
mov dword [esp + 0x300], 2
lea edx, [esp + 0x34]
mov ecx, dword [ebx + 0x24]
movsd xmm0, qword [0x568a98]
push edx
sub esp, 8
mov eax, dword [ecx]
movsd qword [esp], xmm0
call dword [eax + 8]
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x420a6a
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
push 0x18
xor eax, eax
mov dword [esp + 0x4c], 7
push str.check_mainframe_running_
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
mov dword [esp + 0x300], 3
lea edx, [esp + 0x34]
mov ecx, dword [ebx + 0x24]
movsd xmm0, qword [0x568aa8]
push edx
sub esp, 8
mov eax, dword [ecx]
movsd qword [esp], xmm0
call dword [eax + 8]
mov dword [esp + 0x300], 0xffffffff
cmp dword [esp + 0x48], 8
jb 0x420ad7
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.00406530
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x28]
mov dword [esp + 0x300], 4
call fcn.004124e0
push 0xc
xor eax, eax
mov dword [esp + 0x4c], 7
push str.dnplayer.exe
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
call fcn.004218a0
mov esi, eax
cmp esi, dword [esp + 0x28]
je 0x420b6a
cmp dword [esi + 0x24], 8
lea eax, [esi + 0x10]
mov ecx, dword [eax + 0x10]
jb 0x420b4f
mov eax, dword [eax]
push ecx
push eax
push dword [esp + 0x4c]
lea ecx, [esp + 0x40]
push 0
call fcn.00406720
test eax, eax
js 0x420b6a
mov dword [esp + 0x30], esi
jmp 0x420b72
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x48], 8
lea esi, [esp + 0x30]
mov esi, dword [esi]
jb 0x420b8b
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
cmp esi, dword [esp + 0x28]
je 0x420cbb
push str.install_check_stop_of_5.1
push 0x6c
push str.SetupChecker::execute
call fcn.00439030
add esp, 0xc
cmp dword [ebx + 0x70], 0
je 0x420e28
call fcn.00414f50
mov al, byte [eax + 0xe9]
test al, al
je 0x420e28
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
lea eax, [esp + 0x64]
mov byte [esp + 0x300], 5
push eax
call fcn.00444f60
add esp, 4
lea edx, [esp + 0x4c]
mov byte [esp + 0x300], 6
mov ecx, eax
call fcn.00411b90
lea ecx, [esp + 0x64]
mov byte [esp + 0x300], 5
call fcn.00407e10
push 0x55cd44
lea ecx, [esp + 0x50]
call fcn.00413390
sub esp, 0x18
lea eax, [esp + 0x64]
mov ecx, esp
push eax
call fcn.0041b5e0
mov ecx, 0x58a330
call fcn.0045cbc0
xor esi, esi
sub esp, 0x18
mov ecx, esp
push str.dnplayer.exe
call fcn.00407570
call fcn.004216b0
test eax, eax
je 0x420c6a
push 0x1f4
call edi
inc esi
cmp esi, 0x14
jl 0x420c45
sub esp, 0x18
mov ecx, esp
push str.dnplayer.exe
call fcn.00407570
call fcn.004216b0
test eax, eax
je 0x420ca0
mov ecx, dword [ebx + 0x24]
push 3
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esp + 0x60], 8
jb 0x421633
push dword [esp + 0x4c]
jmp 0x42162b
mov byte [esp + 0x300], 4
cmp dword [esp + 0x60], 8
jb 0x420cbb
push dword [esp + 0x4c]
call fcn.004db8b0
add esp, 4
push 0x11
xor eax, eax
mov dword [esp + 0x64], 7
push str.dnmultiplayer.exe
lea ecx, [esp + 0x54]
mov dword [esp + 0x64], 0
mov word [esp + 0x54], ax
call fcn.00407470
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x2c]
call fcn.004218a0
mov esi, eax
cmp esi, dword [esp + 0x28]
je 0x420d21
cmp dword [esi + 0x24], 8
lea eax, [esi + 0x10]
mov ecx, dword [eax + 0x10]
jb 0x420d06
mov eax, dword [eax]
push ecx
push eax
push dword [esp + 0x64]
lea ecx, [esp + 0x58]
push 0
call fcn.00406720
test eax, eax
js 0x420d21
mov dword [esp + 0x30], esi
jmp 0x420d29
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
cmp dword [esp + 0x60], 8
lea esi, [esp + 0x30]
mov esi, dword [esi]
jb 0x420d42
push dword [esp + 0x4c]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0x60], 7
mov dword [esp + 0x5c], 0
mov word [esp + 0x4c], ax
cmp esi, dword [esp + 0x28]
je 0x420d8f
push str.install_check_stop_of_5.2
push 0x87
push str.SetupChecker::execute
call fcn.00439030
add esp, 0xc
cmp dword [ebx + 0x70], 0
jne 0x420d8f
call fcn.00414f50
mov al, byte [eax + 0xe9]
test al, al
je 0x420e28
mov eax, dword [0x58a328]
test eax, eax
jne 0x420dcd
push 0xf0
call fcn.004ea753
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x300], 7
test eax, eax
je 0x420dbe
mov ecx, eax
call fcn.00414e80
jmp 0x420dc0
xor eax, eax
mov byte [esp + 0x300], 4
mov dword [0x58a328], eax
mov al, byte [eax + 0xcb]
test al, al
jne 0x420e37
push str.dnmultiplayerex.exe
lea ecx, [esp + 0x68]
call fcn.00407570
lea eax, [esp + 0x64]
push eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x30]
call fcn.00421760
cmp dword [esp + 0x78], 8
mov esi, dword [eax]
jb 0x420e0d
push dword [esp + 0x64]
call fcn.004db8b0
add esp, 4
cmp esi, dword [esp + 0x28]
je 0x420e37
cmp dword [ebx + 0x70], 0
jne 0x420e37
call fcn.00414f50
mov al, byte [eax + 0xe9]
test al, al
jne 0x420e37
mov ecx, dword [ebx + 0x24]
push 3
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x421633
push str.dnrepairer.exe
lea ecx, [esp + 0xc8]
call fcn.00407570
push str.adb.exe
lea ecx, [esp + 0xe0]
mov byte [esp + 0x304], 8
call fcn.00407570
push str.Ld9BoxSVC.exe
lea ecx, [esp + 0xf8]
mov byte [esp + 0x304], 9
call fcn.00407570
push str.Ld9VirtualBox.exe
lea ecx, [esp + 0x110]
mov byte [esp + 0x304], 0xa
call fcn.00407570
push str.aapt.exe
lea ecx, [esp + 0x128]
mov byte [esp + 0x304], 0xb
call fcn.00407570
push str.bugreport.exe
lea ecx, [esp + 0x140]
mov byte [esp + 0x304], 0xc
call fcn.00407570
push str.ld.exe
lea ecx, [esp + 0x158]
mov byte [esp + 0x304], 0xd
call fcn.00407570
push str.ldconsole.exe
lea ecx, [esp + 0x170]
mov byte [esp + 0x304], 0xe
call fcn.00407570
push str.vmware_vdiskmanager.exe
lea ecx, [esp + 0x188]
mov byte [esp + 0x304], 0xf
call fcn.00407570
push str.ldremoteinst.exe
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x304], 0x10
call fcn.00407570
push str.Ld9BoxHeadless.exe
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x304], 0x11
call fcn.00407570
push str.driverconfig.exe
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x304], 0x12
call fcn.00407570
push str.ldrecord.exe
lea ecx, [esp + 0x1e8]
mov byte [esp + 0x304], 0x13
call fcn.00407570
push str.fynews.exe
lea ecx, [esp + 0x200]
mov byte [esp + 0x304], 0x14
call fcn.00407570
push str.dndscd.exe
lea ecx, [esp + 0x218]
mov byte [esp + 0x304], 0x15
call fcn.00407570
push str.ldnews.exe
lea ecx, [esp + 0x230]
mov byte [esp + 0x304], 0x16
call fcn.00407570
mov byte [esp + 0x300], 0x17
push str.vbox_img.exe
lea ecx, [esp + 0x248]
call fcn.00407570
push str.VBoxNetNAT.exe
lea ecx, [esp + 0x260]
mov byte [esp + 0x304], 0x18
call fcn.00407570
push str.VBoxNetDHCP.exe
lea ecx, [esp + 0x278]
mov byte [esp + 0x304], 0x19
call fcn.00407570
push str.dnplayer.exe
lea ecx, [esp + 0x290]
mov byte [esp + 0x304], 0x1a
call fcn.00407570
push str.dnmultiplayer.exe
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x304], 0x1b
call fcn.00407570
mov byte [esp + 0x300], 0x1c
lea eax, [esp + 0x2bc]
push dword [esp + 0x24]
lea ecx, [esp + 0x50]
mov dword [esp + 0x50], 0
push eax
lea eax, [esp + 0xcc]
mov dword [esp + 0x58], 0
push eax
push 0
mov dword [esp + 0x64], 0
call fcn.00421ba0
push fcn.00407e10
push 0x15
push 0x18
lea eax, [esp + 0xd0]
mov byte [esp + 0x30c], 0x1e
push eax
call fcn.004eb146
mov eax, dword [esp + 0x4c]
mov edi, eax
cmp eax, dword [esp + 0x50]
je 0x4212f5
lea esp, [esp]
xor eax, eax
mov dword [esp + 0x48], 7
push 0xffffffffffffffff
push eax
push edi
lea ecx, [esp + 0x40]
mov dword [esp + 0x50], 0
mov word [esp + 0x40], ax
call fcn.00407b90
lea eax, [esp + 0x34]
mov byte [esp + 0x300], 0x1f
push eax
lea ecx, [esp + 0x2c]
call fcn.004218a0
mov esi, eax
mov eax, dword [esp + 0x28]
cmp esi, eax
je 0x421125
cmp dword [esi + 0x24], 8
lea eax, [esi + 0x10]
mov ecx, dword [eax + 0x10]
jb 0x421102
mov eax, dword [eax]
push ecx
push eax
push dword [esp + 0x4c]
lea ecx, [esp + 0x40]
push 0
call fcn.00406720
test eax, eax
mov eax, dword [esp + 0x28]
js 0x421125
mov dword [esp + 0x30], esi
lea ecx, [esp + 0x30]
jmp 0x42112d
mov dword [esp + 0x24], eax
lea ecx, [esp + 0x24]
cmp dword [ecx], eax
je 0x4212cd
lea eax, [esp + 0x34]
mov edx, str._F__IM
push eax
lea ecx, [esp + 0x68]
call fcn.00414440
add esp, 4
push 0x55cff8
push eax
lea eax, [esp + 0xb4]
mov byte [esp + 0x308], 0x20
push eax
call fcn.00414100
add esp, 0xc
mov byte [esp + 0x300], 0x22
cmp dword [esp + 0x78], 8
jb 0x421184
push dword [esp + 0x64]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0x78], 7
push eax
push 0x555a60
lea ecx, [esp + 0x9c]
mov dword [esp + 0x7c], 0
mov word [esp + 0x6c], ax
mov dword [esp + 0xb0], 7
mov dword [esp + 0xac], eax
mov word [esp + 0x9c], ax
call fcn.00407470
mov byte [esp + 0x300], 0x23
lea ecx, [esp + 0x7c]
push 8
xor eax, eax
mov dword [esp + 0x94], 7
push str.taskkill
mov dword [esp + 0x94], 0
mov word [esp + 0x84], ax
call fcn.00407470
sub esp, 0x10
mov byte [esp + 0x310], 0x24
lea eax, [esp + 0xa4]
lea edx, [esp + 0xbc]
lea ecx, [esp + 0x8c]
push eax
call fcn.004126d0
add esp, 0x14
cmp dword [esp + 0x90], 8
jb 0x42123e
push dword [esp + 0x7c]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0x90], 7
cmp dword [esp + 0xa8], 8
mov dword [esp + 0x8c], 0
mov word [esp + 0x7c], ax
jb 0x421274
push dword [esp + 0x94]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0xa8], 7
cmp dword [esp + 0xc0], 8
mov dword [esp + 0xa4], 0
mov word [esp + 0x94], ax
jb 0x4212ad
push dword [esp + 0xac]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0xc0], 7
mov dword [esp + 0xbc], 0
mov word [esp + 0xac], ax
mov byte [esp + 0x300], 0x1e
cmp dword [esp + 0x48], 8
jb 0x4212e8
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
add edi, 0x18
cmp edi, dword [esp + 0x50]
jne 0x4210b0
mov eax, dword [0x58a328]
test eax, eax
jne 0x421333
push 0xf0
call fcn.004ea753
add esp, 4
mov dword [esp + 0x24], eax
mov byte [esp + 0x300], 0x25
test eax, eax
je 0x421324
mov ecx, eax
call fcn.00414e80
jmp 0x421326
xor eax, eax
mov byte [esp + 0x300], 0x1e
mov dword [0x58a328], eax
mov al, byte [eax + 0xcb]
test al, al
jne 0x421554
push 0x13
xor eax, eax
mov dword [esp + 0x4c], 7
push str.dnmultiplayerex.exe
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x2c]
call fcn.004218a0
mov esi, eax
cmp esi, dword [esp + 0x28]
je 0x4213a7
cmp dword [esi + 0x24], 8
lea eax, [esi + 0x10]
mov ecx, dword [eax + 0x10]
jb 0x42138c
mov eax, dword [eax]
push ecx
push eax
push dword [esp + 0x4c]
lea ecx, [esp + 0x40]
push 0
call fcn.00406720
test eax, eax
js 0x4213a7
mov dword [esp + 0x24], esi
jmp 0x4213af
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x48], 8
lea esi, [esp + 0x24]
mov esi, dword [esi]
jb 0x4213c8
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
cmp esi, dword [esp + 0x28]
je 0x421554
push 0x13
xor eax, eax
mov dword [esp + 0x4c], 7
push str.dnmultiplayerex.exe
lea ecx, [esp + 0x3c]
mov dword [esp + 0x4c], 0
mov word [esp + 0x3c], ax
call fcn.00407470
lea eax, [esp + 0x34]
mov byte [esp + 0x300], 0x26
push eax
mov edx, str._F__IM
lea ecx, [esp + 0x68]
call fcn.0040a500
add esp, 4
push 0x55cff8
push eax
lea eax, [esp + 0x84]
mov byte [esp + 0x308], 0x27
push eax
call fcn.00414100
add esp, 0xc
cmp dword [esp + 0x78], 8
jb 0x421448
push dword [esp + 0x64]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0x78], 7
mov dword [esp + 0x74], 0
mov word [esp + 0x64], ax
mov byte [esp + 0x300], 0x2a
cmp dword [esp + 0x48], 8
jb 0x42147a
push dword [esp + 0x34]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0x48], 7
push 0x555a60
lea ecx, [esp + 0x98]
mov dword [esp + 0x48], 0
mov word [esp + 0x38], ax
call fcn.00407570
push str.taskkill
lea ecx, [esp + 0xb0]
mov byte [esp + 0x304], 0x2b
call fcn.00407570
sub esp, 0x10
mov byte [esp + 0x310], 0x2c
lea eax, [esp + 0xa4]
lea edx, [esp + 0x8c]
lea ecx, [esp + 0xbc]
push eax
call fcn.004126d0
add esp, 0x14
cmp dword [esp + 0xc0], 8
jb 0x4214fd
push dword [esp + 0xac]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esp + 0xc0], 7
cmp dword [esp + 0xa8], 8
mov dword [esp + 0xbc], 0
mov word [esp + 0xac], ax
jb 0x421536
push dword [esp + 0x94]
call fcn.004db8b0
add esp, 4
mov byte [esp + 0x300], 0x1e
cmp dword [esp + 0x90], 8
jb 0x421554
push dword [esp + 0x7c]
call fcn.004db8b0
add esp, 4
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
lea esp, [esp]
sub esp, 0x18
xor eax, eax
mov ecx, esp
push 0x12
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push str.Ld9BoxHeadless.exe
mov word [ecx], ax
call fcn.00407470
call fcn.004216b0
test eax, eax
je 0x42159a
push 0x1f4
call edi
inc esi
cmp esi, 0x14
jl 0x421560
sub esp, 0x18
xor eax, eax
mov ecx, esp
push 0x12
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push str.Ld9BoxHeadless.exe
mov word [ecx], ax
call fcn.00407470
call fcn.004216b0
test eax, eax
je 0x4215cb
push 3
jmp 0x4215e4
push str.install_check_stop_of_6.
push 0xba
push str.SetupChecker::execute
call fcn.00439030
add esp, 0xc
push 0
mov ecx, dword [ebx + 0x24]
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [esp + 0x4c]
test edi, edi
je 0x421633
mov ebx, dword [esp + 0x50]
mov esi, edi
cmp edi, ebx
je 0x42162a
mov edi, edi
cmp dword [esi + 0x14], 8
jb 0x421610
push dword [esi]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [esi + 0x14], 7
mov dword [esi + 0x10], 0
mov word [esi], ax
add esi, 0x18
cmp esi, ebx
jne 0x421600
push edi
call fcn.004db8b0
add esp, 4
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0x28]
push eax
push dword [eax]
lea eax, [esp + 0x2c]
push eax
call fcn.004217e0
push dword [esp + 0x28]
call fcn.004db8b0
add esp, 4
mov ecx, dword [esp + 0x2f8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2b0]
xor ecx, esp
call fcn.004ea604
mov esp, ebp
pop ebp
ret