Function at 0x421a90
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
push 0xffffffffffffffff
push 0x59cb62
mov eax, dword fs:[0]
push eax
sub esp, 0x6dc
mov eax, dword [0x618190]
xor eax, esp
mov dword [esp + 0x6d4], eax
push esi
push edi
mov eax, dword [0x618190]
xor eax, esp
push eax
lea eax, [esp + 0x6e8]
mov dword fs:[0], eax
mov eax, dword [ebp + 0xc]
xorps xmm0, xmm0
movq qword [esp + 0xe8], xmm0
mov dword [esp + 0xf0], 0
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
mov dword [esp + 0xf0], 0
push dword [ebp + 8]
mov dword [esp + 0x6f4], 0
lea ecx, [esp + 0xf8]
push eax
movdqa xmmword [esp + 0xfc], xmm0
call fcn.00433320
lea eax, [esp + 0xf4]
mov byte [esp + 0x6f0], 1
push eax
sub esp, 8
lea ecx, [esp + 0xf4]
call fcn.004209a0
xorps xmm0, xmm0
movdqa xmmword [esp + 0xd4], xmm0
mov dword [esp + 0xd4], vtable.StringStorage.0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
push 1
lea ecx, [esp + 0xdc]
mov byte [esp + 0x6f4], 2
call fcn.004331c0
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xd8]
sub eax, ecx
and eax, 0xfffffffe
push eax
push 0x5ed1d8
push ecx
call fcn.00558550
add esp, 0xc
lea eax, [esp + 0xd4]
mov byte [esp + 0x6f0], 3
push eax
push str._mtinfo
lea ecx, [esp + 0xf0]
call fcn.00420d00
test al, al
je 0x421d2c
push 0x5ed2d4
lea ecx, [esp + 0x18]
call fcn.004021f0
push str.MounterCmd
lea ecx, [esp + 0x78]
mov byte [esp + 0x6f4], 4
call fcn.004021f0
sub esp, 0x60
mov byte [esp + 0x750], 6
lea eax, [esp + 0x74]
mov dword [esp + 0x70], esp
mov ecx, esp
push eax
call fcn.00402340
sub esp, 0x60
mov byte [esp + 0x7b0], 7
lea eax, [esp + 0x134]
mov ecx, esp
push eax
call fcn.00402340
push 0x64
mov byte [esp + 0x7b4], 6
call fcn.00405ae0
lea ecx, [esp + 0x74]
call fcn.00402150
lea ecx, [esp + 0x14]
call fcn.00402150
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x1c], ecx
mov dword [ecx], vtable.StringStorage.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov byte [esp + 0x700], 8
mov eax, dword [ecx]
push dword [esp + 0xe8]
call dword [eax + 4]
mov byte [esp + 0x700], 3
call fcn.00420780
mov edi, eax
mov ecx, dword [esp + 0xd8]
mov dword [esp + 0xd4], vtable.StringStorage.0
test ecx, ecx
je 0x421ce7
push ecx
call fcn.0043b833
add esp, 4
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
lea ecx, [esp + 0xf4]
mov dword [esp + 0xf4], vtable.WinCommandLineArgs.0
call fcn.00421380
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x421d25
push dword [esp + 0xc]
mov edx, dword [esp + 0xf0]
push ecx
mov ecx, esi
call fcn.004210c0
push esi
call fcn.0043b833
add esp, 0xc
mov eax, edi
jmp 0x42202b
push 0
push str._service
lea ecx, [esp + 0xf0]
call fcn.00420d00
test al, al
je 0x421e80
sub esp, 0x60
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0x5ed2d4
call fcn.004021f0
sub esp, 0x60
mov byte [esp + 0x7b0], 9
mov ecx, esp
push str.MounterService
call fcn.004021f0
mov ecx, 0x64
mov byte [esp + 0x7b0], 3
call fcn.004047a0
add esp, 0xc0
push str.GlobalZSNetMounterMutexService
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x421e2e
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xd4], vtable.StringStorage.0
test eax, eax
je 0x421de9
push eax
call fcn.0043b833
add esp, 4
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
lea ecx, [esp + 0xf4]
mov dword [esp + 0xf4], vtable.WinCommandLineArgs.0
call fcn.00421380
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x421e27
push dword [esp + 0xc]
mov edx, dword [esp + 0xf0]
push ecx
mov ecx, esi
call fcn.004210c0
push esi
call fcn.0043b833
add esp, 0xc
xor eax, eax
jmp 0x42202b
push 0x4bc
lea eax, [esp + 0x220]
push 0
push eax
call fcn.005557a0
add esp, 0xc
lea ecx, [esp + 0x21c]
call fcn.004221a0
lea ecx, [esp + 0x21c]
mov byte [esp + 0x6f0], 0xa
call fcn.00422890
lea ecx, [esp + 0x21c]
mov byte [esp + 0x6f0], 3
mov edi, eax
call fcn.004224a0
jmp 0x421ca7
push 0
push 0x5ecfe4
lea ecx, [esp + 0xf0]
call fcn.00420d00
test al, al
je 0x421faa
sub esp, 0x60
mov ecx, esp
mov dword [esp + 0x6c], esp
push 0x5ed2d4
call fcn.004021f0
sub esp, 0x60
mov byte [esp + 0x7b0], 0xb
mov ecx, esp
push str.MounterWorker
call fcn.004021f0
mov ecx, 0x64
mov byte [esp + 0x7b0], 3
call fcn.004047a0
add esp, 0xc0
push str.GlobalZSNetMounterMutex
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x421f2f
lea ecx, [esp + 0xd4]
call fcn.00432ea0
lea ecx, [esp + 0xf4]
mov dword [esp + 0xf4], vtable.WinCommandLineArgs.0
call fcn.00421380
lea ecx, [esp + 0xe8]
call fcn.00420960
xor eax, eax
jmp 0x42202b
push 0x10c
lea eax, [esp + 0x110]
push 0
push eax
call fcn.005557a0
add esp, 0xc
lea ecx, [esp + 0x10c]
call fcn.00426850
lea ecx, [esp + 0x10c]
mov byte [esp + 0x6f0], 0xc
call fcn.00427170
lea ecx, [esp + 0x10c]
mov esi, eax
call fcn.00426f70
lea ecx, [esp + 0xd4]
call fcn.00432ea0
lea ecx, [esp + 0xf4]
mov dword [esp + 0xf4], vtable.WinCommandLineArgs.0
call fcn.00421380
lea ecx, [esp + 0xe8]
call fcn.00420960
mov eax, esi
jmp 0x42202b
mov eax, dword [esp + 0xd8]
mov dword [esp + 0xd4], vtable.StringStorage.0
test eax, eax
je 0x421fea
push eax
call fcn.0043b833
add esp, 4
mov dword [esp + 0xd8], 0
mov dword [esp + 0xdc], 0
mov dword [esp + 0xe0], 0
lea ecx, [esp + 0xf4]
mov dword [esp + 0xf4], vtable.WinCommandLineArgs.0
call fcn.00421380
mov esi, dword [esp + 0xe8]
test esi, esi
je 0x422028
push dword [esp + 0xc]
mov edx, dword [esp + 0xf0]
push ecx
mov ecx, esi
call fcn.004210c0
push esi
call fcn.0043b833
add esp, 0xc
or eax, 0xffffffff
mov ecx, dword [esp + 0x6e8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x6d4]
xor ecx, esp
call fcn.00550cb3
mov esp, ebp
pop ebp
ret