Function at 0x421560
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x91c
mov eax, dword [0x4d7204]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x6c], 0
lea ecx, [ebp - 0x65]
call fcn.0044d0a0
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x1bc], eax
push 0
push 0
push 0
push 0
call dword [sym.imp.USER32.dll_DefWindowProcW]
push 4
call fcn.00418260
add esp, 4
push 0
mov eax, dword [ebp + 8]
push eax
push 0
mov ecx, 0x4feab8
call fcn.00419d10
push 1
call fcn.004413e0
add esp, 4
mov ecx, dword [ebp + 0x10]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00403900
lea edx, [ebp - 0x1c]
push edx
call fcn.00419750
mov ecx, eax
call fcn.00412ab0
lea ecx, [ebp - 0x1c]
call fcn.00404c30
mov dword [ebp - 0x80], 0
call fcn.00419800
mov ecx, eax
call fcn.00413c60
test eax, eax
jne 0x4216aa
lea eax, [ebp - 0x110]
push eax
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xc0], eax
mov ecx, dword [ebp - 0xc0]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xc0]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x6d], al
lea ecx, [ebp - 0x110]
call fcn.00404db0
movzx ecx, byte [ebp - 0x6d]
test ecx, ecx
je 0x4216a5
lea edx, [ebp - 0x118]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xdc], eax
push str.Init_common_data_fail___exit
lea ecx, [ebp - 0x32c]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov eax, dword [ebp - 0xdc]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xdc]
mov eax, dword [edx + 8]
call eax
lea ecx, [ebp - 0x32c]
call fcn.00405070
lea ecx, [ebp - 0x118]
call fcn.00404db0
jmp 0x421bd2
call fcn.0041a030
call fcn.00419750
mov ecx, eax
call fcn.0041a590
mov dword [ebp - 0x8c], eax
xor ecx, ecx
mov byte [ebp - 0x6e], cl
lea edx, [ebp - 0x4c]
push edx
lea ecx, [ebp - 0x6e]
call fcn.00416c00
or dword [ebp - 0x6c], 1
mov ecx, eax
call fcn.0040fd10
push eax
lea ecx, [ebp - 0xe4]
call fcn.004032e0
or dword [ebp - 0x6c], 2
lea eax, [ebp - 0xe4]
push eax
call fcn.0042b0a0
add esp, 4
test eax, eax
jne 0x421715
cmp dword [ebp - 0x8c], 0
jne 0x421715
mov dword [ebp - 0xe0], 1
jmp 0x42171f
mov dword [ebp - 0xe0], 0
mov cl, byte [ebp - 0xe0]
mov byte [ebp - 0x6f], cl
mov edx, dword [ebp - 0x6c]
and edx, 2
je 0x42173f
and dword [ebp - 0x6c], 0xfffffffd
lea ecx, [ebp - 0xe4]
call fcn.004049f0
mov eax, dword [ebp - 0x6c]
and eax, 1
je 0x421753
and dword [ebp - 0x6c], 0xfffffffe
lea ecx, [ebp - 0x4c]
call fcn.00404c30
movzx ecx, byte [ebp - 0x6f]
test ecx, ecx
je 0x42180d
lea edx, [ebp - 0x120]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x84]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x84]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x70], al
lea ecx, [ebp - 0x120]
call fcn.00404db0
movzx ecx, byte [ebp - 0x70]
test ecx, ecx
je 0x421801
lea edx, [ebp - 0x128]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0x88], eax
push str.Use_origin_mode_without_fuzzy
lea ecx, [ebp - 0x3c4]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov eax, dword [ebp - 0x88]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x88]
mov eax, dword [edx + 8]
call eax
lea ecx, [ebp - 0x3c4]
call fcn.00405070
lea ecx, [ebp - 0x128]
call fcn.00404db0
mov dword [ebp - 0x80], 1
jmp 0x421bd2
cmp dword [ebp - 0x8c], 0
je 0x421b16
lea ecx, [ebp - 0x130]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0x90], eax
mov edx, dword [ebp - 0x90]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x90]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x71], al
lea ecx, [ebp - 0x130]
call fcn.00404db0
movzx eax, byte [ebp - 0x71]
test eax, eax
je 0x4218bc
lea ecx, [ebp - 0x138]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0x94], eax
push str.force_fuzzy_mode_
lea ecx, [ebp - 0x45c]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov edx, dword [ebp - 0x94]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x94]
mov edx, dword [eax + 8]
call edx
lea ecx, [ebp - 0x45c]
call fcn.00405070
lea ecx, [ebp - 0x138]
call fcn.00404db0
lea eax, [ebp - 0x64]
push eax
call fcn.00419800
mov ecx, eax
call fcn.00413580
mov ecx, eax
call fcn.0040fd10
push eax
lea ecx, [ebp - 0x98]
call fcn.004032e0
lea ecx, [ebp - 0x98]
push ecx
call fcn.0042b0a0
add esp, 4
mov dword [ebp - 0xf8], eax
lea ecx, [ebp - 0x98]
call fcn.004049f0
lea ecx, [ebp - 0x64]
call fcn.00404c30
cmp dword [ebp - 0xf8], 0
je 0x4219bb
lea edx, [ebp - 0x140]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0x9c], eax
mov eax, dword [ebp - 0x9c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x9c]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x72], al
lea ecx, [ebp - 0x140]
call fcn.00404db0
movzx ecx, byte [ebp - 0x72]
test ecx, ecx
je 0x4219b6
lea edx, [ebp - 0x148]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xa0], eax
push str.error_to_try_fuzzy_mode_by_command__FFM__mutex___exit
lea ecx, [ebp - 0x4f4]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov eax, dword [ebp - 0xa0]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xa0]
mov eax, dword [edx + 8]
call eax
lea ecx, [ebp - 0x4f4]
call fcn.00405070
lea ecx, [ebp - 0x148]
call fcn.00404db0
jmp 0x421bd2
call fcn.0041e310
test eax, eax
jne 0x421a6f
lea ecx, [ebp - 0x150]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xa4], eax
mov edx, dword [ebp - 0xa4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa4]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x73], al
lea ecx, [ebp - 0x150]
call fcn.00404db0
movzx eax, byte [ebp - 0x73]
test eax, eax
je 0x421a6a
lea ecx, [ebp - 0x158]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xa8], eax
push str.error_to_try_fuzzy_mode_by_command__FFM__runapp___exit
lea ecx, [ebp - 0x58c]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xa8]
mov edx, dword [eax + 8]
call edx
lea ecx, [ebp - 0x58c]
call fcn.00405070
lea ecx, [ebp - 0x158]
call fcn.00404db0
jmp 0x421bd2
lea eax, [ebp - 0x160]
push eax
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xac], eax
mov ecx, dword [ebp - 0xac]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xac]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x74], al
lea ecx, [ebp - 0x160]
call fcn.00404db0
movzx ecx, byte [ebp - 0x74]
test ecx, ecx
je 0x421b11
lea edx, [ebp - 0x168]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xb0], eax
push str.force_fuzzy_mode_prepare_end_
lea ecx, [ebp - 0x624]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov eax, dword [ebp - 0xb0]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xb0]
mov eax, dword [edx + 8]
call eax
lea ecx, [ebp - 0x624]
call fcn.00405070
lea ecx, [ebp - 0x168]
call fcn.00404db0
jmp 0x421bd2
lea ecx, [ebp - 0x170]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0xb4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xb4]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x75], al
lea ecx, [ebp - 0x170]
call fcn.00404db0
movzx eax, byte [ebp - 0x75]
test eax, eax
je 0x421bb8
lea ecx, [ebp - 0x178]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xb8], eax
push str.IN_Fuzzy_mode.
lea ecx, [ebp - 0x6bc]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov edx, dword [ebp - 0xb8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xb8]
mov edx, dword [eax + 8]
call edx
lea ecx, [ebp - 0x6bc]
call fcn.00405070
lea ecx, [ebp - 0x178]
call fcn.00404db0
call fcn.0041a640
test eax, eax
jne 0x421bc3
jmp 0x421bd2
mov dword [ebp - 0x80], 1
xor eax, eax
jne 0x4215ef
cmp dword [ebp - 0x80], 0
jne 0x421bf5
mov dword [ebp - 0xfc], 0
lea ecx, [ebp - 0x65]
call fcn.0044d120
mov eax, dword [ebp - 0xfc]
jmp 0x421ff2
lea ecx, [ebp - 0x180]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xbc], eax
mov edx, dword [ebp - 0xbc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xbc]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x76], al
lea ecx, [ebp - 0x180]
call fcn.00404db0
movzx eax, byte [ebp - 0x76]
test eax, eax
je 0x421c97
lea ecx, [ebp - 0x188]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xd4], eax
push str.re_create_self_mutex
lea ecx, [ebp - 0x754]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov edx, dword [ebp - 0xd4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd4]
mov edx, dword [eax + 8]
call edx
lea ecx, [ebp - 0x754]
call fcn.00405070
lea ecx, [ebp - 0x188]
call fcn.00404db0
lea eax, [ebp - 0x34]
push eax
call fcn.00419800
mov ecx, eax
call fcn.00413580
mov ecx, eax
call fcn.0040fd10
push eax
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [ebp - 0x100], eax
lea ecx, [ebp - 0x34]
call fcn.00404c30
cmp dword [ebp - 0x100], 0
jne 0x421ced
mov dword [ebp - 0x104], 0
lea ecx, [ebp - 0x65]
call fcn.0044d120
mov eax, dword [ebp - 0x104]
jmp 0x421ff2
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x421dbd
lea ecx, [ebp - 0x190]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xc4], eax
mov edx, dword [ebp - 0xc4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc4]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x77], al
lea ecx, [ebp - 0x190]
call fcn.00404db0
movzx eax, byte [ebp - 0x77]
test eax, eax
je 0x421da0
lea ecx, [ebp - 0x198]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xc8], eax
push str.Instance_break._exit
lea ecx, [ebp - 0x7ec]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xc8]
mov edx, dword [eax + 8]
call edx
lea ecx, [ebp - 0x7ec]
call fcn.00405070
lea ecx, [ebp - 0x198]
call fcn.00404db0
mov dword [ebp - 0xec], 0
lea ecx, [ebp - 0x65]
call fcn.0044d120
mov eax, dword [ebp - 0xec]
jmp 0x421ff2
lea eax, [ebp - 0x1a0]
push eax
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xcc], eax
mov ecx, dword [ebp - 0xcc]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0xcc]
mov eax, dword [edx + 4]
call eax
mov byte [ebp - 0x78], al
lea ecx, [ebp - 0x1a0]
call fcn.00404db0
movzx ecx, byte [ebp - 0x78]
test ecx, ecx
je 0x421e5f
lea edx, [ebp - 0x1a8]
push edx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xd0], eax
push str.ready_to_do_work
lea ecx, [ebp - 0x884]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov eax, dword [ebp - 0xd0]
mov edx, dword [eax]
mov ecx, dword [ebp - 0xd0]
mov eax, dword [edx + 8]
call eax
lea ecx, [ebp - 0x884]
call fcn.00405070
lea ecx, [ebp - 0x1a8]
call fcn.00404db0
push 0
push 0
push 0
lea ecx, [ebp - 0x1d8]
call fcn.00416060
push 0
lea ecx, [ebp - 0x1d8]
push ecx
lea edx, [ebp - 0x1c0]
push edx
call sub.gdiplus.dll_GdiplusStartup
test eax, eax
je 0x421ea6
mov dword [ebp - 0xf0], 1
lea ecx, [ebp - 0x65]
call fcn.0044d120
mov eax, dword [ebp - 0xf0]
jmp 0x421ff2
lea ecx, [ebp - 0x210]
call fcn.00415dd0
lea eax, [ebp - 0x210]
push eax
mov ecx, 0x4feab8
call fcn.00417360
lea ecx, [ebp - 0x294]
call fcn.00423390
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x1c4], esp
push 0
call fcn.00403d50
push 0
push 0
push 0
push ecx
mov ecx, esp
mov dword [ebp - 0x1c8], esp
push 0
call fcn.00403d50
push 0
lea ecx, [ebp - 0x294]
call fcn.004187a0
lea ecx, [ebp - 0x210]
call fcn.0041daa0
mov dword [ebp - 0x108], eax
mov ecx, 0x4feab8
call fcn.0041d710
lea ecx, [ebp - 0x1b0]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xe8], eax
mov edx, dword [ebp - 0xe8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xe8]
mov edx, dword [eax + 4]
call edx
mov byte [ebp - 0x79], al
lea ecx, [ebp - 0x1b0]
call fcn.00404db0
movzx eax, byte [ebp - 0x79]
test eax, eax
je 0x421fbf
lea ecx, [ebp - 0x1b8]
push ecx
call fcn.0042a2f0
add esp, 4
mov ecx, eax
call fcn.00401da0
mov dword [ebp - 0xd8], eax
push str.end_work
lea ecx, [ebp - 0x91c]
call fcn.00404010
mov ecx, eax
call fcn.00401970
push eax
mov edx, dword [ebp - 0xd8]
mov eax, dword [edx]
mov ecx, dword [ebp - 0xd8]
mov edx, dword [eax + 8]
call edx
lea ecx, [ebp - 0x91c]
call fcn.00405070
lea ecx, [ebp - 0x1b8]
call fcn.00404db0
call fcn.004417d0
mov dword [ebp - 0xf4], 0
lea ecx, [ebp - 0x294]
call fcn.00416730
lea ecx, [ebp - 0x210]
call fcn.00416770
lea ecx, [ebp - 0x65]
call fcn.0044d120
mov eax, dword [ebp - 0xf4]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0044ab64
mov esp, ebp
pop ebp
ret 0x10